Commit 3f84192209167efea013ee3944c51b4f2f75343e
Merge remote-tracking branch 'origin/pudong_jdk8_wvp' into pudong_jdk8_wvp
Showing
36 changed files
with
6346 additions
and
5 deletions
pom.xml
| @@ -366,13 +366,20 @@ | @@ -366,13 +366,20 @@ | ||
| 366 | <groupId>com.bsth.control_v2</groupId> | 366 | <groupId>com.bsth.control_v2</groupId> |
| 367 | <artifactId>plan_module-common</artifactId> | 367 | <artifactId>plan_module-common</artifactId> |
| 368 | <version>1.0-SNAPSHOT</version> | 368 | <version>1.0-SNAPSHOT</version> |
| 369 | - </dependency> | 369 | + <exclusions> |
| 370 | + <exclusion> | ||
| 371 | + <artifactId>tcc-transaction-api</artifactId> | ||
| 372 | + <groupId>org.mengyun</groupId> | ||
| 373 | + </exclusion> | ||
| 374 | + </exclusions> | ||
| 375 | + </dependency> | ||
| 370 | <!-- plan common config 工程依赖 --> | 376 | <!-- plan common config 工程依赖 --> |
| 371 | <dependency> | 377 | <dependency> |
| 372 | <groupId>com.bsth.control_v2</groupId> | 378 | <groupId>com.bsth.control_v2</groupId> |
| 373 | <artifactId>plan_module-common-config</artifactId> | 379 | <artifactId>plan_module-common-config</artifactId> |
| 374 | <version>1.0-SNAPSHOT</version> | 380 | <version>1.0-SNAPSHOT</version> |
| 375 | </dependency> | 381 | </dependency> |
| 382 | + | ||
| 376 | <dependency> | 383 | <dependency> |
| 377 | <groupId>org.slf4j</groupId> | 384 | <groupId>org.slf4j</groupId> |
| 378 | <artifactId>slf4j-api</artifactId> | 385 | <artifactId>slf4j-api</artifactId> |
src/main/java/com/bsth/controller/realcontrol/AdminUtilsController.java
| @@ -215,7 +215,7 @@ public class AdminUtilsController { | @@ -215,7 +215,7 @@ public class AdminUtilsController { | ||
| 215 | @RequestMapping(value = "/_sd_60_pst") | 215 | @RequestMapping(value = "/_sd_60_pst") |
| 216 | public void sd_60_pst() { | 216 | public void sd_60_pst() { |
| 217 | logger.info("手动入库指令...."); | 217 | logger.info("手动入库指令...."); |
| 218 | - directivesPstThread.run(); | 218 | + // directivesPstThread.run(); |
| 219 | } | 219 | } |
| 220 | 220 | ||
| 221 | /** | 221 | /** |
src/main/java/com/bsth/controller/video/VideoController.java
0 → 100644
| 1 | +package com.bsth.controller.video; | ||
| 2 | + | ||
| 3 | +import com.alibaba.dubbo.container.page.Page; | ||
| 4 | +import com.alibaba.fastjson.JSON; | ||
| 5 | +import com.bsth.common.ResponseCode; | ||
| 6 | +import com.bsth.controller.schedule.basicinfo.legacy.CarsController; | ||
| 7 | +import com.bsth.entity.Business; | ||
| 8 | +import com.bsth.entity.Cars; | ||
| 9 | +import com.bsth.entity.Line; | ||
| 10 | +import com.bsth.entity.video.CarsTreeTable; | ||
| 11 | +import com.bsth.entity.video.VideoChannel; | ||
| 12 | +import com.bsth.entity.video.VideoTree; | ||
| 13 | +import com.bsth.service.BusinessService; | ||
| 14 | +import com.bsth.service.LineService; | ||
| 15 | +import com.bsth.service.impl.videoimpl.WvpConfig; | ||
| 16 | +import com.bsth.service.video.VideoService; | ||
| 17 | +import lombok.extern.slf4j.Slf4j; | ||
| 18 | +import org.apache.commons.collections.CollectionUtils; | ||
| 19 | +import org.apache.commons.collections.MapUtils; | ||
| 20 | +import org.springframework.beans.BeanUtils; | ||
| 21 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 22 | +import org.springframework.data.domain.PageImpl; | ||
| 23 | +import org.springframework.web.bind.annotation.*; | ||
| 24 | + | ||
| 25 | +import java.util.*; | ||
| 26 | + | ||
| 27 | +/** | ||
| 28 | + * @author liujun | ||
| 29 | + * @date 2024年07月01日 12:52 | ||
| 30 | + */ | ||
| 31 | +@RestController | ||
| 32 | +@Slf4j | ||
| 33 | +@RequestMapping("video") | ||
| 34 | +public class VideoController { | ||
| 35 | + @Autowired | ||
| 36 | + private VideoService videoService; | ||
| 37 | + @Autowired | ||
| 38 | + private CarsController carsController; | ||
| 39 | + | ||
| 40 | + @Autowired | ||
| 41 | + private WvpConfig wvpConfig; | ||
| 42 | + | ||
| 43 | + @GetMapping("/tree") | ||
| 44 | + public Map<String, Object> combinationTree() { | ||
| 45 | + Map<String, Object> result = new HashMap<>(); | ||
| 46 | + try { | ||
| 47 | + List<VideoTree> trees = videoService.combinationTree(); | ||
| 48 | + result.put("status", ResponseCode.SUCCESS); | ||
| 49 | + result.put("data", trees); | ||
| 50 | + } catch (Exception e) { | ||
| 51 | + log.error("查询视频树异常", e); | ||
| 52 | + result.put("status", ResponseCode.ERROR); | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + return result; | ||
| 56 | + } | ||
| 57 | + | ||
| 58 | + @GetMapping("/tree/table") | ||
| 59 | + public Map<String, Object> queryTreeTable(@RequestParam Map<String, Object> map, | ||
| 60 | + @RequestParam(defaultValue = "0") int page, | ||
| 61 | + @RequestParam(defaultValue = "10") int size, | ||
| 62 | + @RequestParam(defaultValue = "id") String order, | ||
| 63 | + @RequestParam(defaultValue = "DESC") String direction) { | ||
| 64 | + Map<String, Object> result = new HashMap<>(); | ||
| 65 | + page = page - 1; | ||
| 66 | + Map<String, Object> queryResult = carsController.list(map, page, size, order, direction); | ||
| 67 | + if (MapUtils.isEmpty(queryResult)) { | ||
| 68 | + result.put("status", ResponseCode.ERROR); | ||
| 69 | + return result; | ||
| 70 | + } | ||
| 71 | + | ||
| 72 | + if (Objects.equals(queryResult.get("status"), ResponseCode.ERROR.name())) { | ||
| 73 | + result.put("status", ResponseCode.ERROR); | ||
| 74 | + return result; | ||
| 75 | + } | ||
| 76 | + | ||
| 77 | + | ||
| 78 | + PageImpl<Cars> page1 = (PageImpl<Cars>) queryResult.get("data"); | ||
| 79 | + if (Objects.nonNull(page1)) { | ||
| 80 | + result.put("count", page1.getTotalElements()); | ||
| 81 | + int contentSize = CollectionUtils.size(page1.getContent()); | ||
| 82 | + if (contentSize > 0) { | ||
| 83 | + List<CarsTreeTable> carsTreeTables = new ArrayList<>(contentSize); | ||
| 84 | + for (Object car : page1.getContent()) { | ||
| 85 | + CarsTreeTable treeTable = new CarsTreeTable(); | ||
| 86 | + BeanUtils.copyProperties(car, treeTable); | ||
| 87 | + carsTreeTables.add(treeTable); | ||
| 88 | + } | ||
| 89 | + result.put("data", carsTreeTables); | ||
| 90 | + } | ||
| 91 | + | ||
| 92 | + result.put("code", 0); | ||
| 93 | + } | ||
| 94 | + | ||
| 95 | + | ||
| 96 | + return result; | ||
| 97 | + } | ||
| 98 | + | ||
| 99 | + | ||
| 100 | + @GetMapping("/car/channel/{carNo}") | ||
| 101 | + public Map<String, Object> queryChannels(@PathVariable String carNo) { | ||
| 102 | + Map<String, Object> result = new HashMap<>(); | ||
| 103 | + try { | ||
| 104 | + List<Map<String, Object>> videoChannels = videoService.getVideoChannel(carNo); | ||
| 105 | + result.put("status", ResponseCode.SUCCESS); | ||
| 106 | + result.put("data", videoChannels); | ||
| 107 | + result.put("channelImageURL",wvpConfig.getChannelListOfImgURL()); | ||
| 108 | + result.put("wvpPlayURL",wvpConfig.getWvpPlayURL()); | ||
| 109 | + } catch (Exception e) { | ||
| 110 | + log.error("查询车辆通道异常:[{}]", carNo, e); | ||
| 111 | + result.put("status", ResponseCode.ERROR); | ||
| 112 | + } | ||
| 113 | + return result; | ||
| 114 | + } | ||
| 115 | +} |
src/main/java/com/bsth/entity/video/CarsTreeTable.java
0 → 100644
| 1 | +package com.bsth.entity.video; | ||
| 2 | + | ||
| 3 | +import com.bsth.entity.Cars; | ||
| 4 | + | ||
| 5 | +import java.util.ArrayList; | ||
| 6 | +import java.util.Collections; | ||
| 7 | +import java.util.List; | ||
| 8 | + | ||
| 9 | +/** | ||
| 10 | + * @author liujun | ||
| 11 | + * @date 2024年07月02日 10:37 | ||
| 12 | + */ | ||
| 13 | +public class CarsTreeTable extends Cars { | ||
| 14 | + public boolean getIsParent() { | ||
| 15 | + return Boolean.TRUE; | ||
| 16 | + } | ||
| 17 | + public String getName(){ | ||
| 18 | + return this.getCarCode(); | ||
| 19 | + } | ||
| 20 | + | ||
| 21 | + public List<Cars> getChildren(){ | ||
| 22 | + List<Cars> children = new ArrayList<>(); | ||
| 23 | + children.add(new Cars()); | ||
| 24 | + return children; | ||
| 25 | + } | ||
| 26 | +} |
src/main/java/com/bsth/entity/video/VideoChannel.java
0 → 100644
| 1 | +package com.bsth.entity.video; | ||
| 2 | + | ||
| 3 | +/** | ||
| 4 | + * WVP 通道数据 | ||
| 5 | + * | ||
| 6 | + * @author liujun | ||
| 7 | + * @date 2024年07月02日 14:48 | ||
| 8 | + */ | ||
| 9 | +public class VideoChannel { | ||
| 10 | + | ||
| 11 | + private String address; | ||
| 12 | + private String block; | ||
| 13 | + | ||
| 14 | + private String businessGroupId; | ||
| 15 | + | ||
| 16 | + private String certNum; | ||
| 17 | + private Integer certifiable; | ||
| 18 | + /*通道编码*/ | ||
| 19 | + private String channelId; | ||
| 20 | + private Integer channelType; | ||
| 21 | + private String civilCode; | ||
| 22 | + private String createTime; | ||
| 23 | + /**设备号*/ | ||
| 24 | + private String deviceId; | ||
| 25 | + private String endTime; | ||
| 26 | + private Integer errCode; | ||
| 27 | + private String gpsTime; | ||
| 28 | + /**是否开启音频*/ | ||
| 29 | + private boolean hasAudio; | ||
| 30 | + private Integer id; | ||
| 31 | + private String ipAddress; | ||
| 32 | + private Integer latitude; | ||
| 33 | + private Integer latitudeGcj02; | ||
| 34 | + private Integer latitudeWgs84; | ||
| 35 | + private Integer longitude; | ||
| 36 | + private Integer longitudeGcj02; | ||
| 37 | + private Integer longitudeWgs84; | ||
| 38 | + /*厂家*/ | ||
| 39 | + private String manufacture; | ||
| 40 | + private String model; | ||
| 41 | + /**通道名称*/ | ||
| 42 | + private String name; | ||
| 43 | + private String owner; | ||
| 44 | + private String parentId; | ||
| 45 | + private Integer parental; | ||
| 46 | + private String password; | ||
| 47 | + private Integer ptzType; | ||
| 48 | + /**云类型*/ | ||
| 49 | + private String ptzTypeText; | ||
| 50 | + private Integer registerWay; | ||
| 51 | + private Integer safetyWay; | ||
| 52 | + private String secrecy; | ||
| 53 | + /**状态*/ | ||
| 54 | + private boolean status; | ||
| 55 | + private String streamId; | ||
| 56 | + private String streamIdentification; | ||
| 57 | + /**子节点数*/ | ||
| 58 | + private Integer subCount; | ||
| 59 | + private String updateTime; | ||
| 60 | +} |
src/main/java/com/bsth/entity/video/VideoTree.java
0 → 100644
| 1 | +package com.bsth.entity.video; | ||
| 2 | + | ||
| 3 | +import lombok.Data; | ||
| 4 | + | ||
| 5 | + | ||
| 6 | +import javax.persistence.Id; | ||
| 7 | +import javax.persistence.Transient; | ||
| 8 | +import java.io.Serializable; | ||
| 9 | +import java.util.ArrayList; | ||
| 10 | +import java.util.HashMap; | ||
| 11 | +import java.util.List; | ||
| 12 | +import java.util.Map; | ||
| 13 | + | ||
| 14 | + | ||
| 15 | +/** | ||
| 16 | + * @author liujun | ||
| 17 | + * @date 2024年06月27日 11:16 | ||
| 18 | + */ | ||
| 19 | +@Data | ||
| 20 | +public class VideoTree implements Serializable { | ||
| 21 | + | ||
| 22 | + private static final long serialVersionUID = 8270934502586526774L; | ||
| 23 | + /** | ||
| 24 | + * 公司ID、线路ID、汽车ID | ||
| 25 | + */ | ||
| 26 | + @Transient | ||
| 27 | + private Object sourceId; | ||
| 28 | + /** | ||
| 29 | + * 编码(公司、线路、汽车) | ||
| 30 | + */ | ||
| 31 | + | ||
| 32 | + @Id | ||
| 33 | + @Transient | ||
| 34 | + private Object id; | ||
| 35 | + /** | ||
| 36 | + * 公司名称、线路名称、汽车名称 | ||
| 37 | + */ | ||
| 38 | + @Transient | ||
| 39 | + private String text; | ||
| 40 | + /** | ||
| 41 | + * 类型:0为公司,1为所在公司;2为分公司 ;201为线路;301为汽车 | ||
| 42 | + */ | ||
| 43 | + @Transient | ||
| 44 | + private Integer type; | ||
| 45 | + /** | ||
| 46 | + * 父节点 | ||
| 47 | + */ | ||
| 48 | + @Transient | ||
| 49 | + private Object nodePValue; | ||
| 50 | +// private Object parent; | ||
| 51 | + /** | ||
| 52 | + * 编码 | ||
| 53 | + */ | ||
| 54 | + @Transient | ||
| 55 | + private Object code; | ||
| 56 | + | ||
| 57 | +// @Transient | ||
| 58 | +// private String icon; | ||
| 59 | + | ||
| 60 | + @Transient | ||
| 61 | + private List<VideoTree> children; | ||
| 62 | + | ||
| 63 | + | ||
| 64 | + public String getTitle() { | ||
| 65 | + return this.getText(); | ||
| 66 | + } | ||
| 67 | + | ||
| 68 | + public boolean getSpread() { | ||
| 69 | + return getType() == 0 ? true : false; | ||
| 70 | + } | ||
| 71 | + | ||
| 72 | +} |
src/main/java/com/bsth/service/impl/videoimpl/VideoServiceImpl.java
0 → 100644
| 1 | +package com.bsth.service.impl.videoimpl; | ||
| 2 | + | ||
| 3 | +import com.alibaba.fastjson.JSON; | ||
| 4 | +import com.alibaba.fastjson.JSONArray; | ||
| 5 | +import com.bsth.entity.Business; | ||
| 6 | +import com.bsth.entity.Line; | ||
| 7 | +import com.bsth.entity.video.VideoChannel; | ||
| 8 | +import com.bsth.entity.video.VideoTree; | ||
| 9 | +import com.bsth.service.BusinessService; | ||
| 10 | +import com.bsth.service.LineService; | ||
| 11 | +import com.bsth.service.video.VideoService; | ||
| 12 | +import com.bsth.util.HttpClientUtils; | ||
| 13 | +import com.bsth.util.MailUtils; | ||
| 14 | +import lombok.extern.slf4j.Slf4j; | ||
| 15 | +import org.apache.commons.collections.CollectionUtils; | ||
| 16 | +import org.apache.commons.collections.MapUtils; | ||
| 17 | +import org.apache.commons.lang3.StringUtils; | ||
| 18 | +import org.apache.http.HttpEntity; | ||
| 19 | +import org.apache.http.client.config.RequestConfig; | ||
| 20 | +import org.apache.http.client.methods.CloseableHttpResponse; | ||
| 21 | +import org.apache.http.client.methods.HttpGet; | ||
| 22 | +import org.apache.http.client.methods.HttpPost; | ||
| 23 | +import org.apache.http.entity.StringEntity; | ||
| 24 | +import org.apache.http.impl.client.CloseableHttpClient; | ||
| 25 | +import org.springframework.beans.BeanUtils; | ||
| 26 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 27 | +import org.springframework.stereotype.Service; | ||
| 28 | + | ||
| 29 | +import java.io.BufferedReader; | ||
| 30 | +import java.io.IOException; | ||
| 31 | +import java.io.InputStreamReader; | ||
| 32 | +import java.util.*; | ||
| 33 | +import java.util.stream.Collectors; | ||
| 34 | + | ||
| 35 | +/** | ||
| 36 | + * @author liujun | ||
| 37 | + * @date 2024年07月01日 12:57 | ||
| 38 | + */ | ||
| 39 | +@Service | ||
| 40 | +@Slf4j | ||
| 41 | +public class VideoServiceImpl implements VideoService { | ||
| 42 | + @Autowired | ||
| 43 | + private BusinessService businessService; | ||
| 44 | + @Autowired | ||
| 45 | + private LineService lineService; | ||
| 46 | + @Autowired | ||
| 47 | + private WvpConfig wvpConfig; | ||
| 48 | + | ||
| 49 | + | ||
| 50 | + @Override | ||
| 51 | + public List<VideoTree> combinationTree() { | ||
| 52 | + List<VideoTree> returnList = new ArrayList<>(); | ||
| 53 | + | ||
| 54 | + List<VideoTree> bussessTree = queryBusiness(); | ||
| 55 | + if (CollectionUtils.isNotEmpty(bussessTree)) { | ||
| 56 | + returnList.addAll(bussessTree); | ||
| 57 | + } | ||
| 58 | + | ||
| 59 | +// List<VideoTree> lineTree = queryLine(); | ||
| 60 | +// if (CollectionUtils.isNotEmpty(lineTree)) { | ||
| 61 | +// returnList.addAll(lineTree); | ||
| 62 | +// } | ||
| 63 | + return returnList; | ||
| 64 | + | ||
| 65 | + } | ||
| 66 | + | ||
| 67 | + @Override | ||
| 68 | + public List<Map<String, Object>> getVideoChannel(String carNo) throws Exception { | ||
| 69 | + return getWvpVideoChannelByCarNo(carNo); | ||
| 70 | + } | ||
| 71 | + | ||
| 72 | + /*** | ||
| 73 | + *查询公交公司的数据。 | ||
| 74 | + * @author liujun | ||
| 75 | + * @date 2024/6/27 11:29 | ||
| 76 | + * @return java.util.List<com.bsth.entity.video.VideoTree> | ||
| 77 | + */ | ||
| 78 | + private List<VideoTree> queryBusiness() { | ||
| 79 | + Iterable<Business> businessIterable = businessService.list(new HashMap<>()); | ||
| 80 | + if (Objects.isNull(businessIterable)) { | ||
| 81 | + return Collections.emptyList(); | ||
| 82 | + } | ||
| 83 | + | ||
| 84 | + List<VideoTree> trees = new ArrayList<>(); | ||
| 85 | + Iterator<Business> iterator = businessIterable.iterator(); | ||
| 86 | + while (iterator.hasNext()) { | ||
| 87 | + Business business = iterator.next(); | ||
| 88 | + VideoTree videoTree = combinationVideoTree(business.getBusinessCode(), business.getBusinessName(), business.getUpCode(), business.getId(), null, null, business.getBusinessCode()); | ||
| 89 | + trees.add(videoTree); | ||
| 90 | + } | ||
| 91 | + List<VideoTree> groupTree = new ArrayList<>(); | ||
| 92 | + for (VideoTree tree : trees) { | ||
| 93 | + if (Objects.equals(tree.getNodePValue(), "0")) { | ||
| 94 | + VideoTree target = new VideoTree(); | ||
| 95 | + BeanUtils.copyProperties(tree, target); | ||
| 96 | +// target.setParent("#"); | ||
| 97 | + target.setType(0); | ||
| 98 | + groupTree.add(target); | ||
| 99 | + } | ||
| 100 | + } | ||
| 101 | + | ||
| 102 | + if (CollectionUtils.isNotEmpty(groupTree)) { | ||
| 103 | + for (VideoTree tree : groupTree) { | ||
| 104 | + groupTree(trees, tree); | ||
| 105 | + } | ||
| 106 | + } | ||
| 107 | + | ||
| 108 | + return groupTree; | ||
| 109 | + } | ||
| 110 | + | ||
| 111 | + private List<VideoTree> queryLine() { | ||
| 112 | + Iterable<Line> lines = lineService.list(new HashMap<>()); | ||
| 113 | + if (Objects.isNull(lines)) { | ||
| 114 | + return Collections.emptyList(); | ||
| 115 | + } | ||
| 116 | + | ||
| 117 | + List<VideoTree> trees = new ArrayList<>(); | ||
| 118 | + Iterator<Line> iterator = lines.iterator(); | ||
| 119 | + while (iterator.hasNext()) { | ||
| 120 | + Line line = iterator.next(); | ||
| 121 | + VideoTree videoTree = combinationVideoTree(line.getId(), line.getName(), line.getCompany(), line.getId(), 2, null, null); | ||
| 122 | + trees.add(videoTree); | ||
| 123 | + } | ||
| 124 | + | ||
| 125 | + | ||
| 126 | + return trees; | ||
| 127 | + } | ||
| 128 | + | ||
| 129 | + private List<VideoTree> queryCars() { | ||
| 130 | + return null; | ||
| 131 | + } | ||
| 132 | + | ||
| 133 | + /*** | ||
| 134 | + * 组合树 | ||
| 135 | + * @author liujun | ||
| 136 | + * @date 2024/6/27 13:12 | ||
| 137 | + * @param id id | ||
| 138 | + * @param text 显示的文本 | ||
| 139 | + * @param sourceId 数据的ID | ||
| 140 | + * @param parent 数据的父节点 | ||
| 141 | + * @param type 类型 | ||
| 142 | + * @param icon 图标 | ||
| 143 | + * @return com.bsth.entity.video.VideoTree | ||
| 144 | + */ | ||
| 145 | + private VideoTree combinationVideoTree(Object id, String text, String parent, Integer sourceId, Integer type, String icon, Object code) { | ||
| 146 | + VideoTree videoTree = new VideoTree(); | ||
| 147 | + videoTree.setId(id); | ||
| 148 | + videoTree.setText(text); | ||
| 149 | + videoTree.setSourceId(sourceId); | ||
| 150 | + videoTree.setNodePValue(parent); | ||
| 151 | + videoTree.setType(type); | ||
| 152 | +// videoTree.setIcon(icon); | ||
| 153 | + videoTree.setCode(code); | ||
| 154 | + return videoTree; | ||
| 155 | + } | ||
| 156 | + | ||
| 157 | + private void groupTree(List<VideoTree> trees, VideoTree tree) { | ||
| 158 | + if (Objects.isNull(trees) || CollectionUtils.isEmpty(trees)) { | ||
| 159 | + return; | ||
| 160 | + } | ||
| 161 | + for (VideoTree videoTree : trees) { | ||
| 162 | + if (Objects.equals(videoTree.getNodePValue(), tree.getId())) { | ||
| 163 | + if (Objects.isNull(tree.getChildren())) { | ||
| 164 | + tree.setChildren(new ArrayList<>()); | ||
| 165 | + } | ||
| 166 | + VideoTree target = new VideoTree(); | ||
| 167 | + BeanUtils.copyProperties(videoTree, target); | ||
| 168 | + target.setType(tree.getType() + 1); | ||
| 169 | + | ||
| 170 | + | ||
| 171 | + tree.getChildren().add(target); | ||
| 172 | + groupTree(trees, target); | ||
| 173 | + } | ||
| 174 | + } | ||
| 175 | + } | ||
| 176 | + | ||
| 177 | + /*** | ||
| 178 | + * 获取wvp 系统的登陆token | ||
| 179 | + * @author liujun | ||
| 180 | + * @date 2024/7/2 16:16 | ||
| 181 | + * @return java.lang.String | ||
| 182 | + */ | ||
| 183 | + private String getWvpLoginToken() throws Exception { | ||
| 184 | + StringBuilder url = new StringBuilder(); | ||
| 185 | + url.append(wvpConfig.getLoginURL()); | ||
| 186 | + if (StringUtils.indexOf(wvpConfig.getLoginURL(), "?") == -1) { | ||
| 187 | + url.append("?"); | ||
| 188 | + } | ||
| 189 | + url.append("username="); | ||
| 190 | + url.append(wvpConfig.getUserName()); | ||
| 191 | + url.append("&password="); | ||
| 192 | + url.append(wvpConfig.getPwd()); | ||
| 193 | + try { | ||
| 194 | + StringBuilder result = HttpClientUtils.get(url.toString()); | ||
| 195 | + Map<String, Object> resultMap = (Map<String, Object>) switchWVPResult(result, url); | ||
| 196 | + if (MapUtils.isEmpty(resultMap)) { | ||
| 197 | + return null; | ||
| 198 | + } | ||
| 199 | + return Objects.isNull(resultMap.get("accessToken")) ? null : resultMap.get("accessToken").toString(); | ||
| 200 | + | ||
| 201 | + } catch (Exception e) { | ||
| 202 | + log.error("[{}]请求异常:", url, e); | ||
| 203 | + throw e; | ||
| 204 | + } | ||
| 205 | + } | ||
| 206 | + | ||
| 207 | + private List<Map<String, Object>> getWvpVideoChannelByCarNo(String carNo) throws Exception { | ||
| 208 | + String token = getWvpLoginToken(); | ||
| 209 | + if (StringUtils.isEmpty(token)) { | ||
| 210 | + log.error("wvp login token is null"); | ||
| 211 | + return Collections.emptyList(); | ||
| 212 | + } | ||
| 213 | + Map<String, Object> headers = new HashMap<>(); | ||
| 214 | + headers.put("Access-Token", token); | ||
| 215 | + String url = StringUtils.replace(wvpConfig.getChannelListOfCarNoURL(), "{carNo}", carNo); | ||
| 216 | + try { | ||
| 217 | + StringBuilder result = get(url, headers); | ||
| 218 | + return (List<Map<String, Object>>) switchWVPResult(result, url); | ||
| 219 | + | ||
| 220 | + } catch (Exception e) { | ||
| 221 | + log.error("get wvp of channel list error[{}];", url, e); | ||
| 222 | + throw e; | ||
| 223 | + } | ||
| 224 | + } | ||
| 225 | + | ||
| 226 | + public static StringBuilder get(String url, Map<String, Object> headers) throws Exception { | ||
| 227 | + CloseableHttpClient httpClient = null; | ||
| 228 | + CloseableHttpResponse response = null; | ||
| 229 | + StringBuilder stringBuffer = null; | ||
| 230 | + try { | ||
| 231 | + httpClient = HttpClientUtils.defaultHttpClient(url); | ||
| 232 | + HttpGet get = new HttpGet(url); | ||
| 233 | + | ||
| 234 | + if (MapUtils.isNotEmpty(headers)) { | ||
| 235 | + for (Map.Entry<String, Object> header : headers.entrySet()) { | ||
| 236 | + get.setHeader(header.getKey(), String.valueOf(header.getValue())); | ||
| 237 | + } | ||
| 238 | + } | ||
| 239 | + //超时时间 | ||
| 240 | + RequestConfig requestConfig = RequestConfig.custom() | ||
| 241 | + .setConnectTimeout(2500).setConnectionRequestTimeout(2000) | ||
| 242 | + .setSocketTimeout(3500).build(); | ||
| 243 | + get.setConfig(requestConfig); | ||
| 244 | + | ||
| 245 | + response = httpClient.execute(get); | ||
| 246 | + stringBuffer = getResult(response.getEntity()); | ||
| 247 | + } catch (Exception e) { | ||
| 248 | + log.error("", e); | ||
| 249 | + throw e; | ||
| 250 | + } finally { | ||
| 251 | + if (null != httpClient) | ||
| 252 | + httpClient.close(); | ||
| 253 | + if (null != response) | ||
| 254 | + response.close(); | ||
| 255 | + } | ||
| 256 | + return stringBuffer; | ||
| 257 | + } | ||
| 258 | + | ||
| 259 | + private static StringBuilder getResult(HttpEntity entity) throws IOException { | ||
| 260 | + StringBuilder stringBuffer = null; | ||
| 261 | + if (null != entity) { | ||
| 262 | + BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent())); | ||
| 263 | + stringBuffer = new StringBuilder(); | ||
| 264 | + String str = ""; | ||
| 265 | + while ((str = br.readLine()) != null) | ||
| 266 | + stringBuffer.append(str); | ||
| 267 | + } | ||
| 268 | + return stringBuffer; | ||
| 269 | + } | ||
| 270 | + | ||
| 271 | + /*** | ||
| 272 | + * 解析wvp系统返回的数据 | ||
| 273 | + * @author liujun | ||
| 274 | + * @date 2024/7/2 14:43 | ||
| 275 | + * @param result | ||
| 276 | + * @param url | ||
| 277 | + * @return java.lang.Object | ||
| 278 | + */ | ||
| 279 | + private Object switchWVPResult(Object result, Object url) { | ||
| 280 | + log.info("[{}]请求返回的数据:[{}]", url, result); | ||
| 281 | + if (Objects.nonNull(result)) { | ||
| 282 | + String resultStr = result.toString(); | ||
| 283 | + if (StringUtils.isNotEmpty(resultStr)) { | ||
| 284 | + Map<String, Object> resultMap = (Map<String, Object>) JSON.parse(resultStr); | ||
| 285 | + Integer code = (Integer) resultMap.get("code"); | ||
| 286 | + if (Objects.equals(0, code)) { | ||
| 287 | + return resultMap.get("data"); | ||
| 288 | + } | ||
| 289 | + } | ||
| 290 | + | ||
| 291 | + } | ||
| 292 | + return null; | ||
| 293 | + } | ||
| 294 | + | ||
| 295 | +} |
src/main/java/com/bsth/service/impl/videoimpl/WvpConfig.java
0 → 100644
| 1 | +package com.bsth.service.impl.videoimpl; | ||
| 2 | + | ||
| 3 | +import lombok.Data; | ||
| 4 | +import org.springframework.beans.factory.annotation.Value; | ||
| 5 | +import org.springframework.stereotype.Component; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * @author liujun | ||
| 9 | + * @date 2024年07月02日 14:30 | ||
| 10 | + */ | ||
| 11 | +@Component | ||
| 12 | +@Data | ||
| 13 | +public class WvpConfig { | ||
| 14 | + @Value("${wvp.login.user}") | ||
| 15 | + private String userName; | ||
| 16 | + @Value("${wvo.login.pwd}") | ||
| 17 | + private String pwd; | ||
| 18 | + @Value("${wvp.login.url}") | ||
| 19 | + private String loginURL; | ||
| 20 | + @Value("${wvp.channel.list.url}") | ||
| 21 | + private String channelListOfCarNoURL; | ||
| 22 | + | ||
| 23 | + @Value("${wvp.channel.list.img.url}") | ||
| 24 | + private String channelListOfImgURL; | ||
| 25 | + | ||
| 26 | + @Value("${wvp.channel.play.url}") | ||
| 27 | + private String wvpPlayURL; | ||
| 28 | +} |
src/main/java/com/bsth/service/video/VideoService.java
0 → 100644
| 1 | +package com.bsth.service.video; | ||
| 2 | + | ||
| 3 | +import com.bsth.entity.Business; | ||
| 4 | +import com.bsth.entity.video.VideoChannel; | ||
| 5 | +import com.bsth.entity.video.VideoTree; | ||
| 6 | +import com.bsth.service.BaseService; | ||
| 7 | + | ||
| 8 | + | ||
| 9 | +import java.util.List; | ||
| 10 | +import java.util.Map; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * @author liujun | ||
| 14 | + * @date 2024年06月27日 11:14 | ||
| 15 | + */ | ||
| 16 | + | ||
| 17 | +public interface VideoService { | ||
| 18 | + | ||
| 19 | + List<VideoTree> combinationTree(); | ||
| 20 | + | ||
| 21 | + List<Map<String, Object>> getVideoChannel(String carNo)throws Exception; | ||
| 22 | +} |
src/main/resources/application.properties
src/main/resources/logback.xml
| @@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
| 3 | <configuration> | 3 | <configuration> |
| 4 | 4 | ||
| 5 | <!-- <property resource="application.properties" /> --> | 5 | <!-- <property resource="application.properties" /> --> |
| 6 | - <property name="LOG_BASE" value="E:/bsth_control_logs" /> | 6 | + <property name="LOG_BASE" value="/bsth_control_logs" /> |
| 7 | <!-- 控制台输出 --> | 7 | <!-- 控制台输出 --> |
| 8 | <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> | 8 | <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> |
| 9 | 9 | ||
| @@ -353,7 +353,7 @@ | @@ -353,7 +353,7 @@ | ||
| 353 | </logger>--> | 353 | </logger>--> |
| 354 | 354 | ||
| 355 | <!-- 日志输出级别 --> | 355 | <!-- 日志输出级别 --> |
| 356 | - <root level="info"> | 356 | + <root level="error"> |
| 357 | <appender-ref ref="STDOUT" /> | 357 | <appender-ref ref="STDOUT" /> |
| 358 | <appender-ref ref="FILE" /> | 358 | <appender-ref ref="FILE" /> |
| 359 | </root> | 359 | </root> |
src/main/resources/static/pages/video/bus_info.html
0 → 100644
| 1 | +<div class="page-head"> | ||
| 2 | + <div class="page-title"> | ||
| 3 | + <h1>车辆信息管理</h1> | ||
| 4 | + </div> | ||
| 5 | +</div> | ||
| 6 | + | ||
| 7 | +<ul class="page-breadcrumb breadcrumb"> | ||
| 8 | + <li> | ||
| 9 | + <a href="/pages/home.html" data-pjax>首页</a> | ||
| 10 | + <i class="fa fa-circle"></i> | ||
| 11 | + </li> | ||
| 12 | + <li> | ||
| 13 | + <span class="active">基础信息</span> | ||
| 14 | + <i class="fa fa-circle"></i> | ||
| 15 | + </li> | ||
| 16 | + <li> | ||
| 17 | + <span class="active">车辆信息管理</span> | ||
| 18 | + </li> | ||
| 19 | +</ul> | ||
| 20 | + | ||
| 21 | +<div class="row"> | ||
| 22 | + <div class="col-md-12" ng-controller="BusInfoManageCtrl as ctrl"> | ||
| 23 | + <style> | ||
| 24 | + .dropdown-menu { | ||
| 25 | + border-color: #32c5d2; | ||
| 26 | + } | ||
| 27 | + .btn-group > .dropdown-menu:before { | ||
| 28 | + border-bottom-color: #32c5d2; | ||
| 29 | + } | ||
| 30 | + </style> | ||
| 31 | + | ||
| 32 | + <div class="portlet light bordered"> | ||
| 33 | + <div class="portlet-title"> | ||
| 34 | + <div class="caption font-dark"> | ||
| 35 | + <i class="fa fa-database font-dark"></i> | ||
| 36 | + <span class="caption-subject bold uppercase">车辆信息表</span> | ||
| 37 | + </div> | ||
| 38 | + <div class="actions"> | ||
| 39 | + <!--<a href="javascript:" class="btn blue" ng-click="ctrl.goForm()">--> | ||
| 40 | + <!--<i class="fa fa-plus"></i>--> | ||
| 41 | + <!--添加车辆信息--> | ||
| 42 | + <!--</a>--> | ||
| 43 | + </div> | ||
| 44 | + </div> | ||
| 45 | + | ||
| 46 | + <div class="portlet-body"> | ||
| 47 | + <div ui-view="busInfoManage_list"></div> | ||
| 48 | + </div> | ||
| 49 | + </div> | ||
| 50 | + </div> | ||
| 51 | +</div> | ||
| 52 | + |
src/main/resources/static/pages/video/bus_info_list.html
0 → 100644
| 1 | +<!-- ui-route busInfoManage.list --> | ||
| 2 | +<div ng-controller="BusInfoManageListCtrl as ctrl"> | ||
| 3 | + <div class="fixDiv"> | ||
| 4 | + <table class="table fixTable table-striped table-bordered table-hover table-checkable order-column"> | ||
| 5 | + <thead> | ||
| 6 | + <tr role="row" class="heading"> | ||
| 7 | + <th style="width:70px;">序号</th> | ||
| 8 | + <th style="width: 120px;">车辆编号</th> | ||
| 9 | + <th style="width: 120px;">内部编号</th> | ||
| 10 | + <th style="width: 120px;">设备编号</th> | ||
| 11 | + <th style="width: 120px;">车牌号</th> | ||
| 12 | + <th >所在公司</th> | ||
| 13 | + <th >所在分公司</th> | ||
| 14 | + <th style="width: 60px">电车</th> | ||
| 15 | + <th style="width: 80px;" >状态</th> | ||
| 16 | + <th >操作</th> | ||
| 17 | + </tr> | ||
| 18 | + <tr role="row" class="filter"> | ||
| 19 | + <td></td> | ||
| 20 | + <td> | ||
| 21 | + <input type="text" class="form-control form-filter input-sm" ng-model="ctrl.searchCondition().carCode_like" placeholder="输入车辆编号..."/> | ||
| 22 | + </td> | ||
| 23 | + <td> | ||
| 24 | + <input type="text" class="form-control form-filter input-sm" ng-model="ctrl.searchCondition().insideCode_like" placeholder="输入内部编号..."/> | ||
| 25 | + </td> | ||
| 26 | + <td> | ||
| 27 | + <input type="text" class="form-control form-filter input-sm" ng-model="ctrl.searchCondition().equipmentCode_like" placeholder="输入设备编号..."/> | ||
| 28 | + </td> | ||
| 29 | + <td> | ||
| 30 | + <input type="text" class="form-control form-filter input-sm" ng-model="ctrl.searchCondition().carPlate_like" placeholder="输入车牌号..."/> | ||
| 31 | + </td> | ||
| 32 | + <td> | ||
| 33 | + <sa-Select5 name="gs" | ||
| 34 | + model="ctrl.searchCondition()" | ||
| 35 | + cmaps="{'businessCode_eq': 'businessCode'}" | ||
| 36 | + dcname="businessCode_eq" | ||
| 37 | + icname="businessCode" | ||
| 38 | + dsparams="{{ {type: 'ajax', param:{'upCode_eq': '88' }, atype:'gs' } | json }}" | ||
| 39 | + iterobjname="item" | ||
| 40 | + iterobjexp="item.businessName" | ||
| 41 | + searchph="请输拼音..." | ||
| 42 | + searchexp="this.businessName" | ||
| 43 | + required | ||
| 44 | + > | ||
| 45 | + </sa-Select5> | ||
| 46 | + </td> | ||
| 47 | + <td> | ||
| 48 | + <sa-Select5 name="fgs" | ||
| 49 | + model="ctrl.searchCondition()" | ||
| 50 | + cmaps="{'brancheCompanyCode_eq': 'businessCode'}" | ||
| 51 | + dcname="brancheCompanyCode_eq" | ||
| 52 | + icname="businessCode" | ||
| 53 | + dsparams="{{ {type: 'ajax', param:{'upCode_eq': ctrl.searchCondition().businessCode_eq }, atype:'gs' } | json }}" | ||
| 54 | + iterobjname="item" | ||
| 55 | + iterobjexp="item.businessName" | ||
| 56 | + searchph="请输拼音..." | ||
| 57 | + searchexp="this.businessName" | ||
| 58 | + required | ||
| 59 | + > | ||
| 60 | + </sa-Select5> | ||
| 61 | + </td> | ||
| 62 | + <td> | ||
| 63 | + | ||
| 64 | + </td> | ||
| 65 | + <td> | ||
| 66 | + <label class="checkbox-inline input"> | ||
| 67 | + <input type="checkbox" ng-model="ctrl.searchCondition()['scrapState_eq']" />报废 | ||
| 68 | + </label> | ||
| 69 | + </td> | ||
| 70 | + <td> | ||
| 71 | + <div class="btn-group"> | ||
| 72 | + <button class="btn btn-sm green btn-outline filter-submit margin-bottom" style="margin-right: 0;" | ||
| 73 | + ng-click="ctrl.doPage()"> | ||
| 74 | + <i class="fa fa-search"></i> 搜索</button> | ||
| 75 | + <button class="btn btn-sm green btn-outline filter-submit margin-bottom dropdown-toggle" | ||
| 76 | + data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> | ||
| 77 | + <span class="caret"></span> | ||
| 78 | + <span class="sr-only">dropdown</span> | ||
| 79 | + </button> | ||
| 80 | + <ul class="dropdown-menu pull-right"> | ||
| 81 | + <li> | ||
| 82 | + <a href="javascript:" class="tool-action" ng-click="ctrl.customOrder()"> | ||
| 83 | + <i class="fa fa-sort-amount-asc" aria-hidden="true"></i> | ||
| 84 | + 排序选项 | ||
| 85 | + </a> | ||
| 86 | + </li> | ||
| 87 | + </ul> | ||
| 88 | + </div> | ||
| 89 | + | ||
| 90 | + <button class="btn btn-sm red btn-outline filter-cancel" | ||
| 91 | + ng-click="ctrl.reset()"> | ||
| 92 | + <i class="fa fa-times"></i> 重置</button> | ||
| 93 | + </td> | ||
| 94 | + | ||
| 95 | + </tr> | ||
| 96 | + </thead> | ||
| 97 | + <tbody> | ||
| 98 | + <tr ng-repeat="info in ctrl.page()['content']" class="odd gradeX"> | ||
| 99 | + <td> | ||
| 100 | + <div> | ||
| 101 | + <a href="#" | ||
| 102 | + tooltip-animation="false" | ||
| 103 | + tooltip-placement="top" | ||
| 104 | + uib-tooltip="{{'公司/编号:' + info.company + '/' + info.insideCode}}" | ||
| 105 | + tooltip-class="headClass"> | ||
| 106 | + | ||
| 107 | + <i class="fa fa-list-ol" aria-hidden="true"></i> | ||
| 108 | + {{$index + ctrl.page().number * 10 + 1}} | ||
| 109 | + </a> | ||
| 110 | + </div> | ||
| 111 | + </td> | ||
| 112 | + <td> | ||
| 113 | + <span ng-bind="info.carCode"></span> | ||
| 114 | + </td> | ||
| 115 | + <td> | ||
| 116 | + <span ng-bind="info.insideCode"></span> | ||
| 117 | + </td> | ||
| 118 | + <td> | ||
| 119 | + <span ng-bind="info.equipmentCode"></span> | ||
| 120 | + </td> | ||
| 121 | + <td> | ||
| 122 | + <span ng-bind="info.carPlate"></span> | ||
| 123 | + </td> | ||
| 124 | + <td> | ||
| 125 | + <span ng-bind="info.company"></span> | ||
| 126 | + </td> | ||
| 127 | + <td> | ||
| 128 | + <span ng-bind="info.brancheCompany"></span> | ||
| 129 | + </td> | ||
| 130 | + <td> | ||
| 131 | + <span ng-bind="info.sfdc | dict:'truefalseType':'未知' "></span> | ||
| 132 | + </td> | ||
| 133 | + <td> | ||
| 134 | + <span ng-bind="info.scrapState | dict:'truefalseType':'未知' "></span> | ||
| 135 | + </td> | ||
| 136 | + <td> | ||
| 137 | + <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>--> | ||
| 138 | + <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>--> | ||
| 139 | + <a ui-sref="busInfoManage_detail({id: info.id})" class="btn btn-info btn-sm"> 详细 </a> | ||
| 140 | + <!--<a ui-sref="busInfoManage_edit({id: info.id})" class="btn btn-info btn-sm"> 修改 </a>--> | ||
| 141 | + <!--<a sweetalert--> | ||
| 142 | + <!--sweet-options="{title: '是否删除车辆信息?',text: '内部编码:' + info.insideCode + '</br>如果有车辆配置信息关联,会报错,建议不要随便删除!', html: true,type: 'warning',showCancelButton: true,confirmButtonColor: '#DD6B55',confirmButtonText: '是',cancelButtonText: '取消'}"--> | ||
| 143 | + <!--sweet-on-confirm="ctrl.deleteCar(info.id)"--> | ||
| 144 | + <!--class="btn btn-danger btn-sm">删除</a>--> | ||
| 145 | + </td> | ||
| 146 | + </tr> | ||
| 147 | + </tbody> | ||
| 148 | + </table> | ||
| 149 | + </div> | ||
| 150 | + | ||
| 151 | + <div class="pageBar"> | ||
| 152 | + <div class="pageBarLeft"> | ||
| 153 | + {{'显示从' + ctrl.page()['uiFromRecord'] + '到' + ctrl.page()['uiToRecord'] + ' 共' + ctrl.page()['totalElements'] + '条' + ' 每页显示10条'}} | ||
| 154 | + </div> | ||
| 155 | + | ||
| 156 | + <div class="pageBarRight"> | ||
| 157 | + <uib-pagination total-items="ctrl.page()['totalElements']" | ||
| 158 | + ng-model="ctrl.page()['uiNumber']" | ||
| 159 | + ng-change="ctrl.doPage()" | ||
| 160 | + rotate="false" | ||
| 161 | + max-size="10" | ||
| 162 | + boundary-links="true" | ||
| 163 | + first-text="首页" | ||
| 164 | + previous-text="上一页" | ||
| 165 | + next-text="下一页" | ||
| 166 | + last-text="尾页"> | ||
| 167 | + </uib-pagination> | ||
| 168 | + </div> | ||
| 169 | + </div> | ||
| 170 | + | ||
| 171 | +</div> |
src/main/resources/static/pages/video/bus_info_module.js
0 → 100644
| 1 | +// 车辆基础信息维护 service controller等写在一起 | ||
| 2 | + | ||
| 3 | +angular.module('ScheduleApp').factory( | ||
| 4 | + 'BusInfoManageService', | ||
| 5 | + [ | ||
| 6 | + 'BusInfoManageService_g', | ||
| 7 | + 'UserPrincipal', | ||
| 8 | + function(service, UserPrincipal) { | ||
| 9 | + | ||
| 10 | + /** 当前的查询条件信息 */ | ||
| 11 | + var currentSearchCondition = { | ||
| 12 | + page: 0, | ||
| 13 | + "carCode_like" : "", | ||
| 14 | + "insideCode_like" : "", | ||
| 15 | + "equipmentCode_like" : "", | ||
| 16 | + "carPlate_like" : "" | ||
| 17 | + }; | ||
| 18 | + // 当前查询返回的信息 | ||
| 19 | + var currentPage = { // 后台spring data返回的格式 | ||
| 20 | + totalElements: 0, | ||
| 21 | + number: 0, // 后台返回的页码,spring返回从0开始 | ||
| 22 | + content: [], | ||
| 23 | + | ||
| 24 | + uiNumber: 1, // 页面绑定的页码 | ||
| 25 | + uiFromRecord: 0, // 页面绑定,当前页第几条记录 | ||
| 26 | + uiToRecord: 0 // 页面绑定,当前页到第几条记录 | ||
| 27 | + }; | ||
| 28 | + | ||
| 29 | + // 字段描述 | ||
| 30 | + var columns = [ | ||
| 31 | + {name: "carCode", desc: "车辆编号"}, | ||
| 32 | + {name: "insideCode", desc: "自编号"}, | ||
| 33 | + {name: "equipmentCode", desc: "设备编号"}, | ||
| 34 | + {name: "carPlate", desc: "车牌号"}, | ||
| 35 | + {name: "company", desc: "所在公司"}, | ||
| 36 | + {name: "brancheCompany", desc: "所在分公司"}, | ||
| 37 | + {name: "sfdc", desc: "是否电车"}, | ||
| 38 | + {name: "scrapState", desc: "是否报废"}, | ||
| 39 | + {name: "updateDate", desc: "更新时间"} | ||
| 40 | + ]; | ||
| 41 | + // 排序字段 | ||
| 42 | + var orderColumns = { | ||
| 43 | + order: "carCode", | ||
| 44 | + direction: "ASC" | ||
| 45 | + }; | ||
| 46 | + | ||
| 47 | + // 查询对象 | ||
| 48 | + var queryClass = service.rest; | ||
| 49 | + | ||
| 50 | + return { | ||
| 51 | + getQueryClass: function() { | ||
| 52 | + return queryClass; | ||
| 53 | + }, | ||
| 54 | + getColumns: function() { | ||
| 55 | + return columns; | ||
| 56 | + }, | ||
| 57 | + getOrderColumns: function() { | ||
| 58 | + return orderColumns; | ||
| 59 | + }, | ||
| 60 | + /** | ||
| 61 | + * 获取查询条件信息, | ||
| 62 | + * 用于给controller用来和页面数据绑定。 | ||
| 63 | + */ | ||
| 64 | + getSearchCondition: function() { | ||
| 65 | + currentSearchCondition.page = currentPage.uiNumber - 1; | ||
| 66 | + | ||
| 67 | + if (UserPrincipal.getGsStrs().length > 0) { | ||
| 68 | + currentSearchCondition["cgsbm_in"] = UserPrincipal.getGsStrs().join(","); | ||
| 69 | + } | ||
| 70 | + | ||
| 71 | + // 重置排序字段条件 | ||
| 72 | + currentSearchCondition.order = orderColumns.order; | ||
| 73 | + currentSearchCondition.direction = orderColumns.direction; | ||
| 74 | + | ||
| 75 | + return currentSearchCondition; | ||
| 76 | + }, | ||
| 77 | + /** | ||
| 78 | + * 组装查询参数,返回一个promise查询结果。 | ||
| 79 | + * @param params 查询参数 | ||
| 80 | + * @return 返回一个 promise | ||
| 81 | + */ | ||
| 82 | + getPage: function(page) { | ||
| 83 | + if (page) { | ||
| 84 | + currentPage.totalElements = page.totalElements; | ||
| 85 | + currentPage.number = page.number; | ||
| 86 | + currentPage.content = page.content; | ||
| 87 | + | ||
| 88 | + // 计算当前页开始记录,结束记录 | ||
| 89 | + if (page.numberOfElements && page.numberOfElements > 0) { | ||
| 90 | + currentPage.uiFromRecord = page.number * 10 + 1; | ||
| 91 | + currentPage.uiToRecord = page.number * 10 + page.numberOfElements; | ||
| 92 | + } | ||
| 93 | + } | ||
| 94 | + return currentPage; | ||
| 95 | + }, | ||
| 96 | + resetStatus: function() { | ||
| 97 | + currentSearchCondition = {page: 0}; | ||
| 98 | + currentPage = { | ||
| 99 | + totalElements: 0, | ||
| 100 | + number: 0, | ||
| 101 | + content: [], | ||
| 102 | + uiNumber: 1, | ||
| 103 | + uiFromRecord: 0, | ||
| 104 | + uiToRecord: 0 | ||
| 105 | + }; | ||
| 106 | + }, | ||
| 107 | + | ||
| 108 | + /** | ||
| 109 | + * 数据导出。 | ||
| 110 | + * @returns {*|Function|promise|n} | ||
| 111 | + */ | ||
| 112 | + dataExport: function(query) { | ||
| 113 | + if (UserPrincipal.getGsStrsQuery().length > 0) { | ||
| 114 | + return service.dataTools.dataExport( | ||
| 115 | + {'QUERY': query} | ||
| 116 | + ).$promise; | ||
| 117 | + } else { | ||
| 118 | + return null; | ||
| 119 | + } | ||
| 120 | + } | ||
| 121 | + }; | ||
| 122 | + | ||
| 123 | + } | ||
| 124 | + ] | ||
| 125 | +); | ||
| 126 | + | ||
| 127 | +// index.html控制器 | ||
| 128 | +angular.module('ScheduleApp').controller( | ||
| 129 | + 'BusInfoManageCtrl', | ||
| 130 | + [ | ||
| 131 | + 'BusInfoManageService', | ||
| 132 | + '$state', | ||
| 133 | + '$uibModal', | ||
| 134 | + 'FileDownload_g', | ||
| 135 | + 'UserPrincipal', | ||
| 136 | + function(busInfoManageService, $state, $uibModal, fileDownload, UserPrincipal) { | ||
| 137 | + var self = this; | ||
| 138 | + | ||
| 139 | + // 切换到form状态 | ||
| 140 | + self.goForm = function() { | ||
| 141 | + //alert("切换"); | ||
| 142 | + $state.go("busInfoManage_form"); | ||
| 143 | + }; | ||
| 144 | + | ||
| 145 | + // 导入excel | ||
| 146 | + self.importData = function() { | ||
| 147 | + // large方式弹出模态对话框 | ||
| 148 | + var modalInstance = $uibModal.open({ | ||
| 149 | + templateUrl: '/pages/scheduleApp/module/basicInfo/busInfoManage/dataImport.html', | ||
| 150 | + size: "lg", | ||
| 151 | + animation: true, | ||
| 152 | + backdrop: 'static', | ||
| 153 | + resolve: { | ||
| 154 | + // 可以传值给controller | ||
| 155 | + }, | ||
| 156 | + windowClass: 'center-modal', | ||
| 157 | + controller: "BusInfoManageToolsCtrl", | ||
| 158 | + controllerAs: "ctrl", | ||
| 159 | + bindToController: true | ||
| 160 | + }); | ||
| 161 | + modalInstance.result.then( | ||
| 162 | + function() { | ||
| 163 | + console.log("dataImport.html打开"); | ||
| 164 | + }, | ||
| 165 | + function() { | ||
| 166 | + console.log("dataImport.html消失"); | ||
| 167 | + } | ||
| 168 | + ); | ||
| 169 | + }; | ||
| 170 | + | ||
| 171 | + // 导出excel | ||
| 172 | + self.exportData = function() { | ||
| 173 | + // 组装查询条件 | ||
| 174 | + var QUERY = []; | ||
| 175 | + var fgs_query = []; | ||
| 176 | + var i; | ||
| 177 | + for (i in UserPrincipal.getGsStrs()) { | ||
| 178 | + fgs_query.push("'" + UserPrincipal.getGsStrs()[i] + "'"); | ||
| 179 | + } | ||
| 180 | + QUERY.push(" concat(business_code, '_', branche_company_code) in " + "(" + fgs_query.join(",") + ")"); | ||
| 181 | + var key_map = { | ||
| 182 | + "car_code": "carCode_like", | ||
| 183 | + "inside_code": "insideCode_like", | ||
| 184 | + "equipment_code": "equipmentCode_like", | ||
| 185 | + "car_plate": "carPlate_like" | ||
| 186 | + }; | ||
| 187 | + | ||
| 188 | + var key; | ||
| 189 | + var value; | ||
| 190 | + var field; | ||
| 191 | + var condition = busInfoManageService.getSearchCondition(); | ||
| 192 | + for (key in key_map) { | ||
| 193 | + value = condition[key_map[key]]; | ||
| 194 | + if (value !== undefined && value !== "") { | ||
| 195 | + field = key; | ||
| 196 | + QUERY.push(field + " = " + "'" + value + "'"); | ||
| 197 | + } | ||
| 198 | + } | ||
| 199 | + | ||
| 200 | + var p = busInfoManageService.dataExport(QUERY.join(" and ")); | ||
| 201 | + if (p) { | ||
| 202 | + p.then( | ||
| 203 | + function(result) { | ||
| 204 | + fileDownload.downloadFile(result.data, "application/octet-stream", "车辆基础信息.xls"); | ||
| 205 | + }, | ||
| 206 | + function(result) { | ||
| 207 | + console.log("exportData failed:" + result); | ||
| 208 | + } | ||
| 209 | + ); | ||
| 210 | + } | ||
| 211 | + | ||
| 212 | + }; | ||
| 213 | + } | ||
| 214 | + ] | ||
| 215 | +); | ||
| 216 | + | ||
| 217 | +angular.module('ScheduleApp').controller('BusInfoManageToolsCtrl', ['$modalInstance', 'FileUploader', function($modalInstance, FileUploader) { | ||
| 218 | + var self = this; | ||
| 219 | + self.data = "TODO"; | ||
| 220 | + | ||
| 221 | + // 关闭窗口 | ||
| 222 | + self.close = function() { | ||
| 223 | + $modalInstance.dismiss("cancel"); | ||
| 224 | + }; | ||
| 225 | + | ||
| 226 | + self.clearInputFile = function() { | ||
| 227 | + angular.element("input[type='file']").val(null); | ||
| 228 | + }; | ||
| 229 | + | ||
| 230 | + // 上传文件组件 | ||
| 231 | + self.uploader = new FileUploader({ | ||
| 232 | + url: "/cars_sc/uploadAndImportFile", | ||
| 233 | + filters: [] // 用于过滤文件,比如只允许导入excel | ||
| 234 | + }); | ||
| 235 | + self.uploader.onAfterAddingFile = function(fileItem) | ||
| 236 | + { | ||
| 237 | + console.info('onAfterAddingFile', fileItem); | ||
| 238 | + console.log(self.uploader.queue.length); | ||
| 239 | + if (self.uploader.queue.length > 1) | ||
| 240 | + self.uploader.removeFromQueue(0); | ||
| 241 | + }; | ||
| 242 | + self.uploader.onSuccessItem = function(fileItem, response, status, headers) | ||
| 243 | + { | ||
| 244 | + if (response.status == "SUCCESS") { | ||
| 245 | + console.info('onSuccessItem', fileItem, response, status, headers); | ||
| 246 | + } else { | ||
| 247 | + fileItem.isSuccess = false; | ||
| 248 | + fileItem.isCancel = false; | ||
| 249 | + fileItem.isError = true; | ||
| 250 | + | ||
| 251 | + alert(response.msg); | ||
| 252 | + } | ||
| 253 | + | ||
| 254 | + }; | ||
| 255 | + self.uploader.onErrorItem = function(fileItem, response, status, headers) | ||
| 256 | + { | ||
| 257 | + console.info('onErrorItem', fileItem, response, status, headers); | ||
| 258 | + }; | ||
| 259 | + | ||
| 260 | +}]); | ||
| 261 | + | ||
| 262 | +// list.html控制器 | ||
| 263 | +angular.module('ScheduleApp').controller( | ||
| 264 | + 'BusInfoManageListCtrl', | ||
| 265 | + [ | ||
| 266 | + 'BusInfoManageService', | ||
| 267 | + '$uibModal', | ||
| 268 | + function(service, $uibModal) { | ||
| 269 | + var self = this; | ||
| 270 | + var Cars = service.getQueryClass(); | ||
| 271 | + | ||
| 272 | + self.page = function() { | ||
| 273 | + return service.getPage(); | ||
| 274 | + }; | ||
| 275 | + | ||
| 276 | + self.searchCondition = function() { | ||
| 277 | + return service.getSearchCondition(); | ||
| 278 | + }; | ||
| 279 | + | ||
| 280 | + self.doPage = function() { | ||
| 281 | + var result = Cars.list(self.searchCondition(), function() { | ||
| 282 | + if (!result.status) { | ||
| 283 | + service.getPage(result); | ||
| 284 | + } | ||
| 285 | + }); | ||
| 286 | + }; | ||
| 287 | + self.reset = function() { | ||
| 288 | + service.resetStatus(); | ||
| 289 | + var result = Cars.list(self.searchCondition(), function() { | ||
| 290 | + if (!result.status) { | ||
| 291 | + service.getPage(result); | ||
| 292 | + } | ||
| 293 | + }); | ||
| 294 | + }; | ||
| 295 | + | ||
| 296 | + self.deleteCar = function(id) { | ||
| 297 | + Cars.delete({id: id}, function(result) { | ||
| 298 | + if (result.msg) { // 暂时这样做,之后全局拦截 | ||
| 299 | + alert("失败:" + result.msg); | ||
| 300 | + } else { | ||
| 301 | + self.doPage(); | ||
| 302 | + } | ||
| 303 | + }); | ||
| 304 | + }; | ||
| 305 | + | ||
| 306 | + self.doPage(); | ||
| 307 | + | ||
| 308 | + self.customOrder = function() { | ||
| 309 | + // large方式弹出模态对话框 | ||
| 310 | + var modalInstance = $uibModal.open({ | ||
| 311 | + templateUrl: '/pages/scheduleApp/module/basicInfo/busInfoManage/orderOptionOpen.html', | ||
| 312 | + // size: "sm", | ||
| 313 | + animation: true, | ||
| 314 | + backdrop: 'static', | ||
| 315 | + resolve: { | ||
| 316 | + }, | ||
| 317 | + windowClass: 'order-option-modal', | ||
| 318 | + controller: "BusInfoManageListOrderOptionModalInstanceCtrl", | ||
| 319 | + controllerAs: "$ctrl", | ||
| 320 | + bindToController: true | ||
| 321 | + }); | ||
| 322 | + modalInstance.result.then( | ||
| 323 | + function(result) { | ||
| 324 | + console.log("dataImport.html打开"); | ||
| 325 | + }, | ||
| 326 | + function() { | ||
| 327 | + console.log("dataImport.html消失"); | ||
| 328 | + } | ||
| 329 | + ); | ||
| 330 | + }; | ||
| 331 | + } | ||
| 332 | + ] | ||
| 333 | +); | ||
| 334 | + | ||
| 335 | +angular.module('ScheduleApp').controller( | ||
| 336 | + "BusInfoManageListOrderOptionModalInstanceCtrl", | ||
| 337 | + [ | ||
| 338 | + "BusInfoManageService", | ||
| 339 | + "$modalInstance", | ||
| 340 | + function(service, $modalInstance) { | ||
| 341 | + var self = this; | ||
| 342 | + | ||
| 343 | + self.columns = service.getColumns(); | ||
| 344 | + self.orderColumns = service.getOrderColumns(); | ||
| 345 | + | ||
| 346 | + self.confirm = function(result) { | ||
| 347 | + // console.log(result); | ||
| 348 | + // console.log(service.getOrderColumns()); | ||
| 349 | + $modalInstance.dismiss("cancel"); | ||
| 350 | + | ||
| 351 | + } | ||
| 352 | + } | ||
| 353 | + ] | ||
| 354 | +); | ||
| 355 | + | ||
| 356 | +// form.html控制器 | ||
| 357 | +angular.module('ScheduleApp').controller( | ||
| 358 | + 'BusInfoManageFormCtrl', | ||
| 359 | + [ | ||
| 360 | + 'BusInfoManageService', | ||
| 361 | + '$stateParams', | ||
| 362 | + '$state', | ||
| 363 | + 'DataStore', | ||
| 364 | + function(service, $stateParams, $state, DataStore) { | ||
| 365 | + var self = this; | ||
| 366 | + var Cars = service.getQueryClass(); | ||
| 367 | + | ||
| 368 | + // 报废日期 日期控件开关 | ||
| 369 | + self.scrapDateOpen = false; | ||
| 370 | + self.scrapDate_open = function() { | ||
| 371 | + self.scrapDateOpen = true; | ||
| 372 | + }; | ||
| 373 | + | ||
| 374 | + // 启用日期 日期控件开关 | ||
| 375 | + self.openDateOpen = false; | ||
| 376 | + self.openDate_open = function() { | ||
| 377 | + self.openDateOpen = true; | ||
| 378 | + }; | ||
| 379 | + // 取消日期 日期控件开关 | ||
| 380 | + self.closeDateOpen = false; | ||
| 381 | + self.closeDate_open = function() { | ||
| 382 | + self.closeDateOpen = true; | ||
| 383 | + }; | ||
| 384 | + | ||
| 385 | + // 欲保存的busInfo信息,绑定 | ||
| 386 | + self.busInfoForSave = new Cars; | ||
| 387 | + | ||
| 388 | + // 获取传过来的id,有的话就是修改,获取一遍数据 | ||
| 389 | + var id = $stateParams.id; | ||
| 390 | + if (id) { | ||
| 391 | + self.busInfoForSave = Cars.get({id: id}, function() {}); | ||
| 392 | + } | ||
| 393 | + | ||
| 394 | + // 提交方法 | ||
| 395 | + self.submit = function() { | ||
| 396 | + console.log(self.busInfoForSave); | ||
| 397 | + | ||
| 398 | + // // 报废的车辆,修改原来的车辆终端号 | ||
| 399 | + // if (self.busInfoForSave.scrapState == true) { | ||
| 400 | + // self.busInfoForSave.equipmentCode = "BF-" + self.busInfoForSave.equipmentCode; | ||
| 401 | + // self.busInfoForSave.scrapCode = "BF-" + self.busInfoForSave.equipmentCode; | ||
| 402 | + // } | ||
| 403 | + | ||
| 404 | + | ||
| 405 | + // 保存或者更新 | ||
| 406 | + self.busInfoForSave.$save(function() { | ||
| 407 | + DataStore.refreshData("cl"); | ||
| 408 | + $state.go("busInfoManage"); | ||
| 409 | + }); | ||
| 410 | + }; | ||
| 411 | + } | ||
| 412 | + ] | ||
| 413 | +); | ||
| 414 | + | ||
| 415 | +// detail.html控制器 | ||
| 416 | +angular.module('ScheduleApp').controller( | ||
| 417 | + 'BusInfoManageDetailCtrl', | ||
| 418 | + [ | ||
| 419 | + 'BusInfoManageService', | ||
| 420 | + '$stateParams', | ||
| 421 | + function(service, $stateParams) { | ||
| 422 | + var self = this; | ||
| 423 | + var Cars = service.getQueryClass(); | ||
| 424 | + var id = $stateParams.id; | ||
| 425 | + | ||
| 426 | + self.title = ""; | ||
| 427 | + self.busInfoForDetail = {}; | ||
| 428 | + | ||
| 429 | + // 当转向到此页面时,就获取明细信息并绑定 | ||
| 430 | + self.busInfoForDetail = Cars.get({id: id}, function() { | ||
| 431 | + self.title = "车辆 " + self.busInfoForDetail.insideCode + " 详细信息"; | ||
| 432 | + }); | ||
| 433 | + } | ||
| 434 | + ] | ||
| 435 | +); |
src/main/resources/static/pages/video/bus_info_route.js
0 → 100644
| 1 | +// ui route 配置 | ||
| 2 | + | ||
| 3 | +/** 车辆基础信息模块配置route */ | ||
| 4 | +ScheduleApp.config([ | ||
| 5 | + '$stateProvider', | ||
| 6 | + '$urlRouterProvider', | ||
| 7 | + function($stateProvider, $urlRouterProvider) { | ||
| 8 | + // 默认路由 | ||
| 9 | + //$urlRouterProvider.otherwise('/busConfig.html'); | ||
| 10 | + | ||
| 11 | + $stateProvider | ||
| 12 | + .state("busInfoManage", { // index页面 | ||
| 13 | + url: '/busInfoManage', | ||
| 14 | + views: { | ||
| 15 | + "": { | ||
| 16 | + templateUrl: 'pages/scheduleApp/module/basicInfo/busInfoManage/index.html' | ||
| 17 | + }, | ||
| 18 | + "busInfoManage_list@busInfoManage": { | ||
| 19 | + templateUrl: 'pages/scheduleApp/module/basicInfo/busInfoManage/list.html' | ||
| 20 | + } | ||
| 21 | + }, | ||
| 22 | + | ||
| 23 | + resolve: { | ||
| 24 | + deps: ['$ocLazyLoad', function($ocLazyLoad) { | ||
| 25 | + return $ocLazyLoad.load({ | ||
| 26 | + name: 'busInfoManage_module', | ||
| 27 | + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置 | ||
| 28 | + files: [ | ||
| 29 | + "assets/bower_components/angular-ui-select/dist/select.min.css", | ||
| 30 | + "assets/bower_components/angular-ui-select/dist/select.min.js", | ||
| 31 | + "assets/bower_components/angular-file-upload/dist/angular-file-upload.min.js", | ||
| 32 | + "pages/scheduleApp/module/basicInfo/busInfoManage/module.js" | ||
| 33 | + ] | ||
| 34 | + }); | ||
| 35 | + }] | ||
| 36 | + } | ||
| 37 | + }) | ||
| 38 | + .state("busInfoManage_form", { // 添加车辆form | ||
| 39 | + url: '/busInfoManage_form', | ||
| 40 | + views: { | ||
| 41 | + "": {templateUrl: 'pages/scheduleApp/module/basicInfo/busInfoManage/form.html'} | ||
| 42 | + }, | ||
| 43 | + resolve: { | ||
| 44 | + deps: ['$ocLazyLoad', function($ocLazyLoad) { | ||
| 45 | + return $ocLazyLoad.load({ | ||
| 46 | + name: 'busInfoManage_form_module', | ||
| 47 | + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置 | ||
| 48 | + files: [ | ||
| 49 | + "assets/bower_components/angular-ui-select/dist/select.min.css", | ||
| 50 | + "assets/bower_components/angular-ui-select/dist/select.min.js", | ||
| 51 | + "pages/scheduleApp/module/basicInfo/busInfoManage/module.js" | ||
| 52 | + ] | ||
| 53 | + }); | ||
| 54 | + }] | ||
| 55 | + } | ||
| 56 | + }) | ||
| 57 | + .state("busInfoManage_edit", { // 修改车辆form | ||
| 58 | + url: '/busInfoManage_edit/:id', | ||
| 59 | + views: { | ||
| 60 | + "": {templateUrl: 'pages/scheduleApp/module/basicInfo/busInfoManage/edit.html'} | ||
| 61 | + }, | ||
| 62 | + resolve: { | ||
| 63 | + deps: ['$ocLazyLoad', function($ocLazyLoad) { | ||
| 64 | + return $ocLazyLoad.load({ | ||
| 65 | + name: 'busInfoManage_edit_module', | ||
| 66 | + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置 | ||
| 67 | + files: [ | ||
| 68 | + "assets/bower_components/angular-ui-select/dist/select.min.css", | ||
| 69 | + "assets/bower_components/angular-ui-select/dist/select.min.js", | ||
| 70 | + "pages/scheduleApp/module/basicInfo/busInfoManage/module.js" | ||
| 71 | + ] | ||
| 72 | + }); | ||
| 73 | + }] | ||
| 74 | + } | ||
| 75 | + }) | ||
| 76 | + .state("busInfoManage_detail", { // 车辆详细信息 | ||
| 77 | + url: '/busInfoManage_detail/:id', | ||
| 78 | + views: { | ||
| 79 | + "": {templateUrl: 'pages/scheduleApp/module/basicInfo/busInfoManage/detail.html'} | ||
| 80 | + }, | ||
| 81 | + resolve: { | ||
| 82 | + deps: ['$ocLazyLoad', function($ocLazyLoad) { | ||
| 83 | + return $ocLazyLoad.load({ | ||
| 84 | + name: 'busInfoManage_detail_module', | ||
| 85 | + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置 | ||
| 86 | + files: [ | ||
| 87 | + "pages/scheduleApp/module/basicInfo/busInfoManage/module.js" | ||
| 88 | + ] | ||
| 89 | + }); | ||
| 90 | + }] | ||
| 91 | + } | ||
| 92 | + }) | ||
| 93 | + } | ||
| 94 | +]); | ||
| 0 | \ No newline at end of file | 95 | \ No newline at end of file |
src/main/resources/static/pages/video/css/layui.css
0 → 100644
| 1 | +blockquote,body,button,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,input,li,ol,p,pre,td,textarea,th,ul{margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}a:active,a:hover{outline:0}img{display:inline-block;border:none;vertical-align:middle}li{list-style:none}table{border-collapse:collapse;border-spacing:0}h1,h2,h3,h4{font-weight:700}h5,h6{font-weight:500;font-size:100%}button,input,select,textarea{font-size:100%}button,input,optgroup,option,select,textarea{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;outline:0}pre{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}body{line-height:1.6;color:#333;color:rgba(0,0,0,.85);font:14px Helvetica Neue,Helvetica,PingFang SC,Tahoma,Arial,sans-serif}hr{height:0;line-height:0;margin:10px 0;padding:0;border:none;border-bottom:1px solid #eee;clear:both;overflow:hidden;background:0 0}a{color:#333;text-decoration:none}a:hover{color:#777}a cite{font-style:normal;*cursor:pointer}.layui-border-box,.layui-border-box *{box-sizing:border-box}.layui-box,.layui-box *{box-sizing:content-box}.layui-clear{clear:both;*zoom:1}.layui-clear:after{content:'\20';clear:both;*zoom:1;display:block;height:0}.layui-clear-space{word-spacing:-5px}.layui-inline{position:relative;display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.layui-edge{position:relative;display:inline-block;vertical-align:middle;width:0;height:0;border-width:6px;border-style:dashed;border-color:transparent;overflow:hidden}.layui-edge-top{top:-4px;border-bottom-color:#999;border-bottom-style:solid}.layui-edge-right{border-left-color:#999;border-left-style:solid}.layui-edge-bottom{top:2px;border-top-color:#999;border-top-style:solid}.layui-edge-left{border-right-color:#999;border-right-style:solid}.layui-elip{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-disabled,.layui-icon,.layui-unselect{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-disabled,.layui-disabled:hover{color:#d2d2d2!important;cursor:not-allowed!important}.layui-circle{border-radius:100%}.layui-show{display:block!important}.layui-hide{display:none!important}.layui-show-v{visibility:visible!important}.layui-hide-v{visibility:hidden!important}@font-face{font-family:layui-icon;src:url(../font/iconfont.eot?v=282);src:url(../font/iconfont.eot?v=282#iefix) format('embedded-opentype'),url(../font/iconfont.woff2?v=282) format('woff2'),url(../font/iconfont.woff?v=282) format('woff'),url(../font/iconfont.ttf?v=282) format('truetype'),url(../font/iconfont.svg?v=282#layui-icon) format('svg')}.layui-icon{font-family:layui-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-icon-leaf:before{content:"\e701"}.layui-icon-folder:before{content:"\eabe"}.layui-icon-folder-open:before{content:"\eac1"}.layui-icon-gitee:before{content:"\e69b"}.layui-icon-github:before{content:"\e6a7"}.layui-icon-disabled:before{content:"\e6cc"}.layui-icon-moon:before{content:"\e6c2"}.layui-icon-error:before{content:"\e693"}.layui-icon-success:before{content:"\e697"}.layui-icon-question:before{content:"\e699"}.layui-icon-lock:before{content:"\e69a"}.layui-icon-eye:before{content:"\e695"}.layui-icon-eye-invisible:before{content:"\e696"}.layui-icon-backspace:before{content:"\e694"}.layui-icon-tips-fill:before{content:"\eb2e"}.layui-icon-test:before{content:"\e692"}.layui-icon-clear:before{content:"\e788"}.layui-icon-heart-fill:before{content:"\e68f"}.layui-icon-light:before{content:"\e748"}.layui-icon-music:before{content:"\e690"}.layui-icon-time:before{content:"\e68d"}.layui-icon-ie:before{content:"\e7bb"}.layui-icon-firefox:before{content:"\e686"}.layui-icon-at:before{content:"\e687"}.layui-icon-bluetooth:before{content:"\e689"}.layui-icon-chrome:before{content:"\e68a"}.layui-icon-edge:before{content:"\e68b"}.layui-icon-heart:before{content:"\e68c"}.layui-icon-key:before{content:"\e683"}.layui-icon-android:before{content:"\e684"}.layui-icon-mike:before{content:"\e6dc"}.layui-icon-mute:before{content:"\e685"}.layui-icon-gift:before{content:"\e627"}.layui-icon-windows:before{content:"\e67f"}.layui-icon-ios:before{content:"\e680"}.layui-icon-logout:before{content:"\e682"}.layui-icon-wifi:before{content:"\e7e0"}.layui-icon-rss:before{content:"\e808"}.layui-icon-email:before{content:"\e618"}.layui-icon-reduce-circle:before{content:"\e616"}.layui-icon-transfer:before{content:"\e691"}.layui-icon-service:before{content:"\e626"}.layui-icon-addition:before{content:"\e624"}.layui-icon-subtraction:before{content:"\e67e"}.layui-icon-slider:before{content:"\e714"}.layui-icon-print:before{content:"\e66d"}.layui-icon-export:before{content:"\e67d"}.layui-icon-cols:before{content:"\e610"}.layui-icon-screen-full:before{content:"\e622"}.layui-icon-screen-restore:before{content:"\e758"}.layui-icon-rate-half:before{content:"\e6c9"}.layui-icon-rate-solid:before{content:"\e67a"}.layui-icon-rate:before{content:"\e67b"}.layui-icon-cellphone:before{content:"\e678"}.layui-icon-vercode:before{content:"\e679"}.layui-icon-login-weibo:before{content:"\e675"}.layui-icon-login-qq:before{content:"\e676"}.layui-icon-login-wechat:before{content:"\e677"}.layui-icon-username:before{content:"\e66f"}.layui-icon-password:before{content:"\e673"}.layui-icon-refresh-3:before{content:"\e9aa"}.layui-icon-auz:before{content:"\e672"}.layui-icon-shrink-right:before{content:"\e668"}.layui-icon-spread-left:before{content:"\e66b"}.layui-icon-snowflake:before{content:"\e6b1"}.layui-icon-tips:before{content:"\e702"}.layui-icon-note:before{content:"\e66e"}.layui-icon-senior:before{content:"\e674"}.layui-icon-refresh-1:before{content:"\e666"}.layui-icon-refresh:before{content:"\e669"}.layui-icon-flag:before{content:"\e66c"}.layui-icon-theme:before{content:"\e66a"}.layui-icon-notice:before{content:"\e667"}.layui-icon-console:before{content:"\e665"}.layui-icon-website:before{content:"\e7ae"}.layui-icon-face-surprised:before{content:"\e664"}.layui-icon-set:before{content:"\e716"}.layui-icon-template:before{content:"\e663"}.layui-icon-app:before{content:"\e653"}.layui-icon-template-1:before{content:"\e656"}.layui-icon-home:before{content:"\e68e"}.layui-icon-female:before{content:"\e661"}.layui-icon-male:before{content:"\e662"}.layui-icon-tread:before{content:"\e6c5"}.layui-icon-praise:before{content:"\e6c6"}.layui-icon-rmb:before{content:"\e65e"}.layui-icon-more:before{content:"\e65f"}.layui-icon-camera:before{content:"\e660"}.layui-icon-cart-simple:before{content:"\e698"}.layui-icon-face-cry:before{content:"\e69c"}.layui-icon-face-smile:before{content:"\e6af"}.layui-icon-survey:before{content:"\e6b2"}.layui-icon-read:before{content:"\e705"}.layui-icon-location:before{content:"\e715"}.layui-icon-dollar:before{content:"\e659"}.layui-icon-diamond:before{content:"\e735"}.layui-icon-return:before{content:"\e65c"}.layui-icon-camera-fill:before{content:"\e65d"}.layui-icon-fire:before{content:"\e756"}.layui-icon-more-vertical:before{content:"\e671"}.layui-icon-cart:before{content:"\e657"}.layui-icon-star-fill:before{content:"\e658"}.layui-icon-prev:before{content:"\e65a"}.layui-icon-next:before{content:"\e65b"}.layui-icon-upload:before{content:"\e67c"}.layui-icon-upload-drag:before{content:"\e681"}.layui-icon-user:before{content:"\e770"}.layui-icon-file-b:before{content:"\e655"}.layui-icon-component:before{content:"\e857"}.layui-icon-find-fill:before{content:"\e670"}.layui-icon-loading:before{content:"\e63d"}.layui-icon-loading-1:before{content:"\e63e"}.layui-icon-add-1:before{content:"\e654"}.layui-icon-pause:before{content:"\e651"}.layui-icon-play:before{content:"\e652"}.layui-icon-video:before{content:"\e6ed"}.layui-icon-headset:before{content:"\e6fc"}.layui-icon-voice:before{content:"\e688"}.layui-icon-speaker:before{content:"\e645"}.layui-icon-fonts-del:before{content:"\e64f"}.layui-icon-fonts-html:before{content:"\e64b"}.layui-icon-fonts-code:before{content:"\e64e"}.layui-icon-fonts-strong:before{content:"\e62b"}.layui-icon-unlink:before{content:"\e64d"}.layui-icon-picture:before{content:"\e64a"}.layui-icon-link:before{content:"\e64c"}.layui-icon-face-smile-b:before{content:"\e650"}.layui-icon-align-center:before{content:"\e647"}.layui-icon-align-right:before{content:"\e648"}.layui-icon-align-left:before{content:"\e649"}.layui-icon-fonts-u:before{content:"\e646"}.layui-icon-fonts-i:before{content:"\e644"}.layui-icon-tabs:before{content:"\e62a"}.layui-icon-circle:before{content:"\e63f"}.layui-icon-radio:before{content:"\e643"}.layui-icon-share:before{content:"\e641"}.layui-icon-edit:before{content:"\e642"}.layui-icon-delete:before{content:"\e640"}.layui-icon-engine:before{content:"\e628"}.layui-icon-chart-screen:before{content:"\e629"}.layui-icon-chart:before{content:"\e62c"}.layui-icon-table:before{content:"\e62d"}.layui-icon-tree:before{content:"\e62e"}.layui-icon-upload-circle:before{content:"\e62f"}.layui-icon-templeate-1:before{content:"\e630"}.layui-icon-util:before{content:"\e631"}.layui-icon-layouts:before{content:"\e632"}.layui-icon-prev-circle:before{content:"\e633"}.layui-icon-carousel:before{content:"\e634"}.layui-icon-code-circle:before{content:"\e635"}.layui-icon-water:before{content:"\e636"}.layui-icon-date:before{content:"\e637"}.layui-icon-layer:before{content:"\e638"}.layui-icon-fonts-clear:before{content:"\e639"}.layui-icon-dialogue:before{content:"\e63a"}.layui-icon-cellphone-fine:before{content:"\e63b"}.layui-icon-form:before{content:"\e63c"}.layui-icon-file:before{content:"\e621"}.layui-icon-triangle-r:before{content:"\e623"}.layui-icon-triangle-d:before{content:"\e625"}.layui-icon-set-sm:before{content:"\e620"}.layui-icon-add-circle:before{content:"\e61f"}.layui-icon-layim-download:before{content:"\e61e"}.layui-icon-layim-uploadfile:before{content:"\e61d"}.layui-icon-404:before{content:"\e61c"}.layui-icon-about:before{content:"\e60b"}.layui-icon-layim-theme:before{content:"\e61b"}.layui-icon-down:before{content:"\e61a"}.layui-icon-up:before{content:"\e619"}.layui-icon-circle-dot:before{content:"\e617"}.layui-icon-set-fill:before{content:"\e614"}.layui-icon-search:before{content:"\e615"}.layui-icon-friends:before{content:"\e612"}.layui-icon-group:before{content:"\e613"}.layui-icon-reply-fill:before{content:"\e611"}.layui-icon-menu-fill:before{content:"\e60f"}.layui-icon-face-smile-fine:before{content:"\e60c"}.layui-icon-picture-fine:before{content:"\e60d"}.layui-icon-log:before{content:"\e60e"}.layui-icon-list:before{content:"\e60a"}.layui-icon-release:before{content:"\e609"}.layui-icon-add-circle-fine:before{content:"\e608"}.layui-icon-ok:before{content:"\e605"}.layui-icon-help:before{content:"\e607"}.layui-icon-chat:before{content:"\e606"}.layui-icon-top:before{content:"\e604"}.layui-icon-right:before{content:"\e602"}.layui-icon-left:before{content:"\e603"}.layui-icon-star:before{content:"\e600"}.layui-icon-download-circle:before{content:"\e601"}.layui-icon-close:before{content:"\1006"}.layui-icon-close-fill:before{content:"\1007"}.layui-icon-ok-circle:before{content:"\1005"}.layui-main{position:relative;width:1160px;margin:0 auto}.layui-header{position:relative;z-index:1000;height:60px}.layui-header a:hover{transition:all .5s;-webkit-transition:all .5s}.layui-side{position:fixed;left:0;top:0;bottom:0;z-index:999;width:200px;overflow-x:hidden}.layui-side-scroll{position:relative;width:220px;height:100%;overflow-x:hidden}.layui-body{position:relative;left:200px;right:0;top:0;bottom:0;z-index:900;width:auto;box-sizing:border-box}.layui-layout-body{overflow-x:hidden}.layui-layout-admin .layui-header{position:fixed;top:0;left:0;right:0;background-color:#23292e}.layui-layout-admin .layui-side{top:60px;width:200px;overflow-x:hidden}.layui-layout-admin .layui-body{position:absolute;top:60px;padding-bottom:44px}.layui-layout-admin .layui-main{width:auto;margin:0 15px}.layui-layout-admin .layui-footer{position:fixed;left:200px;right:0;bottom:0;z-index:990;height:44px;line-height:44px;padding:0 15px;box-shadow:-1px 0 4px rgb(0 0 0 / 12%);background-color:#fafafa}.layui-layout-admin .layui-logo{position:absolute;left:0;top:0;width:200px;height:100%;line-height:60px;text-align:center;color:#16baaa;font-size:16px;box-shadow:0 1px 2px 0 rgb(0 0 0 / 15%)}.layui-layout-admin .layui-header .layui-nav{background:0 0}.layui-layout-left{position:absolute!important;left:200px;top:0}.layui-layout-right{position:absolute!important;right:0;top:0}.layui-container{position:relative;margin:0 auto;box-sizing:border-box}.layui-fluid{position:relative;margin:0 auto;padding:0 15px}.layui-row:after,.layui-row:before{content:"";display:block;clear:both}.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9,.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9,.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9,.layui-col-xl1,.layui-col-xl10,.layui-col-xl11,.layui-col-xl12,.layui-col-xl2,.layui-col-xl3,.layui-col-xl4,.layui-col-xl5,.layui-col-xl6,.layui-col-xl7,.layui-col-xl8,.layui-col-xl9,.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{position:relative;display:block;box-sizing:border-box}.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{float:left}.layui-col-xs1{width:8.33333333%}.layui-col-xs2{width:16.66666667%}.layui-col-xs3{width:25%}.layui-col-xs4{width:33.33333333%}.layui-col-xs5{width:41.66666667%}.layui-col-xs6{width:50%}.layui-col-xs7{width:58.33333333%}.layui-col-xs8{width:66.66666667%}.layui-col-xs9{width:75%}.layui-col-xs10{width:83.33333333%}.layui-col-xs11{width:91.66666667%}.layui-col-xs12{width:100%}.layui-col-xs-offset1{margin-left:8.33333333%}.layui-col-xs-offset2{margin-left:16.66666667%}.layui-col-xs-offset3{margin-left:25%}.layui-col-xs-offset4{margin-left:33.33333333%}.layui-col-xs-offset5{margin-left:41.66666667%}.layui-col-xs-offset6{margin-left:50%}.layui-col-xs-offset7{margin-left:58.33333333%}.layui-col-xs-offset8{margin-left:66.66666667%}.layui-col-xs-offset9{margin-left:75%}.layui-col-xs-offset10{margin-left:83.33333333%}.layui-col-xs-offset11{margin-left:91.66666667%}.layui-col-xs-offset12{margin-left:100%}@media screen and (max-width:767.98px){.layui-container{padding:0 15px}.layui-hide-xs{display:none!important}.layui-show-xs-block{display:block!important}.layui-show-xs-inline{display:inline!important}.layui-show-xs-inline-block{display:inline-block!important}}@media screen and (min-width:768px){.layui-container{width:720px}.layui-hide-sm{display:none!important}.layui-show-sm-block{display:block!important}.layui-show-sm-inline{display:inline!important}.layui-show-sm-inline-block{display:inline-block!important}.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9{float:left}.layui-col-sm1{width:8.33333333%}.layui-col-sm2{width:16.66666667%}.layui-col-sm3{width:25%}.layui-col-sm4{width:33.33333333%}.layui-col-sm5{width:41.66666667%}.layui-col-sm6{width:50%}.layui-col-sm7{width:58.33333333%}.layui-col-sm8{width:66.66666667%}.layui-col-sm9{width:75%}.layui-col-sm10{width:83.33333333%}.layui-col-sm11{width:91.66666667%}.layui-col-sm12{width:100%}.layui-col-sm-offset1{margin-left:8.33333333%}.layui-col-sm-offset2{margin-left:16.66666667%}.layui-col-sm-offset3{margin-left:25%}.layui-col-sm-offset4{margin-left:33.33333333%}.layui-col-sm-offset5{margin-left:41.66666667%}.layui-col-sm-offset6{margin-left:50%}.layui-col-sm-offset7{margin-left:58.33333333%}.layui-col-sm-offset8{margin-left:66.66666667%}.layui-col-sm-offset9{margin-left:75%}.layui-col-sm-offset10{margin-left:83.33333333%}.layui-col-sm-offset11{margin-left:91.66666667%}.layui-col-sm-offset12{margin-left:100%}}@media screen and (min-width:992px){.layui-container{width:960px}.layui-hide-md{display:none!important}.layui-show-md-block{display:block!important}.layui-show-md-inline{display:inline!important}.layui-show-md-inline-block{display:inline-block!important}.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9{float:left}.layui-col-md1{width:8.33333333%}.layui-col-md2{width:16.66666667%}.layui-col-md3{width:25%}.layui-col-md4{width:33.33333333%}.layui-col-md5{width:41.66666667%}.layui-col-md6{width:50%}.layui-col-md7{width:58.33333333%}.layui-col-md8{width:66.66666667%}.layui-col-md9{width:75%}.layui-col-md10{width:83.33333333%}.layui-col-md11{width:91.66666667%}.layui-col-md12{width:100%}.layui-col-md-offset1{margin-left:8.33333333%}.layui-col-md-offset2{margin-left:16.66666667%}.layui-col-md-offset3{margin-left:25%}.layui-col-md-offset4{margin-left:33.33333333%}.layui-col-md-offset5{margin-left:41.66666667%}.layui-col-md-offset6{margin-left:50%}.layui-col-md-offset7{margin-left:58.33333333%}.layui-col-md-offset8{margin-left:66.66666667%}.layui-col-md-offset9{margin-left:75%}.layui-col-md-offset10{margin-left:83.33333333%}.layui-col-md-offset11{margin-left:91.66666667%}.layui-col-md-offset12{margin-left:100%}}@media screen and (min-width:1200px){.layui-container{width:1150px}.layui-hide-lg{display:none!important}.layui-show-lg-block{display:block!important}.layui-show-lg-inline{display:inline!important}.layui-show-lg-inline-block{display:inline-block!important}.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9{float:left}.layui-col-lg1{width:8.33333333%}.layui-col-lg2{width:16.66666667%}.layui-col-lg3{width:25%}.layui-col-lg4{width:33.33333333%}.layui-col-lg5{width:41.66666667%}.layui-col-lg6{width:50%}.layui-col-lg7{width:58.33333333%}.layui-col-lg8{width:66.66666667%}.layui-col-lg9{width:75%}.layui-col-lg10{width:83.33333333%}.layui-col-lg11{width:91.66666667%}.layui-col-lg12{width:100%}.layui-col-lg-offset1{margin-left:8.33333333%}.layui-col-lg-offset2{margin-left:16.66666667%}.layui-col-lg-offset3{margin-left:25%}.layui-col-lg-offset4{margin-left:33.33333333%}.layui-col-lg-offset5{margin-left:41.66666667%}.layui-col-lg-offset6{margin-left:50%}.layui-col-lg-offset7{margin-left:58.33333333%}.layui-col-lg-offset8{margin-left:66.66666667%}.layui-col-lg-offset9{margin-left:75%}.layui-col-lg-offset10{margin-left:83.33333333%}.layui-col-lg-offset11{margin-left:91.66666667%}.layui-col-lg-offset12{margin-left:100%}}@media screen and (min-width:1400px){.layui-container{width:1330px}.layui-hide-xl{display:none!important}.layui-show-xl-block{display:block!important}.layui-show-xl-inline{display:inline!important}.layui-show-xl-inline-block{display:inline-block!important}.layui-col-xl1,.layui-col-xl10,.layui-col-xl11,.layui-col-xl12,.layui-col-xl2,.layui-col-xl3,.layui-col-xl4,.layui-col-xl5,.layui-col-xl6,.layui-col-xl7,.layui-col-xl8,.layui-col-xl9{float:left}.layui-col-xl1{width:8.33333333%}.layui-col-xl2{width:16.66666667%}.layui-col-xl3{width:25%}.layui-col-xl4{width:33.33333333%}.layui-col-xl5{width:41.66666667%}.layui-col-xl6{width:50%}.layui-col-xl7{width:58.33333333%}.layui-col-xl8{width:66.66666667%}.layui-col-xl9{width:75%}.layui-col-xl10{width:83.33333333%}.layui-col-xl11{width:91.66666667%}.layui-col-xl12{width:100%}.layui-col-xl-offset1{margin-left:8.33333333%}.layui-col-xl-offset2{margin-left:16.66666667%}.layui-col-xl-offset3{margin-left:25%}.layui-col-xl-offset4{margin-left:33.33333333%}.layui-col-xl-offset5{margin-left:41.66666667%}.layui-col-xl-offset6{margin-left:50%}.layui-col-xl-offset7{margin-left:58.33333333%}.layui-col-xl-offset8{margin-left:66.66666667%}.layui-col-xl-offset9{margin-left:75%}.layui-col-xl-offset10{margin-left:83.33333333%}.layui-col-xl-offset11{margin-left:91.66666667%}.layui-col-xl-offset12{margin-left:100%}}.layui-col-space1{margin:-.5px}.layui-col-space1>*{padding:.5px}.layui-col-space2{margin:-1px}.layui-col-space2>*{padding:1px}.layui-col-space4{margin:-2px}.layui-col-space4>*{padding:2px}.layui-col-space5{margin:-2.5px}.layui-col-space5>*{padding:2.5px}.layui-col-space6{margin:-3px}.layui-col-space6>*{padding:3px}.layui-col-space8{margin:-4px}.layui-col-space8>*{padding:4px}.layui-col-space10{margin:-5px}.layui-col-space10>*{padding:5px}.layui-col-space12{margin:-6px}.layui-col-space12>*{padding:6px}.layui-col-space14{margin:-7px}.layui-col-space14>*{padding:7px}.layui-col-space15{margin:-7.5px}.layui-col-space15>*{padding:7.5px}.layui-col-space16{margin:-8px}.layui-col-space16>*{padding:8px}.layui-col-space18{margin:-9px}.layui-col-space18>*{padding:9px}.layui-col-space20{margin:-10px}.layui-col-space20>*{padding:10px}.layui-col-space22{margin:-11px}.layui-col-space22>*{padding:11px}.layui-col-space24{margin:-12px}.layui-col-space24>*{padding:12px}.layui-col-space25{margin:-12.5px}.layui-col-space25>*{padding:12.5px}.layui-col-space26{margin:-13px}.layui-col-space26>*{padding:13px}.layui-col-space28{margin:-14px}.layui-col-space28>*{padding:14px}.layui-col-space30{margin:-15px}.layui-col-space30>*{padding:15px}.layui-col-space32{margin:-16px}.layui-col-space32>*{padding:16px}.layui-padding-1{padding:4px!important}.layui-padding-2{padding:8px!important}.layui-padding-3{padding:16px!important}.layui-padding-4{padding:32px!important}.layui-padding-5{padding:48px!important}.layui-margin-1{margin:4px!important}.layui-margin-2{margin:8px!important}.layui-margin-3{margin:16px!important}.layui-margin-4{margin:32px!important}.layui-margin-5{margin:48px!important}.layui-btn,.layui-input,.layui-select,.layui-textarea,.layui-upload-button{outline:0;-webkit-appearance:none;transition:all .3s;-webkit-transition:all .3s;box-sizing:border-box}.layui-elem-quote{margin-bottom:10px;padding:15px;line-height:1.8;border-left:5px solid #16b777;border-radius:0 2px 2px 0;background-color:#fafafa}.layui-quote-nm{border-style:solid;border-width:1px;border-left-width:5px;background:0 0}.layui-elem-field{margin-bottom:10px;padding:0;border-width:1px;border-style:solid}.layui-elem-field legend{margin-left:20px;padding:0 10px;font-size:20px}.layui-field-title{margin:16px 0;border-width:0;border-top-width:1px}.layui-field-box{padding:15px}.layui-field-title .layui-field-box{padding:10px 0}.layui-progress{position:relative;height:6px;border-radius:20px;background-color:#eee}.layui-progress-bar{position:absolute;left:0;top:0;width:0;max-width:100%;height:6px;border-radius:20px;text-align:right;background-color:#16b777;transition:all .3s;-webkit-transition:all .3s}.layui-progress-big,.layui-progress-big .layui-progress-bar{height:18px;line-height:18px}.layui-progress-text{position:relative;top:-20px;line-height:18px;font-size:12px;color:#5f5f5f}.layui-progress-big .layui-progress-text{position:static;padding:0 10px;color:#fff}.layui-collapse{border-width:1px;border-style:solid;border-radius:2px}.layui-colla-content,.layui-colla-item{border-top-width:1px;border-top-style:solid}.layui-colla-item:first-child{border-top:none}.layui-colla-title{position:relative;height:42px;line-height:42px;padding:0 15px 0 35px;color:#333;background-color:#fafafa;cursor:pointer;font-size:14px;overflow:hidden}.layui-colla-content{display:none;padding:10px 15px;line-height:1.6;color:#5f5f5f}.layui-colla-icon{position:absolute;left:15px;top:0;font-size:14px}.layui-card{margin-bottom:15px;border-radius:2px;background-color:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.layui-card:last-child{margin-bottom:0}.layui-card-header{position:relative;height:42px;line-height:42px;padding:0 15px;border-bottom:1px solid #f8f8f8;color:#333;border-radius:2px 2px 0 0;font-size:14px}.layui-card-body{position:relative;padding:10px 15px;line-height:24px}.layui-card-body[pad15]{padding:15px}.layui-card-body[pad20]{padding:20px}.layui-card-body .layui-table{margin:5px 0}.layui-card .layui-tab{margin:0}.layui-panel{position:relative;border-width:1px;border-style:solid;border-radius:2px;box-shadow:1px 1px 4px rgb(0 0 0 / 8%);background-color:#fff;color:#5f5f5f}.layui-panel-window{position:relative;padding:15px;border-radius:0;border-top:5px solid #eee;background-color:#fff}.layui-auxiliar-moving{position:fixed;left:0;right:0;top:0;bottom:0;width:100%;height:100%;background:0 0;z-index:9999999999;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.layui-scrollbar-hide{overflow:hidden!important}.layui-bg-red{background-color:#ff5722!important;color:#fff!important}.layui-bg-orange{background-color:#ffb800!important;color:#fff!important}.layui-bg-green{background-color:#16baaa!important;color:#fff!important}.layui-bg-cyan{background-color:#2f4056!important;color:#fff!important}.layui-bg-blue{background-color:#1e9fff!important;color:#fff!important}.layui-bg-purple{background-color:#a233c6!important;color:#fff!important}.layui-bg-black{background-color:#2f363c!important;color:#fff!important}.layui-bg-gray{background-color:#fafafa!important;color:#5f5f5f!important}.layui-badge-rim,.layui-border,.layui-colla-content,.layui-colla-item,.layui-collapse,.layui-elem-field,.layui-form-pane .layui-form-item[pane],.layui-form-pane .layui-form-label,.layui-input,.layui-input-split,.layui-panel,.layui-quote-nm,.layui-select,.layui-tab-bar,.layui-tab-card,.layui-tab-title,.layui-tab-title .layui-this:after,.layui-textarea{border-color:#eee}.layui-border{border-width:1px;border-style:solid;color:#5f5f5f!important}.layui-border-red{border-width:1px;border-style:solid;border-color:#ff5722!important;color:#ff5722!important}.layui-border-orange{border-width:1px;border-style:solid;border-color:#ffb800!important;color:#ffb800!important}.layui-border-green{border-width:1px;border-style:solid;border-color:#16baaa!important;color:#16baaa!important}.layui-border-cyan{border-width:1px;border-style:solid;border-color:#2f4056!important;color:#2f4056!important}.layui-border-blue{border-width:1px;border-style:solid;border-color:#1e9fff!important;color:#1e9fff!important}.layui-border-purple{border-width:1px;border-style:solid;border-color:#a233c6!important;color:#a233c6!important}.layui-border-black{border-width:1px;border-style:solid;border-color:#2f363c!important;color:#2f363c!important}hr.layui-border-black,hr.layui-border-blue,hr.layui-border-cyan,hr.layui-border-green,hr.layui-border-orange,hr.layui-border-purple,hr.layui-border-red{border-width:0 0 1px}.layui-timeline-item:before{background-color:#eee}.layui-text{line-height:1.8;font-size:14px}.layui-text h1,.layui-text h2,.layui-text h3,.layui-text h4,.layui-text h5,.layui-text h6{color:#3a3a3a}.layui-text h1{font-size:32px}.layui-text h2{font-size:24px}.layui-text h3{font-size:18px}.layui-text h4{font-size:16px}.layui-text h5{font-size:14px}.layui-text h6{font-size:13px}.layui-text ol,.layui-text ul{padding-left:15px}.layui-text ul li{margin-top:5px;list-style-type:disc}.layui-text ol li{margin-top:5px;list-style-type:decimal}.layui-text-em,.layui-word-aux{color:#999!important;padding-left:5px!important;padding-right:5px!important}.layui-text p{margin:15px 0}.layui-text p:first-child{margin-top:0}.layui-text p:last-child{margin-bottom:0}.layui-text a:not(.layui-btn){color:#01aaed}.layui-text a:not(.layui-btn):hover{text-decoration:underline}.layui-text blockquote:not(.layui-elem-quote){padding:5px 15px;border-left:5px solid #eee}.layui-text pre>code:not(.layui-code){padding:15px;font-family:"Courier New",Consolas,"Lucida Console"}.layui-font-12{font-size:12px!important}.layui-font-13{font-size:13px!important}.layui-font-14{font-size:14px!important}.layui-font-16{font-size:16px!important}.layui-font-18{font-size:18px!important}.layui-font-20{font-size:20px!important}.layui-font-22{font-size:22px!important}.layui-font-24{font-size:24px!important}.layui-font-26{font-size:26px!important}.layui-font-28{font-size:28px!important}.layui-font-30{font-size:30px!important}.layui-font-32{font-size:32px!important}.layui-font-red{color:#ff5722!important}.layui-font-orange{color:#ffb800!important}.layui-font-green{color:#16baaa!important}.layui-font-cyan{color:#2f4056!important}.layui-font-blue{color:#01aaed!important}.layui-font-purple{color:#a233c6!important}.layui-font-black{color:#000!important}.layui-font-gray{color:#c2c2c2!important}.layui-btn{display:inline-block;vertical-align:middle;height:38px;line-height:38px;border:1px solid transparent;padding:0 18px;background-color:#16baaa;color:#fff;white-space:nowrap;text-align:center;font-size:14px;border-radius:2px;cursor:pointer;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-btn:hover{opacity:.8;filter:alpha(opacity=80);color:#fff}.layui-btn:active{opacity:1;filter:alpha(opacity=100)}.layui-btn+.layui-btn{margin-left:10px}.layui-btn-container{word-spacing:-5px}.layui-btn-container .layui-btn{margin-right:10px;margin-bottom:10px;word-spacing:normal}.layui-btn-container .layui-btn+.layui-btn{margin-left:0}.layui-table .layui-btn-container .layui-btn{margin-bottom:9px}.layui-btn-radius{border-radius:100px}.layui-btn .layui-icon{padding:0 2px;vertical-align:middle\0;vertical-align:bottom}.layui-btn-primary{border-color:#d2d2d2;background:0 0;color:#5f5f5f}.layui-btn-primary:hover{border-color:#16baaa;color:#333}.layui-btn-normal{background-color:#1e9fff}.layui-btn-warm{background-color:#ffb800}.layui-btn-danger{background-color:#ff5722}.layui-btn-checked{background-color:#16b777}.layui-btn-disabled,.layui-btn-disabled:active,.layui-btn-disabled:hover{border-color:#eee!important;background-color:#fbfbfb!important;color:#d2d2d2!important;cursor:not-allowed!important;opacity:1}.layui-btn-lg{height:44px;line-height:44px;padding:0 25px;font-size:16px}.layui-btn-sm{height:30px;line-height:30px;padding:0 10px;font-size:12px}.layui-btn-xs{height:22px;line-height:22px;padding:0 5px;font-size:12px}.layui-btn-xs i{font-size:12px!important}.layui-btn-group{display:inline-block;vertical-align:middle;font-size:0}.layui-btn-group .layui-btn{margin-left:0!important;margin-right:0!important;border-left:1px solid rgba(255,255,255,.5);border-radius:0}.layui-btn-group .layui-btn-primary{border-left:none}.layui-btn-group .layui-btn-primary:hover{border-color:#d2d2d2;color:#16baaa}.layui-btn-group .layui-btn:first-child{border-left:none;border-radius:2px 0 0 2px}.layui-btn-group .layui-btn-primary:first-child{border-left:1px solid #d2d2d2}.layui-btn-group .layui-btn:last-child{border-radius:0 2px 2px 0}.layui-btn-group .layui-btn+.layui-btn{margin-left:0}.layui-btn-group+.layui-btn-group{margin-left:10px}.layui-btn-fluid{width:100%}.layui-input,.layui-select,.layui-textarea{height:38px;line-height:1.3;line-height:38px\9;border-width:1px;border-style:solid;background-color:#fff;color:rgba(0,0,0,.85);border-radius:2px}.layui-input::-webkit-input-placeholder,.layui-select::-webkit-input-placeholder,.layui-textarea::-webkit-input-placeholder{line-height:1.3}.layui-input,.layui-textarea{display:block;width:100%;padding-left:10px}.layui-input:hover,.layui-textarea:hover{border-color:#d2d2d2!important}.layui-input:focus,.layui-textarea:focus{border-color:#16b777!important;box-shadow:0 0 0 3px rgba(22,183,119,.08)}.layui-textarea{position:relative;min-height:100px;height:auto;line-height:20px;padding:6px 10px;resize:vertical}.layui-input[disabled],.layui-textarea[disabled]{background-color:#fafafa}.layui-select{padding:0 10px}.layui-form input[type=checkbox],.layui-form input[type=radio],.layui-form select{display:none}.layui-form [lay-ignore]{display:initial}.layui-form-item{position:relative;margin-bottom:15px;clear:both;*zoom:1}.layui-form-item:after{content:'\20';clear:both;*zoom:1;display:block;height:0}.layui-form-label{position:relative;float:left;display:block;padding:9px 15px;width:80px;font-weight:400;line-height:20px;text-align:right}.layui-form-label-col{display:block;float:none;padding:9px 0;line-height:20px;text-align:left}.layui-form-item .layui-inline{margin-bottom:5px;margin-right:10px}.layui-input-block,.layui-input-inline{position:relative}.layui-input-block{margin-left:110px;min-height:36px}.layui-input-inline{display:inline-block;vertical-align:middle}.layui-form-item .layui-input-inline{float:left;width:190px;margin-right:10px}.layui-form-text .layui-input-inline{width:auto}.layui-form-mid{position:relative;float:left;display:block;padding:9px 0!important;line-height:20px;margin-right:10px}.layui-form-danger+.layui-form-select .layui-input,.layui-form-danger:focus{border-color:#ff5722!important;box-shadow:0 0 0 3px rgba(255,87,34,.08)}.layui-input-prefix,.layui-input-split,.layui-input-suffix,.layui-input-suffix .layui-input-affix{position:absolute;right:0;top:0;padding:0 10px;width:35px;height:100%;text-align:center;transition:all .3s;box-sizing:border-box}.layui-input-prefix{left:0;border-radius:2px 0 0 2px}.layui-input-suffix{right:0;border-radius:0 2px 2px 0}.layui-input-split{border-width:1px;border-style:solid}.layui-input-prefix .layui-icon,.layui-input-split .layui-icon,.layui-input-suffix .layui-icon{position:relative;font-size:16px;color:#5f5f5f;transition:all .3s}.layui-input-group{position:relative;display:table;box-sizing:border-box}.layui-input-group>*{display:table-cell;vertical-align:middle;position:relative}.layui-input-group .layui-input{padding-right:15px}.layui-input-group>.layui-input-prefix{width:auto;border-right:0}.layui-input-group>.layui-input-suffix{width:auto;border-left:0}.layui-input-group .layui-input-split{white-space:nowrap}.layui-input-wrap{position:relative;line-height:38px}.layui-input-wrap .layui-input{padding-right:35px}.layui-input-wrap .layui-input::-ms-clear,.layui-input-wrap .layui-input::-ms-reveal{display:none}.layui-input-wrap .layui-input-prefix+.layui-input,.layui-input-wrap .layui-input-prefix~* .layui-input{padding-left:35px}.layui-input-wrap .layui-input-split+.layui-input,.layui-input-wrap .layui-input-split~* .layui-input{padding-left:45px}.layui-input-wrap .layui-input-prefix~.layui-form-select{position:static}.layui-input-wrap .layui-input-prefix,.layui-input-wrap .layui-input-split,.layui-input-wrap .layui-input-suffix{pointer-events:none}.layui-input-wrap .layui-input:hover+.layui-input-split{border-color:#d2d2d2}.layui-input-wrap .layui-input:focus+.layui-input-split{border-color:#16b777}.layui-input-wrap .layui-input.layui-form-danger:focus+.layui-input-split{border-color:#ff5722}.layui-input-wrap .layui-input-prefix.layui-input-split{border-width:0;border-right-width:1px}.layui-input-wrap .layui-input-suffix.layui-input-split{border-width:0;border-left-width:1px}.layui-input-affix{line-height:38px}.layui-input-suffix .layui-input-affix{right:auto;left:-35px}.layui-input-affix .layui-icon{color:rgba(0,0,0,.8);pointer-events:auto!important;cursor:pointer}.layui-input-affix .layui-icon-clear{color:rgba(0,0,0,.3)}.layui-input-affix .layui-icon:hover{color:rgba(0,0,0,.6)}.layui-input-wrap .layui-input-number{width:24px;padding:0}.layui-input-wrap .layui-input-number .layui-icon{position:absolute;right:0;width:100%;height:50%;line-height:normal;font-size:12px}.layui-input-wrap .layui-input-number .layui-icon:before{position:absolute;left:50%;top:50%;margin-top:-6px;margin-left:-6px}.layui-input-wrap .layui-input-number .layui-icon-up{top:0;border-bottom:1px solid #eee}.layui-input-wrap .layui-input-number .layui-icon-down{bottom:0}.layui-input-wrap .layui-input-number .layui-icon:hover{font-weight:700}.layui-input-wrap .layui-input[type=number]::-webkit-inner-spin-button,.layui-input-wrap .layui-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none!important}.layui-input-wrap .layui-input[type=number]{-moz-appearance:textfield}.layui-input-wrap .layui-input[type=number].layui-input-number-out-of-range{color:#ff5722}.layui-form-select{position:relative;color:#5f5f5f}.layui-form-select .layui-input{padding-right:30px;cursor:pointer}.layui-form-select .layui-edge{position:absolute;right:10px;top:50%;margin-top:-3px;cursor:pointer;border-width:6px;border-top-color:#c2c2c2;border-top-style:solid;transition:all .3s;-webkit-transition:all .3s}.layui-form-select dl{display:none;position:absolute;left:0;top:42px;padding:5px 0;z-index:899;min-width:100%;border:1px solid #eee;max-height:300px;overflow-y:auto;background-color:#fff;border-radius:2px;box-shadow:1px 1px 4px rgb(0 0 0 / 8%);box-sizing:border-box}.layui-form-select dl dd,.layui-form-select dl dt{padding:0 10px;line-height:36px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layui-form-select dl dt{font-size:12px;color:#999}.layui-form-select dl dd{cursor:pointer}.layui-form-select dl dd:hover{background-color:#f8f8f8;-webkit-transition:.5s all;transition:.5s all}.layui-form-select .layui-select-group dd{padding-left:20px}.layui-form-select dl dd.layui-select-tips{padding-left:10px!important;color:#999}.layui-form-select dl dd.layui-this{background-color:#f8f8f8;color:#16b777;font-weight:700}.layui-form-select dl dd.layui-disabled{background-color:#fff}.layui-form-selected dl{display:block}.layui-form-selected .layui-edge{margin-top:-9px;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.layui-form-selected .layui-edge{margin-top:-3px\0}:root .layui-form-selected .layui-edge{margin-top:-9px\0/IE9}.layui-form-selectup dl{top:auto;bottom:42px}.layui-select-none{margin:5px 0;text-align:center;color:#999}.layui-select-panel-wrap{position:absolute;z-index:99999999}.layui-select-panel-wrap dl{position:relative;display:block;top:0}.layui-select-disabled .layui-disabled{border-color:#eee!important}.layui-select-disabled .layui-edge{border-top-color:#d2d2d2}.layui-form-checkbox{position:relative;display:inline-block;vertical-align:middle;height:30px;line-height:30px;margin-right:10px;padding-right:30px;background-color:#fff;cursor:pointer;font-size:0;-webkit-transition:.1s linear;transition:.1s linear;box-sizing:border-box}.layui-form-checkbox>*{display:inline-block;vertical-align:middle}.layui-form-checkbox>div{padding:0 11px;font-size:14px;border-radius:2px 0 0 2px;background-color:#d2d2d2;color:#fff;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.layui-form-checkbox>div>.layui-icon{line-height:normal}.layui-form-checkbox:hover>div{background-color:#c2c2c2}.layui-form-checkbox>i{position:absolute;right:0;top:0;width:30px;height:100%;border:1px solid #d2d2d2;border-left:none;border-radius:0 2px 2px 0;color:#fff;color:rgba(255,255,255,0);font-size:20px;text-align:center;box-sizing:border-box}.layui-form-checkbox:hover>i{border-color:#c2c2c2;color:#c2c2c2}.layui-form-checked,.layui-form-checked:hover{border-color:#16b777}.layui-form-checked:hover>div,.layui-form-checked>div{background-color:#16b777}.layui-form-checked:hover>i,.layui-form-checked>i{color:#16b777}.layui-form-item .layui-form-checkbox{margin-top:4px}.layui-form-checkbox.layui-checkbox-disabled>div{background-color:#eee!important}.layui-form [lay-checkbox]{display:none}.layui-form-checkbox[lay-skin=primary]{height:auto!important;line-height:normal!important;min-width:18px;min-height:18px;border:none!important;margin-right:0;padding-left:24px;padding-right:0;background:0 0}.layui-form-checkbox[lay-skin=primary]>div{margin-top:-1px;padding-left:0;padding-right:15px;line-height:18px;background:0 0;color:#5f5f5f}.layui-form-checkbox[lay-skin=primary]>i{right:auto;left:0;width:16px;height:16px;line-height:14px;border:1px solid #d2d2d2;font-size:12px;border-radius:2px;background-color:#fff;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-checkbox[lay-skin=primary]:hover>i{border-color:#16b777;color:#fff}.layui-form-checked[lay-skin=primary]>i{border-color:#16b777!important;background-color:#16b777;color:#fff}.layui-checkbox-disabled[lay-skin=primary]>div{background:0 0!important}.layui-form-checked.layui-checkbox-disabled[lay-skin=primary]>i{background:#eee!important;border-color:#eee!important}.layui-checkbox-disabled[lay-skin=primary]:hover>i{border-color:#d2d2d2}.layui-form-item .layui-form-checkbox[lay-skin=primary]{margin-top:10px}.layui-form-checkbox[lay-skin=primary]>.layui-icon-indeterminate{border-color:#16b777}.layui-form-checkbox[lay-skin=primary]>.layui-icon-indeterminate:before{content:'';display:inline-block;vertical-align:middle;position:relative;width:50%;height:1px;margin:-1px auto 0;background-color:#16b777}.layui-form-switch{position:relative;display:inline-block;vertical-align:middle;height:24px;line-height:22px;min-width:44px;padding:0 5px;margin-top:8px;border:1px solid #d2d2d2;border-radius:20px;cursor:pointer;box-sizing:border-box;background-color:#fff;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-switch>i{position:absolute;left:5px;top:3px;width:16px;height:16px;border-radius:20px;background-color:#d2d2d2;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-switch>div{position:relative;top:0;margin-left:21px;padding:0!important;text-align:center!important;color:#999!important;font-style:normal!important;font-size:12px}.layui-form-onswitch{border-color:#16b777;background-color:#16b777}.layui-form-onswitch>i{left:100%;margin-left:-21px;background-color:#fff}.layui-form-onswitch>div{margin-left:0;margin-right:21px;color:#fff!important}.layui-form-checkbox[lay-skin=none] *,.layui-form-radio[lay-skin=none] *{box-sizing:border-box}.layui-form-checkbox[lay-skin=none],.layui-form-radio[lay-skin=none]{position:relative;min-height:20px;margin:0;padding:0;height:auto;line-height:normal}.layui-form-checkbox[lay-skin=none]>div,.layui-form-radio[lay-skin=none]>div{position:relative;top:0;left:0;cursor:pointer;z-index:10;color:inherit;background-color:inherit}.layui-form-checkbox[lay-skin=none]>i,.layui-form-radio[lay-skin=none]>i{display:none}.layui-form-checkbox[lay-skin=none].layui-checkbox-disabled>div,.layui-form-radio[lay-skin=none].layui-radio-disabled>div{cursor:not-allowed}.layui-checkbox-disabled{border-color:#eee!important}.layui-checkbox-disabled>div{color:#c2c2c2!important}.layui-checkbox-disabled>i{border-color:#eee!important}.layui-checkbox-disabled:hover>i{color:#fff!important}.layui-form-radio{display:inline-block;vertical-align:middle;line-height:28px;margin:6px 10px 0 0;padding-right:10px;cursor:pointer;font-size:0}.layui-form-radio>*{display:inline-block;vertical-align:middle;font-size:14px}.layui-form-radio>i{margin-right:8px;font-size:22px;color:#c2c2c2}.layui-form-radio:hover>*,.layui-form-radioed,.layui-form-radioed>i{color:#16b777}.layui-radio-disabled>i{color:#eee!important}.layui-radio-disabled>*{color:#c2c2c2!important}.layui-form [lay-radio]{display:none}.layui-form-pane .layui-form-label{width:110px;padding:8px 15px;height:38px;line-height:20px;border-width:1px;border-style:solid;border-radius:2px 0 0 2px;text-align:center;background-color:#fafafa;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box}.layui-form-pane .layui-input-inline{margin-left:-1px}.layui-form-pane .layui-input-block{margin-left:110px;left:-1px}.layui-form-pane .layui-input{border-radius:0 2px 2px 0}.layui-form-pane .layui-form-text .layui-form-label{float:none;width:100%;border-radius:2px;box-sizing:border-box;text-align:left}.layui-form-pane .layui-form-text .layui-input-inline{display:block;margin:0;top:-1px;clear:both}.layui-form-pane .layui-form-text .layui-input-block{margin:0;left:0;top:-1px}.layui-form-pane .layui-form-text .layui-textarea{min-height:100px;border-radius:0 0 2px 2px}.layui-form-pane .layui-form-checkbox{margin:4px 0 4px 10px}.layui-form-pane .layui-form-radio,.layui-form-pane .layui-form-switch{margin-top:6px;margin-left:10px}.layui-form-pane .layui-form-item[pane]{position:relative;border-width:1px;border-style:solid}.layui-form-pane .layui-form-item[pane] .layui-form-label{position:absolute;left:0;top:0;height:100%;border-width:0;border-right-width:1px}.layui-form-pane .layui-form-item[pane] .layui-input-inline{margin-left:110px}@media screen and (max-width:450px){.layui-form-item .layui-form-label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-form-item .layui-inline{display:block;margin-right:0;margin-bottom:20px;clear:both}.layui-form-item .layui-inline:after{content:'\20';clear:both;display:block;height:0}.layui-form-item .layui-input-inline{display:block;float:none;left:-3px;width:auto!important;margin:0 0 10px 112px}.layui-form-item .layui-input-inline+.layui-form-mid{margin-left:110px;top:-5px;padding:0}.layui-form-item .layui-form-checkbox{margin-right:5px;margin-bottom:5px}}.layui-laypage{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;margin:10px 0;font-size:0}.layui-laypage>a:first-child,.layui-laypage>a:first-child em{border-radius:2px 0 0 2px}.layui-laypage>a:last-child,.layui-laypage>a:last-child em{border-radius:0 2px 2px 0}.layui-laypage>:first-child{margin-left:0!important}.layui-laypage>:last-child{margin-right:0!important}.layui-laypage a,.layui-laypage button,.layui-laypage input,.layui-laypage select,.layui-laypage span{border:1px solid #eee}.layui-laypage a,.layui-laypage span{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding:0 15px;height:28px;line-height:28px;margin:0 -1px 5px 0;background-color:#fff;color:#333;font-size:12px}.layui-laypage a[data-page]{color:#333}.layui-laypage a{text-decoration:none!important;cursor:pointer}.layui-laypage a:hover{color:#16baaa}.layui-laypage em{font-style:normal}.layui-laypage .layui-laypage-spr{color:#999;font-weight:700}.layui-laypage .layui-laypage-curr{position:relative}.layui-laypage .layui-laypage-curr em{position:relative;color:#fff}.layui-laypage .layui-laypage-curr .layui-laypage-em{position:absolute;left:-1px;top:-1px;padding:1px;width:100%;height:100%;background-color:#16baaa}.layui-laypage-em{border-radius:2px}.layui-laypage-next em,.layui-laypage-prev em{font-family:Sim sun;font-size:16px}.layui-laypage .layui-laypage-count,.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh,.layui-laypage .layui-laypage-skip{margin-left:10px;margin-right:10px;padding:0;border:none}.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh{vertical-align:top}.layui-laypage .layui-laypage-refresh i{font-size:18px;cursor:pointer}.layui-laypage select{height:22px;padding:3px;border-radius:2px;cursor:pointer}.layui-laypage .layui-laypage-skip{height:30px;line-height:30px;color:#999}.layui-laypage button,.layui-laypage input{height:30px;line-height:30px;border-radius:2px;vertical-align:top;background-color:#fff;box-sizing:border-box}.layui-laypage input{display:inline-block;width:40px;margin:0 10px;padding:0 3px;text-align:center}.layui-laypage input:focus,.layui-laypage select:focus{border-color:#16baaa!important}.layui-laypage button{margin-left:10px;padding:0 10px;cursor:pointer}.layui-flow-more{margin:10px 0;text-align:center;color:#999;font-size:14px;clear:both}.layui-flow-more a{height:32px;line-height:32px}.layui-flow-more a *{display:inline-block;vertical-align:top}.layui-flow-more a cite{padding:0 20px;border-radius:3px;background-color:#eee;color:#333;font-style:normal}.layui-flow-more a cite:hover{opacity:.8}.layui-flow-more a i{font-size:30px;color:#737383}.layui-table{width:100%;margin:10px 0;background-color:#fff;color:#5f5f5f}.layui-table tr{transition:all .3s;-webkit-transition:all .3s}.layui-table th{text-align:left;font-weight:600}.layui-table-mend{background-color:#fff}.layui-table-click,.layui-table-hover,.layui-table[lay-even] tbody tr:nth-child(even){background-color:#f8f8f8}.layui-table-checked{background-color:#dbfbf0}.layui-table-checked.layui-table-click,.layui-table-checked.layui-table-hover{background-color:#abf8dd}.layui-table-disabled-transition *,.layui-table-disabled-transition :after,.layui-table-disabled-transition :before{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}.layui-table td,.layui-table th,.layui-table-col-set,.layui-table-fixed-r,.layui-table-grid-down,.layui-table-header,.layui-table-mend,.layui-table-page,.layui-table-tips-main,.layui-table-tool,.layui-table-total,.layui-table-view,.layui-table[lay-skin=line],.layui-table[lay-skin=row]{border-width:1px;border-style:solid;border-color:#eee}.layui-table td,.layui-table th{position:relative;padding:9px 15px;min-height:20px;line-height:20px;font-size:14px}.layui-table[lay-skin=line] td,.layui-table[lay-skin=line] th{border-width:0;border-bottom-width:1px}.layui-table[lay-skin=row] td,.layui-table[lay-skin=row] th{border-width:0;border-right-width:1px}.layui-table[lay-skin=nob] td,.layui-table[lay-skin=nob] th{border:none}.layui-table img{max-width:100px}.layui-table[lay-size=lg] td,.layui-table[lay-size=lg] th{padding-top:15px;padding-right:30px;padding-bottom:15px;padding-left:30px}.layui-table-view .layui-table[lay-size=lg] .layui-table-cell{height:50px;line-height:40px}.layui-table[lay-size=sm] td,.layui-table[lay-size=sm] th{padding-top:5px;padding-right:10px;padding-bottom:5px;padding-left:10px;font-size:12px}.layui-table-view .layui-table[lay-size=sm] .layui-table-cell{height:30px;line-height:20px;padding-top:5px;padding-left:11px;padding-right:11px}.layui-table[lay-data],.layui-table[lay-options]{display:none}.layui-table-box{position:relative;overflow:hidden}.layui-table-view{clear:both}.layui-table-view .layui-table{position:relative;width:auto;margin:0;border:0;border-collapse:separate}.layui-table-view .layui-table[lay-skin=line]{border-width:0;border-right-width:1px}.layui-table-view .layui-table[lay-skin=row]{border-width:0;border-bottom-width:1px}.layui-table-view .layui-table td,.layui-table-view .layui-table th{padding:0;border-top:none;border-left:none}.layui-table-view .layui-table th [lay-event],.layui-table-view .layui-table th.layui-unselect .layui-table-cell span{cursor:pointer}.layui-table-view .layui-table td,.layui-table-view .layui-table th span{cursor:default}.layui-table-view .layui-table td[data-edit]{cursor:text}.layui-table-view .layui-table td[data-edit]:hover:after{position:absolute;left:0;top:0;width:100%;height:100%;box-sizing:border-box;border:1px solid #16b777;pointer-events:none;content:""}.layui-table-view .layui-form-checkbox[lay-skin=primary] i{width:18px;height:18px;line-height:16px}.layui-table-view .layui-form-radio{line-height:0;padding:0}.layui-table-view .layui-form-radio>i{margin:0;font-size:20px}.layui-table-init{position:absolute;left:0;top:0;right:0;bottom:0;margin:0;z-index:199;transition:opacity .1s;user-select:none;opacity:1}.layui-table-init.layui-hide-v{opacity:0}.layui-table-loading-icon{position:absolute;width:100%\0;left:50%;left:auto\0;top:50%;margin-top:-15px\0;transform:translate(-50%,-50%);transform:none\0;text-align:center}.layui-table-loading-icon .layui-icon{font-size:30px;color:#c2c2c2}.layui-table-header{border-width:0;border-bottom-width:1px;overflow:hidden}.layui-table-header .layui-table{margin-bottom:-1px}.layui-table-column{position:relative;width:100%;min-height:41px;padding:8px 16px;border-width:0;border-bottom-width:1px}.layui-table-column .layui-btn-container{margin-bottom:-8px}.layui-table-column .layui-btn-container .layui-btn{margin-right:8px;margin-bottom:8px}.layui-table-tool .layui-inline[lay-event]{position:relative;width:26px;height:26px;padding:5px;line-height:16px;margin-right:10px;text-align:center;color:#333;border:1px solid #ccc;cursor:pointer;-webkit-transition:.5s all;transition:.5s all}.layui-table-tool .layui-inline[lay-event]:hover{border:1px solid #999}.layui-table-tool-temp{padding-right:120px}.layui-table-tool-self{position:absolute;right:17px;top:10px}.layui-table-tool .layui-table-tool-self .layui-inline[lay-event]{margin:0 0 0 10px}.layui-table-tool-panel{position:absolute;top:29px;left:-1px;z-index:399;padding:5px 0!important;min-width:150px;min-height:40px;border:1px solid #d2d2d2;text-align:left;overflow-y:auto;background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.12)}.layui-table-tool-panel li{padding:0 10px;margin:0!important;line-height:30px;list-style-type:none!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-transition:.5s all;transition:.5s all}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary]{width:100%}.layui-table-tool-panel li:hover{background-color:#f8f8f8}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary]{padding-left:28px}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] i{position:absolute;left:0;top:0}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] span{padding:0}.layui-table-tool .layui-table-tool-self .layui-table-tool-panel{left:auto;right:-1px}.layui-table-col-set{position:absolute;right:0;top:0;width:20px;height:100%;border-width:0;border-left-width:1px;background-color:#fff}.layui-table-sort{width:10px;height:20px;margin-left:5px;cursor:pointer!important}.layui-table-sort .layui-edge{position:absolute;left:5px;border-width:5px}.layui-table-sort .layui-table-sort-asc{top:3px;border-top:none;border-bottom-style:solid;border-bottom-color:#b2b2b2}.layui-table-sort .layui-table-sort-asc:hover{border-bottom-color:#5f5f5f}.layui-table-sort .layui-table-sort-desc{bottom:5px;border-bottom:none;border-top-style:solid;border-top-color:#b2b2b2}.layui-table-sort .layui-table-sort-desc:hover{border-top-color:#5f5f5f}.layui-table-sort[lay-sort=asc] .layui-table-sort-asc{border-bottom-color:#000}.layui-table-sort[lay-sort=desc] .layui-table-sort-desc{border-top-color:#000}.layui-table-cell{height:38px;line-height:28px;padding:6px 15px;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box}.layui-table-cell .layui-form-checkbox[lay-skin=primary]{top:-1px;padding:0}.layui-table-cell .layui-form-checkbox[lay-skin=primary]>div{padding-left:24px}.layui-table-cell .layui-table-link{color:#01aaed}.layui-table-cell .layui-btn{vertical-align:inherit}.layui-table-cell[align=center]{-webkit-box-pack:center}.layui-table-cell[align=right]{-webkit-box-pack:end}.laytable-cell-checkbox,.laytable-cell-numbers,.laytable-cell-radio,.laytable-cell-space{text-align:center;-webkit-box-pack:center}.layui-table-body{position:relative;overflow:auto;margin-right:-1px;margin-bottom:-1px}.layui-table-body .layui-none{line-height:26px;padding:30px 15px;text-align:center;color:#999}.layui-table-fixed{position:absolute;left:0;top:0;z-index:101}.layui-table-fixed .layui-table-body{overflow:hidden}.layui-table-fixed-l{box-shadow:1px 0 8px rgba(0,0,0,.08)}.layui-table-fixed-r{left:auto;right:-1px;border-width:0;border-left-width:1px;box-shadow:-1px 0 8px rgba(0,0,0,.08)}.layui-table-fixed-r .layui-table-header{position:relative;overflow:visible}.layui-table-mend{position:absolute;right:-49px;top:0;height:100%;width:50px;border-width:0;border-left-width:1px}.layui-table-tool{position:relative;width:100%;min-height:50px;line-height:30px;padding:10px 15px;border-width:0;border-bottom-width:1px}.layui-table-tool .layui-btn-container{margin-bottom:-10px}.layui-table-total{margin-bottom:-1px;border-width:0;border-top-width:1px;overflow:hidden}.layui-table-page{border-width:0;border-top-width:1px;margin-bottom:-1px;white-space:nowrap;overflow:hidden}.layui-table-page>div{height:26px}.layui-table-page .layui-laypage{margin:0}.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span{height:26px;line-height:26px;margin-bottom:10px;border:none;background:0 0}.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span.layui-laypage-curr{padding:0 12px}.layui-table-page .layui-laypage span{margin-left:0;padding:0}.layui-table-page .layui-laypage .layui-laypage-prev{margin-left:-11px!important}.layui-table-page .layui-laypage .layui-laypage-curr .layui-laypage-em{left:0;top:0;padding:0}.layui-table-page .layui-laypage button,.layui-table-page .layui-laypage input{height:26px;line-height:26px}.layui-table-page .layui-laypage input{width:40px}.layui-table-page .layui-laypage button{padding:0 10px}.layui-table-page select{height:18px}.layui-table-pagebar{float:right;line-height:23px}.layui-table-pagebar .layui-btn-sm{margin-top:-1px}.layui-table-pagebar .layui-btn-xs{margin-top:2px}.layui-table-view select[lay-ignore]{display:inline-block}.layui-table-patch .layui-table-cell{padding:0;width:30px}.layui-table-edit{position:absolute;left:0;top:0;z-index:189;min-width:100%;min-height:100%;padding:5px 14px;border-radius:0;box-shadow:1px 1px 20px rgba(0,0,0,.15);background-color:#fff}.layui-table-edit:focus{border-color:#16b777!important}input.layui-input.layui-table-edit{height:100%}select.layui-table-edit{padding:0 0 0 10px;border-color:#d2d2d2}.layui-table-view .layui-form-checkbox,.layui-table-view .layui-form-radio,.layui-table-view .layui-form-switch{top:0;margin:0}.layui-table-view .layui-form-checkbox{top:-1px;height:26px;line-height:26px}.layui-table-view .layui-form-checkbox i{height:26px}.layui-table-grid .layui-table-cell{overflow:visible}.layui-table-grid-down{position:absolute;top:0;right:0;width:24px;height:100%;padding:5px 0;border-width:0;border-left-width:1px;text-align:center;background-color:#fff;color:#999;cursor:pointer}.layui-table-grid-down .layui-icon{position:absolute;top:50%;left:50%;margin:-8px 0 0 -8px;font-size:14px}.layui-table-grid-down:hover{background-color:#fbfbfb}.layui-table-expanded{height:95px}.layui-table-expanded .layui-table-cell,.layui-table-view .layui-table[lay-size=lg] .layui-table-expanded .layui-table-cell,.layui-table-view .layui-table[lay-size=sm] .layui-table-expanded .layui-table-cell{height:auto;max-height:94px;white-space:normal;text-overflow:clip}.layui-table-cell-c{position:absolute;bottom:-10px;right:50%;margin-right:-9px;width:20px;height:20px;line-height:18px;cursor:pointer;text-align:center;background-color:#fff;border:1px solid #eee;border-radius:50%;z-index:1000;transition:.3s all;font-size:14px}.layui-table-cell-c:hover{border-color:#16b777}.layui-table-expanded td:hover .layui-table-cell{overflow:auto}.layui-table-main>.layui-table>tbody>tr:last-child>td>.layui-table-cell-c{bottom:0}body .layui-table-tips .layui-layer-content{background:0 0;padding:0;box-shadow:0 1px 6px rgba(0,0,0,.12)}.layui-table-tips-main{margin:-49px 0 0 -1px;max-height:150px;padding:8px 15px;font-size:14px;overflow-y:scroll;background-color:#fff;color:#5f5f5f}.layui-table-tips-c{position:absolute;right:-3px;top:-13px;width:20px;height:20px;padding:3px;cursor:pointer;background-color:#5f5f5f;border-radius:50%;color:#fff}.layui-table-tips-c:hover{background-color:#777}.layui-table-tips-c:before{position:relative;right:-2px}.layui-table-tree-nodeIcon{max-width:20px}.layui-table-tree-nodeIcon>*{width:100%}.layui-table-tree-flexIcon,.layui-table-tree-nodeIcon{margin-right:2px}.layui-table-tree-flexIcon{cursor:pointer}.layui-upload-file{display:none!important;opacity:.01;filter:Alpha(opacity=1)}.layui-upload-list{margin:11px 0}.layui-upload-choose{max-width:200px;padding:0 10px;color:#999;font-size:14px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-upload-drag{position:relative;display:inline-block;padding:30px;border:1px dashed #e2e2e2;background-color:#fff;text-align:center;cursor:pointer;color:#999}.layui-upload-drag .layui-icon{font-size:50px;color:#16baaa}.layui-upload-drag[lay-over]{border-color:#16baaa}.layui-upload-form{display:inline-block}.layui-upload-iframe{position:absolute;width:0;height:0;border:0;visibility:hidden}.layui-upload-wrap{position:relative;display:inline-block;vertical-align:middle}.layui-upload-wrap .layui-upload-file{display:block!important;position:absolute;left:0;top:0;z-index:10;font-size:100px;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}.layui-btn-container .layui-upload-choose{padding-left:0}.layui-menu{position:relative;margin:5px 0;background-color:#fff;box-sizing:border-box}.layui-menu *{box-sizing:border-box}.layui-menu li,.layui-menu-body-title,.layui-menu-body-title a{padding:5px 15px;color:initial}.layui-menu li{position:relative;margin:0 0 1px;line-height:26px;color:rgba(0,0,0,.8);font-size:14px;white-space:nowrap;cursor:pointer;transition:all .3s}.layui-menu li:hover{background-color:#f8f8f8}.layui-menu li.layui-disabled,.layui-menu li.layui-disabled *{background:0 0!important;color:#d2d2d2!important;cursor:not-allowed!important}.layui-menu-item-parent:hover>.layui-menu-body-panel{display:block;animation-name:layui-fadein;animation-duration:.3s;animation-fill-mode:both;animation-delay:.2s}.layui-menu-item-group>.layui-menu-body-title,.layui-menu-item-parent>.layui-menu-body-title{padding-right:38px}.layui-menu .layui-menu-item-divider:hover,.layui-menu .layui-menu-item-group:hover,.layui-menu .layui-menu-item-none:hover{background:0 0;cursor:default}.layui-menu .layui-menu-item-group>ul{margin:5px 0 -5px}.layui-menu .layui-menu-item-group>.layui-menu-body-title{color:rgba(0,0,0,.35);user-select:none}.layui-menu .layui-menu-item-none{color:rgba(0,0,0,.35);cursor:default}.layui-menu .layui-menu-item-none{text-align:center}.layui-menu .layui-menu-item-divider{margin:5px 0;padding:0;height:0;line-height:0;border-bottom:1px solid #eee;overflow:hidden}.layui-menu .layui-menu-item-down:hover,.layui-menu .layui-menu-item-up:hover{cursor:pointer}.layui-menu .layui-menu-item-up>.layui-menu-body-title{color:rgba(0,0,0,.8)}.layui-menu .layui-menu-item-up>ul{visibility:hidden;height:0;overflow:hidden}.layui-menu .layui-menu-item-down>.layui-menu-body-title>.layui-icon-down{transform:rotate(180deg)}.layui-menu .layui-menu-item-up>.layui-menu-body-title>.layui-icon-up{transform:rotate(-180deg)}.layui-menu .layui-menu-item-down:hover>.layui-menu-body-title>.layui-icon,.layui-menu .layui-menu-item-up>.layui-menu-body-title:hover>.layui-icon{color:#000}.layui-menu .layui-menu-item-down>ul{visibility:visible;height:auto}.layui-menu .layui-menu-item-checked,.layui-menu .layui-menu-item-checked2{background-color:#f8f8f8!important;color:#16b777}.layui-menu .layui-menu-item-checked a,.layui-menu .layui-menu-item-checked2 a{color:#16b777}.layui-menu .layui-menu-item-checked:after{position:absolute;right:-1px;top:0;bottom:0;border-right:3px solid #16b777;content:""}.layui-menu-body-title{position:relative;margin:-5px -15px;overflow:hidden;text-overflow:ellipsis}.layui-menu-body-title a{display:block;margin:-5px -15px;color:rgba(0,0,0,.8)}.layui-menu-body-title a:hover{transition:all .3s}.layui-menu-body-title>.layui-icon{position:absolute;right:15px;top:50%;margin-top:-6px;line-height:normal;font-size:14px;transition:all .2s;-webkit-transition:all .2s}.layui-menu-body-title>.layui-icon:hover{transition:all .3s}.layui-menu-body-title>.layui-icon-right{right:14px}.layui-menu-body-panel{display:none;position:absolute;top:-7px;left:100%;z-index:1000;margin-left:13px;padding:5px 0}.layui-menu-body-panel:before{content:"";position:absolute;width:20px;left:-16px;top:0;bottom:0}.layui-menu-body-panel-left{left:auto;right:100%;margin:0 13px 0}.layui-menu-body-panel-left:before{left:auto;right:-16px}.layui-menu-lg li{line-height:32px}.layui-menu-lg .layui-menu-body-title a:hover,.layui-menu-lg li:hover{background:0 0;color:#16b777}.layui-menu-lg li .layui-menu-body-panel{margin-left:14px}.layui-menu-lg li .layui-menu-body-panel-left{margin:0 15px 0}.layui-dropdown{position:absolute;left:-999999px;top:-999999px;z-index:77777777;margin:5px 0;min-width:100px}.layui-dropdown:before{content:"";position:absolute;width:100%;height:6px;left:0;top:-6px}.layui-dropdown-shade{top:0;left:0;width:100%;height:100%;_height:expression(document.body.offsetHeight+"px");position:fixed;_position:absolute;pointer-events:auto}.layui-nav{position:relative;padding:0 15px;background-color:#2f363c;color:#fff;border-radius:2px;font-size:0;box-sizing:border-box}.layui-nav *{font-size:14px}.layui-nav .layui-nav-item{position:relative;display:inline-block;*display:inline;*zoom:1;margin-top:0;list-style:none;vertical-align:middle;line-height:60px}.layui-nav .layui-nav-item a{display:block;padding:0 20px;color:#fff;color:rgba(255,255,255,.7);transition:all .3s;-webkit-transition:all .3s}.layui-nav .layui-this:after,.layui-nav-bar{content:"";position:absolute;left:0;top:0;width:0;height:3px;background-color:#16b777;transition:all .2s;-webkit-transition:all .2s;pointer-events:none}.layui-nav-bar{z-index:1000}.layui-nav[lay-bar=disabled] .layui-nav-bar{display:none}.layui-nav .layui-nav-item a:hover,.layui-nav .layui-this a{color:#fff;text-decoration:none}.layui-nav .layui-this:after{top:auto;bottom:0;width:100%}.layui-nav-img{width:30px;height:30px;margin-right:10px;border-radius:50%}.layui-nav .layui-nav-more{position:absolute;top:0;right:3px;left:auto!important;margin-top:0;font-size:12px;cursor:pointer;transition:all .2s;-webkit-transition:all .2s}.layui-nav .layui-nav-mored,.layui-nav-itemed>a .layui-nav-more{transform:rotate(180deg)}.layui-nav-child{display:none;position:absolute;left:0;top:65px;min-width:100%;line-height:36px;padding:5px 0;box-shadow:0 2px 4px rgba(0,0,0,.12);border:1px solid #eee;background-color:#fff;z-index:100;border-radius:2px;white-space:nowrap;box-sizing:border-box}.layui-nav .layui-nav-child a{color:#5f5f5f;color:rgba(0,0,0,.8)}.layui-nav .layui-nav-child a:hover{background-color:#f8f8f8;color:rgba(0,0,0,.8)}.layui-nav-child dd{margin:1px 0;position:relative}.layui-nav-child dd.layui-this{background-color:#f8f8f8;color:#000}.layui-nav-child dd.layui-this:after{display:none}.layui-nav-child-r{left:auto;right:0}.layui-nav-child-c{text-align:center}.layui-nav.layui-nav-tree{width:200px;padding:0}.layui-nav-tree .layui-nav-item{display:block;width:100%;line-height:40px}.layui-nav-tree .layui-nav-item a{position:relative;height:40px;line-height:40px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-nav-tree .layui-nav-item>a{padding-top:5px;padding-bottom:5px}.layui-nav-tree .layui-nav-more{right:15px}.layui-nav-tree .layui-nav-item>a .layui-nav-more{padding:5px 0}.layui-nav-tree .layui-nav-bar{width:5px;height:0}.layui-side .layui-nav-tree .layui-nav-bar{width:2px}.layui-nav-tree .layui-nav-child dd.layui-this,.layui-nav-tree .layui-nav-child dd.layui-this a,.layui-nav-tree .layui-this,.layui-nav-tree .layui-this>a,.layui-nav-tree .layui-this>a:hover{background-color:#16baaa;color:#fff}.layui-nav-tree .layui-this:after{display:none}.layui-nav-itemed>a,.layui-nav-tree .layui-nav-title a,.layui-nav-tree .layui-nav-title a:hover{color:#fff!important}.layui-nav-tree .layui-nav-bar{background-color:#16baaa}.layui-nav-tree .layui-nav-child{position:relative;z-index:0;top:0;border:none;background:0 0;background-color:rgba(0,0,0,.3);box-shadow:none}.layui-nav-tree .layui-nav-child dd{margin:0}.layui-nav-tree .layui-nav-child a{color:#fff;color:rgba(255,255,255,.7)}.layui-nav-tree .layui-nav-child a:hover{background:0 0;color:#fff}.layui-nav-itemed>.layui-nav-child,.layui-nav-itemed>.layui-nav-child>.layui-this>.layui-nav-child{display:block}.layui-nav-side{position:fixed;top:0;bottom:0;left:0;overflow-x:hidden;z-index:999}.layui-nav-tree.layui-bg-gray a,.layui-nav.layui-bg-gray .layui-nav-item a{color:#373737;color:rgba(0,0,0,.8)}.layui-nav-tree.layui-bg-gray .layui-nav-itemed>a{color:#000!important}.layui-nav.layui-bg-gray .layui-this a{color:#16b777}.layui-nav-tree.layui-bg-gray .layui-nav-child{padding-left:11px;background:0 0}.layui-nav-tree.layui-bg-gray .layui-nav-child dd.layui-this,.layui-nav-tree.layui-bg-gray .layui-nav-child dd.layui-this a,.layui-nav-tree.layui-bg-gray .layui-this,.layui-nav-tree.layui-bg-gray .layui-this>a{background:0 0!important;color:#16b777!important;font-weight:700}.layui-nav-tree.layui-bg-gray .layui-nav-bar{background-color:#16b777}.layui-breadcrumb{visibility:hidden;font-size:0}.layui-breadcrumb>*{font-size:14px}.layui-breadcrumb a{color:#999!important}.layui-breadcrumb a:hover{color:#16b777!important}.layui-breadcrumb a cite{color:#5f5f5f;font-style:normal}.layui-breadcrumb span[lay-separator]{margin:0 10px;color:#999}.layui-tab{margin:10px 0;text-align:left!important}.layui-tab[overflow]>.layui-tab-title{overflow:hidden}.layui-tab .layui-tab-title{position:relative;left:0;height:40px;white-space:nowrap;font-size:0;border-bottom-width:1px;border-bottom-style:solid;transition:all .2s;-webkit-transition:all .2s}.layui-tab .layui-tab-title li{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;font-size:14px;transition:all .2s;-webkit-transition:all .2s}.layui-tab .layui-tab-title li{position:relative;line-height:40px;min-width:65px;margin:0;padding:0 15px;text-align:center;cursor:pointer}.layui-tab .layui-tab-title li a{display:block;padding:0 15px;margin:0 -15px}.layui-tab-title .layui-this{color:#000}.layui-tab-title .layui-this:after{position:absolute;left:0;top:0;content:"";width:100%;height:41px;border-width:1px;border-bottom-width:2px;border-style:solid;border-bottom-color:#fff;border-radius:2px 2px 0 0;box-sizing:border-box;pointer-events:none}.layui-tab-bar{position:absolute;right:0;top:0;z-index:10;width:30px;height:39px;line-height:39px;border-width:1px;border-style:solid;border-radius:2px;text-align:center;background-color:#fff;cursor:pointer}.layui-tab-bar .layui-icon{position:relative;display:inline-block;top:3px;transition:all .3s;-webkit-transition:all .3s}.layui-tab-item{display:none}.layui-tab-more{padding-right:30px;height:auto!important;white-space:normal!important}.layui-tab-more li.layui-this:after{border-bottom-color:#eee;border-radius:2px}.layui-tab-more .layui-tab-bar .layui-icon{top:-2px;top:3px\0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}:root .layui-tab-more .layui-tab-bar .layui-icon{top:-2px\0/IE9}.layui-tab-content{padding:15px 0}.layui-tab-title li .layui-tab-close{position:relative;display:inline-block;width:18px;height:18px;line-height:20px;margin-left:8px;top:1px;text-align:center;font-size:14px;color:#c2c2c2;transition:all .2s;-webkit-transition:all .2s}.layui-tab-title li .layui-tab-close:hover{border-radius:2px;background-color:#ff5722;color:#fff}.layui-tab-brief>.layui-tab-title .layui-this{color:#16baaa}.layui-tab-brief>.layui-tab-more li.layui-this:after,.layui-tab-brief>.layui-tab-title .layui-this:after{border:none;border-radius:0;border-bottom:2px solid #16b777}.layui-tab-brief[overflow]>.layui-tab-title .layui-this:after{top:-1px}.layui-tab-card{border-width:1px;border-style:solid;border-radius:2px;box-shadow:0 2px 5px 0 rgba(0,0,0,.1)}.layui-tab-card>.layui-tab-title{background-color:#fafafa}.layui-tab-card>.layui-tab-title li{margin-right:-1px;margin-left:-1px}.layui-tab-card>.layui-tab-title .layui-this{background-color:#fff}.layui-tab-card>.layui-tab-title .layui-this:after{border-top:none;border-width:1px;border-bottom-color:#fff}.layui-tab-card>.layui-tab-title .layui-tab-bar{height:40px;line-height:40px;border-radius:0;border-top:none;border-right:none}.layui-tab-card>.layui-tab-more .layui-this{background:0 0;color:#16b777}.layui-tab-card>.layui-tab-more .layui-this:after{border:none}.layui-timeline{padding-left:5px}.layui-timeline-item{position:relative;padding-bottom:20px}.layui-timeline-axis{position:absolute;left:-5px;top:0;z-index:10;width:20px;height:20px;line-height:20px;background-color:#fff;color:#16b777;border-radius:50%;text-align:center;cursor:pointer}.layui-timeline-axis:hover{color:#ff5722}.layui-timeline-item:before{content:"";position:absolute;left:5px;top:0;z-index:0;width:1px;height:100%}.layui-timeline-item:first-child:before{display:block}.layui-timeline-item:last-child:before{display:none}.layui-timeline-content{padding-left:25px}.layui-timeline-title{position:relative;margin-bottom:10px;line-height:22px}.layui-badge,.layui-badge-dot,.layui-badge-rim{position:relative;display:inline-block;padding:0 6px;font-size:12px;text-align:center;background-color:#ff5722;color:#fff;border-radius:2px}.layui-badge{height:18px;line-height:18px}.layui-badge-dot{width:8px;height:8px;padding:0;border-radius:50%}.layui-badge-rim{height:18px;line-height:18px;border-width:1px;border-style:solid;background-color:#fff;color:#5f5f5f}.layui-btn .layui-badge,.layui-btn .layui-badge-dot{margin-left:5px}.layui-nav .layui-badge,.layui-nav .layui-badge-dot{position:absolute;top:50%;margin:-5px 6px 0}.layui-nav .layui-badge{margin-top:-10px}.layui-tab-title .layui-badge,.layui-tab-title .layui-badge-dot{left:5px;top:-2px}.layui-carousel{position:relative;left:0;top:0;background-color:#f8f8f8}.layui-carousel>[carousel-item]{position:relative;width:100%;height:100%;overflow:hidden}.layui-carousel>[carousel-item]:before{position:absolute;content:'\e63d';left:50%;top:50%;width:100px;line-height:20px;margin:-10px 0 0 -50px;text-align:center;color:#c2c2c2;font-family:layui-icon!important;font-size:30px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-carousel>[carousel-item]>*{display:none;position:absolute;left:0;top:0;width:100%;height:100%;background-color:#f8f8f8;transition-duration:.3s;-webkit-transition-duration:.3s}.layui-carousel-updown>*{-webkit-transition:.3s ease-in-out up;transition:.3s ease-in-out up}.layui-carousel-arrow{display:none\0;opacity:0;position:absolute;left:10px;top:50%;margin-top:-18px;width:36px;height:36px;line-height:36px;text-align:center;font-size:20px;border:none 0;border-radius:50%;background-color:rgba(0,0,0,.2);color:#fff;-webkit-transition-duration:.3s;transition-duration:.3s;cursor:pointer}.layui-carousel-arrow[lay-type=add]{left:auto!important;right:10px}.layui-carousel[lay-arrow=always] .layui-carousel-arrow{opacity:1;left:20px}.layui-carousel[lay-arrow=always] .layui-carousel-arrow[lay-type=add]{right:20px}.layui-carousel[lay-arrow=none] .layui-carousel-arrow{display:none}.layui-carousel-arrow:hover,.layui-carousel-ind ul:hover{background-color:rgba(0,0,0,.35)}.layui-carousel:hover .layui-carousel-arrow{display:block\0;opacity:1;left:20px}.layui-carousel:hover .layui-carousel-arrow[lay-type=add]{right:20px}.layui-carousel-ind{position:relative;top:-35px;width:100%;line-height:0!important;text-align:center;font-size:0}.layui-carousel[lay-indicator=outside]{margin-bottom:30px}.layui-carousel[lay-indicator=outside] .layui-carousel-ind{top:10px}.layui-carousel[lay-indicator=outside] .layui-carousel-ind ul{background-color:rgba(0,0,0,.5)}.layui-carousel[lay-indicator=none] .layui-carousel-ind{display:none}.layui-carousel-ind ul{display:inline-block;padding:5px;background-color:rgba(0,0,0,.2);border-radius:10px;-webkit-transition-duration:.3s;transition-duration:.3s}.layui-carousel-ind ul li{display:inline-block;width:10px;height:10px;margin:0 3px;font-size:14px;background-color:#eee;background-color:rgba(255,255,255,.5);border-radius:50%;cursor:pointer;-webkit-transition-duration:.3s;transition-duration:.3s}.layui-carousel-ind ul li:hover{background-color:rgba(255,255,255,.7)}.layui-carousel-ind ul li.layui-this{background-color:#fff}.layui-carousel>[carousel-item]>.layui-carousel-next,.layui-carousel>[carousel-item]>.layui-carousel-prev,.layui-carousel>[carousel-item]>.layui-this{display:block}.layui-carousel>[carousel-item]>.layui-this{left:0}.layui-carousel>[carousel-item]>.layui-carousel-prev{left:-100%}.layui-carousel>[carousel-item]>.layui-carousel-next{left:100%}.layui-carousel>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel>[carousel-item]>.layui-carousel-prev.layui-carousel-right{left:0}.layui-carousel>[carousel-item]>.layui-this.layui-carousel-left{left:-100%}.layui-carousel>[carousel-item]>.layui-this.layui-carousel-right{left:100%}.layui-carousel[lay-anim=updown] .layui-carousel-arrow{left:50%!important;top:20px;margin:0 0 0 -18px}.layui-carousel[lay-anim=updown] .layui-carousel-arrow[lay-type=add]{top:auto!important;bottom:20px}.layui-carousel[lay-anim=updown] .layui-carousel-ind{position:absolute;top:50%;right:20px;width:auto;height:auto}.layui-carousel[lay-anim=updown] .layui-carousel-ind ul{padding:3px 5px}.layui-carousel[lay-anim=updown] .layui-carousel-ind li{display:block;margin:6px 0}.layui-carousel[lay-anim=updown]>[carousel-item]>*{left:0!important}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this{top:0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev{top:-100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next{top:100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev.layui-carousel-right{top:0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-left{top:-100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-right{top:100%}.layui-carousel[lay-anim=fade]>[carousel-item]>*{left:0!important}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-next,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-prev{opacity:0}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-prev.layui-carousel-right{opacity:1}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-this.layui-carousel-left,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-this.layui-carousel-right{opacity:0}.layui-fixbar{position:fixed;right:16px;bottom:16px;z-index:999999}.layui-fixbar li{width:50px;height:50px;line-height:50px;margin-bottom:1px;text-align:center;cursor:pointer;font-size:30px;background-color:#9f9f9f;color:#fff;border-radius:2px;opacity:.95}.layui-fixbar li:hover{opacity:.85}.layui-fixbar li:active{opacity:1}.layui-fixbar .layui-fixbar-top{display:none;font-size:40px}body .layui-util-face{border:none;background:0 0}body .layui-util-face .layui-layer-content{padding:0;background-color:#fff;color:#5f5f5f;box-shadow:none}.layui-util-face .layui-layer-TipsG{display:none}.layui-util-face ul{position:relative;width:372px;padding:10px;border:1px solid #d9d9d9;background-color:#fff;box-shadow:0 0 20px rgba(0,0,0,.2)}.layui-util-face ul li{cursor:pointer;float:left;border:1px solid #e8e8e8;height:22px;width:26px;overflow:hidden;margin:-1px 0 0 -1px;padding:4px 2px;text-align:center}.layui-util-face ul li:hover{position:relative;z-index:2;border:1px solid #eb7350;background:#fff9ec}.layui-code{display:block;position:relative;padding:15px;line-height:20px;border:1px solid #eee;border-left-width:6px;background-color:#fff;color:#333;font-family:"Courier New",Consolas,"Lucida Console";font-size:12px}.layui-transfer-box,.layui-transfer-header,.layui-transfer-search{border-width:0;border-style:solid;border-color:#eee}.layui-transfer-box{position:relative;display:inline-block;vertical-align:middle;border-width:1px;width:200px;height:360px;border-radius:2px;background-color:#fff}.layui-transfer-box .layui-form-checkbox{width:100%;margin:0!important}.layui-transfer-header{height:38px;line-height:38px;padding:0 11px;border-bottom-width:1px}.layui-transfer-search{position:relative;padding:11px;border-bottom-width:1px}.layui-transfer-search .layui-input{height:32px;padding-left:30px;font-size:12px}.layui-transfer-search .layui-icon-search{position:absolute;left:20px;top:50%;line-height:normal;margin-top:-8px;color:#5f5f5f}.layui-transfer-active{margin:0 15px;display:inline-block;vertical-align:middle}.layui-transfer-active .layui-btn{display:block;margin:0;padding:0 15px;background-color:#16b777;border-color:#16b777;color:#fff}.layui-transfer-active .layui-btn-disabled{background-color:#fbfbfb;border-color:#eee;color:#d2d2d2}.layui-transfer-active .layui-btn:first-child{margin-bottom:15px}.layui-transfer-active .layui-btn .layui-icon{margin:0;font-size:14px!important}.layui-transfer-data{padding:5px 0;overflow:auto}.layui-transfer-data li{height:32px;line-height:32px;margin-top:0!important;padding:0 11px;list-style-type:none!important}.layui-transfer-data li:hover{background-color:#f8f8f8;transition:.5s all}.layui-transfer-data .layui-none{padding:15px 11px;text-align:center;color:#999}.layui-rate,.layui-rate *{display:inline-block;vertical-align:middle}.layui-rate{padding:11px 6px 11px 0;font-size:0}.layui-rate li{margin-top:0!important}.layui-rate li i.layui-icon{font-size:20px;color:#ffb800}.layui-rate li i.layui-icon{margin-right:5px;transition:all .3s;-webkit-transition:all .3s}.layui-rate li i:hover,.layui-rate-hover{cursor:pointer;transform:scale(1.12);-webkit-transform:scale(1.12)}.layui-rate[readonly] li i:hover{cursor:default;transform:scale(1)}.layui-colorpicker{width:38px;height:38px;border:1px solid #eee;padding:5px;border-radius:2px;line-height:24px;display:inline-block;cursor:pointer;transition:all .3s;-webkit-transition:all .3s;box-sizing:border-box}.layui-colorpicker:hover{border-color:#d2d2d2}.layui-colorpicker.layui-colorpicker-lg{width:44px;height:44px;line-height:30px}.layui-colorpicker.layui-colorpicker-sm{width:30px;height:30px;line-height:20px;padding:3px}.layui-colorpicker.layui-colorpicker-xs{width:22px;height:22px;line-height:16px;padding:1px}.layui-colorpicker-trigger-bgcolor{display:block;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);border-radius:2px}.layui-colorpicker-trigger-span{display:block;height:100%;box-sizing:border-box;border:1px solid rgba(0,0,0,.15);border-radius:2px;text-align:center}.layui-colorpicker-trigger-i{display:inline-block;color:#fff;font-size:12px}.layui-colorpicker-trigger-i.layui-icon-close{color:#999}.layui-colorpicker-main{position:absolute;left:-999999px;top:-999999px;z-index:77777777;width:280px;margin:5px 0;padding:7px;background:#fff;border:1px solid #d2d2d2;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12)}.layui-colorpicker-main-wrapper{height:180px;position:relative}.layui-colorpicker-basis{width:260px;height:100%;position:relative;overflow:hidden}.layui-colorpicker-basis-white{width:100%;height:100%;position:absolute;top:0;left:0;background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.layui-colorpicker-basis-black{width:100%;height:100%;position:absolute;top:0;left:0;background:linear-gradient(0deg,#000,transparent)}.layui-colorpicker-basis-cursor{width:10px;height:10px;border:1px solid #fff;border-radius:50%;position:absolute;top:0;right:100%;cursor:pointer;transform:translate(-50%,-50%)}.layui-colorpicker-side{position:absolute;top:0;right:0;width:12px;height:100%;background:linear-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.layui-colorpicker-side-slider{width:100%;height:5px;box-shadow:0 0 1px #888;box-sizing:border-box;background:#fff;border-radius:1px;border:1px solid #f0f0f0;cursor:pointer;position:absolute;left:0}.layui-colorpicker-main-alpha{display:none;height:12px;margin-top:7px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.layui-colorpicker-alpha-bgcolor{height:100%;position:relative}.layui-colorpicker-alpha-slider{width:5px;height:100%;box-shadow:0 0 1px #888;box-sizing:border-box;background:#fff;border-radius:1px;border:1px solid #f0f0f0;cursor:pointer;position:absolute;top:0}.layui-colorpicker-main-pre{padding-top:7px;font-size:0}.layui-colorpicker-pre{width:20px;height:20px;border-radius:2px;display:inline-block;margin-left:6px;margin-bottom:7px;cursor:pointer}.layui-colorpicker-pre:nth-child(11n+1){margin-left:0}.layui-colorpicker-pre-isalpha{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.layui-colorpicker-pre.layui-this{box-shadow:0 0 3px 2px rgba(0,0,0,.15)}.layui-colorpicker-pre>div{height:100%;border-radius:2px}.layui-colorpicker-main-input{text-align:right;padding-top:7px}.layui-colorpicker-main-input .layui-btn-container .layui-btn{margin:0 0 0 10px}.layui-colorpicker-main-input div.layui-inline{float:left;font-size:14px}.layui-colorpicker-main-input input.layui-input{width:168px;height:30px;color:#5f5f5f;padding-left:5px}.layui-slider{height:4px;background:#eee;border-radius:3px;position:relative;cursor:pointer}.layui-slider-bar{border-radius:3px;position:absolute;height:100%}.layui-slider-step{position:absolute;top:0;width:4px;height:4px;border-radius:50%;background:#fff;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.layui-slider-wrap{width:36px;height:36px;position:absolute;top:-16px;-webkit-transform:translateX(-50%);transform:translateX(-50%);z-index:10;text-align:center}.layui-slider-wrap-btn{width:12px;height:12px;border-radius:50%;background:#fff;display:inline-block;vertical-align:middle;cursor:pointer;transition:.3s}.layui-slider-wrap:after{content:"";height:100%;display:inline-block;vertical-align:middle}.layui-slider-wrap-btn.layui-slider-hover,.layui-slider-wrap-btn:hover{transform:scale(1.2)}.layui-slider-wrap-btn.layui-disabled:hover{transform:scale(1)!important}.layui-slider-tips{position:absolute;top:-42px;z-index:77777777;white-space:nowrap;-webkit-transform:translateX(-50%);transform:translateX(-50%);color:#fff;background:#000;border-radius:3px;height:25px;line-height:25px;padding:0 10px}.layui-slider-tips:after{content:"";position:absolute;bottom:-12px;left:50%;margin-left:-6px;width:0;height:0;border-width:6px;border-style:solid;border-color:#000 transparent transparent transparent}.layui-slider-input{width:70px;height:32px;border:1px solid #eee;border-radius:3px;font-size:16px;line-height:32px;position:absolute;right:0;top:-14px;box-sizing:border-box}.layui-slider-input-btn{position:absolute;top:0;right:0;width:20px;height:100%;border-left:1px solid #eee}.layui-slider-input-btn i{cursor:pointer;position:absolute;right:0;bottom:0;width:20px;height:50%;font-size:12px;line-height:16px;text-align:center;color:#999}.layui-slider-input-btn i:first-child{top:0;border-bottom:1px solid #eee}.layui-slider-input-txt{height:100%;font-size:14px}.layui-slider-input-txt input{height:100%;border:none;padding-right:21px}.layui-slider-input-btn i:hover{color:#16baaa}.layui-slider-vertical{width:4px;margin-left:33px}.layui-slider-vertical .layui-slider-bar{width:4px}.layui-slider-vertical .layui-slider-step{top:auto;left:0;-webkit-transform:translateY(50%);transform:translateY(50%)}.layui-slider-vertical .layui-slider-wrap{top:auto;left:-16px;-webkit-transform:translateY(50%);transform:translateY(50%)}.layui-slider-vertical .layui-slider-tips{top:auto;left:2px}@media \0screen{.layui-slider-wrap-btn{margin-left:-20px}.layui-slider-vertical .layui-slider-wrap-btn{margin-left:0;margin-bottom:-20px}.layui-slider-vertical .layui-slider-tips{margin-left:-8px}.layui-slider>span{margin-left:8px}}.layui-tree{line-height:22px}.layui-tree .layui-form-checkbox{margin:0!important}.layui-tree-set{width:100%;position:relative}.layui-tree-pack{display:none;padding-left:20px;position:relative}.layui-tree-line .layui-tree-pack{padding-left:27px}.layui-tree-line .layui-tree-set .layui-tree-set:after{content:"";position:absolute;top:14px;left:-9px;width:17px;height:0;border-top:1px dotted #c0c4cc}.layui-tree-entry{position:relative;padding:3px 0;height:26px;white-space:nowrap}.layui-tree-entry:hover{background-color:#eee}.layui-tree-line .layui-tree-entry:hover{background-color:rgba(0,0,0,0)}.layui-tree-line .layui-tree-entry:hover .layui-tree-txt{color:#999;text-decoration:underline;transition:.3s}.layui-tree-main{display:inline-block;vertical-align:middle;cursor:pointer;padding-right:10px}.layui-tree-line .layui-tree-set:before{content:"";position:absolute;top:0;left:-9px;width:0;height:100%;border-left:1px dotted #c0c4cc}.layui-tree-line .layui-tree-set.layui-tree-setLineShort:before{height:13px}.layui-tree-line .layui-tree-set.layui-tree-setHide:before{height:0}.layui-tree-iconClick{display:inline-block;vertical-align:middle;position:relative;height:20px;line-height:20px;margin:0 10px;color:#c0c4cc}.layui-tree-icon{height:14px;line-height:12px;width:14px;text-align:center;border:1px solid #c0c4cc}.layui-tree-iconClick .layui-icon{font-size:18px}.layui-tree-icon .layui-icon{font-size:12px;color:#5f5f5f}.layui-tree-iconArrow{padding:0 5px}.layui-tree-iconArrow:after{content:"";position:absolute;left:4px;top:3px;z-index:100;width:0;height:0;border-width:5px;border-style:solid;border-color:transparent transparent transparent #c0c4cc;transition:.5s}.layui-tree-spread>.layui-tree-entry .layui-tree-iconClick>.layui-tree-iconArrow:after{transform:rotate(90deg) translate(3px,4px)}.layui-tree-txt{display:inline-block;vertical-align:middle;color:#555}.layui-tree-search{margin-bottom:15px;color:#5f5f5f}.layui-tree-btnGroup{visibility:hidden;display:inline-block;vertical-align:middle;position:relative}.layui-tree-btnGroup .layui-icon{display:inline-block;vertical-align:middle;padding:0 2px;cursor:pointer}.layui-tree-btnGroup .layui-icon:hover{color:#999;transition:.3s}.layui-tree-entry:hover .layui-tree-btnGroup{visibility:visible}.layui-tree-editInput{position:relative;display:inline-block;vertical-align:middle;height:20px;line-height:20px;padding:0;border:none;background-color:rgba(0,0,0,.05)}.layui-tree-emptyText{text-align:center;color:#999}.layui-anim{-webkit-animation-duration:.3s;-webkit-animation-fill-mode:both;animation-duration:.3s;animation-fill-mode:both}.layui-anim.layui-icon{display:inline-block}.layui-anim-loop{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.layui-trans,.layui-trans a{transition:all .2s;-webkit-transition:all .2s}@-webkit-keyframes layui-rotate{from{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(360deg)}}@keyframes layui-rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}.layui-anim-rotate{-webkit-animation-name:layui-rotate;animation-name:layui-rotate;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes layui-up{from{-webkit-transform:translate3d(0,100%,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes layui-up{from{transform:translate3d(0,100%,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-up{-webkit-animation-name:layui-up;animation-name:layui-up}@-webkit-keyframes layui-upbit{from{-webkit-transform:translate3d(0,15px,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes layui-upbit{from{transform:translate3d(0,15px,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-upbit{-webkit-animation-name:layui-upbit;animation-name:layui-upbit}@keyframes layui-down{0%{opacity:.3;transform:translate3d(0,-100%,0)}100%{opacity:1;transform:translate3d(0,0,0)}}.layui-anim-down{animation-name:layui-down}@keyframes layui-downbit{0%{opacity:.3;transform:translate3d(0,-5px,0)}100%{opacity:1;transform:translate3d(0,0,0)}}.layui-anim-downbit{animation-name:layui-downbit}@-webkit-keyframes layui-scale{0%{opacity:.3;-webkit-transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes layui-scale{0%{opacity:.3;-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-ms-transform:scale(1);transform:scale(1)}}.layui-anim-scale{-webkit-animation-name:layui-scale;animation-name:layui-scale}@-webkit-keyframes layui-scale-spring{0%{opacity:.5;-webkit-transform:scale(.5)}80%{opacity:.8;-webkit-transform:scale(1.1)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes layui-scale-spring{0%{opacity:.5;transform:scale(.5)}80%{opacity:.8;transform:scale(1.1)}100%{opacity:1;transform:scale(1)}}.layui-anim-scaleSpring{-webkit-animation-name:layui-scale-spring;animation-name:layui-scale-spring}@keyframes layui-scalesmall{0%{opacity:.3;transform:scale(1.5)}100%{opacity:1;transform:scale(1)}}.layui-anim-scalesmall{animation-name:layui-scalesmall}@keyframes layui-scalesmall-spring{0%{opacity:.3;transform:scale(1.5)}80%{opacity:.8;transform:scale(.9)}100%{opacity:1;transform:scale(1)}}.layui-anim-scalesmall-spring{animation-name:layui-scalesmall-spring}@-webkit-keyframes layui-fadein{0%{opacity:0}100%{opacity:1}}@keyframes layui-fadein{0%{opacity:0}100%{opacity:1}}.layui-anim-fadein{-webkit-animation-name:layui-fadein;animation-name:layui-fadein}@-webkit-keyframes layui-fadeout{0%{opacity:1}100%{opacity:0}}@keyframes layui-fadeout{0%{opacity:1}100%{opacity:0}}.layui-anim-fadeout{-webkit-animation-name:layui-fadeout;animation-name:layui-fadeout}html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-wrap{font-size:13px;font-family:"Courier New",Consolas,"Lucida Console"}.layui-code-view{display:block;position:relative;padding:0!important;border:1px solid #eee;border-left-width:6px;background-color:#fff;color:#333}.layui-code-view pre{margin:0!important}.layui-code-header{position:relative;z-index:3;padding:0 11px;height:40px;line-height:40px;border-bottom:1px solid #eee;background-color:#fafafa;font-size:12px}.layui-code-header>.layui-code-header-about{position:absolute;right:11px;top:0;color:#b7b7b7}.layui-code-header-about>a{padding-left:10px}.layui-code-wrap{position:relative;display:block;z-index:1;margin:0!important;padding:11px 0!important;overflow-x:hidden;overflow-y:auto}.layui-code-line{position:relative;line-height:19px;margin:0!important}.layui-code-line-number{position:absolute;left:0;top:0;padding:0 8px;min-width:45px;height:100%;text-align:right;user-select:none;white-space:nowrap;overflow:hidden}.layui-code-line-content{padding:0 11px;word-wrap:break-word;white-space:pre-wrap}.layui-code-ln-mode>.layui-code-wrap>.layui-code-line{padding-left:45px}.layui-code-ln-side{position:absolute;left:0;top:0;bottom:0;z-index:0;width:45px;border-right:1px solid #eee;border-color:rgb(126 122 122 / 15%);background-color:#fafafa;pointer-events:none}.layui-code-nowrap>.layui-code-wrap{overflow:auto}.layui-code-nowrap>.layui-code-wrap>.layui-code-line>.layui-code-line-content{white-space:pre;word-wrap:normal}.layui-code-nowrap>.layui-code-ln-side{border-right-width:0!important;background:0 0!important}.layui-code-fixbar{position:absolute;top:8px;right:11px;padding-right:45px;z-index:5}.layui-code-fixbar>span{position:absolute;right:0;top:0;padding:0 8px;color:#777;transition:all .3s}.layui-code-fixbar>span:hover{color:#16b777}.layui-code-copy{display:none;cursor:pointer}.layui-code-preview>.layui-code-view>.layui-code-fixbar .layui-code-copy{display:none!important}.layui-code-view:hover>.layui-code-fixbar .layui-code-copy{display:block}.layui-code-view:hover>.layui-code-fixbar .layui-code-lang-marker{display:none}.layui-code-theme-dark,.layui-code-theme-dark>.layui-code-header{border-color:rgb(126 122 122 / 15%);background-color:#1f1f1f}.layui-code-theme-dark{border-width:1px;color:#ccc}.layui-code-theme-dark>.layui-code-ln-side{border-right-color:#2a2a2a;background:0 0;color:#6e7681}.layui-code textarea{display:none}.layui-code-preview>.layui-code,.layui-code-preview>.layui-code-view{margin:0}.layui-code-preview>.layui-tab{position:relative;z-index:1;margin-bottom:0}.layui-code-preview>.layui-tab>.layui-tab-title{border-width:0}.layui-code-preview .layui-code-item{display:none}.layui-code-item-preview{position:relative;padding:16px}.layui-code-item-preview>iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.layui-code-tools{position:absolute;right:11px;top:8px;line-height:normal}.layui-code-tools>i{display:inline-block;margin-left:6px;padding:3px;cursor:pointer}.layui-code-tools>i.layui-icon-file-b{color:#999}.layui-code-tools>i:hover{color:#16b777}.layui-code-full{position:fixed;left:0;top:0;z-index:1111111;width:100%;height:100%;background-color:#fff}.layui-code-full .layui-code-item{width:100%!important;border-width:0!important;border-top-width:1px!important}.layui-code-full .layui-code-item,.layui-code-full .layui-code-view,.layui-code-full .layui-code-wrap{height:calc(100vh - 51px)!important;box-sizing:border-box}.layui-code-full .layui-code-item-preview{overflow:auto}.layui-code-view.layui-code-hl{line-height:20px!important;border-left-width:1px}.layui-code-view.layui-code-hl>.layui-code-ln-side{background-color:transparent}.layui-code-theme-dark.layui-code-hl,.layui-code-theme-dark.layui-code-hl>.layui-code-ln-side{border-color:rgb(126 122 122 / 15%)}html #layuicss-laydate{display:none;position:absolute;width:1989px}.layui-laydate *{margin:0;padding:0}.layui-laydate,.layui-laydate *{box-sizing:border-box}.layui-laydate{position:absolute;z-index:99999999;margin:5px 0;border-radius:2px;font-size:14px;line-height:normal;-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.layui-laydate-main{width:272px}.layui-laydate-content td,.layui-laydate-header *,.layui-laydate-list li{transition-duration:.3s;-webkit-transition-duration:.3s}.layui-laydate-shade{top:0;left:0;width:100%;height:100%;_height:expression(document.body.offsetHeight+"px");position:fixed;_position:absolute;pointer-events:auto}@keyframes laydate-downbit{0%{opacity:.3;transform:translate3d(0,-5px,0)}100%{opacity:1;transform:translate3d(0,0,0)}}.layui-laydate{animation-name:laydate-downbit}.layui-laydate-static{position:relative;z-index:0;display:inline-block;margin:0;-webkit-animation:none;animation:none}.laydate-ym-show .laydate-next-m,.laydate-ym-show .laydate-prev-m{display:none!important}.laydate-ym-show .laydate-next-y,.laydate-ym-show .laydate-prev-y{display:inline-block!important}.laydate-ym-show .laydate-set-ym span[lay-type=month]{display:none!important}.laydate-time-show .laydate-set-ym span[lay-type=month],.laydate-time-show .laydate-set-ym span[lay-type=year],.laydate-time-show .layui-laydate-header .layui-icon{display:none!important}.layui-laydate-header{position:relative;line-height:30px;padding:10px 70px 5px}.layui-laydate-header *{display:inline-block;vertical-align:bottom}.layui-laydate-header i{position:absolute;top:10px;padding:0 5px;color:#999;font-size:18px;cursor:pointer}.layui-laydate-header i.laydate-prev-y{left:15px}.layui-laydate-header i.laydate-prev-m{left:45px}.layui-laydate-header i.laydate-next-y{right:15px}.layui-laydate-header i.laydate-next-m{right:45px}.laydate-set-ym{width:100%;text-align:center;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.laydate-set-ym span{padding:0 10px;cursor:pointer}.laydate-time-text{cursor:default!important}.layui-laydate-content{position:relative;padding:10px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-laydate-content table{border-collapse:collapse;border-spacing:0}.layui-laydate-content td,.layui-laydate-content th{width:36px;height:30px;padding:0;text-align:center}.layui-laydate-content th{font-weight:400}.layui-laydate-content td{position:relative;cursor:pointer}.laydate-day-mark{position:absolute;left:0;top:0;width:100%;line-height:30px;font-size:12px;overflow:hidden}.laydate-day-mark::after{position:absolute;content:'';right:2px;top:2px;width:5px;height:5px;border-radius:50%}.laydate-day-holidays:before{position:absolute;left:0;top:0;font-size:12px;transform:scale(.7)}.laydate-day-holidays:before{content:'\4F11';color:#ff5722}.laydate-day-holidays[type=workdays]:before{content:'\73ED';color:inherit}.layui-laydate .layui-this .laydate-day-holidays:before{color:#fff}.layui-laydate-footer{position:relative;height:46px;line-height:26px;padding:10px}.layui-laydate-footer span{display:inline-block;vertical-align:top;height:26px;line-height:24px;padding:0 10px;border:1px solid #c9c9c9;border-radius:2px;background-color:#fff;font-size:12px;cursor:pointer;white-space:nowrap;transition:all .3s}.layui-laydate-footer span:hover{color:#16b777}.layui-laydate-footer span.layui-laydate-preview{cursor:default;border-color:transparent!important}.layui-laydate-footer span.layui-laydate-preview:hover{color:#777}.layui-laydate-footer span:first-child.layui-laydate-preview{padding-left:0}.laydate-footer-btns{position:absolute;right:10px;top:10px}.laydate-footer-btns span{margin:0 0 0 -1px;border-radius:0}.laydate-footer-btns span:first-child{border-radius:2px 0 0 2px}.laydate-footer-btns span:last-child{border-radius:0 2px 2px 0}.layui-laydate-shortcut{width:80px;padding:6px 0;display:inline-block;vertical-align:top;overflow:auto;max-height:276px;text-align:center}.layui-laydate-shortcut+.layui-laydate-main{display:inline-block;border-left:1px solid #e2e2e2}.layui-laydate-shortcut>li{padding:5px 8px;cursor:pointer;line-height:18px}.layui-laydate .layui-laydate-list{position:absolute;left:0;top:0;width:100%;height:100%;padding:10px;box-sizing:border-box;background-color:#fff}.layui-laydate .layui-laydate-list>li{position:relative;display:inline-block;width:33.3%;height:36px;line-height:36px;margin:3px 0;vertical-align:middle;text-align:center;cursor:pointer;list-style:none}.layui-laydate .laydate-month-list>li{width:25%;margin:17px 0}.laydate-time-list{display:table}.layui-laydate .laydate-time-list>li{display:table-cell;height:100%;margin:0;line-height:normal;cursor:default}.layui-laydate .laydate-time-list p{position:relative;top:-4px;margin:0;line-height:29px}.layui-laydate .laydate-time-list ol{height:181px;overflow:hidden}.layui-laydate .laydate-time-list>li:hover ol{overflow-y:auto}.layui-laydate .laydate-time-list ol li{width:130%;padding-left:33px;height:30px;line-height:30px;text-align:left;cursor:pointer}.layui-laydate .laydate-time-list-hide-1 ol li{padding-left:53px}.layui-laydate .laydate-time-list-hide-2 ol li{padding-left:117px}.layui-laydate-hint{position:absolute;top:115px;left:50%;width:250px;margin-left:-125px;line-height:20px;padding:15px;text-align:center;font-size:12px;color:#ff5722}.layui-laydate-range{width:546px}.layui-laydate-range .layui-laydate-main{display:inline-block;vertical-align:middle;max-width:50%}.layui-laydate-range .laydate-main-list-1 .layui-laydate-content,.layui-laydate-range .laydate-main-list-1 .layui-laydate-header{border-left:1px solid #e2e2e2}.layui-laydate-range.layui-laydate-linkage .laydate-main-list-0 .laydate-next-m,.layui-laydate-range.layui-laydate-linkage .laydate-main-list-0 .laydate-next-y,.layui-laydate-range.layui-laydate-linkage .laydate-main-list-1 .laydate-prev-m,.layui-laydate-range.layui-laydate-linkage .laydate-main-list-1 .laydate-prev-y{display:none}.layui-laydate-range.layui-laydate-linkage .laydate-main-list-1 .layui-laydate-content,.layui-laydate-range.layui-laydate-linkage .laydate-main-list-1 .layui-laydate-header{border-left-style:dashed}.layui-laydate,.layui-laydate-hint{border:1px solid #d2d2d2;box-shadow:0 2px 4px rgba(0,0,0,.12);background-color:#fff;color:#777}.layui-laydate-header{border-bottom:1px solid #e2e2e2}.layui-laydate-header i:hover,.layui-laydate-header span:hover{color:#16b777}.layui-laydate-content{border-top:none 0;border-bottom:none 0}.layui-laydate-content th{color:#333}.layui-laydate-content td{color:#777}.layui-laydate-content td.laydate-day-now{color:#16b777}.layui-laydate-content td.laydate-day-now:after{content:'';position:absolute;width:100%;height:30px;left:0;top:0;border:1px solid #16b777;box-sizing:border-box}.layui-laydate-linkage .layui-laydate-content td.laydate-selected>div{background-color:#cffae9;transition:all .3s}.layui-laydate-linkage .laydate-selected:hover>div{background-color:#cffae9!important}.layui-laydate-content td.laydate-selected:after,.layui-laydate-content td:hover:after{content:none}.layui-laydate-content td>div:hover,.layui-laydate-list li:hover,.layui-laydate-shortcut>li:hover{background-color:#eee;color:#333;transition:all .3s}.laydate-time-list li ol{margin:0;padding:0;border:1px solid #e2e2e2;border-left-width:0}.laydate-time-list li:first-child ol{border-left-width:1px}.laydate-time-list>li:hover{background:0 0}.layui-laydate-content .laydate-day-next,.layui-laydate-content .laydate-day-prev{color:#d2d2d2}.layui-laydate-linkage .laydate-selected.laydate-day-next>div,.layui-laydate-linkage .laydate-selected.laydate-day-prev>div{background:0 0!important}.layui-laydate-footer{border-top:1px solid #e2e2e2}.layui-laydate-hint{color:#ff5722}.laydate-day-mark::after{background-color:#16b777}.layui-laydate-content td.layui-this .laydate-day-mark::after{display:none}.layui-laydate-footer span[lay-type=date]{color:#16b777}.layui-laydate .layui-this,.layui-laydate .layui-this>div{background-color:#16b777!important;color:#fff!important}.layui-laydate .laydate-disabled,.layui-laydate .laydate-disabled:hover{background:0 0!important;color:#d2d2d2!important;cursor:not-allowed!important;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-laydate .layui-this.laydate-disabled,.layui-laydate .layui-this.laydate-disabled>div{background-color:#eee!important}.layui-laydate-content td>div{padding:7px 0;height:100%}.laydate-theme-molv{border:none}.laydate-theme-molv.layui-laydate-range{width:548px}.laydate-theme-molv .layui-laydate-main{width:274px}.laydate-theme-molv .layui-laydate-header{border:none;background-color:#16baaa}.laydate-theme-molv .layui-laydate-header i,.laydate-theme-molv .layui-laydate-header span{color:#f6f6f6}.laydate-theme-molv .layui-laydate-header i:hover,.laydate-theme-molv .layui-laydate-header span:hover{color:#fff}.laydate-theme-molv .layui-laydate-content{border:1px solid #e2e2e2;border-top:none;border-bottom:none}.laydate-theme-molv .laydate-main-list-1 .layui-laydate-content{border-left:none}.laydate-theme-molv .layui-this,.laydate-theme-molv .layui-this>div{background-color:#16baaa!important}.laydate-theme-molv .layui-laydate-footer{border:1px solid #e2e2e2}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li,.laydate-theme-grid .layui-laydate-content td,.laydate-theme-grid .layui-laydate-content thead{border:1px solid #e2e2e2}.layui-laydate-linkage.laydate-theme-grid .laydate-selected,.layui-laydate-linkage.laydate-theme-grid .laydate-selected:hover{background-color:#f2f2f2!important;color:#16baaa!important}.layui-laydate-linkage.laydate-theme-grid .laydate-selected.laydate-day-next,.layui-laydate-linkage.laydate-theme-grid .laydate-selected.laydate-day-prev{color:#d2d2d2!important}.laydate-theme-grid .laydate-month-list,.laydate-theme-grid .laydate-year-list{margin:1px 0 0 1px}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li{margin:0 -1px -1px 0}.laydate-theme-grid .laydate-year-list>li{height:43px;line-height:43px}.laydate-theme-grid .laydate-month-list>li{height:71px;line-height:71px}.laydate-theme-grid .layui-laydate-content td>div{height:29px;margin-top:-1px}.laydate-theme-circle .layui-laydate-content td.layui-this>div,.laydate-theme-circle .layui-laydate-content td>div{width:28px;height:28px;line-height:28px;border-radius:14px;margin:0 4px;padding:0}.layui-laydate.laydate-theme-circle .layui-laydate-content table td.layui-this{background-color:transparent!important}.laydate-theme-grid.laydate-theme-circle .layui-laydate-content td>div{margin:0 3.5px}.laydate-theme-fullpanel .layui-laydate-main{width:526px}.laydate-theme-fullpanel .layui-laydate-list{width:252px;left:272px}.laydate-theme-fullpanel .laydate-set-ym span{display:none}.laydate-theme-fullpanel .laydate-time-show .laydate-set-ym span[lay-type=month],.laydate-theme-fullpanel .laydate-time-show .laydate-set-ym span[lay-type=year],.laydate-theme-fullpanel .laydate-time-show .layui-laydate-header .layui-icon{display:inline-block!important}.laydate-theme-fullpanel .laydate-btns-time{display:none}.laydate-theme-fullpanel .laydate-time-list-hide-1 ol li{padding-left:49px}.laydate-theme-fullpanel .laydate-time-list-hide-2 ol li{padding-left:107px}html #layuicss-layer{display:none;position:absolute;width:1989px}.layui-layer,.layui-layer-shade{position:fixed;_position:absolute;pointer-events:auto}.layui-layer-shade{opacity:0;transition:opacity .35s cubic-bezier(.34,.69,.1,1);top:0;left:0;width:100%;height:100%;_height:expression(document.body.offsetHeight+"px")}.layui-layer{-webkit-overflow-scrolling:touch}.layui-layer{top:150px;left:0;margin:0;padding:0;background-color:#fff;-webkit-background-clip:content;border-radius:2px;box-shadow:1px 1px 50px rgba(0,0,0,.3)}.layui-layer-close{position:absolute}.layui-layer-content{position:relative}.layui-layer-border{border:1px solid #b2b2b2;border:1px solid rgba(0,0,0,.1);box-shadow:1px 1px 5px rgba(0,0,0,.2)}.layui-layer-btn a,.layui-layer-setwin span{display:inline-block;vertical-align:middle;*display:inline;*zoom:1}.layui-layer-move{display:none;position:fixed;*position:absolute;left:0;top:0;width:100%;height:100%;cursor:move;opacity:0;filter:alpha(opacity=0);background-color:#fff;z-index:2147483647}.layui-layer-resize{position:absolute;width:15px;height:15px;right:0;bottom:0;cursor:se-resize}.layer-anim{-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.3s;animation-duration:.3s}@-webkit-keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-00{-webkit-animation-name:layer-bounceIn;animation-name:layer-bounceIn}@-webkit-keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-01{-webkit-animation-name:layer-zoomInDown;animation-name:layer-zoomInDown}@-webkit-keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.layer-anim-02{-webkit-animation-name:layer-fadeInUpBig;animation-name:layer-fadeInUpBig}@-webkit-keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);-ms-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-03{-webkit-animation-name:layer-zoomInLeft;animation-name:layer-zoomInLeft}@-webkit-keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}@keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);-ms-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);-ms-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}.layer-anim-04{-webkit-animation-name:layer-rollIn;animation-name:layer-rollIn}@keyframes layer-fadeIn{0%{opacity:0}100%{opacity:1}}.layer-anim-05{-webkit-animation-name:layer-fadeIn;animation-name:layer-fadeIn}@-webkit-keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}.layer-anim-06{-webkit-animation-name:layer-shake;animation-name:layer-shake}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes layer-slide-down{from{transform:translate3d(0,-100%,0)}to{transform:translate3d(0,0,0)}}@keyframes layer-slide-down-out{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,-100%,0)}}.layer-anim-slide-down{animation-name:layer-slide-down}.layer-anim-slide-down-out{animation-name:layer-slide-down-out}@keyframes layer-slide-left{from{transform:translate3d(100%,0,0)}to{transform:translate3d(0,0,0)}}@keyframes layer-slide-left-out{from{transform:translate3d(0,0,0)}to{transform:translate3d(100%,0,0)}}.layer-anim-slide-left{animation-name:layer-slide-left}.layer-anim-slide-left-out{animation-name:layer-slide-left-out}@keyframes layer-slide-up{from{transform:translate3d(0,100%,0)}to{transform:translate3d(0,0,0)}}@keyframes layer-slide-up-out{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,100%,0)}}.layer-anim-slide-up{animation-name:layer-slide-up}.layer-anim-slide-up-out{animation-name:layer-slide-up-out}@keyframes layer-slide-right{from{transform:translate3d(-100%,0,0)}to{transform:translate3d(0,0,0)}}@keyframes layer-slide-right-out{from{transform:translate3d(0,0,0)}to{transform:translate3d(-100%,0,0)}}.layer-anim-slide-right{animation-name:layer-slide-right}.layer-anim-slide-right-out{animation-name:layer-slide-right-out}.layui-layer-title{padding:0 81px 0 16px;height:50px;line-height:50px;border-bottom:1px solid #f0f0f0;font-size:14px;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:2px 2px 0 0}.layui-layer-setwin{position:absolute;right:15px;*right:0;top:16px;font-size:0;line-height:initial}.layui-layer-setwin span{position:relative;width:16px;height:16px;line-height:18px;margin-left:10px;text-align:center;font-size:16px;cursor:pointer;color:#000;_overflow:hidden;box-sizing:border-box}.layui-layer-setwin .layui-layer-min:before{content:'';position:absolute;width:12px;border-bottom:1px solid #2e2d3c;left:50%;top:50%;margin:-.5px 0 0 -6px;cursor:pointer;_overflow:hidden}.layui-layer-setwin .layui-layer-min:hover:before{background-color:#2d93ca}.layui-layer-setwin .layui-layer-max:after,.layui-layer-setwin .layui-layer-max:before{content:'';position:absolute;left:50%;top:50%;z-index:1;width:9px;height:9px;margin:-5px 0 0 -5px;border:1px solid #2e2d3c}.layui-layer-setwin .layui-layer-max:hover:after,.layui-layer-setwin .layui-layer-max:hover:before{border-color:#2d93ca}.layui-layer-setwin .layui-layer-min:hover:before{background-color:#2d93ca}.layui-layer-setwin .layui-layer-maxmin:after,.layui-layer-setwin .layui-layer-maxmin:before{width:7px;height:7px;margin:-3px 0 0 -3px;background-color:#fff}.layui-layer-setwin .layui-layer-maxmin:after{z-index:0;margin:-5px 0 0 -1px}.layui-layer-setwin .layui-layer-close{cursor:pointer}.layui-layer-setwin .layui-layer-close:hover{opacity:.7}.layui-layer-setwin .layui-layer-close2{position:absolute;right:-28px;top:-28px;color:#fff;background-color:#787878;padding:3px;border:3px solid;width:28px;height:28px;font-size:16px;font-weight:bolder;border-radius:50%;margin-left:0;*right:-18px;_display:none}.layui-layer-setwin .layui-layer-close2:hover{opacity:unset;background-color:#3888f6}.layui-layer-btn{text-align:right;padding:0 15px 12px;pointer-events:auto;user-select:none;-webkit-user-select:none}.layui-layer-btn a{height:30px;line-height:30px;margin:5px 5px 0;padding:0 16px;border:1px solid #dedede;background-color:#fff;color:#333;border-radius:2px;font-weight:400;cursor:pointer;text-decoration:none;box-sizing:border-box}.layui-layer-btn a:hover{opacity:.9;text-decoration:none}.layui-layer-btn a:active{opacity:.8}.layui-layer-btn .layui-layer-btn0{border-color:transparent;background-color:#1e9fff;color:#fff}.layui-layer-btn-l{text-align:left}.layui-layer-btn-c{text-align:center}.layui-layer-btn-is-loading{opacity:.5!important;cursor:not-allowed!important;cursor:wait!important;overflow:hidden;white-space:nowrap;-webkit-user-select:none;-ms-user-select:none;user-select:none}.layui-layer-btn-is-loading .layui-layer-btn-loading-icon{margin-right:8px;font-size:14px}.layui-layer-dialog{min-width:240px}.layui-layer-dialog .layui-layer-content{position:relative;padding:16px;line-height:24px;word-break:break-all;overflow:hidden;font-size:14px;overflow-x:hidden;overflow-y:auto}.layui-layer-dialog .layui-layer-content .layui-layer-face{position:absolute;top:18px;left:16px;color:#959595;font-size:32px;_left:-40px}.layui-layer-dialog .layui-layer-content .layui-icon-tips{color:#f39b12}.layui-layer-dialog .layui-layer-content .layui-icon-success{color:#16b777}.layui-layer-dialog .layui-layer-content .layui-icon-error{top:19px;color:#ff5722}.layui-layer-dialog .layui-layer-content .layui-icon-question{color:#ffb800}.layui-layer-dialog .layui-layer-content .layui-icon-lock{color:#787878}.layui-layer-dialog .layui-layer-content .layui-icon-face-cry{color:#ff5722}.layui-layer-dialog .layui-layer-content .layui-icon-face-smile{color:#16b777}.layui-layer-rim{border:6px solid #8d8d8d;border:6px solid rgba(0,0,0,.3);border-radius:5px;box-shadow:none}.layui-layer-msg{min-width:180px;border:1px solid #d3d4d3;box-shadow:none}.layui-layer-hui{min-width:100px;background-color:#000;filter:alpha(opacity=60);background-color:rgba(0,0,0,.6);color:#fff;border:none}.layui-layer-hui .layui-layer-close{color:#fff}.layui-layer-hui .layui-layer-content{padding:11px 24px;text-align:center}.layui-layer-dialog .layui-layer-padding{padding:18px 24px 18px 58px;text-align:left}.layui-layer-page .layui-layer-content{position:relative;overflow:auto}.layui-layer-iframe .layui-layer-btn,.layui-layer-page .layui-layer-btn{padding-top:10px}.layui-layer-nobg{background:0 0}.layui-layer-iframe iframe{display:block;width:100%}.layui-layer-loading{border-radius:100%;background:0 0;box-shadow:none;border:none}.layui-layer-loading .layui-layer-content{width:76px;height:38px;line-height:38px;text-align:center}.layui-layer-loading-icon{font-size:38px;color:#959595}.layui-layer-loading2{text-align:center}.layui-layer-loading-2{position:relative;height:38px}.layui-layer-loading-2:after,.layui-layer-loading-2:before{content:'';position:absolute;left:50%;top:50%;width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;border:3px solid #d2d2d2;box-sizing:border-box}.layui-layer-loading-2:after{border-color:transparent;border-left-color:#1e9fff}.layui-layer-tips{background:0 0;box-shadow:none;border:none}.layui-layer-tips .layui-layer-content{position:relative;line-height:22px;min-width:12px;padding:8px 15px;font-size:12px;_float:left;border-radius:2px;box-shadow:1px 1px 3px rgba(0,0,0,.2);background-color:#000;color:#fff}.layui-layer-tips .layui-layer-close{right:-2px;top:-1px}.layui-layer-tips i.layui-layer-TipsG{position:absolute;width:0;height:0;border-width:8px;border-color:transparent;border-style:dashed;*overflow:hidden}.layui-layer-tips i.layui-layer-TipsB,.layui-layer-tips i.layui-layer-TipsT{left:5px;border-right-style:solid;border-right-color:#000}.layui-layer-tips i.layui-layer-TipsT{bottom:-8px}.layui-layer-tips i.layui-layer-TipsB{top:-8px}.layui-layer-tips i.layui-layer-TipsL,.layui-layer-tips i.layui-layer-TipsR{top:5px;border-bottom-style:solid;border-bottom-color:#000}.layui-layer-tips i.layui-layer-TipsR{left:-8px}.layui-layer-tips i.layui-layer-TipsL{right:-8px}.layui-layer-lan .layui-layer-title{background:#4476a7;color:#fff;border:none}.layui-layer-lan .layui-layer-btn{padding:5px 10px 10px;border-top:1px solid #e9e7e7}.layui-layer-lan .layui-layer-btn a{background:#fff;border-color:#e9e7e7;color:#333}.layui-layer-lan .layui-layer-btn .layui-layer-btn1{background:#c9c5c5}.layui-layer-molv .layui-layer-title{background:#009f95;color:#fff;border:none}.layui-layer-molv .layui-layer-btn a{background:#009f95;border-color:#009f95}.layui-layer-molv .layui-layer-btn .layui-layer-btn1{background:#92b8b1}.layui-layer-lan .layui-layer-setwin .layui-icon,.layui-layer-molv .layui-layer-setwin .layui-icon{color:#fff}.layui-layer-win10{border:1px solid #aaa;box-shadow:1px 1px 6px rgba(0,0,0,.3);border-radius:none}.layui-layer-win10 .layui-layer-title{height:32px;line-height:32px;padding-left:8px;border-bottom:none;font-size:12px}.layui-layer-win10 .layui-layer-setwin{right:0;top:0}.layui-layer-win10 .layui-layer-setwin span{margin-left:0;width:32px;height:32px;padding:8px}.layui-layer-win10.layui-layer-page .layui-layer-setwin span{width:38px}.layui-layer-win10 .layui-layer-setwin span:hover{background-color:#e5e5e5}.layui-layer-win10 .layui-layer-setwin span.layui-icon-close:hover{background-color:#e81123;color:#fff}.layui-layer-win10.layui-layer-dialog .layui-layer-content{padding:8px 16px 32px;color:#0033bc}.layui-layer-win10.layui-layer-dialog .layui-layer-padding{padding-top:18px;padding-left:58px}.layui-layer-win10 .layui-layer-btn{padding:5px 5px 10px;border-top:1px solid #dfdfdf;background-color:#f0f0f0}.layui-layer-win10 .layui-layer-btn a{height:20px;line-height:18px;background-color:#e1e1e1;border-color:#adadad;color:#000;font-size:12px;transition:all .3s}.layui-layer-win10 .layui-layer-btn a:hover{border-color:#2a8edd;background-color:#e5f1fb}.layui-layer-win10 .layui-layer-btn .layui-layer-btn0{border-color:#0078d7}.layui-layer-prompt .layui-layer-input{display:block;width:260px;height:36px;margin:0 auto;line-height:30px;padding-left:10px;border:1px solid #e6e6e6;color:#333}.layui-layer-prompt textarea.layui-layer-input{width:300px;height:100px;line-height:20px;padding:6px 10px}.layui-layer-prompt .layui-layer-content{padding:16px}.layui-layer-prompt .layui-layer-btn{padding-top:0}.layui-layer-tab{box-shadow:1px 1px 50px rgba(0,0,0,.4)}.layui-layer-tab .layui-layer-title{padding-left:0;overflow:visible}.layui-layer-tab .layui-layer-title span{position:relative;display:inline-block;vertical-align:top;border-left:1px solid transparent;border-right:1px solid transparent;min-width:80px;max-width:300px;padding:0 16px;text-align:center;cursor:default;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;cursor:pointer}.layui-layer-tab .layui-layer-title span.layui-this{height:51px;border-left-color:#eee;border-right-color:#eee;background-color:#fff;z-index:10}.layui-layer-tab .layui-layer-title span:first-child{border-left-color:transparent}.layui-layer-tabmain{line-height:24px;clear:both}.layui-layer-tabmain .layui-layer-tabli{display:none}.layui-layer-tabmain .layui-layer-tabli.layui-this{display:block}.layui-layer-photos{background:0 0;box-shadow:none}.layui-layer-photos .layui-layer-content{overflow:visible;text-align:center}.layui-layer-photos .layer-layer-photos-main img{position:relative;width:100%;display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-photos-next,.layui-layer-photos-prev{position:fixed;top:50%;width:52px;height:52px;line-height:52px;margin-top:-26px;cursor:pointer;font-size:52px;color:#717171}.layui-layer-photos-prev{left:32px}.layui-layer-photos-next{right:32px}.layui-layer-photos-next:hover,.layui-layer-photos-prev:hover{color:#959595}.layui-layer-photos-toolbar{position:fixed;left:0;right:0;bottom:0;width:100%;height:52px;line-height:52px;background-color:#000\9;filter:Alpha(opacity=60);background-color:rgba(0,0,0,.32);color:#fff;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:0}.layui-layer-photos-toolbar>*{display:inline-block;vertical-align:top;padding:0 16px;font-size:12px;color:#fff;*display:inline;*zoom:1}.layui-layer-photos-toolbar *{font-size:12px}.layui-layer-photos-header{top:0;bottom:auto}.layui-layer-photos-header>span{cursor:pointer}.layui-layer-photos-header>span:hover{background-color:rgba(51,51,51,.32)}.layui-layer-photos-header .layui-icon{font-size:18px}.layui-layer-photos-footer>h3{max-width:65%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-layer-photos-footer a:hover{text-decoration:underline}.layui-layer-photos-footer em{font-style:normal}@-webkit-keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-close{-webkit-animation-name:layer-bounceOut;animation-name:layer-bounceOut;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s} | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/main/resources/static/pages/video/font/iconfont.eot
0 → 100644
No preview for this file type
src/main/resources/static/pages/video/font/iconfont.svg
0 → 100644
| 1 | +<?xml version="1.0" standalone="no"?> | ||
| 2 | +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > | ||
| 3 | +<svg xmlns="http://www.w3.org/2000/svg"> | ||
| 4 | + <metadata>Created by iconfont</metadata> | ||
| 5 | + <defs> | ||
| 6 | + <font id="layui-icon" horiz-adv-x="1024"> | ||
| 7 | + <font-face | ||
| 8 | + font-family="layui-icon" | ||
| 9 | + font-weight="400" | ||
| 10 | + font-stretch="normal" | ||
| 11 | + units-per-em="1024" | ||
| 12 | + ascent="896" | ||
| 13 | + descent="-128" | ||
| 14 | + /> | ||
| 15 | + <missing-glyph /> | ||
| 16 | + | ||
| 17 | + <glyph glyph-name="edge" unicode="" d="M240.185509 821.062741C322.180562 871.479699 415.37494 897.48813 509.969233 895.934224 845.948962 895.934224 1023.938224 648.353161 1023.938224 456.964708c-0.199988-65.396055-25.998431-127.79229-71.795669-174.389479-45.797237-46.397201-107.993485-72.995596-173.389539-73.995536-150.390927 0-182.98896 46.197213-182.98896 63.996139 0 7.599542 2.399855 12.399252 9.599421 18.798866l1.99988 2.399855 0.799951 3.199807c20.998733 22.998612 31.798082 52.396839 31.798082 83.194981 0 157.390504-164.390082 285.382782-367.977799 285.382782-75.075471 0.599964-149.071006-17.798926-215.027027-53.796754 53.996742 115.03306 165.430019 195.188224 182.628981 207.627473 1.599903 1.099934 0.599964 1.679899 0.599964 1.679899z m31.198118-636.081624c-2.799831-59.99638 9.199445-119.992761 32.798021-174.389479 27.198359-52.796815 65.396055-101.993847 112.993183-138.591638-118.992821 22.998612-222.966548 87.794703-298.781974 178.589225C42.237452 143.383627 0 259.176641 0 380.169341c0 102.393822 124.792471 188.78861 271.983591 188.78861 73.195584 1.199928 144.791264-21.798685 203.587717-65.396054l-7.199566-2.399856c-102.993786-35.197876-196.988115-181.389056-196.988115-316.180924zM939.543315 95.986486l-1.399915-0.199987c-23.598576-37.597732-51.796875-70.195765-84.394908-98.994028-61.596284-55.996622-136.191783-90.99451-217.586873-99.793979-37.197756-0.599964-73.59556 6.399614-107.593509 22.798624-51.196911 20.598757-94.194317 59.99638-123.192567 105.993605-28.798263 47.797116-42.197454 103.393762-37.997708 159.190396-1.199928 40.197575 10.799348 80.595138 29.99819 116.392978 27.798323-66.196006 74.995475-122.592604 135.191844-161.590251 60.196368-38.997647 130.992097-58.996441 202.787766-57.196549 61.99626-0.599964 124.192507 13.399192 180.389116 40.997526l3.799771 1.799892c7.799529 4.599722 15.399071 7.799529 23.1986 0 8.999457-9.799409 3.599783-18.39889-2.399855-27.998311-0.399976-0.399976-0.599964-0.99994-0.799952-1.399916z" horiz-adv-x="1024" /> | ||
| 18 | + | ||
| 19 | + <glyph glyph-name="leaf" unicode="" d="M1017.948269 886.876437c-4.863707 5.785251-12.031275 9.113051-19.557222 9.113051l-26.110427 0c-258.032454 0.102394-461.847374 0.153591-611.905533-35.735447-80.635142-19.301237-142.992985-48.432282-190.606116-89.031436-51.401703-43.82456-86.420393-101.216302-107.155144-175.554223-13.77197-49.353826-20.222782-138.487656 6.96278-227.160714 10.034595-32.766026 25.700852-63.688963 46.589193-92.103251-62.255449-97.530124-116.063407-225.983185-116.063407-378.805977 0-14.130349 11.468109-25.598458 25.598458-25.598458s25.598458 11.468109 25.598458 25.598458c0 235.761795 139.665185 410.650458 222.91137 493.845446 59.7468 59.7468 127.275532 110.175762 195.367429 145.808815 63.381781 33.175601 123.947732 51.4529 170.536925 51.4529 14.130349 0 25.598458 11.468109 25.598458 25.598458s-11.468109 25.598458-25.598458 25.598458c-55.497456 0-122.667809-19.813206-194.241097-57.340545-72.597226-38.039308-144.477695-91.591282-207.80828-154.973063-26.72479-26.72479-58.876453-62.357843-90.823328-105.977615-12.389654 19.506025-22.014674 40.189579-28.619076 61.794677-25.598458 83.553366-16.178225 164.034917-6.604402 198.388047 73.211589 262.384191 351.313233 263.049751 855.858835 262.896161-60.156376-321.926204-172.328817-530.29765-333.599101-619.533873-149.597387-82.785412-297.966048-37.629733-354.845821-14.335136-11.980078 4.914904-24.06255 10.95614-35.786644 17.91892-12.133669 7.218765-27.851122 3.225406-35.069887-8.908263s-3.225406-27.851122 8.908263-35.069887c13.925561-8.2939 28.260697-15.461468 42.595834-21.349114 31.844481-13.004017 83.143791-29.694211 146.679163-35.172281 14.027955-1.228726 27.902319-1.791892 41.674289-1.791892 75.208269 0 145.860012 18.072511 210.675307 53.910352 82.375837 45.565255 153.641943 119.749585 211.904033 220.351524 68.296685 118.00889 119.698388 274.51786 152.720399 465.175173 1.279923 7.423553-0.767954 15.051893-5.631661 20.837145z" horiz-adv-x="1025" /> | ||
| 20 | + | ||
| 21 | + <glyph glyph-name="folder" unicode="" d="M970.666667 682.666667H542.173333L429.793333 795.046667A52.986667 52.986667 0 0 1 392.08 810.666667H96a53.393333 53.393333 0 0 1-53.333333-53.333334v-704a53.393333 53.393333 0 0 1 53.333333-53.333333h874.666667a53.393333 53.393333 0 0 1 53.333333 53.333333V629.333333a53.393333 53.393333 0 0 1-53.333333 53.333334zM96 768h296.08a10.573333 10.573333 0 0 0 7.54-3.126667L481.826667 682.666667H96a53.546667 53.546667 0 0 1-10.666667-1.073334V757.333333a10.666667 10.666667 0 0 0 10.666667 10.666667z m885.333333-714.666667a10.666667 10.666667 0 0 0-10.666666-10.666666H96a10.666667 10.666667 0 0 0-10.666667 10.666666V629.333333a10.666667 10.666667 0 0 0 10.666667 10.666667h874.666667a10.666667 10.666667 0 0 0 10.666666-10.666667z" horiz-adv-x="1024" /> | ||
| 22 | + | ||
| 23 | + <glyph glyph-name="folder-open" unicode="" d="M1003.153333 491.04a52.933333 52.933333 0 0 1-42.38 20.96H896V629.333333a53.393333 53.393333 0 0 1-53.333333 53.333334H461.253333a10.573333 10.573333 0 0 0-7.54 3.126666L344.46 795.046667A52.986667 52.986667 0 0 1 306.746667 810.666667H53.333333a53.393333 53.393333 0 0 1-53.333333-53.333334v-704a53.393333 53.393333 0 0 1 53.333333-53.333333h796.893334a53.453333 53.453333 0 0 1 51.453333 39.333333l110.546667 405.333334a52.953333 52.953333 0 0 1-9.073334 46.373333zM53.333333 768h253.413334a10.573333 10.573333 0 0 0 7.54-3.126667l109.253333-109.253333A52.986667 52.986667 0 0 1 461.253333 640H842.666667a10.666667 10.666667 0 0 0 10.666666-10.666667v-117.333333H173.773333a53.453333 53.453333 0 0 1-51.453333-39.333333L42.666667 180.633333V757.333333a10.666667 10.666667 0 0 0 10.666666 10.666667z m917.726667-312.14l-110.546667-405.333333a10.666667 10.666667 0 0 0-10.286666-7.86H63.226667a10.666667 10.666667 0 0 0-10.286667 13.473333l110.546667 405.333333A10.666667 10.666667 0 0 0 173.773333 469.333333h787a10.666667 10.666667 0 0 0 10.286667-13.473333z" horiz-adv-x="1024" /> | ||
| 24 | + | ||
| 25 | + <glyph glyph-name="gitee" unicode="" d="M512-128C229.222-128 0 101.222 0 384S229.222 896 512 896s512-229.222 512-512-229.222-512-512-512z m259.149 568.883h-290.74a25.293 25.293 0 0 1-25.292-25.293l-0.026-63.206c0-13.952 11.315-25.293 25.267-25.293h177.024c13.978 0 25.293-11.315 25.293-25.267v-12.646a75.853 75.853 0 0 0-75.853-75.853h-240.23a25.293 25.293 0 0 0-25.267 25.293V478.797a75.853 75.853 0 0 0 75.827 75.853h353.946a25.293 25.293 0 0 1 25.267 25.292l0.077 63.207a25.293 25.293 0 0 1-25.268 25.293H417.152a189.62 189.62 0 0 1-189.62-189.645V124.85c0-13.977 11.316-25.293 25.294-25.293h372.94a170.65 170.65 0 0 1 170.65 170.65V415.616a25.293 25.293 0 0 1-25.293 25.267z" horiz-adv-x="1024" /> | ||
| 26 | + | ||
| 27 | + <glyph glyph-name="github" unicode="" d="M512 883.32190493c275.66730126 0 499.32190493-223.65460366 499.32190493-499.32190493 0-220.40901063-143.01411555-407.65472541-341.32813256-473.98131826-25.34058667-4.53550763-34.45321159 11.06830222-34.45321159 24.05067207 0 16.26957255 0.6657627 70.19633778 0.66576271 137.18869334 0 46.81142841-15.60380985 76.72913237-33.7874489 92.33294222 111.18234397 12.35821682 228.19011015 54.63413874 228.1901113 246.41536 0 54.63413874-19.51516445 98.82412715-51.34693604 133.9431003 5.20127033 13.02397952 22.09499477 63.70515285-5.20127033 132.61157604-41.61015922 13.02397952-137.18869333-51.34693603-137.18869333-51.34693604a469.36259015 469.36259015 0 0 1-249.6609519 0S291.63259904 689.58500523 250.02244096 676.56102571c-27.29626397-68.90642318-10.40253952-119.62920619-5.20127033-132.61157604-31.87338126-35.11897429-51.34693603-79.3089627-51.34693604-133.9431003 0-191.15706937 116.38361429-234.05714318 227.56595826-246.41536-14.31389411-13.02397952-27.29626397-35.11897429-31.87338126-66.95074588-28.62778937-13.02397952-101.44556715-35.11897429-144.96979285 41.61015921-27.29626397 47.47719111-76.72913237 51.34693603-76.72913351 51.34693604-48.76710571 0.6657627-3.24559189-30.54185699-3.2455919-30.541857 32.49753429-14.93804715 55.25829063-72.81777778 55.25829064-72.81777777 29.25194126-89.08735033 168.39631189-59.16964523 168.39631302-59.16964523 0-41.61015922 0.6657627-80.5988773 0.66576157-92.95709525 0-13.02397952-9.11262493-28.62778937-34.45321045-24.05067094C155.77543111-23.61311459000001 12.76131555 163.63259903999995 12.76131555 384.04160967c0 275.66730126 223.65460366 499.32190493 499.32190493 499.32190492zM201.87948715 166.21242937c1.28991459 2.62144-0.6657627 5.86703189-4.53550763 7.78109952-3.91135459 1.28991459-7.15694763 0.6657627-8.44686222-1.2899146-1.28991459-2.62144 0.6657627-5.86703189 4.53550763-7.78109952 3.24559189-1.9556773 7.15694763-1.28991459 8.44686222 1.2899146z m20.13931634-22.13660444c2.62144 1.9556773 1.9556773 6.49118493-1.2899146 10.40253952-3.24559189 3.24559189-7.78109952 4.53550763-10.40253952 1.95567729-2.62144-1.9556773-1.9556773-6.49118493 1.2899146-10.40253952 3.24559189-3.24559189 7.78109952-4.53550763 10.40253952-1.95567729z m19.51516444-29.25194127c3.24559189 2.62144 3.24559189 7.78109952 0 12.35821682-2.62144 4.53550763-7.78109952 6.49118493-11.06830222 3.91135459-3.24559189-1.9556773-3.24559189-7.15694763 0-11.69245411s8.44686222-6.49118493 11.06830222-4.53550763z m27.29626396-27.2962651c2.62144 2.62144 1.28991459 8.44686222-2.62144 12.35821795-4.53550763 4.53550763-10.40253952 5.20127033-13.02397952 1.9556773-3.24559189-2.62144-1.9556773-8.44686222 2.62144-12.35821682 4.53550763-4.53550763 10.40253952-5.20127033 13.02397952-1.95567843z m37.0746516-16.26957141c1.28991459 3.91135459-2.62144 8.44686222-8.44686223 10.40253952-5.20127033 1.28991459-11.06830222-0.6657627-12.35821681-4.53550763s2.62144-8.44686222 8.44686222-9.73677682c5.20127033-1.9556773 11.06830222 0 12.35821682 3.9113546z m40.94439651-3.24559304c0 4.53550763-5.20127033 7.78109952-11.06830222 7.15694763-5.86703189 0-10.40253952-3.24559189-10.40253952-7.15694763 0-4.53550763 4.53550763-7.78109952 11.06830222-7.15694648 5.86703189 0 10.40253952 3.24559189 10.40253952 7.15694648z m37.69880349 6.49118493c-0.6657627 3.91135459-5.86703189 6.49118493-11.69245412 5.86703303-5.86703189-1.28991459-9.73677682-5.20127033-9.11262492-9.73677796 0.6657627-3.91135459 5.86703189-6.49118493 11.69245411-5.20126918s9.73677682 5.20127033 9.11262493 9.11262492z" horiz-adv-x="1024" /> | ||
| 28 | + | ||
| 29 | + <glyph glyph-name="disabled" unicode="" d="M509.20496914 834c-245.9627332 0-447.20496914-201.24223594-447.20496914-447.20496914s201.24223594-447.20496914 447.20496914-447.20496914 447.20496914 201.24223594 447.20496914 447.20496914-201.24223594 447.20496914-447.20496914 447.20496914zM509.20496914-10.09937930000001C291.19254628-10.09937930000001 112.31055898 168.78260888 112.31055898 386.79503086c0 95.03105625 33.54037295 184.4720499 95.03105625 257.14285752l553.41614883-553.41614883C693.67701904 23.440993649999996 604.23602451-10.09937930000001 509.20496914-10.09937930000001z m296.27329131 134.16149092l-559.00621055 553.41614883C319.14285752 738.96894375 408.58385117 778.0993793 509.20496914 778.0993793c218.01242197 0 396.89441016-178.8819873 396.89441016-396.89441016 0-95.03105625-39.13043467-190.06211162-100.62111885-257.14285752z" horiz-adv-x="1024" /> | ||
| 30 | + | ||
| 31 | + <glyph glyph-name="moon" unicode="" d="M696.832 680.448c98.816-62.976 162.304-173.056 162.304-294.912 0-192.512-156.672-349.184-349.184-349.184-121.856 0-232.448 63.488-294.912 162.816h5.12c263.168 0 477.184 214.016 477.184 477.184-0.512 1.536-0.512 3.072-0.512 4.096m-78.336 103.936c9.216-34.304 14.336-70.656 14.336-108.032 0-228.352-184.832-413.184-413.184-413.184-37.376 0-73.728 5.12-108.544 14.336 47.616-175.616 207.872-305.152 398.848-305.152 228.352 0 413.184 184.832 413.184 413.184 0 190.976-129.024 351.232-304.64 398.848z" horiz-adv-x="1024" /> | ||
| 32 | + | ||
| 33 | + <glyph glyph-name="error" unicode="" d="M512-60.09287109000002c-245.26845703 0-444.09550781 198.82880859-444.09550781 444.09550781s198.82705078 444.09287109 444.09550781 444.09287109c245.26669922 0 444.09550781-198.82880859 444.09550781-444.09550781s-198.82880859-444.09287109-444.09550781-444.09287109zM512 772.58378906c-214.60166016 0-388.58378906-173.97861328-388.58378906-388.58378906s173.98125-388.58115234 388.58378906-388.58115234c214.60166016 0 388.58115234 173.97861328 388.58115234 388.58115234s-173.97861328 388.58378906-388.58115234 388.58378906zM551.41103516 383.85585937999997l117.60029297-117.62138672c10.84306641-10.82460938 10.84306641-28.40625 0-39.24580079-10.83955078-10.84306641-28.42119141-10.84306641-39.24580079 0l-117.62138671 117.60029297-118.39570313-118.39570312c-10.93271484-10.93095703-28.64091797-10.93095703-39.55517578 0-10.93271484 10.93095703-10.93271484 28.64091797 0 39.55693359l118.39570312 118.41240235-117.60292968 117.60292968c-10.84130859 10.84130859-10.84130859 28.40625 0 39.24931641 10.84306641 10.83955078 28.40625 10.83955078 39.2493164 0l117.60292969-117.60292969 119.28164063 119.28164063c10.93095703 10.91513672 28.64091797 10.91513672 39.55693359 0 10.93095703-10.93095703 10.93095703-28.64091797 0-39.57363281l-119.26757813-119.26582032z" horiz-adv-x="1024" /> | ||
| 34 | + | ||
| 35 | + <glyph glyph-name="success" unicode="" d="M661.31818174 521.04545479c10.22727305 12.27272695 30.68181826 14.31818174 42.95454521 4.09090868 12.27272695-10.22727305 14.31818174-30.68181826 4.09090957-42.95454521l-204.54545478-243.40909131c-10.22727305-12.27272695-30.68181826-14.31818174-42.95454522-4.09090869L327.90909131 345.13636347c-12.27272695 10.22727305-14.31818174 30.68181826-4.09090957 42.95454522 10.22727305 12.27272695 30.68181826 14.31818174 42.95454521 4.09090957l110.4545461-92.04545478 184.09090869 220.90909131zM512-66C262.45454521-66 62 134.45454521 62 384S262.45454521 834 512 834s450-200.45454521 450-450-200.45454521-450-450-450z m0 40.90909131c225 0 409.09090869 184.09090869 409.09090869 409.09090869S737 793.09090869 512 793.09090869 102.90909131 609 102.90909131 384s184.09090869-409.09090869 409.09090869-409.09090869z" horiz-adv-x="1024" /> | ||
| 36 | + | ||
| 37 | + <glyph glyph-name="question" unicode="" d="M468.125 159a37.50000029 37.50000029 0 1 1 37.50000029 37.50000029 37.50000029 37.50000029 0 0 1-37.50000029-37.50000029z m37.50000029 92.62500029h-3.00000058a31.5 31.5 0 0 0-28.49999942 34.49999971A203.24999971 203.24999971 0 0 0 549.50000029 400.12500029c56.62500029 56.62500029 57.75000029 74.99999971 58.5 93.74999942a81.37500029 81.37500029 0 0 1-23.25000058 60.75A98.62499971 98.62499971 0 0 1 512 584.99999971a94.5 94.5 0 0 1-94.5-94.5 31.5 31.5 0 1 0-63.37500029 0A157.5 157.5 0 0 0 512 646.50000029a162.37500029 162.37500029 0 0 0 117.74999971-50.25000058 144.37500029 144.37500029 0 0 0 39.75000029-105.75c-2.25-40.87500029-14.625-72.74999971-77.24999971-135-31.5-31.5-51.75-55.50000029-53.62500058-74.99999971a31.5 31.5 0 0 0-31.12499971-29.99999971z m277.875-139.87500029A386.62499971 386.62499971 0 1 0 361.99999971 740.24999971a386.62499971 386.62499971 0 0 0 423.37500029-629.62499971zM512 834a450 450 0 1 1 450-450A450 450 0 0 1 512 834z" horiz-adv-x="1024" /> | ||
| 38 | + | ||
| 39 | + <glyph glyph-name="lock" unicode="" d="M512-66A450 450 0 1 0 962 384 450.39130401 450.39130401 0 0 0 512-66z m0 860.86956533A410.86956533 410.86956533 0 1 1 922.86956533 384 411.26086934 411.26086934 0 0 1 512 794.86956533zM665.78260888 398.86956533h-14.47826132v78.26086934a139.69565244 139.69565244 0 0 1-279-7.82608711v-70.04347823h-11.73912979a19.95652177 19.95652177 0 0 1-19.95652178-20.34782577v-199.56521778a19.95652177 19.95652177 0 0 1 19.95652178-20.34782578h302.86956445a19.95652177 19.95652177 0 0 1 19.95652179 20.34782578v199.56521778a20.73913067 20.73913067 0 0 1-17.60869513 19.95652177z m-254.34782665 70.43478223a100.56521777 100.56521777 0 0 0 200.73913066 4.69565244v-74.73913067H411.43478223z" horiz-adv-x="1024" /> | ||
| 40 | + | ||
| 41 | + <glyph glyph-name="eye" unicode="" d="M513.92 449.493333a64 64 0 1 0-64-64 64 64 0 0 0 64 64m0 64a128 128 0 1 1 128-128 128 128 0 0 1-128 128zM512 606.2933330000001c128 0 257.706667-67.84 397.226667-207.146666a21.333333 21.333333 0 0 0 0-30.08C770.133333 229.54666699999996 640 161.70666700000004 512 161.70666700000004s-257.28 67.84-396.8 207.146666a21.333333 21.333333 0 0 0 0 30.08c139.52 139.52 268.8 207.36 396.8 207.36m0 64c-145.92 0-291.84-75.306667-442.453333-225.92a85.333333 85.333333 0 0 1 0-120.746666C220.586667 173.013333 366.506667 97.70666700000004 512 97.70666700000004s292.266667 75.306667 442.666667 225.92a85.333333 85.333333 0 0 1 0 120.746666C804.266667 594.986667 658.346667 670.293333 512 670.293333z" horiz-adv-x="1024" /> | ||
| 42 | + | ||
| 43 | + <glyph glyph-name="eye-invisible" unicode="" d="M386.346667 391.466667l121.813333 121.813333a128 128 0 0 1-121.813333-121.813333z m238.72 57.6L576 400.213333a64 64 0 0 0-76.8-76.8l-48.853333-48.853333a128 128 0 0 1 174.506666 174.506667zM109.013333 384a21.333333 21.333333 0 0 0 6.186667 15.146667c139.52 139.306667 268.8 207.146667 396.8 207.146666a372.266667 372.266667 0 0 0 79.786667-8.96l52.266666 52.266667a443.52 443.52 0 0 1-132.053333 21.333333c-145.92 0-291.84-75.306667-442.453333-225.92a85.333333 85.333333 0 0 1 0-120.746666 1063.04 1063.04 0 0 1 134.186666-115.2l45.866667 45.866666a985.813333 985.813333 0 0 0-134.4 114.133334 21.333333 21.333333 0 0 0-6.186667 14.933333z m845.653334 60.373333a966.613333 966.613333 0 0 1-185.813334 149.333334l-46.72-46.72a877.653333 877.653333 0 0 0 187.306667-147.2 21.333333 21.333333 0 0 0 0-30.08C770.133333 229.54666699999996 640 161.70666700000004 512 161.70666700000004a393.386667 393.386667 0 0 0-145.706667 29.013333l-48.64-48.64A466.133333 466.133333 0 0 1 512 97.70666700000004c145.92 0 291.84 75.306667 442.453333 225.92a85.333333 85.333333 0 0 1 0.213334 120.746666zM777.267604 692.049287m22.627417-22.627417l0 0q22.627417-22.627417 0-45.254834l-527.973064-527.973063q-22.627417-22.627417-45.254834 0l0 0q-22.627417 22.627417 0 45.254834l527.973064 527.973063q22.627417 22.627417 45.254834 0Z" horiz-adv-x="1024" /> | ||
| 44 | + | ||
| 45 | + <glyph glyph-name="backspace" unicode="" d="M484.46100645 268.09861505000003a28.76779355 28.76779355 0 0 0-20.34016344 49.107957l174.2671828 174.27268816a28.76779355 28.76779355 0 0 0 40.68473118-40.68032687l-174.2671828-174.27819355a28.6940215 28.6940215 0 0 0-20.34456774-8.42322581zM658.72708818 268.09861505000003a28.68301076 28.68301076 0 0 0-20.34016345 8.42322581l-174.26718279 174.27709248a28.76228818 28.76228818 0 0 0 0 40.68032687 28.75127742 28.75127742 0 0 0 40.68142795 0l174.2671828-174.27268816a28.77990537 28.77990537 0 0 0-20.34126451-49.107957zM834.5379785 74.81145805999995H340.57028818c-28.46940215 0-55.25305806 12.53684301-73.49016775 34.39428818L75.75838279 339.01887310999996c-10.54830108 13.06205592-16.20232258 28.91974194-16.1968172 44.98663226 0.00660645 15.39083011 4.67406452 29.85015053 13.50248602 41.81333334 0.33803011 0.45694624 0.68266666 0.90288172 1.04822366 1.33009892L266.70685592 658.36593548a95.32449032 95.32449032 0 0 0 73.86233118 34.82921291H834.5379785c51.98286452 0 94.27516559-42.28789677 94.27516558-94.27076129v-429.83776344c0-51.98286452-42.29230108-94.27516559-94.27516558-94.2751656zM119.01522581 391.16579785c-0.90728602-1.35872689-1.91587097-3.52344086-1.91587097-7.17680861 0-2.92005161 1.14952258-6.01517419 3.15568172-8.50140214l191.02114409-229.45307528a38.55965592 38.55965592 0 0 1 29.29300645-13.69297203H834.5379785a36.78472258 36.78472258 0 0 1 36.74508387 36.74508387v429.83776344a36.78472258 36.78472258 0 0 1-36.74508387 36.73957849H340.5691871a38.60590108 38.60590108 0 0 1-29.53524302-13.96934193L119.01522581 391.16579785z" horiz-adv-x="1024" /> | ||
| 46 | + | ||
| 47 | + <glyph glyph-name="tips-fill" unicode="" d="M512 832C264.6 832 64 631.4 64 384s200.6-448 448-448 448 200.6 448 448S759.4 832 512 832z m-32-232c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-272c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8V600z m32-440c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z" horiz-adv-x="1024" /> | ||
| 48 | + | ||
| 49 | + <glyph glyph-name="test" unicode="" d="M513.058-31.072000000000003c-56.004 0-110.35 10.976-161.528 32.622-49.416 20.901-93.789 50.816-131.887 88.914-38.098 38.099-68.013 82.472-88.915 131.888-21.646 51.178-32.622 105.524-32.622 161.528s10.976 110.35 32.622 161.528c20.901 49.416 50.816 93.789 88.915 131.887s82.471 68.013 131.887 88.915c51.178 21.646 105.524 32.622 161.528 32.622 64.817 0 126.912-14.538 184.56-43.209 54.937-27.323 104.055-67.35 142.042-115.754 10.911-13.903 8.486-34.019-5.417-44.93-13.903-10.91-34.018-8.485-44.929 5.417-67.071 85.461-167.763 134.476-276.256 134.476-193.516 0-350.952-157.436-350.952-350.952s157.436-350.952 350.952-350.952c200.075 0 350.952 141.419 350.952 328.952 0 17.673 14.327 32 32 32s32-14.327 32-32c0-109.988-43.501-210.61-122.49-283.33-76.785-70.692-180.65-109.622-292.462-109.622zM636.555 275.40700000000004c-5.39 0-10.85 1.362-15.862 4.23-15.34 8.776-20.66 28.327-11.884 43.667L781.3 624.79c8.776 15.341 28.33 20.661 43.667 11.884 15.34-8.777 20.66-28.327 11.884-43.667L664.359 291.52099999999996c-5.908-10.327-16.703-16.114-27.804-16.114zM628.023 263.38199999999995a31.856 31.856 0 0 0-19.204 6.424L403.383 424.242c-14.127 10.62-16.97 30.681-6.35 44.807 10.62 14.127 30.68 16.97 44.807 6.35l205.437-154.438c14.127-10.619 16.97-30.68 6.35-44.807-6.289-8.363-15.888-12.772-25.604-12.772zM219.079 140.418a31.849 31.849 0 0 0-18.931 6.222c-14.238 10.47-17.293 30.499-6.823 44.737l202.489 275.372c10.468 14.239 30.499 17.294 44.737 6.823 14.238-10.47 17.293-30.499 6.823-44.737L244.885 153.46299999999997c-6.271-8.528-15.974-13.045-25.806-13.045z" horiz-adv-x="1024" /> | ||
| 50 | + | ||
| 51 | + <glyph glyph-name="clear" unicode="" d="M508.412288-59.874413000000004c-246.585071 0-447.224718 200.684672-447.224718 447.441659 0 246.738567 200.639646 447.448822 447.224718 447.448822 246.622934 0 447.2503-200.710254 447.2503-447.448822C955.661565 140.81025899999997 755.035222-59.874413000000004 508.412288-59.874413000000004zM685.286672 527.07151l-45.177945 45.215808L504.588193 436.690036 369.06766 572.287317l-45.184085-45.215808 135.520533-135.591141L323.883575 255.88411099999996l45.184085-45.184085 135.520533 135.583978 135.520533-135.583978 45.177945 45.184085L549.766139 391.480368 685.286672 527.07151z" horiz-adv-x="1024" /> | ||
| 52 | + | ||
| 53 | + <glyph glyph-name="heart-fill" unicode="" d="M729.068827 776.44202c-94.686523 0-176.905082-48.314379-217.069851-118.640074-40.163745 70.325695-122.382305 118.640074-217.044268 118.640074-143.767358 0-229.665727-123.660414-229.665727-243.219417 0-283.128359 415.870616-527.841803 433.576883-538.126031 4.062526-2.363837 8.584516-3.538593 13.132088-3.538593 4.547573 0 9.070586 1.174756 13.132088 3.538593 17.706267 10.283204 433.576883 254.997672 433.576883 538.126031C958.708971 652.781606 872.811626 776.44202 729.068827 776.44202z" horiz-adv-x="1024" /> | ||
| 54 | + | ||
| 55 | + <glyph glyph-name="light" unicode="" d="M512 72c-172.313 0-312 139.687-312 312s139.687 312 312 312 312-139.687 312-312-139.687-312-312-312z m0 64c136.967 0 248 111.033 248 248 0 136.967-111.033 248-248 248-136.967 0-248-111.033-248-248 0-136.967 111.033-248 248-248z m0 696c17.673 0 32-14.327 32-32v-51c0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32V800c0 17.673 14.327 32 32 32z m0-785c17.673 0 32-14.327 32-32v-51c0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32v51c0 17.673 14.327 32 32 32z m325.945 11.055c-12.497-12.496-32.758-12.496-45.255 0l-36.063 36.063c-12.496 12.497-12.496 32.758 0 45.255 12.497 12.496 32.758 12.496 45.255 0l36.063-36.063c12.496-12.497 12.496-32.758 0-45.255z m-568 565c-12.497-12.496-32.758-12.496-45.255 0l-36.063 36.063c-12.496 12.497-12.496 32.758 0 45.255 12.497 12.496 32.758 12.496 45.255 0l36.063-36.063c12.496-12.497 12.496-32.758 0-45.255z m561 81.318c12.496-12.497 12.496-32.758 0-45.255l-36.063-36.063c-12.497-12.496-32.758-12.496-45.255 0-12.496 12.497-12.496 32.758 0 45.255l36.063 36.063c12.497 12.496 32.758 12.496 45.255 0z m-563.572-565c12.496-12.497 12.496-32.758 0-45.255l-36.063-36.063c-12.497-12.496-32.758-12.496-45.255 0-12.496 12.497-12.496 32.758 0 45.255l36.063 36.063c12.497 12.496 32.758 12.496 45.255 0zM960 384c0-17.673-14.327-32-32-32h-51c-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32h51c17.673 0 32-14.327 32-32z m-781 0c0-17.673-14.327-32-32-32H96c-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32h51c17.673 0 32-14.327 32-32z" horiz-adv-x="1024" /> | ||
| 56 | + | ||
| 57 | + <glyph glyph-name="music" unicode="" d="M575.4 832h-74.5v-633.5C385 251.20000000000005 249.3 180.70000000000005 226.8 76c-7.3-34.1 7.9-70.9 21.9-87.8 79.3-94.6 252.2-50.5 331.6 51.3 35.2 45.2 32.3 84.6 32.3 181.3V608.5c48.8-36.3 103.9-70.1 123.7-135 12.2-40.3-4.1-107.3-17-141.5-3.9-10.3-14.7-18.9-9.7-29.2 34.2-25.4 51.1 28.6 60.9 51.2 10.6 24.5 20.8 54.7 24.4 75.6C833.2 653.2 595.5 661.7 575.4 832z" horiz-adv-x="1024" /> | ||
| 58 | + | ||
| 59 | + <glyph glyph-name="time" unicode="" d="M511.98464 829.44c-118.97856 0-230.83008-46.35136-314.95168-130.4832C112.90624 614.84032 66.56 502.95808 66.56 384.00512c0-118.9632 46.34624-230.84544 130.47296-314.9568C281.15456-15.093759999999975 393.00608-61.440000000000055 511.98464-61.440000000000055c118.98368 0 230.84032 46.34624 314.9824 130.48832C911.09376 153.15967999999998 957.44 265.02144 957.44 384.00512c0 118.97856-46.34624 230.8352-130.47296 314.95168C742.82496 783.0886399999999 630.96832 829.44 511.98464 829.44z m275.58912-721.02912c-73.61024-73.63584-171.47904-114.18624-275.58912-114.18624s-201.97376 40.5504-275.57888 114.18624c-73.63584 73.61024-114.16064 171.47904-114.16064 275.59424 0 104.11008 40.54528 201.97376 114.18112 275.58912 73.60512 73.63072 171.47392 114.176 275.584 114.176s201.97376-40.54528 275.584-114.176c73.63584-73.61536 114.18112-171.47904 114.18112-275.58912 0-104.1152-40.56576-201.984-114.2016-275.59424zM519.1168 340.20863999999995V628.08064a27.8528 27.8528 0 0 1-27.84256 27.84768 27.8528 27.8528 0 0 1-27.84256-27.84768v-306.23232a27.81184 27.81184 0 0 1 16.88064-25.58976M734.70464 321.84831999999994a31.0784 31.0784 0 0 0-31.07328-31.0784H496.44544a31.08864 31.08864 0 0 0-31.07328 31.0784 31.09376 31.09376 0 0 0 31.07328 31.0784h207.18592a31.08864 31.08864 0 0 0 31.07328-31.0784z" horiz-adv-x="1024" /> | ||
| 60 | + | ||
| 61 | + <glyph glyph-name="ie" unicode="" d="M740.32 314.46399999000005l221.2992 0c1.7088 15.3408 2.3808 31.0272 2.3808 47.0592 0 75.2064-20.1792 145.7472-55.4304 206.496 36.4416 96.8448 35.1552 179.0592-13.6512 228.1728-46.4064 46.1952-170.8992 38.7072-311.6352-23.616-10.4064 0.7872-20.928 1.1904-31.5264 1.1904-193.1712 0-355.2384-132.9408-400.032-312.0384 60.5952 77.5872 124.3392 133.824 209.5104 174.7968-7.7376-7.2576-52.9344-52.1664-60.5184-59.7696-224.5824-224.5056-295.392-517.7856-219.1872-594.0096 57.9264-57.9072 162.8928-48.1344 283.4688 10.9248 56.064-28.5504 119.5392-44.6592 186.7584-44.6592 181.056 0 334.5024 116.544 390.0864 278.8608l-223.008 0c-30.6816-56.6016-90.7008-95.136-159.5712-95.136s-128.8896 38.5344-159.5712 95.136c-13.632 25.5744-21.4848 54.8928-21.4848 85.92l0 0.672 362.112 0zM378.5344 423.25119999c5.1072 91.0464 80.8128 163.68 173.2224 163.68s168.096-72.6336 173.2224-163.68l-346.4448 0zM892.9024 750.43839999c31.4304-31.7568 30.6432-90.2016 3.7632-163.1424-46.0608 70.2336-112.992 125.568-192 157.1712 84.48 36.2304 153.1968 41.0304 188.2368 5.9904zM139.648-2.79680000999997c-40.1088 40.128-28.0128 124.32 23.6544 225.7728 32.16-90.2592 94.8288-166.0224 175.6224-214.8288-89.472-40.608-162.6816-47.5008-199.2768-10.944z" horiz-adv-x="1024" /> | ||
| 62 | + | ||
| 63 | + <glyph glyph-name="firefox" unicode="" d="M515.52500029-47.25q-142.12500029 0-253.36874971 75.58125029t-165.4875 200.1375q-29.1375 65.79375029-33.6562497 151.18125029t13.05 166.98750029 55.74375 156.6937503 89.9062497 121.7999997l-5.5312497-141.13125q5.53124971 7.03125 34.14375 7.78124971t35.15625-7.78124971q21.09375 40.68749971 80.60625 69.3t117.76875029 29.6250003q-27.1125-22.59375029-60.01875-74.5875t-29.38124971-82.1062503q12.56249971-4.01249971 31.3875-6.78750029t31.65000029-3.76875 34.14375-2.00625029 25.36875-1.50000029q7.5375-2.51250029 4.7625003-22.85624971t-15.31874971-37.9125q-2.51250029-3.52500029-8.28749971-9.29999971t-28.36874971-17.83125-50.71875029-17.08125029l7.5375-94.93125029-69.80625 33.6562497q-9.03750029-21.6-3.76875-40.93125029t18.07499971-33.39375029 32.88750029-20.85000029 40.68749971-3.2625q25.61249971 4.51874971 49.21875 17.325t41.94375029 22.59375029 36.91874971 8.79374971q30.63750029-2.00625029 44.94375-16.5750003t9.7875-32.6437497q-0.50625-1.0125-1.25624971-2.75625t-4.275-6.2812503-9.03750029-7.7812497-15.82499971-5.2687503-23.3624997-0.50625q-30.13125029-47.71874971-72.5812497-68.04375029t-105.2250003-14.81249971q37.16250029-30.63750029 81.61875-41.43750029t84.6187497-3.01875029 77.58749971 26.11874971 64.29375 43.9499997 40.42500029 52.2375003q21.6 45.71250029 19.59374971 96.67500029t-18.82500029 94.66875-39.43125 62.775q43.68750029-19.08749971 68.8124997-39.91875029t38.6812503-56.49374971q7.5375 85.3875-28.87499971 172.27500029t-105.22500029 142.63125029q133.0875-38.68125029 206.92500029-140.38125029t75.84374971-259.91250029q1.0125-63.7875-20.3437503-128.06250029t-62.02500029-119.53125-94.93125029-98.4375-124.29375029-68.0437503-144.9-24.8625z" horiz-adv-x="1025" /> | ||
| 64 | + | ||
| 65 | + <glyph glyph-name="at" unicode="" d="M514.162246 831.556269c-246.201331 0-446.51045-200.783932-446.51045-447.571618 0-246.772336 201.037712-447.539896 448.157973-447.539896 50.29857 0 99.615788 8.224312 146.523121 24.436552 18.414395 6.370081 31.060413 12.423961 31.472805 12.630668 7.194866 3.217275 12.614296 9.049097 15.213493 16.401552 2.63092 7.305383 2.155083 15.133675-1.299599 22.043039l-2.883677 5.831822c-7.131421 14.262842-24.974811 20.569478-40.156582 13.850449-0.031722-0.031722-5.8001-3.02694-20.094664-8.082072-41.075511-14.627139-84.21196-22.059412-128.235616-22.059412-210.92592 0-382.487298 171.57775-382.487298 382.487298S305.423131 766.487298 516.349051 766.487298c210.894198 0 382.455575-171.5931 382.455575-382.423853-0.887206-51.868321-13.882172-100.486622-36.606733-136.855948-20.664645-33.104979-46.939055-51.994188-72.199369-51.994188-0.317225 0-0.601704 0-0.887206 0-45.829791 0.792039-75.433016 68.586075-75.433016 172.718737l0 185.269587c0 5.53097-1.426489 9.635451-4.373611 12.550851-4.944616 4.944616-12.360516 4.817726-21.267373 4.864798l-2.472308-0.016373-9.223059 0.016373c-7.701402-0.031722-13.469779 0.063445-17.495466-3.945869-3.645017-3.613294-4.119831-9.096169-4.119831-13.469779l0-31.060413c-45.196365 36.100196-80.440054 59.474556-131.9758 60.378136-1.045819 0.016373-2.059915 0.031722-3.074012 0.031722-108.74368 0-198.470237-99.218746-200.657043-222.779899-2.155083-124.701117 84.845387-227.723491 193.969737-229.625818 1.045819-0.01535 2.059915-0.031722 3.074012-0.031722 63.293535 0 122.276904 34.087353 159.992901 92.103698 24.373107-60.251246 61.519122-91.216491 110.48637-92.071975 0.697895-0.01535 1.394766-0.01535 2.060939-0.01535 33.945113 0 66.716494 14.610766 94.924953 42.328038 47.63695 46.796816 76.066443 124.796284 76.066443 208.643947l0 2.883677C959.595154 630.772336 759.761873 831.556269 514.162246 831.556269zM646.73975 354.651578c0-92.230588-58.475809-167.282934-130.390699-167.282934s-130.390699 75.052347-130.390699 167.282934c0 92.246961 58.475809 167.298284 130.390699 167.298284S646.73975 446.897515 646.73975 354.651578z" horiz-adv-x="1024" /> | ||
| 66 | + | ||
| 67 | + <glyph glyph-name="bluetooth" unicode="" d="M844.799642 221.19607699999995L538.533306 374.84141l307.696917 177.029926c10.583033 5.006014 17.398252 15.59621 17.569144 27.302833s-6.332219 22.491247-16.764825 27.804253L475.584626 830.045869c-9.517771 4.846378-20.869307 4.39817-29.974685-1.181919-9.105379-5.581112-14.656815-15.493879-14.656815-26.174126l0-288.760636L210.662931 699.284733c-12.974499 10.915607-32.339546 9.248641-43.255153-3.724835-10.915607-12.973476-9.248641-32.339546 3.724835-43.255153L430.953126 433.687656l0-102.83511L171.558307 120.428046c-13.166881-10.68127-15.181771-30.013571-4.500501-43.180452 6.068206-7.480368 14.924921-11.360745 23.859407-11.360745 6.794753 0 13.634532 2.245134 19.322068 6.859221l220.714867 179.046862 0-283.065937c0-10.689457 5.561669-20.61041 14.680351-26.188452 4.903683-2.99931 10.455119-4.510734 16.019859-4.510734 4.78498 0 9.580193 1.118474 13.980409 3.368724l371.449917 224.085638c10.664897 5.456269 17.182334 16.618493 16.691147 28.589129C863.284645 206.04091200000005 855.875908 216.63110800000004 844.799642 221.19607699999995zM763.458055 580.639542L492.351498 420.917818l0 21.60711c0.563842 3.368724 0.558725 6.801916 0 10.153244L492.351498 752.604102 763.458055 580.639542zM492.351498 18.915047999999956L492.351498 311.51001199999996c0.558725 3.347235 0.562818 6.777357 0 10.146081l0 5.809309 267.472797-137.65822L492.351498 18.915047999999956z" horiz-adv-x="1024" /> | ||
| 68 | + | ||
| 69 | + <glyph glyph-name="chrome" unicode="" d="M515.436 583.685H914.285C840.842 730.955 688.748 832.132 513 832.132c-141.284 0-267.274-65.395-349.42-167.546l151.66-262.682c8.535 102.325 95.704 181.781 200.196 181.781zM514.218 550.803c-91.476 0-165.631-74.155-165.631-165.631s74.155-165.631 165.631-165.631c52.7 0 99.615 24.642 129.95 62.999l1.428 2.474 0.355-0.205c21.252 27.852 33.898 62.624 33.898 100.363 0 84.774-63.702 154.626-145.841 164.413l-6.393 0.632c-4.424 0.354-8.882 0.586-13.397 0.586zM929.561 549.585H627.443c52.209-36.066 86.506-96.297 86.506-164.413 0-45.547-18.268-81.598-41.12-121.192L483.898-63.257c9.624-0.617 19.322-0.966 29.102-0.966 247.521 0 448.177 200.656 448.177 448.177 0 58.508-11.225 114.391-31.616 165.631zM514.218 185.441c-83.583 0-144.927 54.804-185.034 124.651l-0.235-0.136-187.482 324.727C93.081 563.124 64.823 476.84 64.823 383.954c0-225.02 165.839-411.288 381.958-443.298l152.278 263.752c-25.769-12.143-54.518-18.967-84.841-18.967z" horiz-adv-x="1024" /> | ||
| 70 | + | ||
| 71 | + <glyph glyph-name="heart" unicode="" d="M512 4.100000000000023c-108.9 0-447.3 277.5-447.3 522.2 0 131 106.6 237.6 237.6 237.6 94.9 0 174.8-50.2 209.7-76.1 34.9 25.9 114.8 76.1 209.7 76.1 131 0 237.6-106.6 237.6-237.6 0-244.7-338.4-522.2-447.3-522.2zM302.3 708c-100.2 0-181.7-81.5-181.7-181.7 0-221 326.8-466.3 391.4-466.3s391.4 245.3 391.4 466.3c0 100.2-81.5 181.7-181.7 181.7-103.9 0-190.2-76-191.1-76.8-10.6-9.5-26.7-9.5-37.3 0-0.8 0.8-87.7 76.8-191 76.8z" horiz-adv-x="1024" /> | ||
| 72 | + | ||
| 73 | + <glyph glyph-name="key" unicode="" d="M819.2 588.8c0-172.8-140.8-307.2-307.2-307.2-172.8 0-307.2 140.8-307.2 307.2C204.8 755.2 339.2 896 512 896S819.2 755.2 819.2 588.8L819.2 588.8zM512 838.4c-140.8 0-249.6-115.2-249.6-249.6 0-134.4 108.8-256 249.6-256s256 115.2 256 249.6S652.8 838.4 512 838.4L512 838.4zM480 300.79999999999995l64 0L544-128l-64 0L480 300.79999999999995 480 300.79999999999995zM512 192l192 0 0-64L512 128 512 192 512 192zM512 64l192 0 0-64L512 0 512 64 512 64z" horiz-adv-x="1024" /> | ||
| 74 | + | ||
| 75 | + <glyph glyph-name="android" unicode="" d="M391.405714 662.66209566a22.308571 22.308571 0 0 1 0 44.544c-11.995429 0-21.723429-10.276571-21.723428-22.272s9.728-22.272 21.723428-22.272z m241.152 0c11.995429 0 21.723429 10.276571 21.723429 22.272s-9.728 22.272-21.723429 22.272a22.308571 22.308571 0 0 1 0-44.544zM168.539429 557.51923766a58.514286 58.514286 0 0 0 58.294857-58.294857v-245.723428c0-32.585143-25.709714-58.843429-58.294857-58.843429S109.696 220.95238066000002 109.696 253.50095266000005v245.723428c0 32 26.294857 58.294857 58.843429 58.294857z m605.732571-10.861714v-380.562286c0-34.852571-28.013714-62.866286-62.281143-62.866285h-42.861714v-129.718857c0-32.585143-26.294857-58.843429-58.843429-58.843429s-58.843429 26.294857-58.843428 58.843429v129.718857H472.594286v-129.718857c0-32.585143-26.294857-58.843429-58.843429-58.843429a58.660571 58.660571 0 0 0-58.294857 58.843429l-0.585143 129.718857H312.594286a62.683429 62.683429 0 0 0-62.866286 62.866285V546.6575236599999h524.580571z m-132.571429 231.424c80.018286-41.142857 134.290286-119.990857 134.290286-210.870857H247.424c0 90.843429 54.272 169.728 134.838857 210.870857L341.705143 852.94323766a8.338286 8.338286 0 0 0 2.852571 11.446858c3.986286 1.718857 9.142857 0.585143 11.446857-3.437715L397.147429 785.50552366c34.852571 15.433143 73.728 23.990857 114.870857 23.990857s80.018286-8.557714 114.870857-23.990857l41.142857 75.446857c2.304 3.986286 7.424 5.156571 11.446857 3.437715a8.338286 8.338286 0 0 0 2.852572-11.446858zM914.267429 499.22438066v-245.723428c0-32.585143-26.294857-58.843429-58.843429-58.843429a58.660571 58.660571 0 0 0-58.294857 58.843429v245.723428a58.148571 58.148571 0 0 0 58.294857 58.294857c32.585143 0 58.843429-25.709714 58.843429-58.294857z" horiz-adv-x="1024" /> | ||
| 76 | + | ||
| 77 | + <glyph glyph-name="mike" unicode="" d="M512 256c115.2 0 208 92.8 208 208V624c0 115.2-92.8 208-208 208s-208-92.8-208-208v-160c0-115.2 92.8-208 208-208zM368 624c0 80 64 144 144 144s144-64 144-144v-160c0-80-64-144-144-144s-144 64-144 144V624zM844.8 416c0 17.6-14.4 32-32 32-16 0-30.4-12.8-32-28.8C758.4 289.6 646.4 192 512 192s-246.4 97.6-268.8 227.2c-1.6 16-16 28.8-32 28.8-17.6 0-32-14.4-32-32v-4.8C204.8 260.79999999999995 328 144 480 129.60000000000002V-32c0-17.6 14.4-32 32-32s32 14.4 32 32V129.60000000000002c152 14.4 275.2 131.2 299.2 280 0 1.6 1.6 4.8 1.6 6.4z" horiz-adv-x="1024" /> | ||
| 78 | + | ||
| 79 | + <glyph glyph-name="mute" unicode="" d="M739 294.4l180.2 180.2M735.391 297.9l180.24 180.24 7.07-7.07-180.239-180.24zM631.4-29.700000000000045c-5.1 0-10.1 1.3-14.5 3.7L277.1 162.20000000000005H116.8c-16 0-28.9 13-28.9 28.9v384c0 16 13 28.9 28.9 28.9h160.3l339.7 189.9c4.5 2.5 9.5 3.8 14.6 3.8 5.3 0 10.6-1.4 15.1-4.1 9.1-5.3 14.8-15.2 14.8-25.8v-767.6c0-10.5-5.6-20.4-14.7-25.8-4.6-2.7-9.9-4.1-15.2-4.1zM305.8 551.5v-336.7L601.4 51V716.8L305.8 551.5zM145.7 220.10000000000002h102.2v326H145.7v-326zM913.2 258.9c-9.3 0-18.1 3.6-24.7 10.3l-63.4 63.4-63.4-63.4c-6.6-6.6-15.4-10.3-24.7-10.3s-18.1 3.6-24.7 10.3c-13.6 13.6-13.6 35.9 0 49.5l63.4 63.4-67.4 67.4c-6.6 6.6-10.3 15.4-10.3 24.7 0 9.3 3.6 18.1 10.3 24.7 6.6 6.6 15.4 10.3 24.7 10.3s18.1-3.6 24.7-10.3l67.4-67.4 67.4 67.4c6.6 6.6 15.4 10.3 24.7 10.3s18.1-3.6 24.7-10.3c6.6-6.6 10.3-15.4 10.3-24.7 0-9.3-3.6-18.1-10.3-24.7L874.6 382l63.4-63.4c13.6-13.6 13.6-35.9 0-49.5-6.7-6.6-15.5-10.2-24.8-10.2z" horiz-adv-x="1024" /> | ||
| 80 | + | ||
| 81 | + <glyph glyph-name="gift" unicode="" d="M796.3 600h-6.7c5.1 6.7 9.6 13.4 13.4 20.1 18.3 32.2 20.8 63.1 7 87.1-9.1 15.7-33 41.2-91.9 36-35.4-3.2-76.1-17.2-114.7-39.4-37.9-21.9-68.9-49.3-89-77.5-4.5 6.4-9.5 12.8-15.1 19.1-19.8 22.3-45.4 42.8-74.1 59.4-38.4 22.2-79.3 35.9-115.1 38.5-43.3 3.2-75.8-10-91.4-37-13.8-24-11.3-54.8 7-86.7 3.7-6.5 8.1-13 13.1-19.5H236c-21.3 0-41.6-7.2-57.4-20.2-17.8-14.9-27.6-35.4-27.6-58v-50.8c0-34.4 23-64.6 55-76.6v-283.9c0-23.3 10.9-47.1 30.1-65.3 18.3-17.4 41.4-27.3 63.4-27.3h434.3c22 0 44.9 10 63 27.6 18.7 18.1 29.3 41.8 29.3 65.1V395c11 4.3 19.6 10.9 27.2 19.5 13.3 15.1 20.8 35.2 20.8 56.6v50.8c-0.1 45.3-32.8 78.1-77.8 78.1z m17.7-78.1v-50.8c0-7.7-3.2-20.3-15-22-0.9 0.1-1.7 0.1-2.6 0.1-1.5 0-2.9-0.1-4.3-0.3H543v91h253.3c11.9 0.1 17.7-5.8 17.7-18zM633.4 651.8c30.7 17.7 63.5 29.2 90 31.6 21.5 1.9 32.6-2.8 34.6-6.3 4.2-7.3-6.3-41.2-52.9-77.2H569.8c14 17 35.3 35.6 63.6 51.9z m-362.8 24.4c2.2 3.7 13.3 8.7 35 7.1 26.6-1.9 59.2-13.1 89.5-30.6 27.7-16 49.4-35.1 63.9-52.8H323.5c-20.3 15.6-36.4 32.9-45.8 49.4-8.9 15.6-8.5 24.4-7.1 26.9zM211 521.9c0 11.2 12.9 18.1 24.9 18.1H483v-91H240.1c-1.4 0.2-2.8 0.3-4.3 0.3-0.9 0-1.8 0-2.7-0.1-11.5 1.5-22.1 11.6-22.1 22v50.7z m55-411.3V389h217v-311H299.4c-13.2 0-33.4 17.5-33.4 32.6zM733.7 78H543V389h223v-278.4c0-15.5-19.1-32.6-32.3-32.6z" horiz-adv-x="1024" /> | ||
| 82 | + | ||
| 83 | + <glyph glyph-name="windows" unicode="" d="M437 329l0-325.5-341 47 0 278.5 341 0zm0 371.5l0-329.5-341 0 0 282.5zm491-371.5l0-393-453.5 62.5 0 330.5 453.5 0zm0 439l0-397-453.5 0 0 334.5z" horiz-adv-x="1024" /> | ||
| 84 | + | ||
| 85 | + <glyph glyph-name="ios" unicode="" d="M821.235026 351.984884c-1.287001 129.729651 105.791442 191.891776 110.553344 194.980577-60.102924 88.030835-153.796561 100.12864-187.258574 101.54434-79.794032 7.979403-155.598362-46.975519-196.010178-46.975519-40.411816 0-102.831341 45.688518-168.983167 44.530218-86.872534-1.287001-167.052666-50.57912-211.840284-128.442651-90.347436-156.756662-23.166009-388.931554 64.864826-515.958505 42.985817-62.162125 94.337137-132.046252 161.647264-129.600951 64.864826 2.574001 89.317835 41.956217 167.696167 41.956217s100.38604-41.956217 169.111867-40.669216c69.755428 1.287001 114.028245 63.449125 156.756662 125.86865 49.42082 72.200729 69.755428 142.084856 70.913728 145.559758C957.14228 145.550002 822.522026 197.030023 821.235026 351.984884L821.235026 351.984884 821.235026 351.984884zM692.277575 732.550935c35.778614 43.371917 59.845524 103.474841 53.281821 163.449065-51.48002-2.059201-113.899545-34.234214-150.83646-77.477431C561.647023 780.041254 532.560811 718.78003 540.411514 660.092806 597.811737 655.588305 656.49896 689.307718 692.277575 732.550935L692.277575 732.550935 692.277575 732.550935z" horiz-adv-x="1084" /> | ||
| 86 | + | ||
| 87 | + <glyph glyph-name="logout" unicode="" d="M512 832a32 32 0 0 1-32-32v-416a32 32 0 0 1 64 0V800a32 32 0 0 1-32 32zM683.34 798.06a32 32 0 0 1-24.48-59.15C798.07 681.24 896 544.06 896 384c0-212.08-171.92-384-384-384S128 171.91999999999996 128 384c0 160.06 97.93 297.24 237.14 354.91a32 32 0 0 1-24.48 59.15C178.25 730.78 64 570.74 64 384c0-247.42 200.58-448 448-448s448 200.58 448 448c0 186.74-114.25 346.78-276.66 414.06z" horiz-adv-x="1024" /> | ||
| 88 | + | ||
| 89 | + <glyph glyph-name="wifi" unicode="" d="M723 275.5C666.8 324.4 593.4 354 513 354s-153.8-29.6-210.1-78.6c-3.2-2.8-3.6-7.8-0.8-11.2l36-42.9c2.9-3.4 8-3.8 11.4-0.9C393.1 258.8 450.3 282 513 282s119.9-23.2 163.5-61.5c3.4-2.9 8.5-2.5 11.4 0.9l36 42.9c2.8 3.3 2.4 8.3-0.9 11.2zM840.4 415.6C751.7 489.5 637.6 534 513 534s-238.7-44.5-327.5-118.4c-3.4-2.8-3.8-7.9-1-11.3l36-42.9c2.8-3.4 7.9-3.8 11.2-1C308 423.8 406.1 462 513 462s205-38.2 281.2-101.6c3.4-2.8 8.4-2.4 11.2 1l36 42.9c2.8 3.4 2.4 8.5-1 11.3zM957.1 554.6C835.7 654.2 680.3 714 511 714c-168.2 0-322.6-59-443.7-157.4-3.5-2.8-4-7.9-1.1-11.4l36-42.9c2.8-3.3 7.8-3.8 11.1-1.1C222 589.3 360.3 642 511 642c151.8 0 291-53.5 400-142.7 3.4-2.8 8.4-2.3 11.2 1.1l36 42.9c2.9 3.4 2.4 8.5-1.1 11.3zM512 118m-64 0a64 64 0 1 1 128 0 64 64 0 1 1-128 0Z" horiz-adv-x="1024" /> | ||
| 90 | + | ||
| 91 | + <glyph glyph-name="rss" unicode="" d="M810.666667 63.95733332999998C810.666667 416.89600033 523.562667 704.00000033 170.666667 704.00000033v-85.333334c305.834667 0 554.666667-248.832 554.666666-554.709333h85.333334zM512 63.95733332999998h85.333333C597.333333 299.26400033000004 405.930667 490.66666633 170.666667 490.66666633v-85.333333c188.202667 0 341.333333-153.130667 341.333333-341.376zM256 149.33333332999996m-85.333333 0a85.333333 85.333333 0 1 1 170.666666 0 85.333333 85.333333 0 1 1-170.666666 0Z" horiz-adv-x="1024" /> | ||
| 92 | + | ||
| 93 | + <glyph glyph-name="email" unicode="" d="M834.446 682.553H194.105c-50.176 0-91.022-40.846-91.022-91.022v-423.026c0-50.176 40.846-91.022 91.022-91.022h640.341c50.176 0 91.022 40.846 91.022 91.022V591.531c0 50.176-40.846 91.022-91.022 91.022z m36.409-514.048c0-20.025-16.384-36.409-36.409-36.409H194.105c-20.025 0-36.409 16.384-36.409 36.409V591.531c0 20.025 16.384 36.409 36.409 36.409h640.341c20.025 0 36.409-16.384 36.409-36.409v-423.026zM786.773 537.941L514.275 366.023 241.777 537.941c-12.743 8.078-29.582 4.21-37.661-8.533-8.078-12.743-4.21-29.582 8.533-37.661l286.72-180.907c4.551-2.845 9.557-4.21 14.563-4.21h0.91c5.006 0 10.013 1.365 14.563 4.21l286.72 180.907c12.743 8.078 16.611 24.917 8.533 37.661-8.306 12.857-25.145 16.611-37.888 8.533z" horiz-adv-x="1024" /> | ||
| 94 | + | ||
| 95 | + <glyph glyph-name="reduce-circle" unicode="" d="M512-65.5c-60.6 0-119.4 11.9-174.8 35.3-53.5 22.6-101.5 55-142.7 96.2-41.2 41.2-73.6 89.2-96.2 142.7C74.9 264.1 63 322.9 63 383.5s11.9 119.4 35.3 174.8c22.6 53.5 55 101.5 96.2 142.7 41.2 41.2 89.2 73.6 142.7 96.2C392.6 820.6 451.4 832.5 512 832.5s119.4-11.9 174.8-35.3c53.5-22.6 101.5-55 142.7-96.2 41.2-41.2 73.6-89.2 96.2-142.7 23.4-55.4 35.3-114.2 35.3-174.8s-11.9-119.4-35.3-174.8c-22.6-53.5-55-101.5-96.2-142.7s-89.2-73.6-142.7-96.2c-55.4-23.4-114.2-35.3-174.8-35.3z m0 848c-220 0-399-179-399-399s179-399 399-399 399 179 399 399-179 399-399 399zM772 359H252c-13.8 0-25 11.2-25 25s11.2 25 25 25h520c13.8 0 25-11.2 25-25s-11.2-25-25-25z" horiz-adv-x="1024" /> | ||
| 96 | + | ||
| 97 | + <glyph glyph-name="transfer" unicode="" d="M320 768H128c-35.2 0-64-28.8-64-64v-640c0-35.2 28.8-64 64-64h192c35.2 0 64 28.8 64 64V704c0 35.2-28.8 64-64 64z m0-672c0-16-16-32-32-32H160c-16 0-32 16-32 32V672c0 16 16 32 32 32h128c16 0 32-16 32-32v-576z m256 544h-64c-19.2 0-32-12.8-32-32s16-32 32-32h64c19.2 0 32 12.8 32 32s-16 32-32 32z m-64-448h-64c-19.2 0-32-12.8-32-32s16-32 32-32h64c19.2 0 32 12.8 32 32s-16 32-32 32z m384 576H704c-35.2 0-64-28.8-64-64v-640c0-35.2 28.8-64 64-64h192c35.2 0 64 28.8 64 64V704c0 35.2-28.8 64-64 64z m0-672c0-16-16-32-32-32H736c-16 0-32 16-32 32V672c0 16 16 32 32 32h128c16 0 32-16 32-32v-576z" horiz-adv-x="1024" /> | ||
| 98 | + | ||
| 99 | + <glyph glyph-name="service" unicode="" d="M849.00812012 487.71642715A27.54528398 27.54528398 0 0 1 849.00812012 496.71080566 337.28919434 337.28919434 0 0 1 174.42973145 496.71080566a27.54528398 27.54528398 0 0 1-1e-8-8.99437852 147.28294776 147.28294776 0 0 1-112.42973144-140.53716386V328.06620849a148.40724551 148.40724551 0 0 1 123.67270459-143.34790781A308.6196126 308.6196126 0 0 1 414.4672083-9.222985839999978h5.05933769a84.32229815 84.32229815 0 1 1 0 56.21486573 252.40474688 252.40474688 0 0 0-172.01748955 137.16427235h31.48032481A35.41536562 35.41536562 0 0 1 314.96689531 215.63647705000005V458.48469697a35.41536562 35.41536562 0 0 1-35.97751406 34.29106787H230.64459717A26.42098711 26.42098711 0 0 1 230.64459717 496.71080566a281.07432862 281.07432862 0 0 0 562.14865723 0 26.42098711 26.42098711 0 0 1 0-3.3728915h-48.34478497a35.41536562 35.41536562 0 0 1-35.97751406-34.29106875V215.63647705000005a35.41536562 35.41536562 0 0 1 35.97751406-34.29106787h63.52279893A150.0936917 150.0936917 0 0 1 961.43785156 328.06620849v19.11305479a147.28294776 147.28294776 0 0 1-112.42973144 140.53716386zM498.22735801 46.991879880000056a28.10743242 28.10743242 0 1 0-28.1074333-28.10743242 28.10743242 28.10743242 0 0 0 28.10743329 28.10743242zM258.75202959 240.37101797000003h-43.28544639A93.87882598 93.87882598 0 0 0 118.21486572 328.06620849v19.11305479a93.87882598 93.87882598 0 0 0 97.25171748 89.94378516h43.28544639zM905.22298584 328.06620849a93.87882598 93.87882598 0 0 0-97.25171748-89.94378515h-43.28544727V437.12304844h43.28544727A93.87882598 93.87882598 0 0 0 905.22298584 347.17926328zM633.70518418 705.83010615l-20.7995001 7.30793232a28.10743242 28.10743242 0 0 1-17.42660859-56.21486571l16.30231084-6.18363458a28.10743242 28.10743242 0 1 1 21.92379785 51.71767646zM330.14490928 639.49656503A28.10743242 28.10743242 0 0 1 376.80324805 609.14053711 177.63897568 177.63897568 0 0 0 511.71892578 676.59837597a28.10743242 28.10743242 0 0 1 0 56.21486573 231.60524678 231.60524678 0 0 1-181.57401651-93.31667667z" horiz-adv-x="1024" /> | ||
| 100 | + | ||
| 101 | + <glyph glyph-name="addition" unicode="" d="M544 768L480 768 480 416 128 416 128 352 480 352 480 0 544 0 544 352 895.936 352 895.936 416 544 416Z" horiz-adv-x="1024" /> | ||
| 102 | + | ||
| 103 | + <glyph glyph-name="subtraction" unicode="" d="M785 348H239c-19.8 0-36 16.2-36 36s16.2 36 36 36h546c19.8 0 36-16.2 36-36s-16.2-36-36-36z" horiz-adv-x="1024" /> | ||
| 104 | + | ||
| 105 | + <glyph glyph-name="slider" unicode="" d="M228.7 683.9v-66.7H112v66.7h116.7z m333.2-266.6v-66.7H112v66.7h449.9zM295.4 150.60000000000002V84H112v66.7h183.4v-0.1z m116.6 600c9 0 16.8-3.3 23.5-9.9 6.5-6.5 9.9-14.5 9.9-23.5v-133.3c0-9-3.3-16.8-9.9-23.5-6.5-6.5-14.5-9.9-23.5-9.9H278.8c-9 0-16.8 3.3-23.5 9.9-6.5 6.5-9.9 14.3-9.9 23.5V717.1c0 9 3.3 16.8 9.9 23.5 6.5 6.5 14.3 9.9 23.5 9.9h133.3v0.1h-0.1z m66.7-533.3c9 0 16.8-3.3 23.5-9.9 6.5-6.5 9.9-14.5 9.9-23.5v-133.3c0-9-3.3-16.8-9.9-23.5-6.5-6.5-14.5-9.9-23.5-9.9H345.3c-9 0-16.8 3.3-23.5 9.9-6.5 6.5-9.9 14.5-9.9 23.5V183.89999999999998c0 9 3.3 16.8 9.9 23.5 6.5 6.5 14.3 9.9 23.5 9.9h133.4v0.1zM912 683.9v-66.7H462.1v66.7H912z m0-533.3V84H528.6v66.7h383.3v-0.1h0.1zM745.2 483.9c9 0 16.8-3.3 23.5-9.9 6.5-6.5 9.9-14.5 9.9-23.5v-133.3c0-9-3.3-16.8-9.9-23.5-6.5-6.5-14.5-9.9-23.5-9.9H612c-9 0-16.8 3.3-23.5 9.9-6.5 6.5-9.9 14.3-9.9 23.5V450.6c0 9 3.3 16.8 9.9 23.5 6.5 6.5 14.5 9.9 23.5 9.9l133.2-0.1zM912 417.3v-66.7H795.3v66.7H912z" horiz-adv-x="1024" /> | ||
| 106 | + | ||
| 107 | + <glyph glyph-name="print" unicode="" d="M843.946667 603.733333h-47.36V725.333333a90.026667 90.026667 0 0 1-94.72 85.333334H312.32a81.493333 81.493333 0 0 1-85.333333-85.333334v-121.6H170.666667a81.493333 81.493333 0 0 1-85.333334-85.333333v-325.12a89.173333 89.173333 0 0 1 85.333334-93.866667h56.746666v-52.48a89.6 89.6 0 0 1 89.6-89.6h389.973334a89.6 89.6 0 0 1 89.6 89.6v52.48h47.36a97.706667 97.706667 0 0 1 94.72 93.866667V518.4a90.026667 90.026667 0 0 1-94.72 85.333333zM279.466667 725.333333a30.72 30.72 0 0 0 32.853333 33.706667h389.546667c18.773333 0 42.666667-11.52 42.666666-33.706667v-121.6H279.466667z m465.066666-678.4a37.546667 37.546667 0 0 0-37.546666-37.973333H317.013333a37.546667 37.546667 0 0 0-37.546666 37.973333v170.666667a37.546667 37.546667 0 0 0 37.546666 38.4h389.973334a37.546667 37.546667 0 0 0 37.546666-37.973333z m142.506667 146.346667a45.653333 45.653333 0 0 0-42.666667-42.666667h-47.786666v66.133334a89.6 89.6 0 0 1-89.6 89.6H317.013333a89.6 89.6 0 0 1-89.6-89.6v-65.28H170.666667a37.546667 37.546667 0 0 0-33.28 42.666666v324.266667A31.146667 31.146667 0 0 0 170.666667 552.106667h673.28c19.2 0 42.666667-11.52 42.666666-33.706667z m-640 281.173333h-37.546667a13.226667 13.226667 0 0 0 0 26.026667h38.826667a13.226667 13.226667 0 1 0 0-26.026667z m94.293333 0H298.666667a13.226667 13.226667 0 1 0 0 26.026667h42.666666a13.226667 13.226667 0 0 0 0-26.026667z m426.666667-116.48H248.32a13.226667 13.226667 0 0 0 0 26.026667H768a13.226667 13.226667 0 0 0 0-26.026667z" horiz-adv-x="1024" /> | ||
| 108 | + | ||
| 109 | + <glyph glyph-name="export" unicode="" d="M896.4374528 479.830016c0 26.673152-21.6236032 48.2967552-48.2967552 48.2967552H630.8069376c-26.673152 0-48.2967552-21.6236032-48.2967552-48.2967552v-83.04831147H384.69522773l-2.71428266 5.36849067c-41.336832 87.44686933-35.95195733 204.128256 150.601728 199.94487467v-108.91537067l172.19037866 164.757504L532.58267307 822.7110912v-106.57245867c-228.64418133 5.70709333-263.651328-183.517184-157.433856-314.01028266l4.6891008-5.34664534h-88.46595414c-26.673152 0-48.2967552-21.6236032-48.2967552-48.2967552v-66.78882986h-98.43616426c-26.673152 0-40.4258816-21.6236032-30.71781547-48.2967552l79.10304427-217.33485227c9.70806613-26.673152 39.20145067-48.2967552 65.87460266-48.2967552h603.70670934c23.75898453 0 37.2506624 17.16169387 33.05745066 39.76178347 0.4980736 2.77108053 0.77441707 5.619712 0.77441707 8.53497173v463.765504z m-60.37067093-306.4528896l-21.8464256 60.02223787c-9.70806613 26.673152-39.20145067 48.2967552-65.87460267 48.2967552H303.44697173v30.56708266c0 13.336576 10.81125547 24.14783147 24.14783147 24.14783147h315.28605013v107.1972352c0 13.336576 10.81125547 24.14783147 24.14783147 24.14783147h144.88917333c13.336576 0 24.14783147-10.81125547 24.14783147-24.14783147v-270.2311424z" horiz-adv-x="1024" /> | ||
| 110 | + | ||
| 111 | + <glyph glyph-name="cols" unicode="" d="M128 426.66666667h384V810.66666667H128z m64 320h256v-256H192zM576 810.66666667v-384h384V810.66666667z m320-320H640V746.66666667h256zM192 362.66666667000004h64v-384H192zM384 362.66666667000004h64v-384H384zM640 362.66666667000004h64v-384H640zM832 362.66666667000004h64v-384h-64z" horiz-adv-x="1024" /> | ||
| 112 | + | ||
| 113 | + <glyph glyph-name="screen-full" unicode="" d="M641.750109 511.899972l205.227128 204.519-0.704035-115.89966c-0.282433-9.611915 7.489578-18.09103 17.101493-17.808598l12.297071 0c9.611915 0.283456 17.667382 5.936199 17.808598 15.689331l0.565888 172.57752c0 0.14224 0.282433 9.187243 0.282433 9.187243 0.14224 4.804423-0.99056 9.187243-4.100388 12.297071-3.109828 3.109828-7.347339 5.086855-12.297071 4.946662l-8.763594-0.14224c-0.141216 0-0.278339 0-0.420579-0.14224L697.581696 797.833213c-9.611915-0.283456-17.667382-8.200776-17.808598-17.950837l0-12.297071c1.416256-11.44875 10.458189-18.092054 20.070104-17.808598l112.789832-0.283456-204.66124-203.814965c-9.329483-9.329483-9.329483-24.449855 0-33.778314 9.329483-9.470699 24.452925-9.470699 33.782408 0L641.750109 511.899972zM383.095141 319.11010699999997L177.726797 115.29411900000002l0.707105 115.338888c0.283456 9.607822-7.492648 18.086937-17.104563 17.808598l-13.001105 0c-9.611915-0.283456-17.667382-5.937223-17.808598-15.690354l-0.565888-172.718737c0-0.14224-0.282433-9.187243-0.282433-9.187243-0.14224-4.808516 0.99056-9.187243 4.096295-12.297071 3.109828-3.109828 7.351432-5.086855 12.297071-4.946662l8.762571 0.14224c0.14224 0 0.283456 0 0.425695 0.14224l171.873486-0.708128c9.607822 0.283456 17.667382 8.196683 17.808598 17.950837L344.93503 63.42477399999996c-1.415232 11.44875-10.461259 18.092054-20.074198 17.808598L212.069977 81.51682800000003 416.59 285.32872299999997c9.329483 9.329483 9.329483 24.453948 0 33.782408C407.40685 328.58182999999997 392.424624 328.58182999999997 383.095141 319.11010699999997L383.095141 319.11010699999997zM894.047276 60.03251399999999l-0.424672 172.718737c-0.283456 9.612938-8.200776 15.406898-17.809621 15.690354l-12.296047 0c-9.612938 0.278339-17.243733-8.200776-17.105586-17.808598l0.708128-115.903753L641.750109 319.11010699999997c-9.329483 9.329483-24.452925 9.329483-33.782408 0-9.325389-9.328459-9.325389-24.452925 0-33.782408L812.490795 81.51682800000003l-112.789832-0.283456c-9.611915 0.283456-18.515702-6.502088-20.073174-17.808598l0-12.297071c0.282433-9.611915 8.200776-17.667382 17.808598-17.950837l171.166381 0.708128c0.141216 0 0.282433-0.14224 0.424672-0.14224l8.763594-0.14224c4.803399-0.141216 9.187243 1.694595 12.296047 4.946662 3.109828 3.109828 4.238534 7.488555 4.097318 12.297071 0 0-0.14224 9.046027-0.14224 9.187243L894.047276 60.03149099999996zM212.216309 749.493252l112.789832 0.283456c9.607822-0.283456 18.512632 6.502088 20.070104 17.808598L345.076246 779.883399c-0.283456 9.611915-8.196683 17.667382-17.808598 17.950837l-172.011632-0.708128c-0.14224 0-0.283456 0.14224-0.425695 0.14224l-8.761548 0.14224c-4.808516 0.141216-9.187243-1.694595-12.297071-4.946662-3.109828-3.109828-4.242627-7.488555-4.096295-12.297071 0 0 0.282433-9.046027 0.282433-9.187243l0.420579-172.718737c0.14224-9.608845 8.200776-15.406898 17.808598-15.686261l13.005198 0c9.611915-0.282433 17.242709 8.196683 17.10047 17.808598l-0.564865 115.334795 205.231221-203.958228c9.324366-9.329483 24.448832-9.329483 33.777291 0 9.329483 9.329483 9.329483 24.452925 0 33.782408L212.216309 749.493252 212.216309 749.493252zM212.216309 749.493252" horiz-adv-x="1024" /> | ||
| 114 | + | ||
| 115 | + <glyph glyph-name="screen-restore" unicode="" d="M582.6 454.6v320h50V540l274 274 35.4-35.4-274-274h234.6v-50h-320zM117.4-46l274 274v-234.6h50v320h-320v-50H356l-274-274 35.4-35.4zM132 764h302V814H82v-352h50V764z m760-760H590v-50h352V306h-50v-302z" horiz-adv-x="1024" /> | ||
| 116 | + | ||
| 117 | + <glyph glyph-name="rate-half" unicode="" d="M1012.064 504l-359.552 31.008-140.512 331.04-140.512-331.552-359.552-30.496 273.024-236.544-82.016-351.552 309.056 186.528 309.056-186.528-81.504 351.552 272.544 236.544zM512 195.96799999999996l0 465.056 85.504-202.016 219.04-19.008-166.016-144.032 50.016-214.016-188.512 114.016z" horiz-adv-x="1024" /> | ||
| 118 | + | ||
| 119 | + <glyph glyph-name="rate-solid" unicode="" d="M957.111079 492.519576c-3.927449 11.669784-14.447037 19.86442-26.723641 20.816095L647.68068 535.250796 540.183388 811.873997c-4.586458 11.803837-15.951297 19.579941-28.614711 19.579941s-24.02723-7.776104-28.614711-19.579941L375.458719 535.250796l-282.708803-21.915126c-12.276604-0.951675-22.796192-9.146311-26.723641-20.816095-3.927449-11.669784-0.50142-24.557302 8.701173-32.737612l217.547735-193.358823-67.980277-291.298436c-2.848884-12.20702 2.009773-24.919553 12.273535-32.114418 10.264784-7.195889 23.87271-7.42818 34.375925-0.586354l240.624313 156.709111 240.625336-156.709111c5.099135-3.320629 10.92891-4.974291 16.752546-4.974291 6.173606 0 12.342096 1.858324 17.623379 5.561669 10.263761 7.194866 15.122419 19.907399 12.273535 32.114418l-67.980277 291.299459L948.409906 459.781964C957.613522 467.962274 961.037505 480.849792 957.111079 492.519576z" horiz-adv-x="1024" /> | ||
| 120 | + | ||
| 121 | + <glyph glyph-name="rate" unicode="" d="M959.008 489.984l-308 47.008L512 832 372.992 536.992l-308-47.008 223.008-228-52.992-324L512 90.976l276.992-152.992-52.992 324zM512 156L304 39.00800000000004l40 235.008-179.008 182.016 242.016 32 104.992 224 104-224 240.992-34.016L680 273.024l36.992-235.008z" horiz-adv-x="1024" /> | ||
| 122 | + | ||
| 123 | + <glyph glyph-name="cellphone" unicode="" d="M785.066667 896H238.933333a102.4 102.4 0 0 1-102.4-102.4v-819.2a102.4 102.4 0 0 1 102.4-102.4h546.133334a102.4 102.4 0 0 1 102.4 102.4V793.6a102.4 102.4 0 0 1-102.4 102.4zM238.933333 827.733333h546.133334a34.133333 34.133333 0 0 0 34.133333-34.133333v-648.533333H204.8V793.6a34.133333 34.133333 0 0 0 34.133333 34.133333z m546.133334-887.466666H238.933333a34.133333 34.133333 0 0 0-34.133333 34.133333v102.4h614.4v-102.4a34.133333 34.133333 0 0 0-34.133333-34.133333zM512 8.53333299999997m-34.133333 0a34.133333 34.133333 0 1 1 68.266666 0 34.133333 34.133333 0 1 1-68.266666 0ZM426.666667 725.333333h170.666666a17.066667 17.066667 0 0 1 0 34.133334h-170.666666a17.066667 17.066667 0 0 1 0-34.133334z" horiz-adv-x="1024" /> | ||
| 124 | + | ||
| 125 | + <glyph glyph-name="vercode" unicode="" d="M513.807059-128C351.171765-128 58.428235 126.19294100000002 54.211765 376.16941199999997V662.287059a93.364706 93.364706 0 0 0 81.317647 88.545882 570.428235 570.428235 0 0 1 163.237647 40.357647A393.336471 393.336471 0 0 1 446.945882 872.508235a101.797647 101.797647 0 0 0 120.470589 5.421177A629.458824 629.458824 0 0 1 716.8 792.395294a1255.303529 1255.303529 0 0 1 169.863529-38.550588 98.785882 98.785882 0 0 0 79.510589-90.955294 2911.171765 2911.171765 0 0 0-3.011765-291.538824C924.611765 49.09176500000001 672.828235-128 513.807059-128z m0 963.764706a39.152941 39.152941 0 0 1-24.696471-7.830588A438.512941 438.512941 0 0 0 319.247059 734.569412a608.376471 608.376471 0 0 0-180.705883-43.369412 33.731765 33.731765 0 0 1-24.094117-30.117647v-283.708235C118.663529 155.10588199999995 389.722353-67.76470600000005 513.807059-67.76470600000005s354.183529 148.178824 391.529412 444.536471c9.035294 175.887059 0 281.901176 0 283.105882a38.550588 38.550588 0 0 1-29.515295 33.731765 1287.830588 1287.830588 0 0 0-180.705882 41.562353A676.442353 676.442353 0 0 0 536.094118 829.741176a37.345882 37.345882 0 0 1-24.094118 6.02353zM784.865882 479.171765L487.905882 198.47529399999996a40.357647 40.357647 0 0 0-49.392941-4.818823l-7.830588 6.625882-161.430588 171.068235a40.357647 40.357647 0 1 0 60.235294 55.416471l133.722353-141.552941 267.444706 252.988235a40.357647 40.357647 0 1 0 55.41647-60.235294" horiz-adv-x="1024" /> | ||
| 126 | + | ||
| 127 | + <glyph glyph-name="login-weibo" unicode="" d="M411.270737 288.350316c-17.973895 7.504842-41.189053-0.229053-52.264421-17.542737-11.223579-17.394526-5.955368-38.103579 11.870316-46.201263 18.108632-8.232421 42.132211-0.417684 53.342316 17.421474C435.253895 260.05557899999997 429.446737 280.62989500000003 411.270737 288.350316zM455.545263 306.64757899999995c-6.885053 2.721684-15.508211-0.579368-19.550316-7.329684-3.920842-6.790737-1.751579-14.524632 5.146947-17.367579 7.019789-2.883368 16.006737 0.458105 20.048842 7.370105C465.071158 296.259368 462.551579 304.087579 455.545263 306.64757899999995zM427.52 426.684632c-115.968-11.439158-203.924211-82.216421-196.378947-158.073263 7.531789-75.910737 107.654737-128.161684 223.649684-116.749474 115.994947 11.439158 203.924211 82.216421 196.392421 158.140632C643.664842 385.859368 543.541895 438.110316 427.52 426.684632zM529.300211 247.70021099999997c-23.673263-53.355789-91.769263-81.798737-149.530947-63.232-55.754105 17.933474-79.373474 72.811789-54.945684 122.246737 23.956211 48.464842 86.352842 75.870316 141.541053 61.561263C523.506526 353.562947 552.663579 299.85684200000003 529.300211 247.70021099999997zM512 896C229.241263 896 0 666.772211 0 384c0-282.758737 229.241263-512 512-512 282.772211 0 512 229.241263 512 512C1024 666.772211 794.772211 896 512 896zM455.531789 101.02568399999996c-145.354105 0-293.941895 70.197895-293.941895 185.667368 0 60.362105 38.386526 130.182737 104.474947 196.069053 88.252632 87.929263 191.164632 127.986526 229.874526 89.397895 17.084632-17.003789 18.741895-46.457263 7.760842-81.623579-5.726316-17.690947 16.666947-7.895579 16.666947-7.936 71.343158 29.763368 133.564632 31.514947 156.321684-0.862316 12.139789-17.246316 10.954105-41.472-0.215579-69.510737-5.173895-12.921263 1.589895-14.928842 11.466105-17.879579 40.178526-12.422737 84.924632-42.455579 84.924632-95.380211C772.837053 211.36168399999997 646.090105 101.02568399999996 455.531789 101.02568399999996zM718.672842 468.197053c4.715789 14.457263 1.765053 30.962526-9.202526 43.061895-10.954105 12.072421-27.136 16.666947-42.037895 13.527579l0 0.026947c-12.463158-2.694737-24.724211 5.268211-27.392 17.664-2.667789 12.463158 5.281684 24.697263 17.744842 27.338105 30.531368 6.467368 63.595789-2.937263 85.989053-27.715368 22.447158-24.764632 28.456421-58.489263 18.849684-88.064-3.907368-12.099368-16.936421-18.728421-29.062737-14.848-12.139789 3.920842-18.782316 16.922947-14.874947 28.995368L718.672842 468.183579zM853.261474 424.865684c-0.013474-0.013474-0.013474-0.080842-0.013474-0.107789-4.567579-14.026105-19.712-21.706105-33.778526-17.165474-14.133895 4.554105-21.854316 19.590737-17.300211 33.670737l0 0.013474c13.999158 43.169684 5.12 92.429474-27.567158 128.565895-32.714105 36.122947-80.949895 49.92-125.507368 40.488421-14.484211-3.085474-28.752842 6.130526-31.838316 20.574316-3.098947 14.403368 6.144 28.631579 20.641684 31.717053l0.026947 0c62.625684 13.271579 130.519579-6.117053 176.545684-56.966737C860.483368 554.886737 872.892632 485.618526 853.261474 424.865684z" horiz-adv-x="1024" /> | ||
| 128 | + | ||
| 129 | + <glyph glyph-name="login-qq" unicode="" d="M512 896C229.227789 896 0 666.772211 0 384c0-282.745263 229.227789-512 512-512s512 229.254737 512 512C1024 666.772211 794.772211 896 512 896L512 896zM738.856421 258.93726300000003c0 0-16.208842-44.220632-45.945263-83.941053 0 0 53.126737-18.054737 48.64-64.983579 0 0 1.778526-52.345263-113.461895-48.734316 0 0-81.071158 6.319158-105.377684 40.609684l-21.423158 0c-24.306526-34.304-105.350737-40.609684-105.350737-40.609684-115.280842-3.610947-113.475368 48.734316-113.475368 48.734316-4.500211 46.928842 48.626526 64.983579 48.626526 64.983579-29.709474 39.720421-45.918316 83.941053-45.918316 83.941053-72.057263-116.439579-64.848842 16.249263-64.848842 16.249263 13.527579 78.524632 70.238316 129.967158 70.238316 129.967158-8.111158 71.316211 21.611789 83.941053 21.611789 83.941053C318.410105 709.712842 508.025263 705.859368 512 705.751579c3.988211 0.107789 193.576421 3.961263 199.828211-216.643368 0 0 29.709474-12.638316 21.611789-83.941053 0 0 56.737684-51.442526 70.238316-129.967158l0 0C803.678316 275.18652599999996 810.873263 142.49768400000005 738.856421 258.93726300000003L738.856421 258.93726300000003zM738.856421 258.93726300000003" horiz-adv-x="1024" /> | ||
| 130 | + | ||
| 131 | + <glyph glyph-name="login-wechat" unicode="" d="M516.464646 896C233.714646 896 4.464646 666.75 4.464646 384S233.714646-128 516.464646-128s512 229.25 512 512S799.214646 896 516.464646 896z m-74-523.375c-0.25-0.75-0.5-1.125-0.75-1.875-0.25-0.75-0.5-1.125-0.75-1.875-0.25-0.75-0.5-1.125-0.75-1.875-0.25-0.75-0.5-1.125-0.75-1.875-0.25-0.75-0.5-1.125-0.75-1.875-0.25-0.75-0.5-1.125-0.75-1.875-0.25-0.75-0.5-1.125-0.75-1.875-0.25-0.75-0.5-1.125-0.75-1.875-0.25-0.75-0.5-1.125-0.5-1.875-0.25-0.75-0.5-1.125-0.5-1.875-0.25-0.75-0.5-1.125-0.5-1.875-0.25-0.75-0.25-1.125-0.5-1.875s-0.5-1.125-0.5-1.875c-0.25-0.75-0.25-1.125-0.5-1.875s-0.25-1.125-0.5-1.875-0.25-1.125-0.5-1.875-0.25-1.125-0.5-1.875-0.25-1.125-0.5-1.875-0.25-1.125-0.5-1.875-0.25-1.125-0.5-1.875-0.25-1.125-0.5-1.875c0-0.75-0.25-1.125-0.25-1.875s-0.25-1.125-0.25-1.875-0.25-1.125-0.25-1.875-0.25-1.125-0.25-1.875-0.25-1.125-0.25-1.875-0.25-1.125-0.25-1.875-0.25-1.125-0.25-1.875-0.25-1.125-0.25-1.875-0.25-1.125-0.25-1.875 0-1.125-0.25-1.875c0-0.75-0.25-1.125-0.25-1.875s0-1.125-0.25-1.875c0-0.75 0-1.125-0.25-1.875 0-0.75 0-1.125-0.25-1.875v-22.5c0-0.75 0-1.125 0.25-1.875 0-0.75 0-1.125 0.25-1.875 0-0.75 0-1.125 0.25-1.875 0-0.75 0-1.125 0.25-1.875 0-0.75 0.25-1.125 0.25-1.875s0.25-1.125 0.25-1.875 0.25-1.125 0.25-1.875 0.25-1.125 0.25-1.875 0.25-1.125 0.25-1.875 0.25-1.125 0.25-1.875 0.25-1.125 0.25-1.875 0.25-1.125 0.25-1.875 0.25-1.125 0.25-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875l0.25-0.875c-4.25-0.25-8.625-0.75-12.75-0.75-3.75-0.25-7.25-0.25-11-0.25-3.5 0-7 0-10.5 0.25-7.25 0.25-14 0.875-20.75 1.875-4.25 0.5-8.125 1.125-12.375 1.875-3.5 0.5-6.75 1.125-10.25 1.875-3 0.5-6.25 1.125-9.25 1.875-3 0.75-5.875 1.125-8.875 1.875-2.75 0.75-5.875 1.125-8.875 1.875-2.75 0.5-5.625 1.125-8.375 1.625l-3.25-1.625-3.75-1.875-4 1.375-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-2.75-1.375-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-2.5-1.375 0.5 1.375 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.5 1.125c-0.5 0.25-0.75 0.5-1.125 0.75-0.875 0.75-1.625 1.125-2.5 1.875s-1.625 1.125-2.5 1.875-1.625 1.125-2.5 1.875c-0.75 0.75-1.625 1.125-2.375 1.875-0.75 0.75-1.625 1.125-2.375 1.875-0.75 0.75-1.625 1.125-2.375 1.875-0.75 0.75-1.625 1.125-2.375 1.875-0.75 0.75-1.375 1.125-2.375 1.875-0.75 0.75-1.375 1.125-2.125 1.875-0.75 0.75-1.375 1.125-2.125 1.875-0.75 0.75-1.375 1.125-2.125 1.875-0.75 0.75-1.375 1.125-2.125 1.875-0.75 0.75-1.375 1.125-2.125 1.875-0.75 0.75-1.375 1.125-2.125 1.875-0.75 0.75-1.375 1.125-1.875 1.875-0.75 0.75-1.375 1.125-1.875 1.875l-1.875 1.875-1.875 1.875-1.875 1.875-1.875 1.875c-0.75 0.75-1.125 1.125-1.625 1.875s-1.125 1.125-1.625 1.875-1.125 1.125-1.625 1.875-1.125 1.125-1.625 1.875-1.125 1.125-1.625 1.875-1.125 1.125-1.625 1.875-0.875 1.125-1.625 1.875c-0.5 0.75-0.875 1.125-1.625 1.875-0.5 0.75-0.875 1.125-1.375 1.875-0.5 0.75-0.875 1.125-1.375 1.875-0.5 0.75-0.875 1.125-1.375 1.875-0.5 0.75-0.875 1.125-1.375 1.875-0.5 0.75-0.875 1.125-1.375 1.875-0.5 0.75-0.875 1.125-1.375 1.875-0.5 0.75-0.875 1.125-1.375 1.875-0.5 0.75-0.875 1.125-1.375 1.875-0.5 0.75-0.875 1.125-1.125 1.875-0.5 0.75-0.875 1.125-1.125 1.875-0.5 0.75-0.75 1.125-1.125 1.875-0.5 0.75-0.75 1.125-1.125 1.875-0.5 0.75-0.75 1.125-1.125 1.875-0.5 0.75-0.75 1.125-1.125 1.875-0.5 0.75-0.75 1.125-1.125 1.875-0.5 0.75-0.75 1.125-1.125 1.875-0.25 0.75-0.75 1.125-0.875 1.875-0.25 0.75-0.75 1.125-0.875 1.875-0.25 0.75-0.75 1.125-0.875 1.875-0.25 0.75-0.75 1.125-0.875 1.875-0.25 0.75-0.75 1.125-0.875 1.875-0.25 0.75-0.75 1.125-0.875 1.875-0.25 0.75-0.75 1.125-0.875 1.875-0.25 0.75-0.5 1.125-0.875 1.875-0.25 0.75-0.5 1.125-0.875 1.875-0.25 0.75-0.5 1.125-0.875 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.5 1.875-0.25 0.75-0.5 1.125-0.5 1.875-0.25 0.75-0.5 1.125-0.5 1.875-0.25 0.75-0.25 1.125-0.5 1.875s-0.25 1.125-0.5 1.875-0.25 1.125-0.5 1.875-0.25 1.125-0.5 1.875-0.25 1.125-0.5 1.875-0.25 1.125-0.5 1.875-0.25 1.125-0.5 1.875-0.25 1.125-0.5 1.875-0.25 1.125-0.25 1.875-0.25 1.125-0.25 1.875-0.25 1.125-0.25 1.875-0.25 1.125-0.25 1.875-0.25 1.125-0.25 1.875-0.25 1.125-0.25 1.875-0.25 1.125-0.25 1.875-0.25 1.125-0.25 1.875-0.25 1.125-0.25 1.875 0 1.125-0.25 1.875c0 0.75 0 1.125-0.25 1.875 0 0.75 0 1.125-0.25 1.875 0 0.75 0 1.125-0.25 1.875V457.25v1.875 1.875 1.875 1.875 1.875 0.875 0.875 1.875 1.875 1.875 1.875 1.875 1.875c0 0.75 0 1.125 0.25 1.875 0 0.75 0 1.125 0.25 1.875 0 0.75 0 1.125 0.25 1.875 0 0.75 0.25 1.125 0.25 1.875s0.25 1.125 0.25 1.875 0.25 1.125 0.25 1.875 0.25 1.125 0.25 1.875 0.25 1.125 0.25 1.875 0.25 1.125 0.25 1.875 0.25 1.125 0.25 1.875 0.25 1.125 0.25 1.875 0.25 1.125 0.25 1.875 0.25 1.125 0.5 1.875c0 0.75 0.25 1.125 0.5 1.875s0.25 1.125 0.5 1.875 0.25 1.125 0.5 1.875 0.25 1.125 0.5 1.875 0.25 1.125 0.5 1.875 0.25 1.125 0.5 1.875 0.25 1.125 0.5 1.875 0.25 1.125 0.5 1.875 0.25 1.125 0.5 1.875 0.25 1.125 0.5 1.875 0.5 1.125 0.5 1.875c0.25 0.75 0.5 1.125 0.5 1.875 0.25 0.75 0.5 1.125 0.5 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.875 1.875 0.25 0.75 0.5 1.125 0.875 1.875 0.25 0.75 0.5 1.125 0.875 1.875 0.25 0.75 0.75 1.125 0.875 1.875 0.25 0.75 0.75 1.125 0.875 1.875 0.25 0.75 0.75 1.125 0.875 1.875 0.25 0.75 0.75 1.125 0.875 1.875 0.25 0.75 0.75 1.125 0.875 1.875 0.25 0.75 0.75 1.125 0.875 1.875 0.25 0.75 0.75 1.125 1.125 1.875 0.5 0.75 0.75 1.125 1.125 1.875 0.5 0.75 0.75 1.125 1.125 1.875 0.5 0.75 0.75 1.125 1.125 1.875 0.5 0.75 0.75 1.125 1.125 1.875 0.5 0.75 0.75 1.125 1.125 1.875 0.5 0.75 0.75 1.125 1.125 1.875 0.5 0.75 0.875 1.125 1.125 1.875 0.5 0.75 0.875 1.125 1.125 1.875 0.5 0.75 0.875 1.125 1.125 1.875 0.5 0.75 0.875 1.125 1.375 1.875 0.5 0.75 0.875 1.125 1.375 1.875 0.5 0.75 0.875 1.125 1.375 1.875 0.5 0.75 0.875 1.125 1.375 1.875 0.5 0.75 0.875 1.125 1.375 1.875 0.5 0.75 0.875 1.125 1.375 1.875 0.5 0.75 0.875 1.125 1.375 1.875 0.5 0.75 0.875 1.125 1.625 1.875 0.5 0.75 0.875 1.125 1.625 1.875 0.5 0.75 1.125 1.125 1.625 1.875s1.125 1.125 1.625 1.875 1.125 1.125 1.625 1.875 1.125 1.125 1.625 1.875 1.125 1.125 1.625 1.875l1.875 1.875 1.875 1.875 1.875 1.875 1.875 1.875c0.75 0.75 1.375 1.125 1.875 1.875 0.75 0.75 1.375 1.125 2.125 1.875 0.75 0.75 1.375 1.125 2.125 1.875 0.75 0.75 1.375 1.125 2.125 1.875 0.75 0.75 1.375 1.125 2.125 1.875 0.75 0.75 1.375 1.125 2.125 1.875 0.75 0.75 1.375 1.125 2.375 1.875 0.75 0.75 1.625 1.125 2.375 1.875 0.75 0.75 1.625 1.125 2.375 1.875 0.75 0.75 1.625 1.125 2.375 1.875 0.875 0.75 1.625 1.125 2.5 1.875s1.625 1.125 2.5 1.875 1.875 1.125 2.5 1.875c0.875 0.75 1.875 1.125 2.75 1.875 0.875 0.75 1.875 1.125 2.75 1.875 0.875 0.75 1.875 1.125 2.75 1.875 0.875 0.75 1.875 1.125 3 1.875 0.875 0.75 2.125 1.125 3 1.875s2.125 1.125 3 1.875c1.125 0.75 2.125 1.125 3.25 1.875 1.125 0.75 2.375 1.125 3.25 1.875 1.125 0.75 2.375 1.125 3.5 1.875 1.125 0.75 2.375 1.125 3.75 1.875 1.125 0.75 2.5 1.125 3.75 1.875 1.375 0.75 2.5 1.125 4 1.875 1.375 0.75 2.75 1.125 4.25 1.875 1.375 0.75 2.75 1.125 4.25 1.875 1.375 0.75 3 1.125 4.375 1.875 1.625 0.75 3 1.125 4.625 1.875 1.625 0.75 3.25 1.125 4.875 1.875 1.875 0.75 3.5 1.125 5.375 1.875s3.75 1.125 5.625 1.875c2.125 0.75 4.25 1.125 6 1.875 2.375 0.75 4.375 1.125 6.75 1.875 2.5 0.75 4.875 1.125 7.5 1.875 2.75 0.75 5.625 1.125 8.625 1.875 3.5 0.75 6.75 1.125 10.25 1.875 4.375 0.75 8.875 1.375 13.25 1.875 11 1.125 22.125 1.875 33.25 1.875h2.5c11.125 0 22.375-0.75 33.5-1.875 4.375-0.5 8.875-1.125 13.25-1.875 3.5-0.5 7-1.125 10.25-1.875 2.75-0.5 5.875-1.125 8.625-1.875 2.5-0.5 5.125-1.125 7.625-1.875 2.375-0.5 4.625-1.125 6.75-1.875 2.125-0.5 4.25-1.125 6.25-1.875 1.875-0.75 4-1.125 5.875-1.875s3.75-1.125 5.375-1.875c1.625-0.75 3.5-1.125 5.125-1.875 1.625-0.75 3.25-1.125 4.875-1.875 1.625-0.75 3-1.125 4.625-1.875 1.375-0.75 3-1.125 4.375-1.875s2.75-1.125 4.25-1.875c1.375-0.75 2.75-1.125 4-1.875 1.375-0.75 2.5-1.125 3.75-1.875 1.125-0.75 2.5-1.125 3.75-1.875 1.125-0.75 2.375-1.125 3.5-1.875 1.125-0.75 2.375-1.125 3.5-1.875 1.125-0.75 2.375-1.125 3.25-1.875 1.125-0.75 2.125-1.125 3.25-1.875 1.125-0.75 2.125-1.125 3-1.875s2.125-1.125 3-1.875 1.875-1.125 3-1.875c0.875-0.75 1.875-1.125 2.75-1.875 0.875-0.75 1.875-1.125 2.75-1.875 0.875-0.75 1.875-1.125 2.75-1.875 0.875-0.75 1.875-1.125 2.5-1.875 0.875-0.75 1.625-1.125 2.5-1.875s1.625-1.125 2.5-1.875 1.625-1.125 2.375-1.875c0.75-0.75 1.625-1.125 2.375-1.875 0.75-0.75 1.625-1.125 2.375-1.875 0.75-0.75 1.375-1.125 2.375-1.875 0.75-0.75 1.375-1.125 2.375-1.875 0.75-0.75 1.375-1.125 2.125-1.875 0.75-0.75 1.375-1.125 2.125-1.875 0.75-0.75 1.375-1.125 2.125-1.875 0.75-0.75 1.375-1.125 2.125-1.875 0.75-0.75 1.375-1.125 1.875-1.875 0.75-0.75 1.375-1.125 1.875-1.875l1.875-1.875 1.875-1.875 1.875-1.875 1.875-1.875c0.75-0.75 1.125-1.125 1.625-1.875s1.125-1.125 1.625-1.875 1.125-1.125 1.625-1.875 1.125-1.125 1.625-1.875 1.125-1.125 1.625-1.875 0.875-1.125 1.625-1.875c0.5-0.75 0.875-1.125 1.625-1.875 0.5-0.75 0.875-1.125 1.375-1.875 0.5-0.75 0.875-1.125 1.375-1.875 0.5-0.75 0.875-1.125 1.375-1.875 0.5-0.75 0.875-1.125 1.375-1.875 0.5-0.75 0.875-1.125 1.375-1.875 0.5-0.75 0.875-1.125 1.375-1.875 0.5-0.75 0.875-1.125 1.375-1.875 0.5-0.75 0.875-1.125 1.125-1.875 0.5-0.75 0.875-1.125 1.125-1.875 0.5-0.75 0.875-1.125 1.125-1.875 0.5-0.75 0.75-1.125 1.125-1.875 0.5-0.75 0.75-1.125 1.125-1.875 0.5-0.75 0.75-1.125 1.125-1.875 0.5-0.75 0.75-1.125 1.125-1.875 0.5-0.75 0.75-1.125 1.125-1.875 0.5-0.75 0.75-1.125 1.125-1.875 0.5-0.75 0.75-1.125 0.875-1.875 0.25-0.75 0.75-1.125 0.875-1.875 0.25-0.75 0.75-1.125 0.875-1.875 0.25-0.75 0.75-1.125 0.875-1.875 0.25-0.75 0.75-1.125 0.875-1.875 0.25-0.75 0.75-1.125 0.875-1.875 0.25-0.75 0.75-1.125 0.875-1.875 0.25-0.75 0.75-1.125 0.875-1.875 0.25-0.75 0.5-1.125 0.875-1.875 0.25-0.75 0.5-1.125 0.875-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.5-1.875 0.25-0.75 0.5-1.125 0.5-1.875 0.25-0.75 0.25-1.125 0.5-1.875s0.5-1.125 0.5-1.875c0.25-0.75 0.25-1.125 0.5-1.875s0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875c0-0.5 0.25-0.75 0.25-1.125-4.625 0.5-9.25 0.875-14 1.125-3.5 0.25-7 0.25-10.75 0.25-4 0-8.125 0-12.125-0.25-6.75-0.25-13.25-0.875-19.5-1.875-3.75-0.5-7.625-1.125-11.375-1.875-3-0.5-5.875-1.125-8.875-1.875-2.5-0.5-5.125-1.125-7.5-1.875-2.125-0.5-4.375-1.125-6.5-1.875-1.875-0.5-4-1.125-5.875-1.875-1.875-0.5-3.5-1.125-5.375-1.875-1.625-0.75-3.25-1.125-4.875-1.875-1.625-0.75-3-1.125-4.625-1.875-1.375-0.75-3-1.125-4.375-1.875s-2.75-1.125-4.25-1.875c-1.375-0.75-2.5-1.125-4-1.875-1.125-0.75-2.5-1.125-3.75-1.875-1.125-0.75-2.375-1.125-3.5-1.875-1.125-0.75-2.375-1.125-3.5-1.875-1.125-0.75-2.125-1.125-3.25-1.875-0.875-0.75-2.125-1.125-3-1.875s-2.125-1.125-3-1.875-1.875-1.125-3-1.875c-0.875-0.75-1.875-1.125-2.75-1.875-0.875-0.75-1.875-1.125-2.75-1.875-0.875-0.75-1.875-1.125-2.5-1.875-0.875-0.75-1.625-1.125-2.5-1.875s-1.625-1.125-2.5-1.875c-0.75-0.75-1.625-1.125-2.375-1.875-0.75-0.75-1.625-1.125-2.375-1.875-0.75-0.75-1.625-1.125-2.375-1.875-0.75-0.75-1.375-1.125-2.125-1.875-0.75-0.75-1.375-1.125-2.125-1.875-0.75-0.75-1.375-1.125-2.125-1.875-0.75-0.75-1.375-1.125-2.125-1.875-0.75-0.75-1.375-1.125-2.125-1.875-0.75-0.75-1.375-1.125-1.875-1.875l-1.875-1.875-1.875-1.875-1.875-1.875c-0.75-0.75-1.125-1.125-1.625-1.875s-1.125-1.125-1.625-1.875-1.125-1.125-1.625-1.875-1.125-1.125-1.625-1.875-1.125-1.125-1.625-1.875-0.875-1.125-1.625-1.875c-0.5-0.75-0.875-1.125-1.625-1.875-0.5-0.75-0.875-1.125-1.375-1.875-0.5-0.75-0.875-1.125-1.375-1.875-0.5-0.75-0.875-1.125-1.375-1.875-0.5-0.75-0.875-1.125-1.375-1.875-0.5-0.75-0.875-1.125-1.375-1.875-0.5-0.75-0.875-1.125-1.375-1.875-0.5-0.75-0.875-1.125-1.125-1.875-0.5-0.75-0.875-1.125-1.125-1.875-0.5-0.75-0.75-1.125-1.125-1.875-0.5-0.75-0.75-1.125-1.125-1.875-0.5-0.75-0.75-1.125-1.125-1.875-0.5-0.75-0.75-1.125-1.125-1.875-0.5-0.75-0.75-1.125-1.125-1.875-0.5-0.75-0.75-1.125-1.125-1.875-0.5-0.75-0.75-1.125-1.125-1.875-0.25-0.75-0.75-1.125-0.875-1.875-0.25-0.75-0.75-1.125-0.875-1.875-0.25-0.75-0.75-1.125-0.875-1.875-0.25-0.75-0.75-1.125-0.875-1.875-0.25-0.75-0.75-1.125-0.875-1.875-0.25-0.75-0.75-1.125-0.875-1.875-0.25-0.75-0.75-1.125-0.875-1.875-0.25-0.75-0.5-1.125-0.875-1.875-0.25-0.75-0.5-1.125-0.875-1.875-0.25-0.75-0.5-1.125-0.875-1.875-0.25-0.75-0.5-1.125-0.75-1.875-3.125-4.625-3.375-5.125-3.625-5.75z m433.625-71.25v-11.375c0-0.5 0-0.875-0.25-1.625 0-0.5 0-0.875-0.25-1.625 0-0.5 0-0.875-0.25-1.625 0-0.5-0.25-0.875-0.25-1.625 0-0.5-0.25-0.875-0.25-1.625 0-0.5-0.25-0.875-0.25-1.625 0-0.5-0.25-0.875-0.25-1.625 0-0.5-0.25-0.875-0.25-1.625 0-0.5-0.25-0.875-0.25-1.625 0-0.5-0.25-0.875-0.25-1.625 0-0.5-0.25-0.875-0.25-1.625 0-0.5-0.25-0.875-0.25-1.625 0-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.5-0.875-0.5-1.625-0.25-0.5-0.5-0.875-0.5-1.625-0.25-0.5-0.5-0.875-0.5-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.875-1.625-0.25-0.5-0.5-0.875-0.875-1.625-0.25-0.5-0.5-0.875-0.875-1.625-0.25-0.5-0.5-0.875-0.875-1.625-0.25-0.5-0.75-0.875-0.875-1.625-0.25-0.5-0.75-0.875-0.875-1.625-0.25-0.5-0.75-0.875-0.875-1.625-0.25-0.5-0.75-0.875-0.875-1.625-0.25-0.5-0.75-0.875-0.875-1.625-0.25-0.5-0.75-0.875-0.875-1.625-0.25-0.5-0.75-0.875-0.875-1.625-0.25-0.5-0.75-0.875-0.875-1.625-0.5-0.5-0.75-0.875-1.125-1.625-0.5-0.5-0.75-0.875-1.125-1.625-0.5-0.5-0.75-0.875-1.125-1.625-0.5-0.5-0.75-0.875-1.125-1.625-0.5-0.5-0.75-0.875-1.125-1.625-0.5-0.5-0.75-0.875-1.125-1.625-0.5-0.5-0.75-0.875-1.125-1.625-0.5-0.5-0.75-0.875-1.125-1.625-0.5-0.5-0.75-0.875-1.125-1.625-0.5-0.5-0.875-0.875-1.125-1.625-0.5-0.5-0.875-0.875-1.125-1.625-0.5-0.5-0.875-0.875-1.375-1.625-0.5-0.5-0.875-0.875-1.375-1.625-0.5-0.5-0.875-0.875-1.375-1.625-0.5-0.5-0.875-0.875-1.375-1.625-0.5-0.5-0.875-0.875-1.375-1.625-0.5-0.5-0.875-0.875-1.375-1.625-0.5-0.5-0.875-0.875-1.375-1.625-0.5-0.5-0.875-0.875-1.375-1.625-0.5-0.5-0.875-0.875-1.375-1.625-0.5-0.5-0.875-0.875-1.375-1.625l-1.625-1.625-1.625-1.625c-0.5-0.5-1.125-0.875-1.625-1.625-0.5-0.5-1.125-0.875-1.625-1.625-0.5-0.5-1.125-0.875-1.625-1.625-0.5-0.5-1.125-0.875-1.625-1.625-0.5-0.5-1.125-0.875-1.625-1.625-0.5-0.5-1.125-0.875-1.625-1.625-0.5-0.5-1.125-0.875-1.625-1.625-0.75-0.5-1.125-0.875-1.875-1.625-0.75-0.5-1.125-0.875-1.875-1.625-0.75-0.5-1.125-0.875-1.875-1.625-0.75-0.5-1.125-0.875-1.875-1.625-0.75-0.5-1.125-0.875-1.875-1.625-0.75-0.5-1.125-0.875-1.875-1.625-0.75-0.5-1.375-0.875-1.875-1.625-0.75-0.5-1.375-0.875-1.875-1.625-0.75-0.5-1.375-0.875-2.125-1.625-0.75-0.5-1.375-0.875-2.125-1.625l-0.75-0.5 0.25-0.875 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.25-1.125-2.125 1.125-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-0.5 0.25-0.875-0.25c-2.125-0.5-4.25-0.875-6-1.625-2.125-0.5-4.25-0.875-6.25-1.625-2.125-0.5-4.25-0.875-6.5-1.625-2.375-0.5-4.375-0.875-6.75-1.625-2.375-0.5-4.875-1.125-7.25-1.625-2.75-0.5-5.375-1.125-8.125-1.625-3.25-0.5-6.5-1.125-9.75-1.625-5.375-0.75-10.75-1.125-15.875-1.625-2.75-0.25-5.875-0.25-8.625-0.25-3.75 0-7.5 0-11.125 0.25-6.5 0.25-12.75 0.75-19.125 1.625-3.75 0.5-7.5 0.875-11 1.625-2.75 0.5-5.875 0.875-8.625 1.625-2.375 0.5-4.875 0.875-7.25 1.625-2.125 0.5-4.25 0.875-6.25 1.625-1.875 0.5-3.75 0.875-5.625 1.625-1.875 0.5-3.5 0.875-5.125 1.625-1.625 0.5-3.25 0.875-4.875 1.625-1.375 0.5-3 0.875-4.375 1.625-1.375 0.5-2.75 0.875-4.25 1.625-1.375 0.5-2.5 0.875-4 1.625-1.125 0.5-2.5 0.875-3.75 1.625-1.125 0.5-2.375 0.875-3.75 1.625-1.125 0.5-2.375 0.875-3.5 1.625-1.125 0.5-2.125 0.875-3.25 1.625-1.125 0.5-2.125 0.875-3.25 1.625-0.875 0.5-2.125 0.875-3 1.625-0.875 0.5-1.875 0.875-3 1.625-0.875 0.5-1.875 0.875-2.75 1.625-0.875 0.5-1.875 0.875-2.75 1.625-0.875 0.5-1.875 0.875-2.5 1.625-0.875 0.5-1.625 0.875-2.5 1.625-0.875 0.5-1.625 0.875-2.5 1.625-0.75 0.5-1.625 0.875-2.375 1.625-0.75 0.5-1.625 0.875-2.375 1.625-0.75 0.5-1.625 0.875-2.375 1.625-0.75 0.5-1.375 0.875-2.375 1.625-0.75 0.5-1.375 0.875-2.125 1.625-0.75 0.5-1.375 0.875-2.125 1.625-0.75 0.5-1.375 0.875-2.125 1.625-0.75 0.5-1.375 0.875-2.125 1.625-0.75 0.5-1.375 0.875-1.875 1.625-0.75 0.5-1.375 0.875-1.875 1.625-0.75 0.5-1.125 0.875-1.875 1.625-0.75 0.5-1.125 0.875-1.875 1.625-0.75 0.5-1.125 0.875-1.875 1.625-0.75 0.5-1.125 0.875-1.875 1.625-0.5 0.5-1.125 0.875-1.625 1.625-0.5 0.5-1.125 0.875-1.625 1.625-0.5 0.5-1.125 0.875-1.625 1.625-0.5 0.5-1.125 0.875-1.625 1.625l-1.625 1.625-1.625 1.625c-0.5 0.5-0.875 0.875-1.375 1.625-0.5 0.5-0.875 0.875-1.375 1.625-0.5 0.5-0.875 0.875-1.375 1.625-0.5 0.5-0.875 0.875-1.375 1.625-0.5 0.5-0.875 0.875-1.375 1.625-0.5 0.5-0.875 0.875-1.375 1.625-0.5 0.5-0.875 0.875-1.375 1.625-0.5 0.5-0.875 0.875-1.125 1.625-0.5 0.5-0.875 0.875-1.125 1.625-0.5 0.5-0.875 0.875-1.125 1.625-0.5 0.5-0.75 0.875-1.125 1.625-0.5 0.5-0.75 0.875-1.125 1.625-0.5 0.5-0.75 0.875-1.125 1.625-0.5 0.5-0.75 0.875-1.125 1.625-0.5 0.5-0.75 0.875-1.125 1.625-0.5 0.5-0.75 0.875-1.125 1.625-0.5 0.5-0.75 0.875-1.125 1.625-0.25 0.5-0.75 0.875-0.875 1.625-0.25 0.5-0.75 0.875-0.875 1.625-0.25 0.5-0.75 0.875-0.875 1.625-0.25 0.5-0.75 0.875-0.875 1.625-0.25 0.5-0.75 0.875-0.875 1.625-0.25 0.5-0.75 0.875-0.875 1.625-0.25 0.5-0.75 0.875-0.875 1.625-0.25 0.5-0.75 0.875-0.875 1.625-0.25 0.5-0.5 0.875-0.875 1.625-0.25 0.5-0.5 0.875-0.875 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.5 1.625-0.25 0.5-0.5 0.875-0.5 1.625-0.25 0.5-0.5 0.875-0.5 1.625-0.25 0.5-0.5 0.875-0.5 1.625-0.25 0.5-0.5 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5 0 0.875-0.25 1.625 0 0.5 0 0.875-0.25 1.625 0 0.5 0 0.875-0.25 1.625v1.625 1.625 1.625 3.25 1.625 3.25 1.375 1.625 1.625 1.625 1.625 1.625 1.625 1.625 1.625 1.625c0 0.5 0 0.875 0.25 1.625 0 0.5 0 0.875 0.25 1.625 0 0.5 0 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0.25 0.5 0.25 0.875 0.5 1.625 0.25 0.5 0.25 0.875 0.5 1.625 0.25 0.5 0.25 0.875 0.5 1.625 0.25 0.5 0.25 0.875 0.5 1.625 0.25 0.5 0.25 0.875 0.5 1.625 0.25 0.5 0.25 0.875 0.5 1.625 0.25 0.5 0.25 0.875 0.5 1.625 0.25 0.5 0.25 0.875 0.5 1.625 0.25 0.5 0.25 0.875 0.5 1.625 0.25 0.5 0.5 0.875 0.5 1.625 0.25 0.5 0.5 0.875 0.5 1.625 0.25 0.5 0.5 0.875 0.5 1.625 0.25 0.5 0.5 0.875 0.5 1.625 0.25 0.5 0.5 0.875 0.5 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.875 1.625 0.25 0.5 0.5 0.875 0.875 1.625 0.25 0.5 0.5 0.875 0.875 1.625 0.25 0.5 0.75 0.875 0.875 1.625 0.25 0.5 0.75 0.875 0.875 1.625 0.25 0.5 0.75 0.875 0.875 1.625 0.25 0.5 0.75 0.875 0.875 1.625 0.25 0.5 0.75 0.875 0.875 1.625 0.25 0.5 0.75 0.875 0.875 1.625 0.25 0.5 0.75 0.875 0.875 1.625 0.25 0.5 0.75 0.875 0.875 1.625 0.25 0.5 0.75 0.875 1.125 1.625 0.5 0.5 0.75 0.875 1.125 1.625 0.5 0.5 0.75 0.875 1.125 1.625 0.5 0.5 0.75 0.875 1.125 1.625 0.5 0.5 0.75 0.875 1.125 1.625 0.5 0.5 0.75 0.875 1.125 1.625 0.5 0.5 0.75 0.875 1.125 1.625 0.5 0.5 0.875 0.875 1.125 1.625 0.5 0.5 0.875 0.875 1.125 1.625 0.5 0.5 0.875 0.875 1.125 1.625 0.5 0.5 0.875 0.875 1.375 1.625 0.5 0.5 0.875 0.875 1.375 1.625 0.5 0.5 0.875 0.875 1.375 1.625 0.5 0.5 0.875 0.875 1.375 1.625 0.5 0.5 0.875 0.875 1.375 1.625 0.5 0.5 0.875 0.875 1.375 1.625 0.5 0.5 0.875 0.875 1.375 1.625l1.625 1.625 1.625 1.625c0.5 0.5 1.125 0.875 1.625 1.625 0.5 0.5 1.125 0.875 1.625 1.625 0.5 0.5 1.125 0.875 1.625 1.625 0.5 0.5 1.125 0.875 1.625 1.625 0.5 0.5 1.125 0.875 1.875 1.625 0.75 0.5 1.125 0.875 1.875 1.625 0.75 0.5 1.125 0.875 1.875 1.625 0.75 0.5 1.125 0.875 1.875 1.625 0.75 0.5 1.375 0.875 1.875 1.625 0.75 0.5 1.375 0.875 1.875 1.625 0.75 0.5 1.375 0.875 2.125 1.625 0.75 0.5 1.375 0.875 2.125 1.625 0.75 0.5 1.375 0.875 2.125 1.625 0.75 0.5 1.375 0.875 2.125 1.625 0.75 0.5 1.375 0.875 2.375 1.625 0.75 0.5 1.625 0.875 2.375 1.625 0.75 0.5 1.625 0.875 2.375 1.625 0.75 0.5 1.625 0.875 2.375 1.625 0.875 0.5 1.625 0.875 2.5 1.625 0.875 0.5 1.625 0.875 2.5 1.625 0.875 0.5 1.875 0.875 2.5 1.625 0.875 0.5 1.875 0.875 2.75 1.625 0.875 0.5 1.875 0.875 2.75 1.625 0.875 0.5 1.875 0.875 3 1.625 0.875 0.5 2.125 0.875 3 1.625 1.125 0.5 2.125 0.875 3.25 1.625 1.125 0.5 2.125 0.875 3.25 1.625 1.125 0.5 2.375 0.875 3.5 1.625 1.125 0.5 2.375 0.875 3.75 1.625 1.125 0.5 2.5 0.875 3.75 1.625 1.375 0.5 2.5 0.875 4 1.625 1.375 0.5 2.75 0.875 4.25 1.625 1.375 0.5 3 0.875 4.375 1.625 1.625 0.5 3.25 0.875 4.875 1.625 1.625 0.5 3.5 0.875 5.125 1.625 1.875 0.5 3.75 0.875 5.875 1.625 2.125 0.5 4.25 1.125 6.25 1.625 2.375 0.5 4.875 1.125 7.25 1.625 2.75 0.5 5.875 1.125 8.625 1.625 3.75 0.75 7.5 1.125 11.125 1.625 9.25 1.125 19.125 1.625 28.875 1.625h1.375c9.25 0 18.375-0.75 27.5-1.625 3.75-0.5 7.25-0.875 10.75-1.625 2.75-0.5 5.625-0.875 8.375-1.625 2.375-0.5 4.625-0.875 7-1.625 2.125-0.5 4.25-0.875 6.25-1.625 1.875-0.5 3.75-0.875 5.625-1.625 1.625-0.5 3.5-0.875 5.125-1.625 1.625-0.5 3.25-0.875 4.625-1.625 1.375-0.5 3-0.875 4.375-1.625 1.375-0.5 2.75-0.875 4.25-1.625 1.375-0.5 2.5-0.875 4-1.625 1.125-0.5 2.5-0.875 3.75-1.625 1.125-0.5 2.375-0.875 3.5-1.625 1.125-0.5 2.375-0.875 3.5-1.625 1.125-0.5 2.125-0.875 3.25-1.625 1.125-0.5 2.125-0.875 3.25-1.625 0.875-0.5 2.125-0.875 3-1.625 0.875-0.5 1.875-0.875 3-1.625 0.875-0.5 1.875-0.875 2.75-1.625 0.875-0.5 1.875-0.875 2.75-1.625 0.875-0.5 1.875-0.875 2.5-1.625 0.875-0.5 1.625-0.875 2.5-1.625 0.875-0.5 1.625-0.875 2.5-1.625 0.875-0.5 1.625-0.875 2.5-1.625 0.75-0.5 1.625-0.875 2.375-1.625 0.75-0.5 1.625-0.875 2.375-1.625 0.75-0.5 1.375-0.875 2.375-1.625 0.75-0.5 1.375-0.875 2.125-1.625 0.75-0.5 1.375-0.875 2.125-1.625 0.75-0.5 1.375-0.875 2.125-1.625 0.75-0.5 1.375-0.875 2.125-1.625 0.75-0.5 1.375-0.875 1.875-1.625 0.75-0.5 1.375-0.875 1.875-1.625 0.75-0.5 1.125-0.875 1.875-1.625 0.75-0.5 1.125-0.875 1.875-1.625 0.75-0.5 1.125-0.875 1.875-1.625 0.75-0.5 1.125-0.875 1.875-1.625 0.5-0.5 1.125-0.875 1.625-1.625 0.5-0.5 1.125-0.875 1.625-1.625 0.5-0.5 1.125-0.875 1.625-1.625 0.5-0.5 1.125-0.875 1.625-1.625 0.5-0.5 1.125-0.875 1.625-1.625l1.625-1.625 1.625-1.625c0.5-0.5 0.875-0.875 1.375-1.625 0.5-0.5 0.875-0.875 1.375-1.625 0.5-0.5 0.875-0.875 1.375-1.625 0.5-0.5 0.875-0.875 1.375-1.625 0.5-0.5 0.875-0.875 1.375-1.625 0.5-0.5 0.875-0.875 1.375-1.625 0.5-0.5 0.875-0.875 1.375-1.625 0.5-0.5 0.875-0.875 1.375-1.625 0.5-0.5 0.875-0.875 1.125-1.625 0.5-0.5 0.75-0.875 1.125-1.625 0.5-0.5 0.875-0.875 1.125-1.625 0.5-0.5 0.75-0.875 1.125-1.625 0.5-0.5 0.75-0.875 1.125-1.625 0.5-0.5 0.75-0.875 1.125-1.625 0.5-0.5 0.75-0.875 1.125-1.625 0.5-0.5 0.75-0.875 1.125-1.625 0.5-0.5 0.75-0.875 1.125-1.625 0.5-0.5 0.75-0.875 0.875-1.625 0.25-0.5 0.75-0.875 0.875-1.625 0.25-0.5 0.75-0.875 0.875-1.625 0.25-0.5 0.75-0.875 0.875-1.625 0.25-0.5 0.75-0.875 0.875-1.625 0.25-0.5 0.75-0.875 0.875-1.625 0.25-0.5 0.75-0.875 0.875-1.625 0.25-0.5 0.5-0.875 0.875-1.625 0.25-0.5 0.75-0.875 0.875-1.625 0.25-0.5 0.5-0.875 0.875-1.625 0.25-0.5 0.5-0.875 0.875-1.625 0.25-0.5 0.5-0.875 0.875-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.5-1.625 0.25-0.5 0.5-0.875 0.5-1.625 0.25-0.5 0.5-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0-0.5 0.25-0.875 0.25-1.625 0-0.5 0.25-0.875 0.25-1.625 0-0.5 0.25-0.875 0.25-1.625 0-0.5 0.25-0.875 0.25-1.625 0-0.5 0.25-0.875 0.25-1.625 0-0.5 0.25-0.875 0.25-1.625 0-0.5 0.25-0.875 0.25-1.625 0-0.5 0.25-0.875 0.25-1.625 0-0.5 0.25-0.875 0.25-1.625 0-0.5 0-0.875 0.25-1.625 0-0.5 0-0.875 0.25-1.625 0-0.5 0-0.875 0.25-1.625 0-0.5 0-0.875 0.25-1.625 0-0.5 0-0.875 0.25-1.625v-11.375h-3.125zM589.714646 384c-12.625 0-25.375-12.75-25.375-25.375 0-12.75 12.75-25.375 25.375-25.375 19.375 0 31.875 12.625 31.875 25.375-0.125 12.625-12.75 25.375-31.875 25.375zM729.589646 384c-12.625 0-25.375-12.75-25.375-25.375 0-12.75 12.75-25.375 25.375-25.375 19.125 0 31.875 12.625 31.875 25.375 0 12.625-12.75 25.375-31.875 25.375zM328.714646 568.75c-19.125 0-38.375-12.625-38.375-31.625 0-19.125 19.375-31.875 38.375-31.875s31.875 12.75 31.875 31.875-12.875 31.625-31.875 31.625zM506.964646 568.75c-19.125 0-38.125-12.625-38.125-31.625 0-19.125 19.125-31.875 38.125-31.875 19.125 0 31.875 12.75 31.875 31.875s-12.875 31.625-31.875 31.625z" horiz-adv-x="1059" /> | ||
| 132 | + | ||
| 133 | + <glyph glyph-name="username" unicode="" d="M514.594 824.888c-144.11 0-260.979-118.46-260.979-264.558 0-88.783 43.497-166.928 109.711-214.898-135.361-59.354-230.159-195.858-230.159-354.931h0.894c1.541-21.375 18.641-38.377 40.117-38.377s38.575 17.051 40.117 38.377h0.645c0 0.944-0.099 1.79-0.099 2.734 0 0.05 0 0.099 0 0.149 0 0.099-0.05 0.149-0.05 0.199 0.05 159.967 120 291.054 273.009 304.924 8.948-0.944 17.598-2.734 26.844-2.734 144.11 0 260.979 118.46 260.979 264.558s-116.919 264.558-261.029 264.558zM514.594 377.54499999999996c-99.769 0-180.698 81.972-180.698 183.183s80.879 183.183 180.698 183.183c99.719 0 180.647-81.972 180.647-183.183s-80.879-183.183-180.647-183.183zM896.021-6.615000000000009c0 0.348-0.199 0.645-0.199 0.994-1.043 105.038-43.397 200.034-111.35 269.131v0c-7.157 7.357-17.001 11.98-27.986 11.98-21.574 0-39.122-17.747-39.122-39.668 0-11.135 4.573-21.127 11.83-28.334l-0.099-0.05c52.742-55.229 85.302-130.589 85.302-213.853 0-1.043-0.149-1.987-0.149-3.034h0.994c1.491-21.375 18.691-38.377 40.117-38.377 21.475 0 38.575 17.051 40.117 38.377h0.597c0 0.796-0.099 1.491-0.099 2.287-0.05 0.149 0.05 0.348 0.05 0.547z" horiz-adv-x="1024" /> | ||
| 134 | + | ||
| 135 | + <glyph glyph-name="password" unicode="" d="M519.2 343.29999999999995c-41.1 0-74.4-33.3-74.4-74.4 0-29.7 17.5-55 42.5-67.1v-81.9c0-17.6 14.3-31.9 31.9-31.9 17.6 0 31.9 14.3 31.9 31.9v81.9c25.1 12 42.5 37.4 42.5 66.9 0 41.3-33.2 74.6-74.4 74.6zM827.6-62.10000000000002H189.4c-35.9 0-65.1 29.2-65.1 65.1V428.4c0 35.9 29.2 65.1 65.1 65.1h638.2c17.3 0 33.7-6.7 46-19.1 12.3-12.3 19.1-28.7 19.1-46V3c0-35.9-29.2-65.1-65.1-65.1zM231.9 427.2c-34.8 0-41.3-6.6-41.3-41.3v-340.4c0-34.8 6.6-41.3 41.3-41.3h553.2c34.8 0 41.3 6.6 41.3 41.3V385.9c0 34.8-6.6 41.3-41.3 41.3H231.9zM519.2 86.70000000000005c-18.3 0-33.2 14.8-33.2 33.2V201c-26.3 12.8-42.6 38.8-42.6 67.8 0 41.8 33.9 75.7 75.7 75.7s75.7-33.9 75.7-75.7c0-29-16.3-55-42.5-67.8v-81.1c0.1-18.2-14.9-33.2-33.1-33.2zM519.2 342c-40.4 0-73.2-32.9-73.2-73.2 0-28.3 16.1-53.6 41.9-65.8l0.7-0.4V120c0-17 13.7-30.7 30.7-30.7S550 103.10000000000002 550 120v82.6l0.7 0.4c25.8 12.3 41.9 37.5 41.9 65.8-0.2 40.4-33.1 73.2-73.4 73.2zM207 523.1c-9.1 0-17.6 3.5-23.9 10-6.4 6.4-10 15-10 23.9v2h-0.2l0.2 1.4c0.1 0.5 0.1 0.9 0.2 1.4l0.2 1c0.1 0.6 0.2 1.4 0.4 2 15.3 75.7 57 144.2 117.2 193 29.9 24.2 63.4 43 99.8 56 37.5 13.3 77 20.2 117.5 20.2 61 0 120.8-16.3 173-47.2 50.6-29.9 93-72.8 122.5-123.8 4-5.6 6.1-12.2 6.1-19.2 0-18.3-15-33.3-33.3-33.3-13.2 0-25.1 7.7-30.4 19.8-49.2 84.6-140.4 137.4-238 137.4-128.1 0-238.2-87.1-267.6-211.8v-0.2c-0.7-18.4-15.4-32.6-33.7-32.6z" horiz-adv-x="1024" /> | ||
| 136 | + | ||
| 137 | + <glyph glyph-name="refresh-3" unicode="" d="M820.376904 697.14807C740.637816 774.519228 631.884926 822.157201 511.999488 822.157201c-244.621347 0-442.925808-198.305485-442.925808-442.926832 0-244.6193 198.304462-442.925808 442.925808-442.925808 206.075449 0 379.271046 140.739395 428.740738 331.337337L822.859445 267.64189899999997c-45.759183-127.45381-167.656441-218.623229-310.859957-218.623229-182.371584 0-330.210677 147.842163-330.210677 330.210677 0 182.371584 147.840116 330.2117 330.210677 330.2117 88.762603 0 169.32443-35.035958 228.655723-92.015693L557.051567 433.822732l280.641725 0 113.880677 0 3.351328 0L954.925297 831.695438 820.376904 697.14807z" horiz-adv-x="1024" /> | ||
| 138 | + | ||
| 139 | + <glyph glyph-name="auz" unicode="" d="M324.266667 435.2c-17.066667 17.066667-39.822222 17.066667-51.2 0-17.066667-17.066667-17.066667-39.822222 0-51.2l153.6-159.288889c5.688889-5.688889 17.066667-11.377778 28.444444-11.377778s17.066667 5.688889 28.444445 11.377778l295.822222 290.133333c17.066667 17.066667 17.066667 39.822222 0 51.2-17.066667 17.066667-39.822222 17.066667-51.2 0L455.111111 304.355556 324.266667 435.2zM927.288889 753.777778L523.377778 896h-22.755556L96.711111 753.777778c-17.066667-5.688889-28.444444-17.066667-28.444444-34.133334v-432.355555c11.377778-250.311111 409.6-409.6 426.666666-415.288889h22.755556c17.066667 5.688889 415.288889 159.288889 426.666667 415.288889V719.644444c11.377778 17.066667 0 28.444444-17.066667 34.133334z m-45.511111-460.8c-5.688889-182.044444-301.511111-312.888889-369.777778-341.333334-113.777778 45.511111-358.4 182.044444-369.777778 341.333334v398.222222L512 822.044444l369.777778-125.155555v-403.911111z" horiz-adv-x="1024" /> | ||
| 140 | + | ||
| 141 | + <glyph glyph-name="shrink-right" unicode="" d="M52.294-28.71900000000005h899.793c16.546 0 29.999 13.405 29.999 29.999v59.974c-0.013 16.562-13.436 29.985-29.998 29.999h-899.795c-16.57 0-29.999-13.429-29.999-29.999v-59.974c0-16.617 13.429-29.999 29.999-29.999zM952.087 451.165h-479.884c-16.57 0-29.999-13.405-29.999-29.999v-59.974c0 0 0 0 0 0 0-16.572 13.428-30.01 29.997-30.022h479.885c16.571 0.013 29.999 13.448 29.999 30.022 0 0 0 0 0 0v59.974c0 16.593-13.429 29.999-29.999 29.999zM52.294 691.0840000000001h899.793c16.554 0.013 29.972 13.423 29.999 29.974v59.999c0 16.57-13.429 29.999-29.999 29.999h-899.793c-16.57 0-29.999-13.429-29.999-29.999v-59.997c0-16.546 13.429-29.975 29.999-29.975zM45.183 383.53499999999997l239.919-150.598v301.196l-239.919-150.598z" horiz-adv-x="1024" /> | ||
| 142 | + | ||
| 143 | + <glyph glyph-name="spread-left" unicode="" d="M942.974 770.924h-843.556c-15.513 0-28.124-12.567-28.124-28.124v-56.226c0.012-15.527 12.596-28.111 28.123-28.124h843.559c15.534 0 28.124 12.59 28.124 28.124v56.226c0 15.578-12.59 28.124-28.124 28.124zM99.418 321.033h449.891c15.534 0 28.124 12.567 28.124 28.124v56.226c0 0 0 0 0 0 0 15.537-12.589 28.134-28.122 28.146h-449.892c-15.534-0.012-28.124-12.608-28.124-28.146 0 0 0 0 0 0v-56.226c0-15.556 12.59-28.124 28.124-28.124zM942.974 96.10900000000004h-843.556c-15.519-0.012-28.099-12.584-28.124-28.101v-56.249c0-15.534 12.59-28.124 28.124-28.124h843.556c15.534 0 28.124 12.59 28.124 28.124v56.248c0 15.513-12.59 28.103-28.124 28.102zM949.641 384.436l-224.924 141.186v-282.37l224.924 141.186z" horiz-adv-x="1024" /> | ||
| 144 | + | ||
| 145 | + <glyph glyph-name="snowflake" unicode="" d="M480.695-64h63.725V59.291000000000054l68.854-68.242 44.945 44.546-113.798 112.79v180.02l177.271-102.44 41.67-155.652 60.725 16.284-25.398 94.872 85.259-49.266 31.87 55.246-84.726 48.961 94.497 25.343-16.495 61.622-156.068-41.855-176.934 102.245 177.667 102.667 155.513-41.709 16.274 60.793-94.78 25.418 85.255 49.264-31.869 55.247-84.733-48.965 25.326 94.594-61.557 16.51-41.817-156.206-176.948-102.251V644.461l113.849 113.951-44.459 44.496-69.392-69.454V832h-63.725v-97.935l-69.188 69.249-45.068-45.107 114.256-114.355V438.89l-156.557 90.469L283.45 684.39l-60.188-16.458 24.84-94.632-107.544 62.145-31.868-55.247 106.667-61.639-93.463-25.557 16.074-61.237 154.482 42.243 156.169-90.243-156.138-90.226-154.485 42.243-15.855-60.409 94.289-25.784-107.534-62.14 31.868-55.247 106.672 61.642-24.621-93.801 61.012-16.685 40.69 155.028 156.179 90.25v-180.455l-113.801-112.79 44.338-43.944 69.463 68.845V-64z" horiz-adv-x="1024" /> | ||
| 146 | + | ||
| 147 | + <glyph glyph-name="tips" unicode="" d="M967.280184 578.537671c-24.915459 58.887178-60.544935 111.76755-105.96745 157.161413-45.393863 45.393863-98.273211 81.051991-157.160389 105.96745-60.988026 25.803689-125.735679 38.853913-192.494129 38.853913-66.729797 0-131.504056-13.0799-192.494129-38.853913-58.887178-24.916483-111.766526-60.544935-157.160389-105.96745-45.393863-45.393863-81.051991-98.274234-105.96745-157.161413-25.803689-60.988026-38.884612-125.734656-38.884612-192.464453s13.0799-131.50508 38.884612-192.464453c24.915459-58.887178 60.544935-111.737874 105.96745-157.161413 45.393863-45.393863 98.273211-81.051991 157.160389-105.96745 60.988026-25.803689 125.735679-38.853913 192.494129-38.853913 66.729797 0 131.504056 13.0799 192.494129 38.853913 58.887178 24.916483 111.766526 60.544935 157.160389 105.96745 45.393863 45.393863 81.051991 98.274234 105.96745 157.161413 25.803689 60.988026 38.853913 125.734656 38.853913 192.464453S993.084896 517.549645 967.280184 578.537671zM511.687892-55.138552000000004c-243.302305 0-441.241446 197.909465-441.241446 441.21177S268.385587 827.284989 511.687892 827.284989c243.273652-0.029676 441.210747-197.938118 441.210747-441.21177S754.990197-55.138552000000004 511.687892-55.138552000000004zM511.657192 573.565427m-45.511543 0a44.475 44.475 0 1 1 91.023086 0 44.475 44.475 0 1 1-91.023086 0ZM542.729885 184.14011300000004c0-17.162892-13.906731-31.071669-31.070646-31.071669l0 0c-17.163915 0-31.070646 13.907755-31.070646 31.071669L480.588593 426.998303c0 17.162892 13.906731 31.071669 31.070646 31.071669l0 0c17.163915 0 31.070646-13.907755 31.070646-31.071669L542.729885 184.14011300000004z" horiz-adv-x="1024" /> | ||
| 148 | + | ||
| 149 | + <glyph glyph-name="note" unicode="" d="M987.2 384.36L512.43 859.13a84.75 84.75 0 0 1-65 24.71L111.55 864.09a84.83 84.83 0 0 1-79.65-79.65L12.15 448.57a84.57 84.57 0 0 1 24.69-65l474.8-474.8a84.91 84.91 0 0 1 119.93 0L987.2 264.41999999999996a84.9 84.9 0 0 1 0 119.94z m-39.28-80.66L592.29-51.91999999999996a29.31 29.31 0 0 0-41.37 0L76.1 422.9a29.22 29.22 0 0 0-8.49 22.38l19.74 335.88a29.29 29.29 0 0 0 27.48 27.48l335.9 19.75a29.32 29.32 0 0 0 22.38-8.52l474.8-474.8a29.31 29.31 0 0 0 0.01-41.37zM236.86 659.14c-50.92-50.95-50.92-133.8 0-184.72a130.61 130.61 0 1 1 184.71 184.72c-50.89 50.86-133.77 50.86-184.71 0zM382.29 513.7c-28.38-28.38-77.78-28.38-106.15 0a75.08 75.08 0 1 0 106.15 0z" horiz-adv-x="1024" /> | ||
| 150 | + | ||
| 151 | + <glyph glyph-name="senior" unicode="" d="M719.9 292.06666666L514.7 422.16666666V527.76666666C615.6 461.66666666 731.5 386.66666666 731.5 386.66666666s139.2-45.6 139.2 106.5c0 93-172.5 112.1-197.2 11.8l-69.6 47.3s24.2 101.5 162.4 106.5c138.2 4.9 192-94.6 190.9-199.6-1.2-104.7-136-198.3-237.3-167.1zM561 456.66666666c-4-19-23-33.7-47.6-33.7l-6.9 4.3-217.3 137.8S171 597.86666666 160.8 481.66666666c-10.2-116.1 147.4-129.5 186.8-23.8l81.7-47.6s-65.1-119.1-198.5-119.1C97.3 291.16666666000003 0.6 466.46666666 114 588.96666666c113.5 122.4 218.6 64.6 257 35.7 16.4-12.4 85.3-57.9 158.6-105.9l3.1-2.4c28.3-18.2 33.4-35.6 28.3-59.7zM434.1 192.36666665999996h212c16.7 0 30.3-13.6 30.3-30.3v-15.1c0-16.7-13.6-30.3-30.3-30.3h-212c-16.7 0-30.3 13.6-30.3 30.3v15.1c0 16.8 13.6 30.3 30.3 30.3z" horiz-adv-x="1024" /> | ||
| 152 | + | ||
| 153 | + <glyph glyph-name="refresh-1" unicode="" d="M688.146 736l-192 128v-256l192 128.001zM496.146 767.7090000000001c-231.174-8.416-416-198.479-416-431.709 0-238.587 193.413-432 432-432 233.23 0 423.293 184.826 431.709 416h-64.05c-8.377-195.817-169.778-352-367.658-352-203.241 0-368 164.759-368 368 0 197.88 156.183 359.282 352 367.658v64.051z" horiz-adv-x="1024" /> | ||
| 154 | + | ||
| 155 | + <glyph glyph-name="refresh" unicode="" d="M928 810.666667c-18.133333 0-32-13.866667-32-32v-164.266667C816 747.733333 669.866667 832 512 832 264.533333 832 64 631.4666669999999 64 384s200.533333-448 448-448c230.4 0 422.4 172.8 445.866667 402.133333 2.133333 17.066667-10.666667 33.066667-28.8 35.2-17.066667 2.133333-33.066667-10.666667-35.2-28.8C873.6 148.26666699999998 709.333333 0 512 0c-212.266667 0-384 171.733333-384 384s171.733333 384 384 384c137.6 0 264.533333-74.666667 332.8-192H693.333333c-18.133333 0-32-13.866667-32-32s13.866667-32 32-32h266.666667V778.666667c0 18.133333-14.933333 32-32 32z" horiz-adv-x="1024" /> | ||
| 156 | + | ||
| 157 | + <glyph glyph-name="flag" unicode="" d="M878.368178 798.272211c-11.363815 4.799306-24.470321 2.360767-33.31578-6.245238-0.36532-0.350994-37.162388-35.304064-95.163383-56.05262-75.462692-26.993794-150.763702-18.409279-223.812415 25.517163-38.347376 23.060205-81.875752 40.665165-129.376603 52.327786-37.582967 9.228175-77.742619 14.777565-119.363552 16.496719-70.805626 2.925632-121.493052-6.224772-123.615389-6.615675-14.56574-2.682086-25.140587-15.380292-25.140587-30.191626L128.58047-31.312913999999978c0-16.954137 13.745049-30.699186 30.699186-30.699186s30.699186 13.745049 30.699186 30.699186L189.978842 266.68306099999995c15.562441 5.250584 47.994084 14.447037 91.40171 17.48728 35.985586 2.51938 72.440869 0.378623 108.35073-6.363941 44.847417-8.420787 89.059362-24.102954 131.409912-46.611597 46.26879-24.591071 93.776803-41.069371 141.203976-48.977481 38.270629-6.380314 76.541257-7.219425 113.740484-2.491751 64.277956 8.16803 103.877859 30.461779 105.532545 31.406291 9.56689 5.464455 15.471366 15.637142 15.471366 26.656103L897.089565 769.958352C897.091612 782.298402 889.73711 793.470859 878.368178 798.272211zM835.69324 257.496841c-14.58416-5.755074-38.82526-13.530155-70.319555-17.225313-30.990828-3.635807-62.940494-2.676969-94.952582 2.851954-40.201607 6.943133-80.731696 21.171182-120.464629 42.289152-48.455595 25.753547-99.208513 43.61945-150.848637 53.101405-29.29214 5.378497-58.896388 8.079002-88.407516 8.079002-12.228509 0-24.443715-0.464581-36.609803-1.39272-34.879392-2.663666-63.618946-8.741082-84.111676-14.355963L189.978842 766.569162c19.971867 2.003634 50.446949 3.910053 86.392626 2.334161 58.186214-2.554172 143.250588-15.041578 218.064504-60.029188 61.32674-36.877909 119.196753-49.491181 169.691797-49.488111 42.293245 0.002047 79.416747 8.854669 109.019972 19.711947 24.269753 8.901741 45.327348 19.747763 62.544475 30.179346L835.692217 257.496841z" horiz-adv-x="1024" /> | ||
| 158 | + | ||
| 159 | + <glyph glyph-name="theme" unicode="" d="M512 800C229.696 800 0 570.304 0 288c0-90.368 30.304-174.496 85.344-236.896 55.264-62.624 129.152-97.12 208.128-97.12 81.568 0 161.536 36.832 231.264 106.592l2.272 2.496c65.792 81.472 132.896 121.056 205.088 121.056 46.72 0 89.216-15.872 126.688-29.92 30.336-11.328 56.576-21.12 81.216-21.12C1024 133.08799999999997 1024 241.664 1024 288c0 282.304-229.696 512-512 512z m428-602.912c-13.088 0-35.296 8.288-58.784 17.088-40.48 15.136-90.848 33.952-149.12 33.952-92.352 0-175.328-46.944-253.76-143.456-57.184-56.704-121.056-86.688-184.832-86.688-60.352 0-117.216 26.784-160.128 75.456C88.64 144.12800000000004 64 213.216 64 288 64 535.04 264.96 736 512 736s448-200.96 448-448c0-27.328-1.952-90.912-20-90.912zM800.704 379.93600000000004m-64 0a64 64 0 1 1 128 0 64 64 0 1 1-128 0ZM457.024 582.624m-64 0a64 64 0 1 1 128 0 64 64 0 1 1-128 0ZM672.704 555.9359999999999m-64 0a64 64 0 1 1 128 0 64 64 0 1 1-128 0ZM291.392 443.936m-64 0a64 64 0 1 1 128 0 64 64 0 1 1-128 0ZM278.4 197.24800000000005m-96 0a96 96 0 1 1 192 0 96 96 0 1 1-192 0Z" horiz-adv-x="1024" /> | ||
| 160 | + | ||
| 161 | + <glyph glyph-name="notice" unicode="" d="M544 798.976V864h-64v-65.024C289.536 786.304 160 658.624 160 416v-288h64V416c0 192 115.456 320 288 320 180.544 0 288-128 288-320v-288h64V416c0 242.88-122.496 370.56-320 382.976zM672 64a160 160 0 1 0-320 0h64a96 96 0 0 1 192 0h64zM64 128h896v-64H64v64z" horiz-adv-x="1024" /> | ||
| 162 | + | ||
| 163 | + <glyph glyph-name="console" unicode="" d="M30.552 104.72699999999998c4.654-16.29 23.272-23.272 37.236-18.618 16.291 4.655 23.273 23.273 18.618 37.236C16.588 314.182 84.08 521.31 237.68 640c11.636 9.31 23.273 16.29 37.236 25.6 25.6 16.29 53.528 30.255 83.782 39.564 58.182 20.945 118.691 30.254 176.873 27.927h25.6c6.982 0 11.636 0 18.618-2.327 30.255-4.655 58.182-11.637 88.436-23.273 235.055-86.11 356.073-346.764 269.964-581.818-4.654-16.291 2.327-32.582 18.618-37.237 16.291-4.654 32.582 2.328 37.237 18.619 41.89 116.363 39.563 239.709 0 349.09h2.327C921.897 656.2909999999999 738.043 784.2909999999999 537.897 793.6h-48.873c-200.145-9.31-384-137.31-458.472-337.455-39.564-109.381-41.891-232.727 0-351.418z m707.49 386.328a29.498 29.498 0 0 1-41.89 0L521.606 316.509c-4.654 2.327-9.309 2.327-13.963 2.327-32.582 0-58.182-25.6-58.182-58.181s25.6-58.182 58.182-58.182 58.181 25.6 58.181 58.182c0 4.654 0 9.309-2.327 16.29l174.546 174.546c11.636 11.636 11.636 30.254 0 39.564z m228.073-458.473H58.48c-16.29 0-30.255-13.964-30.255-30.255 0-16.29 13.964-30.254 30.255-30.254h907.636c16.291 0 30.255 13.963 30.255 30.254 0 16.291-13.964 30.255-30.255 30.255z" horiz-adv-x="1024" /> | ||
| 164 | + | ||
| 165 | + <glyph glyph-name="website" unicode="" d="M777.073418 147.443038c-30.460759 21.387342-40.83038 40.182278-76.47595 53.792405 25.275949 60.273418 40.182278 83.605063 42.126583 154.896203H887.898734c-3.888608-99.159494-45.367089-143.878481-110.825316-208.688608zM136.101266 356.13164600000005h167.210126c1.944304-71.291139 16.850633-94.622785 42.126583-154.896203-34.997468-13.610127-68.050633-31.756962-98.511393-53.792405C181.468354 212.25316499999997 139.989873 256.97215200000005 136.101266 356.13164600000005z m103.048101 259.888607c29.164557-23.979747 61.56962-42.774684 96.567089-57.681012-19.443038-53.792405-30.460759-90.734177-31.756962-152.951899H136.101266c3.240506 90.734177 46.663291 147.767089 103.048101 210.632911z m309.144304-209.98481V523.989873c47.311392 1.296203 71.291139 10.36962 114.065823 25.27595 18.146835-51.2 28.516456-84.901266 30.460759-143.23038H548.293671z m104.344304-195.078481c-40.182278 12.962025-60.273418 20.091139-104.344304 21.387342V356.13164600000005h144.526582c-1.944304-68.050633-16.202532-88.141772-40.182278-145.174684z m36.941772-57.681013c31.756962-12.313924 39.534177-28.516456 66.75443-47.311392-51.848101-44.718987-114.713924-73.883544-182.116455-84.901266 36.941772 37.589873 90.734177 82.308861 115.362025 132.212658z m-163.321519-137.397468l22.035443 165.913924c40.182278-1.296203 56.38481-7.777215 92.678481-18.794937-27.220253-56.38481-66.106329-106.288608-113.417722-147.118987h-1.296202z m-75.827848 5.18481c-67.402532 11.017722-130.268354 40.83038-182.764557 84.901266 27.868354 19.443038 57.681013 34.997468 88.789873 47.311392 23.331646-48.607595 55.088608-93.326582 93.974684-132.212658z m47.311392 335.068355v-123.787342c-44.070886-1.296203-64.162025-8.425316-104.344304-21.387342-23.979747 57.681013-38.237975 77.124051-40.182278 145.174684h144.526582zM383.675949 549.265823c42.774684-14.906329 66.75443-23.331646 114.065823-25.27595v-117.95443H353.21519c1.944304 58.329114 12.313924 92.03038 30.460759 143.23038z m-37.589873 57.032911c-31.756962 12.962025-60.921519 30.460759-88.141772 51.848101 53.792405 51.848101 115.362025 91.382278 192.486076 104.344304-44.718987-44.718987-80.364557-97.863291-104.344304-156.192405z m151.655696 161.377215v-193.782278c-44.070886 1.296203-64.162025 9.073418-103.696202 22.683544 29.164557 68.698734 49.903797 127.027848 102.4 171.098734h1.296202z m75.827848-4.536708c77.772152-13.610127 149.711392-49.903797 206.744304-104.344304-29.164557-22.035443-46.01519-37.589873-80.364557-51.848102-25.275949 59.625316-82.956962 112.76962-126.379747 156.192406z m-46.01519 4.536708c54.440506-46.01519 97.21519-104.992405 124.435443-171.098734-39.534177-13.610127-59.625316-21.387342-103.696202-22.683544l-22.035443 193.782278h1.296202z m-31.10886-751.149367c-46.663291 38.886076-62.865823 88.789873-91.382279 147.118988 36.293671 11.665823 53.144304 17.498734 93.326582 18.794936v-165.913924h-1.944303zM887.898734 406.035443h-145.174683c-1.296203 61.56962-12.313924 98.511392-31.756962 152.303798 37.589873 15.55443 57.032911 33.053165 88.789873 57.681012 56.38481-62.865823 84.901266-119.898734 88.141772-209.98481z m-375.898734 427.746835c-244.334177 0-442.005063-197.670886-442.005063-442.005063S267.665823-50.227847999999994 512-50.227847999999994s442.005063 197.670886 442.005063 442.005063S756.334177 833.782278 512 833.782278z" horiz-adv-x="1024" /> | ||
| 166 | + | ||
| 167 | + <glyph glyph-name="face-surprised" unicode="" d="M485.656116-128C221.592397-128 6.762016 86.81718000000001 6.762016 350.87649799999997s214.830381 478.867697 478.8941 478.867697c264.041716 0 478.854495-214.812779 478.854495-478.867697S749.697832-128 485.656116-128zM485.656116 798.834741c-247.024795 0-447.975846-200.959852-447.975846-447.962644 0-247.002792 200.951051-447.962644 447.975846-447.962644 247.002792 0 447.953843 200.959852 447.953843 447.962644C933.609959 597.8748889999999 732.658908 798.834741 485.656116 798.834741zM352.033458 447.380528c0-30.469398-24.682677-55.147675-55.143274-55.147675-30.451796 0-55.143274 24.678276-55.143274 55.147675 0 30.460597 24.691478 55.138874 55.143274 55.138874C327.350781 502.519402 352.033458 477.845526 352.033458 447.380528zM674.417647 502.519402c-30.460597 0-55.156476-24.678276-55.156476-55.138874 0-30.469398 24.695879-55.147675 55.156476-55.147675 30.451796 0 55.143274 24.678276 55.143274 55.147675C729.560922 477.845526 704.869444 502.519402 674.417647 502.519402zM562.005634 165.30976499999997c0-59.733046-34.192262-108.165484-76.349518-108.165484-42.166057 0-76.36272 48.432438-76.36272 108.165484 0 59.724245 34.196663 108.152282 76.36272 108.152282C527.813371 273.45764699999995 562.005634 225.03400999999997 562.005634 165.30976499999997zM835.631745 793.712503c0 0 12.871605 56.819883 41.959231 85.925112 29.083226 29.096427 69.915916 15.124685 78.492585-8.801097 9.461179-26.385689-2.033053-50.069442-29.092027-56.164202C899.404495 808.463141 874.880237 826.192952 835.631745 793.712503zM916.698651 757.570797c0 0 35.767659 20.576965 64.877288 19.393218 29.136032-1.174946 41.431165-29.144833 33.109728-45.110024-9.192746-17.588993-27.054573-22.966463-43.217788-11.797871C954.979023 731.44034 952.453108 752.721393 916.698651 757.570797z" horiz-adv-x="1024" /> | ||
| 168 | + | ||
| 169 | + <glyph glyph-name="set" unicode="" d="M466.496-126.62400000000002l-1.056 0.064c-25.184 2.08-47.456 22.368-51.744 47.232l-17.344 102.4c-0.672 4.064-6.624 11.04-10.56 12.416l-30.336 12.416c-5.44 2.496-15.424 0.8-17.472-0.64l-84.992-60.16c-19.584-14.016-51.456-12.736-70.08 3.168l-64.288 64c-17.952 20.48-19.488 50.592-4.736 71.296l60.416 84.672c2.176 3.072 2.784 11.52 1.024 15.04l0 0c0 0-1.664 3.104-7.264 16.608-6.176 14.848-6.816 17.44-6.816 17.44-0.992 3.04-7.456 8.672-11.36 9.376l-102.56 17.248c-25.152 4.288-45.44 26.624-47.168 52L0 428.288c2.112 27.36 22.496 49.6 47.52 53.728l102.528 17.344c4.128 0.672 11.008 6.56 12.416 10.496l12.608 30.336c2.368 4.992 1.6 14.112-0.8 17.504L113.984 642.24C99.36 662.88 100.704 692.896 117.056 712.192l64.416 64.224c20.672 18.208 51.296 18.784 71.36 4.64l84.992-60.16c1.952-1.376 13.28-2.016 15.04-1.056 0.384 0.192 2.528 1.344 16.704 7.168 14.24 5.92 16.576 6.592 16.576 6.592 3.84 1.184 9.504 7.648 10.144 11.424l17.44 102.4c4.32 25.152 26.752 45.376 52.128 47.104l90.528 0.064c27.328-2.112 49.632-22.368 53.952-47.232l17.344-102.432c0.672-4.064 6.656-11.04 10.624-12.48l30.304-12.352c6.24-2.784 15.456-0.8 17.44 0.608l85.024 60.16c19.52 14.016 51.392 12.704 70.08-3.136l64.288-64.032c17.952-20.48 19.456-50.56 4.736-71.264l-60.416-84.672c-2.208-3.136-2.848-11.616-1.056-15.04 0.16-0.352 1.376-2.56 7.232-16.672 5.856-14.112 6.592-16.512 6.592-16.512 1.248-4.032 7.712-9.6 11.648-10.304l102.56-17.248c25.152-4.224 45.44-26.592 47.168-52l0.096-90.304c-2.112-27.392-22.528-49.6-47.552-53.728l-102.528-17.376c-4.128-0.672-10.944-6.496-12.32-10.432l-12.736-30.432c-2.336-4.928-1.568-14.112 0.832-17.472l60.288-84.512c14.624-20.736 13.216-50.816-3.232-70.048l-64.192-64.096c-11.328-9.92-24.64-14.72-38.784-14.72l0 0c-11.904 0-23.52 3.552-32.704 10.016l-84.992 60.16c-1.952 1.408-13.312 2.016-15.072 1.056-0.288-0.16-2.432-1.312-16.608-7.2-14.08-5.792-16.384-6.496-16.384-6.496-4.16-1.28-9.792-7.776-10.432-11.52l-17.408-102.4c-4.352-25.152-26.72-45.344-52.032-47.104L466.496-126.62400000000002zM347.84 100.60799999999995c10.368 0 20.192-2.112 28.48-6.112l27.648-11.296c20.416-7.072 38.976-28.992 42.848-51.584l17.344-102.336c0.288-1.6 3.136-4.32 5.056-4.832l87.296 0.064c-0.032 0.064 3.04 2.944 3.328 4.672l17.408 102.368c3.872 22.656 23.328 44.832 45.28 51.584 0 0 0 0 0 0-0.096 0 2.976 1.152 12.448 5.056 9.472 3.936 12.384 5.248 13.12 5.568 18.208 9.6 49.44 8.032 67.776-4.96l84.928-60.16c0.192-0.128 1.312-0.64 3.104-0.64l0 0c2.048 0 3.52 0.672 3.872 0.96l61.536 61.408 0 0c-0.16 0 0.064 4.416-0.992 5.952l-60.224 84.448c-13.248 18.624-15.68 47.168-5.792 67.872l11.648 27.84c6.944 19.968 29.408 38.912 51.68 42.496l102.464 17.376c1.824 0.384 4.736 3.648 4.864 5.408L972.8 428.288l0 0c-0.096 0-2.88 3.072-4.576 3.424l-102.72 17.28c-23.168 4.032-44.896 22.976-51.776 45.056l0 0c-0.032 0-1.216 3.04-5.12 12.512-3.968 9.568-5.28 12.512-5.632 13.248-10.24 19.36-8.288 48.736 4.96 67.456L868.448 672c0.96 1.408 0.736 5.6-0.384 6.912l-61.408 61.184c0.704-0.8-0.768-0.192-2.848-0.192-1.728 0-2.784-0.416-3.008-0.576l-85.024-60.16c-17.824-12.8-47.776-15.36-68-5.664l-27.712 11.296c-20.512 7.2-39.04 29.088-42.88 51.584l-17.344 102.336c-0.288 1.76-3.616 4.704-5.504 4.864L467.616 843.52c0-0.064-3.104-2.944-3.392-4.672l-17.408-102.336c-3.84-22.624-23.264-44.8-45.216-51.584 0-0.032-3.008-1.184-12.416-5.088-9.568-3.936-12.512-5.248-13.248-5.568-17.984-9.568-49.344-8.032-67.744 4.992L223.264 739.36c-0.416 0.32-6.176 0.288-6.848-0.224L154.688 677.6320000000001c0 0 0 0 0 0 0.224 0 0.032-4.384 1.056-5.856L216 587.264c13.312-18.752 15.744-47.296 5.76-67.968l-11.52-27.648c-6.976-20.032-29.472-38.944-51.776-42.624L55.968 431.68c-1.824-0.384-4.704-3.648-4.832-5.408l0.096-86.56 0 0c0.096 0 2.912-3.104 4.608-3.424l102.656-17.28c23.04-4 44.704-22.912 51.712-44.928 0.256-0.736 1.44-3.84 5.088-12.64 3.68-8.832 5.024-11.84 5.472-12.736 10.592-20.288 8.672-48.96-4.672-67.904l-60.512-84.768c-0.96-1.408-0.736-5.632 0.384-6.912l61.408-61.184c-0.736 0.8 0.736 0.224 2.816 0.192 1.728 0 2.784 0.416 3.008 0.576l84.992 60.16C318.624 96.32000000000005 333.088 100.60799999999995 347.84 100.60799999999995zM512.032 133.856c-138.336 0-250.848 112.224-250.848 250.176 0 137.92 112.544 250.144 250.848 250.144s250.848-112.224 250.848-250.144C762.88 246.08000000000004 650.336 133.856 512.032 133.856zM512.032 583.136c-110.08 0-199.648-89.312-199.648-199.104s89.568-199.136 199.648-199.136 199.648 89.344 199.648 199.136S622.112 583.136 512.032 583.136z" horiz-adv-x="1024" /> | ||
| 170 | + | ||
| 171 | + <glyph glyph-name="template" unicode="" d="M734 172.89999999999998v82.8h-59.9v-37l-35.7-9.7 15.7-57.8zM674.1 419.3H734v-81.8h-59.9zM734 600.2l-95.6-26 15.7-57.8 20 5.4v-20.7H734zM866.1 131.29999999999995v-37l-35.7-9.7 7.9-28.9 7.8-28.9 79.9 21.7v82.8h-29.9zM740.9 60.299999999999955L651.4 36l7.9-28.9 7.8-29 89.5 24.4-7.8 28.9zM740.9 781.7l-89.5-24.3 7.9-28.9 7.8-28.9 89.5 24.3-7.8 28.9zM830.4 806l7.9-28.9 7.8-28.9 20 5.5v-20.8H926V832zM866.1 612.6v-120.3H926V612.6h-29.9zM866.1 371.9v-120.3H926V371.9h-29.9zM541.9 665.6l35.7 9.7-7.8 28.9-7.8 28.9-50-13.6L98 832v-783.5l384.1-104.3L512-64l29.9 8.1 35.7 9.7-7.8 28.9-7.8 28.9-20-5.4V120.79999999999995l35.7 9.7-15.7 57.8-20-5.4V486l35.7 9.7-15.7 57.8-20-5.4V665.6z m-59.8-659.4l-324.2 88.1V753.7l324.2-88.1V548l-192 52.2v-427.3l192-52.2v-114.5z m0 360.9V182.79999999999995l-132.2 35.9V521.8l132.2-35.9v-118.8z" horiz-adv-x="1024" /> | ||
| 172 | + | ||
| 173 | + <glyph glyph-name="app" unicode="" d="M432.022 818.946h-376.324c-6.627 0-12.078-5.45-12.078-12.078v-376.324c0-6.627 5.45-12.078 12.078-12.078h376.324c6.627 0 12.078 5.45 12.078 12.078v376.473c0 6.627-5.45 11.93-12.078 11.93zM391.517 471.196h-295.169v295.169h295.021v-295.169zM976.847 635.717l-211.95 211.95c-8.837 8.837-23.124 8.837-31.963 0l-211.95-211.95c-8.837-8.837-8.837-23.124 0-31.963l211.95-212.098c8.837-8.837 23.124-8.837 31.963 0l211.95 211.95c8.837 8.987 8.837 23.271 0 32.109zM432.022 313.45000000000005h-376.324c-6.627 0-12.078-5.45-12.078-12.078v-376.324c0-6.627 5.45-12.078 12.078-12.078h376.324c6.627 0 12.078 5.45 12.078 12.078v376.473c0 6.627-5.45 11.93-12.078 11.93zM391.517-34.15499999999997h-295.169v295.021h295.021v-295.021zM932.511 313.45000000000005h-376.324c-6.627 0-12.078-5.45-12.078-12.078v-376.324c0-6.627 5.45-12.078 12.078-12.078h376.324c6.627 0 12.078 5.45 12.078 12.078v376.473c0 6.627-5.45 11.93-12.078 11.93zM891.859-34.15499999999997h-295.021v295.021h295.021v-295.021z" horiz-adv-x="1024" /> | ||
| 174 | + | ||
| 175 | + <glyph glyph-name="template-1" unicode="" d="M512 384zM43.52 601.6l409.6-176.64c58.88-30.72 110.08 0 110.08 0l414.72 174.08 2.56 2.56c10.24 5.12 15.36 15.36 15.36 28.16 0 15.36-10.24 28.16-23.04 30.72L563.2 837.12c-56.32 23.04-97.28 0-97.28 0L46.08 660.48c-12.8-5.12-20.48-17.92-20.48-30.72s7.68-23.04 17.92-28.16z m0 0M512 222.72000000000003c-2.56 0-7.68 0-10.24 2.56l-486.4 215.04c-12.8 5.12-17.92 20.48-12.8 33.28 5.12 12.8 20.48 17.92 33.28 12.8L512 276.48 988.16 486.4c12.8 5.12 28.16 0 33.28-12.8 5.12-12.8 0-28.16-12.8-33.28l-486.4-215.04c-2.56-2.56-7.68-2.56-10.24-2.56zM512 71.67999999999995c-2.56 0-7.68 0-10.24 2.56l-486.4 215.04c-12.8 5.12-17.92 20.48-12.8 33.28 5.12 10.24 20.48 17.92 33.28 10.24L512 125.44000000000005 988.16 332.79999999999995c12.8 5.12 28.16 0 33.28-12.8 5.12-12.8 0-28.16-12.8-33.28l-486.4-215.04H512zM512-79.36000000000001c-2.56 0-7.68 0-10.24 2.56l-486.4 215.04c-12.8 5.12-17.92 20.48-12.8 33.28 5.12 12.8 20.48 17.92 33.28 12.8L512-25.600000000000023l476.16 209.92c12.8 5.12 28.16 0 33.28-12.8 5.12-12.8 0-28.16-12.8-33.28l-486.4-215.04c-2.56-2.56-7.68-2.56-10.24-2.56z" horiz-adv-x="1024" /> | ||
| 176 | + | ||
| 177 | + <glyph glyph-name="home" unicode="" d="M824.084343-40.42033900000001H232.898863c-74.604138 0-85.85232 28.334325-85.852321 49.997718l-0.584307 5.314029V447.645552h48.806589v-402.916582c0-25.547863 13.548574-36.343743 37.629015-36.343743h568.020898c25.928532 0 27.978215 6.220678 27.978215 37.84391V447.585177l48.806589 0.118704c0.022513-14.346753 0-382.76666 0-433.098999 0-38.130436-12.726859-54.765301-51.858088-54.765301l-1.76111-0.25992zM1012.470921 493.103884C849.773422 615.120868 687.101505 737.137853 524.404006 859.153814c-6.207375 4.659113-18.433838 4.659113-24.641213 0C337.077573 737.137853 174.393377 615.120868 11.696902 493.103884c-24.856108-18.635429-0.572028-61.044308 24.642236-42.13361A15995638.709915 15995638.709915 0 0 1 512.025071 807.737794c0.988514-0.715291 1.644453-1.144056 2.823302-2.037403 18.040888-13.524015 36.057217-27.036773 54.073546-40.560788 58.291614-43.718711 116.583229-87.437421 174.874843-131.143852 81.33647-61.008492 162.696476-122.015961 244.033969-183.024454 25.212218-18.911722 49.496298 23.497157 24.64019 42.132587z" horiz-adv-x="1024" /> | ||
| 178 | + | ||
| 179 | + <glyph glyph-name="female" unicode="" d="M774.4 800c-48 35.2-108.8 51.2-172.8 51.2-105.6 0-208-51.2-268.8-150.4-89.6-134.4-57.6-313.6 60.8-416l-32-51.2-188.8 121.6S128 384 108.8 352c-22.4-35.2 22.4-64 22.4-64l188.8-121.6-105.6-163.2s-19.2-32 16-51.2c38.4-22.4 57.6 12.8 57.6 12.8l102.4 160 185.6-121.6s48-28.8 70.4 6.4c19.2 28.8-25.6 57.6-25.6 57.6L432 192l32 48c44.8-22.4 92.8-32 137.6-32 105.6 0 208 51.2 268.8 150.4 96 147.2 51.2 345.6-96 441.6z m35.2-400c-44.8-67.2-118.4-108.8-201.6-108.8-44.8 0-92.8 12.8-131.2 38.4-112 73.6-147.2 220.8-73.6 332.8 44.8 64 121.6 105.6 201.6 108.8 44.8 0 92.8-12.8 131.2-38.4 112-73.6 147.2-220.8 73.6-332.8z" horiz-adv-x="1024" /> | ||
| 180 | + | ||
| 181 | + <glyph glyph-name="male" unicode="" d="M889.6 800h-240s-35.2 0-38.4-41.6c0-19.2 16-38.4 38.4-38.4h140.8l-179.2-179.2C556.8 582.4 489.6 608 416 608 240 608 96 464 96 288s144-320 320-320 320 144 320 320c0 73.6-25.6 140.8-67.2 195.2l179.2 179.2v-140.8c0-22.4 19.2-38.4 38.4-38.4 22.4 0 38.4 19.2 38.4 41.6V764.8h3.2C924.8 800 889.6 800 889.6 800zM416 48c-131.2 0-236.8 105.6-236.8 236.8 0 131.2 105.6 236.8 236.8 236.8s236.8-105.6 236.8-236.8c0-131.2-105.6-236.8-236.8-236.8z" horiz-adv-x="1024" /> | ||
| 182 | + | ||
| 183 | + <glyph glyph-name="tread" unicode="" d="M860.8 172.79999999999995l6.4-57.6-6.4 57.6c12.8 0 25.6 3.2 35.2 12.8 6.4 9.6 6.4 22.4 3.2 32l57.6 12.8-57.6-12.8L800 553.6c-6.4 28.8-25.6 51.2-48 64-9.6 6.4-22.4 9.6-32 9.6H182.4c-22.4 3.2-41.6-6.4-51.2-25.6-6.4-9.6-6.4-19.2-9.6-28.8v-342.4c0-19.2 9.6-38.4 28.8-48 6.4-3.2 12.8-6.4 19.2-6.4h192l19.2-25.6 147.2-188.8c6.4-9.6 19.2-12.8 28.8-9.6 16 3.2 25.6 19.2 22.4 35.2l-9.6 118.4-6.4 67.2h297.6z m-233.6-57.6l9.6-128c3.2-28.8-9.6-54.4-28.8-73.6-35.2-32-92.8-28.8-124.8 6.4l-156.8 195.2H179.2c-19.2 0-38.4 6.4-57.6 16-35.2 19.2-57.6 57.6-57.6 99.2V572.8c0 19.2 6.4 38.4 16 57.6 19.2 38.4 57.6 60.8 99.2 54.4h537.6c67.2-3.2 121.6-48 137.6-112l102.4-339.2c6.4-28.8 3.2-57.6-12.8-80-19.2-22.4-48-38.4-76.8-38.4h-240zM304 627.2v-451.2h57.6V627.2H304z" horiz-adv-x="1024" /> | ||
| 184 | + | ||
| 185 | + <glyph glyph-name="praise" unicode="" d="M860.8 595.2h-297.6l6.4 67.2 9.6 118.4c3.2 16-6.4 32-22.4 35.2-9.6 3.2-22.4 0-28.8-9.6l-147.2-188.8-19.2-25.6h-192c-6.4 0-12.8-3.2-19.2-6.4-19.2-9.6-28.8-28.8-28.8-48v-342.4c0-9.6 3.2-22.4 9.6-28.8 9.6-19.2 28.8-28.8 48-25.6h537.6c12.8 0 22.4 3.2 32 9.6 25.6 12.8 44.8 35.2 48 64l102.4 336 57.6-12.8-57.6 12.8c3.2 9.6 0 22.4-3.2 32-9.6 6.4-22.4 12.8-35.2 12.8l6.4 57.6-6.4-57.6z m-233.6 57.6h240c28.8 0 57.6-12.8 76.8-38.4 16-22.4 19.2-54.4 12.8-80l-102.4-339.2c-16-64-70.4-108.8-137.6-112H179.2c-41.6-3.2-80 19.2-99.2 54.4-9.6 19.2-16 38.4-16 57.6V537.6c0 41.6 22.4 80 57.6 99.2 19.2 9.6 38.4 12.8 57.6 16h144L480 848c32 35.2 89.6 38.4 124.8 6.4 19.2-19.2 32-44.8 28.8-73.6l-6.4-128z m-323.2-512h57.6V592H304v-451.2z" horiz-adv-x="1024" /> | ||
| 186 | + | ||
| 187 | + <glyph glyph-name="rmb" unicode="" d="M511.998465 896C229.23338 896 0.004605 666.769178 0.004605 384.001023c0-282.773272 229.227752-512.001023 511.99386-512.001023 282.769178 0 511.994883 229.227752 511.994883 512.001023C1023.994372 666.769178 794.767644 896 511.998465 896zM511.998465-91.59690499999999c-262.660188 0-475.589742 212.930577-475.589742 475.597929 0 262.663258 212.929554 475.594859 475.589742 475.594859 262.663258 0 475.590765-212.9316 475.590765-475.594859C987.590254 121.33469500000001 774.662747-91.59690499999999 511.998465-91.59690499999999zM738.742652 301.137781L544.432155 301.137781l0 69.780273 194.310497 0c17.835204 0 32.249495 14.43885 32.249495 32.220842 0 17.784038-14.414291 32.19526-32.249495 32.19526L589.7462 435.334155l149.620669 209.579249c8.916067 15.397688 3.63069 35.099403-11.82021 43.988864-15.398712 8.891508-35.097356 3.629667-44.017516-11.793604L512.187777 437.098335 340.84334 677.108664c-8.864902 15.423271-28.617781 20.685111-44.016493 11.793604-15.395642-8.889461-20.685111-28.590152-11.82021-43.988864l149.622716-209.579249L285.628808 435.334155c-17.781992 0-32.245402-14.411221-32.245402-32.19526 0-17.781992 14.46341-32.220842 32.245402-32.220842l194.310497 0 0-69.780273L285.628808 301.137781c-17.781992 0-32.245402-14.413268-32.245402-32.19526s14.46341-32.220842 32.245402-32.220842l194.310497 0 0-132.435265c0-17.780969 14.46341-32.19526 32.248472-32.19526 17.835204 0 32.245402 14.414291 32.245402 32.19526L544.433178 236.72065499999997l194.310497 0c17.835204 0 32.249495 14.43885 32.249495 32.220842S756.577856 301.137781 738.742652 301.137781" horiz-adv-x="1024" /> | ||
| 188 | + | ||
| 189 | + <glyph glyph-name="more" unicode="" d="M224 288c-52.928 0-96 43.072-96 96s43.072 96 96 96 96-43.072 96-96-43.072-96-96-96z m288 0c-52.928 0-96 43.072-96 96s43.072 96 96 96 96-43.072 96-96-43.072-96-96-96z m288 0c-52.928 0-96 43.072-96 96s43.072 96 96 96 96-43.072 96-96-43.072-96-96-96z" horiz-adv-x="1024" /> | ||
| 190 | + | ||
| 191 | + <glyph glyph-name="camera" unicode="" d="M884.3 648.6H704.2L679.5 698l-0.2 0.4c-1.9 3.6-3.6 6.9-5.1 9.9-12 23.4-21.5 41.9-54.1 41.9H416.7c-32.9 0-43.7-21.3-55.1-43.8-1.3-2.6-2.7-5.3-4.2-8.1l-24.8-49.7H152.4c-34 0-61.7-27.7-61.7-61.7v-488c0-34 27.7-61.7 61.7-61.7h731.9c34 0 61.7 27.7 61.7 61.7v488c0 34-27.7 61.7-61.7 61.7zM904 98.89999999999998c0-10.8-8.8-19.7-19.7-19.7H152.4c-10.8 0-19.7 8.8-19.7 19.7v488c0 10.8 8.8 19.7 19.7 19.7h206.1l36.2 72.5c1.5 2.9 2.9 5.7 4.3 8.3 10.6 20.8 11.1 20.8 17.7 20.8H620c4.6 0 5.8-0.6 5.8-0.6 2-1.2 7.2-11.2 10.9-18.5 1.6-3.1 3.3-6.5 5.3-10.1l36.2-72.4h206.1c10.8 0 19.7-8.8 19.7-19.7v-488zM525.5 565.5c-123.5 0-223.6-100.1-223.6-223.6S402 118.20000000000005 525.5 118.20000000000005s223.7 100.1 223.7 223.7c0 123.5-100.2 223.6-223.7 223.6z m0-402.5c-98.8 0-178.9 80.1-178.9 178.9 0 98.8 80.1 178.9 178.9 178.9 98.8 0 178.9-80.1 178.9-178.9 0-98.8-80.1-178.9-178.9-178.9z m246 402.5v-44.7H861v44.7h-89.5z" horiz-adv-x="1024" /> | ||
| 192 | + | ||
| 193 | + <glyph glyph-name="cart-simple" unicode="" d="M235.097303 196.866982C247.384597 160.417152 286.382106 132.37606800000003 324.772759 132.37606800000003L861.658537 132.37606800000003 880.429732 132.37606800000003 885.649214 150.54185399999994 1009.08775 580.154957C1021.388907 622.967661 993.187631 660.786325 949.051586 660.786325L424.585365 660.786325C410.791718 660.786325 399.609756 649.5207379999999 399.609756 635.623932 399.609756 621.727125 410.791718 610.461538 424.585365 610.461538L949.051586 610.461538C959.924 610.461538 964.161052 604.779539 961.106394 594.148171L837.667859 164.53506800000002 861.658537 182.70085500000005 324.772759 182.70085500000005C307.742153 182.70085500000005 287.789837 197.04752900000005 282.395194 213.05054900000005L73.600164 832.433664C69.16437 845.592294 54.980454 852.636656 41.919502 848.167687 28.858551 843.698719 21.86648 829.408727 26.302275 816.250097L235.097303 196.866982ZM399.609756-6.017094000000043C399.609756 49.57012899999995 354.881911 94.63247799999999 299.707317 94.63247799999999 244.532723 94.63247799999999 199.804878 49.57012899999995 199.804878-6.017094000000043 199.804878-61.604318000000035 244.532723-106.66666699999996 299.707317-106.66666699999996 354.881911-106.66666699999996 399.609756-61.604318000000035 399.609756-6.017094000000043ZM249.756098-6.017094000000043C249.756098 21.77651800000001 272.120021 44.30769299999997 299.707317 44.30769299999997 327.294613 44.30769299999997 349.658537 21.77651800000001 349.658537-6.017094000000043 349.658537-33.810704999999984 327.294613-56.34187899999995 299.707317-56.34187899999995 272.120021-56.34187899999995 249.756098-33.810704999999984 249.756098-6.017094000000043ZM924.097562-6.017094000000043C924.097562 49.57012899999995 879.369715 94.63247799999999 824.195121 94.63247799999999 769.020529 94.63247799999999 724.292683 49.57012899999995 724.292683-6.017094000000043 724.292683-61.604318000000035 769.020529-106.66666699999996 824.195121-106.66666699999996 879.369715-106.66666699999996 924.097562-61.604318000000035 924.097562-6.017094000000043ZM774.243902-6.017094000000043C774.243902 21.77651800000001 796.607825 44.30769299999997 824.195121 44.30769299999997 851.782419 44.30769299999997 874.146342 21.77651800000001 874.146342-6.017094000000043 874.146342-33.810704999999984 851.782419-56.34187899999995 824.195121-56.34187899999995 796.607825-56.34187899999995 774.243902-33.810704999999984 774.243902-6.017094000000043Z" horiz-adv-x="1024" /> | ||
| 194 | + | ||
| 195 | + <glyph glyph-name="face-cry" unicode="" d="M1024 384C1024 666.769792 794.769792 896 512 896 229.230208 896 0 666.769792 0 384 0 101.23020799999995 229.230208-128 512-128 629.410831-128 740.826187-88.33104600000001 830.768465-16.686661999999956 841.557579-8.092490999999995 843.33693 7.620766000000003 834.742758 18.409879000000046 826.148587 29.198990999999978 810.43533 30.978341999999998 799.646219 22.384173000000033 718.470035-42.277495000000044 618.001779-78.04878099999996 512-78.04878099999996 256.817504-78.04878099999996 49.951219 128.81750399999999 49.951219 384 49.951219 639.182496 256.817504 846.048781 512 846.048781 767.182496 846.048781 974.048781 639.182496 974.048781 384 974.048781 296.507166 949.714859 212.66323599999998 904.470807 140.039307 897.177109 128.33175700000004 900.755245 112.92820300000005 912.462793 105.63450699999999 924.170342 98.34080900000004 939.573897 101.91894200000002 946.867595 113.62649199999998 997.013826 194.11920399999997 1024 287.101621 1024 384ZM337.170731 396.487806C371.654852 396.487806 399.609756 424.442709 399.609756 458.926829 399.609756 493.41095 371.654852 521.365854 337.170731 521.365854 302.686611 521.365854 274.731708 493.41095 274.731708 458.926829 274.731708 424.442709 302.686611 396.487806 337.170731 396.487806ZM711.804879 396.487806C746.288998 396.487806 774.243902 424.442709 774.243902 458.926829 774.243902 493.41095 746.288998 521.365854 711.804879 521.365854 677.320757 521.365854 649.365854 493.41095 649.365854 458.926829 649.365854 424.442709 677.320757 396.487806 711.804879 396.487806ZM352.788105 191.21547499999997C396.165222 225.91716899999994 453.151987 246.639629 524.487806 246.639629 595.823622 246.639629 652.810387 225.91716899999994 696.187505 191.21547499999997 722.700531 170.00505399999997 738.882517 148.42907300000002 746.631548 132.931012 752.800254 120.59359800000004 747.799529 105.59142399999996 735.462114 99.42271600000004 723.124702 93.25401 708.122526 98.25473499999998 701.953818 110.59214899999995 701.03616 112.42746499999998 698.492224 116.61747600000001 694.165854 122.38597100000004 686.602473 132.47047699999996 676.927317 142.654852 664.983226 152.21012499999995 630.311565 179.947456 584.273939 196.68840999999998 524.487806 196.68840999999998 464.70167 196.68840999999998 418.664045 179.947456 383.992384 152.21012499999995 372.048292 142.654852 362.373137 132.47047699999996 354.809756 122.38597100000004 350.483386 116.61747600000001 347.93945 112.42746499999998 347.021792 110.59214899999995 340.853084 98.25473499999998 325.850908 93.25401 313.513495 99.42271600000004 301.176081 105.59142399999996 296.175356 120.59359800000004 302.344062 132.931012 310.093092 148.42907300000002 326.275078 170.00505399999997 352.788105 191.21547499999997Z" horiz-adv-x="1024" /> | ||
| 196 | + | ||
| 197 | + <glyph glyph-name="face-smile" unicode="" d="M1024 384C1024 666.769792 794.769792 896 512 896 229.230208 896 0 666.769792 0 384 0 101.23020799999995 229.230208-128 512-128 629.410831-128 740.826187-88.33104600000001 830.768465-16.686661999999956 841.557579-8.092490999999995 843.33693 7.620766000000003 834.742758 18.409879000000046 826.148587 29.198990999999978 810.43533 30.978341999999998 799.646219 22.384173000000033 718.470035-42.277495000000044 618.001779-78.04878099999996 512-78.04878099999996 256.817504-78.04878099999996 49.951219 128.81750399999999 49.951219 384 49.951219 639.182496 256.817504 846.048781 512 846.048781 767.182496 846.048781 974.048781 639.182496 974.048781 384 974.048781 296.507166 949.714859 212.66323599999998 904.470807 140.039307 897.177109 128.33175700000004 900.755245 112.92820300000005 912.462793 105.63450699999999 924.170342 98.34080900000004 939.573897 101.91894200000002 946.867595 113.62649199999998 997.013826 194.11920399999997 1024 287.101621 1024 384ZM337.170731 396.487806C371.654852 396.487806 399.609756 424.442709 399.609756 458.926829 399.609756 493.41095 371.654852 521.365854 337.170731 521.365854 302.686611 521.365854 274.731708 493.41095 274.731708 458.926829 274.731708 424.442709 302.686611 396.487806 337.170731 396.487806ZM711.804879 396.487806C746.288998 396.487806 774.243902 424.442709 774.243902 458.926829 774.243902 493.41095 746.288998 521.365854 711.804879 521.365854 677.320757 521.365854 649.365854 493.41095 649.365854 458.926829 649.365854 424.442709 677.320757 396.487806 711.804879 396.487806ZM352.788105 127.22903299999996C396.165222 92.52733899999998 453.151987 71.80487900000003 524.487806 71.80487900000003 595.823622 71.80487900000003 652.810387 92.52733899999998 696.187505 127.22903299999996 722.700531 148.43945399999996 738.882517 170.01543500000002 746.631548 185.51349500000003 752.800254 197.850908 747.799529 212.85308399999997 735.462114 219.021792 723.124702 225.19049800000005 708.122526 220.18977299999995 701.953818 207.85235799999998 701.03616 206.01704299999994 698.492224 201.82703100000003 694.165854 196.058537 686.602473 185.97402899999997 676.927317 175.78965500000004 664.983226 166.23438299999998 630.311565 138.49705200000005 584.273939 121.75609799999995 524.487806 121.75609799999995 464.70167 121.75609799999995 418.664045 138.49705200000005 383.992384 166.23438299999998 372.048292 175.78965500000004 362.373137 185.97402899999997 354.809756 196.058537 350.483386 201.82703100000003 347.93945 206.01704299999994 347.021792 207.85235799999998 340.853084 220.18977299999995 325.850908 225.19049800000005 313.513495 219.021792 301.176081 212.85308399999997 296.175356 197.850908 302.344062 185.51349500000003 310.093092 170.01543500000002 326.275078 148.43945399999996 352.788105 127.22903299999996Z" horiz-adv-x="1024" /> | ||
| 198 | + | ||
| 199 | + <glyph glyph-name="survey" unicode="" d="M722.355804 849.454545C761.006291 849.454545 792.380951 818.166023 792.380951 779.627344L792.380951 437.500928 799.081094 453.813218 401.874746 51.22138 418.539682 58.181818 138.070006 58.181818C99.387643 58.181818 68.063492 89.328555 68.063492 127.771428L68.063492 872.727273 44.698413 849.454545 722.355804 849.454545ZM21.333333 896 21.333333 872.727273 21.333333 127.771428C21.333333 63.604277 73.59726 11.636363 138.070006 11.636363L418.539682 11.636363 428.337293 11.636363 435.204619 18.596802 832.410967 421.18864 839.11111 427.979625 839.11111 437.500928 839.11111 779.627344C839.11111 843.859757 786.827324 896 722.355804 896L44.698413 896 21.333333 896ZM775.859347 307.365395 759.337741 290.90909 775.859347 274.452787 869.319663 181.361879 885.841269 164.905574 902.362876 181.361879 972.458114 251.18006 988.979721 267.636363 972.458114 284.092668 878.997796 377.183575 862.47619 393.639878 845.954583 377.183575 775.859347 307.365395ZM845.954583 344.27097 939.414901 251.18006 939.414901 284.092668 869.319663 214.274485 902.362876 214.274485 808.902558 307.365395 808.902558 274.452787 878.997796 344.27097 845.954583 344.27097ZM518.843473 51.365395 513.841133 46.382827 512.453734 39.473248 489.088655-76.890387 482.215251-111.121568 516.58227-104.275332 633.407665-81.002605 640.344663-79.620689 645.347004-74.638121 902.362876 181.361879 918.884482 197.818182 902.362876 214.274485 808.902558 307.365395 792.380951 323.821698 775.859347 307.365395 518.843473 51.365395ZM775.859347 274.452787 869.319663 181.361879 869.319663 214.274485 612.303791-41.725515 624.243127-35.361033 507.41773-58.633758 534.911345-86.018703 558.276425 30.344934 551.886686 18.452787 808.902558 274.452787 775.859347 274.452787ZM426.576706 298.269073C444.201086 298.269073 458.488469 284.053815 458.488469 266.500753L458.488469 258.086116C458.488469 240.540958 444.323959 226.317797 426.576706 226.317797L426.576706 226.317797C408.952326 226.317797 394.664943 240.533054 394.664943 258.086116L394.664943 266.500753C394.664943 284.045911 408.829453 298.269073 426.576706 298.269073L426.576706 298.269073ZM278.349205 552.435127C278.349205 552.435127 280.851125 530.485568 305.477133 530.485568 330.103138 530.485568 331.559155 552.435127 331.559155 552.435127 329.927383 623.508937 362.988497 657.25782 430.67155 653.905282 475.722639 648.839223 499.06407 623.508937 500.624896 577.839917 497.503245 557.501184 480.405116 531.202385 449.969026 499.092521 409.671358 458.489557 389.522524 422.133143 389.522524 390.023279L389.522524 357.093903C389.522524 357.093903 392.614705 337.454532 414.885933 337.454532 437.157161 337.454532 440.249342 357.093903 440.249342 357.093903L440.249342 379.965664C440.249342 406.785969 459.546816 439.044836 498.21271 476.369762 538.652271 513.471183 558.730159 547.369069 558.730159 577.839917 555.395669 662.323878 511.195938 706.353877 425.776235 709.780917 327.515198 711.419936 278.349205 658.971339 278.349205 552.435127Z" horiz-adv-x="1024" /> | ||
| 200 | + | ||
| 201 | + <glyph glyph-name="read" unicode="" d="M335.282306 712.495464C399.587328 713.451107 442.778899 696.882717 470.183494 669.3706540000001 479.127332 660.39174 485.691302 650.857363 490.241971 641.442689 492.795622 636.159553 494.049041 632.438701 494.358795 631.0740940000001L493.723712 636.7409230000001 493.723706 196.90019600000005C493.723706 199.018106 495.816045 203.920655 503.591595 207.36436700000002 511.039185 210.66283299999998 515.68422 209.16527399999995 517.176538 207.906613L500.671543 188.33763 521.297207 203.50146800000005C514.140179 213.23636899999997 499.631258 225.71450900000002 476.134074 237.35914000000002 439.577969 255.475456 390.86048 266.10507900000005 328.491925 266.10508200000004 265.860796 266.10508200000004 219.424582 255.71817999999996 186.827162 237.741581 164.977332 225.69198700000004 152.538132 212.28117299999997 147.220271 201.30886999999996L170.257196 190.14374199999997 151.035786 207.05224299999998C152.884078 209.15336100000002 158.307299 211.80336599999998 167.849005 208.050434 177.092077 204.41496099999995 179.2 199.20011699999998 179.2 196.66445199999998L179.2 497.049743 179.2 636.7409230000001 175.817447 624.023021C177.078908 626.226721 180.088681 630.807811 184.828724 636.965629 192.95423 647.521524 202.792594 658.127492 214.297641 668.007961 247.526453 696.544681 287.381649 713.209056 334.514421 712.495571L335.282306 712.495464ZM335.289387 763.689705C274.661039 764.607483 223.081402 743.04085 180.940156 706.850184 156.32698 685.712527 139.975514 664.470237 131.382553 649.4588249999999L128 643.549699 128 636.7409230000001 128 497.049743 128 196.66445199999998C128 159.26104999999995 164.542545 144.88818300000003 189.478606 173.23524099999997L191.776657 175.84764199999995 193.294121 178.978613C194.07832 180.59664399999997 199.156367 186.07133399999998 211.552092 192.907243 236.030601 206.40648099999999 274.024879 214.905082 328.491925 214.905082 383.221547 214.905079 424.163878 205.97190999999998 453.399258 191.483569 469.376966 183.56540600000005 477.614626 176.48075300000005 480.045882 173.17379000000005L481.844905 170.72677999999996 484.166551 168.768644C511.279708 145.90070000000003 544.923706 160.801293 544.923706 196.90019600000005L544.923712 636.740922 544.288627 642.407751C540.427211 659.419023 529.175531 682.697124 506.45814 705.503602 468.987716 743.1209699999999 412.352271 764.846461 334.521502 763.689812L335.289387 763.689705ZM0 506.026694L0 27.856867999999963C0-8.875636999999983 34.793167-23.40043300000002 61.4635 1.2485080000000153L63.46242 3.315859000000046C65.301149 5.444836000000009 69.655573 9.862312999999972 76.498228 15.820363000000043 88.306297 26.101906999999983 102.566352 36.46294 119.251411 46.17438500000003 167.295691 74.13829099999998 224.90855 90.95018200000004 292.337329 90.95018200000004 358.378978 90.95018000000005 409.459345 71.66956600000003 448.125308 39.64774 461.506042 28.56627400000002 472.380655 16.734758000000056 480.912593 4.997000999999955 485.832384-1.7713730000000396 488.762874-6.741985999999997 489.872527-9.02252199999998 496.058545-21.73590200000001 511.379537-27.027375000000006 524.092917-20.84135500000002 536.806298-14.655337000000031 542.097771 0.6656550000000152 535.91175 13.379036000000042 527.471002 30.726293000000055 509.777717 55.06771800000001 480.782336 79.08069999999998 433.134118 118.54132300000003 370.586889 142.15017999999998 292.337329 142.15018199999997 215.474895 142.15018499999996 149.074727 122.77408400000002 93.495781 90.424668 59.761154 70.78961500000003 36.872315 50.859801999999945 24.713677 36.78188399999999L44.088049 20.048869999999965 26.712598 38.84923500000002C28.162783 40.189508000000046 32.877261 41.946117999999956 40.792576 38.64178100000004 49.035365 35.200736000000006 51.2 30.12989200000004 51.2 27.856867999999963L51.2 506.026694C51.2 520.165184 39.73849 531.626694 25.6 531.626694 11.46151 531.626694 0 520.165184 0 506.026694L0 506.026694ZM696.80221 763.689812C618.971441 764.846461 562.335996 743.1209699999999 524.86557 705.503602 502.148181 682.697124 490.896501 659.419023 487.035083 642.407751L486.4 636.740922 486.400004 196.90019600000005C486.400006 160.801293 520.044004 145.90070000000003 547.157161 168.768644L549.478807 170.72677999999996 551.27783 173.17379000000005C553.709086 176.48075300000005 561.946746 183.56540600000005 577.924452 191.483569 607.159834 205.97190999999998 648.102165 214.905079 702.831787 214.905082 757.298833 214.905082 795.293111 206.40648099999999 819.77162 192.907243 832.167345 186.07133399999998 837.245391 180.59664399999997 838.029591 178.978613L839.547055 175.84764199999995 841.845105 173.23524099999997C866.781167 144.88818300000003 903.323712 159.26104999999995 903.323712 196.66445199999998L903.323712 497.049743 903.323712 636.7409230000001 903.323712 643.549699 899.941158 649.4588249999999C891.348196 664.470237 874.996732 685.712527 850.383556 706.850184 808.24231 743.04085 756.662673 764.607483 696.034325 763.689705L696.80221 763.689812ZM696.809291 712.495571C743.942063 713.209056 783.797257 696.544681 817.026071 668.007961 828.531119 658.127492 838.369481 647.521524 846.494989 636.965629 851.235031 630.807811 854.244804 626.226721 855.506263 624.023021L852.123712 636.7409230000001 852.123712 497.049743 852.123712 196.66445199999998C852.123712 199.20011699999998 854.231635 204.41496099999995 863.474707 208.050434 873.016412 211.80336599999998 878.439633 209.15336100000002 880.287925 207.05224299999998L861.066515 190.14374199999997 884.103441 201.30886999999996C878.785579 212.28117299999997 866.346381 225.69198700000004 844.49655 237.741581 811.89913 255.71817999999996 765.462916 266.10508200000004 702.831785 266.10508200000004 640.463232 266.10507900000005 591.745741 255.475456 555.189638 237.35914000000002 531.692454 225.71450900000002 517.183533 213.23636899999997 510.026502 203.50146800000005L530.652166 188.33763 514.147172 207.906613C515.63949 209.16527399999995 520.284527 210.66283299999998 527.732117 207.36436700000002 535.507665 203.920655 537.600004 199.018106 537.600004 196.90019600000005L537.6 636.7409230000001 536.964917 631.0740940000001C537.274671 632.438701 538.52809 636.159553 541.081741 641.442689 545.63241 650.857363 552.196378 660.39174 561.140218 669.3706540000001 588.544813 696.882717 631.736384 713.451107 696.041406 712.495464L696.809291 712.495571ZM972.799998 506.026694L972.799998 27.856867999999963C972.799998 30.12989200000004 974.964631 35.200736000000006 983.207422 38.64178100000004 991.122737 41.946117999999956 995.837214 40.189508000000046 997.287401 38.84923500000002L979.911949 20.048869999999965 999.286321 36.78188399999999C987.127682 50.859801999999945 964.238844 70.78961500000003 930.504218 90.424668 874.925269 122.77408400000002 808.525103 142.15018499999996 731.662669 142.15018199999997 653.132708 142.15017999999998 590.55104 117.26282200000003 543.127755 75.73800100000005 514.370099 50.55719499999998 496.945662 25.10259599999995 488.705389 7.022771000000034 482.841769-5.842485000000011 488.517717-21.02524200000005 501.382974-26.888862000000017 514.248233-32.752481999999986 529.430987-27.07653300000004 535.294607-14.211275 536.420563-11.740835999999945 539.350332-6.450639000000024 544.25735 0.7178109999999833 552.731727 13.097653000000037 563.54464 25.561581000000047 576.856734 37.21792900000003 615.190044 70.78337499999998 665.901421 90.95018000000005 731.662669 90.95018200000004 799.091447 90.95018200000004 856.704307 74.13829099999998 904.748587 46.17438500000003 921.433645 36.46294 935.6937 26.101906999999983 947.501771 15.820363000000043 954.344425 9.862312999999972 958.698848 5.444836000000009 960.537577 3.315859000000046L962.536497 1.2485080000000153C989.206831-23.40043300000002 1023.999998-8.875636999999983 1023.999998 27.856867999999963L1023.999998 506.026694C1023.999998 520.165184 1012.538487 531.626694 998.399998 531.626694 984.261508 531.626694 972.799998 520.165184 972.799998 506.026694L972.799998 506.026694Z" horiz-adv-x="1024" /> | ||
| 202 | + | ||
| 203 | + <glyph glyph-name="location" unicode="" d="M451.673935-98.39569900000004C478.883834-129.01914699999998 524.254807-128.8089789999999 551.400292-97.92885100000001 553.755808-95.38790800000004 558.821323-89.79676199999994 565.872444-81.84834999999998 577.572838-68.65901699999995 590.597131-53.62432000000001 604.615947-36.99831500000005 644.662065 10.495494000000008 684.708678 61.282182000000034 722.129538 113.35355300000003 759.658524 165.575381 792.492213 216.29072599999995 819.314991 264.54153799999995 868.685946 353.35368300000005 896 430.456574 896 493.714285 896 715.890551 719.301715 896 501.333333 896 283.364952 896 106.666667 715.890551 106.666667 493.714285 106.666667 430.401284 134.05152 353.19426999999996 183.54613 264.23737800000004 210.371803 216.02347099999997 243.193308 165.34812399999998 280.699364 113.16684599999996 318.155192 61.05544999999995 358.239268 10.22578999999996 398.322835-37.31103099999996 412.354743-53.95207300000004 425.391185-69.00072999999998 437.102468-82.20257900000001 444.160087-90.15846599999998 449.230214-95.75492099999997 451.982775-98.73670600000003L451.673935-98.39569900000004ZM486.822684-65.32134799999994C484.281231-62.568254000000024 479.425084-57.207989 472.585916-49.49835900000005 461.135889-36.591016999999965 448.364015-21.84776099999999 434.602351-5.527214999999956 395.275714 41.11192700000004 355.949587 90.98045200000001 319.289224 141.985137 282.808749 192.739548 250.983685 241.87642200000005 225.158316 288.29247799999996 179.388826 370.55419500000005 154.50505 440.709839 154.50505 493.714285 154.50505 688.960095 309.785362 847.238095 501.333333 847.238095 692.881306 847.238095 848.161617 688.960095 848.161617 493.714285 848.161617 440.753978 823.345286 370.701737 777.693969 288.58074899999997 751.873483 242.13293399999998 720.038415 192.96007499999996 683.537446 142.16873799999996 646.912604 91.20503299999996 607.624538 41.38032599999997 568.335977-5.21503800000005 554.587654-21.52024300000005 541.828177-36.24924999999996 530.389289-49.14379699999995 523.556841-56.84571100000005 518.705521-62.20043499999997 516.166694-64.95052599999997 507.543772-74.74891100000002 495.255793-74.80583000000001 487.131524-65.66235300000005L486.822684-65.32134799999994ZM714.955981 428.971194C723.919106 453.372045 728.565658 479.331002 728.565658 505.904762 728.565658 627.091817 632.184774 725.333333 513.29293 725.333333 394.401086 725.333333 298.020202 627.091817 298.020202 505.904762 298.020202 384.717709 394.401086 286.47619 513.29293 286.47619 549.003859 286.47619 583.510052 295.36805300000003 614.373097 312.125591 626.032316 318.456132 630.449257 333.22218 624.238611 345.10648100000003 618.027966 356.99078199999997 603.541579 361.49299399999995 591.882359 355.16245100000003 567.900883 342.14136099999996 541.111735 335.23809500000004 513.29293 335.23809500000004 420.821495 335.23809500000004 345.858586 411.648164 345.858586 505.904762 345.858586 600.161359 420.821495 676.571428 513.29293 676.571428 605.764365 676.571428 680.727273 600.161359 680.727273 505.904762 680.727273 485.192019 677.117041 465.022684 670.154965 446.069408 665.522846 433.459117 671.796821 419.408892 684.168282 414.687349 696.53974 409.965809 710.323861 416.360905 714.955981 428.971194L714.955981 428.971194Z" horiz-adv-x="1024" /> | ||
| 204 | + | ||
| 205 | + <glyph glyph-name="dollar" unicode="" d="M517.565-65.45399999999995c-244.263 0-442.299 198.014-442.299 442.299s198.014 442.299 442.299 442.299c244.263 0 442.299-198.014 442.299-442.299 0-244.263-198.014-442.299-442.299-442.299zM517.565 863.383c-268.751 0-486.564-217.834-486.564-486.564s217.834-486.564 486.564-486.564c268.751 0 486.564 217.834 486.564 486.564 0 268.751-217.834 486.564-486.564 486.564zM497.036 425.349c-18.443 6.957-33.605 16.314-45.238 27.617-11.581 11.306-20.059 23.465-25.468 36.742-5.423 13.177-8.178 26.235-8.178 39.172-0.004 18.194 2.564 34.357 7.846 48.514 5.327 14.231 13.748 25.85 25.468 35.02 11.581 9.167 26.798 15.204 45.482 18.295v-205.52zM534.455 356.13199999999995c16.937-6.756 32.277-14.997 46.035-24.855 13.748-9.678 24.613-21.601 32.929-35.57 8.204-13.909 12.436-30.734 12.622-50.307 0-14.231-1.859-27.907-5.785-40.833-3.858-12.866-9.542-24.531-17.271-34.804-7.691-10.211-17.271-18.443-28.678-24.613-11.328-6.318-24.613-9.678-39.76-10.341v221.377zM534.455 94.18299999999999c29.037 3.318 53.978 11.306 74.785 24.134 20.985 12.866 37.018 30.15 48.281 51.734 11.125 21.535 16.876 46.832 16.937 76.196 0 16.08-1.67 30.377-5.033 42.985-3.318 12.622-8.204 24.15-14.836 34.357-6.739 10.341-14.836 20.189-24.613 29.326-8.853 8.204-19.107 15.957-30.659 23.041-11.328 7.197-22.836 13.706-34.281 19.261-11.581 5.694-21.601 10.516-30.659 14.231v221.377c14.527-3.318 26.662-8.594 36.62-16.192 9.859-7.395 17.766-16.192 23.776-26.384 5.941-10.211 10.341-20.985 12.972-32.345 2.666-11.328 4.026-22.836 3.858-34.097h46.155c0.004 16.314-1.566 32.345-5.327 48.281-3.543 15.957-9.938 30.909-19.107 44.969-8.996 13.909-21.601 26.235-37.684 36.742-16.192 10.521-36.62 18.295-61.318 23.562v49.426h-37.441v-53.316c-23.465-2.624-42.985-8.178-58.595-16.314-15.633-8.204-28.279-18.194-37.684-29.562-9.441-11.328-16.523-23.302-21.226-35.317-4.59-12.062-7.846-23.302-9.316-33.326-1.566-10.211-2.256-18.194-2.115-24.029 0.004-21.601 3.452-40.612 9.863-57.238 6.479-16.523 15.58-30.909 27.178-43.441 11.659-12.436 25.361-23.562 40.833-33.204 15.633-9.678 32.649-18.443 51.098-26.235v-237.329c-18.194 1.984-33.326 7.197-45.094 15.633-11.97 8.369-21.074 19.107-27.714 31.902-6.739 12.972-11.011 27.178-13.363 42.701-2.256 15.58-3.034 31.313-2.115 47.367h-47.803c-1.183-23.776 0.397-46.035 5.033-66.676s12.357-39.03 23.376-55.019c10.892-16.08 25.361-29.037 43.142-39.03 17.847-9.863 39.472-16.08 64.586-18.295v-65.283h37.441v65.283z" horiz-adv-x="1024" /> | ||
| 206 | + | ||
| 207 | + <glyph glyph-name="diamond" unicode="" d="M998.4 526.933333L797.866667 802.133333c-4.266667 6.4-12.8 10.666667-19.2 10.666667L243.2 812.8c0 0-14.933333-2.133333-23.466667-17.066667C194.133333 753.066667 32 512 32 512L21.333333 494.933333l12.8-14.933333L469.333333-27.733333000000016c4.266667-4.266667 6.4-6.4 10.666667-8.533333 6.4-4.266667 32-10.666667 46.933333 0 4.266667 2.133333 6.4 6.4 10.666667 8.533333l409.6 420.266667c10.666667 8.533333 10.666667 25.6 0 34.133333-8.533333 10.666667-23.466667 10.666667-32 0L561.066667 61.86666700000001l153.6 422.4 0 0 251.733333 0c2.133333 0 19.2 0 23.466667 4.266667l2.133333 2.133333C1004.8 497.066667 1006.933333 512 998.4 526.933333zM782.933333 763.733333l-96-226.133333L341.333333 537.6l-85.333333 226.133333L782.933333 763.733333zM221.866667 714.666667l72.533333-179.2-192 0L221.866667 714.666667zM91.733333 488.533333l215.466667 0 138.666667-416L91.733333 488.533333zM503.466667 44.799999999999955l-147.2 443.733333 307.2 0L503.466667 44.799999999999955zM736 535.4666669999999L810.666667 701.866667l119.466667-168.533333L736 533.333333z" horiz-adv-x="1024" /> | ||
| 208 | + | ||
| 209 | + <glyph glyph-name="return" unicode="" d="M927.858848 417.938973L168.863431 417.938973l308.721247 308.86758c11.685133 11.69025 11.435447 30.881334-0.557702 42.868343-11.992125 11.985986-31.18321 12.226462-42.868343 0.536212L75.199191 411.071565c-1.994424-1.662873-3.773953-3.583618-5.294586-5.713119-4.047176-5.373381-6.013971-11.839653-5.9055-18.328437-0.12996-7.794523 2.725064-15.561417 8.595772-21.432125l361.565802-361.744881c11.685133-11.691273 30.876218-11.449773 42.868343 0.535189 11.993149 11.985986 12.242835 31.17707 0.557702 42.868343L168.441828 356.54571799999997l759.417019 0c16.527418 0 29.925566 13.738909 29.925566 30.694069S944.386266 417.938973 927.858848 417.938973z" horiz-adv-x="1024" /> | ||
| 210 | + | ||
| 211 | + <glyph glyph-name="camera-fill" unicode="" d="M512 480C436.515555 480 375.111111 419.712 375.111111 345.6 375.111111 271.48800000000006 436.515555 211.20000000000005 512 211.20000000000005 587.484446 211.20000000000005 648.888887 271.48800000000006 648.888887 345.6 648.888887 419.712 587.484446 480 512 480M512 172.79999999999995C414.808889 172.79999999999995 336 250.15679999999998 336 345.6 336 441.0432 414.808889 518.4 512 518.4 609.210667 518.4 688 441.0432 688 345.6 688 250.15679999999998 609.210667 172.79999999999995 512 172.79999999999995M903.111113 691.2L723.767113 691.2C713.383113 691.2 703.448887 695.2512 696.115554 702.4512L640.792887 756.7488C633.459554 763.9488 623.505779 768 613.141333 768L512 768 410.878222 768C400.494222 768 390.56 763.9488 383.226667 756.7488L327.904 702.4512C320.570667 695.2512 310.616889 691.2 300.252445 691.2L120.888889 691.2C77.866667 691.2 42.666667 656.64 42.666667 614.4L42.666667 76.79999999999995C42.666667 34.559999999999945 77.866667 0 120.888889 0L903.111113 0C946.133333 0 981.333333 34.559999999999945 981.333333 76.79999999999995L981.333333 614.4C981.333333 656.64 946.133333 691.2 903.111113 691.2" horiz-adv-x="1024" /> | ||
| 212 | + | ||
| 213 | + <glyph glyph-name="fire" unicode="" d="M890.059904 352.19948999999997C845.890699 458.956706 840.554889 548.4951550000001 857.396326 618.42714 859.144623 625.686731 860.991676 631.9776790000001 862.858846 637.425182 863.763607 640.064841 865.906573 645.659889 866.16406 646.532651L880.890349 696.448108 833.062903 675.9309969999999C832.106692 675.5208 830.618069 674.894716 827.426684 673.550492 824.667648 672.380966 822.310677 671.354022 819.868514 670.244809 813.291441 667.2575449999999 807.049466 664.090938 800.697749 660.4128450000001 784.089623 650.795565 768.486253 638.656896 753.86285 623.033596 727.630498 595.007563 706.526618 557.766355 691.78157 509.713231 675.041103 455.157161 671.516484 411.46006 673.004574 347.939834 673.477918 327.73476900000003 673.463923 322.197583 672.83965 318.324215 673.779618 324.156339 684.455526 333.67819899999995 696.104608 329.19567600000005 693.056849 330.36844199999996 685.695898 339.012828 676.314007 361.368339 660.550914 398.92921 646.834249 460.170272 636.817284 549.350468 625.445924 650.588768 630.103925 734.7280519999999 644.646978 801.338628 647.677924 815.221065 650.899934 827.082435 654.086773 836.904609 655.91465 842.538316 657.254607 846.094657 657.880284 847.554385L678.645286 896 628.243642 880.578031C617.409833 877.263087 599.94569 869.52239 578.105438 855.845223 542.547644 833.577626 507.199569 802.385036 474.400401 760.836776 447.596676 726.883228 423.611383 687.30061 403.118547 641.7016189999999 378.907516 587.829195 363.003277 542.798944 353.158029 503.238462 349.274261 487.632585 346.433259 473.323627 344.1945 458.925156 343.334411 453.39353 342.592734 448.063234 341.804612 441.911844 341.502524 439.553997 340.356619 430.329551 340.073506 428.145504 337.596047 409.033293 335.848224 404.35337 329.235273 398.312868 336.081933 404.566848 343.232634 404.098227 346.608002 402.086756 344.852318 403.133013 341.598345 406.493651 337.991853 411.887149 327.030897 428.279226 317.980358 454.883162 313.690598 489.339595 311.250185 508.941598 310.203772 539.08627 310.370048 576.545325 310.480474 601.422138 311.113088 628.122479 312.099068 654.977888 312.481453 665.393013 312.891081 675.105466 313.30045 683.8491750000001 313.545346 689.079919 313.735044 692.813105 313.84201 694.783403L317.55517 763.179488 271.360516 712.604139C270.467691 711.626645 268.852992 709.837042 266.618705 707.326295 262.927895 703.178805 258.823678 698.493751 254.407949 693.3614689999999 241.78797 678.693606 229.164348 663.340425 217.341267 648.004036 211.724185 640.717803 206.411389 633.591345 201.450577 626.6638379999999 176.017063 591.147305 156.617347 555.4025280000001 138.122768 512.155497 90.841957 401.595812 76.97672 299.64870599999995 99.261816 188.13489300000003 126.80821 50.29373899999996 188.553235-37.64422200000001 278.8297-84.690336 344.19104-118.75233700000001 408.837235-128 507.940695-128 525.713007-128 557.977207-125.567138 590.857378-120.46215900000004 641.152493-112.65333099999998 687.496192-99.78932299999997 726.063273-80.59104400000001 738.155853-74.57148800000004 743.07901-59.88870199999997 737.059454-47.79612199999997 731.039898-35.70354299999997 716.357111-30.780384000000026 704.264531-36.79993999999999 670.855859-53.43041900000003 629.092954-65.02289699999994 583.352478-72.12456999999995 552.984316-76.83953499999996 523.228215-79.08327499999996 507.940695-79.08327499999996 416.16215-79.08327499999996 357.934257-70.75375399999996 301.436271-41.310745999999995 224.830174-1.3887230000000272 171.977796 73.88423 147.230072 197.72094500000003 126.99711 298.965952 139.514783 391.004811 183.099329 492.921284 200.282663 533.1021499999999 218.020237 565.784358 241.22153 598.183718 245.831691 604.6215589999999 250.802959 611.289899 256.082244 618.137961 267.31885 632.713596 279.402035 647.409487 291.488864 661.457681 298.732051 669.8762429999999 304.338773 676.1767130000001 307.478705 679.614406L264.997214 697.435142C264.883874 695.347445 264.688038 691.493511 264.43725 686.13688 264.020474 677.234965 263.603959 667.359281 263.215279 656.7726250000001 262.21142 629.430212 261.566827 602.224414 261.453805 576.7624579999999 261.278897 537.3588179999999 262.385015 505.49418 265.148621 483.296209 276.058157 395.668083 322.627019 326.024497 362.226031 362.19561799999997 379.341732 377.829698 384.756649 392.328523 388.584361 421.857186 397.932742 493.974714 407.332926 531.746825 447.736538 621.64966 466.587287 663.594818 488.484326 699.731218 512.795234 730.526996 542.034492 767.565749 573.156162 795.028785 604.068111 814.386984 614.696751 821.043029 624.472062 826.201428 633.124687 830.036563 638.02329 832.207788 641.258688 833.404991 642.556233 833.802016L612.91959 866.825663C608.658554 856.884484 602.686705 838.478616 596.856038 811.772799 581.186705 740.003594 576.231674 650.498985 588.206246 543.890345 607.295279 373.94226100000003 638.819345 298.82556999999997 678.537329 283.542234 701.302332 274.78234499999996 717.731637 289.43566899999996 721.133156 310.5407 722.475759 318.870999 722.489387 324.26340300000004 721.907881 349.08549100000005 720.532565 407.791853 723.691247 446.952173 738.546223 495.36355 751.151827 536.44438 768.544047 567.135763 789.576147 589.605967 809.230566 610.60429 821.725461 617.839716 852.347733 630.9761169999999L842.705318 653.453557 819.246577 660.374464C822.235501 670.505564 813.450321 644.87463 809.839253 629.8801189999999 790.647573 550.1890470000001 796.611315 450.1135 844.8591 333.498332 883.105728 241.056017 874.587669 126.06492400000002 824.002925 61.39712899999995 815.680378 50.75754500000005 817.558709 35.38570000000004 828.198295 27.063153000000057 838.837879 18.740607999999952 854.209724 20.618939999999952 862.532269 31.258523999999966 924.762731 110.81426299999998 934.658528 244.404363 890.059904 352.19948999999997Z" horiz-adv-x="1024" /> | ||
| 214 | + | ||
| 215 | + <glyph glyph-name="more-vertical" unicode="" d="M511.998465 623.681848c40.525995 0 73.386404 35.771715 73.386404 79.892585s-32.860409 79.892585-73.386404 79.892585c-40.524972 0-73.384357-35.771715-73.384357-79.892585S471.47247 623.681848 511.998465 623.681848L511.998465 623.681848zM511.998465 463.893608c-40.524972 0-73.384357-35.772738-73.384357-79.893608 0-44.12087 32.859385-79.892585 73.384357-79.892585 40.525995 0 73.386404 35.772738 73.386404 79.892585C585.384869 428.12087 552.52446 463.893608 511.998465 463.893608L511.998465 463.893608zM511.998465 144.320199c-40.524972 0-73.384357-35.733852-73.384357-79.894631 0-44.119847 32.859385-79.893608 73.384357-79.893608 40.525995 0 73.386404 35.772738 73.386404 79.893608C585.383846 108.58634600000005 552.52446 144.320199 511.998465 144.320199L511.998465 144.320199z" horiz-adv-x="1024" /> | ||
| 216 | + | ||
| 217 | + <glyph glyph-name="cart" unicode="" d="M365.920994 84.618469c-39.030945 0-70.78516-31.754215-70.78516-70.78516s31.754215-70.784136 70.78516-70.784136c39.030945 0 70.784136 31.753191 70.784136 70.784136S404.951939 84.618469 365.920994 84.618469zM365.920994-5.784493999999995c-10.818393 0-19.61985 8.801457-19.61985 19.618826 0 10.818393 8.801457 19.61985 19.61985 19.61985s19.618826-8.801457 19.618826-19.61985C385.540843 3.015939000000003 376.739387-5.784493999999995 365.920994-5.784493999999995zM808.821219 84.618469c-39.030945 0-70.784136-31.754215-70.784136-70.78516s31.753191-70.784136 70.784136-70.784136 70.78516 31.753191 70.78516 70.784136S847.852164 84.618469 808.821219 84.618469zM808.821219-5.784493999999995c-10.81737 0-19.618826 8.801457-19.618826 19.618826 0 10.818393 8.801457 19.61985 19.618826 19.61985 10.818393 0 19.61985-8.801457 19.61985-19.61985C828.441069 3.015939000000003 819.640636-5.784493999999995 808.821219-5.784493999999995zM443.99107 305.940157c-14.057157-1.416256-24.305569-13.959943-22.890336-28.0171 1.328251-13.187347 12.446473-23.02132 25.423019-23.02132 0.856507 0 1.723248 0.042979 2.594081 0.130983l439.314561 44.245713c0.088004 0.007163 0.174985 0.01842 0.261966 0.026606l0.180102 0.01842c0.50449 0.051165 1.001817 0.119727 1.496074 0.198521 0.222057 0.035816 0.443092 0.076748 0.663102 0.11768 0.552585 0.103354 1.100054 0.217964 1.638313 0.355087 0.085958 0.022513 0.169869 0.047072 0.254803 0.069585 0.586354 0.156566 1.161453 0.334621 1.728364 0.530073 0.077771 0.026606 0.155543 0.051165 0.233314 0.078795 0.626263 0.222057 1.239224 0.469698 1.840928 0.737804 0.039909 0.017396 0.078795 0.035816 0.118704 0.054235 1.277086 0.577145 2.496867 1.252527 3.647063 2.020006 0.001023 0.001023 0.002047 0.001023 0.00307 0.002047 0.553609 0.369414 1.088798 0.76134 1.609661 1.170662 0.069585 0.054235 0.137123 0.10847 0.205685 0.163729 0.48607 0.38988 0.958838 0.795109 1.413186 1.218758 0.092098 0.084934 0.180102 0.173962 0.270153 0.25992 0.394996 0.378623 0.778736 0.76748 1.14815 1.169639 0.11154 0.121773 0.222057 0.243547 0.331551 0.367367 0.333598 0.3776 0.653893 0.766456 0.964978 1.163499 0.12382 0.158612 0.249687 0.314155 0.370437 0.475837 0.322341 0.432859 0.629333 0.876973 0.925069 1.329275 0.113587 0.173962 0.224104 0.348947 0.333598 0.525979 0.296759 0.479931 0.580215 0.968048 0.845251 1.467421 0.069585 0.130983 0.134053 0.265036 0.201591 0.397043 0.289596 0.568958 0.563842 1.147126 0.811482 1.738597 0.00307 0.007163 0.005117 0.014326 0.008186 0.021489 0.569982 1.369184 1.019213 2.796696 1.345648 4.26514 0 0.001023 0 0.002047 0.001023 0.00307l0.00307 0.013303c0.035816 0.162706 0.075725 0.323365 0.10847 0.487094l56.17951 252.734118c0.895393 4.030803 0.780783 8.04728-0.165776 11.794627 0.50449 2.003634 0.774643 4.101411 0.774643 6.261611 0 14.128789-11.452843 25.582655-25.582655 25.582655L195.47502 616.098125l-52.358485 159.553902c-3.631714 11.067057-14.093996 17.972327-25.177426 17.590634-0.207731 0.005117-0.413416 0.01535-0.62217 0.01535L54.663994 793.258011c-14.128789 0-25.582655-11.453866-25.582655-25.582655s11.453866-25.582655 25.582655-25.582655l45.614897 0 197.955514-603.235934c3.536546-10.776438 13.546527-17.613146 24.303522-17.613146 2.067079 0 4.16281 0.26299 6.245238 0.788969l567.583946 0c14.129812 0 25.582655 11.453866 25.582655 25.582655s-11.452843 25.582655-25.582655 25.582655L340.816223 173.1979 212.265428 564.933839l701.224666 0-48.137347-216.557174L443.99107 305.940157z" horiz-adv-x="1024" /> | ||
| 218 | + | ||
| 219 | + <glyph glyph-name="star-fill" unicode="" d="M752-43.200000000000045c-9.6 0-20.8 3.2-30.4 8l-208 104-209.6-104c-20.8-11.2-48-9.6-67.2 4.8-19.2 14.4-30.4 40-25.6 64l43.2 224L89.6 411.2C72 428.8 65.6 456 72 478.4c8 24 27.2 41.6 52.8 44.8l228.8 41.6 102.4 208c11.2 22.4 33.6 36.8 57.6 36.8s48-14.4 57.6-36.8l102.4-208 228.8-40c24-3.2 44.8-20.8 51.2-44.8 8-24 1.6-49.6-16-67.2L772.8 257.6l41.6-224c4.8-25.6-6.4-49.6-25.6-64-9.6-8-22.4-12.8-36.8-12.8z" horiz-adv-x="1024" /> | ||
| 220 | + | ||
| 221 | + <glyph glyph-name="prev" unicode="" d="M62.573 384.103l423.401 423.662c18.985 18.985 49.757 18.985 68.727 0 18.982-18.972 18.985-49.746 0-68.729l-355.058-355.067 356.796-356.796c18.977-18.971 18.976-49.746 0-68.727-18.982-18.976-49.751-18.976-68.727 0l-39.753 39.753 0.269 0.246-385.655 385.661zM451.365 384.103l423.407 423.662c18.985 18.985 49.757 18.985 68.727 0 18.982-18.972 18.985-49.746 0-68.729l-355.058-355.067 356.796-356.796c18.977-18.971 18.976-49.746 0-68.727-18.982-18.976-49.757-18.977-68.727 0l-39.762 39.754 0.273 0.249-385.662 385.661zM451.365 384.103z" horiz-adv-x="1024" /> | ||
| 222 | + | ||
| 223 | + <glyph glyph-name="next" unicode="" d="M948.066926 382.958838l-411.990051-412.24426c-18.47333-18.47333-48.417689-18.47333-66.875207 0-18.47333 18.461167-18.47333 48.405526 0 66.875207L814.691135 383.088983 467.512212 730.269123c-18.466032 18.458735-18.466032 48.405526 0 66.873991 18.468465 18.464816 48.410391 18.464816 66.872774 0l38.682336-38.682336-0.261507-0.239614 375.259894-375.265975v0.003649m-378.312834 0L157.756743-29.28542200000004c-18.47333-18.47333-48.415256-18.47333-66.872775 0-18.47333 18.461167-18.47333 48.405526 0 66.875207L436.369787 383.088983 89.19208 730.269123c-18.4636 18.458735-18.4636 48.405526 0 66.873991 18.470898 18.464816 48.415256 18.464816 66.872774 0l38.692067-38.682336-0.266372-0.239614 375.267191-375.265975-0.004865 0.003649m0 0z" horiz-adv-x="1024" /> | ||
| 224 | + | ||
| 225 | + <glyph glyph-name="upload" unicode="" d="M831.488 478.208C831.488 478.208 831.488 478.208 831.488 478.208c0 143.36-114.688 258.048-253.952 258.048-98.304 0-184.32-57.344-225.28-139.264C327.68 605.184 307.2 609.28 286.72 609.28c-90.112 0-159.744-73.728-159.744-159.744 0-16.384 4.096-28.672 8.192-40.96C57.344 379.904 0 310.27200000000005 0 224.25599999999997c0-106.496 86.016-192.512 192.512-192.512l192.512 0 0 192.512L258.048 224.25599999999997l258.048 258.048 258.048-258.048-126.976 0 0-192.512 192.512 0L839.68 35.84000000000003c106.496 16.384 192.512 110.592 192.512 221.184C1024 371.712 937.984 465.92 831.488 478.208z" horiz-adv-x="1033" /> | ||
| 226 | + | ||
| 227 | + <glyph glyph-name="upload-drag" unicode="" d="M666.931 445.918l-124.245 99.362c-7.221 5.639-16.428 9.042-26.429 9.042-9.963 0-19.136-3.376-26.438-9.047l-124.215-99.391c-9.615-7.772-15.713-19.565-15.713-32.782 0-9.946 3.453-19.084 9.223-26.284 13.828-17.359 41.51-20.465 58.918-6.505l56.252 45.022v-261.12c0-23.177 18.842-41.984 41.95-41.984s41.95 18.842 41.95 41.984v261.12l56.286-45.056c17.545-13.892 45.09-10.718 58.914 6.554 5.754 7.137 9.236 16.316 9.236 26.308 0 13.211-6.086 24.999-15.609 32.716zM235.827 142.95000000000005c-85.026 0-152.542 31.71-188.655 89.839-36.113 58.095-34.406 134.724 4.335 195.174 37.342 58.334 102.366 92.023 178.995 94.549-19.866 130.492 42.667 202.377 84.753 235.008 90.112 69.871 234.257 79.053 335.565 21.367 58.982-33.587 94.037-85.675 100.454-146.978 113.937 18.978 177.562-33.826 206.814-69.905 63.317-78.131 71.27-204.39 18.91-300.203-46.524-85.06-130.389-127.317-229.82-116.497-18.739 2.116-32.222 18.978-30.174 37.683s19.285 32.017 37.683 30.174c96.7-10.718 143.258 46.353 162.406 81.408 39.014 71.373 33.826 167.868-12.049 224.495-38.673 47.684-100.352 60.518-178.483 37.069-2.94-0.916-6.319-1.443-9.822-1.443-18.851 0-34.133 15.282-34.133 34.133 0 1.495 0.096 2.969 0.283 4.414 8.549 68.506-31.114 106.53-65.93 126.362-77.346 44.066-191.522 37.035-259.925-15.974-58.266-45.193-75.947-117.18-51.132-208.179 0.761-2.688 1.198-5.775 1.198-8.963 0-18.851-15.282-34.133-34.133-34.133-1.481 0-2.94 0.094-4.371 0.277-70.759 8.822-128.991-13.535-159.677-61.424-24.61-38.434-26.146-86.46-3.823-122.368 27.716-44.578 86.05-64.375 164.147-55.637 1.132 0.133 2.443 0.209 3.772 0.209 18.853 0 34.138-15.284 34.138-34.138 0-17.525-13.205-31.965-30.208-33.914-14.153-1.653-27.874-2.404-41.118-2.404z" horiz-adv-x="1024" /> | ||
| 228 | + | ||
| 229 | + <glyph glyph-name="user" unicode="" d="M611.2 342.4c70.4 54.4 115.2 140.8 115.2 230.4 0 156.8-128 288-284.8 288s-284.8-128-284.8-284.8c0-92.8 44.8-182.4 115.2-236.8C108.8 272 0 105.60000000000002 0-80c0-9.6 9.6-19.2 19.2-19.2h848c9.6 0 19.2 9.6 19.2 19.2 0 188.8-112 355.2-275.2 422.4z m-576-396.8C44.8 115.20000000000005 156.8 268.79999999999995 320 320c6.4 3.2 12.8 9.6 12.8 16s-3.2 16-9.6 19.2c-76.8 41.6-128 131.2-128 224 0 134.4 112 246.4 246.4 246.4s246.4-112 246.4-249.6c0-89.6-51.2-176-128-220.8-6.4-3.2-9.6-9.6-9.6-19.2 0-6.4 6.4-12.8 12.8-16 160-51.2 275.2-204.8 281.6-377.6H35.2zM812.8 361.6c54.4 41.6 86.4 108.8 86.4 176 0 89.6-54.4 172.8-134.4 208-9.6 3.2-22.4 0-25.6-9.6-3.2-9.6 0-22.4 9.6-25.6 67.2-28.8 112-99.2 112-172.8 0-67.2-38.4-131.2-96-163.2-6.4-3.2-9.6-9.6-9.6-19.2 0-6.4 6.4-12.8 12.8-16 131.2-41.6 217.6-160 217.6-297.6 0-9.6 9.6-19.2 19.2-19.2s19.2 9.6 19.2 19.2c-3.2 140.8-86.4 262.4-211.2 320z" horiz-adv-x="1024" /> | ||
| 230 | + | ||
| 231 | + <glyph glyph-name="file-b" unicode="" d="M790.08 177.91999999999996l-138.112-119.232V177.91999999999996h138.112zM198.848 763.008h627.328v-516.16H617.088a34.56 34.56 0 0 1-34.816-34.432v-206.528H198.848V763.008z m662.208 68.8H164.032a34.56 34.56 0 0 1-34.816-34.432v-825.92a34.56 34.56 0 0 1 34.816-34.432h453.056l278.784 240.896V797.376a34.56 34.56 0 0 1-34.816 34.432z" horiz-adv-x="1024" /> | ||
| 232 | + | ||
| 233 | + <glyph glyph-name="component" unicode="" d="M917.376 652.544L500.8 891.2a34.304 34.304 0 0 1-34.176 0L50.112 652.48a33.92 33.92 0 0 1-17.088-29.376v-477.44c0-12.16 6.528-23.296 17.088-29.44l416.512-238.72a35.136 35.136 0 0 1 34.176 0l416.576 238.72a33.92 33.92 0 0 1 17.088 29.44v477.44a33.92 33.92 0 0 1-17.088 29.44z m-51.264-487.36l-382.4-219.136-382.336 219.136V603.52l382.336 219.136 382.4-219.136v-438.272zM198.784 535.488a33.792 33.792 0 0 1 12.544-46.4l237.824-136.32V83.20000000000005c0-18.816 15.232-33.92 34.176-33.92a33.92 33.92 0 0 1 34.176 33.92V352.384l238.656 136.832a33.856 33.856 0 0 1 12.544 46.4 34.368 34.368 0 0 1-46.72 12.416L483.712 411.52 245.504 548.0319999999999a34.432 34.432 0 0 1-46.72-12.544z" horiz-adv-x="1024" /> | ||
| 234 | + | ||
| 235 | + <glyph glyph-name="find-fill" unicode="" d="M512 896C229.236364 896 0 666.763636 0 384c0-282.786909 229.236364-512 512-512s512 229.213091 512 512C1024 666.763636 794.763636 896 512 896zM657.291636 383.976727c0-77.195636-60.392727-139.729455-136.424727-144.407273l-175.732364-151.714909-22.877091 13.242182 58.228364 222.021818c-8.634182 18.548364-13.800727 39.074909-13.800727 60.858182 0 77.195636 60.369455 139.729455 136.378182 144.430545l175.802182 151.714909 22.877091-13.172364-58.251636-222.068364C652.125091 426.309818 657.291636 405.806545 657.291636 383.976727zM512 384m-66.048 0a2.838 2.838 0 1 1 132.096 0 2.838 2.838 0 1 1-132.096 0Z" horiz-adv-x="1024" /> | ||
| 236 | + | ||
| 237 | + <glyph glyph-name="loading" unicode="" d="M511.999488 756.654348m-70.608128 0a69 69 0 1 1 141.216255 0 69 69 0 1 1-141.216255 0ZM236.047576 639.997442m-68.561515 0a67 67 0 1 1 137.123031 0 67 67 0 1 1-137.123031 0ZM125.530506 382.12428m-62.421678 0a61 61 0 1 1 124.843356 0 61 61 0 1 1-124.843356 0ZM227.861126 100.71507499999996m-54.235229 0a53 53 0 1 1 108.470457 0 53 53 0 1 1-108.470457 0ZM514.166851-16.84438799999998m-47.192835 0a46.118 46.118 0 1 1 94.385671 0 46.118 46.118 0 1 1-94.385671 0ZM804.730553 91.450061m-33.834596 0a33.064 33.064 0 1 1 67.669192 0 33.064 33.064 0 1 1-67.669192 0ZM935.55411 383.395226m-23.969924 0a23.424 23.424 0 1 1 47.939849 0 23.424 23.424 0 1 1-47.939849 0ZM856.723717 634.80007m-17.135262 0a16.745 16.745 0 1 1 34.270525 0 16.745 16.745 0 1 1-34.270525 0Z" horiz-adv-x="1024" /> | ||
| 238 | + | ||
| 239 | + <glyph glyph-name="loading-1" unicode="" d="M537.574469 831.696462c-14.123672 0-25.574469-11.447726-25.574469-25.574469 0-14.123672 11.450796-25.574469 25.574469-25.574469 204.495464 0 370.82877-166.358889 370.82877-370.82877 0-14.123672 11.450796-25.574469 25.574469-25.574469 14.123672 0 25.574469 11.450796 25.574469 25.574469C959.551152 642.385838 770.241552 831.696462 537.574469 831.696462z" horiz-adv-x="1024" /> | ||
| 240 | + | ||
| 241 | + <glyph glyph-name="add-1" unicode="" d="M566.935 78.97233332999997c0-30.366-24.612-54.972-54.935-54.972v0c-30.384 0-54.996 24.612-54.996 54.972v610.057c0 30.361 24.612 54.972 54.996 54.972v0c30.33 0 54.935-24.612 54.935-54.972v-610.057zM817.004 438.96633333c30.384 0 54.996-24.606 54.996-54.966v0c0-30.354-24.612-54.966-54.996-54.966h-610.062c-30.33 0-54.942 24.612-54.942 54.966v0c0 30.359 24.612 54.966 54.942 54.966h610.062zM817.004 438.96633333z" horiz-adv-x="1024" /> | ||
| 242 | + | ||
| 243 | + <glyph glyph-name="pause" unicode="" d="M512-128c-282.714 0-511.893 229.232-511.893 512 0 282.768 229.179 512 511.893 512 282.714 0 511.893-229.232 511.893-512 0-282.768-229.179-512-511.893-512zM512 863.996c-265.043 0-479.9-214.91-479.9-479.996 0-265.097 214.857-479.996 479.9-479.996 265.043 0 479.9 214.899 479.9 479.996 0 265.086-214.857 479.996-479.9 479.996zM639.973 181.32299999999998h-21.329c-23.558 0-42.658 19.1-42.658 42.658v319.933c0 23.558 19.1 42.658 42.658 42.658h21.329c23.558 0 42.658-19.1 42.658-42.658v-319.933c0-23.558-19.1-42.658-42.658-42.658zM405.356 181.32299999999998h-21.329c-23.558 0-42.658 19.1-42.658 42.658v319.933c0 23.558 19.1 42.658 42.658 42.658h21.329c23.558 0 42.658-19.1 42.658-42.658v-319.933c0-23.558-19.1-42.658-42.658-42.658z" horiz-adv-x="1024" /> | ||
| 244 | + | ||
| 245 | + <glyph glyph-name="play" unicode="" d="M512 896C229.376 896 0 666.624 0 384 0 101.37599999999998 229.376-128 512-128 794.624-128 1024 101.37599999999998 1024 384 1024 666.624 794.624 896 512 896L512 896 512 896zM512-95.23199999999997C245.76-95.23199999999997 32.768 117.75999999999999 32.768 384 32.768 650.24 245.76 863.232 512 863.232S991.232 650.24 991.232 384C991.232 117.75999999999999 778.24-95.23199999999997 512-95.23199999999997L512-95.23199999999997 512-95.23199999999997zM733.184 392.192L393.216 588.8c-4.096 4.096-8.192 4.096-12.288 0C376.832 588.8 372.736 584.704 372.736 580.608l0-393.216c0-4.096 4.096-8.192 4.096-8.192 4.096-4.096 8.192-4.096 12.288 0l344.064 196.608c4.096 4.096 4.096 4.096 4.096 8.192C741.376 388.096 737.28 392.192 733.184 392.192L733.184 392.192 733.184 392.192zM733.184 392.192" horiz-adv-x="1024" /> | ||
| 246 | + | ||
| 247 | + <glyph glyph-name="video" unicode="" d="M952.523633 599.2477269999999L952.523633 599.2477269999999 952.523633 599.2477269999999zM100.53762400000005 661.054062C100.53762400000005 661.054062 100.53762400000005 661.054062 100.53762400000005 661.054062 100.53762400000005 661.054062 100.53762400000005 661.054062 100.53762400000005 661.054062zM100.74228 720.404517L100.74228 720.404517 100.74228 720.404517zM660.990107 739.9449716666666c8.697911 0 17.498151-0.511642 25.684421-2.353553 12.279404-2.865194 23.22854-8.18627 34.382332-16.679524 15.144599-11.460777 26.196063-29.572899 32.02878-52.187469 3.479165-13.405016 2.967523-28.651944 2.558209-42.05696-0.102328-4.195463-0.204657-8.083941-0.204657-11.665434l0-37.759169 101.407415 70.401919 25.479764 17.60048c0.511642 0.306985 1.330269 1.023284 2.148896 1.637254 4.40012 3.376836 11.051464 8.595583 20.977316 11.051464 3.274508 0.818627 6.549016 1.22794 10.02818 1.22794 9.618867 0 19.44239-3.274508 27.730987999999996-9.311882 18.82842-13.916657999999998 18.726092-35.405616 18.726092-51.061857 0-1.023284 0-2.148896 0-3.172179l0-409.620466c0-15.963226 0.102328-37.963825-19.647047-51.982812-6.753672-4.809433-16.679524-8.390926-27.219346-8.390926-5.01409 0-10.130509 0.818627-15.144599 2.762866-7.162986 2.762866-12.279404 6.856000999999999-16.065554 9.823524-0.920955 0.716299-1.841911 1.432597-2.353553 1.841911l-24.968122 17.395823-101.10043 70.094934 0-37.963825c0-3.581493 0.102328-7.367643 0.204657-11.460777 0.409313-14.735285 0.818627-29.982212-2.865194-43.796542-5.62806-21.488957999999997-16.679524-39.396423-31.107825-50.447886-7.879285-6.037374-18.930748-13.405016-34.075347-16.986509-7.776956-1.841911-16.167882-2.353553-24.45648-2.353553-4.297792 0-8.595583 0.102328-12.688718 0.204657-3.683821 0.102328-7.162986 0.204657-10.232837 0.204657L167.15339300000005 84.94107466666674c-1.944239 0-3.888478 0-5.832717 0-1.944239 0-3.990806 0-5.935045 0-16.577196 0-33.461377 0.61397-47.787349 6.549016-27.935644999999997 11.563106-46.764065 37.759169-53.006096 73.574098l-0.409313 2.251224 0 2.353553c-0.102328 18.930748-0.204657 37.861497-0.306985 56.792245l0 0.511642L53.87588699999998 598.0155226666666c0 4.40012-0.102328 8.902568-0.102328 13.712001999999998-0.306985 27.01469-0.716299 54.950335 9.311882 76.643949 9.823524 21.284300999999996 27.526331999999996 38.066154 48.708304 45.945438 5.730389 2.148896 11.051464 2.762866 15.04227 3.172179 1.023284 0.102328 2.353553 0.306985 3.069851 0.409313l4.093135 1.534926 500.9997 0c3.581493 0 7.572299 0.102328 11.767763 0.306985C651.166583 739.7403146666667 656.078345 739.9449716666666 660.990107 739.9449716666666M304.273409 266.7785886666668L559.889677 394.2797376666667l0 33.973019L304.273409 555.9585626666667 304.273409 266.7785886666668M660.990107 780.8763196666666c-5.62806 0-10.949136-0.204657-15.758569-0.306985-3.888478-0.102328-7.469971-0.204657-10.437494-0.204657L133.79434400000002 780.3646776666667l-7.265314 0-6.446687-2.353553c-5.3210749999999996-0.61397-13.609673-1.841911-22.716898-5.218747-31.210153-11.665434-57.303887-36.121915-71.629859-67.229739-13.814329999999998-30.084541-13.405016-64.159888-12.995703-94.244429 0.102328-4.604777 0.102328-9.004897 0.102328-13.20036l0-371.349655 0-0.102328 0-0.102328 0-0.511642c0.102328-18.930748 0.204657-37.861497 0.306985-56.792245l0-2.251224 0-3.479165 0.61397-3.376836 0.409313-2.251224c4.195463-23.944839 12.791046-45.126811 25.479764-62.727291 13.609673-18.82842 31.107825-32.847407 52.08514-41.545318 21.488957999999997-8.902568 44.001199-9.618867 63.443589-9.618867 2.046567 0 4.093135 0 6.139702 0 1.841911 0 3.78615 0 5.62806 0l473.166384 0c2.558209 0 5.62806-0.102328 9.004897-0.204657 4.195463-0.102328 8.902568-0.306985 13.916657999999998-0.306985 13.302688 0 24.149495 1.125612 33.973019 3.479165 22.819227 5.423404 39.089437 16.474868 49.322274 24.251824 21.693613999999997 16.577196 37.963825 42.363944999999994 45.84311 72.653143 2.251224 8.595583 3.376836 17.088838 3.990806 25.377436l36.838213-25.582093 24.558809-17.088838c0.306985-0.204657 0.61397-0.511642 0.920955-0.716299 4.809433-3.683821 13.609673-10.642149999999999 26.400719-15.656241 9.516538-3.683821 19.647047-5.62806 30.084541-5.62806 18.009793 0 36.53122799999999 5.832717 50.8572 15.963226 16.577196 11.767763 27.730987999999996 27.935644999999997 33.052064 48.094334 3.78615 14.4283 3.78615 27.628659999999996 3.78615 37.34985499999999l0 409.518137c0 0.920955 0 1.739582 0 2.660538l0 0.409313c0 9.41421 0.102328 22.409913-3.479165 36.53122799999999-5.116419 19.749375-15.758569 35.81493-31.721795 47.68502-15.144599 11.153792-33.666034 17.293495-52.08514 17.293495-6.753672 0-13.507345-0.818627-19.954032-2.455881-18.21445-4.604777-30.289198-13.916657999999998-36.019586-18.419107l0 0c-0.204657-0.204657-0.511642-0.409313-0.716299-0.511642l-25.172779-17.293495-0.102328 0-0.102328 0-37.14519799999999-25.786749c-0.511642 7.674628-1.637254 15.553912-3.683821 23.433197-8.18627 31.721795-24.354152 57.508544-46.866394 74.597382-15.758569 11.972419-32.02878 19.851704-49.833916 23.944839C685.8559009999999 779.7507076666667 674.702109 780.8763196666666 660.990107 780.8763196666666L660.990107 780.8763196666666zM345.204757 332.9850436666668L345.204757 489.75210666666663l157.074048-78.48586L345.204757 332.9850436666668 345.204757 332.9850436666668zM347.455981 429.177975L347.455981 308.02118499999995 347.455981 429.177975Z" horiz-adv-x="1024" /> | ||
| 248 | + | ||
| 249 | + <glyph glyph-name="headset" unicode="" d="M356.285031 2.1522690000000466L356.396571 2.1522690000000466 356.396571 285.236626 253.462201 285.236626 253.462201 2.1522690000000466ZM665.076886 285.236626l103.042841 0 0-283.08538-103.042841 0 0 283.08538ZM63.809793 301.950286c0-38.758746-3.195785-112.220874 5.457292-148.208507l65.735144 0c-10.112312 35.644825-7.747451 109.176538-7.747451 148.208507 0 219.937155 172.264389 398.231887 384.763131 398.231887 212.498742 0 384.763131-178.294732 384.763131-398.231887 0-39.031968 2.266623-112.563682-7.845689-148.208507l65.735144 0c8.653077 35.987632 5.555529 109.449761 5.555529 148.208507 0 256.20415-200.670346 463.898469-448.208115 463.898469C264.479115 765.848755 63.809793 558.1544349999999 63.809793 301.950286z" horiz-adv-x="1024" /> | ||
| 250 | + | ||
| 251 | + <glyph glyph-name="voice" unicode="" d="M463.380164 644.0568969999999v-0.003069c-4.550643 4.549619-10.484795 7.02295-16.913205 7.02295s-12.365632-2.473331-16.915251-7.02295c-4.549619-4.551666-7.020904-10.485819-7.020904-16.914229s2.471284-12.365632 7.020904-16.915251c60.437487-60.438511 93.675496-140.756791 93.675496-226.222301 0-85.464487-33.238009-165.783791-93.675496-226.220255-4.549619-4.551666-7.020904-10.487865-7.020904-16.915252 0-6.429433 2.471284-12.365632 7.020904-16.914228 4.550643-4.549619 10.486842-7.02295 16.915251-7.02295s12.364609 2.473331 16.913205 7.02295c35.114752 35.116799 62.317301 76.06849 80.814584 121.668037 17.904789 44.018539 26.90579 90.608647 26.90579 138.384768s-9.101285 94.26799-26.90579 138.384767c-18.59552 45.697785-45.698808 86.550215-80.814584 121.667013zM781.892405 618.929614v-0.002047c-31.358195 77.452-77.550237 146.990772-137.098471 206.539007-4.550643 4.549619-10.485819 7.02295-16.915252 7.02295-6.42841 0-12.363585-2.473331-16.914228-7.02295-9.29776-9.299807-9.29776-24.531719 0-33.82948 54.997592-54.998615 97.631598-119.195729 126.613676-190.71153 27.993564-69.044516 42.237987-142.045133 42.237987-216.924541s-14.244422-147.882072-42.237987-216.923518c-28.982078-71.517847-71.616084-135.616724-126.613676-190.711529-9.29776-9.298783-9.29776-24.531719 0-33.82948 4.551666-4.551666 10.485819-7.02295 16.914228-7.02295 6.429433 0 12.366655 2.471284 16.915252 7.02295 59.547211 59.547211 105.740276 129.085984 137.098471 206.53696 30.369681 74.78117 45.699832 153.817248 45.699831 234.928591 0 81.111343-15.331173 160.146397-45.699831 234.927567zM299.474141 427.621497c-11.670807 11.573593-27.103288 18.004049-43.522236 18.004049-16.419971 0-31.852452-6.429433-43.52326-18.004049-11.57257-11.57257-18.003026-27.104311-18.003026-43.522236 0-16.420995 6.42841-31.851429 18.003026-43.52326 11.574616-11.57257 27.103288-18.003026 43.52326-18.003025s31.852452 6.429433 43.522236 18.003025c11.573593 11.573593 18.003026 27.104311 18.003025 43.52326 0 16.419971-6.427386 31.852452-18.003025 43.522236z" horiz-adv-x="1024" /> | ||
| 252 | + | ||
| 253 | + <glyph glyph-name="speaker" unicode="" d="M587.182306 754.7203c-6.003737 2.705622-13.043061 1.642406-17.984606-2.721994l-259.223926-229.293243-148.246369 0c-9.253758 0-16.752546-7.498788-16.752546-16.756639l0-267.886213c0-9.249665 7.498788-16.756639 16.752546-16.756639l144.050814 0c9.253758 0 16.752546 7.506974 16.752546 16.756639L322.530764 490.391099c1.774413 0.704035 3.433192 1.719154 4.892427 3.010567l236.127905 208.861912 0-653.332912-160.751171 137.64287c-2.12643 1.824555-90.300632 78.69941-93.927229 76.162634-4.427846-3.097548-15.768125-17.59882-18.419512-22.512736-0.953721-1.768273-2.196015-1.334391 15.413038-16.379039 25.674753-21.936615 73.780377-61.548798 75.144444-62.717414l10.007935-8.570189 178.388876-152.761196c3.093455-2.653433 6.978948-4.028757 10.900258-4.028757 2.369977 0 4.756327 0.503467 7.003508 1.534959 5.939269 2.738367 9.749038 8.677637 9.749038 15.217586L597.060281 739.446431C597.060281 746.034477 593.190137 752.013655 587.182306 754.7203L587.182306 754.7203zM290.453185 254.814756l-115.040083 0L175.413102 489.195877l115.03906 0 0-234.381122L290.453185 254.814756zM747.742119 375.98444300000006c0-51.55212-34.83232-96.658434-84.702124-109.693308-1.415232-0.375553-2.846838-0.551562-4.245697-0.551562-7.438413 0-14.234189 4.992711-16.200984 12.523221-2.338255 8.949836 3.021823 18.104333 11.967566 20.442588 35.136242 9.18929 59.672054 40.96397 59.672054 77.279061 0 36.307927-24.535813 68.090794-59.672054 77.271898-8.945743 2.346441-14.305821 11.492752-11.967566 20.450774 2.342348 8.953929 11.499915 14.305821 20.446681 11.967566C712.909799 472.643899 747.742119 427.530422 747.742119 375.98444300000006L747.742119 375.98444300000006zM864.950588 375.793084c0-88.87619-48.554856-170.44495-126.718053-212.883505-2.537799-1.375324-5.276167-2.02717-7.982812-2.02717-5.939269 0-11.69946 3.166109-14.733563 8.762571-4.417613 8.134261-1.39886 18.303878 6.727215 22.720468 67.350944 36.566824 109.198028 106.851587 109.198028 183.427636 0 76.844156-42.055838 147.272181-109.741403 183.78784-8.154727 4.396123-11.192923 14.557554-6.795776 22.700001 4.38896 8.142447 14.558577 11.184737 22.701025 6.795776C816.151162 546.697499 864.950588 464.976266 864.950588 375.793084L864.950588 375.793084z" horiz-adv-x="1024" /> | ||
| 254 | + | ||
| 255 | + <glyph glyph-name="fonts-del" unicode="" d="M928 448l-143.616 0c-3.456 55.616-14.272 106.56-29.504 144.96C725.504 666.816 617.344 768 464.32 768L256 768l0-320L96 448C78.336 448 64 433.664 64 416S78.336 384 96 384L256 384l0-320 229.632 0c156.288 0 240.768 97.856 267.904 167.488C772.736 280.96000000000004 782.272 333.312 784.96 384L928 384C945.664 384 960 398.336 960 416S945.664 448 928 448zM349.376 711.488l63.936 0c35.712 0 251.84 27.968 266.944-263.488l-330.88 0L349.376 711.488zM439.296 120.51199999999994L349.376 120.51199999999994 349.376 382.528 349.376 384l330.88 0C665.344 113.98400000000004 467.968 120.51199999999994 439.296 120.51199999999994z" horiz-adv-x="1024" /> | ||
| 256 | + | ||
| 257 | + <glyph glyph-name="fonts-html" unicode="" d="M194.33 416.235h-101.295v101.28h-46.035v-267.03h46.035v119.7h101.28v-119.7h46.035v267.03h-46.035v-101.28zM277.205 480.69h73.665v-230.205h46.035v230.205h73.665v36.825h-193.365v-36.825zM627.815 335.58000000000004l-46.755 181.935h-73.665v-267.03h46.035v211.785l46.035-211.785h55.245l46.83 213.93-0.795-213.93h46.035v267.03h-73.665l-45.3-181.935zM848.09 287.30999999999995v230.205h-46.035v-267.03h174.945v36.825h-128.91z" horiz-adv-x="1024" /> | ||
| 258 | + | ||
| 259 | + <glyph glyph-name="fonts-code" unicode="" d="M270 626c-12 12-32 12-44 0L9 409c-12-12-12-32 0-44l217-217c6-6 14-9 22-9s16 3 22 9c12 12 12 32 0 44L75 387 270 582C282 595 282 614 270 626zM1015 409L798 626c-12 12-32 12-44 0-12-12-12-32 0-44l195-195L754 192c-12-12-12-32 0-44 6-6 14-9 22-9s16 3 22 9l217 217C1027 377 1027 397 1015 409zM624 696L624 696c-16 6-34-3-40-19L382 119c-6-16 2-34 19-40l0 0c16-6 34 3 40 19l202 558C648 672 640 690 624 696z" horiz-adv-x="1025" /> | ||
| 260 | + | ||
| 261 | + <glyph glyph-name="fonts-strong" unicode="" d="M199.092919 848.487893l355.326704 0c70.335928 0 122.780371-2.942005 157.349701-8.809643 34.568307-5.884011 65.491597-18.131963 92.78522-36.759205 27.27725-18.627243 50.01409-43.427068 68.209498-74.397431 18.195408-30.986735 27.293623-65.699328 27.293623-104.169501 0-41.7161-11.17655-79.977519-33.496905-114.802676s-52.604078-60.951187-90.818425-78.362742c54.075593-15.765055 95.647407-42.626843 124.715443-80.585363s43.602054-82.58388 43.602054-133.877103c0-40.388872-9.417487-79.673597-28.220738-117.839849-18.803251-38.182624-44.482097-68.673056-77.035514-91.489714-32.55444-22.833031-72.702835-36.855396-120.414487-42.09984-29.931706-3.229554-102.122889-5.260817-216.572524-6.060019L199.092919-40.765192999999954 199.092919 848.487893zM378.171504 700.1084940000001l0-205.684546 117.64849 0c69.935816 0 113.410979 1.006933 130.390699 3.038196 30.730908 3.629667 54.891168 14.246469 72.478731 31.850405 17.588587 17.588587 26.381857 40.756239 26.381857 69.473281 0 27.501354-7.594979 49.838082-22.75219 67.042929-15.158235 17.188474-37.702694 27.597545-67.618027 31.242562-17.796318 2.01489-68.945255 3.038196-153.431461 3.038196L378.171504 700.109518zM378.171504 346.04454999999996l0-236.383732 166.622902 0c64.85203 0 106.008382 1.807159 123.43631 5.420453 26.750247 4.828982 48.543599 16.58063 65.363683 35.272341s25.247011 43.714617 25.247011 75.085092c0 26.526143-6.491855 49.03888-19.459191 67.538209-12.983709 18.48398-31.722492 31.961946-56.250118 40.404222s-77.739549 12.663414-159.619394 12.663414L378.171504 346.04454999999996z" horiz-adv-x="1024" /> | ||
| 262 | + | ||
| 263 | + <glyph glyph-name="unlink" unicode="" d="M150.336 767.6800000000001C133.44 762.304 124.16 744.3199999999999 129.472 727.488 131.2 722.1759999999999 134.208 717.44 138.304 713.664l122.624-122.432C270.208 576.192 289.92 571.52 304.96 580.736 320 590.0799999999999 324.672 609.7280000000001 315.456 624.832 312.832 629.056 309.184 632.64 304.96 635.264L182.336 757.696C175.168 765.44 164.672 769.216 154.304 767.6800000000001 152.96 767.808 151.552 767.808 150.336 767.6800000000001L150.336 767.6800000000001zM406.08 831.424c-13.696-4.48-22.72-17.6-22.016-32L384.064 672c0-17.664 14.336-32 32-32s31.872 14.336 31.872 32L447.936 799.424C448.256 817.088 434.304 831.6800000000001 416.64 832 414.464 832.064 412.16 831.808 410.048 831.424 408.704 831.552 407.296 831.552 406.08 831.424L406.08 831.424zM91.392 511.872C73.728 509.12 61.632 492.544 64.384 474.88 67.136 457.28 83.712 445.248 101.376 448L224 448C241.664 448 256 462.208 256 479.872s-14.336 32-32 32L101.376 511.872c-1.984 0.192-3.968 0.192-6.016 0C94.016 512 92.608 512 91.392 511.872L91.392 511.872zM795.456 320c-17.728-2.752-29.824-14.08-27.072-31.744 2.752-17.6 19.328-35.008 36.992-32.256L928 256c17.664 0 32 19.584 32 37.248S945.664 320 928 320l-122.624 0c-1.984 0.192-3.968 0.192-6.016 0-1.344 0.128-2.688 0.128-4.032 0L795.456 320zM598.272 127.42399999999998c-13.76-4.48-22.72-17.6-22.08-32L576.192-32c0-17.664 14.336-32 32-32S640-49.66399999999999 640-32l0 127.424c0.32 17.6-13.568 32.256-31.232 32.576-2.176 0.064-4.352-0.192-6.592-0.576-1.344 0.128-2.688 0.128-4.032 0L598.272 127.42399999999998zM726.272 191.67999999999995c-16.896-5.376-26.24-23.36-20.864-40.192 1.664-5.312 4.736-10.048 8.832-13.824l122.56-122.432c9.28-15.04 28.928-19.776 44.032-10.496 14.976 9.344 19.712 28.992 10.368 44.032-2.624 4.224-6.144 7.808-10.368 10.432l-122.56 122.432c-7.168 7.744-17.6 11.52-28.032 9.984-1.344 0.128-2.688 0.128-4.032 0L726.272 191.61599999999999zM339.968 28.03200000000004c-49.152 0-98.304 18.688-135.744 56.128-74.816 74.88-74.816 196.608 0 271.488l87.744 87.744c12.48 12.48 32.768 12.48 45.248 0s12.48-32.768 0-45.248L249.408 310.46400000000006c-49.92-49.856-49.92-131.136 0-180.992 49.856-49.856 131.136-49.856 180.992 0l87.744 87.744c12.48 12.48 32.768 12.48 45.248 0s12.48-32.768 0-45.248l-87.744-87.744C438.272 46.72000000000003 389.12 28.03200000000004 339.968 28.03200000000004zM702.144 323.712c-8.192 0-16.384 3.136-22.656 9.344-12.48 12.48-12.48 32.768 0 45.248l87.744 87.744c49.856 49.92 49.856 131.072 0 180.992-49.856 49.856-131.136 49.856-180.992 0L498.496 559.296c-12.48-12.48-32.768-12.48-45.248 0s-12.48 32.768 0 45.248l87.744 87.744c74.88 74.88 196.608 74.88 271.488 0 74.88-74.816 74.88-196.672 0-271.488l-87.744-87.744C718.528 326.784 710.336 323.712 702.144 323.712z" horiz-adv-x="1024" /> | ||
| 264 | + | ||
| 265 | + <glyph glyph-name="picture" unicode="" d="M765.376 615.424c0 0 103.04 1.024 103.04-100.992 0 0 9.536-98.752-103.04-100.928 0 0-100.864-2.176-99.84 100.928C665.536 514.496 664.448 605.8879999999999 765.376 615.424ZM968.32 770.56c0 0 54.208-4.224 54.208-52.032l0-712.832c0 0-3.2-51.008-54.208-52.096L968.32 770.56ZM1.472 5.631999999999948c0 0 2.176-52.096 52.096-52.096L968.32-46.464000000000055l0 150.848-99.712 0-203.072 206.144-153.024-153.984L304.32 413.568l-205.056-307.072-45.632-1.024L52.48 718.4639999999999 1.472 718.4639999999999 1.472 5.631999999999948ZM968.32 770.56L53.568 770.56c0 0-52.096 1.088-52.096-52.032L968.32 718.528 968.32 770.56Z" horiz-adv-x="1024" /> | ||
| 266 | + | ||
| 267 | + <glyph glyph-name="link" unicode="" d="M262.4-121.60000000000002c-64 0-128 25.6-179.2 76.8-102.4 102.4-102.4 262.4 0 364.8l134.4 134.4 89.6-89.6-134.4-134.4c-51.2-51.2-51.2-128 0-179.2 51.2-51.2 128-51.2 179.2 0l179.2 179.2c25.6 25.6 38.4 57.6 38.4 89.6S556.8 384 537.6 409.6L467.2 473.6l89.6 89.6 70.4-70.4C672 448 697.6 384 697.6 313.6c0-70.4-25.6-134.4-76.8-179.2l-179.2-179.2C396.8-96 326.4-121.60000000000002 262.4-121.60000000000002zM467.2 204.79999999999995L396.8 268.79999999999995c-102.4 102.4-102.4 262.4 0 364.8l179.2 179.2c102.4 102.4 262.4 102.4 364.8 0 102.4-102.4 102.4-262.4 0-364.8l-134.4-134.4-89.6 89.6 134.4 134.4c51.2 51.2 51.2 128 0 179.2-51.2 51.2-134.4 51.2-179.2 0L486.4 544c-51.2-51.2-51.2-128 0-179.2l70.4-70.4L467.2 204.79999999999995z" horiz-adv-x="1024" /> | ||
| 268 | + | ||
| 269 | + <glyph glyph-name="face-smile-b" unicode="" d="M511.931733-128c-136.738133 0-265.284267 53.213867-361.984 149.879467C53.282133 118.51093300000002 0 247.09119999999996 0 384c0 136.738133 53.282133 265.3184 150.050133 362.0864C246.749867 842.683733 375.296 896 512.136533 896s265.4208-53.316267 362.1888-149.9136c199.645867-199.714133 199.543467-524.5952 0-724.206933C777.454933-74.71786699999996 648.772267-128 511.931733-128L511.931733-128 511.931733-128 511.931733-128 511.931733-128 511.931733-128zM512.034133 829.303467c-118.920533 0-230.741333-46.2848-314.914133-130.389333C113.083733 614.8778669999999 66.7648 502.8864 66.7648 384c0-118.9888 46.2848-230.912 130.3552-315.016533 84.0704-84.0704 195.857067-130.321067 314.811733-130.321067 119.022933 0 230.946133 46.318933 315.016533 130.423467 173.704533 173.636267 173.704533 456.157867 0 629.794133C742.877867 782.984533 631.057067 829.303467 512.034133 829.303467L512.034133 829.303467 512.034133 829.303467 512.034133 829.303467 512.034133 829.303467 512.034133 829.303467zM330.103467 244.25813300000004c0 0 59.904-95.9488 181.828267-95.9488s201.8304 95.9488 201.8304 95.9488 45.294933 0.136533 45.192533-47.957333c0 0-78.506667-111.8208-247.022933-111.8208s-223.368533 111.8208-223.368533 111.8208S286.856533 244.25813300000004 330.103467 244.25813300000004L330.103467 244.25813300000004 330.103467 244.25813300000004 330.103467 244.25813300000004 330.103467 244.25813300000004zM363.2128 548.590933c-34.5088 0-62.702933-28.091733-62.702933-62.737067 0-34.679467 28.194133-62.6688 62.702933-62.6688 34.679467 0 62.702933 28.091733 62.702933 62.6688C425.915733 520.4992 397.858133 548.590933 363.2128 548.590933L363.2128 548.590933 363.2128 548.590933 363.2128 548.590933 363.2128 548.590933 363.2128 548.590933zM684.544 548.590933c-34.679467 0-62.702933-28.091733-62.702933-62.737067 0-34.679467 28.023467-62.6688 62.702933-62.6688 34.6112 0 62.600533 28.091733 62.600533 62.6688C747.144533 520.4992 719.121067 548.590933 684.544 548.590933L684.544 548.590933 684.544 548.590933 684.544 548.590933 684.544 548.590933 684.544 548.590933zM684.544 548.590933" horiz-adv-x="1025" /> | ||
| 270 | + | ||
| 271 | + <glyph glyph-name="align-center" unicode="" d="M992 448L32 448C14.32 448 0 462.336 0 480 0 497.664 14.32 512 32 512L992 512C1009.68 512 1024 497.664 1024 480 1024 462.336 1009.68 448 992 448ZM800 704C817.664 704 832 689.664 832 672 832 654.336 817.664 640 800 640L224 640C206.32 640 192 654.336 192 672 192 689.664 206.32 704 224 704L800 704ZM992 832L32 832C14.32 832 0 846.336 0 864 0 881.664 14.32 896 32 896L992 896C1009.68 896 1024 881.664 1024 864 1024 846.336 1009.68 832 992 832ZM224 256C206.32 256 192 270.336 192 288 192 305.664 206.32 320 224 320L800 320C817.664 320 832 305.664 832 288 832 270.336 817.664 256 800 256L224 256ZM32 128L992 128C1009.68 128 1024 113.66399999999999 1024 96 1024 78.33600000000001 1009.68 64 992 64L32 64C14.32 64 0 78.33600000000001 0 96 0 113.66399999999999 14.32 128 32 128ZM224-64L800-64C817.664-64 832-78.33600000000001 832-96 832-113.66399999999999 817.664-128 800-128L224-128C206.32-128 192-113.66399999999999 192-96 192-78.33600000000001 206.32-64 224-64Z" horiz-adv-x="1024" /> | ||
| 272 | + | ||
| 273 | + <glyph glyph-name="align-right" unicode="" d="M992 64L32 64C14.32 64 0 78.33600000000001 0 96 0 113.66399999999999 14.32 128 32 128L992 128C1009.68 128 1024 113.66399999999999 1024 96 1024 78.33600000000001 1009.68 64 992 64ZM992 256L288 256C270.32 256 256 270.336 256 288 256 305.664 270.32 320 288 320L992 320C1009.68 320 1024 305.664 1024 288 1024 270.336 1009.68 256 992 256ZM992 448L32 448C14.32 448 0 462.336 0 480 0 497.664 14.32 512 32 512L992 512C1009.68 512 1024 497.664 1024 480 1024 462.336 1009.68 448 992 448ZM992 640L288 640C270.32 640 256 654.336 256 672 256 689.664 270.32 704 288 704L992 704C1009.68 704 1024 689.664 1024 672 1024 654.336 1009.68 640 992 640ZM992 832L32 832C14.32 832 0 846.336 0 864 0 881.664 14.32 896 32 896L992 896C1009.68 896 1024 881.664 1024 864 1024 846.336 1009.68 832 992 832ZM288-64L992-64C1009.68-64 1024-78.33600000000001 1024-96 1024-113.66399999999999 1009.68-128 992-128L288-128C270.32-128 256-113.66399999999999 256-96 256-78.33600000000001 270.32-64 288-64Z" horiz-adv-x="1024" /> | ||
| 274 | + | ||
| 275 | + <glyph glyph-name="align-left" unicode="" d="M992 448L32 448C14.336 448 0 462.336 0 480 0 497.664 14.336 512 32 512L992 512C1009.664 512 1024 497.664 1024 480 1024 462.336 1009.664 448 992 448ZM32 704L736 704C753.68 704 768 689.664 768 672 768 654.336 753.68 640 736 640L32 640C14.336 640 0 654.336 0 672 0 689.664 14.336 704 32 704ZM992 832L32 832C14.336 832 0 846.336 0 864 0 881.664 14.336 896 32 896L992 896C1009.664 896 1024 881.664 1024 864 1024 846.336 1009.664 832 992 832ZM32 320L736 320C753.68 320 768 305.664 768 288 768 270.336 753.68 256 736 256L32 256C14.336 256 0 270.336 0 288 0 305.664 14.336 320 32 320ZM32 128L992 128C1009.664 128 1024 113.66399999999999 1024 96 1024 78.33600000000001 1009.664 64 992 64L32 64C14.336 64 0 78.33600000000001 0 96 0 113.66399999999999 14.336 128 32 128ZM32-64L736-64C753.68-64 768-78.33600000000001 768-96 768-113.66399999999999 753.68-128 736-128L32-128C14.336-128 0-113.66399999999999 0-96 0-78.33600000000001 14.336-64 32-64Z" horiz-adv-x="1024" /> | ||
| 276 | + | ||
| 277 | + <glyph glyph-name="fonts-u" unicode="" d="M0-49.23076900000001L945.230769-49.23076900000001 945.230769-128 0-128 0-49.23076900000001ZM0 896L407.076943 896 407.076943 834.065644 319.153861 827.872177 299.076923 809.911217 299.076923 365.841959C299.076923 281.19796199999996 317.076716 220.709337 353.076933 184.37435100000005 389.077071 148.03936499999998 448.153442 129.87210800000003 530.307702 129.87210800000003 606.000364 129.87210800000003 660.807522 149.17482299999995 694.730752 187.78072599999996 728.653982 226.38662899999997 745.61536 289.66226700000004 745.61536 377.60953099999995L745.61536 804.956475 724.153817 826.633531 633.461524 834.065644 633.461524 896 955.384596 896 955.384596 834.065644 868.846119 826.633531 849.461563 804.956475 849.461563 364.60331299999996C849.461563 246.92743900000005 819.923338 161.66533900000002 760.846178 108.81441500000005 701.76894 55.96348999999998 606.462188 29.53846199999998 474.923087 29.53846199999998 406.153531 29.53846199999998 345.807951 38.51886300000001 293.884613 56.47990200000004 241.961275 74.44093999999996 201.230887 100.143419 171.692347 133.58820400000002 149.076834 160.01362700000004 133.038474 190.25793999999996 123.57695 224.32200899999998 114.115348 258.386078 109.384625 307.21047599999997 109.384625 370.796702L109.384625 809.911217 89.307687 827.872177 0 834.065644 0 896Z" horiz-adv-x="1024" /> | ||
| 278 | + | ||
| 279 | + <glyph glyph-name="fonts-i" unicode="" d="M897.948 834.255l0-64.322-128.65 0L447.674-1.9329999999999927l128.65 0 0-64.32L126.052-66.25300000000004l0 64.32 128.65 0 321.622 771.866-128.65 0L447.674 834.255 897.948 834.255z" horiz-adv-x="1024" /> | ||
| 280 | + | ||
| 281 | + <glyph glyph-name="tabs" unicode="" d="M310.30303 523.636364L124.121212 523.636364c-17.128727 0-31.030303-13.901576-31.030303-31.030303l0-186.181818c0-17.128727 13.901576-31.030303 31.030303-31.030303l186.181818 0c17.128727 0 31.030303 13.901576 31.030303 31.030303L341.333333 492.606061C341.333333 509.734788 327.431758 523.636364 310.30303 523.636364zM294.787879 306.42424200000005L139.636364 306.42424200000005c-17.128727 0-15.515152-1.613576-15.515152 15.515152L124.121212 477.090909c0 17.128727-1.613576 15.515152 15.515152 15.515152l155.151515 0c17.128727 0 15.515152 1.613576 15.515152-15.515152l0-155.151515C310.30303 304.81066699999997 311.916606 306.42424200000005 294.787879 306.42424200000005zM418.909091 352.969697l480.969697 0 0 31.030303L418.909091 384 418.909091 352.969697zM418.909091 228.84848499999998l480.969697 0 0 31.030303L418.909091 259.878788 418.909091 228.84848499999998zM418.909091 89.21212100000002l480.969697 0 0 31.030303L418.909091 120.24242400000003 418.909091 89.21212100000002zM418.909091 492.606061l480.969697 0 0 31.030303L418.909091 523.636364 418.909091 492.606061zM992.969697 725.333333l-15.515152 0L977.454545 849.454545c0 17.128727-13.901576 31.030303-31.030303 31.030303L775.757576 880.484848c-17.128727 0-31.030303-13.901576-31.030303-31.030303l0-124.121212-139.636364 0L605.090909 849.454545c0 17.128727-13.901576 31.030303-31.030303 31.030303L403.393939 880.484848c-17.128727 0-31.030303-13.901576-31.030303-31.030303l0-124.121212-124.121212 0L248.242424 849.454545c0 17.128727-13.901576 31.030303-31.030303 31.030303L31.030303 880.484848C13.901576 880.484848 0 866.583273 0 849.454545l0-946.424242c0-17.128727 13.901576-31.030303 31.030303-31.030303l961.939394 0c17.128727 0 31.030303 13.901576 31.030303 31.030303L1024 694.30303C1024 711.431758 1010.098424 725.333333 992.969697 725.333333zM992.969697-65.939394c0-17.128727-13.901576-31.030303-31.030303-31.030303L62.060606-96.969697c-17.128727 0-31.030303 13.901576-31.030303 31.030303L31.030303 818.424242c0 17.128727 13.901576 31.030303 31.030303 31.030303l124.121212 0c17.128727 0 31.030303-13.901576 31.030303-31.030303l0-124.121212 744.727273 0c17.128727 0 31.030303-13.901576 31.030303-31.030303L992.969697-65.939394z" horiz-adv-x="1024" /> | ||
| 282 | + | ||
| 283 | + <glyph glyph-name="circle" unicode="" d="M511.998 847.999C255.739 847.999 48 640.26 48 383.999c0-256.258 207.739-463.998 463.998-463.998C768.261-79.99900000000002 976 127.74199999999996 976 383.999 976 640.26 768.261 847.999 511.998 847.999zM512.002-16.000999999999976c-220.915 0-400.002 179.088-400.002 400 0 220.917 179.086 400 400.002 400 220.912 0 399.998-179.083 399.998-400C912 163.087 732.914-16.000999999999976 512.002-16.000999999999976z" horiz-adv-x="1024" /> | ||
| 284 | + | ||
| 285 | + <glyph glyph-name="radio" unicode="" d="M512.5 383.5m-192 0a192 192 0 1 1 384 0 192 192 0 1 1-384 0ZM511.998 847.999C255.739 847.999 48 640.26 48 383.999c0-256.258 207.739-463.998 463.998-463.998C768.261-79.99900000000002 976 127.74199999999996 976 383.999 976 640.26 768.261 847.999 511.998 847.999zM512.002-16.000999999999976c-220.915 0-400.002 179.088-400.002 400 0 220.917 179.086 400 400.002 400 220.912 0 399.998-179.083 399.998-400C912 163.087 732.914-16.000999999999976 512.002-16.000999999999976z" horiz-adv-x="1024" /> | ||
| 286 | + | ||
| 287 | + <glyph glyph-name="share" unicode="" d="M769.714 306.453c-51.754 0-97.702-24.851-126.571-63.269L394.479 367.94100000000003c3.93 13.798 6.034 28.364 6.034 43.424 0 16.496-2.527 32.399-7.211 47.35l247.724 124.288c28.71-40.052 75.647-66.151 128.687-66.151 87.388 0 158.229 70.84 158.229 158.229 0 87.388-70.841 158.229-158.229 158.229-87.389 0-158.229-70.841-158.229-158.229 0-6.046 0.352-12.009 1.011-17.88L351.22 526.116c-28.371 26.943-66.723 43.479-108.938 43.479-87.388 0-158.229-70.84-158.229-158.229s70.84-158.229 158.229-158.229c43.752 0 83.354 17.758 111.997 46.459l258.676-129.779c-0.964-7.062-1.474-14.266-1.474-21.592 0-87.389 70.84-158.229 158.229-158.229s158.229 70.84 158.229 158.229C927.938 235.61199999999997 857.103 306.453 769.714 306.453L769.714 306.453z" horiz-adv-x="1024" /> | ||
| 288 | + | ||
| 289 | + <glyph glyph-name="edit" unicode="" d="M769.089 516.251l-125.896 125.89 62.974 62.947c20.866 20.838 54.652 20.838 75.517 0l50.353-50.351c20.865-20.865 20.865-54.703 0-75.567L769.089 516.251zM403.349 150.52700000000004L277.453 276.418 619.706 615.982 745.601 490.09ZM176.314 47.283000000000015L252.912 251.87699999999995 377.753 127.01199999999994Z" horiz-adv-x="1024" /> | ||
| 290 | + | ||
| 291 | + <glyph glyph-name="delete" unicode="" d="M724.7403125 66.76999999999998h-423.70875c-25.5 0-46.2440625 20.2528125-46.2440625 45.1471875v391.8909375c0 24.88875 20.7459375 45.1378125 46.2440625 45.1378125h423.70875c25.5 0 46.2440625-20.248125 46.2440625-45.1378125v-391.8909375c0-24.8953125-20.7459375-45.1471875-46.2440625-45.1471875zM301.030625 507.6378125c-4.1690625 0-6.72-2.47875-6.72-3.82875v-391.8909375c0-1.3528125 2.551875-3.8371875 6.72-3.8371875h423.70875c4.17 0 6.72 2.4853125 6.72 3.8371875v391.8909375c0 1.35-2.551875 3.82875-6.72 3.82875h-423.70875zM812.1865625 509.283125h-600.3759375c-25.5009375 0-46.2440625 18.8728125-46.2440625 42.07125v57.2296875c0 23.19375 20.745 42.0628125 46.2440625 42.0628125h600.3759375c25.5 0 46.2440625-18.8690625 46.2440625-42.0628125v-57.2296875c0-23.1975-20.7459375-42.07125-46.2440625-42.07125zM205.0915625 551.4940624999999c0.3628125-0.6871875 2.551875-2.686875 6.72-2.686875h600.3759375c4.1671875 0 6.358125 1.99875 6.72 2.6878125v56.9446875c-0.3684375 0.69-2.5621875 2.6840625-6.72 2.6840625h-600.3759375c-4.1596875 0-6.3525-1.995-6.72-2.6840625v-56.945625zM595.20125 611.5193750000001h-163.636875c-25.5009375 0-46.2440625 18.871875-46.2440625 42.07125v10.065c0 23.19375 20.745 42.0628125 46.2440625 42.0628125h163.636875c25.5 0 46.2440625-18.868125 46.2440625-42.0628125v-10.065c0-23.1984375-20.745-42.07125-46.2440625-42.07125zM424.844375 653.729375c0.3628125-0.6871875 2.551875-2.6859375 6.72-2.6859375h163.636875c4.168125 0 6.358125 1.9978125 6.72 2.6859375v9.78c-0.3684375 0.69-2.563125 2.683125-6.72 2.683125h-163.636875c-4.1596875 0-6.3525-1.993125-6.72-2.683125v-9.78zM410.8428125 447.9059375h-28.2159375c-6.8409375 0-12.3871875-5.54625-12.3871875-12.3871875v-255.31875c0-6.8409375 5.54625-12.38625 12.3871875-12.38625h28.216875c6.8409375 0 12.38625 5.54625 12.38625 12.38625v255.3196875c0 6.8409375-5.54625 12.3871875-12.38625 12.3871875zM650.3590625 447.9059375h-28.2159375c-6.841875 0-12.3871875-5.54625-12.3871875-12.3871875v-255.31875c0-6.8409375 5.5471875-12.38625 12.3871875-12.38625h28.2159375c6.8409375 0 12.38625 5.54625 12.38625 12.38625v255.3196875c0 6.8409375-5.54625 12.3871875-12.38625 12.3871875zM530.6009375 447.9059375h-28.216875c-6.8409375 0-12.3871875-5.54625-12.3871875-12.3871875v-255.31875c0-6.8409375 5.5471875-12.38625 12.3871875-12.38625h28.216875c6.8409375 0 12.38625 5.54625 12.38625 12.38625v255.3196875c0 6.8409375-5.54625 12.3871875-12.38625 12.3871875z" horiz-adv-x="1024" /> | ||
| 292 | + | ||
| 293 | + <glyph glyph-name="engine" unicode="" d="M422.214332 360.70413299999996L186.183684 360.70413299999996l0 46.568461 236.030648 0c10.379577 40.075407 46.47537 69.794509 89.785668 69.794509 51.432433 0 93.067103-41.657943 93.067103-93.067103C605.067103 332.56756700000005 563.40916 290.909624 512 290.909624 468.689703 290.909624 432.593909 320.65199900000005 422.214332 360.70413299999996L422.214332 360.70413299999996zM512 779.634098c-218.529658 0-395.634098-177.10444-395.634098-395.634098 0-218.529658 177.10444-395.634098 395.634098-395.634098 154.76275 0 288.417257 89.064217 353.440885 218.55293l101.398692-59.112389-23.063141-39.959044-62.161099 35.909613c-33.745261-51.595341-77.42792-96.115813-129.093079-129.744711l35.653614-61.765464-40.308133-23.295867-35.653614 61.765464c-53.620057-27.345298-113.360805-44.404109-176.894987-47.73209L535.319139-127.99706800000001l-46.568461 0 0 70.981412c-63.534182 3.327981-123.27493 20.386792-176.894987 47.73209l-35.653614-61.765464-40.308133 23.295867 35.653614 61.765464c-51.665159 33.628898-95.347818 78.149371-129.093079 129.744711l-62.161099-35.909613-23.295867 40.308133 62.114553 35.863067c-27.415116 53.550239-44.799743 113.104807-48.127724 176.685534L0.002932 360.70413299999996l0 46.568461 70.958139 0c3.327981 63.580727 20.712609 123.135295 48.127724 176.685534l-62.114553 35.863067 23.295867 40.308133 62.161099-35.909613c33.745261 51.595341 77.42792 96.115813 129.093079 129.744711l-35.653614 61.765464 40.308133 23.295867 35.653614-61.765464c53.620057 27.345298 113.360805 44.404109 176.894987 47.73209L488.727406 895.997068l46.568461 0 0-70.981412c63.534182-3.327981 123.27493-20.386792 176.894987-47.73209l35.653614 61.765464 40.308133-23.295867-35.653614-61.765464c51.665159-33.628898 95.347818-78.149371 129.093079-129.744711l62.161099 35.909613 23.063141-39.959044-101.398692-59.112389C800.417257 690.569881 666.76275 779.634098 512 779.634098L512 779.634098z" horiz-adv-x="1024" /> | ||
| 294 | + | ||
| 295 | + <glyph glyph-name="chart-screen" unicode="" d="M963.930903 179.21903299999997l0 34.824133-37.354769-2.675946L926.576133 694.8538169999999 691.413206 694.8538169999999l0 70.462818L330.260819 765.316635l0-70.462818L95.690386 694.8538169999999l0-480.809627-35.621289 0 0-34.824133 432.583253 0 0-141.228535-90.313935 0 0-35.307134 216.753649 0 0 35.307134-90.313935 0L528.778128 179.21903299999997 963.930903 179.21903299999997zM366.212636 730.008478L655.216819 730.008478l0-35.307134L366.212636 694.7013440000001 366.212636 730.008478zM364.817869 332.73133600000006L222.224244 406.252817l14.295588 27.736715 123.238812-63.523779 173.928285 159.755494 127.5807-92.634794 93.13826 122.414027 12.420891-9.449209 12.420891-9.449209L667.639756 394.365068l-131.636063 95.621824L364.817869 332.73133600000006z" horiz-adv-x="1024" /> | ||
| 296 | + | ||
| 297 | + <glyph glyph-name="chart" unicode="" d="M953.440991 315.668729L784.061302 315.668729 681.06451 437.392024c-0.312108 0.373507-0.635473 0.737804-0.969071 1.094938-0.013303 0.014326-0.026606 0.027629-0.039909 0.041956-0.276293 0.293689-0.559748 0.582261-0.851391 0.86367-0.053212 0.051165-0.107447 0.099261-0.160659 0.150426-0.249687 0.237407-0.50142 0.470721-0.76134 0.697895-0.089028 0.078795-0.181125 0.153496-0.272199 0.230244-0.225127 0.191358-0.451278 0.381693-0.683569 0.565888-0.124843 0.099261-0.251733 0.192382-0.3776 0.288572-0.200568 0.153496-0.402159 0.306992-0.607844 0.454348-0.159636 0.11461-0.322341 0.224104-0.485047 0.334621-0.177032 0.12075-0.354064 0.242524-0.535189 0.35918-0.195451 0.12689-0.394996 0.246617-0.593518 0.367367-0.152473 0.092098-0.302899 0.186242-0.457418 0.275269-0.237407 0.137123-0.477884 0.268106-0.718361 0.397043-0.121773 0.065492-0.2415 0.132006-0.364297 0.195451-0.283456 0.146333-0.571005 0.285502-0.859577 0.420579-0.085958 0.040932-0.170892 0.082888-0.257873 0.122797-0.337691 0.154519-0.679475 0.298805-1.022283 0.437975-0.044002 0.017396-0.086981 0.036839-0.130983 0.055259-1.604544 0.638543-3.2623 1.113357-4.948709 1.416256-0.343831 0.062422-0.687662 0.112564-1.031493 0.160659-0.055259 0.008186-0.110517 0.01842-0.165776 0.025583-1.633197 0.216941-3.25923 0.26913-4.861728 0.173962-0.013303-0.001023-0.026606-0.001023-0.040932-0.002047-0.363274-0.022513-0.724501-0.054235-1.085728-0.091074-0.060375-0.00614-0.119727-0.011256-0.180102-0.017396-0.310062-0.034792-0.618077-0.077771-0.926092-0.122797-0.116657-0.017396-0.232291-0.032746-0.348947-0.051165-0.24764-0.040932-0.494257-0.086981-0.740874-0.135076-0.178055-0.033769-0.355087-0.067538-0.532119-0.105401-0.183172-0.039909-0.36532-0.083911-0.547469-0.127913-0.237407-0.056282-0.474814-0.113587-0.710175-0.176009-0.12075-0.032746-0.240477-0.068562-0.360204-0.102331-0.292666-0.082888-0.584308-0.168846-0.874927-0.26299-0.063445-0.020466-0.125867-0.042979-0.188288-0.063445-0.338714-0.112564-0.675382-0.230244-1.010003-0.357134-0.019443-0.007163-0.038886-0.01535-0.058328-0.022513-1.493004-0.571005-2.948145-1.284249-4.340865-2.149966-0.067538-0.041956-0.13303-0.088004-0.200568-0.12996-0.273223-0.172939-0.545422-0.346901-0.813528-0.531096-1.416256-0.971118-2.734274-2.089591-3.936659-3.333932-0.025583-0.026606-0.049119-0.053212-0.074701-0.079818-0.26299-0.275269-0.521886-0.555655-0.773619-0.843204-0.058328-0.066515-0.112564-0.134053-0.169869-0.200568-0.211824-0.246617-0.420579-0.496304-0.62217-0.751107-0.083911-0.106424-0.164752-0.214894-0.246617-0.322341-0.167822-0.218988-0.334621-0.437975-0.49528-0.663102-0.102331-0.14224-0.199545-0.287549-0.298805-0.431835-0.13303-0.194428-0.26606-0.387833-0.393973-0.586354-0.115634-0.179079-0.225127-0.360204-0.335644-0.541329-0.103354-0.168846-0.207731-0.336668-0.306992-0.508583-0.12689-0.220011-0.24764-0.443092-0.36839-0.666172-0.074701-0.138146-0.151449-0.275269-0.223081-0.416486-0.137123-0.265036-0.265036-0.533143-0.39295-0.802272-0.050142-0.105401-0.101307-0.209778-0.150426-0.316202-0.144286-0.317225-0.279363-0.63752-0.410346-0.958838-0.026606-0.064468-0.055259-0.127913-0.080841-0.193405-0.150426-0.378623-0.291642-0.760317-0.423649-1.14508-0.005117-0.016373-0.011256-0.031722-0.017396-0.048095-0.157589-0.463558-0.303922-0.930185-0.434905-1.400906l-97.897657-342.642824L435.093423 811.832042c-0.071631 0.569982-0.165776 1.13587-0.275269 1.696642-0.008186 0.040932-0.017396 0.081864-0.025583 0.12382-0.071631 0.356111-0.148379 0.709151-0.234337 1.061169-0.031722 0.128937-0.065492 0.255827-0.099261 0.38374-0.066515 0.254803-0.135076 0.508583-0.208754 0.760317-0.060375 0.206708-0.124843 0.411369-0.190335 0.615007-0.053212 0.166799-0.107447 0.332575-0.164752 0.49835-0.092098 0.26913-0.190335 0.535189-0.290619 0.800225-0.037862 0.098237-0.074701 0.196475-0.113587 0.293689-0.12382 0.313132-0.25378 0.623193-0.38988 0.930185-0.022513 0.050142-0.044002 0.100284-0.066515 0.150426-0.152473 0.338714-0.311085 0.672312-0.477884 1.00284-0.01228 0.024559-0.024559 0.049119-0.037862 0.074701-0.173962 0.343831-0.356111 0.682545-0.545422 1.017166-0.011256 0.019443-0.022513 0.039909-0.033769 0.059352-0.188288 0.330528-0.382717 0.654916-0.584308 0.975211-0.021489 0.034792-0.044002 0.068562-0.065492 0.103354-0.190335 0.298805-0.385786 0.592494-0.587378 0.88209-0.045025 0.065492-0.091074 0.12996-0.137123 0.194428-0.180102 0.252757-0.363274 0.502443-0.551562 0.74906-0.079818 0.105401-0.162706 0.208754-0.24457 0.312108-0.157589 0.199545-0.317225 0.396019-0.480954 0.590448-0.124843 0.149403-0.252757 0.295735-0.381693 0.442068-0.125867 0.14224-0.251733 0.284479-0.38067 0.424672-0.174985 0.191358-0.355087 0.378623-0.536212 0.563842-0.088004 0.090051-0.176009 0.180102-0.26606 0.26913-0.224104 0.222057-0.452301 0.440022-0.684592 0.653893-0.054235 0.050142-0.10847 0.100284-0.163729 0.150426-0.265036 0.240477-0.535189 0.474814-0.810459 0.704035-0.028653 0.023536-0.056282 0.047072-0.084934 0.070608-0.294712 0.243547-0.595564 0.479931-0.902556 0.711198-0.01535 0.011256-0.029676 0.022513-0.045025 0.033769-0.311085 0.232291-0.627287 0.458441-0.949628 0.677429-0.019443 0.013303-0.037862 0.025583-0.057305 0.038886-0.309038 0.208754-0.623193 0.411369-0.942465 0.606821-0.045025 0.027629-0.090051 0.054235-0.134053 0.081864-0.288572 0.174985-0.581238 0.343831-0.877997 0.50756-0.090051 0.050142-0.181125 0.098237-0.272199 0.147356-0.25071 0.134053-0.502443 0.265036-0.759293 0.391926-0.156566 0.077771-0.314155 0.151449-0.472767 0.226151-0.194428 0.091074-0.38988 0.182149-0.587378 0.268106-0.239454 0.105401-0.481977 0.204661-0.724501 0.302899-0.12382 0.049119-0.246617 0.100284-0.37146 0.148379-0.334621 0.128937-0.673335 0.249687-1.014096 0.36532-0.042979 0.014326-0.085958 0.029676-0.128937 0.044002-1.6158 0.536212-3.296069 0.915859-5.02034 1.119497-0.01535 0.002047-0.029676 0.004093-0.044002 0.00614-0.309038 0.035816-0.620124 0.062422-0.931209 0.086981-0.132006 0.010233-0.265036 0.025583-0.397043 0.033769-0.174985 0.011256-0.349971 0.01535-0.525979 0.022513-0.270153 0.01228-0.539282 0.024559-0.808412 0.027629-0.054235 0.001023-0.10847-0.001023-0.162706-0.001023-1.696642 0.010233-3.371794-0.149403-5.006014-0.466628-0.065492-0.01228-0.12996-0.027629-0.195451-0.039909-0.331551-0.067538-0.662079-0.13917-0.989537-0.218988-0.148379-0.035816-0.295735-0.075725-0.443092-0.11461-0.234337-0.061398-0.468674-0.124843-0.700965-0.192382-0.224104-0.065492-0.445138-0.135076-0.666172-0.206708-0.149403-0.048095-0.297782-0.096191-0.446162-0.147356-0.286526-0.098237-0.568958-0.201591-0.850367-0.309038-0.079818-0.030699-0.160659-0.061398-0.240477-0.093121-0.330528-0.12996-0.655939-0.267083-0.979304-0.410346-0.033769-0.01535-0.067538-0.029676-0.101307-0.045025-0.355087-0.159636-0.705058-0.325411-1.050935-0.500397-0.008186-0.004093-0.016373-0.008186-0.023536-0.01228-0.360204-0.182149-0.714268-0.372483-1.064238-0.569982-0.004093-0.002047-0.008186-0.005117-0.013303-0.007163-0.344854-0.196475-0.684592-0.399089-1.019213-0.610914-0.020466-0.013303-0.040932-0.025583-0.060375-0.038886-0.313132-0.199545-0.621147-0.404206-0.925069-0.61603-0.050142-0.034792-0.099261-0.070608-0.149403-0.105401-0.268106-0.190335-0.532119-0.38374-0.791016-0.583285-0.091074-0.069585-0.181125-0.141216-0.271176-0.212848-0.212848-0.167822-0.422625-0.337691-0.629333-0.512676-0.137123-0.11461-0.271176-0.232291-0.406253-0.349971-0.154519-0.1361-0.308015-0.272199-0.459464-0.412392-0.179079-0.164752-0.354064-0.332575-0.528026-0.502443-0.102331-0.100284-0.204661-0.199545-0.304945-0.301875-0.211824-0.212848-0.418532-0.430812-0.623193-0.651846-0.059352-0.064468-0.119727-0.128937-0.179079-0.194428-0.231267-0.254803-0.456395-0.515746-0.678452-0.780783-0.031722-0.037862-0.063445-0.075725-0.095167-0.11461-0.23536-0.285502-0.465604-0.577145-0.688685-0.874927-0.01842-0.024559-0.036839-0.048095-0.055259-0.072655-0.226151-0.301875-0.445138-0.60989-0.657986-0.923022-0.019443-0.028653-0.038886-0.057305-0.058328-0.084934-0.202615-0.300852-0.400113-0.606821-0.590448-0.916882-0.032746-0.053212-0.064468-0.105401-0.096191-0.158612-0.169869-0.282433-0.335644-0.567935-0.49528-0.857531-0.053212-0.097214-0.105401-0.194428-0.158612-0.292666-0.130983-0.24457-0.258896-0.490164-0.381693-0.73985-0.080841-0.162706-0.157589-0.326435-0.234337-0.491187-0.088004-0.189312-0.177032-0.378623-0.260943-0.571005-0.107447-0.245593-0.209778-0.493234-0.310062-0.741897-0.047072-0.11768-0.095167-0.234337-0.141216-0.354064-0.130983-0.340761-0.25378-0.684592-0.370437-1.030469-0.013303-0.037862-0.026606-0.075725-0.038886-0.113587-0.180102-0.543376-0.345877-1.092891-0.48914-1.650593L244.22942 305.59939599999996 67.355037 305.59939599999996c-14.128789 0-25.582655-11.453866-25.582655-25.582655s11.453866-25.582655 25.582655-25.582655l191.314257 0c0.867764 0 1.725294 0.044002 2.570545 0.128937 0.828878-0.080841 1.656733-0.1361 2.478448-0.1361 11.218506 0 21.512966 7.439436 24.644283 18.779715l113.358791 410.43686 103.412254-723.884758c0.00921-0.072655 0.021489-0.145309 0.030699-0.217964l0.046049-0.320295c0.002047-0.011256 0.005117-0.021489 0.00614-0.032746 0.109494-0.7552 0.25071-1.502213 0.425695-2.238994 0.01535-0.064468 0.031722-0.12689 0.047072-0.191358 0.166799-0.679475 0.358157-1.350764 0.579191-2.01182 0.041956-0.124843 0.088004-0.24764 0.130983-0.37146 0.210801-0.600681 0.437975-1.194198 0.692778-1.77646 0.068562-0.156566 0.144286-0.309038 0.215918-0.464581 0.223081-0.484024 0.460488-0.961908 0.713244-1.431605 0.106424-0.196475 0.213871-0.390903 0.325411-0.584308 0.265036-0.462534 0.545422-0.914836 0.838088-1.359974 0.088004-0.13303 0.170892-0.268106 0.260943-0.399089 0.354064-0.51677 0.732687-1.016143 1.12359-1.506307 0.078795-0.099261 0.156566-0.198521 0.237407-0.296759 0.420579-0.511653 0.864694-1.004887 1.325182-1.482771 0.051165-0.052189 0.101307-0.105401 0.152473-0.157589 0.494257-0.50449 1.010003-0.989537 1.548262-1.454118 0.00921-0.007163 0.017396-0.014326 0.026606-0.022513 1.636267-1.408069 3.466961-2.620687 5.466502-3.592828 0.075725-0.036839 0.151449-0.074701 0.228197-0.11154 0.576121-0.273223 1.165546-0.525979 1.768273-0.75827 0.158612-0.061398 0.319272-0.118704 0.478907-0.177032 0.558725-0.202615 1.124614-0.393973 1.704828-0.559748 0.005117-0.001023 0.010233-0.002047 0.01535-0.004093 0.278339-0.079818 0.562818-0.13917 0.844228-0.209778 0.394996-0.098237 0.789992-0.194428 1.184989-0.274246 0.283456-0.056282 0.568958-0.103354 0.854461-0.149403 0.445138-0.073678 0.889253-0.134053 1.333368-0.183172 0.229221-0.024559 0.456395-0.052189 0.686638-0.071631 0.710175-0.059352 1.418302-0.099261 2.122337-0.099261 0.337691 0 0.671289 0.027629 1.007957 0.040932 0.276293 0.011256 0.550539 0.013303 0.828878 0.033769 0.401136 0.029676 0.799202 0.079818 1.196245 0.127913 0.191358 0.022513 0.38067 0.033769 0.572028 0.061398 0.069585 0.010233 0.1361 0.024559 0.205685 0.034792 0.232291 0.034792 0.462534 0.075725 0.692778 0.116657 0.463558 0.082888 0.921999 0.176009 1.3743 0.283456 0.109494 0.025583 0.218988 0.047072 0.327458 0.074701 0.582261 0.145309 1.152243 0.316202 1.716084 0.499373 0.098237 0.031722 0.196475 0.063445 0.293689 0.097214 1.90335 0.644683 3.694135 1.50119 5.351891 2.540869 0.014326 0.00921 0.028653 0.01842 0.042979 0.027629 1.089821 0.686638 2.121314 1.452071 3.087315 2.287089 0.083911 0.071631 0.167822 0.143263 0.25071 0.215918 0.424672 0.3776 0.837064 0.76748 1.235131 1.170662 0.12382 0.124843 0.243547 0.254803 0.36532 0.382717 0.317225 0.334621 0.626263 0.677429 0.925069 1.028423 0.155543 0.183172 0.308015 0.36839 0.458441 0.556679 0.26606 0.331551 0.523933 0.670266 0.773619 1.01512 0.130983 0.180102 0.261966 0.35918 0.387833 0.543376 0.294712 0.429789 0.575098 0.86981 0.843204 1.316995 0.099261 0.165776 0.195451 0.334621 0.290619 0.503467 0.283456 0.499373 0.555655 1.004887 0.806365 1.52268 0.031722 0.065492 0.060375 0.13303 0.091074 0.199545 0.276293 0.584308 0.530073 1.178849 0.762363 1.784646 0.00614 0.017396 0.014326 0.034792 0.020466 0.051165 0.251733 0.661056 0.472767 1.336438 0.669242 2.020006 0.002047 0.008186 0.00614 0.016373 0.008186 0.024559l0.061398 0.215918c0.029676 0.106424 0.062422 0.210801 0.090051 0.317225l117.579929 411.527704 79.800487-94.308923c0.070608-0.083911 0.146333-0.161682 0.217964-0.243547 0.190335-0.220011 0.38374-0.436952 0.581238-0.649799 0.134053-0.144286 0.26913-0.285502 0.405229-0.425695 0.164752-0.168846 0.331551-0.335644 0.50142-0.500397 0.164752-0.159636 0.329505-0.319272 0.496304-0.473791 0.138146-0.12689 0.279363-0.25071 0.419556-0.37453 0.198521-0.174985 0.397043-0.350994 0.599657-0.518816 0.081864-0.067538 0.166799-0.132006 0.249687-0.198521 0.817622-0.661056 1.667989-1.264806 2.545986-1.811252 0.098237-0.061398 0.195451-0.125867 0.294712-0.185218 0.228197-0.138146 0.459464-0.267083 0.691755-0.398066 0.157589-0.089028 0.315178-0.178055 0.474814-0.264013 0.200568-0.107447 0.403183-0.208754 0.606821-0.311085 0.202615-0.101307 0.406253-0.201591 0.611937-0.297782 0.173962-0.080841 0.348947-0.159636 0.523933-0.237407 0.245593-0.10847 0.494257-0.212848 0.743944-0.313132 0.144286-0.058328 0.289596-0.115634 0.434905-0.171915 0.291642-0.11154 0.586354-0.216941 0.883113-0.317225 0.11154-0.037862 0.223081-0.076748 0.334621-0.113587 0.337691-0.109494 0.677429-0.210801 1.02126-0.305969 0.078795-0.021489 0.157589-0.046049 0.236384-0.066515 0.376577-0.101307 0.757247-0.193405 1.140986-0.277316 0.050142-0.011256 0.100284-0.023536 0.150426-0.034792 0.405229-0.085958 0.813528-0.162706 1.225921-0.229221 0.031722-0.005117 0.063445-0.01228 0.096191-0.017396 0.412392-0.065492 0.828878-0.12075 1.24741-0.165776 0.032746-0.004093 0.064468-0.00921 0.097214-0.01228 0.382717-0.039909 0.768503-0.068562 1.155313-0.092098 0.068562-0.004093 0.1361-0.01228 0.204661-0.01535 0.25992-0.013303 0.521886-0.01535 0.782829-0.020466 0.188288-0.004093 0.376577-0.01535 0.564865-0.01535 0.008186 0 0.01535 0.001023 0.023536 0.001023l181.208085 0c14.129812 0 25.582655 11.453866 25.582655 25.582655S967.56978 315.668729 953.440991 315.668729z" horiz-adv-x="1024" /> | ||
| 298 | + | ||
| 299 | + <glyph glyph-name="table" unicode="" d="M304.738028 343.684806M729.544153 511.153982M595.52788 637.723655M143.806755 686.614156l0-601.704045L881.172549 84.91011100000003l0 601.704045L143.806755 686.614156zM420.318416 299.80441299999995l0 128.936581 184.341448 0 0-128.936581L420.318416 299.80441299999995zM604.659865 256.825552l0-128.936581L420.318416 127.88897099999997l0 128.936581L604.659865 256.825552zM604.659865 600.656435l0-128.936581L420.318416 471.719854l0 128.936581L604.659865 600.656435zM374.232798 600.656435l0-128.936581L189.89135 471.719854l0 128.936581L374.232798 600.656435zM189.89135 428.740994L374.232798 428.740994l0-128.936581L189.89135 299.80441299999995 189.89135 428.740994zM650.745483 428.740994l184.341448 0 0-128.936581L650.745483 299.80441299999995 650.745483 428.740994zM650.745483 471.719854l0 128.936581 184.341448 0 0-128.936581L650.745483 471.719854zM189.89135 256.825552L374.232798 256.825552l0-128.936581L189.89135 127.88897099999997 189.89135 256.825552zM650.745483 127.88897099999997l0 128.936581 184.341448 0 0-128.936581L650.745483 127.88897099999997z" horiz-adv-x="1024" /> | ||
| 300 | + | ||
| 301 | + <glyph glyph-name="tree" unicode="" d="M962.691679 258.53447400000005c-8.721639 54.163597-34.298154 97.584526-73.089645 133.8638-44.721551 41.825594-99.282191 65.724911-156.512636 84.432994-26.935466 8.80555-54.079686 16.971533-81.129762 25.427112 41.188074 7.485485 81.495082 10.991332 121.872698 12.269441 39.906895 1.26276 79.885422 0.276293 120.633475 0.276293-30.644951 44.233434-74.588789 71.110571-127.260405 84.384899-53.004191 13.357216-103.742782 9.715269-152.261822-32.081673 18.715247 66.336848 12.464893 120.18936-38.810934 160.830989-32.450063 25.719778-77.127611 31.000038-111.319341 14.916734 58.583257-31.127951 82.051761-84.265172 94.304829-145.102772-44.638663 69.056795-110.067838 96.432283-187.710173 86.487793-56.123228-7.187703-110.723777-26.270317-166.003801-40.048111 15.677051-14.358009 31.136138-24.116257 47.932686-27.839045 51.427276-11.399631 103.405091-20.301372 155.098427-30.524201 37.036521-7.323802 75.163887-12.144598 104.448864-40.879036-78.096682 23.458271-155.928329 30.034037-235.541551 9.092076C186.718589 530.20385 104.838743 479.821369 81.996502 429.437865c46.955428 23.955598 95.807043 18.776645 144.606469 17.139356 37.737486-1.266853 76.089979-3.461845 113.238041 1.594311 52.683896 7.170307 104.513332 20.624736 159.209048 31.909757-91.88164-62.077847-186.516997-122.342396-159.194722-259.889075 58.852386 100.205213 163.392324 150.107763 229.951229 238.105956-16.239869-91.498924 6.980995-169.376619 66.432015-237.83785 41.815361-48.152696 89.979314-92.010577 110.706381-156.013263 12.758582 141.877311-25.823132 270.789333-97.911984 396.334677C755.996107 391.809873 858.199837 325.909977 962.691679 258.53447400000005zM513.476631 320.10169099999996c-27.767414-14.065344-39.008432-35.954887-42.252313-64.998363-6.078439-54.437843-15.162328-108.532879-21.799492-162.916487-3.90903-32.026414-5.519714-64.333214-8.16496-96.53052 30.078039 0 55.507198 0 79.961146 0 9.912767 78.200036 19.732413 154.247037 28.913517 230.369761 0.883113 7.322779-0.756223 15.746636-3.705392 22.591531C536.246217 272.25086999999996 524.967336 295.41135899999995 513.476631 320.10169099999996z" horiz-adv-x="1024" /> | ||
| 302 | + | ||
| 303 | + <glyph glyph-name="upload-circle" unicode="" d="M512-128c282.768 0 512 229.216 512 512C1024 666.768 794.768 896 512 896 229.216 896 0 666.768 0 384 0 101.21600000000001 229.216-128 512-128zM512 848c256.272 0 464-207.744 464-464 0-256.272-207.728-464-464-464S48 127.72799999999995 48 384C48 640.256 255.728 848 512 848zM377.728 534.544L480 534.544l0-478c0-17.664 14.336-32 32-32s32 14.336 32 32L544 534.544l102.272 0c17.616 0 23.424 11.568 12.944 25.68l-128.128 172.624c-10.496 14.128-27.664 14.128-38.16 0L364.8 560.24C354.32 546.1120000000001 360.128 534.544 377.728 534.544z" horiz-adv-x="1024" /> | ||
| 304 | + | ||
| 305 | + <glyph glyph-name="templeate-1" unicode="" d="M320 384L106.666667 384c-35.349333 0-64-28.650667-64-64l0-213.333333c0-35.349333 28.650667-64 64-64l213.333333 0c35.349333 0 64 28.650667 64 64L384 320C384 355.349333 355.349333 384 320 384zM256 341.33333300000004l0-256L170.666667 85.33333300000004 170.666667 341.33333300000004 256 341.33333300000004zM85.333333 106.66666699999996L85.333333 320c0 11.754667 9.578667 21.333333 21.333333 21.333333l42.666667 0 0-256L106.666667 85.33333300000004C94.912 85.33333300000004 85.333333 94.91200000000003 85.333333 106.66666699999996zM341.333333 106.66666699999996c0-11.754667-9.578667-21.333333-21.333333-21.333333l-42.666667 0L277.333333 341.33333300000004l42.666667 0c11.754667 0 21.333333-9.578667 21.333333-21.333333L341.333333 106.66666699999996zM576 554.666667L234.666667 554.666667c-47.061333 0-85.333333-38.272-85.333333-85.333333l0-42.666667 42.666667 0 0 42.666667c0 23.530667 19.136 42.666667 42.666667 42.666667l42.666667 0 0-96 21.333333 0L298.666667 512l213.333333 0 0-426.666667-85.333333 0-21.333333-42.666667 170.666667 0c47.061333 0 85.333333 38.272 85.333333 85.333333L661.333333 469.333333C661.333333 516.394667 623.061333 554.666667 576 554.666667zM618.666667 128c0-23.530667-19.136-42.666667-42.666667-42.666667l-42.666667 0L533.333333 512l42.666667 0c23.530667 0 42.666667-19.136 42.666667-42.666667L618.666667 128zM853.333333 42.66666699999996c47.061333 0 85.333333 38.272 85.333333 85.333333L938.666667 640c0 47.061333-38.272 85.333333-85.333333 85.333333L341.333333 725.333333c-47.061333 0-85.333333-38.272-85.333333-85.333333l0-42.666667 42.666667 0 0 42.666667c0 23.530667 19.136 42.666667 42.666667 42.666667l85.333333 0 0-85.333333 21.333333 0 0 85.333333 298.666667 0 0-597.333333-42.666667 0-21.333333-42.666667L853.333333 42.66666699999996zM896 128c0-23.530667-19.136-42.666667-42.666667-42.666667l-85.333333 0L768 682.666667l85.333333 0c23.530667 0 42.666667-19.136 42.666667-42.666667L896 128z" horiz-adv-x="1024" /> | ||
| 306 | + | ||
| 307 | + <glyph glyph-name="util" unicode="" d="M282.127566 639.0826059999999c-13.120832-13.221116-30.625508-20.50808-49.278333-20.50808-18.618033 0-36.157501 7.286963-49.311079 20.50808l-32.885991 33.019021 98.623181 99.027387 32.885991-33.019021c13.186324-13.221116 20.473287-30.829146 20.473287-49.548486C302.599829 669.8769589999999 295.347658 652.26893 282.127566 639.0826059999999L282.127566 639.0826059999999zM249.308089 705.0899489999999l-0.032746 0-32.884968-32.987299c4.418636-4.417613 10.252505-6.845918 16.458857-6.845918 6.206352 0 12.041244 2.428306 16.426111 6.813173 4.418636 4.452405 6.845918 10.288321 6.845918 16.493649C256.121262 694.802652 253.693979 700.671313 249.308089 705.0899489999999L249.308089 705.0899489999999zM396.703067 496.343671L249.578242 638.778684l32.278147 33.626865 147.157571-142.468782L396.703067 496.343671 396.703067 496.343671zM751.45979 133.92852400000004L618.131179 274.071332l32.884968 32.985252 133.330658-140.141784L751.45979 133.92852400000004 751.45979 133.92852400000004zM850.184279 67.95597399999997c-22.700001-22.766516-52.481282-34.168194-82.264609-34.168194-29.714765 0-59.395762 11.333116-81.994456 34.033118L538.194592 222.398462l32.884968 33.021068L718.811206 100.806149c27.117614-27.183106 71.269183-27.116591 98.488105 0.169869 27.186176 27.287483 27.117614 71.773673-0.135076 99.196233l-147.426701 154.273642 32.851199 33.021068 147.461493-154.308435C895.447159 187.557956 895.514697 113.421468 850.184279 67.95597399999997L850.184279 67.95597399999997zM801.716404 468.380806c-30.726815-30.860868-71.605851-47.861054-115.082038-47.861054-43.442418 0-84.321454 16.999163-115.082038 47.861054-30.760584 30.861892-47.692209 71.877027-47.692209 115.521037s16.931624 84.691891 47.692209 115.554806l42.497906 42.666752 32.885991-32.986275-42.497906-42.667775c-21.99085-22.090111-34.099632-51.367925-34.065863-82.566484 0-31.163767 12.108782-60.441581 34.065863-82.499969 21.956058-22.058388 51.16531-34.20094 82.196047-34.20094 31.064506 0 60.239989 12.142551 82.196047 34.20094l42.49893 42.665729 32.884968-33.019021L801.716404 468.380806 801.716404 468.380806zM844.214311 511.049604l-49.311079 49.51267-16.45988-16.493649c-17.538445-17.638729-40.879036-27.352975-65.73719-27.352975l-0.032746 0c-24.824385 0-48.198745 9.713222-65.73719 27.352975-17.539468 17.607006-27.252691 41.082674-27.252691 66.007343 0 24.925692 9.679453 48.400337 27.252691 66.040089l16.458857 16.495696-49.344848 49.51267 32.885991 33.021068 82.196047-82.533738-49.311079-49.482995c-8.769734-8.835226-13.626345-20.571525-13.626345-33.051767 0-12.446473 4.856611-24.183795 13.626345-32.987299 8.768711-8.835226 20.439518-13.69286 32.884968-13.69286 12.411681 0 24.082488 4.857635 32.852222 13.69286l49.344848 49.514717 82.196047-82.534761L844.214311 511.049604 844.214311 511.049604zM233.591129 129.139451l0 46.681182 46.512337 0 0-46.681182L233.591129 129.139451 233.591129 129.139451zM538.160823 356.538555l-92.247984 91.572602 32.717146 33.18889 92.214215-91.539856L538.160823 356.538555 538.160823 356.538555zM304.2187 101.04355599999997l173.634596 239.842507 37.641295-27.454282L338.318332 69.23715300000003c-21.923312-22.057365-51.132564-34.20094-82.19707-34.20094-31.028691 0-60.237943 12.143575-82.196047 34.168194-21.958104 22.057365-34.065863 51.335179-34.065863 82.533738 0 31.198559 12.107759 60.476373 34.065863 82.533738l2.765997 2.360767L417.243893 412.054963l27.353998-37.742603L205.596542 200.00340600000004c-12.411681-13.053294-19.224854-30.119995-19.224854-48.26526 0-18.71934 7.252171-36.291554 20.438495-49.513694C232.747925 76.15265599999998 277.775444 75.71263499999998 304.2187 101.04355599999997L304.2187 101.04355599999997z" horiz-adv-x="1024" /> | ||
| 308 | + | ||
| 309 | + <glyph glyph-name="layouts" unicode="" d="M917.213-103.239h-810.426c-23.151 0-41.918 18.766-41.918 41.917l0 698.644c0 23.148 18.767 41.917 41.918 41.917h810.426c23.149 0 41.918-18.769 41.918-41.917v-698.643c0-23.151-18.769-41.918-41.918-41.918zM316.38-61.321h600.833v363.294h-600.833v-363.294zM106.787-61.321h167.674v363.294h-167.674v-363.294zM148.705 637.322c-23.151 0-41.918-18.769-41.918-41.92s18.767-41.92 41.918-41.92 41.92 18.768 41.92 41.92-18.769 41.92-41.92 41.92zM274.461 637.322c-23.151 0-41.918-18.769-41.918-41.92s18.767-41.92 41.918-41.92c23.151 0 41.92 18.768 41.92 41.92s-18.77 41.92-41.92 41.92zM400.216 637.322c-23.15 0-41.918-18.769-41.918-41.92s18.769-41.92 41.918-41.92c23.152 0 41.92 18.768 41.92 41.92s-18.768 41.92-41.92 41.92zM875.293 511.566h-768.506v-167.675h810.426l0 167.675h-41.921z" horiz-adv-x="1024" /> | ||
| 310 | + | ||
| 311 | + <glyph glyph-name="prev-circle" unicode="" d="M508.638018 827.97307c-246.403458 0-446.845649-200.463469-446.845649-446.845649 0-246.382179 200.442191-446.845649 446.845649-446.845649 246.382179 0 446.845649 200.463469 446.845649 446.845649C955.483667 627.5096 755.041476 827.97307 508.638018 827.97307zM508.638018-23.16149900000005c-222.933422 0-404.28892 181.355498-404.28892 404.28892 0 222.933422 181.355498 404.28892 404.28892 404.28892 222.912144 0 404.28892-181.355498 404.28892-404.28892C912.926939 158.19399899999996 731.57144-23.16149900000005 508.638018-23.16149900000005zM252.87208 485.1999c8.639016 26.129831-32.470784 37.215859-41.067243 11.32009-27.810822-83.730363-22.321004-168.545923 14.086277-248.573851 11.362646-24.938243 48.025268-3.298146 36.747735 21.491148C230.976644 339.081373 228.806251 412.853462 252.87208 485.1999zM599.262572 247.73335499999996l-127.627629 133.394065 127.47868 133.223838c9.043305 9.064583 9.022026 23.789211-0.021278 32.832516-8.809243 8.830521-24.087108 8.766686-32.832516 0l-148.310199-148.310199c-4.617405-4.638683-6.979303-11.064749-6.553736-17.746156-0.404289-6.702685 1.936331-13.107472 6.575015-17.788712l148.310199-148.28892c4.383343-4.383343 10.213615-6.787798 16.405619-6.787798 6.170726 0 12.000997 2.404455 16.405619 6.787798C608.156928 224.114371 608.156928 238.83899899999994 599.262572 247.73335499999996z" horiz-adv-x="1024" /> | ||
| 312 | + | ||
| 313 | + <glyph glyph-name="carousel" unicode="" d="M1002.069333 144.38400000000001L1002.069333 611.6906670000001c0 24.213333-16.917333 49.578667-42.069333 49.578667l-64 0 1.152 6.4c0 31.338667-26.005333 57.6-58.538667 57.6L186.432 725.269333c-31.936 0-58.410667-31.957333-58.410667-64l-0.213333 0.96L67.178667 662.229333c-25.152 0-45.226667-20.288-45.226667-44.501333l0-467.328L21.354667 150.39999999999998c0-24.789333 20.629333-44.693333 45.312-44.693333L127.786667 105.70666700000004l0-5.184C127.786667 69.03466700000001 153.792 42.66666699999996 186.432 42.66666699999996l652.842667 0c31.658667 0 56.277333 10.901333 56.725333 42.602667l64 0c24.661333 0 42.666667 34.325333 42.666667 59.114667L1002.069333 144.38400000000001zM128 149.26933299999996L64 149.26933299999996l0 469.333333 64 0L128 149.26933299999996zM853.333333 106.602667c0-6.421333-14.848-21.333333-21.333333-21.333333l-640 0c-6.485333 0-21.333333 14.848-21.333333 21.333333l0 554.666667c0 6.378667 9.258667 18.56 15.744 18.56l5.589333 2.773333 640 0c6.442667 0 21.333333-14.954667 21.333333-21.333333L853.333333 106.602667zM960 127.93600000000004l-64 0 0 490.666667 60.842667 1.984c4.970667 0 3.157333 2.944 3.157333-1.984l0-469.333333C960 144.29866700000002 965.013333 127.93600000000004 960 127.93600000000004zM412.458667 399.829333c43.925333 0 79.637333 34.773333 79.637333 77.482667 0 42.752-35.712 77.482667-79.637333 77.482667-43.925333 0-79.637333-34.730667-79.637333-77.482667C332.8 434.602667 368.533333 399.829333 412.458667 399.829333zM412.458667 516.0533330000001c21.952 0 39.829333-17.365333 39.829333-38.741333 0-21.333333-17.877333-38.741333-39.829333-38.741333-21.952 0-39.829333 17.408-39.829333 38.741333C372.629333 498.709333 390.506667 516.0533330000001 412.458667 516.0533330000001zM785.92 457.386667c-95.914667-23.338667-137.728-87.765333-168.256-134.805333-24.213333-37.269333-39.082667-58.346667-65.109333-58.346667l-0.042667 0c-35.456 0-57.109333 14.272-80.042667 28.16-24.362667 14.741333-49.536 29.952-88.64 29.952-75.648 0-156.906667-93.269333-165.930667-103.893333L213.333333 167.38133300000004c0-10.709333 8.917333-18.112 19.925333-18.112l557.504 0c10.986667 0 19.904 7.402667 19.904 18.112L810.666667 438.570667c0 5.973333-2.837333 11.626667-7.658667 15.296C798.186667 457.536 791.872 458.858667 785.92 457.386667zM770.858667 188.52266699999996L253.162667 188.52266699999996c24.874667 27.733333 85.290667 95.082667 130.666667 95.082667 27.733333 0 46.229333-11.157333 67.605333-24.128 25.152-15.168 53.632-32.426667 99.712-33.941333l2.944-0.064c47.637333 0 71.722667 37.12 97.237333 76.416 26.645333 41.088 56.469333 79.104 119.530667 102.485333L770.858667 188.52266699999996z" horiz-adv-x="1024" /> | ||
| 314 | + | ||
| 315 | + <glyph glyph-name="code-circle" unicode="" d="M513.544163 893.525741c-282.101629 0-510.78094-228.679311-510.78094-510.76288 0-282.083569 228.679311-510.76288 510.78094-510.76288s510.76288 228.679311 510.76288 510.76288C1024.325103 664.8464309999999 795.645793 893.525741 513.544163 893.525741zM513.544163-83.46335899999997c-257.503523 0-466.22622 208.740757-466.22622 466.22622S256.0587 848.989082 513.544163 848.989082s466.22622-208.740757 466.22622-466.22622S771.047686-83.46335899999997 513.544163-83.46335899999997zM171.771357 359.77212099999997L414.357086 256.088033 414.357086 300.805295 221.978945 380.50532599999997 414.357086 459.464886 414.357086 504.182148 171.771357 401.76228ZM442.585309 193.38272800000004L478.814238 193.38272800000004 584.737801 572.1429949999999 548.743656 572.1429949999999ZM612.749301 504.182148L612.749301 459.464886 804.874598 380.50532599999997 612.749301 300.805295 612.749301 256.088033 855.33503 359.77212099999997 855.33503 401.76228Z" horiz-adv-x="1025" /> | ||
| 316 | + | ||
| 317 | + <glyph glyph-name="water" unicode="" d="M862.315763 33.684211000000005C802.869868 33.684211000000005 754.526289 82.94399999999996 754.526289 143.50371900000005 754.526289 162.33094700000004 759.35885 180.96056099999998 768.520956 197.43438600000002 768.64671 197.79368399999998 768.808394 198.15298199999995 769.006008 198.49431600000003L849.075622 334.542596 849.057657 334.542596 862.315763 357.052632 875.573868 334.542596 875.573868 334.542596 955.140464 199.356632C955.715341 198.67396499999995 956.164464 197.865544 956.380043 196.96729800000003 965.380464 180.60126300000002 970.123201 162.151298 970.105236 143.50371900000005 970.105236 82.94399999999996 921.761657 33.684211000000005 862.315763 33.684211000000005L862.315763 33.684211000000005ZM924.33064 188.57768399999998C924.204885 188.79326300000002 924.115061 189.02680699999996 924.025236 189.27831600000002L862.315763 302.996211 800.606289 189.260351C800.516464 189.02680699999996 800.42664 188.79326300000002 800.300885 188.57768399999998 793.977236 176.505263 790.635763 162.81600000000003 790.635763 148.965053 790.635763 105.29235100000005 822.792956 69.75775399999998 862.333727 69.75775399999998 901.856534 69.75775399999998 933.995763 105.29235100000005 933.995763 148.98301800000002 933.995763 162.81600000000003 930.654289 176.52322800000002 924.33064 188.57768399999998L924.33064 188.57768399999998ZM682.684605 392.982456C593.50678 392.982456 520.982429 469.602807 520.982429 563.8108070000001 520.982429 593.093614 528.240254 622.071018 541.965447 647.706947 542.163061 648.281825 542.396605 648.820772 542.684043 649.341754L662.815412 860.968421 662.797447 860.968421 682.684605 896 702.571763 860.968421 702.535833 860.968421 821.89471 650.689123C822.774991 649.647158 823.439692 648.3716489999999 823.781026 646.970386 837.25471 621.514105 844.368815 592.8241399999999 844.35085 563.8108070000001 844.35085 469.602807 771.844464 392.982456 682.684605 392.982456L682.684605 392.982456ZM791.408254 630.1192980000001C791.21064 630.4965609999999 791.030991 630.891789 790.887271 631.322947L682.684605 823.924772 574.446008 631.287018C574.320254 630.891789 574.140605 630.4965609999999 573.942991 630.1013330000001 562.840675 609.6931930000001 556.912254 596.075789 556.912254 572.631579 556.912254 498.634105 613.375973 428.876351 682.684605 428.876351 751.993236 428.876351 808.367131 489.058807 808.367131 563.056281 808.367131 586.500491 802.492605 609.6931930000001 791.408254 630.1192980000001L791.408254 630.1192980000001ZM538.695833 276.983018C540.115061 275.330246 541.174991 273.33614 541.713938 271.12645599999996 563.433517 231.11859600000003 574.895131 186.02666699999997 574.895131 140.43171900000004 574.895131-7.581192999999985 458.051341-128 314.403903-128 170.738499-128 53.89471-7.581192999999985 53.89471 140.43171900000004 53.89471 186.47578899999996 65.589868 231.998877 87.704675 272.294175 88.010078 273.17445599999996 88.387341 274.01880700000004 88.872394 274.863158L282.408394 607.411649 282.372464 607.411649 314.403903 662.45614 346.453306 607.411649 346.399412 607.411649 538.695833 276.983018 538.695833 276.983018ZM314.403903 590.614456L119.807973 257.79649099999995C119.556464 257.113825 119.251061 256.449123 118.873798 255.78442099999995 98.932745 220.48336800000004 88.387341 180.42161399999998 88.387341 139.91073700000004 88.387341 12.072420999999963 189.799271-91.89052600000002 314.421868-91.89052600000002 439.026499-91.89052600000002 540.420464 12.072420999999963 540.402499 139.91073700000004 540.402499 180.42161399999998 529.857096 220.50133300000005 509.916043 255.78442099999995 509.53878 256.449123 509.233377 257.131789 508.963903 257.86835099999996L314.403903 590.614456 314.403903 590.614456Z" horiz-adv-x="1024" /> | ||
| 318 | + | ||
| 319 | + <glyph glyph-name="date" unicode="" d="M933.185668 758.3591759999999l-167.054737 0 0 56.506968L732.333174 814.866145l0-56.506968L539.505447 758.3591759999999l0 56.506968-33.796734 0 0-56.506968-216.255299 0 0 56.506968-33.796734 0 0-56.506968L88.005356 758.3591759999999c-12.255115 0-22.224164-9.970072-22.224164-22.224164l0-706.60521c0-12.255115 9.970072-22.225187 22.224164-22.225187l845.179288 0c12.255115 0 22.225187 9.970072 22.225187 22.225187L955.409832 736.135012C955.409832 748.389104 945.43976 758.3591759999999 933.185668 758.3591759999999zM939.036933 29.528778999999986c0-3.226484-2.62478-5.852288-5.852288-5.852288l-845.179288 0c-3.226484 0-5.851265 2.62478-5.851265 5.852288L82.154092 736.135012c0 3.226484 2.62478 5.851265 5.851265 5.851265l167.650301 0 0-55.657624 33.796734 0 0 55.657624 216.255299 0 0-55.657624 33.796734 0 0 55.657624L732.333174 741.986277l0-55.657624 33.796734 0 0 55.657624 167.054737 0c3.226484 0 5.852288-2.62478 5.852288-5.851265L939.036933 29.528778999999986zM206.835765 608.260623l129.098263 0 0-94.008071-129.098263 0 0 94.008071ZM458.879152 608.260623l129.098263 0 0-94.008071-129.098263 0 0 94.008071ZM684.827207 608.260623l129.098263 0 0-94.008071-129.098263 0 0 94.008071ZM206.835765 433.345871l129.098263 0 0-94.008071-129.098263 0 0 94.008071ZM458.879152 433.345871l129.098263 0 0-94.008071-129.098263 0 0 94.008071ZM684.827207 433.345871l129.098263 0 0-94.008071-129.098263 0 0 94.008071ZM206.835765 257.877511l129.098263 0 0-94.008071-129.098263 0 0 94.008071ZM458.879152 257.877511l129.098263 0 0-94.008071-129.098263 0 0 94.008071ZM684.827207 257.877511l129.098263 0 0-94.008071-129.098263 0 0 94.008071Z" horiz-adv-x="1024" /> | ||
| 320 | + | ||
| 321 | + <glyph glyph-name="layer" unicode="" d="M96.089 724.318l0-684.236 831.822 0L927.911 724.318 96.089 724.318zM884.178 84.457L140.464 84.457 140.464 489.559l743.714 0L884.178 84.457z" horiz-adv-x="1024" /> | ||
| 322 | + | ||
| 323 | + <glyph glyph-name="fonts-clear" unicode="" d="M944.787709 197.20939699999997L857.081297 197.20939699999997 741.092979-127.73993700000005 815.146059-127.73993700000005 832.440281-65.58476199999996 966.82809-65.58476199999996 984.512408-127.73993700000005 1062.011328-127.73993700000005 944.787709 197.20939699999997 944.787709 197.20939699999997ZM848.04409 1.1865400000000363L898.951519 153.25866699999995 949.923963 1.1865400000000363 848.04409 1.1865400000000363 848.04409 1.1865400000000363ZM210.238376 489.910857L183.386821 513.121524 12.46009 313.522794C-5.874386 292.652698-3.728862 260.989968 17.271265 242.720508 38.401424 224.45104800000001 70.454249 226.66158700000005 88.853741 247.53168300000004L100.361551 260.599873C106.603075 267.55657099999996 117.200662 268.20673 124.287392 262.22527 131.309106 256.048762 132.024281 245.51619000000005 125.912789 238.55949199999998 107.448281 217.62438099999997 98.085995 173.08850800000005 119.216154 154.81904799999995 140.281297 136.614603 183.841932 151.76330199999995 202.371455 172.69841299999996 208.417932 179.525079 219.145551 180.30526999999995 226.167265 174.19377799999995 233.188979 168.14730199999997 233.904154 157.61473 227.792662 150.65803200000005 209.328154 129.85295199999996 199.965868 85.05701599999998 221.096027 66.91758700000003 242.16117 48.648127000000045 285.656789 63.86184100000003 304.186313 84.666921 310.362821 91.62361899999996 321.025424 92.40381000000002 327.982122 86.29231700000003 335.068852 80.18082500000003 335.784027 69.71326999999997 329.672535 62.75657100000001 311.143011 41.82146 301.845741-2.9094599999999673 322.910884-20.983873000000017 344.041043-39.253333 387.601678-24.039619000000016 406.00117-3.234540000000038 412.177678 3.7221590000000333 422.840281 4.437332999999967 429.927011-1.6091430000000173 436.948725-7.720635000000016 437.598884-18.31822199999999 431.487392-25.144889000000035 413.022884-46.08000000000004 403.725614-90.81092100000001 424.790757-109.01536499999997 445.920916-127.15479400000004 477.973741-125.00927000000001 496.373233-104.20419000000004L667.299963 95.52457100000004 658.652852 132.90869799999996 210.238376 489.910857 210.238376 489.910857ZM844.013106 329.516698L680.10809 471.12127 929.639011 715.190857C933.2799 718.376635 936.725741 721.562413 939.976535 725.203302 977.815773 768.048762 973.524725 833.129651 930.28917 870.513778 887.183646 907.702857 821.58263 903.281778 783.808408 860.631365L783.483328 860.761397 564.249805 571.3107299999999 399.824662 713.56546C385.391138 726.113524 363.480789 724.553143 350.867709 710.249651L248.14263 593.871238 225.322059 567.994921 251.393424 545.434413 695.7119 161.25561900000002 726.26936 136.679619 847.328916 281.014857C859.941995 295.318349 858.44663 316.96863499999995 844.013106 329.516698L844.013106 329.516698ZM817.941741 830.724063C839.136916 854.779937 876.000916 857.315556 900.186821 836.250413 924.372725 815.380317 926.908344 778.906413 905.648154 754.85054 884.452979 730.924698 847.588979 728.389079 823.403075 749.3892060000001 799.21717 770.324317 796.811582 806.798222 817.941741 830.724063L817.941741 830.724063ZM765.473932 758.491429C768.919773 741.522286 777.6319 725.593397 791.80536 713.305397 806.043836 701.017397 823.533106 694.580825 841.087392 693.540571L643.634186 494.526984 593.116852 538.2176509999999 765.473932 758.491429 765.473932 758.491429ZM776.006503 299.739429L709.755328 219.314794 307.502122 566.369524 376.809043 645.03873C382.920535 651.865397 393.38809 652.5155560000001 400.409805 646.534095L774.381106 323.01511100000005C781.337805 317.098667 782.117995 306.69612700000005 776.006503 299.739429L776.006503 299.739429Z" horiz-adv-x="1063" /> | ||
| 324 | + | ||
| 325 | + <glyph glyph-name="dialogue" unicode="" d="M998.4 500.992C998.4 682.24 811.392 829.696 581.632 829.696c-121.216 0-235.904-41.472-315.264-114.048 37.504 8.192 76.416 13.056 115.456 14.464 59.264 30.592 128.256 46.72 199.808 46.72 198.144 0 359.296-123.776 359.296-275.968 0-31.872-7.04-63.232-20.992-93.056 7.552-28.16 11.264-57.344 11.008-86.528C975.104 374.784 998.4 436.736 998.4 500.992L998.4 500.992zM442.368 398.72c-30.72 0-55.808-23.04-55.808-51.328s25.088-51.328 55.808-51.328 55.808 23.04 55.808 51.328S473.088 398.72 442.368 398.72zM243.328 398.72c-30.72 0-55.808-23.04-55.808-51.328s25.088-51.328 55.808-51.328 55.808 23.04 55.808 51.328C299.264 375.67999999999995 274.176 398.72 243.328 398.72zM641.28 398.72c-30.72 0-55.808-23.04-55.808-51.328s25.088-51.328 55.808-51.328 55.808 23.04 55.808 51.328S672.128 398.72 641.28 398.72zM442.368 677.888C212.608 677.888 25.6 530.432 25.6 349.312c0-179.968 173.696-296.192 332.544-321.664l60.8-78.336c5.632-7.424 14.464-11.008 23.296-11.008 8.832 0 17.792 3.712 23.424 11.008l60.8 78.464C685.312 53.24800000000005 859.008 169.47199999999998 859.008 349.44000000000005 859.136 530.432 672.128 677.888 442.368 677.888zM714.88 173.82399999999996c-52.224-45.184-124.288-77.952-197.376-89.6C503.168 81.91999999999996 490.112 74.24000000000001 481.28 62.72000000000003l-38.784-49.92-38.912 49.92c-8.96 11.52-21.888 19.2-36.224 21.504-73.216 11.776-145.152 44.416-197.376 89.728-39.68 34.304-86.912 92.544-86.912 175.36 0 69.76 35.584 136.192 100.352 187.264 68.736 54.144 160.768 84.096 258.944 84.096 98.304 0 190.336-29.824 259.072-84.096 64.768-51.072 100.352-117.504 100.352-187.264C801.664 266.36800000000005 754.56 208.12800000000004 714.88 173.82399999999996z" horiz-adv-x="1024" /> | ||
| 326 | + | ||
| 327 | + <glyph glyph-name="cellphone-fine" unicode="" d="M731.514252 896L292.485748 896C195.323702 896 116.154627 816.830925 116.154627 719.6688790000001l0-671.337759c0-97.162046 79.169075-176.331121 176.331121-176.331121l438.628661 0c97.162046 0 176.331121 79.169075 176.331121 176.331121L907.445529 719.6688790000001C907.845373 816.830925 828.676298 896 731.514252 896zM292.485748 853.216712l438.628661 0c70.772355 0 128.349863-55.178446 133.147989-124.751269L159.737602 728.465443C164.135884 798.038266 222.113237 853.216712 292.485748 853.216712zM865.062085 48.73096399999997c0-73.571261-59.976572-133.547833-133.547833-133.547833L292.485748-84.816868c-73.571261 0-133.547833 59.976572-133.547833 133.547833l0 45.582194 705.724326 0L864.662241 48.73096399999997zM865.062085 137.096447L158.937915 137.096447 158.937915 685.682155l705.724326 0L864.662241 137.096447zM512-54.82858299999998c13.59469 0 26.789535 5.597813 36.385787 15.194065 9.596251 9.596251 15.194065 22.791097 15.194065 36.385787 0 13.59469-5.597813 26.789535-15.194065 36.385787-9.596251 9.596251-22.791097 15.194065-36.385787 15.194065-13.59469 0-26.789535-5.597813-36.385787-15.194065-9.596251-9.596251-15.194065-22.791097-15.194065-36.385787 0-13.59469 5.597813-26.789535 15.194065-36.385787C485.210465-49.23076900000001 498.40531-54.82858299999998 512-54.82858299999998z" horiz-adv-x="1024" /> | ||
| 328 | + | ||
| 329 | + <glyph glyph-name="form" unicode="" d="M314.278111 437.019389l395.439892 0 0-30.297458-395.439892 0L314.278111 437.019389zM314.278111 315.83495200000004l395.439892 0 0-30.297458-395.439892 0L314.278111 315.83495200000004zM314.278111 194.62833l263.626661 0 0-30.297458L314.278111 164.330872 314.278111 194.62833zM609.376235 739.9931730000001c-7.849678 42.966669-48.394988 75.742447-97.378777 75.742447-48.961604 0-89.51311-32.775778-97.380776-75.742447L116.55177 739.9931730000001l0-787.725922 790.893774 0 0 787.725922L609.376235 739.9931730000001zM446.091342 670.440529l0 17.613058 0 36.791056c0 33.410348 29.57295 60.594317 65.906116 60.594317 36.352353 0 65.907115-27.183969 65.907115-60.594317l0-36.791056 0-17.621053 16.672696-8.712493c32.358061-16.929922 57.169039-42.663874 71.406386-73.213161L358.043239 588.50688c14.240345 30.555683 39.051523 56.281241 71.408385 73.213161L446.091342 670.440529zM874.489888-17.436289999999985L149.505227-17.436289999999985 149.505227 709.694715 413.138884 709.694715l0-21.641327c-51.44492-26.923746-88.727643-74.124144-98.86377-129.845165l395.44289 0c-10.102151 55.730615-47.40466 102.921419-98.859773 129.845165l0 21.641327 263.631658 0L874.489888-17.436289999999985z" horiz-adv-x="1024" /> | ||
| 330 | + | ||
| 331 | + <glyph glyph-name="file" unicode="" d="M887.443911 598.6304l0-44.578133 0-45.511111 0-477.866667c0-37.705956-30.560711-68.266667-68.266667-68.266667l-614.4 0c-37.705956 0-68.266667 30.560711-68.266667 68.266667l0 705.422222c0 37.6832 30.560711 68.266667 68.266667 68.266667l386.844444 0 45.511111 0 38.024533 0c7.805156 2.594133 16.566044 1.2288 22.778311-5.006222l183.136711-183.159467C885.919289 611.373511 887.876267 604.9564439999999 887.443911 598.6304zM659.888356 531.296711c-12.583822 0-22.755556 10.171733-22.755556 22.755556l0 204.8-45.511111 0-364.088889 0c-25.122133 0-45.511111-20.388978-45.511111-45.511111l0-659.911111c0-25.122133 20.388978-45.511111 45.511111-45.511111l568.888889 0c25.122133 0 45.511111 20.388978 45.511111 45.511111l0 455.111111 0 22.755556L659.888356 531.296711zM682.643911 750.273422l0-173.4656 159.288889 0 0 14.176711L682.643911 750.273422z" horiz-adv-x="1024" /> | ||
| 332 | + | ||
| 333 | + <glyph glyph-name="triangle-r" unicode="" d="M293.291 728.256l426.88-355.456-426.88-355.52z" horiz-adv-x="1024" /> | ||
| 334 | + | ||
| 335 | + <glyph glyph-name="triangle-d" unicode="" d="M773.128299 88.65234199999998M889.696178 575.195553L158.862147 575.195553 524.357446 209.64704300000005 889.696178 575.195553Z" horiz-adv-x="1024" /> | ||
| 336 | + | ||
| 337 | + <glyph glyph-name="set-sm" unicode="" d="M946.367 405.895c0.02 21.85-13.04 38.49-31.74 41.57-18.69 3.07-79.05 13.01-85.99 14.14-6.95 1.15-14.09 8.07-15.4 11.45-1.32 3.37-8.94 22.2-11.87 29.46-2.95 7.27-1.92 16.58 4.39 25.52 6.3 8.93 39.9 55.87 48.38 67.72 8.49 11.87 8.65 34.61-4.84 48.39-13.48 13.78-47.75 47.09-56.73 55.86-8.99 8.76-31.08 8.64-42.67 0.43-11.58-8.2-71.69-51.01-71.69-51.01s-9.97-6.89-20.67-2.64c-10.7 4.24-33.43 14.07-33.43 14.07s-7.19 5.43-9.68 19.79c-2.5 14.37-11.11 65.28-14.07 82.7-2.97 17.42-20.67 29.62-37.83 29.46-17.16-0.14-57.91 0-74.33 0s-32.26-15.68-34.75-29.46c-2.49-13.79-11.56-69.16-14.07-84.45-2.52-15.3-11.44-18.48-11.44-18.48s-19.56-8.06-29.91-12.31c-10.34-4.26-15.39-2.64-30.35 7.48-14.95 10.11-44.74 31.03-63.04 43.83-18.3 12.81-38.12 7.92-49.26-3.52s-36.06-35.77-51.02-50.43c-14.95-14.66-12.61-37.54 0.58-55.71 13.2-18.18 32.34-45.43 41.35-58.21 9.01-12.78 10.84-19.5 8.36-26.82-2.49-7.34-6.64-16.58-11.43-27.72-4.81-11.13-9.69-13.64-27.86-17.01-17.36-3.21-58.42-9.92-77.4-13.31-18.99-3.37-30.66-21.43-30.66-41.81l0-64.66c0-24.34 13.2-37.24 38.42-41.93 25.22-4.69 62.66-10.66 74.77-12.61 12.1-1.95 17.67-6.6 21.41-15.54 3.73-8.94 5.13-10.12 9.37-22.57 4.26-12.47 6.46-15.55-4.98-31.67-11.44-16.13-34.31-48.11-46.03-64.51-11.74-16.4-6.45-37.83 4.98-49.85 11.44-12.03 35.47-35.64 48.97-48.97 13.49-13.33 35.19-16.28 53.36-3.52 18.19 12.75 54.98 38.99 65.69 46.62 10.7 7.63 21.91 5.28 27.85 2.94 5.94-2.35 11.25-4.6 22-9.1 10.73-4.48 13.85-11.2 16.41-23.45 2.57-12.24 10.19-56.85 13.93-78.59 3.75-21.72 18.91-33.43 40.62-33.72 21.7-0.29 33.27-0.12 61.57 0 28.29 0.13 41.86 12.61 45.45 31.38 3.59 18.76 12.45 72.94 14.22 83.72 1.78 10.76 5.94 14.73 13.63 18.47 7.7 3.74 14.32 6.47 26.84 11.88 12.51 5.4 18.91 0.66 27.7-5.72 8.8-6.39 47.51-33.78 63.78-45.31 16.28-11.53 36.73-10.33 51.9 4.4 15.18 14.73 31.62 30.99 49.27 48.38 17.64 17.4 12.16 39.59 4.4 51.46-7.77 11.88-44.49 62.95-49.71 70.23-5.21 7.28-4.4 18.62-1.75 24.63 2.64 6.01 8.44 18.24 11.72 25.22 3.29 6.97 9.6 11.22 18.18 12.9 8.58 1.69 62.72 11 83.75 14.61 21.03 3.64 31.11 19.92 31.26 39.92C946.427 359.93499999999995 946.347 388.525 946.367 405.895zM908.587 338.615c0.21-5.76-4.66-10.65-8.82-11.38-4.17-0.73-63.26-11.38-81.48-14.29-18.21-2.92-33.23-15.07-38.72-28.06-3.98-9.44-5.47-13.51-10.59-26.96-5.12-13.44-4.64-32.19 2.56-42.26 7.2-10.08 46.82-64.9 50.38-70.45s4.27-11.95-1.28-17.5-40.99-41.2-47.39-47.39c-6.41-6.19-11.83-4.8-18.79 0-6.95 4.8-39.61 26.39-64.44 44.36-16.96 12.28-32.82 12.43-48.7 6.02-15.87-6.42 1.28 0.28-22.2-8.97-23.48-9.25-30.23-27.62-33.73-48.24-3.5-20.63-10.67-62.98-11.95-70.45-1.28-7.47-5.55-11.1-13.66-11.1l-64.9 0c-8.11 0-11.74 2.99-14.52 11.95-2.77 8.97-10.03 54.87-12.8 74.29-2.78 19.43-13.82 36.12-24.77 40.56-10.94 4.45-4.98 2.14-27.32 11.1-22.34 8.97-39.63 4.5-51.23-3.84-11.61-8.34-58.64-42.69-65.33-46.96-6.68-4.28-14.65-3.28-18.35 0.42-3.7 3.7-40.56 40.56-46.54 46.54-5.98 5.98-5.36 12.92 0 20.49 5.36 7.58 28.39 40.76 40.99 57.95 12.59 17.2 17.93 34.74 9.82 53.49-8.12 18.74-4.42 10.24-12.39 28.6-7.96 18.36-24.28 24.46-38.42 26.9-14.14 2.43-68.88 11.53-76.85 13.23-7.97 1.71-11.95 7.26-11.95 14.09l0 66.18c0 9.53 7.67 12.44 12.38 13.23 4.7 0.8 54.22 9.18 73 12.39 18.79 3.2 36.36 11.32 43.55 29.03 7.19 17.7 4.27 11.1 11.1 27.32 6.83 16.23 3.8 33.94-7.68 49.96-11.49 16.01-38.85 54-44.4 61.9-5.55 7.9-5.77 12.6 0.85 19.21 6.62 6.62 42.05 42.48 46.96 46.97 4.91 4.48 12.07 5.4 18.36 0.85 6.3-4.55 49.31-35.65 64.04-46.11 14.73-10.46 32.35-12.56 49.1-5.55 16.75 7.02 10.25 4.48 26.9 11.1s24.84 19.09 28.18 39.71c3.33 20.61 11.95 74.14 12.81 77.7 0.85 3.55 5.55 10.46 11.74 10.46s65.82-0.07 69.8 0c3.99 0.07 10.3-3.29 11.32-9.18 1.02-5.9 13.02-74.29 14.94-86.25 1.92-11.95 15.58-28.57 25.54-32.73 9.96-4.16 21.35-8.75 31.31-13.09 9.97-4.34 30.13-1.91 36.15 2.28 6.03 4.18 70.52 48.81 75.43 52.37 4.91 3.56 11.52 3.27 17.64-2.85s43.34-43.19 47.54-47.53c4.19-4.34 4.66-8.66 1.14-13.66-3.53-5.01-36.72-51.8-47.54-67.46-10.81-15.65-11.73-33.73-5.41-48.96 6.33-15.22 3.99-9.39 9.11-21.91 5.13-12.53 16.28-29.03 33.59-31.88 17.31-2.85 76.92-12.74 84.82-13.95 7.9-1.21 11.1-7.18 11.1-13.37S908.377 344.385 908.587 338.615zM526.833 573.1949999999999c-110.45 0-200-89.54-200-200s89.55-200 200-200c110.46 0 200 89.54 200 200S637.293 573.1949999999999 526.833 573.1949999999999zM526.833 208.19500000000005c-91.12 0-165 73.87-165 165s73.88 165 165 165c91.13 0 165-73.87 165-165S617.963 208.19500000000005 526.833 208.19500000000005z" horiz-adv-x="1024" /> | ||
| 338 | + | ||
| 339 | + <glyph glyph-name="add-circle" unicode="" d="M675.04 412.736l-127.04 0 0 127.264c0 20.064-16.288 36.32-36.32 36.32-20.064 0-36.32-16.192-36.32-36.32l0-127.232-127.072 0c-20.064 0-36.352-16.32-36.352-36.352 0-20.064 16.224-36.352 36.352-36.352l127.072 0 0-127.232c0-20 16.256-36.384 36.32-36.384 20.032 0 36.32 16.256 36.32 36.384l0 127.136 127.04 0c19.968 0 36.352 16.256 36.352 36.384C711.36 396.448 695.136 412.736 675.04 412.736L675.04 412.736zM511.328 830.56c-250.24 0-453.952-203.616-453.952-453.952 0-250.336 203.712-453.952 453.952-453.952 250.336 0 453.984 203.584 453.984 453.952C965.312 626.944 761.696 830.56 511.328 830.56L511.328 830.56zM511.328-20.576000000000022c-219.04 0-397.184 178.176-397.184 397.152 0 219.104 178.144 397.216 397.184 397.216s397.216-178.112 397.216-397.216C908.576 157.63199999999995 730.368-20.576000000000022 511.328-20.576000000000022L511.328-20.576000000000022zM511.328-20.576000000000022" horiz-adv-x="1024" /> | ||
| 340 | + | ||
| 341 | + <glyph glyph-name="layim-download" unicode="" d="M186.888458 77.07363199999998l0 581.729108c14.85022-14.450107 35.050284-23.436782 57.359382-23.436782l560.03604 0 0-151.561881 25.029046 0 0 176.591951-585.065086 0c-31.191396 0-57.359382 26.166963-57.359382 57.359382 0 31.191396 26.165939 57.359382 57.359382 57.359382l572.551074 0L816.798914 800.143838 244.24784 800.143838c-45.431725 0-82.388429-36.957727-82.388429-82.388429l0-640.681778c0-41.796942 34.000372-75.789127 75.789127-75.789127l225.950102 0 0 25.029046L237.648538 26.31355099999996C209.661114 26.31355099999996 186.888458 49.078021000000035 186.888458 77.07363199999998zM236.947574 730.269421l560.38601 0 0-25.029046-560.38601 0 0 25.029046ZM686.086897 428.171012c-85.917812 0-164.908864-55.248302-194.553021-135.882783-30.013571-81.641415-4.269233-175.567621 62.624293-230.942813 67.00302-55.465243 164.474982-62.808488 238.931764-17.720593 74.094532 44.868907 113.272833 133.533272 96.080266 218.517829C869.882923 357.47283300000004 783.297916 428.171012 686.086897 428.171012zM686.086897 38.82858599999997c-75.595722 0-145.060817 48.634674-171.092703 119.595842-26.354228 71.839165-3.63069 154.438395 55.287187 203.074092 59.017138 48.718585 144.762011 55.029314 210.191186 15.237029 65.11195-39.59888 99.396801-117.681236 84.064604-192.408171C847.384513 100.72940100000005 771.387655 38.82858599999997 686.086897 38.82858599999997zM698.600909 152.23547199999996L698.600909 311.02496499999995 673.571862 311.02496499999995 673.571862 152.28459099999998 604.675726 221.17254100000002 586.978668 203.47548400000005 686.111456 104.35190499999999 785.185916 203.42738799999995 767.489882 221.123422Z" horiz-adv-x="1024" /> | ||
| 342 | + | ||
| 343 | + <glyph glyph-name="layim-uploadfile" unicode="" d="M914.7359263333336 663.0359498888887c-20.806884999999987 20.806885000000012-48.471967999999976 32.265868000000026-77.89816099999994 32.265868000000054l-352.221993 2.2737367544323206e-13-120.26099099999992 95.03035300000005-11.157106999999995 8.816806000000007-14.220886 9.769962616701378e-15L197.09333633333344 799.148976888889c-51.69538300000001 2.1316282072803006e-14-93.75224400000005-42.88778599999995-93.75224400000006-95.60442799999993l-1.5631940186722204e-13-255.13888799999998c-1.7763568394002505e-15-2.302439 0.08391099999999785-4.716417999999999 0.24968699999999489-7.196911999999999l-1.9895196601282805e-13-340.692403c-1.9539925233402755e-14-29.426192999999998 11.458982999999954-57.09127599999999 32.26586799999994-77.89816100000002 20.806884999999987-20.806885000000012 48.471967999999976-32.265868000000026 77.89816099999994-32.265868000000054l623.083981-3.410605131648481e-13c29.426192999999998-1.9539925233402755e-14 57.09127599999999 11.458982999999954 77.89816100000002 32.26586799999994 20.806885000000012 20.806884999999987 32.265868000000026 48.471967999999976 32.265868000000054 77.89816099999994L947.0028173333335 585.1377888888885C947.0017943333336 614.5639818888885 935.5428113333334 642.2280418888886 914.7359263333336 663.0359498888887zM197.09333633333372 758.2167298888891l141.88345099999998-8.526512829121202e-14L470.3948853333333 654.369569888889l366.44287999999995-2.2737367544323206e-13c38.236859-2.1316282072803006e-14 69.23178099999997-30.99492100000004 69.23178099999994-69.23178100000004L906.0695463333333 465.9195468888886 144.27334033333327 465.91954688888893 144.2733403333336 703.5445488888892C144.2733403333336 733.7361748888891 167.92296933333355 758.2167298888891 197.09333633333372 758.2167298888891zM836.8377653333331 31.28558888888881L213.75480733333322 31.28558888888915c-38.236859 2.1316282072803006e-14-69.23178099999997 30.99492100000004-69.23178099999994 69.23178100000004L144.52302633333338 424.4776928888892l761.546519-6.252776074688882e-13-2.2737367544323206e-13-323.96134599999993C906.0695463333333 62.28050988888867 875.0746243333334 31.285588888888583 836.8377653333331 31.28558888888881z" horiz-adv-x="1024" /> | ||
| 344 | + | ||
| 345 | + <glyph glyph-name="404" unicode="" d="M300.197309 299.705317l4.427931 1.803972c1.147982-2.787956 10.167841-7.543882 26.89558-14.267777l5.411915-12.955798c10.659833-24.927611 23.123639-62.483024 37.555413-112.66624 14.431775 5.575913 34.439462 0.983985 60.351057-13.611787l1.803972-4.427931L389.575913 107.828315l18.203716-42.639334c2.459962-5.575913-12.463805-15.579757-44.7713-29.847534-11.151826 7.215887-19.84369 9.675849-26.403587 7.05189l-0.983985 2.131967c-10.823831 25.419603-16.235746 42.311339-16.399744 50.675208l-4.427931-1.803972 6.3959-14.923767-11.151826-4.263933c-41.655349-16.235746-71.830878-18.695708-90.690583-7.871877l-4.427931-1.803972-1.803972 4.263933c-7.05189 16.727739 3.607944 77.406791 32.307495 182.037156 11.479821 4.427931 19.1877 14.923767 22.959641 31.323511C281.337604 290.685458 291.83344 296.425368 300.197309 299.705317L300.197309 299.705317zM216.230621 80.276746c28.371557 19.515695 40.999359 32.799488 38.047406 39.68738-0.983985 2.131967-0.65599 5.575913 0.65599 10.167841l-0.983985 2.131967c-25.5836-21.483664-38.047406-32.963485-37.391416-34.439462C215.246637 88.804612 215.082639 83.064702 216.230621 80.276746L216.230621 80.276746zM216.722614 72.896861l0.983985-2.131967c11.643818 1.147982 21.155669 3.279949 28.699552 6.231903 0.819987 0.327995 7.379885 5.411915 19.84369 15.251762l-0.983985 2.131967c-7.543882-2.951954-12.7918-0.983985-15.743754 6.067905C226.398463 85.032671 215.574632 75.848815 216.722614 72.896861L216.722614 72.896861zM225.90647 143.743754l11.151826 4.263933c-1.147982-2.623959-6.3959-8.691864-15.579757-18.53171-2.295964-10.823831-2.787956-17.547726-1.639974-20.335682 27.715567 20.663677 40.34337 33.783472 37.883408 39.523382l0.819987 10.331839-3.443946-3.935939-9.019859-3.443946-0.983985 2.131967c11.151826 4.263933 17.875721 16.891736 20.49968 37.719411l-0.983985 2.131967C239.35426 172.443306 227.21845 160.307495 227.874439 157.027546L225.90647 143.743754 225.90647 143.743754zM231.646381 173.42729l0.983985-2.131967 2.131967 0.819987c28.371557 23.123639 40.179372 40.179372 35.423447 51.331198 1.475977 0.65599 1.967969 1.639974 1.475977 2.951954l-2.295964-0.819987c-28.863549-21.647662-40.999359-38.047406-36.407431-49.035234C231.482383 175.723254 230.990391 174.73927 231.646381 173.42729L231.646381 173.42729zM240.994234 211.966688l0.983985-2.131967c13.775785 10.331839 35.915439 29.847534 66.418962 58.21909l2.131967 0.819987-6.3959 14.923767 0.491992 5.083921-2.295964-0.819987c-36.571429-32.963485-55.431134-51.82319-56.579116-56.743113L240.994234 211.966688 240.994234 211.966688zM311.67713 107.336323l-35.751441-13.939782c-1.475977-0.491992-6.887892-4.263933-16.235746-11.315823l0.819987-1.967969 12.299808 2.131967 20.007687 7.871877c11.643818 4.591928 32.143498 19.84369 61.171044 46.08328l-6.3959 14.923767-2.131967-0.819987c-24.107623-16.891736-34.439462-29.191544-31.159513-36.899423C315.449071 110.616272 314.629084 108.484305 311.67713 107.336323L311.67713 107.336323zM267.889814 264.773863l0.819987-1.967969c17.875721 16.891736 27.387572 25.419603 28.207559 25.747598l-0.983985 2.131967-8.855862-3.443946C274.941704 282.485586 268.545804 274.941704 267.889814 264.773863L267.889814 264.773863zM275.597694 222.954516c16.071749-37.883408 20.007687-67.894939 11.971813-90.034593l-3.443946-28.863549 26.89558 10.495836c-7.543882 30.011531-18.367713 65.598975-32.471493 106.926329l-0.983985 2.131967L275.597694 222.954516 275.597694 222.954516zM279.369635 231.810378l6.3959-14.923767c13.44779 15.087764 24.435618 24.271621 32.63549 27.55157l-3.607944 8.527867-2.459962 11.643818-2.131967-0.819987C289.045484 247.06214 278.713645 236.566304 279.369635 231.810378L279.369635 231.810378zM292.817425 194.58296c23.943626 17.219731 33.619475 30.995516 29.191544 41.491352l-2.787956 6.3959-2.295964-0.819987c-21.483664-18.859705-30.667521-31.651505-27.879564-38.3754L292.817425 194.58296 292.817425 194.58296zM294.457399 190.483024l2.787956-6.3959 2.295964-11.807816 2.295964 0.819987-0.491992-5.083921 6.3959-14.923767 32.471493 27.387572-6.3959 15.087764c-9.347854-10.331839-16.235746-16.399744-20.827675-18.203716l-2.295964-0.983985c-0.65599 1.639974 6.067905 10.167841 20.335682 25.419603l-3.115951 13.611787-0.983985 2.131967L294.457399 190.483024 294.457399 190.483024zM307.413197 148.171685l2.787956-6.3959 2.295964-11.643818c23.943626 17.219731 35.259449 27.387572 33.94747 30.503523l-5.411915 12.955798C329.224856 165.719411 318.07303 157.191544 307.413197 148.171685L307.413197 148.171685zM355.792441 131.935939c-23.779628-17.711723-34.111467-30.011531-30.995516-37.227418l1.475977-9.347854c25.255605 18.039718 36.899423 29.355541 34.931454 33.783472 24.435618 21.155669 38.703395 32.471493 42.803331 33.94747l-0.819987 1.967969c-1.803972 2.787956-6.723895 4.099936-14.595772 4.427931l-30.831518-31.9795L355.792441 131.935939 355.792441 131.935939zM327.912876 81.26073l4.591928-10.659833-0.491992-5.083921 2.295964 0.819987c23.451634 14.595772 34.275464 23.615631 32.63549 27.55157l-5.411915 12.955798L327.912876 81.26073 327.912876 81.26073zM333.816784 61.253043l5.411915-12.7918c25.747598 13.283792 37.719411 22.139654 35.915439 26.403587l-4.591928 10.659833C348.412556 70.272902 336.112748 62.237028 333.816784 61.253043L333.816784 61.253043zM357.596413 139.971813l1.803972-4.099936c4.919923 1.967969 8.527867 9.839846 10.823831 23.943626l-2.295964-0.819987C364.648302 147.679693 361.204356 141.44779 357.596413 139.971813L357.596413 139.971813zM731.674568 256.081999l3.935939-0.163997c-0.163997-2.459962 4.755926-9.019859 14.759769-19.515695l-0.65599-11.315823c-1.147982-21.975657-5.411915-53.955157-12.955798-95.774504 12.627803-0.65599 25.911595-10.659833 39.68738-30.175529l-0.163997-3.935939-47.887252-10.823831-1.967969-37.719411c-0.327995-4.919923-14.923767-7.379885-43.951313-7.379885-5.575913 9.019859-11.151826 13.775785-16.891736 13.939782l0.163997 1.967969c1.147982 22.467649 3.279949 36.735426 6.231903 42.967329l-3.935939 0.163997-0.65599-13.119795-9.839846 0.491992c-36.571429 1.803972-60.023062 9.839846-70.026906 24.271621l-3.935939 0.163997 0.163997 3.771941c0.819987 14.759769 30.667521 56.087124 89.706598 124.14606 10.167841-0.491992 19.515695 4.755926 28.371557 15.579757C714.290839 255.754004 724.294683 256.573991 731.674568 256.081999L731.674568 256.081999zM587.848815 115.86419l-0.163997-1.967969c9.019859-2.951954 16.891736-4.591928 23.615631-4.919923 0.65599 0 7.379885 1.475977 20.171685 4.755926l0.163997 1.967969c-6.723895 0.327995-9.839846 3.607944-9.511851 9.675849C599.328635 121.6041 588.012812 118.324151 587.848815 115.86419L587.848815 115.86419zM590.144779 121.440102c28.043562 5.083921 42.147341 10.659833 42.475336 16.727739 0.163997 1.803972 1.475977 4.263933 4.099936 7.215887l0.163997 1.967969c-26.731582-7.379885-40.015375-11.807816-40.179372-13.119795C592.440743 128.163997 590.308776 123.900064 590.144779 121.440102L590.144779 121.440102zM620.15631 165.227418l9.839846-0.491992c-1.803972-1.475977-7.871877-4.427931-18.367713-8.527867-5.575913-7.215887-8.527867-12.13581-8.527867-14.595772 28.043562 6.067905 42.147341 11.643818 42.311339 16.727739l4.263933 7.379885-3.935939-1.803972-8.035874 0.327995 0.163997 1.967969c9.839846-0.491992 19.351698 6.559898 28.863549 21.155669l0.163997 1.967969c-26.23959-7.379885-39.68738-12.463805-40.34337-14.923767L620.15631 165.227418 620.15631 165.227418zM670.667521 109.960282l-31.487508 1.475977c-1.31198 0-6.559898-0.983985-16.071749-2.951954l-0.163997-1.803972 9.839846-2.459962 17.711723-0.819987c10.331839-0.491992 30.995516 4.099936 61.991031 13.939782l0.65599 13.119795-1.803972 0.163997c-23.943626-4.591928-36.079436-10.167841-36.407431-16.891736C674.603459 110.944266 673.29148 109.796284 670.667521 109.960282L670.667521 109.960282zM635.244074 185.399103l-0.163997-1.967969 1.803972-0.163997c29.355541 7.70788 44.279308 16.563741 44.7713 26.23959 1.31198 0 2.131967 0.491992 2.131967 1.639974l-1.967969 0.163997c-29.191544-6.3959-44.115311-14.595772-44.607303-24.271621C635.900064 187.039078 635.244074 186.547085 635.244074 185.399103L635.244074 185.399103zM685.755285 207.37476c-1.803972-33.29148-9.675849-56.907111-23.615631-70.682896l-12.955798-20.171685 23.779628-1.147982c5.247918 24.763613 10.167841 54.611147 14.595772 89.870596l0.163997 1.967969L685.755285 207.37476 685.755285 207.37476zM656.071749 210.818706l-0.163997-1.967969c13.939782 3.115951 37.391416 10.167841 70.354901 21.155669l1.803972-0.163997 0.65599 13.119795 2.295964 3.607944-1.967969 0.163997c-39.03139-12.299808-59.859065-20.007687-62.483024-23.287636L656.071749 210.818706 656.071749 210.818706zM670.339526 68.46893l-0.65599-11.315823c23.943626 1.31198 35.915439 3.935939 36.079436 7.70788l0.491992 9.347854C684.443306 70.272902 672.471493 68.304933 670.339526 68.46893L670.339526 68.46893zM673.29148 85.196669l-0.491992-9.347854-2.295964-3.607944 1.967969-0.163997c22.631646 2.951954 33.94747 6.231903 34.111467 9.511851l0.65599 11.315823L673.29148 85.196669 673.29148 85.196669zM712.158873 113.568225c-23.943626-5.247918-36.079436-10.987828-36.407431-17.219731l-2.295964-7.379885c25.255605 5.083921 37.883408 9.511851 38.211403 13.44779 25.747598 7.543882 40.34337 11.151826 43.951313 10.987828l0.163997 1.803972c-0.327995 2.623959-3.443946 5.247918-9.347854 8.035874l-34.439462-13.44779L712.158873 113.568225 712.158873 113.568225zM682.147341 141.611787l-0.327995-5.73991-2.459962-9.347854c23.943626 4.755926 36.079436 8.691864 36.079436 11.479821l0.65599 11.315823C704.778988 147.351698 693.463165 144.727739 682.147341 141.611787L682.147341 141.611787zM688.051249 177.199231l-0.327995-5.73991-2.623959-9.511851 1.967969-0.163997-2.295964-3.607944-0.65599-13.119795 33.94747 9.511851 0.65599 13.283792c-10.659833-4.591928-18.039718-6.723895-21.975657-6.559898l-1.967969 0.163997c0 1.475977 8.199872 5.411915 24.271621 12.13581l2.623959 11.151826 0.163997 1.967969L688.051249 177.199231 688.051249 177.199231zM688.215247 180.807175c23.943626 4.755926 36.243434 11.807816 36.735426 20.991672l0.327995 5.73991-1.967969 0.163997c-22.631646-6.887892-34.275464-13.283792-34.603459-19.1877L688.215247 180.807175 688.215247 180.807175zM691.82319 212.786675l-0.65599-13.119795c15.415759 6.723895 26.89558 10.003844 34.111467 9.511851l0.327995 7.543882 2.459962 9.511851-1.803972 0.163997C704.450993 220.986547 692.971172 216.558616 691.82319 212.786675L691.82319 212.786675zM695.103139 240.994234l-0.163997-1.803972c19.351698 6.559898 29.355541 9.839846 30.339526 9.839846l0.163997 1.967969-7.871877 0.327995C706.746957 251.818065 699.367072 248.374119 695.103139 240.994234L695.103139 240.994234zM716.422806 118.980141l-0.163997-3.607944c4.427931-0.163997 10.003844 4.427931 16.727739 14.10378l-1.967969 0.163997C724.45868 122.26009 719.538757 118.816143 716.422806 118.980141L716.422806 118.980141zM479.118514 382.196028c53.627162 10.167841 89.870596 1.967969 109.222293-24.599616 9.675849-18.695708 15.579757-33.455477 17.875721-44.279308 11.807816-56.743113-5.903908-103.154388-53.299167-138.741832-12.463805-5.083921-22.631646-8.363869-30.339526-10.003844-31.651505-6.067905-63.631006 5.083921-95.938501 33.455477-9.347854 16.399744-15.251762 31.159513-18.039718 44.279308-13.283792 63.795003 1.967969 108.238309 45.919283 133.165919L479.118514 382.196028 479.118514 382.196028zM410.075593 265.429853c6.231903 5.247918 11.479821 8.199872 15.579757 9.019859-9.675849-9.347854-14.431775-15.087764-13.939782-17.219731-0.327995-5.411915-0.163997-10.167841 0.819987-14.267777l2.131967 0.327995c24.271621 15.743754 35.915439 25.5836 35.095452 29.519539l-2.131967 10.003844c-4.099936-3.607944-8.035874-5.73991-11.643818-6.559898l-0.819987 4.099936c10.823831 2.131967 15.251762 11.971813 13.44779 29.519539l-1.967969-0.327995c-22.467649-16.399744-34.603459-27.715567-36.407431-33.94747C409.255605 273.30173 409.255605 269.857783 410.075593 265.429853L410.075593 265.429853zM410.23959 286.257527c33.127482 21.647662 47.887252 40.34337 44.607303 56.251121-29.683536-23.615631-44.443306-36.079436-44.279308-37.555413C409.747598 295.769379 409.5836 289.537476 410.23959 286.257527L410.23959 286.257527zM412.699552 315.777066l0.491992-2.131967c27.059577 20.663677 44.607303 37.227418 52.643177 49.527226 10.331839 1.967969 17.055734 7.379885 20.49968 16.235746l-2.131967-0.491992C447.303011 372.028187 423.523382 350.872518 412.699552 315.777066L412.699552 315.777066zM414.339526 234.926329c2.459962-4.919923 4.263933-9.347854 5.083921-13.44779 18.859705 14.759769 30.339526 22.467649 34.111467 23.123639l-3.771941 18.039718C444.18706 261.493914 432.379244 252.310058 414.339526 234.926329L414.339526 234.926329zM421.883408 220.002562c2.131967-9.839846 5.247918-14.759769 9.675849-14.759769l27.879564 21.975657c-0.327995 1.147982-2.131967 6.231903-5.411915 15.415759C437.299167 228.530429 426.639334 220.986547 421.883408 220.002562L421.883408 220.002562zM432.707239 199.174888c5.083921-5.903908 8.527867-8.691864 10.495836-8.363869l3.935939 0.819987c10.987828 10.495836 19.1877 16.235746 24.599616 17.219731-0.819987 3.935939-3.935939 8.855862-9.511851 14.759769C442.21909 209.014734 432.379244 200.814862 432.707239 199.174888L432.707239 199.174888zM448.450993 185.563101l0.491992-2.131967c2.459962 0.491992 6.3959-0.819987 11.807816-3.771941 18.859705 10.003844 28.207559 16.727739 28.207559 19.84369-6.067905 1.639974-9.511851 4.427931-10.331839 8.363869C466.818706 202.946829 456.814862 195.566944 448.450993 185.563101L448.450993 185.563101zM469.442665 179.331198l0.491992-2.131967 14.923767 0.65599 12.627803 2.459962c2.459962 0.491992 8.199872 3.771941 17.547726 9.839846l-0.491992 2.131967c-6.887892-1.31198-13.611787 0.163997-20.49968 4.263933L469.442665 179.331198 469.442665 179.331198zM476.494555 249.030109l4.591928-21.811659c2.951954-14.431775 12.463805-25.091608 28.535554-31.9795l4.099936 0.819987c24.599616 34.275464 32.143498 73.798847 22.795644 118.570147l-2.459962 11.971813-6.231903 19.515695-6.067905-1.147982c-3.935939-0.819987-14.267777 0-30.831518 2.295964C473.870596 316.597053 469.278668 283.961563 476.494555 249.030109L476.494555 249.030109zM476.494555 363.172325l0.327995-1.967969c10.823831-2.131967 17.547726-3.115951 20.007687-2.623959 13.939782 10.167841 21.647662 17.875721 23.287636 23.287636l-21.319667-1.967969C496.174247 379.408072 488.630365 373.832159 476.494555 363.172325L476.494555 363.172325zM508.966047 363.172325l3.771941 2.787956c1.147982 0.163997 6.231903-2.951954 15.087764-9.675849 10.331839 13.119795 18.203716 20.171685 23.779628 21.155669-0.65599 2.951954-8.199872 4.263933-22.467649 4.099936C515.361947 370.716208 508.638053 364.648302 508.966047 363.172325L508.966047 363.172325zM511.590006 185.235106l0.491992-2.131967 4.099936 0.819987c19.84369 3.771941 35.751441 17.219731 47.723254 40.34337C554.557335 214.754644 537.173607 201.634849 511.590006 185.235106L511.590006 185.235106zM521.921845 197.534914c38.211403 24.271621 56.087124 42.311339 53.79116 53.79116 1.967969 4.919923 2.623959 8.527867 2.295964 10.823831-35.095452-26.567585-51.495195-44.935298-49.363229-54.939142C526.349776 206.71877 524.217809 203.602819 521.921845 197.534914L521.921845 197.534914zM528.64574 352.348495l7.543882-15.251762 2.131967 0.491992c4.263933 5.73991 13.283792 14.431775 27.059577 25.911595l-0.491992 2.131967c-5.411915 5.247918-8.363869 8.855862-8.855862 10.823831l-4.099936-0.819987L528.64574 352.348495 528.64574 352.348495zM536.845612 333.324792l4.263933-9.675849-0.491992-8.363869 4.099936 0.819987c19.515695 17.711723 29.027546 27.059577 28.863549 28.371557l-0.491992 2.131967c-1.967969 9.347854-4.263933 13.611787-7.05189 13.119795C548.817425 342.508648 539.141576 333.652787 536.845612 333.324792L536.845612 333.324792zM539.797566 236.402306c27.715567 19.84369 40.999359 32.63549 39.68738 38.703395 1.31198 7.215887 1.803972 12.13581 1.147982 14.759769l-1.967969-0.327995-35.095452-29.519539C540.78155 245.586163 539.469571 237.714286 539.797566 236.402306L539.797566 236.402306zM542.257527 307.413197l2.459962-11.971813 10.003844 3.935939c-7.05189-7.871877-10.331839-12.627803-10.003844-14.267777-0.65599-10.495836-0.819987-16.727739-0.327995-18.695708 18.695708 13.611787 30.831518 24.927611 36.243434 33.94747l-2.459962 11.971813c-7.05189-7.05189-12.7918-10.987828-16.727739-11.807816 8.035874 11.315823 13.939782 17.383728 17.711723 18.039718l-4.099936 19.84369C554.557335 320.532992 543.733504 310.201153 542.257527 307.413197L542.257527 307.413197zM307.249199 569.153107c-9.675849 0-17.711723-6.887892-19.84369-16.071749-4.263933-12.463805 1.639974-28.863549 29.519539-35.751441 1.31198 35.587444 0 49.527226 0 49.527226C313.809097 568.33312 310.693145 569.153107 307.249199 569.153107L307.249199 569.153107zM709.862908 537.173607c0-1.147982 0-2.131967-0.163997-3.115951 2.131967 3.279949 3.279949 7.215887 3.279949 11.479821 0 11.643818-9.183857 21.155669-20.49968 21.155669-3.443946 0-6.723895-0.819987-9.511851-2.459962C697.891095 563.905189 709.862908 551.933376 709.862908 537.173607L709.862908 537.173607zM531.761691 520.281871c0.65599 15.743754-32.963485 49.199231-32.963485 49.199231 0-18.203716 9.347854-42.803331 12.463805-48.707239-8.035874-11.643818-13.283792-32.307495-13.283792-32.307495S531.105701 504.374119 531.761691 520.281871L531.761691 520.281871zM488.794363 507.326073c2.459962 0 4.427931 1.967969 4.427931 4.427931 0 2.459962-1.967969 4.427931-4.427931 4.427931-2.459962 0-4.427931-1.967969-4.427931-4.427931C484.366432 509.294042 486.334401 507.326073 488.794363 507.326073L488.794363 507.326073zM445.335042 629.668161c-0.819987 8.855862-2.131967 16.235746-2.131967 16.235746s-53.627162 7.05189-63.959001-30.503523C395.151826 632.94811 427.623318 631.144138 445.335042 629.668161L445.335042 629.668161zM620.648302 614.908392c-9.675849 37.719411-63.303011 31.651505-63.303011 31.651505s-1.475977-7.379885-2.459962-16.235746C572.597053 631.636131 605.232543 632.784113 620.648302 614.908392L620.648302 614.908392zM419.587444 518.313901c29.847534 0 53.955157 21.975657 53.955157 49.035234 0 27.059577-24.271621 49.035234-53.955157 49.035234-29.847534 0-53.955157-21.975657-53.955157-49.035234C365.632287 540.289558 389.903908 518.313901 419.587444 518.313901L419.587444 518.313901zM419.587444 613.76041c28.371557 0 51.331198-20.827675 51.331198-46.411275 0-25.5836-22.959641-46.411275-51.331198-46.411275-28.207559 0-51.331198 20.827675-51.331198 46.411275C368.256246 592.932735 391.379885 613.76041 419.587444 613.76041L419.587444 613.76041zM419.587444 534.38565c20.007687 0 36.243434 14.759769 36.243434 32.799488 0 18.203716-16.235746 32.799488-36.243434 32.799488s-36.243434-14.759769-36.243434-32.799488C383.34401 549.14542 399.579757 534.38565 419.587444 534.38565L419.587444 534.38565zM435.331198 552.261371c1.967969 2.131967 4.919923 2.623959 6.559898 1.147982 1.639974-1.475977 1.475977-4.263933-0.491992-6.3959-1.967969-2.131967-4.919923-2.623959-6.559898-1.147982C433.035234 547.341448 433.199231 550.129404 435.331198 552.261371L435.331198 552.261371zM395.971813 585.880846c5.411915 5.73991 13.283792 7.05189 17.875721 3.115951 4.591928-3.935939 3.935939-11.807816-1.475977-17.547726-5.411915-5.73991-13.283792-7.05189-17.875721-3.115951C389.903908 572.433056 390.559898 580.304933 395.971813 585.880846L395.971813 585.880846zM584.240871 518.313901c29.847534 0 53.955157 21.975657 53.955157 49.035234 0 27.059577-24.271621 49.035234-53.955157 49.035234-29.847534 0-53.955157-21.975657-53.955157-49.035234C530.121717 540.289558 554.393338 518.313901 584.240871 518.313901L584.240871 518.313901zM584.240871 613.76041c28.371557 0 51.331198-20.827675 51.331198-46.411275 0-25.5836-22.959641-46.411275-51.331198-46.411275-28.207559 0-51.331198 20.827675-51.331198 46.411275C532.909673 592.932735 555.869315 613.76041 584.240871 613.76041L584.240871 613.76041zM584.240871 534.38565c20.007687 0 36.243434 14.759769 36.243434 32.799488 0 18.203716-16.235746 32.799488-36.243434 32.799488-20.007687 0-36.243434-14.759769-36.243434-32.799488C547.997438 549.14542 564.233184 534.38565 584.240871 534.38565L584.240871 534.38565zM599.820628 552.261371c1.967969 2.131967 4.919923 2.623959 6.559898 1.147982 1.639974-1.475977 1.475977-4.263933-0.491992-6.3959-1.967969-2.131967-4.919923-2.623959-6.559898-1.147982C597.688661 547.341448 597.852659 550.129404 599.820628 552.261371L599.820628 552.261371zM560.62524 585.880846c5.411915 5.73991 13.283792 7.05189 17.875721 3.115951 4.591928-3.935939 3.935939-11.807816-1.475977-17.547726-5.411915-5.73991-13.283792-7.05189-17.875721-3.115951C554.557335 572.433056 555.213325 580.304933 560.62524 585.880846L560.62524 585.880846zM957.171044 381.540038C957.171044 381.540038 957.171044 381.540038 957.171044 381.540038c-0.65599 0.983985-1.31198 1.803972-1.967969 2.951954-0.327995 0.327995-0.491992 0.65599-0.819987 0.983985-0.327995 0.327995-1.967969 0.65599-2.295964 0.983985-11.315823 14.759769-29.355541 40.34337-62.975016 46.247277l0 34.931454c0 4.263933-0.819987 8.691864-5.083921 8.691864L685.919283 476.330557c-0.163997 10.331839-0.327995 18.203716-0.65599 27.879564 24.435618 1.803972 43.295324 19.351698 43.295324 41.491352 0 22.467649-19.84369 40.671365-45.263293 41.819347-1.967969 78.226778-5.903908 143.98975-7.70788 150.549648l-0.491992 0.983985c-1.967969 2.295964-9.511851 5.247918-21.155669 8.363869 0.327995 13.939782-3.279949 29.355541-11.643818 46.08328 3.443946-21.647662-22.795644-36.079436-26.567585-38.047406-0.163997 0-0.327995 0-0.491992 0 0.163997 4.427931 0 57.727098-88.230621 97.90647-1.475977-44.115311-14.10378-70.682896-31.9795-86.754644L494.534273 766.606022l-5.411915-0.327995 0-0.163997 0 0 0 0 0.327995 0 0.327995-0.163997c-0.819987-0.163997-0.983985-0.491992-1.147982-1.147982-10.331839-8.035874-28.043562-18.203716-64.450993-18.203716-13.283792 0-28.207559 1.31198-44.607303 3.935939-4.099936 0.819987-7.70788 1.147982-11.151826 1.147982-5.575913 0-10.003844-0.983985-16.071749-2.295964l-0.327995 0-0.327995-0.163997c-17.547726-4.099936-27.55157-7.70788-30.011531-10.659833l-0.491992-0.983985c-0.491992-2.131967-2.295964-8.363869-5.73991-150.549648-25.255605-0.983985-45.263293-19.351698-45.263293-41.983344 0-22.139654 18.859705-39.523382 43.459321-41.163357-0.163997-9.675849-0.327995-17.547726-0.65599-27.879564L132.099936 476.002562c-4.427931 0-10.495836-4.591928-10.495836-8.691864l0-97.414478c-11.807816-0.65599-19.679693-2.295964-26.731582-4.755926-29.027546-10.495836-35.751441-35.915439-35.587444-60.023062 0-1.475977 0.491992-2.787956 0.983985-3.771941-6.723895-11.643818-6.231903-25.5836-5.083921-35.587444 0.983985-8.035874 2.623959-12.13581 4.427931-13.939782-4.263933-8.855862-0.983985-18.859705 1.967969-26.731582 3.771941-10.167841 12.13581-11.971813 22.139654-10.003844-4.755926-9.019859-2.459962-17.219731 11.643818-28.699552 4.427931-3.607944 14.267777 7.05189 26.075593 16.071749l0-267.151826c0-4.263933 6.067905-6.067905 10.331839-6.067905l751.928251 0c4.427931 0 5.083921 1.803972 5.083921 6.067905L888.784113 248.374119c16.727739 0.983985 29.355541 7.70788 38.539398 19.84369 4.591928 6.231903 7.871877 11.807816 8.691864 16.891736C977.670724 313.153107 982.262652 344.640615 957.171044 381.540038L957.171044 381.540038zM316.433056 508.638053c-22.959641 0.491992-40.835362 16.727739-40.835362 36.735426 0 20.335682 18.859705 36.899423 41.983344 36.899423l0 2.623959 0.163997-0.65599c0-0.819987 0-1.475977 0-2.295964 0.491992 0.163997 0.983985 0.163997 1.475977 0.327995l1.803972 0 0 0.491992c5.247918 1.31198 12.7918 2.951954 19.351698 3.771941 10.003844 35.095452 34.111467 64.122998 34.111467 64.122998s-9.839846 28.863549-13.939782 67.238949c51.167201-85.11467 229.268418-81.178732 280.107623-10.823831-4.591928-32.799488-12.627803-56.415119-12.627803-56.415119s24.107623-28.863549 34.111467-64.122998c6.559898-0.819987 13.939782-1.147982 19.023703-2.295964 0 0.491992 0 2.623959 0 2.623959l0.491992 0c23.123639 0 41.983344-18.695708 41.983344-39.03139 0-9.347854-3.935939-18.695708-10.495836-25.419603-10.167841-6.723895-25.091608-10.331839-40.835362-10.331839 0-6.723895 0.983985-19.351698 1.803972-35.423447L318.401025 476.658552c0.163997 10.331839 0.491992 19.84369 0.65599 30.175529l0 2.131967L316.433056 508.638053 316.433056 508.638053zM126.524023 462.554773c0 4.099936 6.3959 9.183857 10.823831 9.183857l741.432415 0c4.263933 0 5.575913-4.919923 5.575913-9.183857l0-29.027546c0 0.491992-6.723895 1.475977-10.823831 1.147982-22.795644-2.295964-44.443306-3.607944-60.679052-9.183857L176.215247 425.491352l-1.31198-2.787956 0-60.18706c-10.823831 5.903908-25.5836 8.363869-48.215247 7.871877L126.68802 462.554773 126.524023 462.554773zM821.381166-13.693786 180.807175-13.693786 180.807175 282.649584c10.823831 4.263933 15.579757 10.987828 15.087764 21.975657-0.491992 8.363869-4.263933 13.611787-15.087764 16.727739l0 7.379885c5.903908 1.967969 3.935939 4.263933 5.247918 6.723895 5.411915 10.495836 5.575913 18.203716-5.247918 23.779628l0 55.759129 615.318386 0c-2.787956-5.575913-4.755926-7.871877-5.575913-12.299808-1.475977-8.035874-1.639974-18.367713-1.147982-28.207559L697.891095 315.449071c0 0-28.371557-15.251762-16.727739-32.799488 11.643818-17.383728 32.307495-11.479821 50.511211-0.327995 12.13581 7.379885 39.68738 23.287636 63.959001 40.179372 0.163997-0.163997 0.327995-0.163997 0.491992-0.327995-1.803972-1.31198-2.951954-2.295964-2.951954-2.295964-11.151826-7.543882-6.887892-36.899423 15.415759-41.327354 3.115951-0.65599 9.675849 0 9.675849 1.147982l0-293.391416L821.381166-13.693786 821.381166-13.693786zM177.855221 271.169763c0 3.443946-2.131967 6.231903-4.755926 8.035874 1.639974 0.491992 3.771941 0.983985 4.755926 1.475977L177.855221 271.169763 177.855221 271.169763zM177.855221 322.828956c-0.983985 0.163997-1.639974 0.327995-2.459962 0.491992 0.819987 0.491992 1.475977 0.983985 2.459962 1.475977L177.855221 322.828956 177.855221 322.828956zM878.780269-65.516976 137.347854-65.516976c-4.263933 0-10.823831 2.131967-10.823831 6.3959L126.524023 206.882767c5.903908 1.147982 4.919923 2.295964 6.723895 3.279949 19.679693 8.035874 38.047406 25.255605 25.747598 33.127482-0.163997 0-1.475977 0.163997-1.639974 0.163997 9.511851 3.771941 17.547726 9.839846 17.547726 20.663677l0-289.29148 655.169763 2.459962 0 291.915439c9.839846-9.675849 21.647662-14.595772 34.603459-10.331839 3.279949-6.559898 13.611787-9.839846 19.515695-10.331839l0-307.495195C884.192184-63.38501 883.044202-65.516976 878.780269-65.516976L878.780269-65.516976zM878.780269-65.516976" horiz-adv-x="1024" /> | ||
| 346 | + | ||
| 347 | + <glyph glyph-name="about" unicode="" d="M514.27174 834.607768c-249.516844 0-451.789687-202.272843-451.789687-451.789687s202.272843-451.789687 451.789687-451.789687 451.789687 202.272843 451.789687 451.789687S763.788583 834.607768 514.27174 834.607768zM514.27174-20.12919999999997c-222.541469 0-402.947282 180.405813-402.947282 402.947282s180.405813 402.947282 402.947282 402.947282 402.947282-180.405813 402.947282-402.947282S736.814232-20.12919999999997 514.27174-20.12919999999997zM514.295276 593.979362c-9.44614-10.360975-14.307867-22.951735-14.307867-37.483706 0-11.960403 3.886517-22.396079 11.534707-30.457686 7.783267-8.211009 17.853623-12.450567 29.313629-12.450567 9.312086 0 23.139 2.849908 35.782971 16.900925 9.865695 10.641361 14.866592 23.437805 14.866592 37.693484 0 11.68104-4.031826 21.900799-11.744485 29.832446C562.925856 615.325529 532.358677 613.449809 514.295276 593.979362zM549.461193 293.282882c-12.110829-11.541871-20.589944-18.759249-26.236548-23.316032 2.77009 14.953573 9.976212 44.614104 27.330462 103.023398 17.297968 57.890478 18.799158 67.991534 18.799158 72.955592 0 8.65717-3.63683 16.335037-9.921977 21.642926-14.124695 11.661597-39.035038 9.349949-69.131497-7.677866-16.779152-9.408277-34.595936-24.759917-54.493102-46.576805l-10.377348-11.541871 34.425044-26.548656 8.818853 8.715499c9.573029 9.292644 16.086373 15.35164 20.411889 19.393699-26.294876-86.460164-39.093367-140.190903-39.093367-164.262134 0-10.907421 3.172249-19.970844 9.573029-26.839275 6.460132-7.039323 15.510252-10.736529 25.891693-10.736529 10.146081 0 21.792329 3.926426 35.922141 11.949146 12.741185 7.212262 31.883151 23.029506 58.641585 48.190559l10.837836 10.391674-31.30703 30.475082L549.461193 293.282882z" horiz-adv-x="1024" /> | ||
| 348 | + | ||
| 349 | + <glyph glyph-name="layim-theme" unicode="" d="M958.830745 538.643056L740.659817 692.753993l-100.539834 0-3.977591-9.332553c-0.37146-0.871857-38.021965-86.8613-124.772748-88.667435-35.691897 0.76441-67.206658 15.500019-93.680613 43.828204-20.658506 22.106484-30.374798 44.584428-30.456662 44.776809l-3.955078 9.393951-100.587929 0L64.518433 538.643056 169.320337 379.756349l89.956801 65.019853-19.016099-368.05254 268.86654 0 4.093225 0 269.866311 0-19.016099 368.051517 89.956801-65.018829L958.830745 538.643056zM730.105437 507.20402l20.655436-399.781172-237.540068 0-4.093225 0L272.587282 107.42284700000005l20.656459 399.781172-115.938546-83.797521-36.3243 55.070246 159.440315 111.641683-19.276019 30.638811L121.066333 508.667348l-14.548344 22.056342 185.921433 131.330094 71.077825 0c5.332449-10.04375 15.433504-26.779923 30.951943-43.580564 32.047904-34.69622 72.256674-53.486168 116.345822-54.411237l0-0.031722c0.203638 0.00307 0.406253 0.01228 0.60989 0.016373 0.203638-0.00307 0.406253-0.013303 0.60989-0.016373l0 0.031722c44.073798 0.925069 84.359316 19.703761 116.566856 54.379515 15.623839 16.821107 25.814945 33.579793 31.188326 43.612287l71.120804 0 185.921433-131.330094-14.548344-22.056342L742.203986 620.7551920000001l-19.276019-30.638811 159.440315-111.641683-36.3243-55.070246L730.105437 507.20402z" horiz-adv-x="1024" /> | ||
| 350 | + | ||
| 351 | + <glyph glyph-name="down" unicode="" d="M842.73769531 591.36914063c13.72412109 13.72587891 35.97363281 13.72587891 49.69775391-1e-8v0c13.72587891-13.72412109 13.72587891-35.97363281 0-49.6977539l-356.60126953-356.60214844c-13.72412109-13.72587891-35.971875-13.72587891-49.69775391 0v0c-13.72412109 13.72412109-13.72412109 35.97363281 0 49.69775391l356.60126953 356.60214844zM535.39560547 234.76699219c13.72587891-13.72412109 13.72587891-35.97363281 0-49.69775391v0c-13.72412109-13.72587891-35.971875-13.72587891-49.69775391 0l-356.60214844 356.60214844c-13.72412109 13.72412109-13.72412109 35.97363281 1e-8 49.69775391v0c13.72587891 13.72587891 35.97363281 13.72587891 49.69951171 0l356.60039063-356.60214844zM535.39560547 234.76699219z" horiz-adv-x="1024" /> | ||
| 352 | + | ||
| 353 | + <glyph glyph-name="up" unicode="" d="M513.40625 520.40625l337.5-337.5c11.25-11.25 28.125-11.25 39.375 0 11.25087891 11.25 11.25087891 28.125 0 39.375l-354.375 354.375C530.28125 582.28125 519.03125 587.90625 513.40625 587.90625c-5.625 0-16.875 0-22.49912109-5.625L130.90537109 222.28125c-11.25-11.25-11.25-28.125 0-39.375s28.125-11.25 39.375 0L513.40625 520.40625z" horiz-adv-x="1024" /> | ||
| 354 | + | ||
| 355 | + <glyph glyph-name="circle-dot" unicode="" d="M513.133312 830.6731560000001c-247.538793 0-448.208115-200.669322-448.208115-448.207092 0-247.538793 200.670346-448.208115 448.208115-448.208115 247.538793 0 448.208115 200.670346 448.208115 448.208115C961.341427 630.004857 760.673128 830.6731560000001 513.133312 830.6731560000001zM513.132288-6.649187999999981c-214.901465 0-389.113205 174.212764-389.113205 389.114229 0 214.902488 174.21174 389.115252 389.113205 389.115252 214.903511 0 389.115252-174.212764 389.115252-389.115252C902.24754 167.563576 728.0358-6.649187999999981 513.132288-6.649187999999981zM513.133312 382.46504100000004m-344.602456 0a336.754 336.754 0 1 1 689.204911 0 336.754 336.754 0 1 1-689.204911 0Z" horiz-adv-x="1024" /> | ||
| 356 | + | ||
| 357 | + <glyph glyph-name="set-fill" unicode="" d="M916.9398 445.2101l-69.9664 10.7833c-18.6619 2.863-38.1388 17.826-43.3424 33.2487-5.1618 15.3809-15.0883 65.4524-3.9288 80.6661l41.9004 57.135c11.1595 15.2346 9.3832 38.5985-3.9706 51.9314l-30.6364 30.6573c-13.3538 13.3538-36.7177 15.151-51.9314 3.9497l-57.135-41.8795c-15.2346-11.1804-39.4344-14.3987-53.7704-7.168-14.3569 7.2307-57.3022 35.7773-60.1652 54.4183l-10.7833 69.9664C570.3471 807.6016 552.542 822.8571 533.6712 822.8571h-43.34236734693877c-18.8709 0-36.6759-15.2555-39.5389-33.9174l-10.7833-69.9664c-2.863-18.6619-17.826-38.1388-33.2487-43.3424-15.4018-5.1827-65.4524-15.1092-80.687-3.9288L268.9567 713.5817c-15.2346 11.1804-38.6194 9.3832-51.9523-3.9497l-30.6364-30.6573c-13.3747-13.3538-15.151-36.7177-3.9706-51.9314l41.9004-57.135c11.1595-15.2346 14.3778-39.4136 7.168-53.7704-7.2307-14.3569-35.7773-57.2813-54.4183-60.1443l-69.9664-10.7833C88.3984 442.3471 73.1429 424.542 73.1429 405.6712v-43.34236734693877c0-18.8709 15.2555-36.6759 33.9174-39.5389l69.9664-10.7833c18.6619-2.863 38.1388-17.8469 43.3424-33.2487 5.1618-15.4018 15.0883-65.4733 3.9288-80.687l-41.9004-57.135c-11.1595-15.2346-9.3832-38.6194 3.9706-51.9314l30.6364-30.6573c13.3538-13.3538 36.7177-15.151 51.9523-3.9706l57.135 41.9213c15.2346 11.1386 39.4136 14.3778 53.7704 7.168 14.3569-7.2307 57.2813-35.7773 60.1443-54.4183l10.7833-69.9664c2.863-18.6619 20.6472-33.9174 39.5389-33.9174h43.34236734693877c18.8709 0 36.6759 15.2555 39.5389 33.9174l10.7833 69.9664c2.863 18.6619 17.826 38.1388 33.2487 43.3215 15.4018 5.1827 65.4524 15.0883 80.6661 3.9288l57.1559-41.9213c15.2346-11.1595 38.5985-9.3623 51.9314 3.9706l30.6364 30.6573c13.3747 13.3329 15.151 36.7177 3.9706 51.9314l-41.9004 57.135c-11.1595 15.2346-14.3778 39.4136-7.168 53.7496 7.2307 14.3778 35.7773 57.3231 54.4183 60.1861l69.9664 10.7833c18.6619 2.863 33.9174 20.6472 33.9174 39.5389v43.34236734693877C950.8571 424.542 935.6016 442.3471 916.9398 445.2101zM512 210.4633c-95.838 0-173.5367 77.6986-173.5367 173.5367s77.6986 173.5367 173.5367 173.5367 173.5367-77.6986 173.5367-173.5367S607.838 210.4633 512 210.4633zM512 384m-104.7824 0a5.014 5.014 0 1 1 209.5647 0 5.014 5.014 0 1 1-209.5647 0Z" horiz-adv-x="1024" /> | ||
| 358 | + | ||
| 359 | + <glyph glyph-name="search" unicode="" d="M439.323351 120.52219c-49.280352 0-97.09834 9.656941-142.126681 28.699646-43.480015 18.388812-82.522793 44.706201-116.043584 78.225619s-59.841305 72.560596-78.230871 116.03883C83.878729 388.513804 74.222416 436.330856 74.222416 485.609189c0 49.284473 9.656313 97.104595 28.699798 142.133138 18.388542 43.479257 44.71008 82.520435 78.231894 116.03883 33.518745 33.515325 72.562546 59.832713 116.043584 78.219479 45.027318 19.039635 92.846329 28.694529 142.125658 28.694529 49.280352 0 97.099364-9.653871 142.126681-28.694529 43.481039-18.385742 82.525863-44.704155 116.044608-78.220502 33.520791-33.518395 59.842328-72.559573 78.230871-116.03883 19.042462-45.028543 28.699798-92.848665 28.699798-142.133138 0-49.278333-9.657336-97.095385-28.701845-142.122905-18.388542-43.47721-44.708033-82.520435-78.228824-116.03883s-72.563569-59.838853-116.043584-78.226642C536.422715 130.177084 488.603703 120.52219 439.323351 120.52219zM439.323351 797.483242c-171.975699 0-311.887855-139.906423-311.887855-311.875077S267.347652 173.734112 439.323351 173.734112s311.887855 139.907447 311.887855 311.874053S611.299051 797.483242 439.323351 797.483242zM890.678206-48.734702c-22.121716 0-42.90387 8.562003-58.541653 24.115234L674.672953 128.025071l37.039062 38.20616 157.888289-153.058978c5.606924-5.606695 13.091693-8.692986 21.077901-8.692986 7.983139 0 15.464837 3.087315 21.070738 8.69094 5.616135 5.622044 8.715856 13.126972 8.715856 21.123087 0 7.980765-3.091535 15.46318-8.702552 21.067828l-0.301888 0.306992L758.714395 213.230662l38.207726 37.035498 152.611906-157.427472c15.571265-15.638165 24.144876-36.422538 24.144876-58.549487 0-22.195511-8.625801-43.054585-24.287121-58.735729C933.723298-40.112324 912.876674-48.734702 890.678206-48.734702zM281.015489 327.245392c-42.340005 42.320874-65.652899 98.584296-65.643689 158.421102 0.008187 59.818387 23.319034 116.074645 65.637549 158.4078l37.634651-37.619806c-66.60666-66.629513-66.60973-175.00071-0.007163-241.577011L281.015489 327.245392z" horiz-adv-x="1024" /> | ||
| 360 | + | ||
| 361 | + <glyph glyph-name="friends" unicode="" d="M672.02974 765.933689c7.66047-32.266891 8.420787-62.237483 7.713682-95.365998-0.283456-12.778024-7.291057-71.832002-5.3918-89.926102 1.561565-14.936177 5.132904-16.128329 10.759041-28.436656 9.803273-21.422915 6.51846-50.970882 2.76088-72.566736-2.056845-11.816117-6.404873-28.64541-13.017478-38.287001-7.291057-10.645454-21.864984-10.711969-28.319999-23.12365-9.29469-17.848507-4.045129-42.930765-9.903557-62.21497-6.65763-21.883403-23.599488-23.420409-24.877597-52.040237 8.316409-1.243317 16.59598-2.479471 24.877597-3.722788 8.316409-18.498306 23.533996-55.70265 39.08518-66.900689 13.024641-3.728928 26.048259-7.448646 39.07904-11.156084 45.641503-19.593244 96.365768-43.032072 142.108578-63.215764 41.656749-18.381649 91.51325-24.937972 106.575294-70.629617 0-31.026644 2.795673-104.309694 2.025123-144.978952L58.155515-56.631556000000046c-0.757247 40.669258 2.029216 113.952308 2.029216 144.978952 15.065114 45.691645 64.928778 52.247968 106.578364 70.629617 45.74281 20.182668 96.467075 43.62252 142.098345 63.215764 13.027711 3.707438 26.054399 7.427156 39.08211 11.156084 15.554254 11.197016 30.78105 48.402383 39.09439 66.900689l18.492166 4.710278c-4.196579 24.429389-18.658965 26.322505-24.682146 43.62559-2.356674 26.013467-4.729721 52.052516-7.095605 78.079286 0.107447-1.234107-17.006326 3.246951-19.252483 4.716418-24.130583 15.838733-24.618701 80.075757-26.941606 106.793258-1.063215 12.222369 15.163351 22.240537 10.654664 44.62536-26.433022 131.125433 11.437493 219.776496 71.330582 240.123916 41.564651 17.633612 119.167077 50.323129 191.563944 3.716648l17.971303-17.428951 29.061896-5.237281C662.71663 795.172617 672.02974 765.933689 672.02974 765.933689z" horiz-adv-x="1024" /> | ||
| 362 | + | ||
| 363 | + <glyph glyph-name="group" unicode="" d="M1328.72893437-13.274022189999982L1325.7954575 10.932401249999998 1319.19311938 40.27361905999999 1309.65730438 68.14729219000003 1296.45423969 96.75473719000001 1283.25117594 118.75984405999998 1264.91331781 140.03117906 1244.37414312 156.90310406000003 1215.76669813 173.03964562 1195.22913594 182.57546062999995 1168.08923563 189.17779874999997 1140.94772187 195.77852437 1117.47507031 204.58056750000003 1088.13546594 218.51740312000004 1064.66281438 229.52076375000001 1036.05536844 242.72382749999997 1014.0502625 255.19473187999995 1014.0502625 332.94718406000004 1023.58446406 343.95054469 1032.38811969 358.61954062999996 1038.98884531 373.29014906 1044.12363969 391.62800719 1049.992205 413.63472656 1052.19191 430.50504 1055.370515 429.77126719 1061.727725 430.75016813 1066.61900281 434.662545 1071.99731188 443.46458812 1075.42104594 453.7325625 1077.37723437 466.4469825 1079.82206656 489.43099031 1080.799355 508.991265 1079.82206656 525.61806187 1076.39833344 535.88764969 1069.55247969 539.80002656 1065.64010188 538.82112656 1069.06383594 560.82623344 1071.99731188 587.2339743800001 1072.97621281 611.19526969 1072.48595656 630.26689969 1069.55247969 647.870985 1064.17255719 664.98642656 1056.83805969 680.63432344 1046.56847188 698.24002125 1034.83295281 712.91063063 1021.13963187 724.15750594 1003.53554656 735.40438125 981.53043969 745.67396812 962.94745344 750.56363437 940.45370281 754.47601125 918.4469825 754.964655 895.95323188 751.05227812 874.43676969 743.71777969 855.36513875 735.893025 838.73834188 725.1347934400001 823.33396063 711.44308594 808.66335125 695.30493188 795.4602875 676.23330187 785.9244725 655.69573969 780.05751875 632.22308813 779.32374687 602.14809844 782.25722375 574.27442531 785.9244725 538.3324818799999 777.85620219 538.3324818799999 772.72140875 531.73014375 771.25547656 519.99462469 772.72140875 492.12095156 776.3886575 459.84625688 779.32374687 443.70810375 784.45854031 434.90606063 793.99435531 429.77126719 799.86130906 430.50504 803.53017031 404.83268344 807.19742 389.42830219 813.06598531 372.55637719000003 821.13425656 355.68606375 830.67007156 342.48299999999995 838.00456906 332.94718406000004 837.27079719 253.72718719 845.06329813 250.99690875 855.81346625 248.0392425 867.37158969 243.73981969 878.39107625 239.43878530999996 888.6058325 235.67638781000005 897.74331406 231.10603405999996 908.76441312 226.53729375 920.85956187 219.54952313 932.95471062 212.56014000000005 942.898535 205.30305094000005 955.80002656 195.62693156 966.82112656 185.41378874999998 977.30358781 172.51229719000003 988.32307531 158.26743750000003 1000.01505219 141.87125344000003 1010.0943425 122.51901655999995 1018.69641219 101.55409219 1026.22120719 82.20185436999998 1031.46243781 64.05913219000001 1035.09098281 45.110066250000045 1038.71952688 23.741970000000038 1041.13855625-1.2546703100000514 1041.54172812-18.187877810000032 1040.73538531-33.30681374999995 1037.30842625-44.99879062000002 1030.79156-57.83254968999995 1023.19742-66.36688593999997 1009.28799875-73.42238906 1298.65555719-73.42238906 1311.85862094-66.82005093999999 1322.12820875-56.552076560000046 1328.72893437-45.54871687000002 1330.19647906-31.611880309999947ZM443.23504906 789.36487031L427.10818437 771.62531906 412.59400625 750.66039469 402.11154406 728.08278469 395.66079781 702.27980156 394.854455 669.21972844 398.07982813 638.57868562 402.11154406 599.06786719 393.24176844 599.06786719 387.59736594 591.81077812 385.98467938 578.90928656 387.59736594 548.26824375 391.62908187 512.7891412500001 394.854455 495.04959 400.4988575 485.37347156 410.98131969 479.72906906 417.43206594 480.53541188 421.46378187 452.31339844 425.49549781 435.38019094 431.94624406 416.83429687 440.81601969 398.28840187 451.29848094 383.77422375000003 459.36191375 373.29176156000005 458.55557094 286.20669281000005 444.84773562 277.33691719 412.59400625 262.01639531 379.53393406 247.50221719 352.92460719 234.60072562000005 331.95968281 225.73095 308.57572906 218.47386094 284.3854325 213.63580125 261.00147875 207.99139875000003 236.81118125 197.50893656000005 214.23357031 186.22013156000003 194.07498969 171.70595344000003 171.49737969 149.12834250000003 155.370515 125.74438874999998 143.27536625 103.16677875000005 133.59924781 78.97648125 123.92312844 51.56081156000005 119.08506875 29.789544370000044 115.05335281 11.243650310000021 112.63432344-10.527616869999974 112.63432344-29.879854690000002 115.85969656-49.23209250000002 125.535815-62.133584059999976 140.04999313-71.80970344000002 158.59588719-73.42238906 965.74546437-73.42238906 980.2596425-66.1653 991.5484475-54.87649499999998 998.80553656-42.781346249999956 1000.41822312-27.46082531000002 998.80553656-7.302244689999952 995.58016438 19.30708218999996 988.32307531 51.56081156000005 977.84061313 82.20185436999998 963.326435 113.64924094000003 948.81225688 137.8395375 928.65367531 161.22349125000005 906.07606531 179.76938625000003 874.62867875 197.50893656000005 852.05106875 207.99139875000003 822.21636875 215.24848781000003 792.38166875 222.50557688000004 766.57868562 232.18169624999996 734.32495625 247.50221719 708.52197312 259.59736594000003 677.07458656 274.11154406 652.88429 287.81937937 652.88429 373.29176156000005 663.36675219 385.38691031 673.04287063 401.513775 680.29995969 417.64063969 685.94436219 437.79922031 692.39510844 461.98951781 694.81413781 480.53541188 698.30882938 479.72906906 705.2966 480.80473031 710.67168406 485.10415312 716.585405 494.78027156 720.3478025 506.06907656 722.49912688 520.04623031 725.18586219 545.31218906 726.26152437 566.8141378099999 725.18586219 585.09071344 721.42346469 596.3795184400001 713.89705719 600.68055375 709.59763438 599.6048915599999 713.36003188 623.79518906 716.585405 652.82354531 717.66106719 679.16516625 717.12242937 700.13008969 713.89705719 719.4823275 707.98494781 738.2959275000001 699.92151594 755.49845437 688.63271094 774.85069219 675.73121937 790.97755688 660.67840344 803.34202406 641.32616563 815.70487875 617.13586906 826.99368375 596.7095825 832.37038031 571.98064812 836.66980219 547.79035063 837.20844 523.06302875 832.90740469 499.40975656 824.84397281 478.44483313 816.24351562 460.16825656 804.4160728100001Z" horiz-adv-x="1449" /> | ||
| 364 | + | ||
| 365 | + <glyph glyph-name="reply-fill" unicode="" d="M507.904 835.5840000000001q93.184 1.024 175.104-33.792t143.872-94.72 97.792-141.312 36.864-174.592q1.024-88.064-30.208-165.888t-87.04-137.728-131.072-98.816-162.304-48.128q-22.528-3.072-48.128-5.12t-56.832-3.072-69.632 0-86.528 6.144q-106.496 10.24-158.208 26.624t-41.472 18.432q54.272 9.216 93.184 29.696 20.48 11.264 16.896 32.256t-19.968 39.424q-52.224 57.344-84.48 133.632t-34.304 164.352q-1.024 93.184 33.792 175.104t95.232 143.36 142.336 97.28 175.104 36.864zM707.584 385.024q0-26.624 18.432-45.568t45.056-18.944 45.568 18.944 18.944 45.568-18.944 45.056-45.568 18.432-45.056-18.432-18.432-45.056zM450.56 385.024q0-26.624 19.456-46.08t46.08-19.456q27.648 0 46.592 19.456t18.944 46.08q0 27.648-18.944 46.592t-46.592 18.944q-26.624 0-46.08-18.944t-19.456-46.592zM196.608 386.048q0-26.624 18.944-46.08t45.568-19.456q27.648 0 46.592 19.456t18.944 46.08-18.944 45.568-46.592 18.944q-26.624 0-45.568-18.944t-18.944-45.568z" horiz-adv-x="1024" /> | ||
| 366 | + | ||
| 367 | + <glyph glyph-name="menu-fill" unicode="" d="M511.999488 834.254727c-248.678712 0-450.273176-201.585181-450.273176-450.254727s201.594464-450.254727 450.273176-450.254727 450.273176 201.585181 450.273176 450.254727S760.6782 834.254727 511.999488 834.254727zM266.371377 589.705012l491.256222 0 0-33.772174L266.371377 555.932838 266.371377 589.705012zM757.627599 178.29396499999996L266.371377 178.29396499999996l0 33.773198 491.256222 0L757.627599 178.29396499999996zM140.487278 367.11340099999995l0 33.771151 743.024421 0 0-33.771151L140.487278 367.11340099999995z" horiz-adv-x="1024" /> | ||
| 368 | + | ||
| 369 | + <glyph glyph-name="face-smile-fine" unicode="" d="M511.558443 852.9315573333333c-246.787686 0-447.597201-200.783932-447.597201-447.598224 0-246.815315 200.783932-447.598224 447.597201-447.598224 246.841921 0 447.64939 200.782909 447.64939 447.598224C959.207833 652.1476253333334 758.400365 852.9315573333333 511.558443 852.9315573333333zM511.558443-4.962310666666667c-226.247884 0-410.295644 184.046736-410.295644 410.295644 0 226.249931 184.072319 410.296667 410.295644 410.296667 226.27449 0 410.346809-184.046736 410.346809-410.296667C921.905252 179.08442633333334 737.832933-4.962310666666667 511.558443-4.962310666666667zM724.38055 303.5726953333334c-9.698896 3.457752-20.366863-1.566682-23.848151-11.264555-28.500101-79.45461-104.372116-132.844587-188.82353-132.844587-84.798315 0-160.770614 53.689806-189.070146 133.590578-3.432169 9.723455-14.075577 14.772448-23.823592 11.364839-9.699919-3.432169-14.797008-14.100136-11.364839-23.823592 33.547047-94.77248 123.668601-158.434405 224.234017-158.434405 100.142791 0 190.140525 63.314001 223.935212 157.564595C739.125369 289.3978573333334 734.102982 300.0903843333334 724.38055 303.5726953333334zM302.49494 515.3479593333334c0-24.653493 19.98517-44.638663 44.638663-44.638663 24.653493 0 44.638663 19.98517 44.638663 44.638663s-19.98517 44.63764-44.638663 44.63764C322.48011 559.9855993333333 302.49494 540.0014523333333 302.49494 515.3479593333334L302.49494 515.3479593333334zM631.398856 515.3479593333334c0-24.653493 19.98517-44.638663 44.63764-44.638663 24.653493 0 44.63764 19.98517 44.63764 44.638663s-19.984147 44.63764-44.63764 44.63764C651.384026 559.9855993333333 631.398856 540.0014523333333 631.398856 515.3479593333334L631.398856 515.3479593333334z" horiz-adv-x="1024" /> | ||
| 370 | + | ||
| 371 | + <glyph glyph-name="picture-fine" unicode="" d="M958.648085 84.30682933333333L65.772494 84.30682933333333 65.772494 721.9115253333333l892.87559 0L958.648085 84.30682933333333zM97.660762 116.20328333333339l829.099055 0L926.759817 690.0570263333334 97.660762 690.0570263333334 97.660762 116.20328333333339zM648.731616 419.05893933333334l-1.991354 0c-47.801702 0-86.696548 38.900985-86.696548 86.695524l0 1.978051c0 47.809889 38.894845 86.671988 86.696548 86.671988l1.991354 0c47.801702 0 86.698594-38.862099 86.698594-86.671988l0-1.978051C735.43021 457.95992433333333 696.533318 419.05893933333334 648.731616 419.05893933333334zM646.740262 562.5193053333333c-30.224372 0-54.810327-24.582885-54.810327-54.787814l0-1.978051c0-30.230512 24.584931-54.803163 54.810327-54.803163l1.991354 0c30.222325 0 54.810327 24.572652 54.810327 54.803163l0 1.978051c0 30.203906-24.586978 54.787814-54.810327 54.787814L646.740262 562.5193053333333zM91.097276 181.7900473333334l-22.748097 22.338774 274.373974 279.332916 22.750143-22.351054L91.097276 181.7900473333334zM604.886015 215.92242633333342L339.999113 480.74793033333333l22.548552 22.525016L627.433544 238.4638153333334 604.886015 215.92242633333342zM619.007641 202.70744933333333l-22.763446 22.337751 167.989015 171.035398 22.765493-22.350031L619.007641 202.70744933333333zM925.622924 222.7939273333334L758.534418 389.8343373333333l22.548552 22.529109 167.086459-167.044504L925.622924 222.7939273333334z" horiz-adv-x="1024" /> | ||
| 372 | + | ||
| 373 | + <glyph glyph-name="log" unicode="" d="M828.01742 700.357158C743.476979 784.899646 631.076002 831.458031 511.516999 831.458031c-119.55798 0-231.959979-46.558385-316.500421-131.09985C110.47716 615.81774 63.918775 503.41574 63.918775 383.85776c0-87.103824 25.045419-171.548074 72.429613-244.204861 9.393951-14.402011 28.685319-18.46249 43.087331-9.071609 14.404058 9.393951 18.46556 28.685319 9.072633 43.089377-40.768519 62.511729-62.317301 135.194098-62.317301 210.187093 0 212.469066 172.85586 385.326972 385.325949 385.326972s385.325949-172.857906 385.325949-385.326972-172.85586-385.326972-385.325949-385.326972c-70.357418 0-139.188062 19.131733-199.052498 55.323003-14.71412 8.900717-33.856086 4.180206-42.753733-10.534937-8.896624-14.71719-4.180206-33.856086 10.534937-42.753733 69.584821-42.070164 149.556201-64.307631 231.271294-64.307631 119.559003 0 231.959979 46.558385 316.500421 131.09985 84.539418 84.539418 131.097804 196.941418 131.097804 316.499397S912.556838 615.81774 828.01742 700.357158zM494.28964 690.216193c-21.782096 0-39.397289-17.658172-39.397289-39.439244l0-283.524378c0-1.360997 0.358157-2.706645 0.493234-4.03285 2.020006-19.886933 18.959817-34.573423 39.379892-34.573423l0 0 0.146333 0.832971 223.590358 0c21.782096 0 39.438221 17.616216 39.438221 39.397289s-17.658172 39.397289-39.439244 39.397289L533.686928 408.273846l0 242.503103C533.686928 672.5580219999999 516.071735 690.216193 494.28964 690.216193z" horiz-adv-x="1024" /> | ||
| 374 | + | ||
| 375 | + <glyph glyph-name="list" unicode="" d="M618.04471 733.97072l-397.175835 0c-16.927531 0-30.699186-13.771655-30.699186-30.699186l0-638.543068c0-16.927531 13.771655-30.699186 30.699186-30.699186l582.261227 0c16.927531 0 30.699186 13.771655 30.699186 30.699186l-0.726547 476.760404L618.04471 733.97072zM803.771715 541.488871 619.537713 541.488871 619.537713 705.552483 803.771715 541.488871zM813.363164 64.728466c0-5.64251-4.590552-10.233062-10.233062-10.233062l-582.261227 0c-5.64251 0-10.233062 4.590552-10.233062 10.233062l0 638.543068c0 5.64251 4.590552 10.233062 10.233062 10.233062l378.202715 0 0-192.481849 214.291574 0L813.363164 64.728466zM298.129516 482.495268l55.258535 0 0-55.258535-55.258535 0 0 55.258535ZM399.777591 468.168981l323.364759 0 0-26.605961-323.364759 0 0 26.605961ZM298.129516 342.044446l55.258535 0 0-55.258535-55.258535 0 0 55.258535ZM399.777591 327.718159l323.364759 0 0-26.605961-323.364759 0 0 26.605961ZM298.129516 199.804884l55.258535 0 0-55.258535-55.258535 0 0 55.258535ZM399.777591 185.478598l323.364759 0 0-26.605961-323.364759 0 0 26.605961ZM881.315812 53.053566" horiz-adv-x="1024" /> | ||
| 376 | + | ||
| 377 | + <glyph glyph-name="release" unicode="" d="M990.78144 828.5388800000001c-3.35872 1.59744-7.04512 2.37568-11.01824 2.37568-14.45888 0-27.60704-10.81344-27.40224-10.81344-8.8064-4.42368-880.59904-443.22816-911.44192-459.44832-17.408-9.13408-27.36128-24.73984-25.92768-40.71424 1.10592-13.14816 9.78944-23.51104 23.10144-27.77088 26.17344-8.27392 290.24256-91.58656 290.24256-91.58656l4.83328-1.47456 16.67072 50.05312-254.32064 79.54432 780.73856 406.28224c-82.82112-93.88032-420.53632-476.32384-436.10112-493.93664-20.11136-22.48704-29.4912-45.09696-29.40928-70.98368l0.28672-153.27232-0.08192 0c0 0 0.08192-53.49376 0.08192-53.6576l0-1.96608 0 0c1.18784-13.5168 12.73856-24.24832 26.54208-24.24832s25.51808 10.73152 26.74688 24.24832l0 0c0 0 0.53248 191.03744 0 205.08672-0.49152 12.4928 5.07904 26.54208 10.69056 33.05472 5.65248 6.38976 390.63552 442.61376 465.75616 527.81056-21.38112-106.41408-126.68928-629.76-128.24576-637.41952-0.8192-4.05504-2.58048-4.05504-3.35872-4.05504-0.6144 0-1.31072 0.12288-2.048 0.36864-7.45472 2.37568-268.82048 81.55136-279.92064 84.91008l-4.7104 1.4336-17.16224-50.50368 5.07904-1.59744c2.58048-0.77824 258.90816-79.09376 284.38528-86.46656 5.07904-1.47456 10.24-2.2528 15.44192-2.2528 26.99264 0 49.5616 19.37408 54.8864 46.98112 2.08896 10.93632 27.0336 134.67648 55.9104 277.99552 39.77216 197.14048 84.7872 420.61824 85.93408 427.6224l0.6144 3.31776C1009.70496 798.96576 1013.26848 817.9712 990.78144 828.5388800000001z" horiz-adv-x="1024" /> | ||
| 378 | + | ||
| 379 | + <glyph glyph-name="add-circle-fine" unicode="" d="M509.989715-60.972421000000054c-246.734474 0-446.75195 200.023616-446.75195 446.75809 0 246.732427 200.017476 446.75195 446.75195 446.75195 246.733451 0 446.757067-200.019523 446.757067-446.75195C956.746782 139.051195 756.723166-60.972421000000054 509.989715-60.972421000000054L509.989715-60.972421000000054zM509.989715 812.433746c-235.633648 0-426.650123-191.014428-426.650123-426.648077 0-235.639788 191.016475-426.654216 426.650123-426.654216 235.638765 0 426.654216 191.014428 426.654216 426.654216C936.643931 621.419318 745.62848 812.433746 509.989715 812.433746L509.989715 812.433746zM527.863804 153.46957999999995l-35.741016 0L492.122789 367.909533 277.678742 367.909533 277.678742 403.653619l214.443024 0L492.121765 618.0956189999999l35.741016 0L527.862781 403.653619l214.442 0 0-35.744086L527.863804 367.909533 527.863804 153.46957999999995 527.863804 153.46957999999995zM527.863804 153.46957999999995" horiz-adv-x="1024" /> | ||
| 380 | + | ||
| 381 | + <glyph glyph-name="ok" unicode="" d="M960 640L915.2 684.8 371.2 172.79999999999995 108.8 454.4 64 409.6 358.4 83.20000000000005 364.8 89.60000000000002 371.2 83.20000000000005Z" horiz-adv-x="1024" /> | ||
| 382 | + | ||
| 383 | + <glyph glyph-name="help" unicode="" d="M690.2 741.8C635.2 783.6 573.2 798 494.6 798c-59.6 0-110.6-12.2-151-39.4C284 718 256 649.8 256 542l153.6 0c0 28.8-2.8 59.8 14 86.4 16.8 26.6 40.2 47 80.4 47 40.8 0 61.8-11.8 81.6-36.2 16.8-20.8 23.2-45.6 23.2-72 0-22.8-11.6-43.8-25.4-62.8-7.6-11.2-17.6-21.2-30.2-30.8 0 0-83-49.4-112.2-96.2-21.8-34.8-29.6-78.4-31.4-130.6-0.2-3.8 1.2-11.6 14.4-11.6 13 0 112 0 123.6 0 11.6 0 14 8.8 14.2 12.4 0.8 19 3.2 48.2 6.6 59.2 6.6 20.8 19.4 39 39.4 54.6l41.4 28.6c37.4 29.2 67.2 53 80.4 71.8 22.6 30.8 38.4 68.8 38.4 113.8C768 649 741 703.2 690.2 741.8zM484 155.6c-51.8 1.6-94.6-34.4-96.4-90.6-1.6-56.4 39-93.4 91-95 54-1.6 95.8 33.2 97.4 89.4C577.6 115.6 538 154 484 155.6z" horiz-adv-x="1024" /> | ||
| 384 | + | ||
| 385 | + <glyph glyph-name="chat" unicode="" d="M132.682393 414.567179c0 208.287837 166.471452 377.143593 379.317095 377.143593s385.380184-168.855756 385.380184-377.143593c0-177.196725-122.197086-325.812507-290.49821-366.259708l-116.291586-51.04763 0 41.126676C290.570353 52.175568999999996 132.682393 215.31206599999996 132.682393 414.567179zM83.799056 414.567179c0-211.946157 160.764474-387.135154 369.469819-415.152255-3.2623-20.458961-10.036587-65.024969-7.286963-65.024969 2.384303 0 114.89068 47.294143 189.700503 78.865185 176.193885 51.91437 304.518528 211.946157 304.518528 401.312038 0 231.432976-191.70823 419.042865-428.200432 419.042865S83.799056 646.0001560000001 83.799056 414.567179zM340.71952 276.63573699999995c22.935362-41.481763 89.831958-75.102489 170.391738-75.102489 79.650061 0 148.489916 32.909527 172.168198 73.681116-12.701277 5.979178-19.068288 8.02886-28.131711 12.21009-19.894096-31.257911-75.425853-59.661821-142.729725-59.661821-66.969251 0-122.836653 28.40391-143.598512 61.083194L340.71952 276.63573699999995z" horiz-adv-x="1024" /> | ||
| 386 | + | ||
| 387 | + <glyph glyph-name="top" unicode="" d="M812 153.4l-300 172.8-300-172.8 300 604L812 153.4zM264.5 209.2l247.5 142.5 247.5-142.5L512 707.5 264.5 209.2zM371.7 138.3l0-126.2-15.9 0 0 126.2-45.9 0L309.9 153l107.4 0 0-14.8L371.7 138.2zM506.6 154.5c26.6 0 43.3-3.9 50-11.7 6.7-7.8 10-27.2 10-58.3 0-33.5-3.2-54.2-9.6-62-6.4-7.8-23.2-11.8-50.4-11.8-27 0-43.8 3.9-50.3 11.7-6.5 7.8-9.8 27.9-9.8 60.3l0 9.9 0.2 13.3c0 18.7 4.2 31.5 12.6 38.4C467.8 151 483.5 154.5 506.6 154.5zM506.5 141c-22.3 0-35.3-2.5-39.1-7.4-3.8-5-5.7-22-5.7-51 0-29.1 1.9-46.1 5.7-51.1 3.8-5 16.8-7.4 39.1-7.4 22.4 0 35.4 2.5 39.2 7.4 3.8 5 5.7 22 5.7 51.1l0 9.2-0.1 13.3c0 15.6-2.6 25.4-7.8 29.6S525.9 141 506.5 141zM608.4 12.1 608.4 153l59.2 0 5.4 0c15.9 0 26.7-3.1 32.5-9.2 5.8-6.1 8.7-17.6 8.7-34.4 0-16.1-3-27.1-9-32.9-6-5.9-17.3-8.8-33.9-8.8l-6.2-0.1-40.7 0 0-55.5L608.4 12.1zM624.3 81.1l37.7 0c15.8 0 25.9 1.6 30.3 4.9 4.4 3.2 6.7 10.7 6.7 22.3 0 13.6-1.5 22.2-4.5 25.9-3 3.6-10.1 5.4-21.3 5.4l-6.1 0.1-42.7 0L624.4 81.1z" horiz-adv-x="1024" /> | ||
| 388 | + | ||
| 389 | + <glyph glyph-name="right" unicode="" d="M283.648 721.9189759999999L340.873216 780.926976 740.352 383.99795200000005 340.876288-12.925952000000052 283.648 46.07795199999998 619.52 383.99795200000005Z" horiz-adv-x="1024" /> | ||
| 390 | + | ||
| 391 | + <glyph glyph-name="left" unicode="" d="M740.352 721.9189759999999L683.126784 780.926976 283.648 383.99795200000005 683.123712-12.925952000000052 740.352 46.07795199999998 404.48 383.99795200000005Z" horiz-adv-x="1024" /> | ||
| 392 | + | ||
| 393 | + <glyph glyph-name="star" unicode="" d="M749.624889-84.152889c-15.672889 0-31.246222 3.882667-45.084444 11.306667l-192.526222 103.637333L319.544889-72.817778c-31.203556-16.64-70.314667-14.392889-99.043556 5.304889-29.511111 20.337778-44.743111 55.921778-38.840889 90.695111l37.703111 225.251556L56.661333 410.908444c-25.002667 24.888889-33.464889 60.984889-22.058667 94.193778 11.349333 32.910222 40.064 56.576 74.965333 61.752889l221.326222 32.896 96.128 199.580444c15.488 32.085333 48.853333 52.807111 84.992 52.807111 36.167111 0 69.518222-20.736 84.963556-52.807111l96.156444-199.580444 221.297778-32.910222c34.872889-5.162667 63.616-28.8 74.979556-61.696 11.392-33.28 2.944-69.361778-22.030222-94.250667L804.622222 248.433778l37.745778-225.28c5.845333-34.773333-9.386667-70.357333-38.812444-90.638222C787.569778-78.392889 768.938667-84.152889 749.624889-84.152889zM512.014222 91.548444c4.636444 0 9.272889-1.137778 13.482667-3.384889l205.937778-110.862222c12.373333-6.641778 28.316444-5.802667 39.936 2.133333 11.392 7.836444 17.123556 21.006222 14.890667 34.304L746.097778 253.496889c-1.507556 9.088 1.450667 18.332444 7.964444 24.832l173.141333 172.842667c9.457778 9.429333 12.686222 23.025778 8.405333 35.484444-4.380444 12.672-15.701333 21.873778-29.525333 23.921778L669.866667 545.706667c-9.315556 1.379556-17.365333 7.296-21.447111 15.786667L545.720889 774.641778c-6.030222 12.529778-19.256889 20.608-33.706667 20.608s-27.690667-8.092444-33.763556-20.622222L375.608889 561.493333c-4.081778-8.490667-12.131556-14.407111-21.447111-15.786667L117.930667 510.577778c-13.624889-2.033778-25.201778-11.434667-29.539556-23.992889-4.266667-12.416-1.024-25.984 8.433778-35.399111L269.937778 278.328889c6.513778-6.499556 9.472-15.744 7.964444-24.832l-40.135111-239.744c-2.247111-13.312 3.484444-26.439111 14.976-34.360889 11.434667-7.836444 27.349333-8.775111 39.950222-2.062222l205.852444 110.833778C502.741333 90.410667 507.377778 91.548444 512.014222 91.548444zM200.32 439.210667c-6.840889 0-12.885333 4.963556-14.023111 11.946667-1.251556 7.751111 4.010667 15.061333 11.761778 16.312889l9.443556 1.536c7.793778 1.336889 15.061333-4.010667 16.312889-11.761778 1.251556-7.751111-4.010667-15.061333-11.761778-16.312889l-9.443556-1.536C201.856 439.267556 201.073778 439.210667 200.32 439.210667zM252.544 447.687111c-6.684444 0-12.643556 4.721778-13.937778 11.534222-1.493333 7.708444 3.555556 15.175111 11.264 16.654222l153.927111 29.696 58.055111 133.148444c3.157333 7.182222 11.548444 10.496 18.716444 7.352889 7.210667-3.143111 10.510222-11.52 7.367111-18.716444l-61.056-140.017778c-1.877333-4.295111-5.745778-7.395556-10.353778-8.277333l-161.28-31.118222C254.336 447.758222 253.44 447.687111 252.544 447.687111z" horiz-adv-x="1024" /> | ||
| 394 | + | ||
| 395 | + <glyph glyph-name="download-circle" unicode="" d="M510.771521 828.211081c-244.998947 0-443.597097-198.60429-443.597097-443.590957s198.59815-443.591981 443.597097-443.591981c244.986667 0 443.583794 198.60429 443.583794 443.591981S755.758188 828.211081 510.771521 828.211081zM510.771521-30.044013999999947c-229.010811 0-414.664138 185.65435-414.664138 414.664138 0 229.010811 185.653327 414.657998 414.664138 414.657998 228.996484 0 414.652881-185.647187 414.652881-414.657998C925.424402 155.60931300000004 739.768005-30.044013999999947 510.771521-30.044013999999947zM662.749888 352.39518799999996L537.719266 245.82501100000002l0 324.388065c0 14.887059-12.06478 26.953885-26.947745 26.953885-14.894222 0-26.961048-12.066827-26.961048-26.953885l0-325.410348L357.936647 352.39518799999996c-10.56359 10.599406-27.693736 10.599406-38.267559 0-10.56359-10.596336-10.56359-27.777647 0-38.375006l170.181961-161.220868c5.629207-5.652743 13.111622-8.060583 20.49887-7.680936 7.373944-0.379647 14.859429 2.02717 20.488637 7.680936l170.181961 161.220868c10.562567 10.597359 10.562567 27.77867 0 38.375006C690.443623 362.99561700000004 673.313477 362.99561700000004 662.749888 352.39518799999996z" horiz-adv-x="1024" /> | ||
| 396 | + | ||
| 397 | + <glyph glyph-name="close" unicode="ဆ" d="M783.483 701.249L512 429.775 240.517 701.249c-10.082 10.083-26.429 10.083-36.51 0-10.083-10.082-10.083-26.429 0-36.509l271.481-271.475L204.008 121.78800000000001c-10.083-10.081-10.083-26.428 0-36.508 10.082-10.082 26.429-10.082 36.51 0L512 356.755l271.483-271.475c10.082-10.082 26.429-10.082 36.513 0 10.081 10.083 10.081 26.428 0 36.508L548.51 393.265l271.485 271.474c10.081 10.083 10.081 26.429 0 36.509C809.912 711.33 793.564 711.33 783.483 701.249z" horiz-adv-x="1024" /> | ||
| 398 | + | ||
| 399 | + <glyph glyph-name="close-fill" unicode="ဇ" d="M512 822.022125c-217.47508 0-394.423141-176.949085-394.423141-394.423141 0-217.474057 176.948061-394.422118 394.423141-394.422118 217.473033 0 394.422118 176.948061 394.422118 394.422118C906.422118 645.07304 729.473033 822.022125 512 822.022125zM702.228529 270.92978200000005c8.030907-8.030907 8.030907-21.052478 0-29.083385s-21.052478-8.030907-29.083385 0L512 402.992563 350.853833 241.84741899999995c-8.030907-8.030907-21.052478-8.030907-29.083385 0s-8.030907 21.052478 0 29.083385l161.146167 161.146167L321.771471 593.222115c-8.030907 8.030907-8.030907 21.052478 0 29.083385s21.052478 8.030907 29.083385 0l161.146167-161.146167L673.145144 622.305501c8.030907 8.030907 21.052478 8.030907 29.083385 0s8.030907-21.052478 0-29.083385L541.082362 432.075949 702.228529 270.92978200000005z" horiz-adv-x="1024" /> | ||
| 400 | + | ||
| 401 | + <glyph glyph-name="ok-circle" unicode="စ" d="M516.152065-63.152063c-60.696384 0-119.594819 11.894911-175.056991 35.353183-53.55473 22.651906-101.646028 55.073316-142.936433 96.364745-41.291428 41.291428-73.712839 89.381703-96.363721 142.936433-23.458271 55.462173-35.353183 114.359584-35.353183 175.055968s11.894911 119.594819 35.353183 175.056991c22.651906 53.55473 55.073316 101.646028 96.363721 142.936433 41.290405 41.291428 89.381703 73.712839 142.936433 96.363721 55.462173 23.458271 114.359584 35.353183 175.056991 35.353183s119.594819-11.894911 175.056991-35.353183c53.55473-22.651906 101.645005-55.073316 142.936433-96.363721 41.291428-41.290405 73.711815-89.38068 96.363721-142.936433 23.459295-55.462173 35.353183-114.359584 35.353183-175.056991 0-60.696384-11.893888-119.593795-35.353183-175.055968-22.651906-53.55473-55.072293-101.645005-96.363721-142.936433s-89.381703-73.712839-142.936433-96.364745C635.747907-51.25715200000002 576.849472-63.152063 516.152065-63.152063zM516.152065 774.870222c-214.115566 0-388.311956-174.196391-388.311956-388.311956s174.196391-388.311956 388.311956-388.311956 388.311956 174.196391 388.311956 388.311956S730.268654 774.870222 516.152065 774.870222zM434.74908 132.830517L209.49278 358.08784 289.087583 437.68162 434.74908 292.020122 743.218594 600.488613 822.812373 520.89381Z" horiz-adv-x="1024" /> | ||
| 402 | + | ||
| 403 | + </font> | ||
| 404 | + </defs> | ||
| 405 | +</svg> |
src/main/resources/static/pages/video/font/iconfont.ttf
0 → 100644
No preview for this file type
src/main/resources/static/pages/video/font/iconfont.woff
0 → 100644
No preview for this file type
src/main/resources/static/pages/video/font/iconfont.woff2
0 → 100644
No preview for this file type
src/main/resources/static/pages/video/layui.js
0 → 100644
| 1 | +/** v2.9.13 | MIT Licensed */;!function(d){"use strict";var t,h=d.document,m={modules:{},status:{},timeout:10,event:{}},n=function(){this.v="2.9.13"},e=d.LAYUI_GLOBAL||{},v=(t=h.currentScript?h.currentScript.src:function(){for(var t,e=h.scripts,o=e.length-1,n=o;0<n;n--)if("interactive"===e[n].readyState){t=e[n].src;break}return t||e[o].src}(),m.dir=e.dir||t.substring(0,t.lastIndexOf("/")+1)),g=function(t,e){e=e||"log",d.console&&console[e]&&console[e]("layui error hint: "+t)},b="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),N=m.builtin={lay:"lay",layer:"layer",laydate:"laydate",laypage:"laypage",laytpl:"laytpl",form:"form",upload:"upload",dropdown:"dropdown",transfer:"transfer",tree:"tree",table:"table",treeTable:"treeTable",element:"element",rate:"rate",colorpicker:"colorpicker",slider:"slider",carousel:"carousel",flow:"flow",util:"util",code:"code",jquery:"jquery",all:"all","layui.all":"layui.all"},s=(n.prototype.cache=m,n.prototype.define=function(t,n){return"function"==typeof t&&(n=t,t=[]),this.use(t,function(){var o=function(t,e){layui[t]=e,m.status[t]=!0};return"function"==typeof n&&n(function(t,e){o(t,e),m.callback[t]=function(){n(o)}}),this},null,"define"),this},n.prototype.use=function(o,t,e,n){var r,i,a=this,u=m.dir=m.dir||v,l=h.getElementsByTagName("head")[0],s=(o="string"==typeof o?[o]:"function"==typeof o?(t=o,["all"]):o,d.jQuery&&jQuery.fn.on&&(a.each(o,function(t,e){"jquery"===e&&o.splice(t,1)}),layui.jquery=layui.$=jQuery),o[0]),c=0;function p(t,e){var o="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;"load"!==t.type&&!o.test((t.currentTarget||t.srcElement).readyState)||(m.modules[s]=e,l.removeChild(r),function n(){return++c>1e3*m.timeout/4?g(s+" is not a valid module","error"):void(m.status[s]?y():setTimeout(n,4))}())}function y(){e.push(layui[s]),1<o.length?a.use(o.slice(1),t,e,n):"function"==typeof t&&(layui.jquery&&"function"==typeof layui.jquery&&"define"!==n?layui.jquery(function(){t.apply(layui,e)}):t.apply(layui,e))}return e=e||[],m.host=m.host||(u.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===o.length||layui["layui.all"]&&N[s]?y():(i=(i=(N[s]?u+"modules/":!/^\{\/\}/.test(a.modules[s])&&m.base||"")+(a.modules[s]||s)+".js").replace(/^\{\/\}/,""),!m.modules[s]&&layui[s]&&(m.modules[s]=i),m.modules[s]?function f(){return++c>1e3*m.timeout/4?g(s+" is not a valid module","error"):void("string"==typeof m.modules[s]&&m.status[s]?y():setTimeout(f,4))}():((r=h.createElement("script"))["async"]=!0,r.charset="utf-8",r.src=i+((u=!0===m.version?m.v||(new Date).getTime():m.version||"")?"?v="+u:""),l.appendChild(r),!r.attachEvent||r.attachEvent.toString&&r.attachEvent.toString().indexOf("[native code")<0||b?r.addEventListener("load",function(t){p(t,i)},!1):r.attachEvent("onreadystatechange",function(t){p(t,i)}),m.modules[s]=i)),a},n.prototype.disuse=function(t){var o=this;return t=o.isArray(t)?t:[t],o.each(t,function(t,e){m.status[e],delete o[e],delete N[e],delete o.modules[e],delete m.status[e],delete m.modules[e]}),o},n.prototype.getStyle=function(t,e){t=t.currentStyle||d.getComputedStyle(t,null);return t[t.getPropertyValue?"getPropertyValue":"getAttribute"](e)},n.prototype.link=function(o,n,t){var r=this,e=h.getElementsByTagName("head")[0],i=h.createElement("link"),a="layuicss-"+((t="string"==typeof n?n:t)||o).replace(/\.|\//g,""),u="creating",l=0;return i.href=o+(m.debug?"?v="+(new Date).getTime():""),i.rel="stylesheet",i.id=a,i.media="all",h.getElementById(a)||e.appendChild(i),"function"==typeof n&&function s(t){var e=h.getElementById(a);return++l>1e3*m.timeout/100?g(o+" timeout"):void(1989===parseInt(r.getStyle(e,"width"))?(t===u&&e.removeAttribute("lay-status"),e.getAttribute("lay-status")===u?setTimeout(s,100):n()):(e.setAttribute("lay-status",u),setTimeout(function(){s(u)},100)))}(),r},n.prototype.addcss=function(t,e,o){return layui.link(m.dir+"css/"+t,e,o)},m.callback={},n.prototype.factory=function(t){if(layui[t])return"function"==typeof m.callback[t]?m.callback[t]:null},n.prototype.img=function(t,e,o){var n=new Image;if(n.src=t,n.complete)return e(n);n.onload=function(){n.onload=null,"function"==typeof e&&e(n)},n.onerror=function(t){n.onerror=null,"function"==typeof o&&o(t)}},n.prototype.config=function(t){for(var e in t=t||{})m[e]=t[e];return this},n.prototype.modules=function(){var t,e={};for(t in N)e[t]=N[t];return e}(),n.prototype.extend=function(t){for(var e in t=t||{})this[e]||this.modules[e]?g(e+" Module already exists","error"):this.modules[e]=t[e];return this},n.prototype.router=n.prototype.hash=function(t){var o={path:[],search:{},hash:((t=t||location.hash).match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(t)&&(t=t.replace(/^#\//,""),o.href="/"+t,t=t.replace(/([^#])(#.*$)/,"$1").split("/")||[],this.each(t,function(t,e){/^\w+=/.test(e)?(e=e.split("="),o.search[e[0]]=e[1]):o.path.push(e)})),o},n.prototype.url=function(t){var r,e,o=this;return{pathname:(t?((t.match(/\.[^.]+?\/.+/)||[])[0]||"").replace(/^[^\/]+/,"").replace(/\?.+/,""):location.pathname).replace(/^\//,"").split("/"),search:(r={},e=(t?((t.match(/\?.+/)||[])[0]||"").replace(/\#.+/,""):location.search).replace(/^\?+/,"").split("&"),o.each(e,function(t,e){var o=e.indexOf("="),n=o<0?e.substr(0,e.length):0!==o&&e.substr(0,o);n&&(r[n]=0<o?e.substr(o+1):null)}),r),hash:o.router(t?(t.match(/#.+/)||[])[0]||"/":location.hash)}},n.prototype.data=function(t,e,o){if(t=t||"layui",o=o||localStorage,d.JSON&&d.JSON.parse){if(null===e)return delete o[t];e="object"==typeof e?e:{key:e};try{var n=JSON.parse(o[t])}catch(r){n={}}return"value"in e&&(n[e.key]=e.value),e.remove&&delete n[e.key],o[t]=JSON.stringify(n),e.key?n[e.key]:n}},n.prototype.sessionData=function(t,e){return this.data(t,e,sessionStorage)},n.prototype.device=function(t){var o=navigator.userAgent.toLowerCase(),e=function(t){var e=new RegExp(t+"/([^\\s\\_\\-]+)");return(t=(o.match(e)||[])[1])||!1},n={os:/windows/.test(o)?"windows":/linux/.test(o)?"linux":/iphone|ipod|ipad|ios/.test(o)?"ios":/mac/.test(o)?"mac":void 0,ie:!!(d.ActiveXObject||"ActiveXObject"in d)&&((o.match(/msie\s(\d+)/)||[])[1]||"11"),weixin:e("micromessenger")};return t&&!n[t]&&(n[t]=e(t)),n.android=/android/.test(o),n.ios="ios"===n.os,n.mobile=n.android||n.ios,n},n.prototype.hint=function(){return{error:g}},n.prototype._typeof=n.prototype.type=function(t){return null===t?String(t):"object"==typeof t||"function"==typeof t?(e=(e=Object.prototype.toString.call(t).match(/\s(.+)\]$/)||[])[1]||"Object",new RegExp("\\b(Function|Array|Date|RegExp|Object|Error|Symbol)\\b").test(e)?e.toLowerCase():"object"):typeof t;var e},n.prototype._isArray=n.prototype.isArray=function(t){var e,o=this.type(t);return!(!t||"object"!=typeof t||t===d)&&(e="length"in t&&t.length,"array"===o||0===e||"number"==typeof e&&0<e&&e-1 in t)},n.prototype.each=function(t,o){var e,n=function(t,e){return o.call(e[t],t,e[t])};if("function"==typeof o)if(this.isArray(t=t||[]))for(e=0;e<t.length&&!n(e,t);e++);else for(e in t)if(n(e,t))break;return this},n.prototype.sort=function(t,r,e,o){o=o?t||[]:JSON.parse(JSON.stringify(t||[]));if("object"!==this.type(t)||r){if("object"!=typeof t)return[o];o.sort(function(t,e){var o=t[r],n=e[r];if(!isNaN(t)&&!isNaN(e))return t-e;if(!isNaN(t)&&isNaN(e)){if(!r||"object"!=typeof e)return-1;o=t}else if(isNaN(t)&&!isNaN(e)){if(!r||"object"!=typeof t)return 1;n=e}t=[!isNaN(o),!isNaN(n)];return t[0]&&t[1]?o&&!n&&0!==n?1:!o&&0!==o&&n?-1:o-n:t[0]||t[1]?t[0]||!t[1]?-1:!t[0]||t[1]?1:void 0:n<o?1:o<n?-1:0}),e&&o.reverse()}return o},n.prototype.stope=function(t){t=t||d.event;try{t.stopPropagation()}catch(e){t.cancelBubble=!0}},"LAYUI-EVENT-REMOVE");n.prototype.onevent=function(t,e,o){return"string"!=typeof t||"function"!=typeof o?this:n.event(t,e,null,o)},n.prototype.event=n.event=function(t,e,o,n){var r=this,i=null,a=(e||"").match(/\((.*)\)$/)||[],t=(t+"."+e).replace(a[0],""),u=a[1]||"",l=function(t,e){!1===(e&&e.call(r,o))&&null===i&&(i=!1)};return o===s?(delete(r.cache.event[t]||{})[u],r):n?(m.event[t]=m.event[t]||{},u?m.event[t][u]=[n]:(m.event[t][u]=m.event[t][u]||[],m.event[t][u].push(n)),this):(layui.each(m.event[t],function(t,e){("{*}"===u||(""===t&&layui.each(e,l),u&&t===u))&&layui.each(e,l)}),i)},n.prototype.on=function(t,e,o){return this.onevent.call(this,e,t,o)},n.prototype.off=function(t,e){return this.event.call(this,e,t,s)},n.prototype.debounce=function(o,n){var r;return function(){var t=this,e=arguments;clearTimeout(r),r=setTimeout(function(){o.apply(t,e)},n)}},n.prototype.throttle=function(t,e){var o=!1;return function(){o||(t.apply(this,arguments),o=!0,setTimeout(function(){o=!1},e))}},d.layui=new n}(window);layui.define(function(a){var i=layui.cache;layui.config({dir:i.dir.replace(/lay\/dest\/$/,"")}),a("layui.all",layui.v)});!function(d){"use strict";var t,h=d.document,p=function(t){return new r(t)},r=function(t){var n=this,i="object"==typeof t?layui.isArray(t)?t:[t]:(this.selector=t,h.querySelectorAll(t||null));p.each(i,function(t,e){n.push(i[t])})};Array.prototype.indexOf=Array.prototype.indexOf||function(n,i){var r=-1;return i=i||0,layui.each(this,function(t,e){if(n===e&&i<=t)return r=t,!0}),r},r.fn=r.prototype=[],r.fn.constructor=r,p.extend=function(){var t,e=1,n=arguments,i=function(t,e){for(var n in t=t||("array"===layui.type(e)?[]:{}),e)t[n]=e[n]&&e[n].constructor===Object?i(t[n],e[n]):e[n];return t};for(n[0]="object"==typeof n[0]?n[0]:{},t=n.length;e<t;e++)"object"==typeof n[e]&&i(n[0],n[e]);return n[0]},p.ie=(t=navigator.userAgent.toLowerCase(),!!(d.ActiveXObject||"ActiveXObject"in d)&&((t.match(/msie\s(\d+)/)||[])[1]||"11")),p.layui=layui||{},p.getPath=layui.cache.dir,p.stope=layui.stope,p.each=function(){return layui.each.apply(layui,arguments),this},p.digit=function(t,e){if("string"!=typeof t&&"number"!=typeof t)return"";var n="";e=e||2;for(var i=(t=String(t)).length;i<e;i++)n+="0";return t<Math.pow(10,e)?n+t:t},p.elem=function(t,e){var n=h.createElement(t);return p.each(e||{},function(t,e){n.setAttribute(t,e)}),n},p.hasScrollbar=function(){return h.body.scrollHeight>(d.innerHeight||h.documentElement.clientHeight)},p.getStyleRules=function(t,n){if(t)return t=(t=t.sheet||t.styleSheet||{}).cssRules||t.rules,"function"==typeof n&&layui.each(t,function(t,e){if(n(e,t))return!0}),t},p.style=function(t){t=t||{};var e=p.elem("style"),n=t.text||"",i=t.target;if(n)return"styleSheet"in e?(e.setAttribute("type","text/css"),e.styleSheet.cssText=n):e.innerHTML=n,e.id="LAY-STYLE-"+(t.id||(n=p.style.index||0,p.style.index++,"DF-"+n)),i&&((t=p(i).find("#"+e.id))[0]&&t.remove(),p(i).append(e)),e},p.position=function(t,e,n){var i,r,o,c,a,u,s,f,l;e&&(n=n||{},t!==h&&t!==p("body")[0]||(n.clickType="right"),i="right"===n.clickType?{left:(i=n.e||d.event||{}).clientX,top:i.clientY,right:i.clientX,bottom:i.clientY}:t.getBoundingClientRect(),u=e.offsetWidth,s=e.offsetHeight,r=function(t){return h.body[t=t?"scrollLeft":"scrollTop"]|h.documentElement[t]},o=function(t){return h.documentElement[t?"clientWidth":"clientHeight"]},c="margin"in n?n.margin:5,l=i.left,a=i.bottom,"center"===n.align?l-=(u-t.offsetWidth)/2:"right"===n.align&&(l=l-u+t.offsetWidth),(l=l+u+c>o("width")?o("width")-u-c:l)<c&&(l=c),i.bottom+s+c>o()&&(i.top>s+c&&i.top<=o()?a=i.top-s-2*c:n.allowBottomOut||(a=o()-s-2*c)<0&&(a=0)),(u=n.position)&&(e.style.position=u),s=n.offset?n.offset[0]:0,f=n.offset?n.offset[1]:0,e.style.left=l+("fixed"===u?0:r(1))+s+"px",e.style.top=a+("fixed"===u?0:r())+f+"px",p.hasScrollbar()||(l=e.getBoundingClientRect(),!n.SYSTEM_RELOAD&&l.bottom+c>o()&&(n.SYSTEM_RELOAD=!0,setTimeout(function(){p.position(t,e,n)},50))))},p.options=function(t,e){if(e="object"==typeof e?e:{attr:e},t===h)return{};var t=p(t),n=e.attr||"lay-options",t=t.attr(n);try{return new Function("return "+(t||"{}"))()}catch(i){return layui.hint().error(e.errorText||[n+'="'+t+'"',"\n parseerror: "+i].join("\n"),"error"),{}}},p.isTopElem=function(n){var t=[h,p("body")[0]],i=!1;return p.each(t,function(t,e){if(e===n)return i=!0}),i},p.clipboard={writeText:function(n){var i=String(n.text);function t(){var t=h.createElement("textarea");t.value=i,t.style.position="fixed",t.style.opacity="0",t.style.top="0px",t.style.left="0px",h.body.appendChild(t),t.select();try{h.execCommand("copy"),"function"==typeof n.done&&n.done()}catch(e){"function"==typeof n.error&&n.error(e)}finally{t.remove?t.remove():h.body.removeChild(t)}}navigator&&"clipboard"in navigator?navigator.clipboard.writeText(i).then(n.done,function(){t()}):t()}},p.passiveSupported=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});d.addEventListener("test",null,e),d.removeEventListener("test",null,e)}catch(n){}return t}(),p.touchEventsSupported=function(){return"ontouchstart"in d},p.touchSwipe=function(t,e){var n,i,r,o=e,c=p(t)[0];c&&p.touchEventsSupported()&&(n={pointerStart:{x:0,y:0},pointerEnd:{x:0,y:0},distanceX:0,distanceY:0,direction:"none",timeStart:null},e=function(t){1===t.touches.length&&(c.addEventListener("touchmove",i,!!p.passiveSupported&&{passive:!1}),c.addEventListener("touchend",r),c.addEventListener("touchcancel",r),n.timeStart=Date.now(),n.pointerStart.x=n.pointerEnd.x=t.touches[0].clientX,n.pointerStart.y=n.pointerEnd.y=t.touches[0].clientY,n.distanceX=n.distanceY=0,n.direction="none",o.onTouchStart)&&o.onTouchStart(t,n)},i=function(t){t.preventDefault(),n.pointerEnd.x=t.touches[0].clientX,n.pointerEnd.y=t.touches[0].clientY,n.distanceX=n.pointerStart.x-n.pointerEnd.x,n.distanceY=n.pointerStart.y-n.pointerEnd.y,Math.abs(n.distanceX)>Math.abs(n.distanceY)?n.direction=0<n.distanceX?"left":"right":n.direction=0<n.distanceY?"up":"down",o.onTouchMove&&o.onTouchMove(t,n)},r=function(t){o.onTouchEnd&&o.onTouchEnd(t,n),c.removeEventListener("touchmove",i),c.removeEventListener("touchend",r,!!p.passiveSupported&&{passive:!1}),c.removeEventListener("touchcancel",r)},c.__lay_touchswipe_cb_&&c.removeEventListener("touchstart",c.__lay_touchswipe_cb_),c.__lay_touchswipe_cb_=e,c.addEventListener("touchstart",e))},p.addEvent=h.addEventListener?function(t,e,n,i){t.addEventListener(e,n,i)}:function(e,t,n){var i="_lay_on_"+t,r=function(t){t.target=t.srcElement,n.call(e,t)},o=(r._rawFn=n,e[i]||(e[i]=[]),!1);p.each(e[i],function(t,e){if(e._rawFn===n)return o=!0}),o||(e[i].push(r),e.attachEvent("on"+t,r))},p.removeEvent=h.removeEventListener?function(t,e,n,i){t.removeEventListener(e,n,i)}:function(n,i,r){var o,t="_lay_on_"+i,e=n[t];layui.isArray(e)&&(o=[],p.each(e,function(t,e){e._rawFn===r?n.detachEvent("on"+i,e):o.push(e)}),n[t]=o)},p.onClickOutside=function(r,o,t){var e,n,i,c,a=(t=t||{}).event||("onpointerdown"in d?"pointerdown":"mousedown"),u=t.scope||h,s=t.ignore||[],t=!("capture"in t)||t.capture;return e=u,n=a,i=function(t){var e=r,n=t.target||t.srcElement,i=function(t){var e=t.composedPath&&t.composedPath()||t.path,t=t.target||t.srcElement;if(null!==e&&e!==undefined)return e;return[t].concat(function n(t,e){e=e||[];t=t.parentNode;return t?n(t,e.concat([t])):e}(t))}(t);e&&e!==n&&-1===i.indexOf(e)&&!function(t,e){for(var n=t.target||t.srcElement,i=0;i<s.length;i++){var r=s[i];if("string"==typeof r)for(var o=h.querySelectorAll(r),c=0;c<o.length;c++){var a=o[i];if(a===n||-1!==e.indexOf(a))return 1}else if(r&&(r===n||-1!==e.indexOf(r)))return 1}}(t,i)&&o(t)},c=p.passiveSupported?{passive:!0,capture:t}:t,e.addEventListener?e.addEventListener(n,i,c):e.attachEvent("on"+n,i),function(){e.removeEventListener?e.removeEventListener(n,i,c):e.detachEvent("on"+n,i)}},r.addStr=function(n,t){return n=n.replace(/\s+/," "),t=t.replace(/\s+/," ").split(" "),p.each(t,function(t,e){new RegExp("\\b"+e+"\\b").test(n)||(n=n+" "+e)}),n.replace(/^\s|\s$/,"")},r.removeStr=function(n,t){return n=n.replace(/\s+/," "),t=t.replace(/\s+/," ").split(" "),p.each(t,function(t,e){e=new RegExp("\\b"+e+"\\b");e.test(n)&&(n=n.replace(e,""))}),n.replace(/\s+/," ").replace(/^\s|\s$/,"")},r.fn.find=function(n){var i=[],r="object"==typeof n;return this.each(function(t,e){e=r&&e.contains(n)?n:e.querySelectorAll(n||null);p.each(e,function(t,e){i.push(e)})}),p(i)},r.fn.each=function(t){return p.each.call(this,this,t)},r.fn.addClass=function(n,i){return this.each(function(t,e){e.className=r[i?"removeStr":"addStr"](e.className,n)})},r.fn.removeClass=function(t){return this.addClass(t,!0)},r.fn.hasClass=function(n){var i=!1;return this.each(function(t,e){new RegExp("\\b"+n+"\\b").test(e.className)&&(i=!0)}),i},r.fn.css=function(e,i){var t=this,r=function(t){return isNaN(t)?t:t+"px"};return"string"!=typeof e||i!==undefined?t.each(function(t,n){"object"==typeof e?p.each(e,function(t,e){n.style[t]=r(e)}):n.style[e]=r(i)}):0<t.length?t[0].style[e]:void 0},r.fn.width=function(n){var i=this;return n!==undefined?i.each(function(t,e){i.css("width",n)}):0<i.length?i[0].offsetWidth:void 0},r.fn.height=function(n){var i=this;return n!==undefined?i.each(function(t,e){i.css("height",n)}):0<i.length?i[0].offsetHeight:void 0},r.fn.attr=function(n,i){var t=this;return i!==undefined?t.each(function(t,e){e.setAttribute(n,i)}):0<t.length?t[0].getAttribute(n):void 0},r.fn.removeAttr=function(n){return this.each(function(t,e){e.removeAttribute(n)})},r.fn.html=function(n){var t=this;return n!==undefined?this.each(function(t,e){e.innerHTML=n}):0<t.length?t[0].innerHTML:void 0},r.fn.val=function(n){var t=this;return n!==undefined?this.each(function(t,e){e.value=n}):0<t.length?t[0].value:void 0},r.fn.append=function(n){return this.each(function(t,e){"object"==typeof n?e.appendChild(n):e.innerHTML=e.innerHTML+n})},r.fn.remove=function(n){return this.each(function(t,e){n?e.removeChild(n):e.parentNode.removeChild(e)})},r.fn.on=function(n,i,r){return this.each(function(t,e){p.addEvent(e,n,i,r)})},r.fn.off=function(n,i,r){return this.each(function(t,e){p.removeEvent(e,n,i,r)})},d.lay=p,d.layui&&layui.define&&layui.define(function(t){t("lay",p)})}(window,window.document);layui.define(function(e){"use strict";var c={open:"{{",close:"}}"},l={escape:function(e){return e===undefined||null===e?"":/[<"'>]|&(?=#[a-zA-Z0-9]+)/g.test(e+="")?e.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,"""):e}},i=function(e){return new RegExp(e,"g")},u=function(e,r){var n="Laytpl Error: ";return"object"==typeof console&&console.error(n+e+"\n"+(r||"")),n+e},n=function(e,r){var n=this,e=(n.config=n.config||{},n.template=e,function(e){for(var r in e)n.config[r]=e[r]});e(c),e(r)},r=(n.prototype.tagExp=function(e,r,n){var c=this.config;return i((r||"")+c.open+["#([\\s\\S])+?","([^{#}])*?"][e||0]+c.close+(n||""))},n.prototype.parse=function(e,r){var n=this,c=n.config,t=e,o=i("^"+c.open+"#",""),p=i(c.close+"$","");if("string"!=typeof e)return e;e='"use strict";var view = "'+(e=e.replace(/\s+|\r|\t|\n/g," ").replace(i(c.open+"#"),c.open+"# ").replace(i(c.close+"}"),"} "+c.close).replace(/\\/g,"\\\\").replace(i(c.open+"!(.+?)!"+c.close),function(e){return e=e.replace(i("^"+c.open+"!"),"").replace(i("!"+c.close),"").replace(i(c.open+"|"+c.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(n.tagExp(),function(e){return'";'+(e=e.replace(o,"").replace(p,"")).replace(/\\(.)/g,"$1")+';view+="'}).replace(n.tagExp(1),function(e){var r='"+laytpl.escape(';return e.replace(/\s/g,"")===c.open+c.close?"":(e=e.replace(i(c.open+"|"+c.close),""),/^=/.test(e)?e=e.replace(/^=/,""):/^-/.test(e)&&(e=e.replace(/^-/,""),r='"+('),r+e.replace(/\\(.)/g,"$1")+')+"')}))+'";return view;';try{return n.cache=e=new Function("d, laytpl",e),e(r,l)}catch(a){return delete n.cache,u(a,t)}},n.prototype.render=function(e,r){e=e||{};var n=this,e=n.cache?n.cache(e,l):n.parse(n.template,e);return"function"==typeof r&&r(e),e},function(e,r){return new n(e,r)});r.config=function(e){for(var r in e=e||{})c[r]=e[r]},r.v="2.0.0",e("laytpl",r)});layui.define(function(e){"use strict";var r=document,u="getElementById",c="getElementsByTagName",a="layui-disabled",t=function(e){var a=this;a.config=e||{},a.config.index=++o.index,a.render(!0)},o=(t.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return e.elem.length===undefined?2:3},t.prototype.view=function(){var i,e,t,n=this.config,r=n.groups="groups"in n?Number(n.groups)||0:5,u=(n.layout="object"==typeof n.layout?n.layout:["prev","page","next"],n.count=Number(n.count)||0,n.curr=Number(n.curr)||1,n.limits="object"==typeof n.limits?n.limits:[10,20,30,40,50],n.limit=Number(n.limit)||10,n.pages=Math.ceil(n.count/n.limit)||1,n.curr>n.pages?n.curr=n.pages:n.curr<1&&(n.curr=1),r<0?r=1:r>n.pages&&(r=n.pages),n.prev="prev"in n?n.prev:"\u4e0a\u4e00\u9875",n.next="next"in n?n.next:"\u4e0b\u4e00\u9875",n.pages>r?Math.ceil((n.curr+(1<r?1:0))/(0<r?r:1)):1),l={prev:n.prev?'<a class="layui-laypage-prev'+(1==n.curr?" "+a:"")+'" data-page="'+(n.curr-1)+'">'+n.prev+"</a>":"",page:function(){var e=[];if(n.count<1)return"";1<u&&!1!==n.first&&0!==r&&e.push('<a class="layui-laypage-first" data-page="1" title="\u9996\u9875">'+(n.first||1)+"</a>");var a=Math.floor((r-1)/2),t=1<u?n.curr-a:1,i=1<u?(a=n.curr+(r-a-1))>n.pages?n.pages:a:r;for(i-t<r-1&&(t=i-r+1),!1!==n.first&&2<t&&e.push('<span class="layui-laypage-spr">...</span>');t<=i;t++)t===n.curr?e.push('<span class="layui-laypage-curr"><em class="layui-laypage-em" '+(/^#/.test(n.theme)?'style="background-color:'+n.theme+';"':"")+"></em><em>"+t+"</em></span>"):e.push('<a data-page="'+t+'">'+t+"</a>");return n.pages>r&&n.pages>i&&!1!==n.last&&(i+1<n.pages&&e.push('<span class="layui-laypage-spr">...</span>'),0!==r)&&e.push('<a class="layui-laypage-last" title="\u5c3e\u9875" data-page="'+n.pages+'">'+(n.last||n.pages)+"</a>"),e.join("")}(),next:n.next?'<a class="layui-laypage-next'+(n.curr==n.pages?" "+a:"")+'" data-page="'+(n.curr+1)+'">'+n.next+"</a>":"",count:'<span class="layui-laypage-count">'+(e="object"==typeof n.countText?n.countText:["\u5171 "," \u6761"])[0]+n.count+e[1]+"</span>",limit:(i=['<span class="layui-laypage-limits"><select lay-ignore>'],layui.each(n.limits,function(e,a){var t;i.push('<option value="'+a+'"'+(a===n.limit?" selected":"")+">"+(t=(a=a)+" \u6761/\u9875","function"==typeof n.limitTemplet&&n.limitTemplet(a)||t)+"</option>")}),i.join("")+"</select></span>"),refresh:['<a data-page="'+n.curr+'" class="layui-laypage-refresh">','<i class="layui-icon layui-icon-refresh"></i>',"</a>"].join(""),skip:['<span class="layui-laypage-skip">'+(e="object"==typeof n.skipText?n.skipText:["\u5230\u7b2c","\u9875","\u786e\u5b9a"])[0],'<input type="text" min="1" value="'+n.curr+'" class="layui-input">',e[1]+'<button type="button" class="layui-laypage-btn">'+e[2]+"</button>","</span>"].join("")};return['<div class="layui-box layui-laypage layui-laypage-'+(n.theme?/^#/.test(n.theme)?"molv":n.theme:"default")+'" id="layui-laypage-'+n.index+'">',(t=[],layui.each(n.layout,function(e,a){l[a]&&t.push(l[a])}),t.join("")),"</div>"].join("")},t.prototype.jump=function(e,a){if(e){var t=this,i=t.config,n=e.children,r=e[c]("button")[0],u=e[c]("input")[0],e=e[c]("select")[0],l=function(){var e=Number(u.value.replace(/\s|\D/g,""));e&&(i.curr=e,t.render())};if(a)return l();for(var s=0,p=n.length;s<p;s++)"a"===n[s].nodeName.toLowerCase()&&o.on(n[s],"click",function(){var e=Number(this.getAttribute("data-page"));e<1||e>i.pages||(i.curr=e,t.render())});e&&o.on(e,"change",function(){var e=this.value;i.curr*e>i.count&&(i.curr=Math.ceil(i.count/e)),i.limit=e,t.render()}),r&&o.on(r,"click",function(){l()})}},t.prototype.skip=function(t){var i,e;t&&(i=this,e=t[c]("input")[0])&&o.on(e,"keyup",function(e){var a=this.value,e=e.keyCode;/^(37|38|39|40)$/.test(e)||(/\D/.test(a)&&(this.value=a.replace(/\D/,"")),13===e&&i.jump(t,!0))})},t.prototype.render=function(e){var a=this,t=a.config,i=a.type(),n=a.view(),i=(2===i?t.elem&&(t.elem.innerHTML=n):3===i?t.elem.html(n):r[u](t.elem)&&(r[u](t.elem).innerHTML=n),t.jump&&t.jump(t,e),r[u]("layui-laypage-"+t.index));a.jump(i),t.hash&&!e&&(location.hash="!"+t.hash+"="+t.curr),a.skip(i)},{render:function(e){return new t(e).index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(a,e,t){return a.attachEvent?a.attachEvent("on"+e,function(e){e.target=e.srcElement,t.call(a,e)}):a.addEventListener(e,t,!1),this}});e("laypage",o)});!function(i,D){"use strict";var n=i.layui&&layui.define,l={getPath:i.lay&&lay.getPath?lay.getPath:"",link:function(e,t,a){T.path&&i.lay&&lay.layui&&lay.layui.link(T.path+e,t,a)}},e=i.LAYUI_GLOBAL||{},a="laydate",d="lay-"+a+"-id",T={v:"5.6.0",config:{weekStart:0},index:i.laydate&&i.laydate.v?1e5:0,path:e.laydate_dir||l.getPath,set:function(e){var t=this;return t.config=lay.extend({},t.config,e),t},ready:function(e){var t="laydate",a=(n?"modules/":"")+"laydate.css?v="+T.v;return n?layui["layui.all"]?"function"==typeof e&&e():layui.addcss(a,e,t):l.link(a,e,t),this}},s=function(){var t=this,e=t.config.id;return(s.that[e]=t).inst={hint:function(e){t.hint.call(t,e)},reload:function(e){t.reload.call(t,e)},config:t.config}},M="layui-this",C="laydate-disabled",h=[100,2e5],v="layui-laydate-static",b="layui-laydate-list",o="laydate-selected",r="layui-laydate-hint",y="laydate-day-prev",m="laydate-day-next",E=".laydate-btns-confirm",L="laydate-time-text",I="laydate-btns-time",x="layui-laydate-preview",w="layui-laydate-shade",k=function(e){var t,a=this,n=(a.index=++T.index,a.config=lay.extend({},a.config,T.config,e),lay(e.elem||a.config.elem));return 1<n.length?(lay.each(n,function(){T.render(lay.extend({},a.config,{elem:this}))}),a):(e=lay.extend(a.config,lay.options(n[0])),n[0]&&n.attr(d)?(t=s.getThis(n.attr(d)))?t.reload(e):void 0:(e.id="id"in e?e.id:n.attr("id")||a.index,e.index=a.index,void T.ready(function(){a.init()})))},u="yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s";s.formatArr=function(e){return(e||"").match(new RegExp(u+"|.","g"))||[]},k.isLeapYear=function(e){return e%4==0&&e%100!=0||e%400==0},k.prototype.config={type:"date",range:!1,format:"yyyy-MM-dd",value:null,isInitValue:!0,min:"1900-1-1",max:"2099-12-31",trigger:"click",show:!1,showBottom:!0,isPreview:!0,btns:["clear","now","confirm"],lang:"cn",theme:"default",position:null,calendar:!1,mark:{},holidays:null,zIndex:null,done:null,change:null,autoConfirm:!0,shade:0},k.prototype.lang=function(){var e={cn:{weeks:["\u65e5","\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d"],time:["\u65f6","\u5206","\u79d2"],timeTips:"\u9009\u62e9\u65f6\u95f4",startTime:"\u5f00\u59cb\u65f6\u95f4",endTime:"\u7ed3\u675f\u65f6\u95f4",dateTips:"\u8fd4\u56de\u65e5\u671f",month:["\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d","\u4e03","\u516b","\u4e5d","\u5341","\u5341\u4e00","\u5341\u4e8c"],tools:{confirm:"\u786e\u5b9a",clear:"\u6e05\u7a7a",now:"\u73b0\u5728"},timeout:"\u7ed3\u675f\u65f6\u95f4\u4e0d\u80fd\u65e9\u4e8e\u5f00\u59cb\u65f6\u95f4<br>\u8bf7\u91cd\u65b0\u9009\u62e9",invalidDate:"\u4e0d\u5728\u6709\u6548\u65e5\u671f\u6216\u65f6\u95f4\u8303\u56f4\u5185",formatError:["\u65e5\u671f\u683c\u5f0f\u4e0d\u5408\u6cd5<br>\u5fc5\u987b\u9075\u5faa\u4e0b\u8ff0\u683c\u5f0f\uff1a<br>","<br>\u5df2\u4e3a\u4f60\u91cd\u7f6e"],preview:"\u5f53\u524d\u9009\u4e2d\u7684\u7ed3\u679c"},en:{weeks:["Su","Mo","Tu","We","Th","Fr","Sa"],time:["Hours","Minutes","Seconds"],timeTips:"Select Time",startTime:"Start Time",endTime:"End Time",dateTips:"Select Date",month:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tools:{confirm:"Confirm",clear:"Clear",now:"Now"},timeout:"End time cannot be less than start Time<br>Please re-select",invalidDate:"Invalid date",formatError:["The date format error<br>Must be followed\uff1a<br>","<br>It has been reset"],preview:"The selected result"}};return e[this.config.lang]||e.cn},k.prototype.markerOfChineseFestivals={"0-1-1":"\u5143\u65e6","0-2-14":"\u60c5\u4eba","0-3-8":"\u5987\u5973","0-3-12":"\u690d\u6811","0-4-1":"\u611a\u4eba","0-5-1":"\u52b3\u52a8","0-5-4":"\u9752\u5e74","0-6-1":"\u513f\u7ae5","0-9-10":"\u6559\u5e08","0-10-1":"\u56fd\u5e86","0-12-25":"\u5723\u8bde"},k.prototype.reload=function(e){this.config=lay.extend({},this.config,e),this.init()},k.prototype.init=function(){var r=this,o=r.config,e="static"===o.position,t={year:"yyyy",month:"yyyy-MM",date:"yyyy-MM-dd",time:"HH:mm:ss",datetime:"yyyy-MM-dd HH:mm:ss"};o.elem=lay(o.elem),o.eventElem=lay(o.eventElem),o.elem[0]&&("array"!==layui.type(o.theme)&&(o.theme=[o.theme]),o.fullPanel&&("datetime"!==o.type||o.range)&&delete o.fullPanel,r.rangeStr=o.range?"string"==typeof o.range?o.range:"-":"",r.rangeLinked=!(!o.range||!o.rangeLinked||"date"!==o.type&&"datetime"!==o.type),r.autoCalendarModel=function(){var e=r.rangeLinked;return r.rangeLinked=o.range&&("date"===o.type||"datetime"===o.type)&&(!r.startDate||!r.endDate||r.startDate&&r.endDate&&r.startDate.year===r.endDate.year&&r.startDate.month===r.endDate.month),lay(r.elem)[r.rangeLinked?"addClass":"removeClass"]("layui-laydate-linkage"),r.rangeLinked!=e},r.autoCalendarModel.auto=r.rangeLinked&&"auto"===o.rangeLinked,"array"===layui.type(o.range)&&(r.rangeElem=[lay(o.range[0]),lay(o.range[1])]),t[o.type]||(i.console&&console.error&&console.error("laydate type error:'"+o.type+"' is not supported"),o.type="date"),o.format===t.date&&(o.format=t[o.type]||t.date),r.format=s.formatArr(o.format),o.weekStart&&!/^[0-6]$/.test(o.weekStart)&&(t=r.lang(),o.weekStart=t.weeks.indexOf(o.weekStart),-1===o.weekStart)&&(o.weekStart=0),r.EXP_IF="",r.EXP_SPLIT="",lay.each(r.format,function(e,t){e=new RegExp(u).test(t)?"\\d{"+(new RegExp(u).test(r.format[0===e?e+1:e-1]||"")?/^yyyy|y$/.test(t)?4:t.length:/^yyyy$/.test(t)?"1,4":/^y$/.test(t)?"1,308":"1,2")+"}":"\\"+t;r.EXP_IF=r.EXP_IF+e,r.EXP_SPLIT=r.EXP_SPLIT+"("+e+")"}),r.EXP_IF_ONE=new RegExp("^"+r.EXP_IF+"$"),r.EXP_IF=new RegExp("^"+(o.range?r.EXP_IF+"\\s\\"+r.rangeStr+"\\s"+r.EXP_IF:r.EXP_IF)+"$"),r.EXP_SPLIT=new RegExp("^"+r.EXP_SPLIT+"$",""),r.isInput(o.elem[0])||"focus"===o.trigger&&(o.trigger="click"),o.elem.attr("lay-key",r.index),o.eventElem.attr("lay-key",r.index),o.elem.attr(d,o.id),lay.each(["min","max"],function(e,t){var a=[],n=[];if("number"==typeof o[t])var i=o[t],l=new Date,l=r.newDate({year:l.getFullYear(),month:l.getMonth(),date:l.getDate(),hours:e?23:0,minutes:e?59:0,seconds:e?59:0}).getTime(),e=new Date(i?i<864e5?l+864e5*i:i:l),a=[e.getFullYear(),e.getMonth()+1,e.getDate()],n=[e.getHours(),e.getMinutes(),e.getSeconds()];else if("string"==typeof o[t])a=(o[t].match(/\d+-\d+-\d+/)||[""])[0].split("-"),n=(o[t].match(/\d+:\d+:\d+/)||[""])[0].split(":");else if("object"==typeof o[t])return o[t];o[t]={year:0|a[0]||(new Date).getFullYear(),month:a[1]?(0|a[1])-1:(new Date).getMonth(),date:0|a[2]||(new Date).getDate(),hours:0|n[0],minutes:0|n[1],seconds:0|n[2]}}),r.elemID="layui-laydate"+o.elem.attr("lay-key"),(o.show||e)&&r.render(),e||r.events(),"function"==typeof o.formatToDisplay&&(r.isInput(o.elem[0])?r.formatToDisplay(o.elem[0],o.formatToDisplay):(t=r.rangeElem)&&(r.formatToDisplay(t[0][0],o.formatToDisplay),r.formatToDisplay(t[1][0],o.formatToDisplay))),o.value)&&o.isInitValue&&("date"===layui.type(o.value)?r.setValue(r.parse(0,r.systemDate(o.value))):r.setValue(o.value))},k.prototype.render=function(){var a,n,i,l,r=this,o=r.config,d=r.lang(),s="static"===o.position,y=r.elem=lay.elem("div",{id:r.elemID,"class":["layui-laydate",o.range?" layui-laydate-range":"",r.rangeLinked?" layui-laydate-linkage":"",s?" "+v:"",o.fullPanel?" laydate-theme-fullpanel":"",(a="",lay.each(o.theme,function(e,t){"default"===t||/^#/.test(t)||(a+=" laydate-theme-"+t)}),a)].join("")}),m=r.elemMain=[],u=r.elemHeader=[],c=r.elemCont=[],h=r.table=[],e=r.footer=lay.elem("div",{"class":"layui-laydate-footer"}),t=r.shortcut=lay.elem("ul",{"class":"layui-laydate-shortcut"}),p=(o.zIndex&&(y.style.zIndex=o.zIndex),lay.each(new Array(2),function(e){if(!o.range&&0<e)return!0;var a=lay.elem("div",{"class":"layui-laydate-header"}),t=[((t=lay.elem("i",{"class":"layui-icon laydate-icon laydate-prev-y"})).innerHTML="",t),((t=lay.elem("i",{"class":"layui-icon laydate-icon laydate-prev-m"})).innerHTML="",t),(t=lay.elem("div",{"class":"laydate-set-ym"}),n=lay.elem("span"),l=lay.elem("span"),t.appendChild(n),t.appendChild(l),t),((n=lay.elem("i",{"class":"layui-icon laydate-icon laydate-next-m"})).innerHTML="",n),((l=lay.elem("i",{"class":"layui-icon laydate-icon laydate-next-y"})).innerHTML="",l)],n=lay.elem("div",{"class":"layui-laydate-content"}),i=lay.elem("table"),l=lay.elem("thead"),r=lay.elem("tr");lay.each(t,function(e,t){a.appendChild(t)}),l.appendChild(r),lay.each(new Array(6),function(a){var n=i.insertRow(0);lay.each(new Array(7),function(e){var t;0===a&&((t=lay.elem("th")).innerHTML=d.weeks[(e+o.weekStart)%7],r.appendChild(t)),n.insertCell(e)})}),i.insertBefore(l,i.children[0]),n.appendChild(i),m[e]=lay.elem("div",{"class":"layui-laydate-main laydate-main-list-"+e}),m[e].appendChild(a),m[e].appendChild(n),u.push(t),c.push(n),h.push(i)}),lay(e).html((p=[],n=[],"datetime"===o.type&&p.push('<span lay-type="datetime" class="'+I+'">'+d.timeTips+"</span>"),(o.range||"datetime"!==o.type||o.fullPanel)&&p.push('<span class="'+x+'" title="'+d.preview+'"></span>'),lay.each(o.btns,function(e,t){var a=d.tools[t]||"btn";o.range&&"now"===t||(s&&"clear"===t&&(a="cn"===o.lang?"\u91cd\u7f6e":"Reset"),n.push('<span lay-type="'+t+'" class="laydate-btns-'+t+'">'+a+"</span>"))}),p.push('<div class="laydate-footer-btns">'+n.join("")+"</div>"),p.join(""))),o.shortcuts&&(y.appendChild(t),lay(t).html((i=[],lay.each(o.shortcuts,function(e,t){i.push('<li data-index="'+e+'">'+t.text+"</li>")}),i.join(""))).find("li").on("click",function(e){var t=o.shortcuts[this.dataset.index]||{},t=("function"==typeof t.value?t.value():t.value)||[],n=(layui.isArray(t)||(t=[t]),o.type),t=(lay.each(t,function(e,t){var a=[o.dateTime,r.endDate][e];"time"===n&&"date"!==layui.type(t)?r.EXP_IF.test(t)&&(t=(t.match(r.EXP_SPLIT)||[]).slice(1),lay.extend(a,{hours:0|t[0],minutes:0|t[2],seconds:0|t[4]})):lay.extend(a,r.systemDate("date"===layui.type(t)?t:new Date(t))),"time"!==n&&"datetime"!==n||(r[["startTime","endTime"][e]]={hours:a.hours,minutes:a.minutes,seconds:a.seconds}),0===e?r.startDate=lay.extend({},a):r.endState=!0,"year"===n||"month"===n||"time"===n?r.listYM[e]=[a.year,a.month+1]:e&&r.autoCalendarModel.auto&&r.autoCalendarModel()}),r.checkDate("limit").calendar(null,null,"init"),lay(r.footer).find("."+I).removeClass(C));t&&"date"===t.attr("lay-type")&&t[0].click(),r.done(null,"change"),lay(this).addClass(M),"static"!==o.position&&r.setValue(r.parse()).done().remove()})),lay.each(m,function(e,t){y.appendChild(t)}),o.showBottom&&y.appendChild(e),lay.elem("style")),f=[],g=!0,t=(lay.each(o.theme,function(e,t){g&&/^#/.test(t)?(g=!(l=!0),f.push(["#{{id}} .layui-laydate-header{background-color:{{theme}};}","#{{id}} li.layui-this,#{{id}} td.layui-this>div{background-color:{{theme}} !important;}",-1!==o.theme.indexOf("circle")?"":"#{{id}} .layui-this{background-color:{{theme}} !important;}","#{{id}} .laydate-day-now{color:{{theme}} !important;}","#{{id}} .laydate-day-now:after{border-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,r.elemID).replace(/{{theme}}/g,t))):!g&&/^#/.test(t)&&f.push(["#{{id}} .laydate-selected>div{background-color:{{theme}} !important;}","#{{id}} .laydate-selected:hover>div{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,r.elemID).replace(/{{theme}}/g,t))}),o.shortcuts&&o.range&&f.push("#{{id}}.layui-laydate-range{width: 628px;}".replace(/{{id}}/g,r.elemID)),f.length&&(f=f.join(""),"styleSheet"in p?(p.setAttribute("type","text/css"),p.styleSheet.cssText=f):p.innerHTML=f,l&&lay(y).addClass("laydate-theme-molv"),y.appendChild(p)),r.remove(k.thisElemDate),T.thisId=o.id,s?o.elem.append(y):(D.body.appendChild(y),r.position()),o.shade?'<div class="'+w+'" style="z-index:'+(parseInt(layui.getStyle(y,"z-index"))-1)+"; background-color: "+(o.shade[1]||"#000")+"; opacity: "+(o.shade[0]||o.shade)+'"></div>':"");y.insertAdjacentHTML("beforebegin",t),r.checkDate().calendar(null,0,"init"),r.changeEvent(),k.thisElemDate=r.elemID,r.renderAdditional(),"function"==typeof o.ready&&o.ready(lay.extend({},o.dateTime,{month:o.dateTime.month+1})),r.preview()},k.prototype.remove=function(e){var t=this,a=t.config,n=lay("#"+(e||t.elemID));return n[0]&&(n.hasClass(v)||t.checkDate(function(){n.remove(),delete t.startDate,delete t.endDate,delete t.endState,delete t.startTime,delete t.endTime,delete T.thisId,"function"==typeof a.close&&a.close(t)}),lay("."+w).remove()),t},k.prototype.position=function(){var e=this.config;return lay.position(e.elem[0],this.elem,{position:e.position}),this},k.prototype.hint=function(e){var t=this,a=(t.config,lay.elem("div",{"class":r}));t.elem&&(a.innerHTML=(e="object"==typeof e?e||{}:{content:e}).content||"",lay(t.elem).find("."+r).remove(),t.elem.appendChild(a),clearTimeout(t.hinTimer),t.hinTimer=setTimeout(function(){lay(t.elem).find("."+r).remove()},"ms"in e?e.ms:3e3))},k.prototype.getAsYM=function(e,t,a){return a?t--:t++,t<0&&(t=11,e--),11<t&&(t=0,e++),[e,t]},k.prototype.systemDate=function(e){var t=e||new Date;return{year:t.getFullYear(),month:t.getMonth(),date:t.getDate(),hours:e?e.getHours():0,minutes:e?e.getMinutes():0,seconds:e?e.getSeconds():0}},k.prototype.checkDate=function(e){var t,o,a,n,i,d=this,s=(new Date,d.config),l=d.lang(),r=s.dateTime=s.dateTime||d.systemDate(),y=s.elem[0],m=(d.isInput(y),function(){if(d.rangeElem){var e=[d.rangeElem[0].val(),d.rangeElem[1].val()];if(e[0]&&e[1])return e.join(" "+d.rangeStr+" ")}return d.isInput(y)?y.value:"static"===s.position?"":lay(y).attr("lay-date")}()),u=function(e){e&&(e.year>h[1]&&(e.year=h[1],o=!0),11<e.month&&(e.month=11,o=!0),59<e.seconds&&(e.seconds=0,e.minutes++,o=!0),59<e.minutes&&(e.minutes=0,e.hours++,o=!0),23<e.hours&&(e.hours=0,o=!0),t=T.getEndDate(e.month+1,e.year),e.date>t)&&(e.date=t,o=!0)},c=function(n,i,l){var r=["startTime","endTime"];i=(i.match(d.EXP_SPLIT)||[]).slice(1),l=l||0,s.range&&(d[r[l]]=d[r[l]]||{}),lay.each(d.format,function(e,t){var a=parseFloat(i[e]);i[e].length<t.length&&(o=!0),/yyyy|y/.test(t)?(a<h[0]&&(a=h[0],o=!0),n.year=a):/MM|M/.test(t)?(a<1&&(a=1,o=!0),n.month=a-1):/dd|d/.test(t)?(a<1&&(a=1,o=!0),n.date=a):/HH|H/.test(t)?(a<0&&(o=!(a=0)),23<a&&(a=23,o=!0),n.hours=a,s.range&&(d[r[l]].hours=a)):/mm|m/.test(t)?(a<0&&(o=!(a=0)),59<a&&(a=59,o=!0),n.minutes=a,s.range&&(d[r[l]].minutes=a)):/ss|s/.test(t)&&(a<0&&(o=!(a=0)),59<a&&(a=59,o=!0),n.seconds=a,s.range)&&(d[r[l]].seconds=a)}),u(n)};return"limit"===e?s.range?(u(d.rangeLinked?d.startDate:r),d.endDate&&u(d.endDate)):u(r):("string"==typeof(m=m||s.value)&&(m=m.replace(/\s+/g," ").replace(/^\s|\s$/g,"")),(a=function(){var e,t,a;s.range&&(d.endDate=d.endDate||lay.extend({},s.dateTime,(e={},t=s.dateTime,a=d.getAsYM(t.year,t.month),"year"===s.type?e.year=t.year+1:"time"!==s.type&&(e.year=a[0],e.month=a[1]),"datetime"!==s.type&&"time"!==s.type||(e.hours=23,e.minutes=e.seconds=59),e)))})(),"string"==typeof m&&m?d.EXP_IF.test(m)?s.range?(m=m.split(" "+d.rangeStr+" "),lay.each([s.dateTime,d.endDate],function(e,t){c(t,m[e],e)})):c(r,m):(d.hint(l.formatError[0]+(s.range?s.format+" "+d.rangeStr+" "+s.format:s.format)+l.formatError[1]),o=!0):m&&"date"===layui.type(m)?s.dateTime=d.systemDate(m):(s.dateTime=d.systemDate(),delete d.startTime,delete d.endDate,a(),delete d.endTime),d.rangeElem&&(a=[d.rangeElem[0].val(),d.rangeElem[1].val()],n=[s.dateTime,d.endDate],lay.each(a,function(e,t){d.EXP_IF_ONE.test(t)&&c(n[e],t,e)})),u(r),s.range&&u(d.endDate),o&&m&&d.setValue(!s.range||d.endDate?d.parse():""),d.getDateTime(r)>d.getDateTime(s.max)?(r=s.dateTime=lay.extend({},s.max),i=!0):d.getDateTime(r)<d.getDateTime(s.min)&&(r=s.dateTime=lay.extend({},s.min),i=!0),s.range&&((d.getDateTime(d.endDate)<d.getDateTime(s.min)||d.getDateTime(d.endDate)>d.getDateTime(s.max))&&(d.endDate=lay.extend({},s.max),i=!0),d.startTime={hours:s.dateTime.hours,minutes:s.dateTime.minutes,seconds:s.dateTime.seconds},d.endTime={hours:d.endDate.hours,minutes:d.endDate.minutes,seconds:d.endDate.seconds},"month"===s.type)&&(s.dateTime.date=1,d.endDate.date=1),i&&m&&(d.setValue(d.parse()),d.hint("value "+l.invalidDate+l.formatError[1])),d.startDate=d.startDate||m&&lay.extend({},s.dateTime),d.autoCalendarModel.auto&&d.autoCalendarModel(),d.endState=!s.range||!d.rangeLinked||!(!d.startDate||!d.endDate),e&&e()),d},k.prototype.markRender=function(e,a,t){var n;"object"==typeof t?lay.each(t||{},function(e,t){e=e.split("-");e[0]!=a[0]&&0!=e[0]||e[1]!=a[1]&&0!=e[1]||e[2]!=a[2]||(n=t||a[2])}):"string"==typeof t&&(n=t||a[2]),n&&e.find("div").html('<span class="laydate-day-mark">'+n+"</span>")},k.prototype.mark=function(t,a){var n=this,e=n.config,i=function(e){n.markRender(t,a,e)};return e.calendar&&"cn"===e.lang&&i(n.markerOfChineseFestivals),"function"==typeof e.mark?e.mark({year:a[0],month:a[1],date:a[2]},i):"object"==typeof e.mark&&i(e.mark),n},k.prototype.holidaysRender=function(r,o,e){var d=["holidays","workdays"],s=function(e,t,a){e.find("div").html(["<span",' class="laydate-day-holidays"',' type="'+t+'"',">",a,"</span>"].join(""))};"array"===layui.type(e)?lay.each(e,function(l,e){lay.each(e,function(e,t){var a,n,i;t=t,a=r.attr("lay-ymd"),n=t.split("-"),i=a.split("-"),lay.each(n,function(e,t){n[e]=parseInt(t,10)}),lay.each(i,function(e,t){i[e]=parseInt(t,10)}),n.join("-")===i.join("-")&&s(r,d[l],o[2])})}):"string"==typeof e&&-1!==d.indexOf(e)&&s(r,e,o[2])},k.prototype.holidays=function(t,a){var n=this,e=n.config,i=function(e){n.holidaysRender(t,a,e)};return"function"==typeof e.holidays?e.holidays({year:a[0],month:a[1],date:a[2]},i):"array"===layui.type(e.holidays)&&i(e.holidays),n},k.prototype.cellRender=function(t,e,a){var n=this.config;return"function"==typeof n.cellRender&&n.cellRender(e,function(e){"string"==typeof e?lay(t).html(e):"object"==typeof e&&lay(t).html("").append(lay(e)[0])},{originElem:t,type:a}),this},k.prototype.startOfYear=function(e){e=new Date(e);return e.setFullYear(e.getFullYear(),0,1),e.setHours(0,0,0,0),e},k.prototype.endOfYear=function(e){var e=new Date(e),t=e.getFullYear();return e.setFullYear(t+1,0,0),e.setHours(23,59,59,999),e},k.prototype.startOfMonth=function(e){e=new Date(e);return e.setDate(1),e.setHours(0,0,0,0),e},k.prototype.endOfMonth=function(e){var e=new Date(e),t=e.getMonth();return e.setFullYear(e.getFullYear(),t+1,0),e.setHours(23,59,59,999),e},k.prototype.addDays=function(e,t){e=new Date(e);return t&&e.setDate(e.getDate()+t),e},k.prototype.isDisabledYearOrMonth=function(e,t,a){for(var n=this,i=n.config,l="year"===t?n.startOfYear(e):n.startOfMonth(e),t="year"===t?n.endOfYear(e):n.endOfMonth(e),r=Math.floor((t.getTime()-l.getTime())/864e5)+1,o=0,d=0;d<r;d++){var s=n.addDays(l,d);i.disabledDate.call(i,s,a)&&o++}return o===r},k.prototype.isDisabledDate=function(e,t){t=t||{};var a=this.config,n=!a.range||0===t.rangeType?"start":"end";return!!a.disabledDate&&"time"!==a.type&&("date"===t.disabledType||"datetime"===t.disabledType)&&((e=new Date(e)).setHours(0,0,0,0),"year"===t.type||"month"===t.type?this.isDisabledYearOrMonth(e,t.type,n):a.disabledDate.call(a,e,n))},k.prototype.isDisabledTime=function(e,t){t=t||{};var a,n=this.config,i=!n.range||0===t.rangeType?"start":"end";return!!n.disabledTime&&!("time"!==n.type&&"datetime"!==n.type||"time"!==t.disabledType&&"datetime"!==t.disabledType)&&(a=function(e,t,a){return function(){return-1!==("function"==typeof t&&t.apply(n,a)||[]).indexOf(e)}},e=this.systemDate(new Date(e)),i=n.disabledTime.call(n,this.newDate(e),i)||{},"datetime"===t.disabledType?a(e.hours,i.hours)()||a(e.minutes,i.minutes,[e.hours])()||a(e.seconds,i.seconds,[e.hours,e.minutes])():[a(e.hours,i.hours),a(e.minutes,i.minutes,[e.hours]),a(e.seconds,i.seconds,[e.hours,e.minutes])][t.time.length-1]())},k.prototype.isDisabledDateTime=function(e,t){this.config;return this.isDisabledDate(e,t=t||{})||this.isDisabledTime(e,t)},k.prototype.limit=function(t){t=t||{};var i=this,e=i.config,l={},a=t.index>(t.time?0:41)?i.endDate:e.dateTime;return lay.each({now:lay.extend({},a,t.date||{}),min:e.min,max:e.max},function(e,a){var n;l[e]=i.newDate(lay.extend({year:a.year,month:"year"===t.type?0:a.month,date:"year"===t.type||"month"===t.type?1:a.date},(n={},lay.each(t.time,function(e,t){n[t]=a[t]}),n))).getTime()}),a=l.now<l.min||l.max<l.now||i.isDisabledDateTime(l.now,t),t.elem&&t.elem[a?"addClass":"removeClass"](C),a},k.prototype.thisDateTime=function(e){var t=this.config;return e?this.endDate:t.dateTime},k.prototype.calendar=function(e,i,t){i=i?1:0;var l,r,o,d=this,a=d.config,s=e||d.thisDateTime(i),n=new Date,y=d.lang(),m="date"!==a.type&&"datetime"!==a.type,u=lay(d.table[i]).find("td"),c=lay(d.elemHeader[i][2]).find("span");return s.year<h[0]&&(s.year=h[0],d.hint(y.invalidDate)),s.year>h[1]&&(s.year=h[1],d.hint(y.invalidDate)),d.firstDate||(d.firstDate=lay.extend({},s)),n.setFullYear(s.year,s.month,1),l=(n.getDay()+(7-a.weekStart))%7,r=T.getEndDate(s.month||12,s.year),o=T.getEndDate(s.month+1,s.year),lay.each(u,function(e,t){var a,n=[s.year,s.month];(t=lay(t)).removeAttr("class"),e<l?(a=r-l+e,t.addClass("laydate-day-prev"),n=d.getAsYM(s.year,s.month,"sub")):l<=e&&e<o+l?(a=e-l,d.rangeLinked||a+1===s.date&&t.addClass(M)):(a=e-o-l,t.addClass("laydate-day-next"),n=d.getAsYM(s.year,s.month)),n[1]++,n[2]=a+1,t.attr("lay-ymd",n.join("-")).html("<div>"+n[2]+"</div>"),d.mark(t,n).holidays(t,n).limit({elem:t,date:{year:n[0],month:n[1]-1,date:n[2]},index:e,rangeType:i,disabledType:"date"}),d.cellRender(t,{year:n[0],month:n[1],date:n[2]},"date")}),lay(c[0]).attr("lay-ym",s.year+"-"+(s.month+1)),lay(c[1]).attr("lay-ym",s.year+"-"+(s.month+1)),d.panelYM||(d.panelYM={}),d.panelYM[i]={year:s.year,month:s.month},"cn"===a.lang?(lay(c[0]).attr("lay-type","year").html(s.year+" \u5e74"),lay(c[1]).attr("lay-type","month").html(s.month+1+" \u6708")):(lay(c[0]).attr("lay-type","month").html(y.month[s.month]),lay(c[1]).attr("lay-type","year").html(s.year)),m&&(a.range?!e&&"init"===t||(d.listYM=[[(d.startDate||a.dateTime).year,(d.startDate||a.dateTime).month+1],[d.endDate.year,d.endDate.month+1]],d.list(a.type,0).list(a.type,1),"time"===a.type?d.setBtnStatus("\u65f6\u95f4",lay.extend({},d.systemDate(),d.startTime),lay.extend({},d.systemDate(),d.endTime)):d.setBtnStatus(!0)):(d.listYM=[[s.year,s.month+1]],d.list(a.type,0))),a.range&&"init"===t&&(d.rangeLinked?(n=d.getAsYM(s.year,s.month,i?"sub":null),d.calendar(lay.extend({},s,{year:n[0],month:n[1]}),1-i)):d.calendar(null,1-i)),a.range||(u=["hours","minutes","seconds"],d.limit({elem:lay(d.footer).find(".laydate-btns-now"),date:d.systemDate(/^(datetime|time)$/.test(a.type)?new Date:null),index:0,time:u,disabledType:"datetime"}),d.limit({elem:lay(d.footer).find(E),index:0,time:u,disabledType:"datetime"})),d.setBtnStatus(),lay(d.shortcut).find("li."+M).removeClass(M),a.range&&!m&&"init"!==t&&d.stampRange(),d},k.prototype.list=function(n,i){var l,r,e,a,o,d,t,s=this,y=s.config,m=s.rangeLinked?y.dateTime:[y.dateTime,s.endDate][i],u=s.lang(),c=y.range&&"date"!==y.type&&"datetime"!==y.type,h=lay.elem("ul",{"class":b+" "+{year:"laydate-year-list",month:"laydate-month-list",time:"laydate-time-list"}[n]}),p=s.elemHeader[i],f=lay(p[2]).find("span"),g=s.elemCont[i||0],D=lay(g).find("."+b)[0],T="cn"===y.lang,v=T?"\u5e74":"",x=s.listYM[i]||{},w=["hours","minutes","seconds"],k=["startTime","endTime"][i];return x[0]<1&&(x[0]=1),"year"===n?(e=l=x[0]-7,l<1&&(e=l=1),lay.each(new Array(15),function(e){var t=lay.elem("li",{"lay-ym":l}),a={year:l,month:0,date:1};l==x[0]&&lay(t).addClass(M),t.innerHTML=l+v,h.appendChild(t),s.limit({elem:lay(t),date:a,index:i,type:n,rangeType:i,disabledType:"date"}),s.cellRender(t,{year:l,month:1,date:1},"year"),l++}),lay(f[T?0:1]).attr("lay-ym",l-8+"-"+x[1]).html(e+v+" - "+(l-1)+v)):"month"===n?(lay.each(new Array(12),function(e){var t=lay.elem("li",{"lay-ym":e}),a={year:x[0],month:e,date:1};e+1==x[1]&&lay(t).addClass(M),t.innerHTML=u.month[e]+(T?"\u6708":""),h.appendChild(t),s.limit({elem:lay(t),date:a,index:i,type:n,rangeType:i,disabledType:"date"}),s.cellRender(t,{year:x[0],month:e+1,date:1},"month")}),lay(f[T?0:1]).attr("lay-ym",x[0]+"-"+x[1]).html(x[0]+v)):"time"===n&&(r=function(){lay(h).find("ol").each(function(a,e){lay(e).find("li").each(function(e,t){s.limit({elem:lay(t),date:[{hours:e},{hours:s[k].hours,minutes:e},{hours:s[k].hours,minutes:s[k].minutes,seconds:e}][a],index:i,rangeType:i,disabledType:"time",time:[["hours"],["hours","minutes"],["hours","minutes","seconds"]][a]})})}),y.range||s.limit({elem:lay(s.footer).find(E),date:s[k],index:0,time:["hours","minutes","seconds"],disabledType:"datetime"})},y.range?s[k]||(s[k]="startTime"===k?m:s.endDate):s[k]=m,lay.each([24,60,60],function(t,e){var a=lay.elem("li"),n=["<p>"+u.time[t]+"</p><ol>"];lay.each(new Array(e),function(e){n.push("<li"+(s[k][w[t]]===e?' class="'+M+'"':"")+">"+lay.digit(e,2)+"</li>")}),a.innerHTML=n.join("")+"</ol>",h.appendChild(a)}),r(),e=-1!==y.format.indexOf("H"),f=-1!==y.format.indexOf("m"),t=-1!==y.format.indexOf("s"),a=h.children,o=0,lay.each([e,f,t],function(e,t){t||(a[e].className+=" layui-hide",o++)}),h.className+=" laydate-time-list-hide-"+o),D&&g.removeChild(D),g.appendChild(h),"year"===n||"month"===n?(lay(s.elemMain[i]).addClass("laydate-ym-show"),lay(h).find("li").on("click",function(){var e=0|lay(this).attr("lay-ym");lay(this).hasClass(C)||(s.rangeLinked?lay.extend(m,{year:"year"===n?e:x[0],month:"year"===n?x[1]-1:e}):m[n]=e,"year"===y.type||"month"===y.type?(lay(h).find("."+M).removeClass(M),lay(this).addClass(M),"month"===y.type&&"year"===n&&(s.listYM[i][0]=e,c&&((i?s.endDate:m).year=e),s.list("month",i))):(s.checkDate("limit").calendar(m,i,"init"),s.closeList()),s.setBtnStatus(),!y.range&&y.autoConfirm&&("month"===y.type&&"month"===n||"year"===y.type&&"year"===n)&&s.setValue(s.parse()).done().remove(),s.autoCalendarModel.auto&&!s.rangeLinked?s.choose(lay(g).find("td.layui-this"),i):s.endState&&s.done(null,"change"),lay(s.footer).find("."+I).removeClass(C))})):(f=lay.elem("span",{"class":L}),d=function(){lay(h).find("ol").each(function(e){var a=this,t=lay(a).find("li");a.scrollTop=30*(s[k][w[e]]-2),a.scrollTop<=0&&t.each(function(e,t){if(!lay(this).hasClass(C))return a.scrollTop=30*(e-2),!0})})},t=lay(p[2]).find("."+L),d(),f.innerHTML=y.range?[u.startTime,u.endTime][i]:u.timeTips,lay(s.elemMain[i]).addClass("laydate-time-show"),t[0]&&t.remove(),p[2].appendChild(f),(D=lay(h).find("ol")).each(function(t){var a=this;lay(a).find("li").on("click",function(){var e=0|this.innerHTML;lay(this).hasClass(C)||(y.range?s[k][w[t]]=e:m[w[t]]=e,lay(a).find("."+M).removeClass(M),lay(this).addClass(M),r(),d(),!s.endDate&&"time"!==y.type&&"datetime"!==y.type||s.done(null,"change"),s.setBtnStatus())})}),layui.device().mobile&&D.css({overflowY:"auto",touchAction:"pan-y"})),s},k.prototype.listYM=[],k.prototype.closeList=function(){var a=this;a.config;lay.each(a.elemCont,function(e,t){lay(this).find("."+b).remove(),lay(a.elemMain[e]).removeClass("laydate-ym-show laydate-time-show")}),lay(a.elem).find("."+L).remove()},k.prototype.setBtnStatus=function(e,t,a){var n=this,i=n.config,l=n.lang(),r=lay(n.footer).find(E),o="datetime"===i.type||"time"===i.type?["hours","minutes","seconds"]:undefined;i.range&&(t=t||(n.rangeLinked?n.startDate:i.dateTime),a=a||n.endDate,i=!n.endState||n.newDate(t).getTime()>n.newDate(a).getTime(),n.limit({date:t,disabledType:"datetime",time:o,rangeType:0})||n.limit({date:a,disabledType:"datetime",time:o,rangeType:1})?r.addClass(C):r[i?"addClass":"removeClass"](C),e)&&i&&n.hint("string"==typeof e?l.timeout.replace(/\u65e5\u671f/g,e):l.timeout)},k.prototype.parse=function(e,t){var a=this,n=a.config,i=a.rangeLinked?a.startDate:n.dateTime,t=t||("end"==e?lay.extend({},a.endDate,a.endTime):n.range?lay.extend({},i||n.dateTime,a.startTime):n.dateTime),i=T.parse(t,a.format,1);return n.range&&e===undefined?i+" "+a.rangeStr+" "+a.parse("end"):i},k.prototype.newDate=function(e){return e=e||{},new Date(e.year||1,e.month||0,e.date||1,e.hours||0,e.minutes||0,e.seconds||0)},k.prototype.getDateTime=function(e){return this.newDate(e).getTime()},k.prototype.formatToDisplay=function(e,t){var a=this,n=Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value");Object.defineProperty(e,"value",lay.extend({},n,{get:function(){return this.getAttribute("lay-date")},set:function(e){n.set.call(this,t.call(a,e)),this.setAttribute("lay-date",e)}}))},k.prototype.setValue=function(e){var t,a=this,n=a.config,i=n.elem[0];return"static"!==n.position&&(e=e||"",a.isInput(i)?lay(i).val(e):(t=a.rangeElem)?("array"!==layui.type(e)&&(e=e.split(" "+a.rangeStr+" ")),t[0].val(e[0]||""),t[1].val(e[1]||"")):(0===lay(i).find("*").length&&(t="function"==typeof n.formatToDisplay?n.formatToDisplay(e):e,lay(i).html(t)),lay(i).attr("lay-date",e))),a},k.prototype.preview=function(){var e,t=this,a=t.config;a.isPreview&&(e=lay(t.elem).find("."+x),a=!a.range||(t.rangeLinked?t.endState:t.endDate)?t.parse():"",e.html(a),e.html())&&(e.css({color:"#16b777"}),setTimeout(function(){e.css({color:"#777"})},300))},k.prototype.renderAdditional=function(){this.config.fullPanel&&this.list("time",0)},k.prototype.stampRange=function(){var n,i=this,l=i.config,r=i.rangeLinked?i.startDate:l.dateTime,e=lay(i.elem).find("td");l.range&&!i.endState&&lay(i.footer).find(E).addClass(C),r=r&&i.newDate({year:r.year,month:r.month,date:r.date}).getTime(),n=i.endState&&i.endDate&&i.newDate({year:i.endDate.year,month:i.endDate.month,date:i.endDate.date}).getTime(),lay.each(e,function(e,t){var a=lay(t).attr("lay-ymd").split("-"),a=i.newDate({year:a[0],month:a[1]-1,date:a[2]}).getTime();l.rangeLinked&&!i.startDate&&a===i.newDate(i.systemDate()).getTime()&&lay(t).addClass(lay(t).hasClass(y)||lay(t).hasClass(m)?"":"laydate-day-now"),lay(t).removeClass(o+" "+M),a!==r&&a!==n||(i.rangeLinked||!i.rangeLinked&&(e<42?a===r:a===n))&&lay(t).addClass(lay(t).hasClass(y)||lay(t).hasClass(m)?o:M),r<a&&a<n&&lay(t).addClass(o)})},k.prototype.done=function(e,t){var a=this,n=a.config,i=lay.extend({},lay.extend(a.rangeLinked?a.startDate:n.dateTime,a.startTime)),l=lay.extend({},lay.extend(a.endDate,a.endTime));return lay.each([i,l],function(e,t){"month"in t&&lay.extend(t,{month:t.month+1})}),a.preview(),e=e||[a.parse(),i,l],"change"===t&&a.renderAdditional(),"function"==typeof n[t||"done"]&&n[t||"done"].apply(n,e),a},k.prototype.checkPanelDate=function(e,t){var a,n=this.config;if("date"===n.type||"datetime"===n.type)return n=0===t,e=e.month+1,a=this.panelYM[t].month+1,n=this.endState&&(n&&a<e||!n&&e<a)?1-t:t,{needFullRender:e!==a,index:n}},k.prototype.choose=function(e,a){var n,i,t,l,r,o,d;e.hasClass(C)||(i=(n=this).config,t=a,n.rangeLinked&&(n.endState||!n.startDate?(a=0,n.endState=!1):(a=1,n.endState=!0)),l=n.thisDateTime(a),lay(n.elem).find("td"),e={year:0|(e=e.attr("lay-ymd").split("-"))[0],month:(0|e[1])-1,date:0|e[2]},lay.extend(l,e),i.range?(lay.each(["startTime","endTime"],function(e,t){n[t]=n[t]||{hours:e?23:0,minutes:e?59:0,seconds:e?59:0},a===e&&(n.getDateTime(lay.extend({},l,n[t]))<n.getDateTime(i.min)?(n[t]={hours:i.min.hours,minutes:i.min.minutes,seconds:i.min.seconds},lay.extend(l,n[t])):n.getDateTime(lay.extend({},l,n[t]))>n.getDateTime(i.max)&&(n[t]={hours:i.max.hours,minutes:i.max.minutes,seconds:i.max.seconds},lay.extend(l,n[t])))}),a||(n.startDate=lay.extend({},l)),n.endState&&!n.limit({date:n.rangeLinked?n.startDate:n.thisDateTime(1-a),disabledType:"date"})&&(((r=n.endState&&n.autoCalendarModel.auto?n.autoCalendarModel():r)||n.rangeLinked&&n.endState)&&n.newDate(n.startDate)>n.newDate(n.endDate)&&(n.startDate.year===n.endDate.year&&n.startDate.month===n.endDate.month&&n.startDate.date===n.endDate.date&&(o=n.startTime,n.startTime=n.endTime,n.endTime=o),o=n.startDate,n.startDate=lay.extend({},n.endDate,n.startTime),i.dateTime=lay.extend({},n.startDate),n.endDate=lay.extend({},o,n.endTime)),r)&&(i.dateTime=lay.extend({},n.startDate)),n.rangeLinked?(e=n.checkPanelDate(l,t),o=lay.extend({},l),d=r||e&&e.needFullRender?"init":null,e=e?e.index:t,n.calendar(o,e,d)):n.calendar(null,a,r?"init":null),n.endState&&n.done(null,"change")):"static"===i.position?n.calendar().done().done(null,"change"):"date"===i.type?i.autoConfirm?n.setValue(n.parse()).done().remove():n.calendar().done(null,"change"):"datetime"===i.type&&n.calendar().done(null,"change"))},k.prototype.tool=function(t,e){var a=this,n=a.config,i=a.lang(),l=n.dateTime,r="static"===n.position,o={datetime:function(){lay(t).hasClass(C)||(a.list("time",0),n.range&&a.list("time",1),lay(t).attr("lay-type","date").html(a.lang().dateTips))},date:function(){a.closeList(),lay(t).attr("lay-type","datetime").html(a.lang().timeTips)},clear:function(){r&&(lay.extend(l,a.firstDate),a.calendar()),n.range&&(delete n.dateTime,delete a.endDate,delete a.startTime,delete a.endTime),a.setValue(""),a.done(null,"onClear").done(["",{},{}]).remove()},now:function(){var e=new Date;if(lay(t).hasClass(C))return a.hint(i.tools.now+", "+i.invalidDate);lay.extend(l,a.systemDate(),{hours:e.getHours(),minutes:e.getMinutes(),seconds:e.getSeconds()}),a.setValue(a.parse()),r&&a.calendar(),a.done(null,"onNow").done().remove()},confirm:function(){if(n.range){if(lay(t).hasClass(C))return("time"===n.type?a.startTime&&a.endTime&&a.newDate(a.startTime)>a.newDate(a.endTime):a.startDate&&a.endDate&&a.newDate(lay.extend({},a.startDate,a.startTime||{}))>a.newDate(lay.extend({},a.endDate,a.endTime||{})))?a.hint("time"===n.type?i.timeout.replace(/\u65e5\u671f/g,"\u65f6\u95f4"):i.timeout):a.hint(i.invalidDate)}else if(lay(t).hasClass(C))return a.hint(i.invalidDate);a.setValue(a.parse()),a.done(null,"onConfirm").done().remove()}};o[e]&&o[e]()},k.prototype.change=function(n){var i=this,l=i.config,r=i.thisDateTime(n),o=l.range&&("year"===l.type||"month"===l.type),d=i.elemCont[n||0],s=i.listYM[n],e=function(e){var t=lay(d).find(".laydate-year-list")[0],a=lay(d).find(".laydate-month-list")[0];return t&&(s[0]=e?s[0]-15:s[0]+15,i.list("year",n)),a&&(e?s[0]--:s[0]++,i.list("month",n)),(t||a)&&(lay.extend(r,{year:s[0]}),o&&(r.year=s[0]),l.range||i.done(null,"change"),l.range||i.limit({elem:lay(i.footer).find(E),date:{year:s[0]},disabledType:"datetime"})),i.setBtnStatus(),t||a};return{prevYear:function(){e("sub")||(i.rangeLinked?(l.dateTime.year--,i.checkDate("limit").calendar(null,null,"init")):(r.year--,i.checkDate("limit").calendar(null,n),i.autoCalendarModel.auto?i.choose(lay(d).find("td.layui-this"),n):i.done(null,"change")))},prevMonth:function(){var e,t;i.rangeLinked?(t=i.panelYM[0],t=i.getAsYM(t.year,t.month,"sub"),e=lay.extend({},l.dateTime,i.panelYM[0],{year:t[0],month:t[1]}),i.checkDate("limit").calendar(e,null,"init")):(t=i.getAsYM(r.year,r.month,"sub"),lay.extend(r,{year:t[0],month:t[1]}),i.checkDate("limit").calendar(null,null,"init"),i.autoCalendarModel.auto?i.choose(lay(d).find("td.layui-this"),n):i.done(null,"change"))},nextMonth:function(){var e,t;i.rangeLinked?(t=i.panelYM[0],t=i.getAsYM(t.year,t.month),e=lay.extend({},l.dateTime,i.panelYM[0],{year:t[0],month:t[1]}),i.checkDate("limit").calendar(e,null,"init")):(t=i.getAsYM(r.year,r.month),lay.extend(r,{year:t[0],month:t[1]}),i.checkDate("limit").calendar(null,null,"init"),i.autoCalendarModel.auto?i.choose(lay(d).find("td.layui-this"),n):i.done(null,"change"))},nextYear:function(){e()||(i.rangeLinked?(l.dateTime.year++,i.checkDate("limit").calendar(null,0,"init")):(r.year++,i.checkDate("limit").calendar(null,n),i.autoCalendarModel.auto?i.choose(lay(d).find("td.layui-this"),n):i.done(null,"change")))}}},k.prototype.changeEvent=function(){var i=this;i.config;lay(i.elem).on("click",function(e){lay.stope(e)}).on("mousedown",function(e){lay.stope(e)}),lay.each(i.elemHeader,function(n,e){lay(e[0]).on("click",function(e){i.change(n).prevYear()}),lay(e[1]).on("click",function(e){i.change(n).prevMonth()}),lay(e[2]).find("span").on("click",function(e){var t=lay(this),a=t.attr("lay-ym"),t=t.attr("lay-type");a&&(a=a.split("-"),i.listYM[n]=[0|a[0],0|a[1]],i.list(t,n),lay(i.footer).find("."+I).addClass(C))}),lay(e[3]).on("click",function(e){i.change(n).nextMonth()}),lay(e[4]).on("click",function(e){i.change(n).nextYear()})}),lay.each(i.table,function(e,t){lay(t).find("td").on("click",function(){i.choose(lay(this),e)})}),lay(i.footer).find("span").on("click",function(){var e=lay(this).attr("lay-type");i.tool(this,e)})},k.prototype.isInput=function(e){return/input|textarea/.test(e.tagName.toLocaleLowerCase())||/INPUT|TEXTAREA/.test(e.tagName)},k.prototype.events=function(){var e,t=this,a=t.config;a.elem[0]&&!a.elem[0].eventHandler&&(a.elem.on(a.trigger,e=function(){T.thisId!==a.id&&t.render()}),a.elem[0].eventHandler=!0,a.eventElem.on(a.trigger,e),t.unbind=function(){t.remove(),a.elem.off(a.trigger,e),a.elem.removeAttr("lay-key"),a.elem.removeAttr(d),a.elem[0].eventHandler=!1,a.eventElem.off(a.trigger,e),a.eventElem.removeAttr("lay-key"),delete s.that[a.id]})},s.that={},s.getThis=function(e){var t=s.that[e];return!t&&n&&layui.hint().error(e?a+" instance with ID '"+e+"' not found":"ID argument required"),t},l.run=function(n){n(D).on("mousedown",function(e){var t,a;T.thisId&&(t=s.getThis(T.thisId))&&(a=t.config,e.target===a.elem[0]||e.target===a.eventElem[0]||e.target===n(a.closeStop)[0]||a.elem[0]&&a.elem[0].contains(e.target)||t.remove())}).on("keydown",function(e){var t;T.thisId&&(t=s.getThis(T.thisId))&&"static"!==t.config.position&&13===e.keyCode&&n("#"+t.elemID)[0]&&t.elemID===k.thisElemDate&&(e.preventDefault(),n(t.footer).find(E)[0].click())}),n(i).on("resize",function(){if(T.thisId){var e=s.getThis(T.thisId);if(e)return!(!e.elem||!n(".layui-laydate")[0])&&void e.position()}})},T.render=function(e){e=new k(e);return s.call(e)},T.reload=function(e,t){e=s.getThis(e);if(e)return e.reload(t)},T.getInst=function(e){e=s.getThis(e);if(e)return e.inst},T.hint=function(e,t){e=s.getThis(e);if(e)return e.hint(t)},T.unbind=function(e){e=s.getThis(e);if(e)return e.unbind()},T.close=function(e){e=s.getThis(e||T.thisId);if(e)return e.remove()},T.parse=function(a,n,i){return a=a||{},n=((n="string"==typeof n?s.formatArr(n):n)||[]).concat(),lay.each(n,function(e,t){/yyyy|y/.test(t)?n[e]=lay.digit(a.year,t.length):/MM|M/.test(t)?n[e]=lay.digit(a.month+(i||0),t.length):/dd|d/.test(t)?n[e]=lay.digit(a.date,t.length):/HH|H/.test(t)?n[e]=lay.digit(a.hours,t.length):/mm|m/.test(t)?n[e]=lay.digit(a.minutes,t.length):/ss|s/.test(t)&&(n[e]=lay.digit(a.seconds,t.length))}),n.join("")},T.getEndDate=function(e,t){var a=new Date;return a.setFullYear(t||a.getFullYear(),e||a.getMonth()+1,1),new Date(a.getTime()-864e5).getDate()},n?(T.ready(),layui.define("lay",function(e){T.path=layui.cache.dir,l.run(lay),e(a,T)})):"function"==typeof define&&define.amd?define(function(){return l.run(lay),T}):(T.ready(),l.run(i.lay),i.laydate=T)}(window,window.document);!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e):function(e){if(e.document)return t(e);throw new Error("jQuery requires a window with a document")}:t(e)}("undefined"!=typeof window?window:this,function(T,M){var f=[],g=T.document,c=f.slice,O=f.concat,R=f.push,P=f.indexOf,B={},W=B.toString,m=B.hasOwnProperty,y={},e="1.12.4",C=function(e,t){return new C.fn.init(e,t)},I=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,$=/^-ms-/,z=/-([\da-z])/gi,X=function(e,t){return t.toUpperCase()};function U(e){var t=!!e&&"length"in e&&e.length,n=C.type(e);return"function"!==n&&!C.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}C.fn=C.prototype={jquery:e,constructor:C,selector:"",length:0,toArray:function(){return c.call(this)},get:function(e){return null!=e?e<0?this[e+this.length]:this[e]:c.call(this)},pushStack:function(e){e=C.merge(this.constructor(),e);return e.prevObject=this,e.context=this.context,e},each:function(e){return C.each(this,e)},map:function(n){return this.pushStack(C.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(c.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,e=+e+(e<0?t:0);return this.pushStack(0<=e&&e<t?[this[e]]:[])},end:function(){return this.prevObject||this.constructor()},push:R,sort:f.sort,splice:f.splice},C.extend=C.fn.extend=function(){var e,t,n,r,i,o=arguments[0]||{},a=1,s=arguments.length,u=!1;for("boolean"==typeof o&&(u=o,o=arguments[a]||{},a++),"object"==typeof o||C.isFunction(o)||(o={}),a===s&&(o=this,a--);a<s;a++)if(null!=(r=arguments[a]))for(n in r)i=o[n],o!==(t=r[n])&&(u&&t&&(C.isPlainObject(t)||(e=C.isArray(t)))?(i=e?(e=!1,i&&C.isArray(i)?i:[]):i&&C.isPlainObject(i)?i:{},o[n]=C.extend(u,i,t)):t!==undefined&&(o[n]=t));return o},C.extend({expando:"jQuery"+(e+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===C.type(e)},isArray:Array.isArray||function(e){return"array"===C.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){var t=e&&e.toString();return!C.isArray(e)&&0<=t-parseFloat(t)+1},isEmptyObject:function(e){for(var t in e)return!1;return!0},isPlainObject:function(e){if(!e||"object"!==C.type(e)||e.nodeType||C.isWindow(e))return!1;try{if(e.constructor&&!m.call(e,"constructor")&&!m.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(!y.ownFirst)for(var t in e)return m.call(e,t);for(t in e);return t===undefined||m.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?B[W.call(e)]||"object":typeof e},globalEval:function(e){e&&C.trim(e)&&(T.execScript||function(e){T.eval.call(T,e)})(e)},camelCase:function(e){return e.replace($,"ms-").replace(z,X)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var n,r=0;if(U(e))for(n=e.length;r<n&&!1!==t.call(e[r],r,e[r]);r++);else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(I,"")},makeArray:function(e,t){t=t||[];return null!=e&&(U(Object(e))?C.merge(t,"string"==typeof e?[e]:e):R.call(t,e)),t},inArray:function(e,t,n){var r;if(t){if(P)return P.call(t,e,n);for(r=t.length,n=n?n<0?Math.max(0,r+n):n:0;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;)e[i++]=t[r++];if(n!=n)for(;t[r]!==undefined;)e[i++]=t[r++];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!=a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(U(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return O.apply([],a)},guid:1,proxy:function(e,t){var n,r;return"string"==typeof t&&(r=e[t],t=e,e=r),C.isFunction(e)?(n=c.call(arguments,2),(r=function(){return e.apply(t||this,n.concat(c.call(arguments)))}).guid=e.guid=e.guid||C.guid++,r):undefined},now:function(){return+new Date},support:y}),"function"==typeof Symbol&&(C.fn[Symbol.iterator]=f[Symbol.iterator]),C.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){B["[object "+t+"]"]=t.toLowerCase()});var e=function(M){var e,g,b,o,O,w,R,P,T,u,l,C,E,t,N,m,r,i,y,k="sizzle"+ +new Date,v=M.document,S=0,B=0,W=le(),I=le(),A=le(),$=function(e,t){return e===t&&(l=!0),0},z={}.hasOwnProperty,n=[],X=n.pop,U=n.push,D=n.push,V=n.slice,j=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},Y="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",a="[\\x20\\t\\r\\n\\f]",s="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",J="\\["+a+"*("+s+")(?:"+a+"*([*^$|!~]?=)"+a+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+s+"))|)"+a+"*\\]",G=":("+s+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+J+")*)|.*)\\)|)",K=new RegExp(a+"+","g"),L=new RegExp("^"+a+"+|((?:^|[^\\\\])(?:\\\\.)*)"+a+"+$","g"),Q=new RegExp("^"+a+"*,"+a+"*"),Z=new RegExp("^"+a+"*([>+~]|"+a+")"+a+"*"),ee=new RegExp("="+a+"*([^\\]'\"]*?)"+a+"*\\]","g"),te=new RegExp(G),ne=new RegExp("^"+s+"$"),f={ID:new RegExp("^#("+s+")"),CLASS:new RegExp("^\\.("+s+")"),TAG:new RegExp("^("+s+"|[*])"),ATTR:new RegExp("^"+J),PSEUDO:new RegExp("^"+G),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+a+"*(even|odd|(([+-]|)(\\d*)n|)"+a+"*(?:([+-]|)"+a+"*(\\d+)|))"+a+"*\\)|)","i"),bool:new RegExp("^(?:"+Y+")$","i"),needsContext:new RegExp("^"+a+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+a+"*((?:-\\d)?\\d*)"+a+"*\\)|)(?=[^-]|$)","i")},re=/^(?:input|select|textarea|button)$/i,ie=/^h\d$/i,c=/^[^{]+\{\s*\[native \w/,oe=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ae=/[+~]/,se=/'|\\/g,d=new RegExp("\\\\([\\da-f]{1,6}"+a+"?|("+a+")|.)","ig"),p=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(65536+r):String.fromCharCode(r>>10|55296,1023&r|56320)},ue=function(){C()};try{D.apply(n=V.call(v.childNodes),v.childNodes),n[v.childNodes.length].nodeType}catch(F){D={apply:n.length?function(e,t){U.apply(e,V.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function H(e,t,n,r){var i,o,a,s,u,l,c,f,d=t&&t.ownerDocument,p=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==p&&9!==p&&11!==p)return n;if(!r&&((t?t.ownerDocument||t:v)!==E&&C(t),t=t||E,N)){if(11!==p&&(l=oe.exec(e)))if(i=l[1]){if(9===p){if(!(a=t.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(d&&(a=d.getElementById(i))&&y(t,a)&&a.id===i)return n.push(a),n}else{if(l[2])return D.apply(n,t.getElementsByTagName(e)),n;if((i=l[3])&&g.getElementsByClassName&&t.getElementsByClassName)return D.apply(n,t.getElementsByClassName(i)),n}if(g.qsa&&!A[e+" "]&&(!m||!m.test(e))){if(1!==p)d=t,f=e;else if("object"!==t.nodeName.toLowerCase()){for((s=t.getAttribute("id"))?s=s.replace(se,"\\$&"):t.setAttribute("id",s=k),o=(c=w(e)).length,u=ne.test(s)?"#"+s:"[id='"+s+"']";o--;)c[o]=u+" "+_(c[o]);f=c.join(","),d=ae.test(e)&&de(t.parentNode)||t}if(f)try{return D.apply(n,d.querySelectorAll(f)),n}catch(h){}finally{s===k&&t.removeAttribute("id")}}}return P(e.replace(L,"$1"),t,n,r)}function le(){var n=[];function r(e,t){return n.push(e+" ")>b.cacheLength&&delete r[n.shift()],r[e+" "]=t}return r}function q(e){return e[k]=!0,e}function h(e){var t=E.createElement("div");try{return!!e(t)}catch(F){return!1}finally{t.parentNode&&t.parentNode.removeChild(t)}}function ce(e,t){for(var n=e.split("|"),r=n.length;r--;)b.attrHandle[n[r]]=t}function fe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||1<<31)-(~e.sourceIndex||1<<31);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function x(a){return q(function(o){return o=+o,q(function(e,t){for(var n,r=a([],e.length,o),i=r.length;i--;)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function de(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in g=H.support={},O=H.isXML=function(e){e=e&&(e.ownerDocument||e).documentElement;return!!e&&"HTML"!==e.nodeName},C=H.setDocument=function(e){var e=e?e.ownerDocument||e:v;return e!==E&&9===e.nodeType&&e.documentElement&&(t=(E=e).documentElement,N=!O(E),(e=E.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",ue,!1):e.attachEvent&&e.attachEvent("onunload",ue)),g.attributes=h(function(e){return e.className="i",!e.getAttribute("className")}),g.getElementsByTagName=h(function(e){return e.appendChild(E.createComment("")),!e.getElementsByTagName("*").length}),g.getElementsByClassName=c.test(E.getElementsByClassName),g.getById=h(function(e){return t.appendChild(e).id=k,!E.getElementsByName||!E.getElementsByName(k).length}),g.getById?(b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&N)return(e=t.getElementById(e))?[e]:[]},b.filter.ID=function(e){var t=e.replace(d,p);return function(e){return e.getAttribute("id")===t}}):(delete b.find.ID,b.filter.ID=function(e){var t=e.replace(d,p);return function(e){e="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return e&&e.value===t}}),b.find.TAG=g.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):g.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"!==e)return o;for(;n=o[i++];)1===n.nodeType&&r.push(n);return r},b.find.CLASS=g.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&N)return t.getElementsByClassName(e)},r=[],m=[],(g.qsa=c.test(E.querySelectorAll))&&(h(function(e){t.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&m.push("[*^$]="+a+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||m.push("\\["+a+"*(?:value|"+Y+")"),e.querySelectorAll("[id~="+k+"-]").length||m.push("~="),e.querySelectorAll(":checked").length||m.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||m.push(".#.+[+~]")}),h(function(e){var t=E.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&m.push("name"+a+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||m.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),m.push(",.*:")})),(g.matchesSelector=c.test(i=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.msMatchesSelector))&&h(function(e){g.disconnectedMatch=i.call(e,"div"),i.call(e,"[s!='']:x"),r.push("!=",G)}),m=m.length&&new RegExp(m.join("|")),r=r.length&&new RegExp(r.join("|")),e=c.test(t.compareDocumentPosition),y=e||c.test(t.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,t=t&&t.parentNode;return e===t||!(!t||1!==t.nodeType||!(n.contains?n.contains(t):e.compareDocumentPosition&&16&e.compareDocumentPosition(t)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},$=e?function(e,t){var n;return e===t?(l=!0,0):(n=!e.compareDocumentPosition-!t.compareDocumentPosition)||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!g.sortDetached&&t.compareDocumentPosition(e)===n?e===E||e.ownerDocument===v&&y(v,e)?-1:t===E||t.ownerDocument===v&&y(v,t)?1:u?j(u,e)-j(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===E?-1:t===E?1:i?-1:o?1:u?j(u,e)-j(u,t):0;if(i===o)return fe(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?fe(a[r],s[r]):a[r]===v?-1:s[r]===v?1:0}),E},H.matches=function(e,t){return H(e,null,null,t)},H.matchesSelector=function(e,t){if((e.ownerDocument||e)!==E&&C(e),t=t.replace(ee,"='$1']"),g.matchesSelector&&N&&!A[t+" "]&&(!r||!r.test(t))&&(!m||!m.test(t)))try{var n=i.call(e,t);if(n||g.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(F){}return 0<H(t,E,null,[e]).length},H.contains=function(e,t){return(e.ownerDocument||e)!==E&&C(e),y(e,t)},H.attr=function(e,t){(e.ownerDocument||e)!==E&&C(e);var n=b.attrHandle[t.toLowerCase()],n=n&&z.call(b.attrHandle,t.toLowerCase())?n(e,t,!N):undefined;return n!==undefined?n:g.attributes||!N?e.getAttribute(t):(n=e.getAttributeNode(t))&&n.specified?n.value:null},H.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},H.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!g.detectDuplicates,u=!g.sortStable&&e.slice(0),e.sort($),l){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return u=null,e},o=H.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=o(t);return n},(b=H.selectors={cacheLength:50,createPseudo:q,match:f,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(d,p),e[3]=(e[3]||e[4]||e[5]||"").replace(d,p),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||H.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&H.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return f.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&te.test(n)&&(t=(t=w(n,!0))&&n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(d,p).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=W[e+" "];return t||(t=new RegExp("(^|"+a+")"+e+"("+a+"|$)"))&&W(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(e){e=H.attr(e,t);return null==e?"!="===n:!n||(e+="","="===n?e===r:"!="===n?e!==r:"^="===n?r&&0===e.indexOf(r):"*="===n?r&&-1<e.indexOf(r):"$="===n?r&&e.slice(-r.length)===r:"~="===n?-1<(" "+e.replace(K," ")+" ").indexOf(r):"|="===n&&(e===r||e.slice(0,r.length+1)===r+"-"))}},CHILD:function(h,e,t,g,m){var y="nth"!==h.slice(0,3),v="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===m?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!=v?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),d=!n&&!x,p=!1;if(c){if(y){for(;l;){for(a=e;a=a[l];)if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[v?c.firstChild:c.lastChild],v&&d){for(p=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];a=++s&&a&&a[l]||(p=s=0,u.pop());)if(1===a.nodeType&&++p&&a===e){i[h]=[S,s,p];break}}else if(!1===(p=d?s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]:p))for(;(a=++s&&a&&a[l]||(p=s=0,u.pop()))&&((x?a.nodeName.toLowerCase()!==f:1!==a.nodeType)||!++p||(d&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,p]),a!==e)););return(p-=m)===g||p%g==0&&0<=p/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||H.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?q(function(e,t){for(var n,r=a(e,o),i=r.length;i--;)e[n=j(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:q(function(e){var r=[],i=[],s=R(e.replace(L,"$1"));return s[k]?q(function(e,t,n,r){for(var i,o=s(e,null,r,[]),a=e.length;a--;)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:q(function(t){return function(e){return 0<H(t,e).length}}),contains:q(function(t){return t=t.replace(d,p),function(e){return-1<(e.textContent||e.innerText||o(e)).indexOf(t)}}),lang:q(function(n){return ne.test(n||"")||H.error("unsupported lang: "+n),n=n.replace(d,p).toLowerCase(),function(e){var t;do{if(t=N?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=M.location&&M.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===t},focus:function(e){return e===E.activeElement&&(!E.hasFocus||E.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return!1===e.disabled},disabled:function(e){return!0===e.disabled},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return ie.test(e.nodeName)},input:function(e){return re.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(e=e.getAttribute("type"))||"text"===e.toLowerCase())},first:x(function(){return[0]}),last:x(function(e,t){return[t-1]}),eq:x(function(e,t,n){return[n<0?n+t:n]}),even:x(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:x(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:x(function(e,t,n){for(var r=n<0?n+t:n;0<=--r;)e.push(r);return e}),gt:x(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=function(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=function(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}(e);function pe(){}function _(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function he(a,e,t){var s=e.dir,u=t&&"parentNode"===s,l=B++;return e.first?function(e,t,n){for(;e=e[s];)if(1===e.nodeType||u)return a(e,t,n)}:function(e,t,n){var r,i,o=[S,l];if(n){for(;e=e[s];)if((1===e.nodeType||u)&&a(e,t,n))return!0}else for(;e=e[s];)if(1===e.nodeType||u){if((r=(i=(i=e[k]||(e[k]={}))[e.uniqueID]||(i[e.uniqueID]={}))[s])&&r[0]===S&&r[1]===l)return o[2]=r[2];if((i[s]=o)[2]=a(e,t,n))return!0}}}function ge(i){return 1<i.length?function(e,t,n){for(var r=i.length;r--;)if(!i[r](e,t,n))return!1;return!0}:i[0]}function me(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)!(o=e[s])||n&&!n(o,r,i)||(a.push(o),l&&t.push(s));return a}function ye(p,h,g,m,y,e){return m&&!m[k]&&(m=ye(m)),y&&!y[k]&&(y=ye(y,e)),q(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)H(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!p||!e&&h?c:me(c,s,p,n,r),d=g?y||(e?p:l||m)?[]:t:f;if(g&&g(f,d,n,r),m)for(i=me(d,u),m(i,[],n,r),o=i.length;o--;)(a=i[o])&&(d[u[o]]=!(f[u[o]]=a));if(e){if(y||p){if(y){for(i=[],o=d.length;o--;)(a=d[o])&&i.push(f[o]=a);y(null,d=[],i,r)}for(o=d.length;o--;)(a=d[o])&&-1<(i=y?j(e,a):s[o])&&(e[i]=!(t[i]=a))}}else d=me(d===t?d.splice(l,d.length):d),y?y(null,t,d,r):D.apply(t,d)})}return pe.prototype=b.filters=b.pseudos,b.setFilters=new pe,w=H.tokenize=function(e,t){var n,r,i,o,a,s,u,l=I[e+" "];if(l)return t?0:l.slice(0);for(a=e,s=[],u=b.preFilter;a;){for(o in n&&!(r=Q.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=Z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(L," ")}),a=a.slice(n.length)),b.filter)!(r=f[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?H.error(e):I(e,s).slice(0)},R=H.compile=function(e,t){var n,m,y,v,x,r,i=[],o=[],a=A[e+" "];if(!a){for(n=(t=t||w(e)).length;n--;)((a=function f(e){for(var r,t,n,i=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=he(function(e){return e===r},a,!0),l=he(function(e){return-1<j(r,e)},a,!0),c=[function(e,t,n){return e=!o&&(n||t!==T)||((r=t).nodeType?u:l)(e,t,n),r=null,e}];s<i;s++)if(t=b.relative[e[s].type])c=[he(ge(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<i&&!b.relative[e[n].type];n++);return ye(1<s&&ge(c),1<s&&_(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(L,"$1"),t,s<n&&f(e.slice(s,n)),n<i&&f(e=e.slice(n)),n<i&&_(e))}c.push(t)}return ge(c)}(t[n]))[k]?i:o).push(a);(a=A(e,(m=o,v=0<(y=i).length,x=0<m.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],d=T,p=e||x&&b.find.TAG("*",i),h=S+=null==d?1:Math.random()||.1,g=p.length;for(i&&(T=t===E||t||i);l!==g&&null!=(o=p[l]);l++){if(x&&o){for(a=0,t||o.ownerDocument===E||(C(o),n=!N);s=m[a++];)if(s(o,t||E,n)){r.push(o);break}i&&(S=h)}v&&((o=!s&&o)&&u--,e)&&c.push(o)}if(u+=l,v&&l!==u){for(a=0;s=y[a++];)s(c,f,t,n);if(e){if(0<u)for(;l--;)c[l]||f[l]||(f[l]=X.call(r));f=me(f)}D.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&H.uniqueSort(r)}return i&&(S=h,T=d),c},v?q(r):r))).selector=e}return a},P=H.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&w(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&g.getById&&9===t.nodeType&&N&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(d,p),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=f.needsContext.test(e)?0:o.length;i--&&(a=o[i],!b.relative[s=a.type]);)if((u=b.find[s])&&(r=u(a.matches[0].replace(d,p),ae.test(o[0].type)&&de(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&_(o))break;return D.apply(n,r),n}}return(l||R(e,c))(r,t,!N,n,!t||ae.test(e)&&de(t.parentNode)||t),n},g.sortStable=k.split("").sort($).join("")===k,g.detectDuplicates=!!l,C(),g.sortDetached=h(function(e){return 1&e.compareDocumentPosition(E.createElement("div"))}),h(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ce("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),g.attributes&&h(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ce("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),h(function(e){return null==e.getAttribute("disabled")})||ce(Y,function(e,t,n){if(!n)return!0===e[t]?t.toLowerCase():(n=e.getAttributeNode(t))&&n.specified?n.value:null}),H}(T),r=(C.find=e,C.expr=e.selectors,C.expr[":"]=C.expr.pseudos,C.uniqueSort=C.unique=e.uniqueSort,C.text=e.getText,C.isXMLDoc=e.isXML,C.contains=e.contains,function(e,t,n){for(var r=[],i=n!==undefined;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&C(e).is(n))break;r.push(e)}return r}),V=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},Y=C.expr.match.needsContext,J=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,G=/^.[^:#\[\.,]*$/;function K(e,n,r){if(C.isFunction(n))return C.grep(e,function(e,t){return!!n.call(e,t,e)!==r});if(n.nodeType)return C.grep(e,function(e){return e===n!==r});if("string"==typeof n){if(G.test(n))return C.filter(n,e,r);n=C.filter(n,e)}return C.grep(e,function(e){return-1<C.inArray(e,n)!==r})}C.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?C.find.matchesSelector(r,e)?[r]:[]:C.find.matches(e,C.grep(t,function(e){return 1===e.nodeType}))},C.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(C(e).filter(function(){for(t=0;t<i;t++)if(C.contains(r[t],this))return!0}));for(t=0;t<i;t++)C.find(e,r[t],n);return(n=this.pushStack(1<i?C.unique(n):n)).selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(K(this,e||[],!1))},not:function(e){return this.pushStack(K(this,e||[],!0))},is:function(e){return!!K(this,"string"==typeof e&&Y.test(e)?C(e):e||[],!1).length}});var Q,Z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ee=((C.fn.init=function(e,t,n){if(e){if(n=n||Q,"string"!=typeof e)return e.nodeType?(this.context=this[0]=e,this.length=1,this):C.isFunction(e)?"undefined"!=typeof n.ready?n.ready(e):e(C):(e.selector!==undefined&&(this.selector=e.selector,this.context=e.context),C.makeArray(e,this));if(!(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&3<=e.length?[null,e,null]:Z.exec(e))||!r[1]&&t)return(!t||t.jquery?t||n:this.constructor(t)).find(e);if(r[1]){if(t=t instanceof C?t[0]:t,C.merge(this,C.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:g,!0)),J.test(r[1])&&C.isPlainObject(t))for(var r in t)C.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r])}else{if((n=g.getElementById(r[2]))&&n.parentNode){if(n.id!==r[2])return Q.find(e);this.length=1,this[0]=n}this.context=g,this.selector=e}}return this}).prototype=C.fn,Q=C(g),/^(?:parents|prev(?:Until|All))/),te={children:!0,contents:!0,next:!0,prev:!0};function ne(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}C.fn.extend({has:function(e){var t,n=C(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(C.contains(this,n[t]))return!0})},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=Y.test(e)||"string"!=typeof e?C(e,t||this.context):0;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&C.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?C.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?C.inArray(this[0],C(e)):C.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(C.uniqueSort(C.merge(this.get(),C(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),C.each({parent:function(e){e=e.parentNode;return e&&11!==e.nodeType?e:null},parents:function(e){return r(e,"parentNode")},parentsUntil:function(e,t,n){return r(e,"parentNode",n)},next:function(e){return ne(e,"nextSibling")},prev:function(e){return ne(e,"previousSibling")},nextAll:function(e){return r(e,"nextSibling")},prevAll:function(e){return r(e,"previousSibling")},nextUntil:function(e,t,n){return r(e,"nextSibling",n)},prevUntil:function(e,t,n){return r(e,"previousSibling",n)},siblings:function(e){return V((e.parentNode||{}).firstChild,e)},children:function(e){return V(e.firstChild)},contents:function(e){return C.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:C.merge([],e.childNodes)}},function(r,i){C.fn[r]=function(e,t){var n=C.map(this,i,e);return(t="Until"!==r.slice(-5)?e:t)&&"string"==typeof t&&(n=C.filter(t,n)),1<this.length&&(te[r]||(n=C.uniqueSort(n)),ee.test(r))&&(n=n.reverse()),this.pushStack(n)}});var re,ie,E=/\S+/g;function oe(){g.addEventListener?(g.removeEventListener("DOMContentLoaded",i),T.removeEventListener("load",i)):(g.detachEvent("onreadystatechange",i),T.detachEvent("onload",i))}function i(){!g.addEventListener&&"load"!==T.event.type&&"complete"!==g.readyState||(oe(),C.ready())}for(ie in C.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},C.each(e.match(E)||[],function(e,t){n[t]=!0}),n):C.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=r.once,o=i=!0;u.length;l=-1)for(t=u.shift();++l<s.length;)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1);r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){C.each(e,function(e,t){C.isFunction(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==C.type(t)&&n(t)})}(arguments),t)&&!i&&c(),this},remove:function(){return C.each(arguments,function(e,t){for(var n;-1<(n=C.inArray(t,s,n));)s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<C.inArray(e,s):0<s.length},empty:function(){return s=s&&[],this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=!0,t||f.disable(),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i)||c(),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},C.extend({Deferred:function(e){var o=[["resolve","done",C.Callbacks("once memory"),"resolved"],["reject","fail",C.Callbacks("once memory"),"rejected"],["notify","progress",C.Callbacks("memory")]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},then:function(){var i=arguments;return C.Deferred(function(r){C.each(o,function(e,t){var n=C.isFunction(i[e])&&i[e];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&C.isFunction(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this===a?r.promise():this,n?[e]:arguments)})}),i=null}).promise()},promise:function(e){return null!=e?C.extend(e,a):a}},s={};return a.pipe=a.then,C.each(o,function(e,t){var n=t[2],r=t[3];a[t[1]]=n.add,r&&n.add(function(){i=r},o[1^e][2].disable,o[2][2].lock),s[t[0]]=function(){return s[t[0]+"With"](this===s?a:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var i,t,n,r=0,o=c.call(arguments),a=o.length,s=1!==a||e&&C.isFunction(e.promise)?a:0,u=1===s?e:C.Deferred(),l=function(t,n,r){return function(e){n[t]=this,r[t]=1<arguments.length?c.call(arguments):e,r===i?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(1<a)for(i=new Array(a),t=new Array(a),n=new Array(a);r<a;r++)o[r]&&C.isFunction(o[r].promise)?o[r].promise().progress(l(r,t,i)).done(l(r,n,o)).fail(u.reject):--s;return s||u.resolveWith(n,o),u.promise()}}),C.fn.ready=function(e){return C.ready.promise().done(e),this},C.extend({isReady:!1,readyWait:1,holdReady:function(e){e?C.readyWait++:C.ready(!0)},ready:function(e){(!0===e?--C.readyWait:C.isReady)||(C.isReady=!0)!==e&&0<--C.readyWait||(re.resolveWith(g,[C]),C.fn.triggerHandler&&(C(g).triggerHandler("ready"),C(g).off("ready")))}}),C.ready.promise=function(e){if(!re)if(re=C.Deferred(),"complete"===g.readyState||"loading"!==g.readyState&&!g.documentElement.doScroll)T.setTimeout(C.ready);else if(g.addEventListener)g.addEventListener("DOMContentLoaded",i),T.addEventListener("load",i);else{g.attachEvent("onreadystatechange",i),T.attachEvent("onload",i);var t=!1;try{t=null==T.frameElement&&g.documentElement}catch(n){}t&&t.doScroll&&!function r(){if(!C.isReady){try{t.doScroll("left")}catch(n){return T.setTimeout(r,50)}oe(),C.ready()}}()}return re.promise(e)},C.ready.promise(),C(y))break;y.ownFirst="0"===ie,y.inlineBlockNeedsLayout=!1,C(function(){var e,t,n=g.getElementsByTagName("body")[0];n&&n.style&&(e=g.createElement("div"),(t=g.createElement("div")).style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(t).appendChild(e),"undefined"!=typeof e.style.zoom&&(e.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",y.inlineBlockNeedsLayout=e=3===e.offsetWidth,e)&&(n.style.zoom=1),n.removeChild(t))});e=g.createElement("div");y.deleteExpando=!0;try{delete e.test}catch(yn){y.deleteExpando=!1}var o,v=function(e){var t=C.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return(1===n||9===n)&&(!t||!0!==t&&e.getAttribute("classid")===t)},ae=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,se=/([A-Z])/g;function ue(e,t,n){if(n===undefined&&1===e.nodeType){var r="data-"+t.replace(se,"-$1").toLowerCase();if("string"==typeof(n=e.getAttribute(r))){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:ae.test(n)?C.parseJSON(n):n)}catch(i){}C.data(e,t,n)}else n=undefined}return n}function le(e){for(var t in e)if(("data"!==t||!C.isEmptyObject(e[t]))&&"toJSON"!==t)return;return 1}function ce(e,t,n,r){if(v(e)){var i,o=C.expando,a=e.nodeType,s=a?C.cache:e,u=a?e[o]:e[o]&&o;if(u&&s[u]&&(r||s[u].data)||n!==undefined||"string"!=typeof t)return s[u=u||(a?e[o]=f.pop()||C.guid++:o)]||(s[u]=a?{}:{toJSON:C.noop}),"object"!=typeof t&&"function"!=typeof t||(r?s[u]=C.extend(s[u],t):s[u].data=C.extend(s[u].data,t)),e=s[u],r||(e.data||(e.data={}),e=e.data),n!==undefined&&(e[C.camelCase(t)]=n),"string"==typeof t?null==(i=e[t])&&(i=e[C.camelCase(t)]):i=e,i}}function fe(e,t,n){if(v(e)){var r,i,o=e.nodeType,a=o?C.cache:e,s=o?e[C.expando]:C.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){i=(t=C.isArray(t)?t.concat(C.map(t,C.camelCase)):t in r||(t=C.camelCase(t))in r?[t]:t.split(" ")).length;for(;i--;)delete r[t[i]];if(n?!le(r):!C.isEmptyObject(r))return}(n||(delete a[s].data,le(a[s])))&&(o?C.cleanData([e],!0):y.deleteExpando||a!=a.window?delete a[s]:a[s]=undefined)}}}C.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return!!(e=e.nodeType?C.cache[e[C.expando]]:e[C.expando])&&!le(e)},data:function(e,t,n){return ce(e,t,n)},removeData:function(e,t){return fe(e,t)},_data:function(e,t,n){return ce(e,t,n,!0)},_removeData:function(e,t){return fe(e,t,!0)}}),C.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(e!==undefined)return"object"==typeof e?this.each(function(){C.data(this,e)}):1<arguments.length?this.each(function(){C.data(this,e,t)}):o?ue(o,e,C.data(o,e)):undefined;if(this.length&&(i=C.data(o),1===o.nodeType)&&!C._data(o,"parsedAttrs")){for(n=a.length;n--;)a[n]&&0===(r=a[n].name).indexOf("data-")&&ue(o,r=C.camelCase(r.slice(5)),i[r]);C._data(o,"parsedAttrs",!0)}return i},removeData:function(e){return this.each(function(){C.removeData(this,e)})}}),C.extend({queue:function(e,t,n){var r;if(e)return r=C._data(e,t=(t||"fx")+"queue"),n&&(!r||C.isArray(n)?r=C._data(e,t,C.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=C.queue(e,t),r=n.length,i=n.shift(),o=C._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){C.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return C._data(e,n)||C._data(e,n,{empty:C.Callbacks("once memory").add(function(){C._removeData(e,t+"queue"),C._removeData(e,n)})})}}),C.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?C.queue(this[0],t):n===undefined?this:this.each(function(){var e=C.queue(this,t,n);C._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&C.dequeue(this,t)})},dequeue:function(e){return this.each(function(){C.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=C.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=undefined),e=e||"fx";a--;)(n=C._data(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}}),y.shrinkWrapBlocks=function(){var e,t,n;return null!=o?o:(o=!1,(t=g.getElementsByTagName("body")[0])&&t.style?(e=g.createElement("div"),(n=g.createElement("div")).style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",t.appendChild(n).appendChild(e),"undefined"!=typeof e.style.zoom&&(e.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",e.appendChild(g.createElement("div")).style.width="5px",o=3!==e.offsetWidth),t.removeChild(n),o):void 0)};var e=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,de=new RegExp("^(?:([+-])=|)("+e+")([a-z%]*)$","i"),s=["Top","Right","Bottom","Left"],pe=function(e,t){return"none"===C.css(e=t||e,"display")||!C.contains(e.ownerDocument,e)};function he(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return C.css(e,t,"")},u=s(),l=n&&n[3]||(C.cssNumber[t]?"":"px"),c=(C.cssNumber[t]||"px"!==l&&+u)&&de.exec(C.css(e,t));if(c&&c[3]!==l)for(l=l||c[3],n=n||[],c=+u||1;c/=o=o||".5",C.style(e,t,c+l),o!==(o=s()/u)&&1!==o&&--a;);return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r)&&(r.unit=l,r.start=c,r.end=i),i}var d=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===C.type(n))for(s in i=!0,n)d(e,t,s,n[s],!0,o,a);else if(r!==undefined&&(i=!0,C.isFunction(r)||(a=!0),t=l?a?(t.call(e,r),null):(l=t,function(e,t,n){return l.call(C(e),n)}):t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},ge=/^(?:checkbox|radio)$/i,me=/<([\w:-]+)/,ye=/^$|\/(?:java|ecma)script/i,ve=/^\s+/,xe="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function be(e){var t=xe.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}S=g.createElement("div"),k=g.createDocumentFragment(),q=g.createElement("input"),S.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",y.leadingWhitespace=3===S.firstChild.nodeType,y.tbody=!S.getElementsByTagName("tbody").length,y.htmlSerialize=!!S.getElementsByTagName("link").length,y.html5Clone="<:nav></:nav>"!==g.createElement("nav").cloneNode(!0).outerHTML,q.type="checkbox",q.checked=!0,k.appendChild(q),y.appendChecked=q.checked,S.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!S.cloneNode(!0).lastChild.defaultValue,k.appendChild(S),(q=g.createElement("input")).setAttribute("type","radio"),q.setAttribute("checked","checked"),q.setAttribute("name","t"),S.appendChild(q),y.checkClone=S.cloneNode(!0).cloneNode(!0).lastChild.checked,y.noCloneEvent=!!S.addEventListener,S[C.expando]=1,y.attributes=!S.getAttribute(C.expando);var x={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:y.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]};function b(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):undefined;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||C.nodeName(r,t)?o.push(r):C.merge(o,b(r,t));return t===undefined||t&&C.nodeName(e,t)?C.merge([e],o):o}function we(e,t){for(var n,r=0;null!=(n=e[r]);r++)C._data(n,"globalEval",!t||C._data(t[r],"globalEval"))}x.optgroup=x.option,x.tbody=x.tfoot=x.colgroup=x.caption=x.thead,x.th=x.td;var Te=/<|&#?\w+;/,Ce=/<tbody/i;function Ee(e){ge.test(e.type)&&(e.defaultChecked=e.checked)}function Ne(e,t,n,r,i){for(var o,a,s,u,l,c,f,d=e.length,p=be(t),h=[],g=0;g<d;g++)if((a=e[g])||0===a)if("object"===C.type(a))C.merge(h,a.nodeType?[a]:a);else if(Te.test(a)){for(u=u||p.appendChild(t.createElement("div")),l=(me.exec(a)||["",""])[1].toLowerCase(),f=x[l]||x._default,u.innerHTML=f[1]+C.htmlPrefilter(a)+f[2],o=f[0];o--;)u=u.lastChild;if(!y.leadingWhitespace&&ve.test(a)&&h.push(t.createTextNode(ve.exec(a)[0])),!y.tbody)for(o=(a="table"!==l||Ce.test(a)?"<table>"!==f[1]||Ce.test(a)?0:u:u.firstChild)&&a.childNodes.length;o--;)C.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(C.merge(h,u.childNodes),u.textContent="";u.firstChild;)u.removeChild(u.firstChild);u=p.lastChild}else h.push(t.createTextNode(a));for(u&&p.removeChild(u),y.appendChecked||C.grep(b(h,"input"),Ee),g=0;a=h[g++];)if(r&&-1<C.inArray(a,r))i&&i.push(a);else if(s=C.contains(a.ownerDocument,a),u=b(p.appendChild(a),"script"),s&&we(u),n)for(o=0;a=u[o++];)ye.test(a.type||"")&&n.push(a);return u=null,p}var ke,Se,Ae=g.createElement("div");for(ke in{submit:!0,change:!0,focusin:!0})(y[ke]=(Se="on"+ke)in T)||(Ae.setAttribute(Se,"t"),y[ke]=!1===Ae.attributes[Se].expando);var De=/^(?:input|select|textarea)$/i,je=/^key/,Le=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,He=/^(?:focusinfocus|focusoutblur)$/,qe=/^([^.]*)(?:\.(.+)|)/;function _e(){return!0}function u(){return!1}function Fe(){try{return g.activeElement}catch(e){}}function Me(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=undefined),t)Me(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=undefined):null==i&&("string"==typeof n?(i=r,r=undefined):(i=r,r=n,n=undefined)),!1===i)i=u;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return C().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=C.guid++)),e.each(function(){C.event.add(this,t,i,r,n)})}C.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,d,p,h=C._data(e);if(h)for(n.handler&&(n=(s=n).handler,i=s.selector),n.guid||(n.guid=C.guid++),o=(o=h.events)||(h.events={}),(l=h.handle)||((l=h.handle=function(e){return void 0===C||e&&C.event.triggered===e.type?undefined:C.event.dispatch.apply(l.elem,arguments)}).elem=e),a=(t=(t||"").match(E)||[""]).length;a--;)f=p=(d=qe.exec(t[a])||[])[1],d=(d[2]||"").split(".").sort(),f&&(u=C.event.special[f]||{},f=(i?u.delegateType:u.bindType)||f,u=C.event.special[f]||{},p=C.extend({type:f,origType:p,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&C.expr.match.needsContext.test(i),namespace:d.join(".")},s),(c=o[f])||((c=o[f]=[]).delegateCount=0,u.setup&&!1!==u.setup.call(e,r,d,l))||(e.addEventListener?e.addEventListener(f,l,!1):e.attachEvent&&e.attachEvent("on"+f,l)),u.add&&(u.add.call(e,p),p.handler.guid||(p.handler.guid=n.guid)),i?c.splice(c.delegateCount++,0,p):c.push(p),C.event.global[f]=!0)},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,d,p,h,g,m=C.hasData(e)&&C._data(e);if(m&&(c=m.events)){for(l=(t=(t||"").match(E)||[""]).length;l--;)if(p=g=(s=qe.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),p){for(f=C.event.special[p]||{},d=c[p=(r?f.delegateType:f.bindType)||p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=d.length;o--;)a=d[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(d.splice(o,1),a.selector&&d.delegateCount--,f.remove&&f.remove.call(e,a));u&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,h,m.handle)||C.removeEvent(e,p,m.handle),delete c[p])}else for(p in c)C.event.remove(e,p+t[l],n,r,!0);C.isEmptyObject(c)&&(delete m.handle,C._removeData(e,"events"))}},trigger:function(e,t,n,r){var i,o,a,s,u,l,c=[n||g],f=m.call(e,"type")?e.type:e,d=m.call(e,"namespace")?e.namespace.split("."):[],p=u=n=n||g;if(3!==n.nodeType&&8!==n.nodeType&&!He.test(f+C.event.triggered)&&(-1<f.indexOf(".")&&(f=(d=f.split(".")).shift(),d.sort()),o=f.indexOf(":")<0&&"on"+f,(e=e[C.expando]?e:new C.Event(f,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=d.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=undefined,e.target||(e.target=n),t=null==t?[e]:C.makeArray(t,[e]),s=C.event.special[f]||{},r||!s.trigger||!1!==s.trigger.apply(n,t))){if(!r&&!s.noBubble&&!C.isWindow(n)){for(a=s.delegateType||f,He.test(a+f)||(p=p.parentNode);p;p=p.parentNode)c.push(p),u=p;u===(n.ownerDocument||g)&&c.push(u.defaultView||u.parentWindow||T)}for(l=0;(p=c[l++])&&!e.isPropagationStopped();)e.type=1<l?a:s.bindType||f,(i=(C._data(p,"events")||{})[e.type]&&C._data(p,"handle"))&&i.apply(p,t),(i=o&&p[o])&&i.apply&&v(p)&&(e.result=i.apply(p,t),!1===e.result)&&e.preventDefault();if(e.type=f,!r&&!e.isDefaultPrevented()&&(!s._default||!1===s._default.apply(c.pop(),t))&&v(n)&&o&&n[f]&&!C.isWindow(n)){(u=n[o])&&(n[o]=null),C.event.triggered=f;try{n[f]()}catch(h){}C.event.triggered=undefined,u&&(n[o]=u)}return e.result}},dispatch:function(e){e=C.event.fix(e);var t,n,r,i,o,a=c.call(arguments),s=(C._data(this,"events")||{})[e.type]||[],u=C.event.special[e.type]||{};if((a[0]=e).delegateTarget=this,!u.preDispatch||!1!==u.preDispatch.call(this,e)){for(o=C.event.handlers.call(this,e,s),t=0;(r=o[t++])&&!e.isPropagationStopped();)for(e.currentTarget=r.elem,n=0;(i=r.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(i.namespace)||(e.handleObj=i,e.data=i.data,(i=((C.event.special[i.origType]||{}).handle||i.handler).apply(r.elem,a))!==undefined&&!1===(e.result=i)&&(e.preventDefault(),e.stopPropagation()));return u.postDispatch&&u.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(!0!==u.disabled||"click"!==e.type)){for(r=[],n=0;n<s;n++)r[i=(o=t[n]).selector+" "]===undefined&&(r[i]=o.needsContext?-1<C(i,this).index(u):C.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&a.push({elem:u,handlers:r})}return s<t.length&&a.push({elem:this,handlers:t.slice(s)}),a},fix:function(e){if(e[C.expando])return e;var t,n,r,i=e.type,o=e,a=this.fixHooks[i];for(a||(this.fixHooks[i]=a=Le.test(i)?this.mouseHooks:je.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new C.Event(o),t=r.length;t--;)e[n=r[t]]=o[n];return e.target||(e.target=o.srcElement||g),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,a.filter?a.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i=t.button,o=t.fromElement;return null==e.pageX&&null!=t.clientX&&(r=(n=e.target.ownerDocument||g).documentElement,n=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||n&&n.scrollLeft||0)-(r&&r.clientLeft||n&&n.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||n&&n.scrollTop||0)-(r&&r.clientTop||n&&n.clientTop||0)),!e.relatedTarget&&o&&(e.relatedTarget=o===e.target?t.toElement:o),e.which||i===undefined||(e.which=1&i?1:2&i?3:4&i?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Fe()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){if(this===Fe()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if(C.nodeName(this,"input")&&"checkbox"===this.type&&this.click)return this.click(),!1},_default:function(e){return C.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==undefined&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n){e=C.extend(new C.Event,n,{type:e,isSimulated:!0});C.event.trigger(e,null,t),e.isDefaultPrevented()&&n.preventDefault()}},C.removeEvent=g.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)}:function(e,t,n){t="on"+t;e.detachEvent&&("undefined"==typeof e[t]&&(e[t]=null),e.detachEvent(t,n))},C.Event=function(e,t){if(!(this instanceof C.Event))return new C.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.defaultPrevented===undefined&&!1===e.returnValue?_e:u):this.type=e,t&&C.extend(this,t),this.timeStamp=e&&e.timeStamp||C.now(),this[C.expando]=!0},C.Event.prototype={constructor:C.Event,isDefaultPrevented:u,isPropagationStopped:u,isImmediatePropagationStopped:u,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=_e,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=_e,e&&!this.isSimulated&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=_e,e&&e.stopImmediatePropagation&&e.stopImmediatePropagation(),this.stopPropagation()}},C.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){C.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||C.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),y.submit||(C.event.special.submit={setup:function(){if(C.nodeName(this,"form"))return!1;C.event.add(this,"click._submit keypress._submit",function(e){e=e.target,e=C.nodeName(e,"input")||C.nodeName(e,"button")?C.prop(e,"form"):undefined;e&&!C._data(e,"submit")&&(C.event.add(e,"submit._submit",function(e){e._submitBubble=!0}),C._data(e,"submit",!0))})},postDispatch:function(e){e._submitBubble&&(delete e._submitBubble,this.parentNode)&&!e.isTrigger&&C.event.simulate("submit",this.parentNode,e)},teardown:function(){if(C.nodeName(this,"form"))return!1;C.event.remove(this,"._submit")}}),y.change||(C.event.special.change={setup:function(){if(De.test(this.nodeName))return"checkbox"!==this.type&&"radio"!==this.type||(C.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._justChanged=!0)}),C.event.add(this,"click._change",function(e){this._justChanged&&!e.isTrigger&&(this._justChanged=!1),C.event.simulate("change",this,e)})),!1;C.event.add(this,"beforeactivate._change",function(e){e=e.target;De.test(e.nodeName)&&!C._data(e,"change")&&(C.event.add(e,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||C.event.simulate("change",this.parentNode,e)}),C._data(e,"change",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||"radio"!==t.type&&"checkbox"!==t.type)return e.handleObj.handler.apply(this,arguments)},teardown:function(){return C.event.remove(this,"._change"),!De.test(this.nodeName)}}),y.focusin||C.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){C.event.simulate(r,e.target,C.event.fix(e))};C.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=C._data(e,r);t||e.addEventListener(n,i,!0),C._data(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=C._data(e,r)-1;t?C._data(e,r,t):(e.removeEventListener(n,i,!0),C._removeData(e,r))}}}),C.fn.extend({on:function(e,t,n,r){return Me(this,e,t,n,r)},one:function(e,t,n,r){return Me(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)r=e.handleObj,C(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler);else{if("object"!=typeof e)return!1!==t&&"function"!=typeof t||(n=t,t=undefined),!1===n&&(n=u),this.each(function(){C.event.remove(this,e,n,t)});for(i in e)this.off(i,t,e[i])}return this},trigger:function(e,t){return this.each(function(){C.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return C.event.trigger(e,t,n,!0)}});var Oe=/ jQuery\d+="(?:null|\d+)"/g,Re=new RegExp("<(?:"+xe+")[\\s/>]","i"),Pe=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,Be=/<script|<style|<link/i,We=/checked\s*(?:[^=]|=\s*.checked.)/i,Ie=/^true\/(.*)/,$e=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ze=be(g).appendChild(g.createElement("div"));function Xe(e,t){return C.nodeName(e,"table")&&C.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ue(e){return e.type=(null!==C.find.attr(e,"type"))+"/"+e.type,e}function Ve(e){var t=Ie.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Ye(e,t){if(1===t.nodeType&&C.hasData(e)){var n,r,i,e=C._data(e),o=C._data(t,e),a=e.events;if(a)for(n in delete o.handle,o.events={},a)for(r=0,i=a[n].length;r<i;r++)C.event.add(t,n,a[n][r]);o.data&&(o.data=C.extend({},o.data))}}function w(n,r,i,o){r=O.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,d=f-1,p=r[0],h=C.isFunction(p);if(h||1<f&&"string"==typeof p&&!y.checkClone&&We.test(p))return n.each(function(e){var t=n.eq(e);h&&(r[0]=p.call(this,e,t.html())),w(t,r,i,o)});if(f&&(e=(l=Ne(r,n[0].ownerDocument,!1,n,o)).firstChild,1===l.childNodes.length&&(l=e),e||o)){for(a=(s=C.map(b(l,"script"),Ue)).length;c<f;c++)t=l,c!==d&&(t=C.clone(t,!0,!0),a)&&C.merge(s,b(t,"script")),i.call(n[c],t,c);if(a)for(u=s[s.length-1].ownerDocument,C.map(s,Ve),c=0;c<a;c++)t=s[c],ye.test(t.type||"")&&!C._data(t,"globalEval")&&C.contains(u,t)&&(t.src?C._evalUrl&&C._evalUrl(t.src):C.globalEval((t.text||t.textContent||t.innerHTML||"").replace($e,"")));l=null}return n}function Je(e,t,n){for(var r,i=t?C.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||C.cleanData(b(r)),r.parentNode&&(n&&C.contains(r.ownerDocument,r)&&we(b(r,"script")),r.parentNode.removeChild(r));return e}C.extend({htmlPrefilter:function(e){return e.replace(Pe,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u=C.contains(e.ownerDocument,e);if(y.html5Clone||C.isXMLDoc(e)||!Re.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(ze.innerHTML=e.outerHTML,ze.removeChild(o=ze.firstChild)),!(y.noCloneEvent&&y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||C.isXMLDoc(e)))for(r=b(o),s=b(e),a=0;null!=(i=s[a]);++a)if(r[a]){f=c=l=p=d=void 0;var l,c,f,d=i,p=r[a];if(1===p.nodeType){if(l=p.nodeName.toLowerCase(),!y.noCloneEvent&&p[C.expando]){for(c in(f=C._data(p)).events)C.removeEvent(p,c,f.handle);p.removeAttribute(C.expando)}"script"===l&&p.text!==d.text?(Ue(p).text=d.text,Ve(p)):"object"===l?(p.parentNode&&(p.outerHTML=d.outerHTML),y.html5Clone&&d.innerHTML&&!C.trim(p.innerHTML)&&(p.innerHTML=d.innerHTML)):"input"===l&&ge.test(d.type)?(p.defaultChecked=p.checked=d.checked,p.value!==d.value&&(p.value=d.value)):"option"===l?p.defaultSelected=p.selected=d.defaultSelected:"input"!==l&&"textarea"!==l||(p.defaultValue=d.defaultValue)}}if(t)if(n)for(s=s||b(e),r=r||b(o),a=0;null!=(i=s[a]);a++)Ye(i,r[a]);else Ye(e,o);return 0<(r=b(o,"script")).length&&we(r,!u&&b(e,"script")),r=s=i=null,o},cleanData:function(e,t){for(var n,r,i,o,a=0,s=C.expando,u=C.cache,l=y.attributes,c=C.event.special;null!=(n=e[a]);a++)if((t||v(n))&&(o=(i=n[s])&&u[i])){if(o.events)for(r in o.events)c[r]?C.event.remove(n,r):C.removeEvent(n,r,o.handle);u[i]&&(delete u[i],l||"undefined"==typeof n.removeAttribute?n[s]=undefined:n.removeAttribute(s),f.push(i))}}}),C.fn.extend({domManip:w,detach:function(e){return Je(this,e,!0)},remove:function(e){return Je(this,e)},text:function(e){return d(this,function(e){return e===undefined?C.text(this):this.empty().append((this[0]&&this[0].ownerDocument||g).createTextNode(e))},null,e,arguments.length)},append:function(){return w(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Xe(this,e).appendChild(e)})},prepend:function(){return w(this,arguments,function(e){var t;1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(t=Xe(this,e)).insertBefore(e,t.firstChild)})},before:function(){return w(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return w(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&C.cleanData(b(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&C.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return C.clone(this,e,t)})},html:function(e){return d(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined)return 1===t.nodeType?t.innerHTML.replace(Oe,""):undefined;if("string"==typeof e&&!Be.test(e)&&(y.htmlSerialize||!Re.test(e))&&(y.leadingWhitespace||!ve.test(e))&&!x[(me.exec(e)||["",""])[1].toLowerCase()]){e=C.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(C.cleanData(b(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return w(this,arguments,function(e){var t=this.parentNode;C.inArray(this,n)<0&&(C.cleanData(b(this)),t)&&t.replaceChild(e,this)},n)}}),C.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){C.fn[e]=function(e){for(var t,n=0,r=[],i=C(e),o=i.length-1;n<=o;n++)t=n===o?this:this.clone(!0),C(i[n])[a](t),R.apply(r,t.get());return this.pushStack(r)}});var Ge,Ke={HTML:"block",BODY:"block"};function Qe(e,t){e=C(t.createElement(e)).appendTo(t.body),t=C.css(e[0],"display");return e.detach(),t}function Ze(e){var t=g,n=Ke[e];return n||("none"!==(n=Qe(e,t))&&n||((t=((Ge=(Ge||C("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement))[0].contentWindow||Ge[0].contentDocument).document).write(),t.close(),n=Qe(e,t),Ge.detach()),Ke[e]=n),n}var n,et,tt,nt,rt,it,ot,a,at=/^margin/,st=new RegExp("^("+e+")(?!px)[a-z%]+$","i"),ut=function(e,t,n,r){var i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.apply(e,r||[]),t)e.style[i]=o[i];return r},lt=g.documentElement;function t(){var e,t=g.documentElement;t.appendChild(ot),a.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",n=tt=it=!1,et=rt=!0,T.getComputedStyle&&(e=T.getComputedStyle(a),n="1%"!==(e||{}).top,it="2px"===(e||{}).marginLeft,tt="4px"===(e||{width:"4px"}).width,a.style.marginRight="50%",et="4px"===(e||{marginRight:"4px"}).marginRight,(e=a.appendChild(g.createElement("div"))).style.cssText=a.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",e.style.marginRight=e.style.width="0",a.style.width="1px",rt=!parseFloat((T.getComputedStyle(e)||{}).marginRight),a.removeChild(e)),a.style.display="none",(nt=0===a.getClientRects().length)&&(a.style.display="",a.innerHTML="<table><tr><td></td><td>t</td></tr></table>",a.childNodes[0].style.borderCollapse="separate",(e=a.getElementsByTagName("td"))[0].style.cssText="margin:0;border:0;padding:0;display:none",nt=0===e[0].offsetHeight)&&(e[0].style.display="",e[1].style.display="none",nt=0===e[0].offsetHeight),t.removeChild(ot)}ot=g.createElement("div"),(a=g.createElement("div")).style&&(a.style.cssText="float:left;opacity:.5",y.opacity="0.5"===a.style.opacity,y.cssFloat=!!a.style.cssFloat,a.style.backgroundClip="content-box",a.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===a.style.backgroundClip,(ot=g.createElement("div")).style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",a.innerHTML="",ot.appendChild(a),y.boxSizing=""===a.style.boxSizing||""===a.style.MozBoxSizing||""===a.style.WebkitBoxSizing,C.extend(y,{reliableHiddenOffsets:function(){return null==n&&t(),nt},boxSizingReliable:function(){return null==n&&t(),tt},pixelMarginRight:function(){return null==n&&t(),et},pixelPosition:function(){return null==n&&t(),n},reliableMarginRight:function(){return null==n&&t(),rt},reliableMarginLeft:function(){return null==n&&t(),it}}));var l,p,ct=/^(top|right|bottom|left)$/;function ft(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}T.getComputedStyle?(l=function(e){var t=e.ownerDocument.defaultView;return(t=t&&t.opener?t:T).getComputedStyle(e)},p=function(e,t,n){var r,i,o=e.style;return""!==(i=(n=n||l(e))?n.getPropertyValue(t)||n[t]:undefined)&&i!==undefined||C.contains(e.ownerDocument,e)||(i=C.style(e,t)),n&&!y.pixelMarginRight()&&st.test(i)&&at.test(t)&&(e=o.width,t=o.minWidth,r=o.maxWidth,o.minWidth=o.maxWidth=o.width=i,i=n.width,o.width=e,o.minWidth=t,o.maxWidth=r),i===undefined?i:i+""}):lt.currentStyle&&(l=function(e){return e.currentStyle},p=function(e,t,n){var r,i,o,a=e.style;return null==(n=(n=n||l(e))?n[t]:undefined)&&a&&a[t]&&(n=a[t]),st.test(n)&&!ct.test(t)&&(r=a.left,(o=(i=e.runtimeStyle)&&i.left)&&(i.left=e.currentStyle.left),a.left="fontSize"===t?"1em":n,n=a.pixelLeft+"px",a.left=r,o)&&(i.left=o),n===undefined?n:n+""||"auto"});var dt=/alpha\([^)]*\)/i,pt=/opacity\s*=\s*([^)]*)/i,ht=/^(none|table(?!-c[ea]).+)/,gt=new RegExp("^("+e+")(.*)$","i"),mt={position:"absolute",visibility:"hidden",display:"block"},yt={letterSpacing:"0",fontWeight:"400"},vt=["Webkit","O","Moz","ms"],xt=g.createElement("div").style;function bt(e){if(e in xt)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=vt.length;n--;)if((e=vt[n]+t)in xt)return e}function wt(e,t){for(var n,r,i,o=[],a=0,s=e.length;a<s;a++)(r=e[a]).style&&(o[a]=C._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&pe(r)&&(o[a]=C._data(r,"olddisplay",Ze(r.nodeName)))):(i=pe(r),(n&&"none"!==n||!i)&&C._data(r,"olddisplay",i?n:C.css(r,"display"))));for(a=0;a<s;a++)!(r=e[a]).style||t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none");return e}function Tt(e,t,n){var r=gt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function Ct(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;o<4;o+=2)"margin"===n&&(a+=C.css(e,n+s[o],!0,i)),r?("content"===n&&(a-=C.css(e,"padding"+s[o],!0,i)),"margin"!==n&&(a-=C.css(e,"border"+s[o]+"Width",!0,i))):(a+=C.css(e,"padding"+s[o],!0,i),"padding"!==n&&(a+=C.css(e,"border"+s[o]+"Width",!0,i)));return a}function Et(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=l(e),a=y.boxSizing&&"border-box"===C.css(e,"boxSizing",!1,o);if(i<=0||null==i){if(((i=p(e,t,o))<0||null==i)&&(i=e.style[t]),st.test(i))return i;r=a&&(y.boxSizingReliable()||i===e.style[t]),i=parseFloat(i)||0}return i+Ct(e,t,n||(a?"border":"content"),r,o)+"px"}function h(e,t,n,r,i){return new h.prototype.init(e,t,n,r,i)}C.extend({cssHooks:{opacity:{get:function(e,t){if(t)return""===(t=p(e,"opacity"))?"1":t}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":y.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=C.camelCase(t),u=e.style;if(t=C.cssProps[s]||(C.cssProps[s]=bt(s)||s),a=C.cssHooks[t]||C.cssHooks[s],n===undefined)return a&&"get"in a&&(i=a.get(e,!1,r))!==undefined?i:u[t];if("string"===(o=typeof n)&&(i=de.exec(n))&&i[1]&&(n=he(e,t,i),o="number"),null!=n&&n==n&&("number"===o&&(n+=i&&i[3]||(C.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),!(a&&"set"in a&&(n=a.set(e,n,r))===undefined)))try{u[t]=n}catch(l){}}},css:function(e,t,n,r){var i,o=C.camelCase(t);return t=C.cssProps[o]||(C.cssProps[o]=bt(o)||o),"normal"===(i=(i=(o=C.cssHooks[t]||C.cssHooks[o])&&"get"in o?o.get(e,!0,n):i)===undefined?p(e,t,r):i)&&t in yt&&(i=yt[t]),(""===n||n)&&(o=parseFloat(i),!0===n||isFinite(o))?o||0:i}}),C.each(["height","width"],function(e,i){C.cssHooks[i]={get:function(e,t,n){if(t)return ht.test(C.css(e,"display"))&&0===e.offsetWidth?ut(e,mt,function(){return Et(e,i,n)}):Et(e,i,n)},set:function(e,t,n){var r=n&&l(e);return Tt(0,t,n?Ct(e,i,n,y.boxSizing&&"border-box"===C.css(e,"boxSizing",!1,r),r):0)}}}),y.opacity||(C.cssHooks.opacity={get:function(e,t){return pt.test((t&&e.currentStyle?e.currentStyle:e.style).filter||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,e=e.currentStyle,r=C.isNumeric(t)?"alpha(opacity="+100*t+")":"",i=e&&e.filter||n.filter||"";((n.zoom=1)<=t||""===t)&&""===C.trim(i.replace(dt,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||e&&!e.filter)||(n.filter=dt.test(i)?i.replace(dt,r):i+" "+r)}}),C.cssHooks.marginRight=ft(y.reliableMarginRight,function(e,t){if(t)return ut(e,{display:"inline-block"},p,[e,"marginRight"])}),C.cssHooks.marginLeft=ft(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(p(e,"marginLeft"))||(C.contains(e.ownerDocument,e)?e.getBoundingClientRect().left-ut(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}):0))+"px"}),C.each({margin:"",padding:"",border:"Width"},function(i,o){C.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+s[t]+o]=r[t]||r[t-2]||r[0];return n}},at.test(i)||(C.cssHooks[i+o].set=Tt)}),C.fn.extend({css:function(e,t){return d(this,function(e,t,n){var r,i,o={},a=0;if(C.isArray(t)){for(r=l(e),i=t.length;a<i;a++)o[t[a]]=C.css(e,t[a],!1,r);return o}return n!==undefined?C.style(e,t,n):C.css(e,t)},e,t,1<arguments.length)},show:function(){return wt(this,!0)},hide:function(){return wt(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){pe(this)?C(this).show():C(this).hide()})}}),((C.Tween=h).prototype={constructor:h,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||C.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(C.cssNumber[n]?"":"px")},cur:function(){var e=h.propHooks[this.prop];return(e&&e.get?e:h.propHooks._default).get(this)},run:function(e){var t,n=h.propHooks[this.prop];return this.options.duration?this.pos=t=C.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),(n&&n.set?n:h.propHooks._default).set(this),this}}).init.prototype=h.prototype,(h.propHooks={_default:{get:function(e){return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(e=C.css(e.elem,e.prop,""))&&"auto"!==e?e:0},set:function(e){C.fx.step[e.prop]?C.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[C.cssProps[e.prop]]&&!C.cssHooks[e.prop]?e.elem[e.prop]=e.now:C.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=h.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},C.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},C.fx=h.prototype.init,C.fx.step={};var N,Nt,k,S,kt=/^(?:toggle|show|hide)$/,St=/queueHooks$/;function At(){return T.setTimeout(function(){N=undefined}),N=C.now()}function Dt(e,t){var n,r={height:e},i=0;for(t=t?1:0;i<4;i+=2-t)r["margin"+(n=s[i])]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function jt(e,t,n){for(var r,i=(A.tweeners[t]||[]).concat(A.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function A(i,e,t){var n,o,r,a,s,u,l,c=0,f=A.prefilters.length,d=C.Deferred().always(function(){delete p.elem}),p=function(){if(o)return!1;for(var e=N||At(),e=Math.max(0,h.startTime+h.duration-e),t=1-(e/h.duration||0),n=0,r=h.tweens.length;n<r;n++)h.tweens[n].run(t);return d.notifyWith(i,[h,t,e]),t<1&&r?e:(d.resolveWith(i,[h]),!1)},h=d.promise({elem:i,props:C.extend({},e),opts:C.extend(!0,{specialEasing:{},easing:C.easing._default},t),originalProperties:e,originalOptions:t,startTime:N||At(),duration:t.duration,tweens:[],createTween:function(e,t){t=C.Tween(i,h.opts,e,t,h.opts.specialEasing[e]||h.opts.easing);return h.tweens.push(t),t},stop:function(e){var t=0,n=e?h.tweens.length:0;if(!o){for(o=!0;t<n;t++)h.tweens[t].run(1);e?(d.notifyWith(i,[h,1,0]),d.resolveWith(i,[h,e])):d.rejectWith(i,[h,e])}return this}}),g=h.props,m=g,y=h.opts.specialEasing;for(r in m)if(s=y[a=C.camelCase(r)],u=m[r],C.isArray(u)&&(s=u[1],u=m[r]=u[0]),r!==a&&(m[a]=u,delete m[r]),(l=C.cssHooks[a])&&"expand"in l)for(r in u=l.expand(u),delete m[a],u)r in m||(m[r]=u[r],y[r]=s);else y[a]=s;for(;c<f;c++)if(n=A.prefilters[c].call(h,i,g,h.opts))return C.isFunction(n.stop)&&(C._queueHooks(h.elem,h.opts.queue).stop=C.proxy(n.stop,n)),n;return C.map(g,jt,h),C.isFunction(h.opts.start)&&h.opts.start.call(i,h),C.fx.timer(C.extend(p,{elem:i,anim:h,queue:h.opts.queue})),h.progress(h.opts.progress).done(h.opts.done,h.opts.complete).fail(h.opts.fail).always(h.opts.always)}C.Animation=C.extend(A,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return he(n.elem,e,de.exec(t),n),n}]},tweener:function(e,t){for(var n,r=0,i=(e=C.isFunction(e)?(t=e,["*"]):e.match(E)).length;r<i;r++)n=e[r],A.tweeners[n]=A.tweeners[n]||[],A.tweeners[n].unshift(t)},prefilters:[function(t,e,n){var r,i,o,a,s,u,l,c=this,f={},d=t.style,p=t.nodeType&&pe(t),h=C._data(t,"fxshow");for(r in n.queue||(null==(s=C._queueHooks(t,"fx")).unqueued&&(s.unqueued=0,u=s.empty.fire,s.empty.fire=function(){s.unqueued||u()}),s.unqueued++,c.always(function(){c.always(function(){s.unqueued--,C.queue(t,"fx").length||s.empty.fire()})})),1===t.nodeType&&("height"in e||"width"in e)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],"inline"===("none"===(l=C.css(t,"display"))?C._data(t,"olddisplay")||Ze(t.nodeName):l))&&"none"===C.css(t,"float")&&(y.inlineBlockNeedsLayout&&"inline"!==Ze(t.nodeName)?d.zoom=1:d.display="inline-block"),n.overflow&&(d.overflow="hidden",y.shrinkWrapBlocks()||c.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]})),e)if(i=e[r],kt.exec(i)){if(delete e[r],o=o||"toggle"===i,i===(p?"hide":"show")){if("show"!==i||!h||h[r]===undefined)continue;p=!0}f[r]=h&&h[r]||C.style(t,r)}else l=undefined;if(C.isEmptyObject(f))"inline"===("none"===l?Ze(t.nodeName):l)&&(d.display=l);else for(r in h?"hidden"in h&&(p=h.hidden):h=C._data(t,"fxshow",{}),o&&(h.hidden=!p),p?C(t).show():c.done(function(){C(t).hide()}),c.done(function(){for(var e in C._removeData(t,"fxshow"),f)C.style(t,e,f[e])}),f)a=jt(p?h[r]:0,r,c),r in h||(h[r]=a.start,p&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}],prefilter:function(e,t){t?A.prefilters.unshift(e):A.prefilters.push(e)}}),C.speed=function(e,t,n){var r=e&&"object"==typeof e?C.extend({},e):{complete:n||!n&&t||C.isFunction(e)&&e,duration:e,easing:n&&t||t&&!C.isFunction(t)&&t};return r.duration=C.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in C.fx.speeds?C.fx.speeds[r.duration]:C.fx.speeds._default,null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){C.isFunction(r.old)&&r.old.call(this),r.queue&&C.dequeue(this,r.queue)},r},C.fn.extend({fadeTo:function(e,t,n,r){return this.filter(pe).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=C.isEmptyObject(t),o=C.speed(e,n,r),e=function(){var e=A(this,C.extend({},t),o);(i||C._data(this,"finish"))&&e.stop(!0)};return e.finish=e,i||!1===o.queue?this.each(e):this.queue(o.queue,e)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=undefined),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=C.timers,r=C._data(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&St.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||C.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=C._data(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=C.timers,o=n?n.length:0;for(t.finish=!0,C.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),C.each(["toggle","show","hide"],function(e,r){var i=C.fn[r];C.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(Dt(r,!0),e,t,n)}}),C.each({slideDown:Dt("show"),slideUp:Dt("hide"),slideToggle:Dt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){C.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),C.timers=[],C.fx.tick=function(){var e,t=C.timers,n=0;for(N=C.now();n<t.length;n++)(e=t[n])()||t[n]!==e||t.splice(n--,1);t.length||C.fx.stop(),N=undefined},C.fx.timer=function(e){C.timers.push(e),e()?C.fx.start():C.timers.pop()},C.fx.interval=13,C.fx.start=function(){Nt=Nt||T.setInterval(C.fx.tick,C.fx.interval)},C.fx.stop=function(){T.clearInterval(Nt),Nt=null},C.fx.speeds={slow:600,fast:200,_default:400},C.fn.delay=function(r,e){return r=C.fx&&C.fx.speeds[r]||r,this.queue(e=e||"fx",function(e,t){var n=T.setTimeout(e,r);t.stop=function(){T.clearTimeout(n)}})},k=g.createElement("input"),q=g.createElement("div"),S=g.createElement("select"),e=S.appendChild(g.createElement("option")),(q=g.createElement("div")).setAttribute("className","t"),q.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",F=q.getElementsByTagName("a")[0],k.setAttribute("type","checkbox"),q.appendChild(k),(F=q.getElementsByTagName("a")[0]).style.cssText="top:1px",y.getSetAttribute="t"!==q.className,y.style=/top/.test(F.getAttribute("style")),y.hrefNormalized="/a"===F.getAttribute("href"),y.checkOn=!!k.value,y.optSelected=e.selected,y.enctype=!!g.createElement("form").enctype,S.disabled=!0,y.optDisabled=!e.disabled,(k=g.createElement("input")).setAttribute("value",""),y.input=""===k.getAttribute("value"),k.value="t",k.setAttribute("type","radio"),y.radioValue="t"===k.value;var Lt=/\r/g,Ht=/[\x20\t\r\n\f]+/g;C.fn.extend({val:function(t){var n,e,r,i=this[0];return arguments.length?(r=C.isFunction(t),this.each(function(e){1!==this.nodeType||(null==(e=r?t.call(this,e,C(this).val()):t)?e="":"number"==typeof e?e+="":C.isArray(e)&&(e=C.map(e,function(e){return null==e?"":e+""})),(n=C.valHooks[this.type]||C.valHooks[this.nodeName.toLowerCase()])&&"set"in n&&n.set(this,e,"value")!==undefined)||(this.value=e)})):i?(n=C.valHooks[i.type]||C.valHooks[i.nodeName.toLowerCase()])&&"get"in n&&(e=n.get(i,"value"))!==undefined?e:"string"==typeof(e=i.value)?e.replace(Lt,""):null==e?"":e:void 0}}),C.extend({valHooks:{option:{get:function(e){var t=C.find.attr(e,"value");return null!=t?t:C.trim(C.text(e)).replace(Ht," ")}},select:{get:function(e){for(var t,n=e.options,r=e.selectedIndex,i="select-one"===e.type||r<0,o=i?null:[],a=i?r+1:n.length,s=r<0?a:i?r:0;s<a;s++)if(((t=n[s]).selected||s===r)&&(y.optDisabled?!t.disabled:null===t.getAttribute("disabled"))&&(!t.parentNode.disabled||!C.nodeName(t.parentNode,"optgroup"))){if(t=C(t).val(),i)return t;o.push(t)}return o},set:function(e,t){for(var n,r,i=e.options,o=C.makeArray(t),a=i.length;a--;)if(r=i[a],-1<C.inArray(C.valHooks.option.get(r),o))try{r.selected=n=!0}catch(s){r.scrollHeight}else r.selected=!1;return n||(e.selectedIndex=-1),i}}}}),C.each(["radio","checkbox"],function(){C.valHooks[this]={set:function(e,t){if(C.isArray(t))return e.checked=-1<C.inArray(C(e).val(),t)}},y.checkOn||(C.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var D,qt,j=C.expr.attrHandle,_t=/^(?:checked|selected)$/i,L=y.getSetAttribute,Ft=y.input,Mt=(C.fn.extend({attr:function(e,t){return d(this,C.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){C.removeAttr(this,e)})}}),C.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?C.prop(e,t,n):(1===o&&C.isXMLDoc(e)||(t=t.toLowerCase(),i=C.attrHooks[t]||(C.expr.match.bool.test(t)?qt:D)),n!==undefined?null===n?void C.removeAttr(e,t):i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:(e.setAttribute(t,n+""),n):!(i&&"get"in i&&null!==(r=i.get(e,t)))&&null==(r=C.find.attr(e,t))?undefined:r)},attrHooks:{type:{set:function(e,t){var n;if(!y.radioValue&&"radio"===t&&C.nodeName(e,"input"))return n=e.value,e.setAttribute("type",t),n&&(e.value=n),t}}},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(E);if(o&&1===e.nodeType)for(;n=o[i++];)r=C.propFix[n]||n,C.expr.match.bool.test(n)?Ft&&L||!_t.test(n)?e[r]=!1:e[C.camelCase("default-"+n)]=e[r]=!1:C.attr(e,n,""),e.removeAttribute(L?n:r)}}),qt={set:function(e,t,n){return!1===t?C.removeAttr(e,n):Ft&&L||!_t.test(n)?e.setAttribute(!L&&C.propFix[n]||n,n):e[C.camelCase("default-"+n)]=e[n]=!0,n}},C.each(C.expr.match.bool.source.match(/\w+/g),function(e,t){var o=j[t]||C.find.attr;Ft&&L||!_t.test(t)?j[t]=function(e,t,n){var r,i;return n||(i=j[t],j[t]=r,r=null!=o(e,t,n)?t.toLowerCase():null,j[t]=i),r}:j[t]=function(e,t,n){if(!n)return e[C.camelCase("default-"+t)]?t.toLowerCase():null}}),Ft&&L||(C.attrHooks.value={set:function(e,t,n){if(!C.nodeName(e,"input"))return D&&D.set(e,t,n);e.defaultValue=t}}),L||(D={set:function(e,t,n){var r=e.getAttributeNode(n);if(r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="","value"===n||t===e.getAttribute(n))return t}},j.id=j.name=j.coords=function(e,t,n){if(!n)return(n=e.getAttributeNode(t))&&""!==n.value?n.value:null},C.valHooks.button={get:function(e,t){t=e.getAttributeNode(t);if(t&&t.specified)return t.value},set:D.set},C.attrHooks.contenteditable={set:function(e,t,n){D.set(e,""!==t&&t,n)}},C.each(["width","height"],function(e,n){C.attrHooks[n]={set:function(e,t){if(""===t)return e.setAttribute(n,"auto"),t}}})),y.style||(C.attrHooks.style={get:function(e){return e.style.cssText||undefined},set:function(e,t){return e.style.cssText=t+""}}),/^(?:input|select|textarea|button|object)$/i),Ot=/^(?:a|area)$/i,Rt=(C.fn.extend({prop:function(e,t){return d(this,C.prop,e,t,1<arguments.length)},removeProp:function(t){return t=C.propFix[t]||t,this.each(function(){try{this[t]=undefined,delete this[t]}catch(e){}})}}),C.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&C.isXMLDoc(e)||(t=C.propFix[t]||t,i=C.propHooks[t]),n!==undefined?i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=C.find.attr(e,"tabindex");return t?parseInt(t,10):Mt.test(e.nodeName)||Ot.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.hrefNormalized||C.each(["href","src"],function(e,t){C.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),y.optSelected||(C.propHooks.selected={get:function(e){e=e.parentNode;return e&&(e.selectedIndex,e.parentNode)&&e.parentNode.selectedIndex,null},set:function(e){e=e.parentNode;e&&(e.selectedIndex,e.parentNode)&&e.parentNode.selectedIndex}}),C.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){C.propFix[this.toLowerCase()]=this}),y.enctype||(C.propFix.enctype="encoding"),/[\t\r\n\f]/g);function H(e){return C.attr(e,"class")||""}C.fn.extend({addClass:function(t){var e,n,r,i,o,a,s=0;if(C.isFunction(t))return this.each(function(e){C(this).addClass(t.call(this,e,H(this)))});if("string"==typeof t&&t)for(e=t.match(E)||[];n=this[s++];)if(a=H(n),r=1===n.nodeType&&(" "+a+" ").replace(Rt," ")){for(o=0;i=e[o++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");a!==(a=C.trim(r))&&C.attr(n,"class",a)}return this},removeClass:function(t){var e,n,r,i,o,a,s=0;if(C.isFunction(t))return this.each(function(e){C(this).removeClass(t.call(this,e,H(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof t&&t)for(e=t.match(E)||[];n=this[s++];)if(a=H(n),r=1===n.nodeType&&(" "+a+" ").replace(Rt," ")){for(o=0;i=e[o++];)for(;-1<r.indexOf(" "+i+" ");)r=r.replace(" "+i+" "," ");a!==(a=C.trim(r))&&C.attr(n,"class",a)}return this},toggleClass:function(i,t){var o=typeof i;return"boolean"==typeof t&&"string"==o?t?this.addClass(i):this.removeClass(i):C.isFunction(i)?this.each(function(e){C(this).toggleClass(i.call(this,e,H(this),t),t)}):this.each(function(){var e,t,n,r;if("string"==o)for(t=0,n=C(this),r=i.match(E)||[];e=r[t++];)n.hasClass(e)?n.removeClass(e):n.addClass(e);else i!==undefined&&"boolean"!=o||((e=H(this))&&C._data(this,"__className__",e),C.attr(this,"class",!e&&!1!==i&&C._data(this,"__className__")||""))})},hasClass:function(e){for(var t,n=0,r=" "+e+" ";t=this[n++];)if(1===t.nodeType&&-1<(" "+H(t)+" ").replace(Rt," ").indexOf(r))return!0;return!1}}),C.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,n){C.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),C.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}});var q=T.location,Pt=C.now(),Bt=/\?/,Wt=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g,It=(C.parseJSON=function(e){var i,o,t;return T.JSON&&T.JSON.parse?T.JSON.parse(e+""):(o=null,(t=C.trim(e+""))&&!C.trim(t.replace(Wt,function(e,t,n,r){return 0===(o=i&&t?0:o)?e:(i=n||t,o+=!r-!n,"")}))?Function("return "+t)():C.error("Invalid JSON: "+e))},C.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{T.DOMParser?t=(new T.DOMParser).parseFromString(e,"text/xml"):((t=new T.ActiveXObject("Microsoft.XMLDOM"))["async"]="false",t.loadXML(e))}catch(n){t=undefined}return t&&t.documentElement&&!t.getElementsByTagName("parsererror").length||C.error("Invalid XML: "+e),t},/#.*$/),$t=/([?&])_=[^&]*/,zt=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Xt=/^(?:GET|HEAD)$/,Ut=/^\/\//,Vt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Yt={},Jt={},Gt="*/".concat("*"),Kt=q.href,_=Vt.exec(Kt.toLowerCase())||[];function Qt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(E)||[];if(C.isFunction(t))for(;n=i[r++];)"+"===n.charAt(0)?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Zt(t,r,i,o){var a={},s=t===Jt;function u(e){var n;return a[e]=!0,C.each(t[e]||[],function(e,t){t=t(r,i,o);return"string"!=typeof t||s||a[t]?s?!(n=t):void 0:(r.dataTypes.unshift(t),u(t),!1)}),n}return u(r.dataTypes[0])||!a["*"]&&u("*")}function en(e,t){var n,r,i=C.ajaxSettings.flatOptions||{};for(r in t)t[r]!==undefined&&((i[r]?e:n=n||{})[r]=t[r]);return n&&C.extend(!0,e,n),e}function tn(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(f){return{state:"parsererror",error:a?f:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}function nn(e){if(!C.contains(e.ownerDocument||g,e))return!0;for(;e&&1===e.nodeType;){if("none"===((t=e).style&&t.style.display||C.css(t,"display"))||"hidden"===e.type)return!0;e=e.parentNode}var t;return!1}C.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Kt,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(_[1]),global:!0,processData:!0,"async":!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Gt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":C.parseJSON,"text xml":C.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?en(en(e,C.ajaxSettings),t):en(C.ajaxSettings,e)},ajaxPrefilter:Qt(Yt),ajaxTransport:Qt(Jt),ajax:function(e,t){"object"==typeof e&&(t=e,e=undefined);var n,u,l,c,f,d,r,p=C.ajaxSetup({},t=t||{}),h=p.context||p,g=p.context&&(h.nodeType||h.jquery)?C(h):C.event,m=C.Deferred(),y=C.Callbacks("once memory"),v=p.statusCode||{},i={},o={},x=0,a="canceled",b={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!r)for(r={};t=zt.exec(l);)r[t[1].toLowerCase()]=t[2];t=r[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?l:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=o[n]=o[n]||e,i[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){if(e)if(x<2)for(var t in e)v[t]=[v[t],e[t]];else b.always(e[b.status]);return this},abort:function(e){e=e||a;return d&&d.abort(e),s(0,e),this}};if(m.promise(b).complete=y.add,b.success=b.done,b.error=b.fail,p.url=((e||p.url||Kt)+"").replace(It,"").replace(Ut,_[1]+"//"),p.type=t.method||t.type||p.method||p.type,p.dataTypes=C.trim(p.dataType||"*").toLowerCase().match(E)||[""],null==p.crossDomain&&(e=Vt.exec(p.url.toLowerCase()),p.crossDomain=!(!e||e[1]===_[1]&&e[2]===_[2]&&(e[3]||("http:"===e[1]?"80":"443"))===(_[3]||("http:"===_[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=C.param(p.data,p.traditional)),Zt(Yt,p,t,b),2!==x){for(n in(f=C.event&&p.global)&&0==C.active++&&C.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Xt.test(p.type),u=p.url,p.hasContent||(p.data&&(u=p.url+=(Bt.test(u)?"&":"?")+p.data,delete p.data),!1===p.cache&&(p.url=$t.test(u)?u.replace($t,"$1_="+Pt++):u+(Bt.test(u)?"&":"?")+"_="+Pt++)),p.ifModified&&(C.lastModified[u]&&b.setRequestHeader("If-Modified-Since",C.lastModified[u]),C.etag[u])&&b.setRequestHeader("If-None-Match",C.etag[u]),(p.data&&p.hasContent&&!1!==p.contentType||t.contentType)&&b.setRequestHeader("Content-Type",p.contentType),b.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Gt+"; q=0.01":""):p.accepts["*"]),p.headers)b.setRequestHeader(n,p.headers[n]);if(p.beforeSend&&(!1===p.beforeSend.call(h,b,p)||2===x))return b.abort();for(n in a="abort",{success:1,error:1,complete:1})b[n](p[n]);if(d=Zt(Jt,p,t,b)){if(b.readyState=1,f&&g.trigger("ajaxSend",[b,p]),2===x)return b;p["async"]&&0<p.timeout&&(c=T.setTimeout(function(){b.abort("timeout")},p.timeout));try{x=1,d.send(i,s)}catch(w){if(!(x<2))throw w;s(-1,w)}}else s(-1,"No Transport")}return b;function s(e,t,n,r){var i,o,a,s=t;2!==x&&(x=2,c&&T.clearTimeout(c),d=undefined,l=r||"",b.readyState=0<e?4:0,r=200<=e&&e<300||304===e,n&&(a=function(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),i===undefined&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i)for(a in s)if(s[a]&&s[a].test(i)){u.unshift(a);break}if(u[0]in n)o=u[0];else{for(a in n){if(!u[0]||e.converters[a+" "+u[0]]){o=a;break}r=r||a}o=o||r}if(o)return o!==u[0]&&u.unshift(o),n[o]}(p,b,n)),a=tn(p,a,b,r),r?(p.ifModified&&((n=b.getResponseHeader("Last-Modified"))&&(C.lastModified[u]=n),n=b.getResponseHeader("etag"))&&(C.etag[u]=n),204===e||"HEAD"===p.type?s="nocontent":304===e?s="notmodified":(s=a.state,i=a.data,r=!(o=a.error))):(o=s,!e&&s||(s="error",e<0&&(e=0))),b.status=e,b.statusText=(t||s)+"",r?m.resolveWith(h,[i,s,b]):m.rejectWith(h,[b,s,o]),b.statusCode(v),v=undefined,f&&g.trigger(r?"ajaxSuccess":"ajaxError",[b,p,r?i:o]),y.fireWith(h,[b,s]),f)&&(g.trigger("ajaxComplete",[b,p]),--C.active||C.event.trigger("ajaxStop"))}},getJSON:function(e,t,n){return C.get(e,t,n,"json")},getScript:function(e,t){return C.get(e,undefined,t,"script")}}),C.each(["get","post"],function(e,i){C[i]=function(e,t,n,r){return C.isFunction(t)&&(r=r||n,n=t,t=undefined),C.ajax(C.extend({url:e,type:i,dataType:r,data:t,success:n},C.isPlainObject(e)&&e))}}),C._evalUrl=function(e){return C.ajax({url:e,type:"GET",dataType:"script",cache:!0,"async":!1,global:!1,"throws":!0})},C.fn.extend({wrapAll:function(t){var e;return C.isFunction(t)?this.each(function(e){C(this).wrapAll(t.call(this,e))}):(this[0]&&(e=C(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)),this)},wrapInner:function(n){return C.isFunction(n)?this.each(function(e){C(this).wrapInner(n.call(this,e))}):this.each(function(){var e=C(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=C.isFunction(t);return this.each(function(e){C(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(){return this.parent().each(function(){C.nodeName(this,"body")||C(this).replaceWith(this.childNodes)}).end()}}),C.expr.filters.hidden=function(e){return y.reliableHiddenOffsets()?e.offsetWidth<=0&&e.offsetHeight<=0&&!e.getClientRects().length:nn(e)},C.expr.filters.visible=function(e){return!C.expr.filters.hidden(e)};var rn=/%20/g,on=/\[\]$/,an=/\r?\n/g,sn=/^(?:submit|button|image|reset|file)$/i,un=/^(?:input|select|textarea|keygen)/i;C.param=function(e,t){var n,r=[],i=function(e,t){t=C.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(t===undefined&&(t=C.ajaxSettings&&C.ajaxSettings.traditional),C.isArray(e)||e.jquery&&!C.isPlainObject(e))C.each(e,function(){i(this.name,this.value)});else for(n in e)!function o(n,e,r,i){if(C.isArray(e))C.each(e,function(e,t){r||on.test(n)?i(n,t):o(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==C.type(e))i(n,e);else for(var t in e)o(n+"["+t+"]",e[t],r,i)}(n,e[n],t,i);return r.join("&").replace(rn,"+")},C.fn.extend({serialize:function(){return C.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=C.prop(this,"elements");return e?C.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!C(this).is(":disabled")&&un.test(this.nodeName)&&!sn.test(e)&&(this.checked||!ge.test(e))}).map(function(e,t){var n=C(this).val();return null==n?null:C.isArray(n)?C.map(n,function(e){return{name:t.name,value:e.replace(an,"\r\n")}}):{name:t.name,value:n.replace(an,"\r\n")}}).get()}}),C.ajaxSettings.xhr=T.ActiveXObject!==undefined?function(){return this.isLocal?dn():8<g.documentMode?fn():/^(get|post|head|put|delete|options)$/i.test(this.type)&&fn()||dn()}:fn;var ln=0,cn={},F=C.ajaxSettings.xhr();function fn(){try{return new T.XMLHttpRequest}catch(e){}}function dn(){try{return new T.ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}T.attachEvent&&T.attachEvent("onunload",function(){for(var e in cn)cn[e](undefined,!0)}),y.cors=!!F&&"withCredentials"in F,(y.ajax=!!F)&&C.ajaxTransport(function(l){var c;if(!l.crossDomain||y.cors)return{send:function(e,a){var t,s=l.xhr(),u=++ln;if(s.open(l.type,l.url,l["async"],l.username,l.password),l.xhrFields)for(t in l.xhrFields)s[t]=l.xhrFields[t];for(t in l.mimeType&&s.overrideMimeType&&s.overrideMimeType(l.mimeType),l.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)e[t]!==undefined&&s.setRequestHeader(t,e[t]+"");s.send(l.hasContent&&l.data||null),c=function(e,t){var n,r,i;if(c&&(t||4===s.readyState))if(delete cn[u],c=undefined,s.onreadystatechange=C.noop,t)4!==s.readyState&&s.abort();else{i={},n=s.status,"string"==typeof s.responseText&&(i.text=s.responseText);try{r=s.statusText}catch(o){r=""}n||!l.isLocal||l.crossDomain?1223===n&&(n=204):n=i.text?200:404}i&&a(n,r,i,s.getAllResponseHeaders())},l["async"]?4===s.readyState?T.setTimeout(c):s.onreadystatechange=cn[u]=c:c()},abort:function(){c&&c(undefined,!0)}}}),C.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return C.globalEval(e),e}}}),C.ajaxPrefilter("script",function(e){e.cache===undefined&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),C.ajaxTransport("script",function(t){var r,i;if(t.crossDomain)return i=g.head||C("head")[0]||g.documentElement,{send:function(e,n){(r=g.createElement("script"))["async"]=!0,t.scriptCharset&&(r.charset=t.scriptCharset),r.src=t.url,r.onload=r.onreadystatechange=function(e,t){!t&&r.readyState&&!/loaded|complete/.test(r.readyState)||(r.onload=r.onreadystatechange=null,r.parentNode&&r.parentNode.removeChild(r),r=null,t)||n(200,"success")},i.insertBefore(r,i.firstChild)},abort:function(){r&&r.onload(undefined,!0)}}});var pn=[],hn=/(=)\?(?=&|$)|\?\?/,gn=(C.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=pn.pop()||C.expando+"_"+Pt++;return this[e]=!0,e}}),C.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(hn.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&hn.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=C.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(hn,"$1"+r):!1!==e.jsonp&&(e.url+=(Bt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||C.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=T[r],T[r]=function(){o=arguments},n.always(function(){i===undefined?C(T).removeProp(r):T[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,pn.push(r)),o&&C.isFunction(i)&&i(o[0]),o=i=undefined}),"script"}),C.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||g;var r=J.exec(e),n=!n&&[];return r?[t.createElement(r[1])]:(r=Ne([e],t,n),n&&n.length&&C(n).remove(),C.merge([],r.childNodes))},C.fn.load);function mn(e){return C.isWindow(e)?e:9===e.nodeType&&(e.defaultView||e.parentWindow)}return C.fn.load=function(e,t,n){var r,i,o,a,s;return"string"!=typeof e&&gn?gn.apply(this,arguments):(a=this,-1<(s=e.indexOf(" "))&&(r=C.trim(e.slice(s,e.length)),e=e.slice(0,s)),C.isFunction(t)?(n=t,t=undefined):t&&"object"==typeof t&&(i="POST"),0<a.length&&C.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?C("<div>").append(C.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this)},C.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){C.fn[t]=function(e){return this.on(t,e)}}),C.expr.filters.animated=function(t){return C.grep(C.timers,function(e){return t===e.elem}).length},C.offset={setOffset:function(e,t,n){var r,i,o,a,s=C.css(e,"position"),u=C(e),l={};"static"===s&&(e.style.position="relative"),o=u.offset(),r=C.css(e,"top"),a=C.css(e,"left"),s=("absolute"===s||"fixed"===s)&&-1<C.inArray("auto",[r,a])?(i=(s=u.position()).top,s.left):(i=parseFloat(r)||0,parseFloat(a)||0),null!=(t=C.isFunction(t)?t.call(e,n,C.extend({},o)):t).top&&(l.top=t.top-o.top+i),null!=t.left&&(l.left=t.left-o.left+s),"using"in t?t.using.call(e,l):u.css(l)}},C.fn.extend({offset:function(t){var e,n,r,i;return arguments.length?t===undefined?this:this.each(function(e){C.offset.setOffset(this,t,e)}):(n={top:0,left:0},(i=(r=this[0])&&r.ownerDocument)?(e=i.documentElement,C.contains(e,r)?("undefined"!=typeof r.getBoundingClientRect&&(n=r.getBoundingClientRect()),r=mn(i),{top:n.top+(r.pageYOffset||e.scrollTop)-(e.clientTop||0),left:n.left+(r.pageXOffset||e.scrollLeft)-(e.clientLeft||0)}):n):void 0)},position:function(){var e,t,n,r;if(this[0])return n={top:0,left:0},r=this[0],"fixed"===C.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),(n=C.nodeName(e[0],"html")?n:e.offset()).top+=C.css(e[0],"borderTopWidth",!0),n.left+=C.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-C.css(r,"marginTop",!0),left:t.left-n.left-C.css(r,"marginLeft",!0)}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&!C.nodeName(e,"html")&&"static"===C.css(e,"position");)e=e.offsetParent;return e||lt})}}),C.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o=/Y/.test(i);C.fn[t]=function(e){return d(this,function(e,t,n){var r=mn(e);if(n===undefined)return r?i in r?r[i]:r.document.documentElement[t]:e[t];r?r.scrollTo(o?C(r).scrollLeft():n,o?n:C(r).scrollTop()):e[t]=n},t,e,arguments.length,null)}}),C.each(["top","left"],function(e,n){C.cssHooks[n]=ft(y.pixelPosition,function(e,t){if(t)return t=p(e,n),st.test(t)?C(e).position()[n]+"px":t})}),C.each({Height:"height",Width:"width"},function(o,a){C.each({padding:"inner"+o,content:a,"":"outer"+o},function(r,e){C.fn[e]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return d(this,function(e,t,n){var r;return C.isWindow(e)?e.document.documentElement["client"+o]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+o],r["scroll"+o],e.body["offset"+o],r["offset"+o],r["client"+o])):n===undefined?C.css(e,t,i):C.style(e,t,n,i)},a,n?e:undefined,n,null)}})}),C.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),C.fn.size=function(){return this.length},C.fn.andSelf=C.fn.addBack,layui.define(function(e){e("jquery",layui.$=C)}),C});!function(p,m){"use strict";var h,g,e,n=p.layui&&layui.define,f={getPath:(e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,i=t.length-1,n=i;0<n;n--)if("interactive"===t[n].readyState){e=t[n].src;break}return e||t[i].src}(),(p.LAYUI_GLOBAL||{}).layer_dir||e.substring(0,e.lastIndexOf("/")+1)),config:{removeFocus:!0},end:{},beforeEnd:{},events:{resize:{}},minStackIndex:0,minStackArr:[],btn:["\u786e\u5b9a","\u53d6\u6d88"],type:["dialog","page","iframe","loading","tips"],getStyle:function(e,t){e=e.currentStyle||p.getComputedStyle(e,null);return e[e.getPropertyValue?"getPropertyValue":"getAttribute"](t)},link:function(e,i,t){var n,a,o,s,r,l;v.path&&(n=document.getElementsByTagName("head")[0],a=document.createElement("link"),o=((t="string"==typeof i?i:t)||e).replace(/\.|\//g,""),s="layuicss-"+o,r="creating",l=0,a.rel="stylesheet",a.href=v.path+e,a.id=s,document.getElementById(s)||n.appendChild(a),"function"==typeof i)&&!function c(e){var t=document.getElementById(s);return 100<++l?p.console&&console.error(o+".css: Invalid"):void(1989===parseInt(f.getStyle(t,"width"))?(e===r&&t.removeAttribute("lay-status"),t.getAttribute("lay-status")===r?setTimeout(c,100):i()):(t.setAttribute("lay-status",r),setTimeout(function(){c(r)},100)))}()}},v={v:"3.7.0",ie:(e=navigator.userAgent.toLowerCase(),!!(p.ActiveXObject||"ActiveXObject"in p)&&((e.match(/msie\s(\d+)/)||[])[1]||"11")),index:p.layer&&p.layer.v?1e5:0,path:f.getPath,config:function(e,t){return v.cache=f.config=h.extend({},f.config,e=e||{}),v.path=f.config.path||v.path,"string"==typeof e.extend&&(e.extend=[e.extend]),f.config.path&&v.ready(),e.extend&&(n?layui.addcss("modules/layer/"+e.extend):f.link("css/"+e.extend)),this},ready:function(e){var t="layer",i=(n?"modules/":"css/")+"layer.css?v="+v.v;return n?layui["layui.all"]?"function"==typeof e&&e():layui.addcss(i,e,t):f.link(i,e,t),this},alert:function(e,t,i){var n="function"==typeof t;return v.open(h.extend({content:e,yes:i=n?t:i},n?{}:t))},confirm:function(e,t,i,n){var a="function"==typeof t;return a&&(n=i,i=t),v.open(h.extend({content:e,btn:f.btn,yes:i,btn2:n},a?{}:t))},msg:function(e,t,i){var n="function"==typeof t,a=f.config.skin,a=(a?a+" "+a+"-msg":"")||"layui-layer-msg",o=u.anim.length-1;return n&&(i=t),v.open(h.extend({content:e,time:3e3,shade:!1,skin:a,title:!1,closeBtn:!1,btn:!1,resize:!1,end:i,removeFocus:!1},n&&!f.config.skin?{skin:a+" layui-layer-hui",anim:o}:(-1!==(t=t||{}).icon&&(t.icon!==m||f.config.skin)||(t.skin=a+" "+(t.skin||"layui-layer-hui")),t)))},load:function(e,t){return v.open(h.extend({type:3,icon:e||0,resize:!1,shade:.01,removeFocus:!1},t))},tips:function(e,t,i){return v.open(h.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:260,removeFocus:!1},i))}},t=function(e){var t=this,i=function(){t.creat()};t.index=++v.index,t.config.maxWidth=h(g).width()-30,t.config=h.extend({},t.config,f.config,e),document.body?i():setTimeout(function(){i()},30)},u=(t.pt=t.prototype,["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"]),y=(u.anim={0:"layer-anim-00",1:"layer-anim-01",2:"layer-anim-02",3:"layer-anim-03",4:"layer-anim-04",5:"layer-anim-05",6:"layer-anim-06",slideDown:"layer-anim-slide-down",slideLeft:"layer-anim-slide-left",slideUp:"layer-anim-slide-up",slideRight:"layer-anim-slide-right"},u.SHADE="layui-layer-shade",u.MOVE="layui-layer-move","LAYUI-LAYER-SHADE-KEY"),l="LAYUI_LAYER_CONTENT_RECORD_HEIGHT",i=(t.pt.config={type:0,shade:.3,fixed:!0,move:u[1],title:"\u4fe1\u606f",offset:"auto",area:"auto",closeBtn:1,icon:-1,time:0,zIndex:19891014,maxWidth:360,anim:0,isOutAnim:!0,minStack:!0,moveType:1,resize:!0,scrollbar:!0,tips:2},t.pt.vessel=function(e,t){var i,n=this.index,a=this.config,o=a.zIndex+n,s="object"==typeof a.title,r=a.maxmin&&(1===a.type||2===a.type),s=a.title?'<div class="layui-layer-title" style="'+(s?a.title[1]:"")+'">'+(s?a.title[0]:a.title)+"</div>":"";return a.zIndex=o,t([a.shade?'<div class="'+u.SHADE+'" id="'+u.SHADE+n+'" times="'+n+'" style="z-index:'+(o-1)+'; "></div>':"",'<div class="'+u[0]+" layui-layer-"+f.type[a.type]+(0!=a.type&&2!=a.type||a.shade?"":" layui-layer-border")+" "+(a.skin||"")+'" id="'+u[0]+n+'" type="'+f.type[a.type]+'" times="'+n+'" showtime="'+a.time+'" conType="'+(e?"object":"string")+'" style="z-index: '+o+"; width:"+a.area[0]+";height:"+a.area[1]+";position:"+(a.fixed?"fixed;":"absolute;")+'">'+(e&&2!=a.type?"":s)+"<div"+(a.id?' id="'+a.id+'"':"")+' class="layui-layer-content'+(0==a.type&&-1!==a.icon?" layui-layer-padding":"")+(3==a.type?" layui-layer-loading"+a.icon:"")+'">'+(n=["layui-icon-tips","layui-icon-success","layui-icon-error","layui-icon-question","layui-icon-lock","layui-icon-face-cry","layui-icon-face-smile"],o="layui-anim layui-anim-rotate layui-anim-loop",0==a.type&&-1!==a.icon?'<i class="layui-layer-face layui-icon '+((i=16==a.icon?"layui-icon layui-icon-loading "+o:i)||n[a.icon]||n[0])+'"></i>':3==a.type?(i=["layui-icon-loading","layui-icon-loading-1"],2==a.icon?'<div class="layui-layer-loading-2 '+o+'"></div>':'<i class="layui-layer-loading-icon layui-icon '+(i[a.icon]||i[0])+" "+o+'"></i>'):"")+((1!=a.type||!e)&&a.content||"")+'</div><div class="layui-layer-setwin">'+(n=[],r&&(n.push('<span class="layui-layer-min"></span>'),n.push('<span class="layui-layer-max"></span>')),a.closeBtn&&n.push('<span class="layui-icon layui-icon-close '+[u[7],u[7]+(a.title?a.closeBtn:4==a.type?"1":"2")].join(" ")+'"></span>'),n.join(""))+"</div>"+(a.btn?function(){var e="";"string"==typeof a.btn&&(a.btn=[a.btn]);for(var t,i=0,n=a.btn.length;i<n;i++)e+='<a class="'+u[6]+i+'">'+a.btn[i]+"</a>";return'<div class="'+(t=[u[6]],a.btnAlign&&t.push(u[6]+"-"+a.btnAlign),t.join(" "))+'">'+e+"</div>"}():"")+(a.resize?'<span class="layui-layer-resize"></span>':"")+"</div>"],s,h('<div class="'+u.MOVE+'" id="'+u.MOVE+'"></div>')),this},t.pt.creat=function(){var e,t,i,n,a=this,o=a.config,s=a.index,r="object"==typeof(d=o.content),l=h("body"),c=function(e){var t;o.shift&&(o.anim=o.shift),u.anim[o.anim]&&(t="layer-anim "+u.anim[o.anim],e.addClass(t).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){h(this).removeClass(t)}))};if(o.id&&h("."+u[0]).find("#"+o.id)[0])e=h("#"+o.id).closest("."+u[0]),t=e.attr("times"),i=e.data("config"),n=h("#"+u.SHADE+t),"min"===(e.data("maxminStatus")||{})?v.restore(t):i.hideOnClose&&(n.show(),e.show(),c(e),setTimeout(function(){n.css({opacity:n.data(y)})},10));else{switch(o.removeFocus&&document.activeElement&&document.activeElement.blur(),"string"==typeof o.area&&(o.area="auto"===o.area?["",""]:[o.area,""]),6==v.ie&&(o.fixed=!1),o.type){case 0:o.btn="btn"in o?o.btn:f.btn[0],v.closeAll("dialog");break;case 2:var d=o.content=r?o.content:[o.content||"","auto"];o.content='<iframe scrolling="'+(o.content[1]||"auto")+'" allowtransparency="true" id="'+u[4]+s+'" name="'+u[4]+s+'" onload="this.className=\'\';" class="layui-layer-load" frameborder="0" src="'+o.content[0]+'"></iframe>';break;case 3:delete o.title,delete o.closeBtn,-1===o.icon&&o.icon,v.closeAll("loading");break;case 4:r||(o.content=[o.content,"body"]),o.follow=o.content[1],o.content=o.content[0]+'<i class="layui-layer-TipsG"></i>',delete o.title,o.tips="object"==typeof o.tips?o.tips:[o.tips,!0],o.tipsMore||v.closeAll("tips")}a.vessel(r,function(e,t,i){l.append(e[0]),r?2==o.type||4==o.type?h("body").append(e[1]):d.parents("."+u[0])[0]||(d.data("display",d.css("display")).show().addClass("layui-layer-wrap").wrap(e[1]),h("#"+u[0]+s).find("."+u[5]).before(t)):l.append(e[1]),h("#"+u.MOVE)[0]||l.append(f.moveElem=i),a.layero=h("#"+u[0]+s),a.shadeo=h("#"+u.SHADE+s),o.scrollbar||f.setScrollbar(s)}).auto(s),a.shadeo.css({"background-color":o.shade[1]||"#000",opacity:o.shade[0]||o.shade,transition:o.shade[2]||""}),a.shadeo.data(y,o.shade[0]||o.shade),2==o.type&&6==v.ie&&a.layero.find("iframe").attr("src",d[0]),4==o.type?a.tips():(a.offset(),parseInt(f.getStyle(document.getElementById(u.MOVE),"z-index"))||(a.layero.css("visibility","hidden"),v.ready(function(){a.offset(),a.layero.css("visibility","visible")}))),!o.fixed||f.events.resize[a.index]||(f.events.resize[a.index]=function(){a.resize()},g.on("resize",f.events.resize[a.index])),o.time<=0||setTimeout(function(){v.close(a.index)},o.time),a.move().callback(),c(a.layero),a.layero.data("config",o)}},t.pt.resize=function(){var e=this,t=e.config;e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(e.index),4==t.type&&e.tips()},t.pt.auto=function(e){var t=this.config,i=h("#"+u[0]+e),n=(""===t.area[0]&&0<t.maxWidth&&(v.ie&&v.ie<8&&t.btn&&i.width(i.innerWidth()),i.outerWidth()>t.maxWidth)&&i.width(t.maxWidth),[i.innerWidth(),i.innerHeight()]),a=i.find(u[1]).outerHeight()||0,o=i.find("."+u[6]).outerHeight()||0,e=function(e){(e=i.find(e)).height(n[1]-a-o-2*(0|parseFloat(e.css("padding-top"))))};return 2===t.type?e("iframe"):""===t.area[1]?0<t.maxHeight&&i.outerHeight()>t.maxHeight?(n[1]=t.maxHeight,e("."+u[5])):t.fixed&&n[1]>=g.height()&&(n[1]=g.height(),e("."+u[5])):e("."+u[5]),this},t.pt.offset=function(){var e=this,t=e.config,i=e.layero,n=[i.outerWidth(),i.outerHeight()],a="object"==typeof t.offset;e.offsetTop=(g.height()-n[1])/2,e.offsetLeft=(g.width()-n[0])/2,a?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=g.width()-n[0]:"b"===t.offset?e.offsetTop=g.height()-n[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=g.height()-n[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=g.width()-n[0]):"rb"===t.offset?(e.offsetTop=g.height()-n[1],e.offsetLeft=g.width()-n[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?g.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?g.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=g.scrollTop(),e.offsetLeft+=g.scrollLeft()),"min"===i.data("maxminStatus")&&(e.offsetTop=g.height()-(i.find(u[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},t.pt.tips=function(){var e=this.config,t=this.layero,i=[t.outerWidth(),t.outerHeight()],n=h(e.follow),a={width:(n=n[0]?n:h("body")).outerWidth(),height:n.outerHeight(),top:n.offset().top,left:n.offset().left},o=t.find(".layui-layer-TipsG"),n=e.tips[0];e.tips[1]||o.remove(),a.autoLeft=function(){0<a.left+i[0]-g.width()?(a.tipLeft=a.left+a.width-i[0],o.css({right:12,left:"auto"})):a.tipLeft=a.left},a.where=[function(){a.autoLeft(),a.tipTop=a.top-i[1]-10,o.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",e.tips[1])},function(){a.tipLeft=a.left+a.width+10,a.tipTop=a.top-(.75*a.height<21?21-.5*a.height:0),a.tipTop=Math.max(a.tipTop,0),o.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",e.tips[1])},function(){a.autoLeft(),a.tipTop=a.top+a.height+10,o.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",e.tips[1])},function(){a.tipLeft=a.left-i[0]-10,a.tipTop=a.top-(.75*a.height<21?21-.5*a.height:0),a.tipTop=Math.max(a.tipTop,0),o.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",e.tips[1])}],a.where[n-1](),1===n?a.top-(g.scrollTop()+i[1]+16)<0&&a.where[2]():2===n?0<g.width()-(a.left+a.width+i[0]+16)||a.where[3]():3===n?0<a.top-g.scrollTop()+a.height+i[1]+16-g.height()&&a.where[0]():4===n&&0<i[0]+16-a.left&&a.where[1](),t.find("."+u[5]).css({"background-color":e.tips[1],"padding-right":e.closeBtn?"30px":""}),t.css({left:a.tipLeft-(e.fixed?g.scrollLeft():0),top:a.tipTop-(e.fixed?g.scrollTop():0)})},t.pt.move=function(){var n=this,a=n.config,e=h(document),o=n.layero,l=["LAY_MOVE_DICT","LAY_RESIZE_DICT"],t=o.find(a.move),i=o.find(".layui-layer-resize");return a.move&&t.css("cursor","move"),t.on("mousedown",function(e){var t,i;e.button||(t=h(this),i={},a.move&&(i.layero=o,i.config=a,i.offset=[e.clientX-parseFloat(o.css("left")),e.clientY-parseFloat(o.css("top"))],t.data(l[0],i),f.eventMoveElem=t,f.moveElem.css("cursor","move").show()),e.preventDefault())}),i.on("mousedown",function(e){var t=h(this),i={};a.resize&&(i.layero=o,i.config=a,i.offset=[e.clientX,e.clientY],i.index=n.index,i.area=[o.outerWidth(),o.outerHeight()],t.data(l[1],i),f.eventResizeElem=t,f.moveElem.css("cursor","se-resize").show()),e.preventDefault()}),f.docEvent||(e.on("mousemove",function(e){var t,i,n,a,o,s,r;f.eventMoveElem&&(t=(a=f.eventMoveElem.data(l[0])||{}).layero,o=a.config,s=e.clientX-a.offset[0],r=e.clientY-a.offset[1],i="fixed"===t.css("position"),e.preventDefault(),a.stX=i?0:g.scrollLeft(),a.stY=i?0:g.scrollTop(),o.moveOut||(i=g.width()-t.outerWidth()+a.stX,n=g.height()-t.outerHeight()+a.stY,i<(s=s<a.stX?a.stX:s)&&(s=i),n<(r=r<a.stY?a.stY:r)&&(r=n)),t.css({left:s,top:r})),f.eventResizeElem&&(o=(a=f.eventResizeElem.data(l[1])||{}).config,s=e.clientX-a.offset[0],r=e.clientY-a.offset[1],e.preventDefault(),v.style(a.index,{width:a.area[0]+s,height:a.area[1]+r}),o.resizing)&&o.resizing(a.layero)}).on("mouseup",function(e){var t,i;f.eventMoveElem&&(i=(t=f.eventMoveElem.data(l[0])||{}).config,f.eventMoveElem.removeData(l[0]),delete f.eventMoveElem,f.moveElem.hide(),i.moveEnd)&&i.moveEnd(t.layero),f.eventResizeElem&&(f.eventResizeElem.removeData(l[1]),delete f.eventResizeElem,f.moveElem.hide())}),f.docEvent=!0),n},t.pt.btnLoading=function(e,t){t?e.find(".layui-layer-btn-loading-icon")[0]||e.addClass("layui-layer-btn-is-loading").attr({disabled:""}).prepend('<i class="layui-layer-btn-loading-icon layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i>'):e.removeClass("layui-layer-btn-is-loading").removeAttr("disabled").find(".layui-layer-btn-loading-icon").remove()},t.pt.callback=function(){var n=this,a=n.layero,o=n.config;n.openLayer(),o.success&&(2==o.type?a.find("iframe").on("load",function(){o.success(a,n.index,n)}):o.success(a,n.index,n)),6==v.ie&&n.IE6(a),a.find("."+u[6]).children("a").on("click",function(){var e,t=h(this),i=t.index();t.attr("disabled")||(o.btnAsync?(e=0===i?o.yes||o.btn1:o["btn"+(i+1)],n.loading=function(e){n.btnLoading(t,e)},e?f.promiseLikeResolve(e.call(o,n.index,a,n)).then(function(e){!1!==e&&v.close(n.index)},function(e){e!==m&&p.console&&p.console.error("layer error hint: "+e)}):v.close(n.index)):0===i?o.yes?o.yes(n.index,a,n):o.btn1?o.btn1(n.index,a,n):v.close(n.index):!1!==(o["btn"+(i+1)]&&o["btn"+(i+1)](n.index,a,n))&&v.close(n.index))}),a.find("."+u[7]).on("click",function(){!1!==(o.cancel&&o.cancel(n.index,a,n))&&v.close(n.index)}),o.shadeClose&&n.shadeo.on("click",function(){v.close(n.index)}),a.find(".layui-layer-min").on("click",function(){!1!==(o.min&&o.min(a,n.index,n))&&v.min(n.index,o)}),a.find(".layui-layer-max").on("click",function(){h(this).hasClass("layui-layer-maxmin")?(v.restore(n.index),o.restore&&o.restore(a,n.index,n)):(v.full(n.index,o),setTimeout(function(){o.full&&o.full(a,n.index,n)},100))}),o.end&&(f.end[n.index]=o.end),o.beforeEnd&&(f.beforeEnd[n.index]=h.proxy(o.beforeEnd,o,a,n.index,n))},f.reselect=function(){h.each(h("select"),function(e,t){var i=h(this);i.parents("."+u[0])[0]||1==i.attr("layer")&&h("."+u[0]).length<1&&i.removeAttr("layer").show()})},t.pt.IE6=function(e){h("select").each(function(e,t){var i=h(this);i.parents("."+u[0])[0]||"none"!==i.css("display")&&i.attr({layer:"1"}).hide()})},t.pt.openLayer=function(){v.zIndex=this.config.zIndex,v.setTop=function(e){return v.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",function(){v.zIndex++,e.css("z-index",v.zIndex+1)}),v.zIndex}},f.record=function(e){if(!e[0])return p.console&&console.error("index error");var t=e.attr("type"),i=e.find(".layui-layer-content"),t=t===f.type[2]?i.children("iframe"):i,n=[e[0].style.width||f.getStyle(e[0],"width"),e[0].style.height||f.getStyle(e[0],"height"),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:n}),i.data(l,f.getStyle(t[0],"height"))},f.setScrollbar=function(e){u.html.css("overflow","hidden").attr("layer-full",e)},f.restScrollbar=function(e){u.html.attr("layer-full")==e&&(u.html[0].style[u.html[0].style.removeProperty?"removeProperty":"removeAttribute"]("overflow"),u.html.removeAttr("layer-full"))},f.promiseLikeResolve=function(e){var t=h.Deferred();return e&&"function"==typeof e.then?e.then(t.resolve,t.reject):t.resolve(e),t.promise()},(p.layer=v).getChildFrame=function(e,t){return t=t||h("."+u[4]).attr("times"),h("#"+u[0]+t).find("iframe").contents().find(e)},v.getFrameIndex=function(e){return h("#"+e).parents("."+u[4]).attr("times")},v.iframeAuto=function(e){var t,i,n;e&&(t=v.getChildFrame("html",e).outerHeight(),i=(e=h("#"+u[0]+e)).find(u[1]).outerHeight()||0,n=e.find("."+u[6]).outerHeight()||0,e.css({height:t+i+n}),e.find("iframe").css({height:t}))},v.iframeSrc=function(e,t){h("#"+u[0]+e).find("iframe").attr("src",t)},v.style=function(e,t,i){var e=h("#"+u[0]+e),n=e.find(".layui-layer-content"),a=e.attr("type"),o=e.find(u[1]).outerHeight()||0,s=e.find("."+u[6]).outerHeight()||0;e.attr("minLeft");a!==f.type[3]&&a!==f.type[4]&&(i||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-o-s<=64&&(t.height=64+o+s)),e.css(t),s=e.find("."+u[6]).outerHeight()||0,a===f.type[2]?e.find("iframe").css({height:("number"==typeof t.height?t.height:e.height())-o-s}):n.css({height:("number"==typeof t.height?t.height:e.height())-o-s-parseFloat(n.css("padding-top"))-parseFloat(n.css("padding-bottom"))}))},v.min=function(e,t){var i,n,a,o,s,r,l=h("#"+u[0]+e),c=l.data("maxminStatus");"min"!==c&&("max"===c&&v.restore(e),l.data("maxminStatus","min"),t=t||l.data("config")||{},c=h("#"+u.SHADE+e),i=l.find(".layui-layer-min"),n=l.find(u[1]).outerHeight()||0,o=(a="string"==typeof(o=l.attr("minLeft")))?o:181*f.minStackIndex+"px",s=l.css("position"),r={width:180,height:n,position:"fixed",overflow:"hidden"},f.record(l),0<f.minStackArr.length&&(o=f.minStackArr[0],f.minStackArr.shift()),parseFloat(o)+180>g.width()&&(o=g.width()-180-(f.minStackArr.edgeIndex=f.minStackArr.edgeIndex||0,f.minStackArr.edgeIndex+=3))<0&&(o=0),t.minStack&&(r.left=o,r.top=g.height()-n,a||f.minStackIndex++,l.attr("minLeft",o)),l.attr("position",s),v.style(e,r,!0),i.hide(),"page"===l.attr("type")&&l.find(u[4]).hide(),f.restScrollbar(e),c.hide())},v.restore=function(e){var t=h("#"+u[0]+e),i=h("#"+u.SHADE+e),n=t.find(".layui-layer-content"),a=t.attr("area").split(","),o=t.attr("type"),s=t.data("config")||{},r=n.data(l);t.removeData("maxminStatus"),v.style(e,{width:a[0],height:a[1],top:parseFloat(a[2]),left:parseFloat(a[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===o&&t.find(u[4]).show(),s.scrollbar?f.restScrollbar(e):f.setScrollbar(e),r!==m&&(n.removeData(l),(o===f.type[2]?n.children("iframe"):n).css({height:r})),i.show()},v.full=function(t){var i=h("#"+u[0]+t),e=i.data("maxminStatus");"max"!==e&&("min"===e&&v.restore(t),i.data("maxminStatus","max"),f.record(i),u.html.attr("layer-full")||f.setScrollbar(t),setTimeout(function(){var e="fixed"===i.css("position");v.style(t,{top:e?0:g.scrollTop(),left:e?0:g.scrollLeft(),width:"100%",height:"100%"},!0),i.find(".layui-layer-min").hide()},100))},v.title=function(e,t){h("#"+u[0]+(t||v.index)).find(u[1]).html(e)},v.close=function(s,r){var e,t,l=(e=h("."+u[0]).children("#"+s).closest("."+u[0]))[0]?(s=e.attr("times"),e):h("#"+u[0]+s),c=l.attr("type"),i=l.data("config")||{},d=i.id&&i.hideOnClose;l[0]&&(t=function(){var o={slideDown:"layer-anim-slide-down-out",slideLeft:"layer-anim-slide-left-out",slideUp:"layer-anim-slide-up-out",slideRight:"layer-anim-slide-right-out"}[i.anim]||"layer-anim-close",e=function(){var e="layui-layer-wrap";if(d)return l.removeClass("layer-anim "+o),l.hide();if(c===f.type[1]&&"object"===l.attr("conType")){l.children(":not(."+u[5]+")").remove();for(var t=l.find("."+e),i=0;i<2;i++)t.unwrap();t.css("display",t.data("display")).removeClass(e)}else{if(c===f.type[2])try{var n=h("#"+u[4]+s)[0];n.contentWindow.document.write(""),n.contentWindow.close(),l.find("."+u[5])[0].removeChild(n)}catch(a){}l[0].innerHTML="",l.remove()}"function"==typeof f.end[s]&&f.end[s](),delete f.end[s],"function"==typeof r&&r(),f.events.resize[s]&&(g.off("resize",f.events.resize[s]),delete f.events.resize[s])},t=h("#"+u.SHADE+s);v.ie&&v.ie<10||!i.isOutAnim?t[d?"hide":"remove"]():(t.css({opacity:0}),setTimeout(function(){t[d?"hide":"remove"]()},350)),i.isOutAnim&&l.addClass("layer-anim "+o),6==v.ie&&f.reselect(),f.restScrollbar(s),"string"==typeof l.attr("minLeft")&&(f.minStackIndex--,f.minStackArr.push(l.attr("minLeft"))),v.ie&&v.ie<10||!i.isOutAnim?e():setTimeout(function(){e()},200)},d||"function"!=typeof f.beforeEnd[s]?(delete f.beforeEnd[s],t()):f.promiseLikeResolve(f.beforeEnd[s]()).then(function(e){!1!==e&&(delete f.beforeEnd[s],t())},function(e){e!==m&&p.console&&p.console.error("layer error hint: "+e)}))},v.closeAll=function(n,a){"function"==typeof n&&(a=n,n=null);var o=h("."+u[0]);h.each(o,function(e){var t=h(this),i=n?t.attr("type")===n:1;i&&v.close(t.attr("times"),e===o.length-1?a:null)}),0===o.length&&"function"==typeof a&&a()},v.closeLast=function(i,e){var t,n=[],a=h.isArray(i);h("string"==typeof i?".layui-layer-"+i:".layui-layer").each(function(e,t){t=h(t);if(a&&-1===i.indexOf(t.attr("type"))||"none"===t.css("display"))return!0;n.push(Number(t.attr("times")))}),0<n.length&&(t=Math.max.apply(null,n),v.close(t,e))},v.cache||{}),x=function(e){return i.skin?" "+i.skin+" "+i.skin+"-"+e:""};v.prompt=function(i,n){var e="",t="";"function"==typeof(i=i||{})&&(n=i),i.area&&(e='style="width: '+(o=i.area)[0]+"; height: "+o[1]+';"',delete i.area),i.placeholder&&(t=' placeholder="'+i.placeholder+'"');var a,o=2==i.formType?'<textarea class="layui-layer-input"'+e+t+"></textarea>":'<input type="'+(1==i.formType?"password":"text")+'" class="layui-layer-input"'+t+">",s=i.success;return delete i.success,v.open(h.extend({type:1,btn:["\u786e\u5b9a","\u53d6\u6d88"],content:o,skin:"layui-layer-prompt"+x("prompt"),maxWidth:g.width(),success:function(e){(a=e.find(".layui-layer-input")).val(i.value||"").focus(),"function"==typeof s&&s(e)},resize:!1,yes:function(e){var t=a.val();t.length>(i.maxlength||500)?v.tips("\u6700\u591a\u8f93\u5165"+(i.maxlength||500)+"\u4e2a\u5b57\u7b26",a,{tips:1}):n&&n(t,e,a)}},i))},v.tab=function(n){var a=(n=n||{}).tab||{},o="layui-this",s=n.success;return delete n.success,v.open(h.extend({type:1,skin:"layui-layer-tab"+x("tab"),resize:!1,title:function(){var e=a.length,t=1,i="";if(0<e)for(i='<span class="'+o+'">'+a[0].title+"</span>";t<e;t++)i+="<span>"+a[t].title+"</span>";return i}(),content:'<ul class="layui-layer-tabmain">'+function(){var e=a.length,t=1,i="";if(0<e)for(i='<li class="layui-layer-tabli '+o+'">'+(a[0].content||"no content")+"</li>";t<e;t++)i+='<li class="layui-layer-tabli">'+(a[t].content||"no content")+"</li>";return i}()+"</ul>",success:function(e){var t=e.find(".layui-layer-title").children(),i=e.find(".layui-layer-tabmain").children();t.on("mousedown",function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0;var e=h(this),t=e.index();e.addClass(o).siblings().removeClass(o),i.eq(t).show().siblings().hide(),"function"==typeof n.change&&n.change(t)}),"function"==typeof s&&s(e)}},n))},v.photos=function(n,e,a){var s={};if((n=h.extend(!0,{toolbar:!0,footer:!0},n)).photos){var t=!("string"==typeof n.photos||n.photos instanceof h),i=t?n.photos:{},o=i.data||[],r=i.start||0,l=n.success;if(s.imgIndex=1+(0|r),n.img=n.img||"img",delete n.success,t){if(0===o.length)return v.msg("\u6ca1\u6709\u56fe\u7247")}else{var c=h(n.photos),d=function(){o=[],c.find(n.img).each(function(e){var t=h(this);t.attr("layer-index",e),o.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("lay-src")||t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(d(),0===o.length)return;if(e||c.on("click",n.img,function(){d();var e=h(this).attr("layer-index");v.photos(h.extend(n,{photos:{start:e,data:o,tab:n.tab},full:n.full}),!0)}),!e)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=o.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>o.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){var t;s.end||(t=e.keyCode,e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&v.close(s.index))},s.tabimg=function(e){if(!(o.length<=1))return i.start=s.imgIndex-1,v.close(s.index),v.photos(n,!0,e)},s.isNumber=function(e){return"number"==typeof e&&!isNaN(e)},s.image={},s.getTransform=function(e){var t=[],i=e.rotate,n=e.scaleX,e=e.scale;return s.isNumber(i)&&0!==i&&t.push("rotate("+i+"deg)"),s.isNumber(n)&&1!==n&&t.push("scaleX("+n+")"),s.isNumber(e)&&t.push("scale("+e+")"),t.length?t.join(" "):"none"},s.event=function(e,i,n){var a,o;s.main.find(".layui-layer-photos-prev").on("click",function(e){e.preventDefault(),s.imgprev(!0)}),s.main.find(".layui-layer-photos-next").on("click",function(e){e.preventDefault(),s.imgnext(!0)}),h(document).on("keyup",s.keyup),e.off("click").on("click","*[toolbar-event]",function(){var e=h(this);switch(e.attr("toolbar-event")){case"rotate":s.image.rotate=((s.image.rotate||0)+Number(e.attr("data-option")))%360,s.imgElem.css({transform:s.getTransform(s.image)});break;case"scalex":s.image.scaleX=-1===s.image.scaleX?1:-1,s.imgElem.css({transform:s.getTransform(s.image)});break;case"zoom":var t=Number(e.attr("data-option"));s.image.scale=(s.image.scale||1)+t,t<0&&s.image.scale<0-t&&(s.image.scale=0-t),s.imgElem.css({transform:s.getTransform(s.image)});break;case"reset":s.image.scaleX=1,s.image.scale=1,s.image.rotate=0,s.imgElem.css({transform:"none"});break;case"close":v.close(i)}n.offset(),n.auto(i)}),s.main.on("mousewheel DOMMouseScroll",function(e){var t=e.originalEvent.wheelDelta||-e.originalEvent.detail,i=s.main.find('[toolbar-event="zoom"]');(0<t?i.eq(0):i.eq(1)).trigger("click"),e.preventDefault()}),(p.layui||p.lay)&&(a=p.layui.lay||p.lay,o=function(e,t){var i=Date.now()-t.timeStart,i=t.distanceX/i,n=g.width()/3;(.25<Math.abs(i)||Math.abs(t.distanceX)>n)&&("left"===t.direction?s.imgnext(!0):"right"===t.direction&&s.imgprev(!0))},h.each([n.shadeo,s.main],function(e,t){a.touchSwipe(t,{onTouchEnd:o})}))},s.loadi=v.load(1,{shade:!("shade"in n)&&[.9,m,"unset"],scrollbar:!1});var t=o[r].src,f=function(e){v.close(s.loadi);var t,i=o[r].alt||"";a&&(n.anim=-1),s.index=v.open(h.extend({type:1,id:"layui-layer-photos",area:(e=[e.width,e.height],t=[h(p).width()-100,h(p).height()-100],!n.full&&(t[0]<e[0]||t[1]<e[1])&&((t=[e[0]/t[0],e[1]/t[1]])[1]<t[0]?(e[0]=e[0]/t[0],e[1]=e[1]/t[0]):t[0]<t[1]&&(e[0]=e[0]/t[1],e[1]=e[1]/t[1])),[e[0]+"px",e[1]+"px"]),title:!1,shade:[.9,m,"unset"],shadeClose:!0,closeBtn:!1,move:".layer-layer-photos-main img",moveType:1,scrollbar:!1,moveOut:!0,anim:5,isOutAnim:!1,skin:"layui-layer-photos"+x("photos"),content:'<div class="layer-layer-photos-main"><img src="'+o[r].src+'" alt="'+i+'" layer-pid="'+(o[r].pid||"")+'">'+(t=['<div class="layui-layer-photos-pointer">'],1<o.length&&t.push(['<div class="layer-layer-photos-page">','<span class="layui-icon layui-icon-left layui-layer-photos-prev"></span>','<span class="layui-icon layui-icon-right layui-layer-photos-next"></span>',"</div>"].join("")),n.toolbar&&t.push(['<div class="layui-layer-photos-toolbar layui-layer-photos-header">','<span toolbar-event="rotate" data-option="90" title="\u65cb\u8f6c"><i class="layui-icon layui-icon-refresh"></i></span>','<span toolbar-event="scalex" title="\u53d8\u6362"><i class="layui-icon layui-icon-slider"></i></span>','<span toolbar-event="zoom" data-option="0.1" title="\u653e\u5927"><i class="layui-icon layui-icon-add-circle"></i></span>','<span toolbar-event="zoom" data-option="-0.1" title="\u7f29\u5c0f"><i class="layui-icon layui-icon-reduce-circle"></i></span>','<span toolbar-event="reset" title="\u8fd8\u539f"><i class="layui-icon layui-icon-refresh-1"></i></span>','<span toolbar-event="close" title="\u5173\u95ed"><i class="layui-icon layui-icon-close"></i></span>',"</div>"].join("")),n.footer&&t.push(['<div class="layui-layer-photos-toolbar layui-layer-photos-footer">',"<h3>"+i+"</h3>","<em>"+s.imgIndex+" / "+o.length+"</em>",'<a href="'+o[r].src+'" target="_blank">\u67e5\u770b\u539f\u56fe</a>',"</div>"].join("")),t.push("</div>"),t.join(""))+"</div>",success:function(e,t,i){s.main=e.find(".layer-layer-photos-main"),s.footer=e.find(".layui-layer-photos-footer"),s.imgElem=s.main.children("img"),s.event(e,t,i),n.tab&&n.tab(o[r],e),"function"==typeof l&&l(e)},end:function(){s.end=!0,h(document).off("keyup",s.keyup)}},n))},u=function(){v.close(s.loadi),v.msg("\u5f53\u524d\u56fe\u7247\u5730\u5740\u5f02\u5e38\uff0c<br>\u662f\u5426\u7ee7\u7eed\u67e5\u770b\u4e0b\u4e00\u5f20\uff1f",{time:3e4,btn:["\u4e0b\u4e00\u5f20","\u4e0d\u770b\u4e86"],yes:function(){1<o.length&&s.imgnext(!0,!0)}})},y=new Image;(y.src=t,y.complete)?f(y):(y.onload=function(){y.onload=null,f(y)},y.onerror=function(e){y.onerror=null,u(e)})}},f.run=function(e){g=(h=e)(p);var e=navigator.userAgent.toLowerCase(),e=/android|iphone|ipod|ipad|ios/.test(e),n=h(p);e&&h.each({Height:"height",Width:"width"},function(e,t){var i="inner"+e;g[t]=function(){return i in p?p[i]:n[t]()}}),u.html=h("html"),v.open=function(e){return new t(e).index}},p.layui&&layui.define?(v.ready(),layui.define(["jquery","lay"],function(e){v.path=layui.cache.dir,f.run(layui.$),e("layer",p.layer=v)})):"function"==typeof define&&define.amd?define(["jquery"],function(){return f.run(p.jQuery),v}):(v.ready(),f.run(p.jQuery))}(window);layui.define("jquery",function(t){"use strict";var s=layui.$,p=layui.hint(),e={fixbar:function(i){var o,t,e,n,r="layui-fixbar",a=s(document),c=(i=s.extend(!0,{target:"body",bars:[],"default":!0,margin:160,duration:320},i),s(i.target)),u=i.scroll?s(i.scroll):s("body"===i.target?a:c),l=(i["default"]&&(i.bar1&&i.bars.push({type:"bar1",icon:"layui-icon-chat"}),i.bar2&&i.bars.push({type:"bar2",icon:"layui-icon-help"}),i.bars.push({type:"top",icon:"layui-icon-top"})),s("<ul>").addClass(r));layui.each(i.bars,function(t,e){var n=s('<li class="layui-icon">');n.addClass(e.icon).attr({"lay-type":e.type,style:e.style||(i.bgcolor?"background-color: "+i.bgcolor:"")}).html(e.content),n.on("click",function(){var t=s(this).attr("lay-type");"top"===t&&("body"===i.target?s("html,body"):u).animate({scrollTop:0},i.duration),"function"==typeof i.click&&i.click.call(this,t)}),"object"===layui.type(i.on)&&layui.each(i.on,function(t,e){n.on(t,function(){var t=s(this).attr("lay-type");"function"==typeof e&&e.call(this,t)})}),"top"===e.type&&(n.addClass("layui-fixbar-top"),o=n),l.append(n)}),c.find("."+r).remove(),"object"==typeof i.css&&l.css(i.css),c.append(l),o&&(e=function e(){return u.scrollTop()>=i.margin?t||(o.show(),t=1):t&&(o.hide(),t=0),e}()),u.on("scroll",function(){e&&(clearTimeout(n),n=setTimeout(function(){e()},100))})},countdown:function(i){i=s.extend(!0,{date:new Date,now:new Date},i);var o=arguments,r=(1<o.length&&(i.date=new Date(o[0]),i.now=new Date(o[1]),i.clock=o[2]),{options:i,clear:function(){clearTimeout(r.timer)},reload:function(t){this.clear(),s.extend(!0,this.options,{now:new Date},t),a()}}),a=("function"==typeof i.ready&&i.ready(),function c(){var t=new Date(i.date),e=new Date(i.now),t=0<(t=t.getTime()-e.getTime())?t:0,n={d:Math.floor(t/864e5),h:Math.floor(t/36e5)%24,m:Math.floor(t/6e4)%60,s:Math.floor(t/1e3)%60};return 1<o.length&&(n=[n.d,n.h,n.m,n.s]),r.timer=setTimeout(function(){e.setTime(e.getTime()+1e3),i.now=e,a()},1e3),"function"==typeof i.clock&&i.clock(n,r),t<=0&&(clearTimeout(r.timer),"function"==typeof i.done)&&i.done(n,r),c}());return r},timeAgo:function(t,e){var n=this,i=[[],[]],o=(new Date).getTime()-new Date(t).getTime();return 26784e5<o?(o=new Date(t),i[0][0]=n.digit(o.getFullYear(),4),i[0][1]=n.digit(o.getMonth()+1),i[0][2]=n.digit(o.getDate()),e||(i[1][0]=n.digit(o.getHours()),i[1][1]=n.digit(o.getMinutes()),i[1][2]=n.digit(o.getSeconds())),i[0].join("-")+" "+i[1].join(":")):864e5<=o?(o/1e3/60/60/24|0)+" \u5929\u524d":36e5<=o?(o/1e3/60/60|0)+" \u5c0f\u65f6\u524d":18e4<=o?(o/1e3/60|0)+" \u5206\u949f\u524d":o<0?"\u672a\u6765":"\u521a\u521a"},digit:function(t,e){var n="";e=e||2;for(var i=(t=String(t)).length;i<e;i++)n+="0";return t<Math.pow(10,e)?n+(0|t):t},toDateString:function(t,e,n){var i,o,r,a,c,u,l,s,g,f,d;return null===t||""===t?"":(i=this,(o=new Date(function(){if(t)return!isNaN(t)&&"string"==typeof t?parseInt(t):t}()||new Date)).getDate()?(r=o.getFullYear(),a=o.getMonth(),c=o.getDate(),u=o.getHours(),l=o.getMinutes(),s=o.getSeconds(),g=o.getMilliseconds(),f=n&&n.customMeridiem||function(t,e){t=100*t+e;return t<600?"\u51cc\u6668":t<900?"\u65e9\u4e0a":t<1100?"\u4e0a\u5348":t<1300?"\u4e2d\u5348":t<1800?"\u4e0b\u5348":"\u665a\u4e0a"},d={yy:function(){return String(r).slice(-2)},yyyy:function(){return i.digit(r,4)},M:function(){return String(a+1)},MM:function(){return i.digit(a+1)},d:function(){return String(c)},dd:function(){return i.digit(c)},H:function(){return String(u)},HH:function(){return i.digit(u)},h:function(){return String(u%12||12)},hh:function(){return i.digit(u%12||12)},A:function(){return f(u,l)},m:function(){return String(l)},mm:function(){return i.digit(l)},s:function(){return String(s)},ss:function(){return i.digit(s)},SSS:function(){return i.digit(g,3)}},(e=e||"yyyy-MM-dd HH:mm:ss").replace(/\[([^\]]+)]|y{1,4}|M{1,2}|d{1,2}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|SSS/g,function(t,e){return e||d[t]&&d[t]()||t})):(p.error('Invalid millisecond for "util.toDateString(millisecond)"'),""))},escape:function(t){return t===undefined||null===t?"":/[<"'>]|&(?=#[a-zA-Z0-9]+)/g.test(t+="")?t.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,"""):t},unescape:function(t){return t!==undefined&&null!==t||(t=""),(t+="").replace(/\&/g,"&").replace(/\</g,"<").replace(/\>/g,">").replace(/\'/g,"'").replace(/\"/g,'"')},openWin:function(t){var e=(t=t||{}).window||window.open(t.url||"",t.target,t.specs);t.url||(e.document.open("text/html","replace"),e.document.write(t.content||""),e.document.close())},toVisibleArea:function(t){var e,n,i,o,r,a,c,u;(t=s.extend({margin:160,duration:200,type:"y"},t)).scrollElem[0]&&t.thisElem[0]&&(e=t.scrollElem,c=t.thisElem,i=(r="y"===t.type)?"top":"left",o=e[n=r?"scrollTop":"scrollLeft"](),r=e[r?"height":"width"](),a=e.offset()[i],u={},(c=c.offset()[i]-a)>r-t.margin||c<t.margin)&&(u[n]=c-r/2+o,e.animate(u,t.duration))},on:function(i,o,t){"object"==typeof i&&(t=o||{},o=i,i=t.attr||"lay-on");var e,n=(t=s.extend({elem:"body",trigger:"click"},"object"==typeof t?t:{trigger:t})).elem=s(t.elem),r="["+i+"]",a="UTIL_ON_DATA";if(n[0])return n.data(a)||n.data(a,{events:{},callbacks:{}}),e=(a=n.data(a)).callbacks,o=a.events[i]=s.extend(!0,a.events[i],o),n.off(t.trigger,r,e[i]),n.on(t.trigger,r,e[i]=function(t){var e=s(this),n=e.attr(i);"function"==typeof o[n]&&o[n].call(this,e,t)}),o}};e.event=e.on,t("util",e)});layui.define(["jquery","laytpl","lay","util"],function(e){"use strict";var n,i,t,c=layui.$,m=layui.laytpl,p=layui.util,l=layui.hint(),o=layui.device().mobile?"touchstart":"mousedown",r="dropdown",y="layui_"+r+"_index",f="lay-"+r+"-id",h={config:{customName:{id:"id",title:"title",children:"child"}},index:layui[r]?layui[r].index+1e4:0,set:function(e){var i=this;return i.config=c.extend({},i.config,e),i},on:function(e,i){return layui.onevent.call(this,r,e,i)}},g=function(){var i=this,e=i.config,t=e.id;return g.that[t]=i,{config:e,reload:function(e){i.reload.call(i,e)},reloadData:function(e){h.reloadData(t,e)},close:function(){i.remove()},open:function(){i.render()}}},v="layui-dropdown",a="layui-menu-item-up",d="layui-menu-item-down",w="layui-menu-body-title",s="layui-menu-item-group",V="layui-menu-item-parent",u="layui-menu-item-checked",C="layui-menu-item-checked2",x="layui-menu-body-panel",b="layui-menu-body-panel-left",k="layui-dropdown-shade",T="."+s+">."+w,E=function(e){var i=this;i.index=++h.index,i.config=c.extend({},i.config,h.config,e),i.init()};E.prototype.config={trigger:"click",content:"",className:"",style:"",show:!1,isAllowSpread:!0,isSpreadItem:!0,data:[],delay:[200,300],shade:0,accordion:!1},E.prototype.reload=function(e,i){var t=this;t.config=c.extend({},t.config,e),t.init(!0,i)},E.prototype.init=function(e,i){var t,n=this,l=n.config,a=c(l.elem);return 1<a.length?(layui.each(a,function(){h.render(c.extend({},l,{elem:this}))}),n):(c.extend(l,lay.options(a[0])),!e&&a[0]&&a.attr(f)?(t=g.getThis(a.attr(f)))?t.reload(l,i):void 0:(l.elem=c(l.elem),l.id="id"in l?l.id:a.attr("id")||n.index,a.attr(f,l.id),l.customName=c.extend({},h.config.customName,l.customName),(l.show||"reloadData"===i&&n.elemView&&c("body").find(n.elemView.get(0)).length)&&n.render(e,i),void n.events()))},E.prototype.render=function(e,i){var a=this,d=a.config,s=d.customName,t=c("body"),n=function(){var e=c('<ul class="layui-menu layui-dropdown-menu"></ul>');return 0<d.data.length?u(e,d.data):e.html('<li class="layui-menu-item-none">\u6682\u65e0\u6570\u636e</li>'),e},u=function(r,e){return layui.each(e,function(e,i){var t,n=i[s.children]&&0<i[s.children].length,l=("isSpreadItem"in i?i:d).isSpreadItem,a=(o=p.escape(i[s.title]),a=i.templet||d.templet,o=a?"function"==typeof a?a(i):m(a).render(i):o),o=(n&&(i.type=i.type||"parent"),i.type?{group:"group",parent:"parent","-":"-"}[i.type]||"parent":"");("-"===o||i[s.title]||i[s.id]||n)&&((a=c(["<li"+(t={group:"layui-menu-item-group"+(d.isAllowSpread?l?" layui-menu-item-down":" layui-menu-item-up":""),parent:V,"-":"layui-menu-item-divider"},n||o?' class="'+t[o]+'"':i.disabled?' class="layui-disabled"':"")+">",(t="href"in i?'<a href="'+i.href+'" target="'+(i.target||"_self")+'">'+a+"</a>":a,n?'<div class="'+w+'">'+t+("parent"===o?'<i class="layui-icon layui-icon-right"></i>':"group"===o&&d.isAllowSpread?'<i class="layui-icon layui-icon-'+(l?"up":"down")+'"></i>':"")+"</div>":'<div class="'+w+'">'+t+"</div>"),"</li>"].join(""))).data("item",i),n&&(l=c('<div class="layui-panel layui-menu-body-panel"></div>'),t=c("<ul></ul>"),"parent"===o?(l.append(u(t,i[s.children])),a.append(l)):a.append(u(t,i[s.children]))),r.append(a))}),r},l=['<div class="layui-dropdown layui-border-box layui-panel layui-anim layui-anim-downbit" '+f+'="'+d.id+'">',"</div>"].join("");!(e="contextmenu"!==d.trigger&&!lay.isTopElem(d.elem[0])?e:!0)&&d.elem.data(y+"_opened")||(a.elemView=c("."+v+"["+f+'="'+d.id+'"]'),"reloadData"===i&&a.elemView.length?a.elemView.html(d.content||n()):(a.elemView=c(l),a.elemView.append(d.content||n()),d.className&&a.elemView.addClass(d.className),d.style&&a.elemView.attr("style",d.style),h.thisId=d.id,a.remove(),t.append(a.elemView),d.elem.data(y+"_opened",!0),e=d.shade?'<div class="'+k+'" style="z-index:'+(a.elemView.css("z-index")-1)+"; background-color: "+(d.shade[1]||"#000")+"; opacity: "+(d.shade[0]||d.shade)+'"></div>':"",a.elemView.before(e),"mouseenter"===d.trigger&&a.elemView.on("mouseenter",function(){clearTimeout(g.timer)}).on("mouseleave",function(){a.delayRemove()})),a.position(),(g.prevElem=a.elemView).data("prevElem",d.elem),a.elemView.find(".layui-menu").on(o,function(e){layui.stope(e)}),a.elemView.find(".layui-menu li").on("click",function(e){var i=c(this),t=i.data("item")||{},n=t[s.children]&&0<t[s.children].length,l="all"===d.clickScope;t.disabled||n&&!l||"-"===t.type||(!1===("function"==typeof d.click?d.click(t,i):null)||n||a.remove(),layui.stope(e))}),a.elemView.find(T).on("click",function(e){var i=c(this).parent();"group"===(i.data("item")||{}).type&&d.isAllowSpread&&g.spread(i,d.accordion)}),"function"==typeof d.ready&&d.ready(a.elemView,d.elem))},E.prototype.position=function(e){var i=this.config;lay.position(i.elem[0],this.elemView[0],{position:i.position,e:this.e,clickType:"contextmenu"===i.trigger?"right":null,align:i.align||null})},E.prototype.remove=function(){this.config;var e,i,t,n=g.prevElem;n&&(i=n.attr(f),e=n.data("prevElem"),t=(i=g.getThis(i)).config.close,e&&e.data(y+"_opened",!1),n.remove(),delete g.prevElem,"function"==typeof t)&&t.call(i.config,e),lay("."+k).remove()},E.prototype.normalizedDelay=function(){var e=this.config,e=[].concat(e.delay);return{show:e[0],hide:e[1]!==undefined?e[1]:e[0]}},E.prototype.delayRemove=function(){var e=this;e.config;clearTimeout(g.timer),g.timer=setTimeout(function(){e.remove()},e.normalizedDelay().hide)},E.prototype.events=function(){var i=this,e=i.config,t=("hover"===e.trigger&&(e.trigger="mouseenter"),i.prevElem&&i.prevElem.off(e.trigger,i.prevElemCallback),"mouseenter"===e.trigger);i.prevElem=e.elem,i.prevElemCallback=function(e){clearTimeout(g.timer),i.e=e,t?g.timer=setTimeout(function(){i.render()},i.normalizedDelay().show):i.render(),e.preventDefault()},e.elem.on(e.trigger,i.prevElemCallback),t&&e.elem.on("mouseleave",function(){i.delayRemove()})},g.that={},g.getThis=function(e){var i=g.that[e];return i||l.error(e?r+" instance with ID '"+e+"' not found":"ID argument required"),i},g.spread=function(e,i){var t=e.children("ul"),n=e.hasClass(a),l=function(){c(this).css({display:""})};t.is(":animated")||(n?(e.removeClass(a).addClass(d),t.hide().stop().slideDown(200,l)):(t.stop().slideUp(200,l),e.removeClass(d).addClass(a)),n&&i&&((t=e.siblings("."+d)).children("ul").stop().slideUp(200,l),t.removeClass(d).addClass(a)))},n=c(window),i=c(document),n.on("resize",function(){if(h.thisId){var e=g.getThis(h.thisId);if(e)return!(e.elemView&&!e.elemView[0]||!c("."+v)[0])&&void("contextmenu"===e.config.trigger?e.remove():e.position())}}),i.on(o,function(e){var i,t;h.thisId&&(i=g.getThis(h.thisId))&&(t=i.config,!lay.isTopElem(t.elem[0])&&"contextmenu"!==t.trigger&&(e.target===t.elem[0]||t.elem.find(e.target)[0]||i.elemView&&e.target===i.elemView[0]||i.elemView&&i.elemView.find(e.target)[0])||i.remove())}),t=".layui-menu:not(.layui-dropdown-menu) li",i.on("click",t,function(e){var i=c(this),t=i.parents(".layui-menu").eq(0),n=i.hasClass(s)||i.hasClass(V),l=t.attr("lay-filter")||t.attr("id"),a=lay.options(this);i.hasClass("layui-menu-item-divider")||n||(t.find("."+u).removeClass(u),t.find("."+C).removeClass(C),i.addClass(u),i.parents("."+V).addClass(C),a.title=a.title||c.trim(i.children("."+w).text()),layui.event.call(this,r,"click("+l+")",a))}),i.on("click",t+T,function(e){var i=c(this),t=i.parents("."+s+":eq(0)"),n=lay.options(t[0]),i="string"==typeof i.parents(".layui-menu").eq(0).attr("lay-accordion");"isAllowSpread"in n&&!n.isAllowSpread||g.spread(t,i)}),t=".layui-menu ."+V,i.on("mouseenter",t,function(e){var i,t=c(this).find("."+x);t[0]&&((i=t[0].getBoundingClientRect()).right>n.width()&&(t.addClass(b),(i=t[0].getBoundingClientRect()).left<0)&&t.removeClass(b),i.bottom>n.height())&&t.eq(0).css("margin-top",-(i.bottom-n.height()+5))}).on("mouseleave",t,function(e){var i=c(this).children("."+x);i.removeClass(b),i.css("margin-top",0)}),h.close=function(e){e=g.getThis(e);return e?(e.remove(),g.call(e)):this},h.open=function(e){e=g.getThis(e);return e?(e.render(),g.call(e)):this},h.reload=function(e,i,t){e=g.getThis(e);return e?(e.reload(i,t),g.call(e)):this},h.reloadData=function(){var t=c.extend([],arguments),n=(t[2]="reloadData",new RegExp("^("+["data","templet","content"].join("|")+")$"));return layui.each(t[1],function(e,i){n.test(e)||delete t[1][e]}),h.reload.apply(null,t)},h.render=function(e){e=new E(e);return g.call(e)},e(r,h)});layui.define(["jquery","lay"],function(e){"use strict";var x=layui.$,b=layui.lay,m={config:{},index:layui.slider?layui.slider.index+1e4:0,set:function(e){var t=this;return t.config=x.extend({},t.config,e),t},on:function(e,t){return layui.onevent.call(this,i,e,t)}},i="slider",f="layui-disabled",T="layui-slider-bar",w="layui-slider-wrap",M="layui-slider-wrap-btn",L="layui-slider-tips",E="layui-slider-input-txt",Y="layui-slider-hover",t=function(e){var t=this;t.index=++m.index,t.config=x.extend({},t.config,m.config,e),t.render()};t.prototype.config={type:"default",min:0,max:100,value:0,step:1,showstep:!1,tips:!0,tipsAlways:!1,input:!1,range:!1,height:200,disabled:!1,theme:"#16baaa"},t.prototype.precision=function(){var e=this.config,e=x.map([e.min,e.max,e.step],function(e,t){e=String(e).split(".");return e[1]?e[1].length:0});return Math.max.apply(null,e)},t.prototype.render=function(){var n=this,a=n.config,e=x(a.elem);if(1<e.length)return layui.each(e,function(){m.render(x.extend({},a,{elem:this}))}),n;x.extend(a,b.options(e[0])),a.step<=0&&(a.step=1),a.max<a.min&&(a.max=a.min+a.step),a.range?(a.value="object"==typeof a.value?a.value:[a.min,a.value],e=Math.min(a.value[0],a.value[1]),i=Math.max(a.value[0],a.value[1]),a.value[0]=Math.max(e,a.min),a.value[1]=Math.max(i,a.min),a.value[0]=Math.min(a.value[0],a.max),a.value[1]=Math.min(a.value[1],a.max),i=(a.value[0]-a.min)/(a.max-a.min)*100,l=(s=(a.value[1]-a.min)/(a.max-a.min)*100)-i+"%",i+="%",s+="%"):("object"==typeof a.value&&(a.value=Math.min.apply(null,a.value)),a.value<a.min&&(a.value=a.min),a.value>a.max&&(a.value=a.max),l=(a.value-a.min)/(a.max-a.min)*100+"%");var t,e=a.disabled?"#c2c2c2":a.theme,i='<div class="layui-slider '+("vertical"===a.type?"layui-slider-vertical":"")+'">'+(a.tips?'<div class="'+L+'" '+(a.tipsAlways?"":'style="display:none;"')+"></div>":"")+'<div class="layui-slider-bar" style="background:'+e+"; "+("vertical"===a.type?"height":"width")+":"+l+";"+("vertical"===a.type?"bottom":"left")+":"+(i||0)+';"></div><div class="layui-slider-wrap" style="'+("vertical"===a.type?"bottom":"left")+":"+(i||l)+';"><div class="layui-slider-wrap-btn" style="border: 2px solid '+e+';"></div></div>'+(a.range?'<div class="layui-slider-wrap" style="'+("vertical"===a.type?"bottom":"left")+":"+s+';"><div class="layui-slider-wrap-btn" style="border: 2px solid '+e+';"></div></div>':"")+"</div>",l=x(a.elem),s=l.next(".layui-slider");if(s[0]&&s.remove(),n.elemTemp=x(i),a.range?(n.elemTemp.find("."+w).eq(0).data("value",a.value[0]),n.elemTemp.find("."+w).eq(1).data("value",a.value[1])):n.elemTemp.find("."+w).data("value",a.value),l.html(n.elemTemp),"vertical"===a.type&&n.elemTemp.height(a.height+"px"),a.showstep){for(var o=(a.max-a.min)/a.step,r="",u=1;u<1+o;u++){var c=100*u/o;c<100&&(r+='<div class="layui-slider-step" style="'+("vertical"===a.type?"bottom":"left")+":"+c+'%"></div>')}n.elemTemp.append(r)}function d(e){e=e.parent().data("value"),e=a.setTips?a.setTips(e):e;n.elemTemp.find("."+L).html(e)}function p(e){var t="vertical"===a.type?a.height:n.elemTemp[0].offsetWidth,i=n.elemTemp.find("."+w);return("vertical"===a.type?t-e.parent()[0].offsetTop-i.height():e.parent()[0].offsetLeft)/t*100}function v(e){"vertical"===a.type?n.elemTemp.find("."+L).css({bottom:e+"%","margin-bottom":"20px",display:"inline-block"}):n.elemTemp.find("."+L).css({left:e+"%",display:"inline-block"})}a.input&&!a.range&&(e=x('<div class="layui-slider-input"><div class="layui-slider-input-txt"><input type="text" class="layui-input"></div><div class="layui-slider-input-btn"><i class="layui-icon layui-icon-up"></i><i class="layui-icon layui-icon-down"></i></div></div>'),l.css("position","relative"),l.append(e),l.find("."+E).children("input").val(a.value),"vertical"===a.type?e.css({left:0,top:-48}):n.elemTemp.css("margin-right",e.outerWidth()+15)),a.disabled?(n.elemTemp.addClass(f),n.elemTemp.find("."+M).addClass(f)):n.slide(),a.tips&&(a.tipsAlways?(d(s=n.elemTemp.find("."+M)),v(p(s))):n.elemTemp.find("."+M).on("mouseover",function(){d(x(this));var e=p(x(this));clearTimeout(t),t=setTimeout(function(){v(e)},300)}).on("mouseout",function(){clearTimeout(t),a.tipsAlways||n.elemTemp.find("."+L).css("display","none")}))},t.prototype.slide=function(e,t,i){var u=this,c=u.config,d=u.elemTemp,p=function(){return"vertical"===c.type?c.height:d[0].offsetWidth},v=d.find("."+w),o=d.next(".layui-slider-input"),r=o.children("."+E).children("input").val(),m=100/((c.max-c.min)/c.step),f=u.precision(),h=function(e,t,i){e=(e=100<(e=100<Math.ceil(e)*m?Math.ceil(e)*m:Math.round(e)*m)?100:e)<0?0:e,v.eq(t).css("vertical"===c.type?"bottom":"left",e+"%");var n,a=y(v[0].offsetLeft),l=c.range?y(v[1].offsetLeft):0,s=("vertical"===c.type?(d.find("."+L).css({bottom:e+"%","margin-bottom":"20px"}),a=y(p()-v[0].offsetTop-v.height()),l=c.range?y(p()-v[1].offsetTop-v.height()):0):d.find("."+L).css("left",e+"%"),a=100<a?100:a,l=100<l?100:l,Math.min(a,l)),a=Math.abs(a-l),l=("vertical"===c.type?d.find("."+T).css({height:a+"%",bottom:s+"%"}):d.find("."+T).css({width:a+"%",left:s+"%"}),c.min+(c.max-c.min)*e/100),l=Number(parseFloat(l).toFixed(f));r=l,o.children("."+E).children("input").val(r),v.eq(t).data("value",l),d.find("."+L).html(c.setTips?c.setTips(l):l),c.range&&(n=[v.eq(0).data("value"),v.eq(1).data("value")])[0]>n[1]&&n.reverse(),u.value=c.range?n:l,c.change&&c.change(u.value),"done"===i&&c.done&&c.done(u.value)},y=function(e){var t=e/p()*100/m,i=Math.round(t)*m;return i=e==p()?Math.ceil(t)*m:i},g=x(['<div class="layui-auxiliar-moving" id="LAY-slider-moving"></div'].join(""));if("set"===e)return h((t-c.min)/(c.max-c.min)*100/m,i,"done");d.find("."+M).each(function(o){var r=x(this);r.on("mousedown touchstart",function(e){"touchstart"===(e=e||window.event).type&&(e.clientX=e.originalEvent.touches[0].clientX,e.clientY=e.originalEvent.touches[0].clientY);var t,i,n,a,l=r.parent()[0].offsetLeft,s=e.clientX;"vertical"===c.type&&(l=p()-r.parent()[0].offsetTop-v.height(),s=e.clientY);t=r,i=function(e){"touchmove"===(e=e||window.event).type&&(e.clientX=e.touches[0].clientX,e.clientY=e.touches[0].clientY);var t=l+("vertical"===c.type?s-e.clientY:e.clientX-s),t=(t=(t=t<0?0:t)>p()?p():t)/p()*100/m;h(t,o),r.addClass(Y),d.find("."+L).show(),e.preventDefault()},n=function(e){r.removeClass(Y),c.tipsAlways||setTimeout(function(){d.find("."+L).hide()},e)},a=function(){n&&n(b.touchEventsSupported()?1e3:0),g.remove(),c.done&&c.done(u.value),b.touchEventsSupported()&&(t[0].removeEventListener("touchmove",i,!!b.passiveSupported&&{passive:!1}),t[0].removeEventListener("touchend",a),t[0].removeEventListener("touchcancel",a))},x("#LAY-slider-moving")[0]||x("body").append(g),g.on("mousemove",i),g.on("mouseup",a).on("mouseleave",a),b.touchEventsSupported()&&(t[0].addEventListener("touchmove",i,!!b.passiveSupported&&{passive:!1}),t[0].addEventListener("touchend",a),t[0].addEventListener("touchcancel",a))})}),d.on("click",function(e){var t=x("."+M),i=x(this);!t.is(event.target)&&0===t.has(event.target).length&&t.length&&(i=(t=(t=(t="vertical"===c.type?p()-e.clientY+i.offset().top-x(window).scrollTop():e.clientX-i.offset().left-x(window).scrollLeft())<0?0:t)>p()?p():t)/p()*100/m,t=c.range?"vertical"===c.type?Math.abs(t-parseInt(x(v[0]).css("bottom")))>Math.abs(t-parseInt(x(v[1]).css("bottom")))?1:0:Math.abs(t-v[0].offsetLeft)>Math.abs(t-v[1].offsetLeft)?1:0:0,h(i,t,"done"),e.preventDefault())}),o.children(".layui-slider-input-btn").children("i").each(function(t){x(this).on("click",function(){r=o.children("."+E).children("input").val();var e=((r=1==t?r-c.step<c.min?c.min:Number(r)-c.step:Number(r)+c.step>c.max?c.max:Number(r)+c.step)-c.min)/(c.max-c.min)*100/m;h(e,0,"done")})});var n=function(){var e=this.value,e=(e=(e=(e=isNaN(e)?0:e)<c.min?c.min:e)>c.max?c.max:e,((this.value=e)-c.min)/(c.max-c.min)*100/m);h(e,0,"done")};o.children("."+E).children("input").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),n.call(this))}).on("change",n)},t.prototype.events=function(){this.config},m.render=function(e){e=new t(e);return function(){var i=this,n=i.config;return{setValue:function(e,t){return e=(e=e>n.max?n.max:e)<n.min?n.min:e,n.value=e,i.slide("set",e,t||0)},config:n}}.call(e)},e(i,m)});layui.define(["jquery","lay"],function(e){"use strict";var x=layui.$,P=layui.lay,o=layui.hint(),i=layui.device().mobile?"click":"mousedown",r={config:{},index:layui.colorpicker?layui.colorpicker.index+1e4:0,set:function(e){var i=this;return i.config=x.extend({},i.config,e),i},on:function(e,i){return layui.onevent.call(this,"colorpicker",e,i)}},n=function(){var e=this.config,i=e.id;return n.that[i]=this,{config:e}},t="colorpicker",l="layui-colorpicker",c=".layui-colorpicker-main",C="layui-icon-down",w="layui-icon-close",T="layui-colorpicker-trigger-span",B="layui-colorpicker-trigger-i",I="layui-colorpicker-side-slider",E="layui-colorpicker-basis",D="layui-colorpicker-alpha-bgcolor",Y="layui-colorpicker-alpha-slider",M="layui-colorpicker-basis-cursor",X="layui-colorpicker-main-input",j=function(e){var i={h:0,s:0,b:0},o=Math.min(e.r,e.g,e.b),t=Math.max(e.r,e.g,e.b),n=t-o;return i.b=t,i.s=0!==t?255*n/t:0,0!==i.s?e.r==t?i.h=(e.g-e.b)/n:e.g==t?i.h=2+(e.b-e.r)/n:i.h=4+(e.r-e.g)/n:i.h=-1,t===o&&(i.h=0),i.h*=60,i.h<0&&(i.h+=360),i.s*=100/255,i.b*=100/255,i},F=function(e){var i,o={},t=e.h,n=255*e.s/100,e=255*e.b/100;return 0==n?o.r=o.g=o.b=e:(e=t%60*((i=e)-(n=(255-n)*e/255))/60,(t=360===t?0:t)<60?(o.r=i,o.b=n,o.g=n+e):t<120?(o.g=i,o.b=n,o.r=i-e):t<180?(o.g=i,o.r=n,o.b=n+e):t<240?(o.b=i,o.r=n,o.g=i-e):t<300?(o.b=i,o.g=n,o.r=n+e):t<360?(o.r=i,o.g=n,o.b=i-e):(o.r=0,o.g=0,o.b=0)),{r:Math.round(o.r),g:Math.round(o.g),b:Math.round(o.b)}},H=function(e){var e=F(e),o=[e.r.toString(16),e.g.toString(16),e.b.toString(16)];return x.each(o,function(e,i){1===i.length&&(o[e]="0"+i)}),o.join("")},L=function(e){e=e.match(/[0-9]{1,3}/g)||[];return{r:e[0],g:e[1],b:e[2]}},W=x(window),a=x(document),s=function(e){this.index=++r.index,this.config=x.extend({},this.config,r.config,e),this.render()};s.prototype.config={color:"",size:null,alpha:!1,format:"hex",predefine:!1,colors:["#16baaa","#16b777","#1E9FFF","#FF5722","#FFB800","#01AAED","#999","#c00","#ff8c00","#ffd700","#90ee90","#00ced1","#1e90ff","#c71585","rgb(0, 186, 189)","rgb(255, 120, 0)","rgb(250, 212, 0)","#393D49","rgba(0,0,0,.5)","rgba(255, 69, 0, 0.68)","rgba(144, 240, 144, 0.5)","rgba(31, 147, 255, 0.73)"]},s.prototype.render=function(){var e=this,i=e.config;if(1<(t=x(i.elem)).length)return layui.each(t,function(){r.render(x.extend({},i,{elem:this}))}),e;x.extend(i,P.options(t[0]));var o=x(['<div class="layui-unselect layui-colorpicker">',"<span "+("rgb"==i.format&&i.alpha?'class="layui-colorpicker-trigger-bgcolor"':"")+">",'<span class="layui-colorpicker-trigger-span" ','lay-type="'+("rgb"==i.format?i.alpha?"rgba":"torgb":"")+'" ','style="'+(o="",i.color?(o=i.color,3<(i.color.match(/[0-9]{1,3}/g)||[]).length&&(i.alpha&&"rgb"==i.format||(o="#"+H(j(L(i.color))))),"background: "+o):o)+'">','<i class="layui-icon layui-colorpicker-trigger-i '+(i.color?C:w)+'"></i>',"</span>","</span>","</div>"].join("")),t=i.elem=x(i.elem);i.size&&o.addClass("layui-colorpicker-"+i.size),t.addClass("layui-inline").html(e.elemColorBox=o),i.id="id"in i?i.id:t.attr("id")||e.index,e.color=e.elemColorBox.find("."+T)[0].style.background,e.events()},s.prototype.renderPicker=function(){var o,e=this,i=e.config,t=e.elemColorBox[0],n=e.elemPicker=x(['<div id="layui-colorpicker'+e.index+'" data-index="'+e.index+'" class="layui-anim layui-anim-downbit layui-colorpicker-main">','<div class="layui-colorpicker-main-wrapper">','<div class="layui-colorpicker-basis">','<div class="layui-colorpicker-basis-white"></div>','<div class="layui-colorpicker-basis-black"></div>','<div class="layui-colorpicker-basis-cursor"></div>',"</div>",'<div class="layui-colorpicker-side">','<div class="layui-colorpicker-side-slider"></div>',"</div>","</div>",'<div class="layui-colorpicker-main-alpha '+(i.alpha?"layui-show":"")+'">','<div class="layui-colorpicker-alpha-bgcolor">','<div class="layui-colorpicker-alpha-slider"></div>',"</div>","</div>",i.predefine?(o=['<div class="layui-colorpicker-main-pre">'],layui.each(i.colors,function(e,i){o.push(['<div class="layui-colorpicker-pre'+(3<(i.match(/[0-9]{1,3}/g)||[]).length?" layui-colorpicker-pre-isalpha":"")+'">','<div style="background:'+i+'"></div>',"</div>"].join(""))}),o.push("</div>"),o.join("")):"",'<div class="layui-colorpicker-main-input">','<div class="layui-inline">','<input type="text" class="layui-input">',"</div>",'<div class="layui-btn-container">','<button class="layui-btn layui-btn-primary layui-btn-sm" colorpicker-events="clear">\u6e05\u7a7a</button>','<button class="layui-btn layui-btn-sm" colorpicker-events="confirm">\u786e\u5b9a</button>',"</div","</div>","</div>"].join(""));e.elemColorBox.find("."+T)[0];x(c)[0]&&x(c).data("index")==e.index?e.removePicker(s.thisElemInd):(e.removePicker(s.thisElemInd),x("body").append(n)),r.thisId=i.id,s.thisElemInd=e.index,s.thisColor=t.style.background,e.position(),e.pickerEvents()},s.prototype.removePicker=function(e){var i=this.config,e=x("#layui-colorpicker"+(e||this.index));return e[0]&&(e.remove(),delete r.thisId,"function"==typeof i.close)&&i.close(this.color),this},s.prototype.position=function(){var e=this,i=e.config;return P.position(e.bindElem||e.elemColorBox[0],e.elemPicker[0],{position:i.position,align:"center"}),e},s.prototype.val=function(){var e,i=this,o=(i.config,i.elemColorBox.find("."+T)),t=i.elemPicker.find("."+X),n=o[0].style.backgroundColor;n?(e=j(L(n)),o=o.attr("lay-type"),i.select(e.h,e.s,e.b),"torgb"===o?t.find("input").val(n):"rgba"===o?(o=L(n),3===(n.match(/[0-9]{1,3}/g)||[]).length?(t.find("input").val("rgba("+o.r+", "+o.g+", "+o.b+", 1)"),i.elemPicker.find("."+Y).css("left",280)):(t.find("input").val(n),n=280*n.slice(n.lastIndexOf(",")+1,n.length-1),i.elemPicker.find("."+Y).css("left",n)),i.elemPicker.find("."+D)[0].style.background="linear-gradient(to right, rgba("+o.r+", "+o.g+", "+o.b+", 0), rgb("+o.r+", "+o.g+", "+o.b+"))"):t.find("input").val("#"+H(e))):(i.select(0,100,100),t.find("input").val(""),i.elemPicker.find("."+D)[0].style.background="",i.elemPicker.find("."+Y).css("left",280))},s.prototype.side=function(){var r=this,l=r.config,c=r.elemColorBox.find("."+T),a=c.attr("lay-type"),s=r.elemPicker.find(".layui-colorpicker-side"),o=r.elemPicker.find("."+I),d=r.elemPicker.find("."+E),t=r.elemPicker.find("."+M),u=r.elemPicker.find("."+D),f=r.elemPicker.find("."+Y),p=o[0].offsetTop/180*360,h=100-(t[0].offsetTop+3)/180*100,g=(t[0].offsetLeft+3)/260*100,v=Math.round(f[0].offsetLeft/280*100)/100,m=r.elemColorBox.find("."+B),e=r.elemPicker.find(".layui-colorpicker-pre").children("div"),y=function(e,i,o,t){r.select(e,i,o);var n=F({h:e,s:i,b:o}),e=H({h:e,s:i,b:o}),i=r.elemPicker.find("."+X).find("input");m.addClass(C).removeClass(w),c[0].style.background="rgb("+n.r+", "+n.g+", "+n.b+")","torgb"===a?i.val("rgb("+n.r+", "+n.g+", "+n.b+")"):"rgba"===a?(f.css("left",280*t),i.val("rgba("+n.r+", "+n.g+", "+n.b+", "+t+")"),c[0].style.background="rgba("+n.r+", "+n.g+", "+n.b+", "+t+")",u[0].style.background="linear-gradient(to right, rgba("+n.r+", "+n.g+", "+n.b+", 0), rgb("+n.r+", "+n.g+", "+n.b+"))"):i.val("#"+e),l.change&&l.change(x.trim(r.elemPicker.find("."+X).find("input").val()))},i=x(['<div class="layui-auxiliar-moving" id="LAY-colorpicker-moving"></div>'].join("")),b=function(e){x("#LAY-colorpicker-moving")[0]||x("body").append(i),i.on("mousemove",e),i.on("mouseup",function(){i.remove()}).on("mouseleave",function(){i.remove()})},n=!0,k=!0;o.on("mousedown",function(e,i){var t=this.offsetTop,n=(e.clientY===undefined?i:e).clientY;k&&layui.stope(e),b(function(e){var i=t+(e.clientY-n),o=s[0].offsetHeight,o=(i=o<(i=i<0?0:i)?o:i)/180*360;y(p=o,g,h,v),e.preventDefault()}),e.preventDefault()}),s.on("mousedown",function(e){var i=e.clientY-x(this).offset().top+W.scrollTop(),i=(i=(i=i<0?0:i)>this.offsetHeight?this.offsetHeight:i)/180*360;y(p=i,g,h,v),e.preventDefault(),n&&o.trigger("mousedown",e)}),t.on("mousedown",function(e,i){var r=this.offsetTop,l=this.offsetLeft,c=(e.clientY===undefined?i:e).clientY,a=(e.clientX===undefined?i:e).clientX;k&&layui.stope(e),b(function(e){var i=r+(e.clientY-c),o=l+(e.clientX-a),t=d[0].offsetHeight,n=d[0].offsetWidth,n=(o=n<(o=o<0?0:o)?n:o)/260*100,o=100-(i=t<(i=i<0?0:i)?t:i)/180*100;y(p,g=n,h=o,v),e.preventDefault()}),e.preventDefault()}),d.on("mousedown",function(e){var i=e.clientY-x(this).offset().top+W.scrollTop(),o=e.clientX-x(this).offset().left+W.scrollLeft(),o=((i=i<0?0:i)>this.offsetHeight&&(i=this.offsetHeight),(o=(o=o<0?0:o)>this.offsetWidth?this.offsetWidth:o)/260*100),i=100-i/180*100;y(p,g=o,h=i,v),layui.stope(e),e.preventDefault(),n&&t.trigger("mousedown",e)}),f.on("mousedown",function(e,i){var t=this.offsetLeft,n=(e.clientX===undefined?i:e).clientX;k&&layui.stope(e),b(function(e){var i=t+(e.clientX-n),o=u[0].offsetWidth,o=(o<(i=i<0?0:i)&&(i=o),Math.round(i/280*100)/100);y(p,g,h,v=o),e.preventDefault()}),e.preventDefault()}),u.on("mousedown",function(e){var i=e.clientX-x(this).offset().left,i=((i=i<0?0:i)>this.offsetWidth&&(i=this.offsetWidth),Math.round(i/280*100)/100);y(p,g,h,v=i),e.preventDefault(),n&&f.trigger("mousedown",e)}),e.each(function(){x(this).on("click",function(){x(this).parent(".layui-colorpicker-pre").addClass("selected").siblings().removeClass("selected");var e=this.style.backgroundColor,i=j(L(e)),o=e.slice(e.lastIndexOf(",")+1,e.length-1);p=i.h,g=i.s,h=i.b,3===(e.match(/[0-9]{1,3}/g)||[]).length&&(o=1),v=o,y(i.h,i.s,i.b,o)})}),P.touchEventsSupported()&&layui.each([{elem:s,eventType:"mousedown"},{elem:u,eventType:"mousedown"},{elem:d,eventType:"mousedown"}],function(e,t){P.touchSwipe(t.elem,{onTouchStart:function(){k=n=!1},onTouchMove:function(e){var i,o;e=e,i=t.eventType,e=e.touches[0],(o=document.createEvent("MouseEvent")).initMouseEvent(i,!0,!0,window,1,e.screenX,e.screenY,e.clientX,e.clientY,!1,!1,!1,!1,0,null),e.target.dispatchEvent(o)},onTouchEnd:function(){i.remove(),k=n=!0}})})},s.prototype.select=function(e,i,o,t){this.config;var n=H({h:e,s:100,b:100}),e=(H({h:e,s:i,b:o}),e/360*180),o=180-o/100*180,i=i/100*260,r=this.elemPicker.find("."+E)[0];this.elemPicker.find("."+I).css("top",e),r.style.background="#"+n,this.elemPicker.find("."+M).css({top:o/r.offsetHeight*100+"%",left:i/r.offsetWidth*100+"%"})},s.prototype.pickerEvents=function(){var c=this,a=c.config,s=c.elemColorBox.find("."+T),d=c.elemPicker.find("."+X+" input"),o={clear:function(e){s[0].style.background="",c.elemColorBox.find("."+B).removeClass(C).addClass(w),c.color="",a.done&&a.done(""),c.removePicker()},confirm:function(e,i){var o,t,n,r,l=x.trim(d.val());-1<l.indexOf(",")?(t=j(L(l)),c.select(t.h,t.s,t.b),s[0].style.background=o="#"+H(t),3<(l.match(/[0-9]{1,3}/g)||[]).length&&"rgba"===s.attr("lay-type")&&(n=280*l.slice(l.lastIndexOf(",")+1,l.length-1),c.elemPicker.find("."+Y).css("left",n),o=s[0].style.background=l)):(3===(n=-1<(n=l).indexOf("#")?n.substring(1):n).length&&(n=(r=n.split(""))[0]+r[0]+r[1]+r[1]+r[2]+r[2]),r={r:(n=parseInt(n,16))>>16,g:(65280&n)>>8,b:255&n},t=j(r),s[0].style.background=o="#"+H(t),c.elemColorBox.find("."+B).removeClass(w).addClass(C)),"change"===i?(c.select(t.h,t.s,t.b,i),a.change&&a.change(o)):(c.color=l,a.done&&a.done(l),c.removePicker())}};c.elemPicker.on("click","*[colorpicker-events]",function(){var e=x(this),i=e.attr("colorpicker-events");o[i]&&o[i].call(this,e)}),d.on("keyup",function(e){var i=x(this);o.confirm.call(this,i,13===e.keyCode?null:"change")})},s.prototype.events=function(){var e=this;e.config;e.elemColorBox.on("click",function(){e.renderPicker(),x(c)[0]&&(e.val(),e.side())})},a.on(i,function(e){var i,o,t;r.thisId&&(i=n.getThis(r.thisId))&&(o=i.config,t=i.elemColorBox.find("."+T),x(e.target).hasClass(l)||x(e.target).parents("."+l)[0]||x(e.target).hasClass(c.replace(/\./g,""))||x(e.target).parents(c)[0]||i.elemPicker&&(i.color?(e=j(L(i.color)),i.select(e.h,e.s,e.b)):i.elemColorBox.find("."+B).removeClass(C).addClass(w),t[0].style.background=i.color||"","function"==typeof o.cancel&&o.cancel(i.color),i.removePicker()))}),W.on("resize",function(){if(r.thisId){var e=n.getThis(r.thisId);if(e)return!(!e.elemPicker||!x(c)[0])&&void e.position()}}),n.that={},n.getThis=function(e){var i=n.that[e];return i||o.error(e?t+" instance with ID '"+e+"' not found":"ID argument required"),i},r.render=function(e){e=new s(e);return n.call(e)},e(t,r)});layui.define("jquery",function(t){"use strict";var u=layui.$,d=(layui.hint(),layui.device()),c="element",r="layui-this",h="layui-show",o=".layui-tab-title",i=function(){this.config={}},y=(i.prototype.set=function(t){return u.extend(!0,this.config,t),this},i.prototype.on=function(t,i){return layui.onevent.call(this,c,t,i)},i.prototype.tabAdd=function(t,i){var a,e=u(".layui-tab[lay-filter="+t+"]"),l=e.children(o),n=l.children(".layui-tab-bar"),e=e.children(".layui-tab-content"),s="<li"+(a=[],layui.each(i,function(t,i){/^(title|content)$/.test(t)||a.push("lay-"+t+'="'+i+'"')}),0<a.length&&a.unshift(""),a.join(" "))+">"+(i.title||"unnaming")+"</li>";return n[0]?n.before(s):l.append(s),e.append('<div class="layui-tab-item" '+(i.id?'lay-id="'+i.id+'"':"")+">"+(i.content||"")+"</div>"),i.change&&this.tabChange(t,i.id),l.data("LAY_TAB_CHANGE",i.change),C.tabAuto(i.change?"change":null),this},i.prototype.tabDelete=function(t,i){t=u(".layui-tab[lay-filter="+t+"]").children(o).find('>li[lay-id="'+i+'"]');return C.tabDelete(null,t),this},i.prototype.tabChange=function(t,i){t=u(".layui-tab[lay-filter="+t+"]").children(o).find('>li[lay-id="'+i+'"]');return C.tabClick.call(t[0],{liElem:t}),this},i.prototype.tab=function(a){a=a||{},e.on("click",a.headerElem,function(t){var i=u(a.headerElem).index(u(this));C.tabClick.call(this,{index:i,options:a})})},i.prototype.progress=function(t,i){var a="layui-progress",t=u("."+a+"[lay-filter="+t+"]").find("."+a+"-bar"),a=t.find("."+a+"-text");return t.css("width",function(){return/^.+\/.+$/.test(i)?100*new Function("return "+i)()+"%":i}).attr("lay-percent",i),a.text(i),this},".layui-nav"),f="layui-nav-item",p="layui-nav-bar",b="layui-nav-tree",v="layui-nav-child",m="layui-nav-more",g="layui-anim layui-anim-upbit",C={tabClick:function(t){var i=(t=t||{}).options||{},a=t.liElem||u(this),e=i.headerElem?a.parent():a.parents(".layui-tab").eq(0),i=i.bodyElem?u(i.bodyElem):e.children(".layui-tab-content").children(".layui-tab-item"),l=a.find("a"),l="javascript:;"!==l.attr("href")&&"_blank"===l.attr("target"),n="string"==typeof a.attr("lay-unselect"),s=e.attr("lay-filter"),o=a.attr("lay-id"),t="index"in t?t.index:a.parent().children("li").index(a);l||n||(a.addClass(r).siblings().removeClass(r),(o?l=(l=i.filter('[lay-id="'+o+'"]')).length?l:i.eq(t):i.eq(t)).addClass(h).siblings().removeClass(h)),layui.event.call(this,c,"tab("+s+")",{elem:e,index:t,id:o})},tabDelete:function(t,i){var i=i||u(this).parent(),a=i.parent().children("li").index(i),e=i.closest(".layui-tab"),l=e.children(".layui-tab-content").children(".layui-tab-item"),n=e.attr("lay-filter"),s=i.attr("lay-id");!1!==layui.event.call(i[0],c,"tabBeforeDelete("+n+")",{elem:e,index:a,id:s})&&(i.hasClass(r)&&(i.next()[0]&&i.next().is("li")?C.tabClick.call(i.next()[0],{index:a+1}):i.prev()[0]&&i.prev().is("li")&&C.tabClick.call(i.prev()[0],null,a-1)),i.remove(),(s?i=(i=l.filter('[lay-id="'+s+'"]')).length?i:l.eq(a):l.eq(a)).remove(),setTimeout(function(){C.tabAuto()},50),layui.event.call(this,c,"tabDelete("+n+")",{elem:e,index:a,id:s}))},tabAuto:function(l){var n="layui-tab-more",s="layui-tab-bar",o="layui-tab-close",c=this;u(".layui-tab").each(function(){var t=u(this),a=t.children(".layui-tab-title"),i=(t.children(".layui-tab-content").children(".layui-tab-item"),'lay-stope="tabmore"'),i=u('<span class="layui-unselect layui-tab-bar" '+i+"><i "+i+' class="layui-icon"></i></span>'),e=(c===window&&d.ie,t.attr("lay-allowclose"));e&&"false"!==e&&a.find("li").each(function(){var t,i=u(this);i.find("."+o)[0]||"false"===i.attr("lay-allowclose")||((t=u('<i class="layui-icon layui-icon-close layui-unselect '+o+'"></i>')).on("click",C.tabDelete),i.append(t))}),"string"!=typeof t.attr("lay-unauto")&&(a.prop("scrollWidth")>a.outerWidth()+1||a.find("li").length&&a.height()>(e=a.find("li").eq(0).height())+e/2?("change"===l&&a.data("LAY_TAB_CHANGE")&&a.addClass(n),a.find("."+s)[0]||(a.append(i),t.attr("overflow",""),i.on("click",function(t){var i=a.hasClass(n);a[i?"removeClass":"addClass"](n)}))):(a.find("."+s).remove(),t.removeAttr("overflow")))})},hideTabMore:function(t){var i=u(".layui-tab-title");!0!==t&&"tabmore"===u(t.target).attr("lay-stope")||(i.removeClass("layui-tab-more"),i.find(".layui-tab-bar").attr("title",""))},clickThis:function(){var t=u(this),i=t.closest(y),a=i.attr("lay-filter"),e=t.parent(),l=t.siblings("."+v),n="string"==typeof e.attr("lay-unselect");if("javascript:;"!==t.attr("href")&&"_blank"===t.attr("target")||n||l[0]||(i.find("."+r).removeClass(r),e.addClass(r)),i.hasClass(b)){var n=f+"ed",s=!e.hasClass(n),o=function(){u(this).css({display:""}),i.children("."+p).css({opacity:0})};if(l.is(":animated"))return;l.removeClass(g),l[0]&&(s?(l.slideDown(200,o),e.addClass(n)):(e.removeClass(n),l.show().slideUp(200,o)),"string"!=typeof i.attr("lay-accordion")&&"all"!==i.attr("lay-shrink")||((s=e.siblings("."+n)).removeClass(n),s.children("."+v).show().stop().slideUp(200,o)))}layui.event.call(this,c,"nav("+a+")",t)},collapse:function(){var t=u(this),i=t.find(".layui-colla-icon"),a=t.siblings(".layui-colla-content"),e=t.parents(".layui-collapse").eq(0),l=e.attr("lay-filter"),n="none"===a.css("display");"string"==typeof e.attr("lay-accordion")&&((e=e.children(".layui-colla-item").children("."+h)).siblings(".layui-colla-title").children(".layui-colla-icon").html(""),e.removeClass(h)),a[n?"addClass":"removeClass"](h),i.html(n?"":""),layui.event.call(this,c,"collapse("+l+")",{title:t,content:a,show:n})}},a=(i.prototype.render=i.prototype.init=function(t,i){var a=i?'[lay-filter="'+i+'"]':"",i={tab:function(){C.tabAuto.call({})},nav:function(){var s={},o={},c={},r="layui-nav-title";u(y+a).each(function(t){var i=u(this),a=u('<span class="'+p+'"></span>'),e=i.find("."+f);i.find("."+p)[0]||(i.append(a),(i.hasClass(b)?e.find("dd,>."+r):e).on("mouseenter",function(){!function(t,i,a){var e,l=u(this),n=l.find("."+v);i.hasClass(b)?n[0]||(e=l.children("."+r),t.css({top:l.offset().top-i.offset().top,height:(e[0]?e:l).outerHeight(),opacity:1})):(n.addClass(g),n.hasClass("layui-nav-child-c")&&n.css({left:-(n.outerWidth()-l.width())/2}),n[0]?t.css({left:t.position().left+t.width()/2,width:0,opacity:0}):t.css({left:l.position().left+parseFloat(l.css("marginLeft")),top:l.position().top+l.height()-t.height()}),s[a]=setTimeout(function(){t.css({width:n[0]?0:l.width(),opacity:n[0]?0:1})},d.ie&&d.ie<10?0:200),clearTimeout(c[a]),"block"===n.css("display")&&clearTimeout(o[a]),o[a]=setTimeout(function(){n.addClass(h),l.find("."+m).addClass(m+"d")},300))}.call(this,a,i,t)}).on("mouseleave",function(){i.hasClass(b)?a.css({height:0,opacity:0}):(clearTimeout(o[t]),o[t]=setTimeout(function(){i.find("."+v).removeClass(h),i.find("."+m).removeClass(m+"d")},300))}),i.on("mouseleave",function(){clearTimeout(s[t]),c[t]=setTimeout(function(){i.hasClass(b)||a.css({width:0,left:a.position().left+a.width()/2,opacity:0})},200)})),e.find("a").each(function(){var t=u(this);t.parent();t.siblings("."+v)[0]&&!t.children("."+m)[0]&&t.append('<i class="layui-icon layui-icon-down '+m+'"></i>'),t.off("click",C.clickThis).on("click",C.clickThis)})})},breadcrumb:function(){u(".layui-breadcrumb"+a).each(function(){var t=u(this),i="lay-separator",a=t.attr(i)||"/",e=t.find("a");e.next("span["+i+"]")[0]||(e.each(function(t){t!==e.length-1&&u(this).after("<span "+i+">"+a+"</span>")}),t.css("visibility","visible"))})},progress:function(){var e="layui-progress";u("."+e+a).each(function(){var t=u(this),i=t.find(".layui-progress-bar"),a=i.attr("lay-percent");i.css("width",function(){return/^.+\/.+$/.test(a)?100*new Function("return "+a)()+"%":a}),t.attr("lay-showpercent")&&setTimeout(function(){i.html('<span class="'+e+'-text">'+a+"</span>")},350)})},collapse:function(){u(".layui-collapse"+a).each(function(){u(this).find(".layui-colla-item").each(function(){var t=u(this),i=t.find(".layui-colla-title"),t="none"===t.find(".layui-colla-content").css("display");i.find(".layui-colla-icon").remove(),i.append('<i class="layui-icon layui-colla-icon">'+(t?"":"")+"</i>"),i.off("click",C.collapse).on("click",C.collapse)})})}};return i[t]?i[t]():layui.each(i,function(t,i){i()})},new i),e=u(document);u(function(){a.render()}),e.on("click",".layui-tab-title li",C.tabClick),u(window).on("resize",C.tabAuto),t(c,a)});layui.define(["lay","layer"],function(e){"use strict";var F=layui.$,a=layui.lay,t=layui.layer,R=layui.device(),i="upload",s="layui_"+i+"_index",w={config:{},index:layui[i]?layui[i].index+1e4:0,set:function(e){var t=this;return t.config=F.extend({},t.config,e),t},on:function(e,t){return layui.onevent.call(this,i,e,t)}},o=function(){var t=this,e=t.config.id;return{upload:function(e){t.upload.call(t,e)},reload:function(e){t.reload.call(t,e)},config:(o.that[e]=t).config}},r="layui-upload-file",l="layui-upload-form",E="layui-upload-iframe",L="layui-upload-choose",T="UPLOADING",D=function(e){var t=this;t.index=++w.index,t.config=F.extend({},t.config,w.config,e),t.render()};D.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",force:"",field:"file",acceptMime:"",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1,text:{"cross-domain":"Cross-domain requests are not supported","data-format-error":"Please return JSON data format","check-error":"",error:"","limit-number":null,"limit-size":null}},D.prototype.reload=function(e){var t=this;t.config=F.extend({},t.config,e),t.render(!0)},D.prototype.render=function(e){var t=this,i=t.config,n=F(i.elem);return 1<n.length?(layui.each(n,function(){w.render(F.extend({},i,{elem:this}))}),t):(F.extend(i,a.options(n[0],{attr:n.attr("lay-data")?"lay-data":null})),!e&&n[0]&&n.data(s)?(e=o.getThis(n.data(s)))?e.reload(i):void 0:(i.elem=F(i.elem),i.bindAction=F(i.bindAction),i.id="id"in i?i.id:n.attr("id")||t.index,t.file(),void t.events()))},D.prototype.file=function(){var e=this,t=e.config,i=e.elemFile=F(['<input class="'+r+'" type="file" accept="'+t.acceptMime+'" name="'+t.field+'"',t.multiple?" multiple":"",">"].join("")),n=t.elem.next();(n.hasClass(r)||n.hasClass(l))&&n.remove(),R.ie&&R.ie<10&&t.elem.wrap('<div class="layui-upload-wrap"></div>'),e.isFile()?(e.elemFile=t.elem,t.field=t.elem[0].name):t.elem.after(i),R.ie&&R.ie<10&&e.initIE()},D.prototype.initIE=function(){var i,e=this.config,t=F('<iframe id="'+E+'" class="'+E+'" name="'+E+'" frameborder="0"></iframe>'),n=F(['<form target="'+E+'" class="'+l+'" method="post" key="set-mine" enctype="multipart/form-data" action="'+e.url+'">',"</form>"].join(""));F("#"+E)[0]||F("body").append(t),e.elem.next().hasClass(l)||(this.elemFile.wrap(n),e.elem.next("."+l).append((i=[],layui.each(e.data,function(e,t){t="function"==typeof t?t():t,i.push('<input type="hidden" name="'+e+'" value="'+t+'">')}),i.join(""))))},D.prototype.msg=function(e){return t.msg(e,{icon:2,shift:6})},D.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},D.prototype.preview=function(n){window.FileReader&&layui.each(this.chooseFiles,function(e,t){var i=new FileReader;i.readAsDataURL(t),i.onload=function(){n&&n(e,t,this.result)}})},D.prototype.upload=function(e,t){var i,n,a,o,r,u=this,f=u.config,s=f.text||{},l=u.elemFile[0],c=function(){return e||u.files||u.chooseFiles||l.files},d=function(){var a=0,o=0,r=c(),l=function(){f.multiple&&a+o===u.fileLength&&"function"==typeof f.allDone&&f.allDone({total:u.fileLength,successful:a,failed:o})},i=function(i){var n=new FormData,t=function(e){i.unified?layui.each(r,function(e,t){delete t[T]}):delete e[T]};if(layui.each(f.data,function(e,t){t="function"==typeof t?i.unified?t():t(i.index,i.file):t,n.append(e,t)}),i.unified)layui.each(r,function(e,t){t[T]||(t[T]=!0,n.append(f.field,t))});else{if(i.file[T])return;n.append(f.field,i.file),i.file[T]=!0}var e={url:f.url,type:"post",data:n,dataType:f.dataType||"json",contentType:!1,processData:!1,headers:f.headers||{},success:function(e){f.unified?a+=u.fileLength:a++,m(i.index,e),l(i.index),t(i.file)},error:function(e){f.unified?o+=u.fileLength:o++,u.msg(s.error||["Upload failed, please try again.","status: "+(e.status||"")+" - "+(e.statusText||"error")].join("<br>")),g(i.index,e.responseText),l(i.index),t(i.file)}};"function"==typeof f.progress&&(e.xhr=function(){var e=F.ajaxSettings.xhr();return e.upload.addEventListener("progress",function(e){var t;e.lengthComputable&&(t=Math.floor(e.loaded/e.total*100),f.progress(t,(f.item||f.elem)[0],e,i.index))}),e}),F.ajax(e)};f.unified?i({unified:!0,index:0}):layui.each(r,function(e,t){i({index:e,file:t})})},p=function(){var n=F("#"+E);u.elemFile.parent().submit(),clearInterval(D.timer),D.timer=setInterval(function(){var e,t=n.contents().find("body");try{e=t.text()}catch(i){u.msg(s["cross-domain"]),clearInterval(D.timer),g()}e&&(clearInterval(D.timer),t.html(""),m(0,e))},30)},h=function(e){if("json"===f.force&&"object"!=typeof e)try{return{status:"CONVERTED",data:JSON.parse(e)}}catch(t){return u.msg(s["data-format-error"]),{status:"FORMAT_ERROR",data:{}}}return{status:"DO_NOTHING",data:{}}},m=function(e,t){u.elemFile.next("."+L).remove(),l.value="";var i=h(t);switch(i.status){case"CONVERTED":t=i.data;break;case"FORMAT_ERROR":return}"function"==typeof f.done&&f.done(t,e||0,function(e){u.upload(e)})},g=function(e,t){f.auto&&(l.value="");var i=h(t);switch(i.status){case"CONVERTED":t=i.data;break;case"FORMAT_ERROR":return}"function"==typeof f.error&&f.error(e||0,function(e){u.upload(e)},t)},v=f.exts,y=(n=[],layui.each(e||u.chooseFiles,function(e,t){n.push(t.name)}),n),x={preview:function(e){u.preview(e)},upload:function(e,t){var i={};i[e]=t,u.upload(i)},pushFile:function(){return u.files=u.files||{},layui.each(u.chooseFiles,function(e,t){u.files[e]=t}),u.files},resetFile:function(e,t,i){t=new File([t],i);u.files=u.files||{},u.files[e]=t},getChooseFiles:function(){return u.chooseFiles}},b={file:"\u6587\u4ef6",images:"\u56fe\u7247",video:"\u89c6\u9891",audio:"\u97f3\u9891"}[f.accept]||"\u6587\u4ef6",y=0===y.length?l.value.match(/[^\/\\]+\..+/g)||[]:y;if(0!==y.length){switch(f.accept){case"file":layui.each(y,function(e,t){if(v&&!RegExp(".\\.("+v+")$","i").test(escape(t)))return i=!0});break;case"video":layui.each(y,function(e,t){if(!RegExp(".\\.("+(v||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(t)))return i=!0});break;case"audio":layui.each(y,function(e,t){if(!RegExp(".\\.("+(v||"mp3|wav|mid")+")$","i").test(escape(t)))return i=!0});break;default:layui.each(y,function(e,t){if(!RegExp(".\\.("+(v||"jpg|png|gif|bmp|jpeg|svg|webp")+")$","i").test(escape(t)))return i=!0})}if(i)return u.msg(s["check-error"]||"\u9009\u62e9\u7684"+b+"\u4e2d\u5305\u542b\u4e0d\u652f\u6301\u7684\u683c\u5f0f"),l.value="";if("choose"!==t&&!f.auto||(f.choose&&f.choose(x),"choose"!==t)){if(u.fileLength=(a=0,b=c(),layui.each(b,function(){a++}),a),f.number&&u.fileLength>f.number)return u.msg("function"==typeof s["limit-number"]?s["limit-number"](f,u.fileLength):"\u540c\u65f6\u6700\u591a\u53ea\u80fd\u4e0a\u4f20: "+f.number+" \u4e2a\u6587\u4ef6<br>\u60a8\u5f53\u524d\u5df2\u7ecf\u9009\u62e9\u4e86: "+u.fileLength+" \u4e2a\u6587\u4ef6");if(0<f.size&&!(R.ie&&R.ie<10))if(layui.each(c(),function(e,t){t.size>1024*f.size&&(t=1<=(t=f.size/1024)?t.toFixed(2)+"MB":f.size+"KB",l.value="",o=t)}),o)return u.msg("function"==typeof s["limit-size"]?s["limit-size"](f,o):"\u6587\u4ef6\u5927\u5c0f\u4e0d\u80fd\u8d85\u8fc7 "+o);r=function(){if(R.ie)return(9<R.ie?d:p)();d()},"function"==typeof f.before?w.util.promiseLikeResolve(f.before(x)).then(function(e){!1!==e?r():f.auto&&(l.value="")},function(e){f.auto&&(l.value=""),e!==undefined&&layui.hint().error(e)}):r()}}},D.prototype.events=function(){var a=this,n=a.config,o=function(e){a.chooseFiles={},layui.each(e,function(e,t){var i=(new Date).getTime();a.chooseFiles[i+"-"+e]=t})},r=function(e,t){var i=a.elemFile,e=(n.item||n.elem,1<e.length?e.length+"\u4e2a\u6587\u4ef6":(e[0]||{}).name||i[0].value.match(/[^\/\\]+\..+/g)||[]);i.next().hasClass(L)&&i.next().remove(),a.upload(null,"choose"),a.isFile()||n.choose||i.after('<span class="layui-inline '+L+'">'+e+"</span>")},l=function(i){var n=!0;return layui.each(a.files,function(e,t){if(!(n=!(t.name===i.name)))return!0}),n},u=function(e){var i=function(e){e.ext=e.name.substr(e.name.lastIndexOf(".")+1).toLowerCase(),e.sizes=w.util.parseSize(e.size)};return e instanceof FileList?layui.each(e,function(e,t){i(t)}):i(e),e},f=function(e){var i;return(e=e||[]).length?a.files?(i=[],layui.each(e,function(e,t){l(t)&&i.push(u(t))}),i):u(e):[]};n.elem.off("upload.start").on("upload.start",function(){var e=F(this);a.config.item=e,a.elemFile[0].click()}),R.ie&&R.ie<10||n.elem.off("upload.over").on("upload.over",function(){F(this).attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){F(this).removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(e,t){var i=F(this),t=f(t.originalEvent.dataTransfer.files);i.removeAttr("lay-over"),o(t),n.auto?a.upload():r(t)}),a.elemFile.on("change",function(){var e=f(this.files);0!==e.length&&(o(e),n.auto?a.upload():r(e))}),n.bindAction.off("upload.action").on("upload.action",function(){a.upload()}),n.elem.data(s)||(n.elem.on("click",function(){a.isFile()||F(this).trigger("upload.start")}),n.drag&&n.elem.on("dragover",function(e){e.preventDefault(),F(this).trigger("upload.over")}).on("dragleave",function(e){F(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),F(this).trigger("upload.drop",e)}),n.bindAction.on("click",function(){F(this).trigger("upload.action")}),n.elem.data(s,n.id))},w.util={parseSize:function(e,t){var i,n;return t=t||2,null!=e&&e?(i="string"==typeof e?parseFloat(e):e,n=Math.floor(Math.log(i)/Math.log(1024)),(e=(e=i/Math.pow(1024,n))%1==0?e:parseFloat(e.toFixed(t)))+["Bytes","Kb","Mb","Gb","Tb","Pb","Eb","Zb","Yb"][n]):"0"},promiseLikeResolve:function(e){var t=F.Deferred();return e&&"function"==typeof e.then?e.then(t.resolve,t.reject):t.resolve(e),t.promise()}},o.that={},o.getThis=function(e){var t=o.that[e];return t||hint.error(e?i+" instance with ID '"+e+"' not found":"ID argument required"),t},w.render=function(e){e=new D(e);return o.call(e)},e(i,w)});layui.define(["lay","layer","util"],function(e){"use strict";var T=layui.$,p=layui.layer,N=layui.util,l=layui.hint(),A=(layui.device(),"form"),d=".layui-form",$="layui-this",j="layui-hide",O="layui-disabled",t=function(){this.config={verify:{required:function(e){if(!/[\S]+/.test(e))return"\u5fc5\u586b\u9879\u4e0d\u80fd\u4e3a\u7a7a"},phone:function(e){if(e&&!/^1\d{10}$/.test(e))return"\u624b\u673a\u53f7\u683c\u5f0f\u4e0d\u6b63\u786e"},email:function(e){if(e&&!/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(e))return"\u90ae\u7bb1\u683c\u5f0f\u4e0d\u6b63\u786e"},url:function(e){if(e&&!/^(#|(http(s?)):\/\/|\/\/)[^\s]+\.[^\s]+$/.test(e))return"\u94fe\u63a5\u683c\u5f0f\u4e0d\u6b63\u786e"},number:function(e){if(e&&isNaN(e))return"\u53ea\u80fd\u586b\u5199\u6570\u5b57"},date:function(e){if(e&&!/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/.test(e))return"\u65e5\u671f\u683c\u5f0f\u4e0d\u6b63\u786e"},identity:function(e){if(e&&!/(^\d{15}$)|(^\d{17}(x|X|\d)$)/.test(e))return"\u8eab\u4efd\u8bc1\u53f7\u683c\u5f0f\u4e0d\u6b63\u786e"}},autocomplete:null}},i=(t.prototype.set=function(e){return T.extend(!0,this.config,e),this},t.prototype.verify=function(e){return T.extend(!0,this.config.verify,e),this},t.prototype.getFormElem=function(e){return T(d+(e?'[lay-filter="'+e+'"]':""))},t.prototype.on=function(e,t){return layui.onevent.call(this,A,e,t)},t.prototype.val=function(e,i){return this.getFormElem(e).each(function(e,t){var a=T(this);layui.each(i,function(e,t){var i,e=a.find('[name="'+e+'"]');e[0]&&("checkbox"===(i=e[0].type)?e[0].checked=t:"radio"===i?e.each(function(){this.checked=this.value==t+""}):e.val(t))})}),r.render(null,e),this.getValue(e)},t.prototype.getValue=function(e,t){t=t||this.getFormElem(e);var a={},n={},e=t.find("input,select,textarea");return layui.each(e,function(e,t){var i;T(this);t.name=(t.name||"").replace(/^\s*|\s*&/,""),t.name&&(/^.*\[\]$/.test(t.name)&&(i=t.name.match(/^(.*)\[\]$/g)[0],a[i]=0|a[i],i=t.name.replace(/^(.*)\[\]$/,"$1["+a[i]+++"]")),/^(checkbox|radio)$/.test(t.type)&&!t.checked||(n[i||t.name]=t.value))}),n},t.prototype.render=function(e,t){var u=this,i=u.config,a=T(d+(t?'[lay-filter="'+t+'"]':"")),n={input:function(e){var e=e||a.find("input,textarea"),t=(i.autocomplete&&e.attr("autocomplete",i.autocomplete),function(e,t){var i=e.val(),a=Number(i),n=Number(e.attr("step"))||1,l=Number(e.attr("min")),r=Number(e.attr("max")),s=Number(e.attr("lay-precision")),o="click"!==t&&""===i,c="init"===t;isNaN(a)||("click"===t&&(a=!!T(this).index()?a-n:a+n),t=function(e){return((e.toString().match(/\.(\d+$)/)||[])[1]||"").length},s=0<=s?s:Math.max(t(n),t(i)),o||(c||r<=(a=a<=l?l:a)&&(a=r),0===s?a=parseInt(a):0<s&&(a=a.toFixed(s)),e.val(a)),e[(a<l||r<a)&&!o?"addClass":"removeClass"]("layui-input-number-out-of-range"),c)||((n={increment:e.next().find(".layui-icon-up"),decrement:e.next().find(".layui-icon-down")}).increment[r<=a&&!o?"addClass":"removeClass"](O),n.decrement[a<=l&&!o?"addClass":"removeClass"](O))});a.find("input[lay-affix],textarea[lay-affix]").each(function(){var r=T(this),s=r.attr("lay-affix"),o="layui-input-wrap",c="layui-input-suffix",u="layui-input-affix",e=r.is("[disabled]")||r.is("[readonly]"),d=function(e,t){(e=T(e))[0]&&e[T.trim(t)?"removeClass":"addClass"](j)},n=function(i){i=T.extend({},f[s]||{value:s},i,lay.options(r[0]));var a,t=T('<div class="'+u+'">'),e=layui.isArray(i.value)?i.value:[i.value],e=T((a=[],layui.each(e,function(e,t){a.push('<i class="layui-icon layui-icon-'+t+(i.disabled?" "+O:"")+'"></i>')}),a.join(""))),n=(t.append(e),i.split&&t.addClass("layui-input-split"),i.className&&t.addClass(i.className),r.next("."+u)),l=(n[0]&&n.remove(),r.parent().hasClass(o)||r.wrap('<div class="'+o+'"></div>'),r.next("."+c));l[0]?((n=l.find("."+u))[0]&&n.remove(),l.prepend(t),r.css("padding-right",function(){return(r.closest(".layui-input-group")[0]?0:l.outerWidth())+t.outerWidth()})):(t.addClass(c),r.after(t)),"auto"===i.show&&d(t,r.val()),"function"==typeof i.init&&i.init.call(this,r,i),r.on("input propertychange",function(){var e=this.value;"auto"===i.show&&d(t,e)}),r.on("blur",function(){"function"==typeof i.blur&&i.blur.call(this,r,i)}),e.on("click",function(){var e=r.attr("lay-filter");T(this).hasClass(O)||("function"==typeof i.click&&i.click.call(this,r,i),layui.event.call(this,A,"input-affix("+e+")",{elem:r[0],affix:s,options:i}))})},f={eye:{value:"eye-invisible",click:function(e,t){var i="LAY_FORM_INPUT_AFFIX_SHOW",a=e.data(i);e.attr("type",a?"password":"text").data(i,!a),n({value:a?"eye-invisible":"eye"})}},clear:{value:"clear",click:function(e){e.val("").focus(),d(T(this).parent(),null)},show:"auto",disabled:e},number:{value:["up","down"],split:!0,className:"layui-input-number",disabled:r.is("[disabled]"),init:function(e){t.call(this,e,"init")},click:function(e){t.call(this,e,"click")},blur:function(e){t.call(this,e,"blur")}}};n()})},select:function(e){var p="\u8bf7\u9009\u62e9",C="layui-form-select",w="layui-select-none",_="layui-select-create-option",h="layui-select-panel-elem-data",e=e||a.find("select"),y=function(n,e,t,i,c,a){var l,u,r,s,o,d,f,p,h,y=T(this),v=e,m=v.find("input"),g=n.find("dl"),b=(g.children("dd"),g.children("dt")),x=this.selectedIndex,k="";t||(u=y.attr("lay-search"),r=y.attr("lay-append-to")||"body",s=y.attr("lay-append-position"),o=!(!lay.ie||"10"!==lay.ie&&"11"!==lay.ie||!m.attr("placeholder")),d=function(){a&&(n.appendTo(r).css({width:v.width()+"px"}),(e=function(){lay.position(v[0],n[0],{position:s,allowBottomOut:!0,offset:[0,5]})})(),T(window).on("resize.lay_select_resize",e));var e=n.offset().top+n.outerHeight()+5-F.scrollTop(),t=g.outerHeight(),i=g.children("dd");x=y[0].selectedIndex,v.parent().addClass(C+"ed"),i.removeClass(j),b.removeClass(j),i.removeClass($),0<=x&&i.eq(x).addClass($),e+t>F.height()&&t<=e&&n.addClass(C+"up"),p(),o&&g.off("mousedown.lay_select_ieph").on("mousedown.lay_select_ieph",function(){m[0].__ieph=!0,setTimeout(function(){m[0].__ieph=!1},60)}),l=lay.onClickOutside((a?n:g)[0],function(){f(),k&&m.val(k)},{ignore:v})},f=function(e){v.parent().removeClass(C+"ed "+C+"up"),m.blur(),c&&g.children("."+_).remove(),l&&l(),a&&(n.detach(),T(window).off("resize.lay_select_resize")),e||h(m.val(),function(e){var t=y[0].selectedIndex;e&&(k=T(y[0].options[t]).html(),0===t&&k===m.attr("placeholder")&&(k=""),m.val(k||""))})},p=function(){var e,t,i=g.children("dd."+$);i[0]&&(e=i.position().top,t=g.height(),i=i.height(),t<e&&g.scrollTop(e+g.scrollTop()-t+i-5),e<0)&&g.scrollTop(e+g.scrollTop()-5)},v.on("click",function(e){(v.parent().hasClass(C+"ed")?f:d)(),g.find("."+w).remove()}),v.find(".layui-edge").on("click",function(){m.focus()}),m.on("keyup",function(e){9===e.keyCode&&d()}).on("keydown",function(n){var e=n.keyCode,t=(9===e&&f(),function(e){n.preventDefault();var t,i,a=g.children("dd:not(."+j+",."+O+")");a.length&&(t=a.length-1,i=-1,layui.each(a,function(e,t){if(T(t).hasClass($))return i=e,!0}),e="prev"===e?i-1<0?t:i-1:t<i+1?0:i+1,a.eq(e).addClass($).siblings().removeClass($),p())});38===e&&t("prev"),40===e&&t("next"),13===e&&(n.preventDefault(),g.children("dd."+$).trigger("click"))}).on("paste",function(){d()}),h=function(n,e,l){var r=0,t=g.children("dd"),s=!1,o=n,t=(layui.each(t,function(){var e=T(this),t=e.text(),i=c&&e.hasClass(_),a=(c&&!i&&t===o&&(s=!0),"cs"!==u&&(t=t.toLowerCase(),n=n.toLowerCase()),-1===t.indexOf(n));(""===n||"blur"===l?n!==t:a)&&r++,"keyup"===l&&e[(c?a&&!i:a)?"addClass":"removeClass"](j)}),"keyup"===l&&layui.each(b,function(){var e=T(this),t=e.nextUntil("dt").filter("dd");e[(t=c?t.not("."+_):t).length==t.filter("."+j).length?"addClass":"removeClass"](j)}),r===t.length);return e(t,s),t},i&&m.on("input propertychange",layui.debounce(function(e){var n=this.value,t=e.keyCode;return 9!==t&&13!==t&&37!==t&&38!==t&&39!==t&&40!==t&&(o&&e.target.__ieph?e.target.__ieph=!1:(h(n,function(e,t){var i,a;c?t?g.children("."+_).remove():(t=g.children("."+_))[0]?t.attr("lay-value",n).html(N.escape(n)):(t=T("<dd>").addClass(_).attr("lay-value",n).html(N.escape(n)),a=(i=g.children().eq(0)).hasClass("layui-select-tips"),i[a?"after":"before"](t)):e?g.find("."+w)[0]||g.append('<p class="'+w+'">\u65e0\u5339\u914d\u9879</p>'):g.find("."+w).remove()},"keyup"),""===n&&(y.val(""),g.find("."+$).removeClass($),(y[0].options[0]||{}).value||g.children("dd:eq(0)").addClass($),g.find("."+w).remove(),c)&&g.children("."+_).remove(),void p()))},50)).on("blur",function(e){var t=y[0].selectedIndex;k=T(y[0].options[t]).text(),0===t&&k===m.attr("placeholder")&&(k=""),setTimeout(function(){h(m.val(),function(e){k||m.val("")},"blur")},200)}),g.on("click","dd",function(){var e,t=T(this),i=t.attr("lay-value"),a=y.attr("lay-filter");return t.hasClass(O)||(t.hasClass("layui-select-tips")?m.val(""):(m.val(t.text()),t.addClass($)),c&&t.hasClass(_)&&(g.append(t.removeClass(_)),e=T("<option>").attr("value",i).text(t.text()),y.append(e)),t.siblings().removeClass($),y.val(i).removeClass("layui-form-danger"),layui.event.call(this,A,"select("+a+")",{elem:y[0],value:i,othis:n}),f(!0)),!1}),n.find("dl>dt").on("click",function(e){return!1}),a&&e.on("_lay-select-destroy",function(){n.remove()}))};T.event.special["_lay-select-destroy"]={remove:function(e){e.handler()}},e.each(function(e,t){var i=T(this),a=i.next("."+C),n=this.disabled,l=t.value,r=T(t.options[t.selectedIndex]),t=t.options[0];if("string"==typeof i.attr("lay-ignore"))return i.show();var s,o,c="string"==typeof i.attr("lay-search"),u="string"==typeof i.attr("lay-creatable")&&c,d="string"==typeof i.attr("lay-append-to"),t=t&&!t.value&&t.innerHTML||p,f=T(['<div class="'+(c?"":"layui-unselect ")+C,(n?" layui-select-disabled":"")+'"></div>'].join("")),t=T(['<div class="layui-select-title">','<input type="text" placeholder="'+N.escape(T.trim(t))+'" value="'+N.escape(T.trim(l?r.html():""))+'"'+(!n&&c?"":" readonly")+' class="layui-input'+(c?"":" layui-unselect")+(n?" "+O:"")+'">','<i class="layui-edge"></i>',"</div>"].join("")),r=T(['<dl class="layui-anim layui-anim-upbit'+(i.find("optgroup")[0]?" layui-select-group":"")+'">',(r=i.find("*"),s=[],layui.each(r,function(e,t){var i=t.tagName.toLowerCase();0!==e||t.value||"optgroup"===i?s.push("optgroup"===i?"<dt>"+t.label+"</dt>":'<dd lay-value="'+N.escape(t.value)+'" class="'+(l===t.value?$:"")+(t.disabled?" "+O:"")+'">'+T.trim(t.innerHTML)+"</dd>"):s.push('<dd lay-value="" class="layui-select-tips">'+T.trim(t.innerHTML||p)+"</dd>")}),0===s.length&&s.push('<dd lay-value="" class="'+O+'">\u6ca1\u6709\u9009\u9879</dd>'),s.join("")+"</dl>")].join(""));a[0]&&(d&&(o=a.data(h))&&o.remove(),a.remove()),d?(f.append(t),i.after(f),o=T('<div class="'+C+' layui-select-panel-wrap"></div>').append(r),f.data(h,o),y.call(this,o,t,n,c,u,d)):(f.append(t).append(r),i.after(f),y.call(this,f,t,n,c,u,d))})},checkbox:function(e){var c={checkbox:["layui-form-checkbox","layui-form-checked","checkbox"],"switch":["layui-form-switch","layui-form-onswitch","switch"],SUBTRA:"layui-icon-indeterminate"},e=e||a.find("input[type=checkbox]");e.each(function(e,t){var i=T(this),a=i.attr("lay-skin")||"primary",n=N.escape(T.trim(t.title||(t.title=i.attr("lay-text")||""))),l=this.disabled,r=c[a]||c.checkbox,s=i.next("."+r[0]),o=(s[0]&&s.remove(),[]);if(i.next("[lay-checkbox]")[0]&&(s=i.next(),n=s.html()||"",1<s[0].attributes.length)&&layui.each(s[0].attributes,function(e,t){"lay-checkbox"!==t.name&&o.push(t.name+'="'+t.value+'"')}),o=o.join(" "),n="switch"===a?n.split("|"):[n],"string"==typeof i.attr("lay-ignore"))return i.show();l=T(['<div class="layui-unselect '+r[0],t.checked?" "+r[1]:"",l?" layui-checkbox-disabled "+O:"",'"',a?' lay-skin="'+a+'"':"",">",(s={checkbox:[n[0]?"<div "+o+">"+n[0]+"</div>":"primary"===a?"":"<div></div>",'<i class="layui-icon '+("primary"===a&&!t.checked&&i.get(0).indeterminate?c.SUBTRA:"layui-icon-ok")+'"></i>'].join(""),"switch":"<div>"+(!t.checked&&n[1]||n[0]||"")+"</div><i></i>"})[a]||s.checkbox,"</div>"].join(""));i.after(l),function(i,a){var n=T(this),e=n.attr("lay-skin")||"primary",l="switch"===e,e="primary"===e;i.on("click",function(){var e=n.attr("lay-filter");n[0].disabled||(n[0].indeterminate&&(n[0].indeterminate=!1),n[0].checked=!n[0].checked,layui.event.call(n[0],A,a[2]+"("+e+")",{elem:n[0],value:n[0].value,othis:i}))}),u.syncAppearanceOnPropChanged(this,"checked",function(e){var t;l&&(t=(i.next("*[lay-checkbox]")[0]?i.next().html():n.attr("title")||"").split("|"),i.children("div").html(!e&&t[1]||t[0])),i.toggleClass(a[1],e)}),e&&u.syncAppearanceOnPropChanged(this,"indeterminate",function(e){e?i.children(".layui-icon-ok").removeClass("layui-icon-ok").addClass(c.SUBTRA):i.children("."+c.SUBTRA).removeClass(c.SUBTRA).addClass("layui-icon-ok")})}.call(this,l,r)})},radio:function(e){var o="layui-form-radio",c=["layui-icon-radio","layui-icon-circle"],e=e||a.find("input[type=radio]");e.each(function(e,t){var i=T(this),a=i.next("."+o),n=this.disabled,l=i.attr("lay-skin");if("string"==typeof i.attr("lay-ignore"))return i.show();a[0]&&a.remove();var a=N.escape(t.title||""),r=[],s=(i.next("[lay-radio]")[0]&&(a=(s=i.next()).html()||"",1<s[0].attributes.length)&&layui.each(s[0].attributes,function(e,t){"lay-radio"!==t.name&&r.push(t.name+'="'+t.value+'"')}),r=r.join(" "),T(['<div class="layui-unselect '+o,t.checked?" "+o+"ed":"",(n?" layui-radio-disabled "+O:"")+'"',l?' lay-skin="'+l+'"':"",">",'<i class="layui-anim layui-icon '+c[t.checked?0:1]+'"></i>',"<div "+r+">"+a+"</div>","</div>"].join("")));i.after(s),function(a){var n=T(this),t="layui-anim-scaleSpring";a.on("click",function(){var e=n[0].name,t=n.parents(d),i=n.attr("lay-filter"),e=t.find("input[name="+e.replace(/(\.|#|\[|\])/g,"\\$1")+"]");n[0].disabled||(layui.each(e,function(){this.checked=!1}),n[0].checked=!0,layui.event.call(n[0],A,"radio("+i+")",{elem:n[0],value:n[0].value,othis:a}))}),u.syncAppearanceOnPropChanged(this,"checked",function(e){e?(a.addClass(o+"ed"),a.children(".layui-icon").addClass(t+" "+c[0])):(a.removeClass(o+"ed"),a.children(".layui-icon").removeClass(t+" "+c[0]).addClass(c[1]))})}.call(this,s)})}},t=function(){layui.each(n,function(e,t){t()})};return"object"===layui.type(e)?T(e).is(d)?(a=T(e),t()):e.each(function(e,t){var i=T(t);i.closest(d).length&&("SELECT"===t.tagName?n.select(i):"INPUT"===t.tagName&&("checkbox"===(t=t.type)||"radio"===t?n[t](i):n.input(i)))}):e?n[e]?n[e]():l.error('\u4e0d\u652f\u6301\u7684 "'+e+'" \u8868\u5355\u6e32\u67d3'):t(),u},t.prototype.syncAppearanceOnPropChanged=function(e,i,a){var n=Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,i);Object.defineProperty(e,i,lay.extend({},n,{get:function(){return n.get.call(this)},set:function(e){var t=this[i];n.set.call(this,e),t!==e&&a(e,t)}}))},t.prototype.validate=function(e){var u,d=this.config.verify,f="layui-form-danger";return!(e=T(e))[0]||(e.attr("lay-verify")!==undefined||!1!==this.validate(e.find("*[lay-verify]")))&&(layui.each(e,function(e,r){var s=T(this),t=(s.attr("lay-verify")||"").split("|"),o=s.attr("lay-vertype"),c=T.trim(s.val());if(s.removeClass(f),layui.each(t,function(e,t){var i="",a=d[t];if(a){var n="function"==typeof a?i=a(c,r):!a[0].test(c),l="select"===r.tagName.toLowerCase()||/^(checkbox|radio)$/.test(r.type),i=i||a[1];if("required"===t&&(i=s.attr("lay-reqtext")||i),n)return"tips"===o?p.tips(i,"string"!=typeof s.attr("lay-ignore")&&l?s.next():s,{tips:1}):"alert"===o?p.alert(i,{title:"\u63d0\u793a",shadeClose:!0}):/\b(string|number)\b/.test(typeof i)&&p.msg(i,{icon:5,shift:6}),setTimeout(function(){(l?s.next().find("input"):r).focus()},7),s.addClass(f),u=!0}}),u)return u}),!u)},t.prototype.submit=function(e,t){var i={},a=T(this),e="string"==typeof e?e:a.attr("lay-filter"),n=this.getFormElem?this.getFormElem(e):a.parents(d).eq(0),l=n.find("*[lay-verify]");return!!r.validate(l)&&(i=r.getValue(null,n),l={elem:this.getFormElem?window.event&&window.event.target:this,form:(this.getFormElem?n:a.parents("form"))[0],field:i},"function"==typeof t&&t(l),layui.event.call(this,A,"submit("+e+")",l))}),r=new t,t=T(document),F=T(window);T(function(){r.render()}),t.on("reset",d,function(){var e=T(this).attr("lay-filter");setTimeout(function(){r.render(null,e)},50)}),t.on("submit",d,i).on("click","*[lay-submit]",i),e(A,r)});layui.define(["lay","laytpl","laypage","form","util"],function(s){"use strict";var p=layui.$,r=layui.lay,m=layui.laytpl,z=layui.laypage,f=layui.layer,i=layui.form,v=layui.util,g=layui.hint(),b=layui.device(),x={config:{checkName:"LAY_CHECKED",indexName:"LAY_INDEX",numbersName:"LAY_NUM",disabledName:"LAY_DISABLED"},cache:{},index:layui.table?layui.table.index+1e4:0,set:function(e){return this.config=p.extend({},this.config,e),this},on:function(e,t){return layui.onevent.call(this,T,e,t)}},k=function(){var a=this,e=a.config,i=e.id||e.index;return{config:e,reload:function(e,t){a.reload.call(a,e,t)},reloadData:function(e,t){x.reloadData(i,e,t)},setColsWidth:function(){a.setColsWidth.call(a)},resize:function(){a.resize.call(a)}}},w=function(e){var t=k.that[e];return t||g.error(e?"The table instance with ID '"+e+"' not found":"ID argument required"),t||null},l=function(e){var t=k.config[e];return t||g.error(e?"The table instance with ID '"+e+"' not found":"ID argument required"),t||null},C=function(e){var t=this.config||{},a=(e=e||{}).item3,i=e.content;"numbers"===a.type&&(i=e.tplData[x.config.numbersName]);("escape"in a?a:t).escape&&(i=v.escape(i));t=e.text&&a.exportTemplet||a.templet||a.toolbar;return t&&(i="function"==typeof t?t.call(a,e.tplData,e.obj):m(function(e){try{return r(e).html()}catch(t){return e}}(t)||String(i)).render(p.extend({LAY_COL:a},e.tplData))),e.text?p("<div>"+i+"</div>").text():i},T="table",N="lay-"+T+"-id",t=".layui-table",R="layui-hide",y="layui-hide-v",h="layui-none",D="layui-table-view",o=".layui-table-header",E=".layui-table-body",O=".layui-table-fixed-r",P=".layui-table-pageview",A=".layui-table-sort",M="layui-table-checked",L="layui-table-edit",_="layui-table-hover",u="laytable-cell-group",W="layui-table-col-special",H="layui-table-tool-panel",j="layui-table-expanded",I="layui-table-disabled-transition",S="LAY_TABLE_MOVE_DICT",e=function(e){return['<table cellspacing="0" cellpadding="0" border="0" class="layui-table" ','{{# if(d.data.skin){ }}lay-skin="{{=d.data.skin}}"{{# } }} {{# if(d.data.size){ }}lay-size="{{=d.data.size}}"{{# } }} {{# if(d.data.even){ }}lay-even{{# } }}>',"<thead>","{{# layui.each(d.data.cols, function(i1, item1){ }}","<tr>","{{# layui.each(item1, function(i2, item2){ }}",'{{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}','{{# if(item2.fixed === "right"){ right = true; } }}',(e=e||{}).fixed&&"right"!==e.fixed?'{{# if(item2.fixed && item2.fixed !== "right"){ }}':"right"===e.fixed?'{{# if(item2.fixed === "right"){ }}':"","{{# var isSort = !(item2.colGroup) && item2.sort; }}",'<th data-field="{{= item2.field||i2 }}" data-key="{{=d.index}}-{{=i1}}-{{=i2}}" {{# if( item2.parentKey){ }}data-parentkey="{{= item2.parentKey }}"{{# } }} {{# if(item2.minWidth){ }}data-minwidth="{{=item2.minWidth}}"{{# } }} {{# if(item2.maxWidth){ }}data-maxwidth="{{=item2.maxWidth}}"{{# } }} {{# if(item2.style){ }}style="{{=item2.style}}"{{# } }} {{#var colspan = layui.type(item2.colspan2) === \'number\' ? item2.colspan2 : item2.colspan; if(colspan){}} colspan="{{=colspan}}"{{#} if(item2.rowspan){}} rowspan="{{=item2.rowspan}}"{{#}}} {{# if(item2.unresize || item2.colGroup){ }}data-unresize="true"{{# } }} class="{{# if(item2.hide){ }}layui-hide{{# } }}{{# if(isSort){ }} layui-unselect{{# } }}{{# if(!item2.field){ }} layui-table-col-special{{# } }}"{{# if(item2.title){ }} title="{{ layui.$(\'<div>\' + item2.title + \'</div>\').text() }}"{{# } }}>','<div class="layui-table-cell laytable-cell-',"{{# if(item2.colGroup){ }}","group","{{# } else { }}","{{=d.index}}-{{=i1}}-{{=i2}}",'{{# if(item2.type !== "normal"){ }}'," laytable-cell-{{= item2.type }}","{{# } }}","{{# } }}",'" {{#if(item2.align){}}align="{{=item2.align}}"{{#}}}>','{{# if(item2.type === "checkbox"){ }}','<input type="checkbox" name="layTableCheckbox" lay-skin="primary" lay-filter="layTableAllChoose" {{# if(item2[d.data.checkName]){ }}checked{{# }; }}>',"{{# } else { }}",'<span>{{-item2.title||""}}</span>',"{{# if(isSort){ }}",'<span class="layui-table-sort layui-inline"><i class="layui-edge layui-table-sort-asc" title="\u5347\u5e8f"></i><i class="layui-edge layui-table-sort-desc" title="\u964d\u5e8f"></i></span>',"{{# } }}","{{# } }}","</div>","</th>",e.fixed?"{{# }; }}":"","{{# }); }}","</tr>","{{# }); }}","</thead>","</table>"].join("")},a=['<table cellspacing="0" cellpadding="0" border="0" class="layui-table" ','{{# if(d.data.skin){ }}lay-skin="{{=d.data.skin}}"{{# } }} {{# if(d.data.size){ }}lay-size="{{=d.data.size}}"{{# } }} {{# if(d.data.even){ }}lay-even{{# } }}>',"<tbody></tbody>","</table>"].join(""),B=[,"{{# if(d.data.toolbar){ }}",'<div class="layui-table-tool">','<div class="layui-table-tool-temp"></div>','<div class="layui-table-tool-self"></div>',"</div>","{{# } }}",'<div class="layui-table-box">',"{{# if(d.data.loading){ }}",'<div class="layui-table-init">','<div class="layui-table-loading-icon">','{{# if(typeof d.data.loading === "string"){ }}',"{{- d.data.loading}}","{{# } else{ }}",'<i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i>',"{{# } }}","</div>","</div>","{{# } }}","{{# var left, right; }}",'<div class="layui-table-header">',e(),"</div>",'<div class="layui-table-body layui-table-main">',a,"</div>","{{# if(left){ }}",'<div class="layui-table-fixed layui-table-fixed-l">','<div class="layui-table-header">',e({fixed:!0}),"</div>",'<div class="layui-table-body">',a,"</div>","</div>","{{# }; }}","{{# if(right){ }}",'<div class="layui-table-fixed layui-table-fixed-r layui-hide">','<div class="layui-table-header">',e({fixed:"right"}),'<div class="layui-table-mend"></div>',"</div>",'<div class="layui-table-body">',a,"</div>","</div>","{{# }; }}","</div>","{{# if(d.data.totalRow){ }}",'<div class="layui-table-total">','<table cellspacing="0" cellpadding="0" border="0" class="layui-table" ','{{# if(d.data.skin){ }}lay-skin="{{=d.data.skin}}"{{# } }} {{# if(d.data.size){ }}lay-size="{{=d.data.size}}"{{# } }} {{# if(d.data.even){ }}lay-even{{# } }}>','<tbody><tr><td><div class="layui-table-cell" style="visibility: hidden;">Total</div></td></tr></tbody>',"</table>","</div>","{{# } }}",'<div class="layui-table-column layui-table-page layui-hide">','<div class="layui-inline layui-table-pageview" id="layui-table-page{{=d.index}}"></div>',"</div>"].join(""),d=p(window),F=p(document),n=function(e){this.index=++x.index,this.config=p.extend({},this.config,x.config,e),this.render()},c=(n.prototype.config={limit:10,loading:!0,escape:!0,cellMinWidth:60,cellMaxWidth:Number.MAX_VALUE,editTrigger:"click",defaultToolbar:["filter","exports","print"],defaultContextmenu:!0,autoSort:!0,text:{none:"\u65e0\u6570\u636e"},cols:[]},n.prototype.render=function(e){var t=this,a=t.config,i=(a.elem=p(a.elem),a.where=a.where||{},a.id="id"in a?a.id:a.elem.attr("id")||t.index);if(k.that[i]=t,(k.config[i]=a).request=p.extend({pageName:"page",limitName:"limit"},a.request),a.response=p.extend({statusName:"code",statusCode:0,msgName:"msg",dataName:"data",totalRowName:"totalRow",countName:"count"},a.response),null!==a.page&&"object"==typeof a.page&&(a.limit=a.page.limit||a.limit,a.limits=a.page.limits||a.limits,t.page=a.page.curr=a.page.curr||1,delete a.page.elem,delete a.page.jump),!a.elem[0])return t;if(a.elem.attr("lay-filter")||a.elem.attr("lay-filter",a.id),"reloadData"===e)return t.pullData(t.page,{type:"reloadData"});a.index=t.index,t.key=a.id||a.index,t.setInit(),a.height&&/^full-.+$/.test(a.height)?(t.fullHeightGap=a.height.split("-")[1],a.height=d.height()-(parseFloat(t.fullHeightGap)||0)):a.height&&/^#\w+\S*-.+$/.test(a.height)?(i=a.height.split("-"),t.parentHeightGap=i.pop(),t.parentDiv=i.join("-"),a.height=p(t.parentDiv).height()-(parseFloat(t.parentHeightGap)||0)):"function"==typeof a.height&&(t.customHeightFunc=a.height,a.height=t.customHeightFunc());var l,e=a.elem,i=e.next("."+D),n=t.elem=p("<div></div>");n.addClass((l=[D,D+"-"+t.index,"layui-form","layui-border-box"],a.className&&l.push(a.className),l.join(" "))).attr(((l={"lay-filter":"LAY-TABLE-FORM-DF-"+t.index,style:(l=[],a.width&&l.push("width:"+a.width+"px;"),l.join(""))})[N]=a.id,l)).html(m(B,{open:"{{",close:"}}"}).render({data:a,index:t.index})),t.renderStyle(),i[0]&&(t.resizeObserver&&t.resizeObserver.unobserve(t.elem[0]),i.remove()),e.after(n),t.layTool=n.find(".layui-table-tool"),t.layBox=n.find(".layui-table-box"),t.layHeader=n.find(o),t.layMain=n.find(".layui-table-main"),t.layBody=n.find(E),t.layFixed=n.find(".layui-table-fixed"),t.layFixLeft=n.find(".layui-table-fixed-l"),t.layFixRight=n.find(O),t.layTotal=n.find(".layui-table-total"),t.layPage=n.find(".layui-table-page"),t.renderToolbar(),t.renderPagebar(),t.fullSize(),t.pullData(t.page),t.events()},n.prototype.initOpts=function(e){this.config;e.checkbox&&(e.type="checkbox"),e.space&&(e.type="space"),e.type||(e.type="normal"),"normal"!==e.type&&(e.unresize=!0,e.width=e.width||{checkbox:50,radio:50,space:30,numbers:60}[e.type])},n.prototype.setInit=function(e){var l,a,d=this,r=d.config;if(r.clientWidth=r.width||(l=function(e){var t,a=(e=e||r.elem.parent()).width();try{t="none"===e.css("display")}catch(i){}return!e[0]||a&&!t?a:l(e.parent())})(),"width"===e)return r.clientWidth;r.height=r.maxHeight||r.height,r.css&&-1===r.css.indexOf(D)&&(a=r.css.split("}"),layui.each(a,function(e,t){t&&(a[e]="."+D+"-"+d.index+" "+t)}),r.css=a.join("}"));var c=function(a,e,i,l){var n,o;l?(l.key=[r.index,a,i].join("-"),l.colspan=l.colspan||0,l.rowspan=l.rowspan||0,d.initOpts(l),(n=a+(parseInt(l.rowspan)||1))<r.cols.length?(l.colGroup=!0,o=0,layui.each(r.cols[n],function(e,t){t.HAS_PARENT||1<=o&&o==(l.colspan||1)||(t.HAS_PARENT=!0,t.parentKey=[r.index,a,i].join("-"),o+=parseInt(1<t.colspan?t.colspan:1),c(n,r.cols[n],e,t))})):l.colGroup=!1,l.hide=l.hide&&!l.colGroup||!1):e.splice(i,1)};layui.each(r.cols,function(a,i){layui.each(i,function(e,t){a?delete t.HAS_PARENT:c(a,i,e,t)})})},n.prototype.renderStyle=function(){var e,a,t,i,l=this.config,n=this.index,o=[];layui.each(l.cols,function(a,e){layui.each(e,function(e,t){e=[n,a,e].join("-"),t=["width: ",t.width||l.cellMinWidth,"px"].join("");o.push(".laytable-cell-"+e+"{"+t+"}")})}),(e=l.lineStyle)&&(a=".layui-table-view-"+n+" .layui-table-body .layui-table tr",t=e.split(";"),i="none",layui.each(t,function(e,t){if("height"===(t=t.split(":"))[0])return t=parseFloat(t[1]),isNaN(t)||(i=t-1+"px"),!0}),layui.each(["{"+e+"}",".layui-table-cell{height: auto; max-height: "+i+"; white-space: normal; text-overflow: clip;}","> td:hover > .layui-table-cell{overflow: auto;}"].concat(b.ie?[".layui-table-edit{height: "+i+";}","td[data-edit]:hover:after{height: "+i+";}"]:[]),function(e,t){t&&o.push(a+" "+t)})),l.css&&o.push(l.css),r.style({target:this.elem[0],text:o.join(""),id:"DF-table-"+n})},n.prototype.renderToolbar=function(){var l,o=this,e=o.config,d=e.elem.attr("lay-filter"),t=['<div class="layui-inline" lay-event="add"><i class="layui-icon layui-icon-add-1"></i></div>','<div class="layui-inline" lay-event="update"><i class="layui-icon layui-icon-edit"></i></div>','<div class="layui-inline" lay-event="delete"><i class="layui-icon layui-icon-delete"></i></div>'].join(""),a=o.layTool.find(".layui-table-tool-temp"),n=("default"===e.toolbar?a.html(t):"string"==typeof e.toolbar&&(t=p(e.toolbar).html()||"")&&a.html(m(t).render(e)),{filter:{title:"\u7b5b\u9009\u5217",layEvent:"LAYTABLE_COLS",icon:"layui-icon-cols",onClick:function(e){var a,n=e.config;(0,e.openPanel)({list:(a=[],o.eachCols(function(e,t){t.field&&"normal"==t.type&&a.push('<li><input type="checkbox" name="'+t.field+'" data-key="'+t.key+'" data-parentkey="'+(t.parentKey||"")+'" lay-skin="primary" '+(t.hide?"":"checked")+' title="'+v.escape(p("<div>"+(t.fieldTitle||t.title||t.field)+"</div>").text())+'" lay-filter="LAY_TABLE_TOOL_COLS"></li>')}),a.join("")),done:function(){i.on("checkbox(LAY_TABLE_TOOL_COLS)",function(e){var e=p(e.elem),t=this.checked,a=e.data("key"),i=o.col(a),l=i.hide,e=e.data("parentkey");i.key&&(i.hide=!t,o.elem.find('*[data-key="'+a+'"]')[t?"removeClass":"addClass"](R),l!=i.hide&&o.setParentCol(!t,e),o.resize(),layui.event.call(this,T,"colToggled("+d+")",{col:i,config:n}))})}})}},exports:{title:"\u5bfc\u51fa",layEvent:"LAYTABLE_EXPORT",icon:"layui-icon-export",onClick:function(e){var t=e.data,a=e.config,e=e.openPanel;if(!t.length)return f.tips("\u5f53\u524d\u8868\u683c\u65e0\u6570\u636e",this,{tips:3});b.ie?f.tips("\u5bfc\u51fa\u529f\u80fd\u4e0d\u652f\u6301 IE\uff0c\u8bf7\u7528 Chrome \u7b49\u9ad8\u7ea7\u6d4f\u89c8\u5668\u5bfc\u51fa",this,{tips:3}):e({list:['<li data-type="csv">\u5bfc\u51fa CSV \u6587\u4ef6</li>'].join(""),done:function(e,t){t.on("click",function(){var e=p(this).data("type");x.exportFile.call(o,a.id,null,e)})}})}},print:{title:"\u6253\u5370",layEvent:"LAYTABLE_PRINT",icon:"layui-icon-print",onClick:function(e){var t=e.data;e.config;if(!t.length)return f.tips("\u5f53\u524d\u8868\u683c\u65e0\u6570\u636e",this,{tips:3});var e=window.open("about:blank","_blank"),t=["<style>","body{font-size: 12px; color: #5F5F5F;}","table{width: 100%; border-collapse: collapse; border-spacing: 0;}","th,td{line-height: 20px; padding: 9px 15px; border: 1px solid #ccc; text-align: left; font-size: 12px; color: #5F5F5F;}","a{color: #5F5F5F; text-decoration:none;}","img{max-height: 100%;}","*.layui-hide{display: none}","</style>"].join(""),a=p(o.layHeader.html());a.append(o.layMain.find("table").html()),a.append(o.layTotal.find("table").html()),a.find("th.layui-table-patch").remove(),a.find("thead>tr>th."+W).filter(function(e,t){return!p(t).children("."+u).length}).remove(),a.find("tbody>tr>td."+W).remove(),e.document.write(t+a.prop("outerHTML")),e.document.close(),layui.device("edg").edg?(e.onafterprint=e.close,e.print()):(e.print(),e.close())}}});"object"==typeof e.defaultToolbar&&(l=[],e.defaultToolbar=p.map(e.defaultToolbar,function(e,t){var a="string"==typeof e,i=a?n[e]:e;return i&&(!(i=i.name&&n[i.name]?p.extend({},n[i.name],i):i).name&&a&&(i.name=e),l.push('<div class="layui-inline" title="'+i.title+'" lay-event="'+i.layEvent+'"><i class="layui-icon '+i.icon+'"></i></div>')),i}),o.layTool.find(".layui-table-tool-self").html(l.join("")))},n.prototype.renderPagebar=function(){var e,t=this.config,a=this.layPagebar=p('<div class="layui-inline layui-table-pagebar"></div>');t.pagebar&&((e=p(t.pagebar).html()||"")&&a.append(m(e).render(t)),this.layPage.append(a))},n.prototype.setParentCol=function(e,t){var a=this.config,i=this.layHeader.find('th[data-key="'+t+'"]'),l=parseInt(i.attr("colspan"))||0;i[0]&&(t=t.split("-"),t=a.cols[t[1]][t[2]],e?l--:l++,i.attr("colspan",l),i[l?"removeClass":"addClass"](R),t.colspan2=l,t.hide=l<1,a=i.data("parentkey"))&&this.setParentCol(e,a)},n.prototype.setColsPatch=function(){var a=this,e=a.config;layui.each(e.cols,function(e,t){layui.each(t,function(e,t){t.hide&&a.setParentCol(t.hide,t.parentKey)})})},n.prototype.setGroupWidth=function(i){var e,l=this;l.config.cols.length<=1||((e=l.layHeader.find((i?"th[data-key="+i.data("parentkey")+"]>":"")+"."+u)).css("width",0),layui.each(e.get().reverse(),function(){var e=p(this),t=e.parent().data("key"),a=0;l.layHeader.eq(0).find("th[data-parentkey="+t+"]").width(function(e,t){p(this).hasClass(R)||0<t&&(a+=t)}),a&&e.css("max-width",a-1),i&&e.parent().data("parentkey")&&l.setGroupWidth(e.parent())}),e.css("width","auto"))},n.prototype.setColsWidth=function(){var t,a,n=this,d=n.config,i=0,r=0,c=0,s=0,u=n.setInit("width"),e=(n.eachCols(function(e,t){t.hide||i++}),u=u-("line"===d.skin||"nob"===d.skin?2:i+1)-n.getScrollWidth(n.layMain[0])-1,function(o){layui.each(d.cols,function(e,n){layui.each(n,function(e,t){var a=0,i=t.minWidth||d.cellMinWidth,l=t.maxWidth||d.cellMaxWidth;t?t.colGroup||t.hide||(o?c&&c<i?(r--,a=i):c&&l<c&&(r--,a=l):(a=t.width||0,/\d+%$/.test(a)?l<(a=(a=Math.floor(parseFloat(a)/100*u))<i?i:a)&&(a=l):a?"normal"===t.type&&(a<i&&(t.width=a=i),l<a)&&(t.width=a=l):(t.width=a=0,r++)),t.hide&&(a=0),s+=a):n.splice(e,1)})}),s<u&&0<r&&(c=(u-s)/r)}),l=(e(),e(!0),n.autoColNums=r=0<r?r:0,n.eachCols(function(e,a){var i=a.minWidth||d.cellMinWidth,l=a.maxWidth||d.cellMaxWidth;a.colGroup||a.hide||(0===a.width?n.cssRules(a.key,function(e){e.style.width=Math.floor(c<i?i:l<c?l:c)+"px"}):/\d+%$/.test(a.width)?n.cssRules(a.key,function(e){var t=Math.floor(parseFloat(a.width)/100*u);e.style.width=(t=l<(t=t<i?i:t)?l:t)+"px"}):n.cssRules(a.key,function(e){e.style.width=a.width+"px"}))}),n.layMain.width()-n.getScrollWidth(n.layMain[0])-n.layMain.children("table").outerWidth());0<n.autoColNums&&-i<=l&&l<=i&&(e=(a=(t=function(e){return!(e=e||n.layHeader.eq(0).find("thead > tr:first-child > th:last-child")).data("field")&&e.prev()[0]?t(e.prev()):e})()).data("key"),n.cssRules(e,function(e){var t=e.style.width||a.outerWidth();e.style.width=parseFloat(t)+l+"px",0<n.layMain.height()-n.layMain.prop("clientHeight")&&(e.style.width=parseFloat(e.style.width)-1+"px")})),n.setGroupWidth(),n.layMain.find("tbody").is(":empty")?(e=n.layHeader.first().children("table").width(),n.layMain.find("table").width(e)):n.layMain.find("table").width("auto")},n.prototype.resize=function(){this.layMain&&(this.fullSize(),this.setColsWidth(),this.scrollPatch())},n.prototype.reload=function(e,t,a){var i=this;e=e||{},delete i.haveInit,layui.each(e,function(e,t){"array"===layui.type(t)&&delete i.config[e]}),i.config=p.extend(t,{},i.config,e),"reloadData"!==a&&(layui.each(i.config.cols,function(e,t){layui.each(t,function(e,t){delete t.colspan2})}),delete i.config.HAS_SET_COLS_PATCH),i.render(a)},n.prototype.errorView=function(e){var t=this,a=t.layMain.find("."+h),e=p('<div class="'+h+'">'+(e||"Error")+"</div>");a[0]&&(t.layNone.remove(),a.remove()),t.layFixed.addClass(R),t.layMain.find("tbody").html(""),t.layMain.append(t.layNone=e),t.layTotal.addClass(y),t.layPage.find(P).addClass(y),x.cache[t.key]=[],t.syncCheckAll(),t.renderForm(),t.setColsWidth(),t.loading(!1)},n.prototype.page=1,n.prototype.pullData=function(a,t){var e,i,l=this,n=l.config,o=(n.HAS_SET_COLS_PATCH||l.setColsPatch(),n.HAS_SET_COLS_PATCH=!0,n.request),d=n.response,r=function(){"object"==typeof n.initSort&&l.sort({field:n.initSort.field,type:n.initSort.type,reloadType:t.type})},c=function(e,t){l.setColsWidth(),l.loading(!1),"function"==typeof n.done&&n.done(e,a,e[d.countName],t)};t=t||{},"function"==typeof n.before&&n.before(n),l.startTime=(new Date).getTime(),t.renderData?((e={})[d.dataName]=x.cache[l.key],e[d.countName]=n.url?"object"===layui.type(n.page)?n.page.count:e[d.dataName].length:n.data.length,"object"==typeof n.totalRow&&(e[d.totalRowName]=p.extend({},l.totalRow)),l.renderData({res:e,curr:a,count:e[d.countName],type:t.type,sort:!0}),c(e,"renderData")):n.url?(i={},n.page&&(i[o.pageName]=a,i[o.limitName]=n.limit),o=p.extend(i,n.where),n.contentType&&0==n.contentType.indexOf("application/json")&&(o=JSON.stringify(o)),l.loading(!0),p.ajax({type:n.method||"get",url:n.url,contentType:n.contentType,data:o,dataType:n.dataType||"json",jsonpCallback:n.jsonpCallback,headers:n.headers||{},complete:"function"==typeof n.complete?n.complete:undefined,success:function(e){(e="function"==typeof n.parseData?n.parseData(e)||e:e)[d.statusName]!=d.statusCode?l.errorView(e[d.msgName]||'\u8fd4\u56de\u7684\u6570\u636e\u4e0d\u7b26\u5408\u89c4\u8303\uff0c\u6b63\u786e\u7684\u6210\u529f\u72b6\u6001\u7801\u5e94\u4e3a\uff1a"'+d.statusName+'": '+d.statusCode):(l.totalRow=e[d.totalRowName],l.renderData({res:e,curr:a,count:e[d.countName],type:t.type}),r(),n.time=(new Date).getTime()-l.startTime+" ms"),c(e,t.type)},error:function(e,t){l.errorView("\u8bf7\u6c42\u5f02\u5e38\uff0c\u9519\u8bef\u63d0\u793a\uff1a"+t),"function"==typeof n.error&&n.error(e,t)}})):"array"===layui.type(n.data)&&(e={},i=a*n.limit-n.limit,o=n.data.concat(),e[d.dataName]=n.page?o.splice(i,n.limit):o,e[d.countName]=n.data.length,"object"==typeof n.totalRow&&(e[d.totalRowName]=p.extend({},n.totalRow)),l.totalRow=e[d.totalRowName],l.renderData({res:e,curr:a,count:e[d.countName],type:t.type}),r(),c(e,t.type))},n.prototype.eachCols=function(e){return x.eachCols(null,e,this.config.cols),this},n.prototype.col=function(e){try{return e=e.split("-"),this.config.cols[e[1]][e[2]]||{}}catch(t){return g.error(t),{}}},n.prototype.getTrHtml=function(a,l,n,e){var s=this,u=s.config,y=e&&e.trs||[],h=e&&e.trs_fixed||[],f=e&&e.trs_fixed_r||[];return n=n||1,layui.each(a,function(e,o){var i=[],d=[],r=[],c=e+u.limit*(n-1)+1;if("object"!=typeof o){a[e]=o={LAY_KEY:o};try{x.cache[s.key][e]=o}catch(t){}}"array"===layui.type(o)&&0===o.length||(o[x.config.numbersName]=c,l||(o[x.config.indexName]=e),s.eachCols(function(e,l){var t,e=l.field||e,a=l.key,n=o[e];n!==undefined&&null!==n||(n=""),l.colGroup||(e=['<td data-field="'+e+'" data-key="'+a+'" '+(e=[],(t="function"==typeof l.edit?l.edit(o):l.edit)&&e.push('data-edit="'+t+'"'),l.templet&&e.push('data-content="'+v.escape(n)+'"'),l.toolbar&&e.push('data-off="true"'),l.event&&e.push('lay-event="'+l.event+'"'),l.minWidth&&e.push('data-minwidth="'+l.minWidth+'"'),l.maxWidth&&e.push('data-maxwidth="'+l.maxWidth+'"'),l.style&&e.push('style="'+l.style+'"'),e.join(" "))+' class="'+(t=[],l.hide&&t.push(R),l.field||t.push(W),t.join(" "))+'">','<div class="layui-table-cell laytable-cell-'+("normal"===l.type?a:a+" laytable-cell-"+l.type)+'"'+(l.align?' align="'+l.align+'"':"")+">"+function(){var e,t=p.extend(!0,{LAY_COL:l},o),a=x.config.checkName,i=x.config.disabledName;switch(l.type){case"checkbox":return'<input type="checkbox" name="layTableCheckbox" lay-skin="primary" '+(e=[],l[a]&&(o[a]=l[a],l[a])&&(e[0]="checked"),t[a]&&(e[0]="checked"),t[i]&&e.push("disabled"),e.join(" "))+' lay-type="layTableCheckbox">';case"radio":return'<input type="radio" name="layTableRadio_'+u.index+'" '+(e=[],t[a]&&(e[0]="checked"),t[i]&&e.push("disabled"),e.join(" "))+' lay-type="layTableRadio">';case"numbers":return c}return l.toolbar?m(p(l.toolbar).html()||"").render(t):C.call(s,{item3:l,content:n,tplData:t})}(),"</div></td>"].join(""),i.push(e),l.fixed&&"right"!==l.fixed&&d.push(e),"right"===l.fixed&&r.push(e))}),e=['data-index="'+e+'"'],o[x.config.checkName]&&e.push('class="'+M+'"'),e=e.join(" "),y.push("<tr "+e+">"+i.join("")+"</tr>"),h.push("<tr "+e+">"+d.join("")+"</tr>"),f.push("<tr "+e+">"+r.join("")+"</tr>"))}),{trs:y,trs_fixed:h,trs_fixed_r:f}},x.getTrHtml=function(e,t){e=w(e);return e.getTrHtml(t,null,e.page)},n.prototype.renderData=function(e){var a=this,i=a.config,t=e.res,l=e.curr,n=a.count=e.count,o=e.sort,d=t[i.response.dataName]||[],t=t[i.response.totalRowName],r=[],c=[],s=[],u=function(){if(!o&&a.sortKey)return a.sort({field:a.sortKey.field,type:a.sortKey.sort,pull:!0,reloadType:e.type});a.getTrHtml(d,o,l,{trs:r,trs_fixed:c,trs_fixed_r:s}),"fixed"===i.scrollPos&&"reloadData"===e.type||a.layBody.scrollTop(0),"reset"===i.scrollPos&&a.layBody.scrollLeft(0),a.layMain.find("."+h).remove(),a.layMain.find("tbody").html(r.join("")),a.layFixLeft.find("tbody").html(c.join("")),a.layFixRight.find("tbody").html(s.join("")),a.syncCheckAll(),a.renderForm(),a.fullSize(),a.haveInit?a.scrollPatch():setTimeout(function(){a.scrollPatch()},50),a.haveInit=!0,f.close(a.tipsIndex)};return x.cache[a.key]=d,a.layTotal[0==d.length?"addClass":"removeClass"](y),a.layPage[i.page||i.pagebar?"removeClass":"addClass"](R),a.layPage.find(P)[!i.page||0==n||0===d.length&&1==l?"addClass":"removeClass"](y),0===d.length?a.errorView(i.text.none):(a.layFixLeft.removeClass(R),o?u():(u(),a.renderTotal(d,t),a.layTotal&&a.layTotal.removeClass(R),void(i.page&&(i.page=p.extend({elem:"layui-table-page"+i.index,count:n,limit:i.limit,limits:i.limits||[10,20,30,40,50,60,70,80,90],groups:3,layout:["prev","page","next","skip","count","limit"],prev:'<i class="layui-icon"></i>',next:'<i class="layui-icon"></i>',jump:function(e,t){t||(a.page=e.curr,i.limit=e.limit,a.pullData(e.curr))}},i.page),i.page.count=n,z.render(i.page)))))},x.renderData=function(e){e=w(e);e&&e.pullData(e.page,{renderData:!0,type:"reloadData"})},n.prototype.renderTotal=function(e,o){var d,r=this,c=r.config,s={};c.totalRow&&(layui.each(e,function(e,i){"array"===layui.type(i)&&0===i.length||r.eachCols(function(e,t){var e=t.field||e,a=i[e];t.totalRow&&(s[e]=(s[e]||0)+(parseFloat(a)||0))})}),r.dataTotal=[],d=[],r.eachCols(function(e,t){var a,e=t.field||e,i=o&&o[t.field],l="totalRowDecimals"in t?t.totalRowDecimals:2,l=s[e]?parseFloat(s[e]||0).toFixed(l):"",l=(a=t.totalRowText||"",(n={LAY_COL:t})[e]=l,n=t.totalRow&&C.call(r,{item3:t,content:l,tplData:n})||a,i||n),n=(t.field&&r.dataTotal.push({field:t.field,total:p("<div>"+l+"</div>").text()}),['<td data-field="'+e+'" data-key="'+t.key+'" '+(a=[],t.minWidth&&a.push('data-minwidth="'+t.minWidth+'"'),t.maxWidth&&a.push('data-maxwidth="'+t.maxWidth+'"'),t.style&&a.push('style="'+t.style+'"'),a.join(" "))+' class="'+(n=[],t.hide&&n.push(R),t.field||n.push(W),n.join(" "))+'">','<div class="layui-table-cell laytable-cell-'+(a=t.key,"normal"===t.type?a:a+" laytable-cell-"+t.type)+'"'+(n=[],t.align&&n.push('align="'+t.align+'"'),n.join(" "))+">"+("string"==typeof(a=t.totalRow||c.totalRow)?m(a).render(p.extend({TOTAL_NUMS:i||s[e],TOTAL_ROW:o||{},LAY_COL:t},t)):l),"</div></td>"].join(""));d.push(n)}),e=r.layTotal.find(".layui-table-patch"),r.layTotal.find("tbody").html("<tr>"+d.join("")+(e.length?e.get(0).outerHTML:"")+"</tr>"))},n.prototype.getColElem=function(e,t){return e.eq(0).find(".laytable-cell-"+t+":eq(0)")},n.prototype.renderForm=function(e){this.config;var t=this.elem.attr("lay-filter");i.render(e,t)},n.prototype.renderFormByElem=function(a){layui.each(["input","select"],function(e,t){i.render(a.find(t))})},n.prototype.syncCheckAll=function(){var a,e=this,i=e.config,t=e.layHeader.find('input[name="layTableCheckbox"]'),l=x.checkStatus(e.key);t[0]&&(a=l.isAll,e.eachCols(function(e,t){"checkbox"===t.type&&(t[i.checkName]=a)}),t.prop({checked:l.isAll,indeterminate:!l.isAll&&l.data.length}))},n.prototype.setRowActive=function(e,t,a){this.config;e=this.layBody.find('tr[data-index="'+e+'"]');if(t=t||"layui-table-click",a)return e.removeClass(t);e.addClass(t),e.siblings("tr").removeClass(t)},n.prototype.setRowChecked=function(i){var a,e=this,l=e.config,n="all"===i.index,o="array"===layui.type(i.index),t=n||o,d=(t&&e.layBox.addClass(I),o&&(a={},layui.each(i.index,function(e,t){a[t]=!0}),i.index=a),n||o?"tr":'tr[data-index="'+i.index+'"]'),r=(d=e.layBody.find(d),n?d:d.filter(o?function(){var e=p(this).data("index");return i.index[e]}:'[data-index="'+i.index+'"]')),c=(i=p.extend({type:"checkbox"},i),x.cache[e.key]),s="checked"in i,u=function(e){return"radio"===i.type||(s?i.checked:!e)},y={},d=(layui.each(c,function(e,t){var a;"array"===layui.type(t)||t[l.disabledName]?y[e]=!0:n||(o?i.index[e]:Number(i.index)===e)?(a=t[l.checkName]=u(t[l.checkName]),n||o||((e=r.filter('[data-index="'+e+'"]'))[a?"addClass":"removeClass"](M),"radio"===i.type&&e.siblings().removeClass(M))):"radio"===i.type&&delete t[l.checkName]}),n?r.each(function(e){var t=this.getAttribute("data-index");y[t]||p(this).toggleClass(M,u(c[t][l.checkName]))}):o&&r.each(function(e){var t=this.getAttribute("data-index");i.index[t]&&!y[t]&&p(this).toggleClass(M,u(c[t][l.checkName]))}),r.find('input[lay-type="'+({radio:"layTableRadio",checkbox:"layTableCheckbox"}[i.type]||"checkbox")+'"]:not(:disabled)')),h=d.last(),f=h.closest(O);("radio"===i.type&&f.hasClass(R)?d.first():d).prop("checked",u(h.prop("checked"))),e.syncCheckAll(),t&&setTimeout(function(){e.layBox.removeClass(I)},100)},n.prototype.sort=function(l){var e,t=this,a={},i=t.config,n=i.elem.attr("lay-filter"),o=x.cache[t.key];"string"==typeof(l=l||{}).field&&(d=l.field,t.layHeader.find("th").each(function(e,t){var a=p(this),i=a.data("field");if(i===l.field)return l.field=a,d=i,!1}));try{var d=d||l.field.data("field"),r=l.field.data("key");if(t.sortKey&&!l.pull&&d===t.sortKey.field&&l.type===t.sortKey.sort)return;var c=t.layHeader.find("th .laytable-cell-"+r).find(A);t.layHeader.find("th").find(A).removeAttr("lay-sort"),c.attr("lay-sort",l.type||null),t.layFixed.find("th")}catch(s){g.error("Table modules: sort field '"+d+"' not matched")}t.sortKey={field:d,sort:l.type},i.autoSort&&("asc"===l.type?e=layui.sort(o,d,null,!0):"desc"===l.type?e=layui.sort(o,d,!0,!0):(e=layui.sort(o,x.config.indexName,null,!0),delete t.sortKey,delete i.initSort)),a[i.response.dataName]=e||o,t.renderData({res:a,curr:t.page,count:t.count,sort:!0,type:l.reloadType}),l.fromEvent&&(i.initSort={field:d,type:l.type},layui.event.call(l.field,T,"sort("+n+")",p.extend({config:i},i.initSort)))},n.prototype.loading=function(e){this.config.loading&&this.layBox.find(".layui-table-init").toggleClass(y,!e)},n.prototype.cssRules=function(t,a){var e=this.elem.children("style")[0];r.getStyleRules(e,function(e){if(e.selectorText===".laytable-cell-"+t)return a(e),!0})},n.prototype.fullSize=function(){var e,a,i=this,t=i.config,l=t.height;i.fullHeightGap?(l=d.height()-i.fullHeightGap)<135&&(l=135):i.parentDiv&&i.parentHeightGap?(l=p(i.parentDiv).height()-i.parentHeightGap)<135&&(l=135):i.customHeightFunc&&(l=i.customHeightFunc())<135&&(l=135),1<t.cols.length&&(e=i.layFixed.find(o).find("th"),a=i.layHeader.first(),layui.each(e,function(e,t){(t=p(t)).height(a.find('th[data-key="'+t.attr("data-key")+'"]').height()+"px")})),l&&(e=parseFloat(l)-(i.layHeader.outerHeight()||39),t.toolbar&&(e-=i.layTool.outerHeight()||51),t.totalRow&&(e-=i.layTotal.outerHeight()||40),(t.page||t.pagebar)&&(e-=i.layPage.outerHeight()||43),t.maxHeight?layui.each({elem:l,layMain:e},function(e,t){i[e].css({height:"auto",maxHeight:t+"px"})}):i.layMain.outerHeight(e))},n.prototype.getScrollWidth=function(e){var t;return e?t=e.offsetWidth-e.clientWidth:((e=document.createElement("div")).style.width="100px",e.style.height="100px",e.style.overflowY="scroll",document.body.appendChild(e),t=e.offsetWidth-e.clientWidth,document.body.removeChild(e)),t},n.prototype.scrollPatch=function(){var e=this,t=e.layMain.children("table"),a=e.layMain.width()-e.layMain.prop("clientWidth"),i=e.layMain.height()-e.layMain.prop("clientHeight"),l=(e.getScrollWidth(e.layMain[0]),t.outerWidth()-e.layMain.width()),n=function(e){var t;a&&i?(e=e.eq(0)).find(".layui-table-patch")[0]||((t=p('<th class="layui-table-patch"><div class="layui-table-cell"></div></th>')).find("div").css({width:a}),e.find("tr").append(t)):e.find(".layui-table-patch").remove()};n(e.layHeader),n(e.layTotal);n=e.layMain.height()-i;e.layFixed.find(E).css("height",t.height()>=n?n:"auto").scrollTop(e.layMain.scrollTop()),e.layFixRight[x.cache[e.key]&&x.cache[e.key].length&&0<l?"removeClass":"addClass"](R),e.layFixRight.css("right",a-1)},n.prototype.updateRow=function(e,i){var r=this,c=".layui-table-cell",e="array"===layui.type(e)?e:[e],s=x.cache[r.key]||[];layui.each(e,function(e,t){var a,l,n,o,d;a=t.index,l=t.data,n=t.related,o=s[a]||{},d=r.layBody.find('tr[data-index="'+a+'"]'),layui.each(l,function(e,t){o[e]=t,i&&i(e,t)}),r.eachCols(function(e,t){var a,i=String(t.field||e);(i in l||("function"==typeof n?n(i,e):n)&&(t.templet||t.toolbar))&&(i=(e=d.children('td[data-field="'+i+'"]')).children(c),a=o[t.field],i.html(C.call(r,{item3:t,content:a,tplData:p.extend({LAY_COL:t},o)})),e.data("content",a),r.renderFormByElem(i))})})},x.updateRow=function(e,t){return w(e).updateRow(t)},n.prototype.events=function(){var c=this,s=c.config,o=s.elem.attr("lay-filter"),e=c.layHeader.find("th"),u=".layui-table-cell",d=p("body"),r={},y=(c.layTool.on("click","*[lay-event]",function(e){var i=p(this),a=i.attr("lay-event"),l=x.cache[s.id],n=function(e){var t=p(e.list),a=p('<ul class="'+H+'"></ul>');a.html(t),s.height&&a.css("max-height",s.height-(c.layTool.outerHeight()||50)),i.find("."+H)[0]||i.append(a),c.renderForm(),a.on("click",function(e){layui.stope(e)}),e.done&&e.done(a,t)};layui.stope(e),F.trigger("table.tool.panel.remove"),f.close(c.tipsIndex),layui.each(s.defaultToolbar,function(e,t){if(t.layEvent===a)return"function"==typeof t.onClick&&t.onClick({data:l,config:s,openPanel:n}),!0}),layui.event.call(this,T,"toolbar("+o+")",p.extend({event:a,config:s},{}))}),c.layHeader.on("click","*[lay-event]",function(e){var t=p(this),a=t.attr("lay-event"),t=t.closest("th").data("key"),t=c.col(t);layui.event.call(this,T,"colTool("+o+")",p.extend({event:a,config:s,col:t},{}))}),c.layPagebar.on("click","*[lay-event]",function(e){var t=p(this).attr("lay-event");layui.event.call(this,T,"pagebar("+o+")",p.extend({event:t,config:s},{}))}),e.on("mousemove",function(e){var t=p(this),a=t.offset().left,e=e.clientX-a;t.data("unresize")||k.eventMoveElem||(r.allowResize=t.width()-e<=10,d.css("cursor",r.allowResize?"col-resize":""))}).on("mouseleave",function(){p(this);k.eventMoveElem||(r.allowResize=!1,d.css("cursor",""))}).on("mousedown",function(e){var t,a=p(this);r.allowResize&&(t=a.data("key"),e.preventDefault(),r.offset=[e.clientX,e.clientY],c.cssRules(t,function(e){var t=e.style.width||a.outerWidth();r.rule=e,r.ruleWidth=parseFloat(t),r.minWidth=a.data("minwidth")||s.cellMinWidth,r.maxWidth=a.data("maxwidth")||s.cellMaxWidth}),a.data(S,r),k.eventMoveElem=a)}),k.docEvent||F.on("mousemove",function(e){var t,a;k.eventMoveElem&&(t=k.eventMoveElem.data(S)||{},k.eventMoveElem.data("resizing",1),e.preventDefault(),t.rule)&&(e=t.ruleWidth+e.clientX-t.offset[0],a=k.eventMoveElem.closest("."+D).attr(N),a=w(a))&&((e=e<t.minWidth?t.minWidth:e)>t.maxWidth&&(e=t.maxWidth),t.rule.style.width=e+"px",a.setGroupWidth(k.eventMoveElem),f.close(c.tipsIndex))}).on("mouseup",function(e){var t,a,i,l,n;k.eventMoveElem&&(i=(t=k.eventMoveElem).closest("."+D).attr(N),a=w(i))&&(i=t.data("key"),l=a.col(i),n=a.config.elem.attr("lay-filter"),r={},d.css("cursor",""),a.scrollPatch(),t.removeData(S),delete k.eventMoveElem,a.cssRules(i,function(e){l.width=parseFloat(e.style.width),layui.event.call(t[0],T,"colResized("+n+")",{col:l,config:a.config})}))}),k.docEvent=!0,e.on("click",function(e){var t=p(this),a=t.find(A),i=a.attr("lay-sort");if(!a[0]||1===t.data("resizing"))return t.removeData("resizing");c.sort({field:t,type:"asc"===i?"desc":"desc"===i?null:"asc",fromEvent:!0})}).find(A+" .layui-edge ").on("click",function(e){var t=p(this),a=t.index(),t=t.parents("th").eq(0).data("field");layui.stope(e),0===a?c.sort({field:t,type:"asc",fromEvent:!0}):c.sort({field:t,type:"desc",fromEvent:!0})}),c.commonMember=function(e){var a=p(this).parents("tr").eq(0).data("index"),t=c.layBody.find('tr[data-index="'+a+'"]'),i=(x.cache[c.key]||[])[a]||{},l={tr:t,config:s,data:x.clearCacheKey(i),dataCache:i,index:a,del:function(){x.cache[c.key][a]=[],t.remove(),c.scrollPatch()},update:function(e,t){c.updateRow({index:a,data:e=e||{},related:t},function(e,t){l.data[e]=t})},setRowChecked:function(e){c.setRowChecked(p.extend({index:a},e))}};return p.extend(l,e)}),a=(c.elem.on("click",'input[name="layTableCheckbox"]+',function(e){var t=p(this),a=t.closest("td"),t=t.prev(),i=(c.layBody.find('input[name="layTableCheckbox"]'),t.parents("tr").eq(0).data("index")),l=t[0].checked,n="layTableAllChoose"===t.attr("lay-filter");t[0].disabled||(n?c.setRowChecked({index:"all",checked:l}):(c.setRowChecked({index:i,checked:l}),layui.stope(e)),layui.event.call(t[0],T,"checkbox("+o+")",y.call(t[0],{checked:l,type:n?"all":"one",getCol:function(){return c.col(a.data("key"))}})))}),c.elem.on("click",'input[lay-type="layTableRadio"]+',function(e){var t=p(this),a=t.closest("td"),t=t.prev(),i=t[0].checked,l=t.parents("tr").eq(0).data("index");if(layui.stope(e),t[0].disabled)return!1;c.setRowChecked({type:"radio",index:l}),layui.event.call(t[0],T,"radio("+o+")",y.call(t[0],{checked:i,getCol:function(){return c.col(a.data("key"))}}))}),c.layBody.on("mouseenter","tr",function(){var e=p(this),t=e.index();e.data("off")||c.layBody.find("tr:eq("+t+")").addClass(_)}).on("mouseleave","tr",function(){var e=p(this),t=e.index();e.data("off")||c.layBody.find("tr:eq("+t+")").removeClass(_)}).on("click","tr",function(e){var t=[".layui-form-checkbox",".layui-form-switch",".layui-form-radio","[lay-unrow]"].join(",");p(e.target).is(t)||p(e.target).closest(t)[0]||a.call(this,"row")}).on("dblclick","tr",function(){a.call(this,"rowDouble")}).on("contextmenu","tr",function(e){s.defaultContextmenu||e.preventDefault(),a.call(this,"rowContextmenu")}),function(e){var t=p(this);t.data("off")||layui.event.call(this,T,e+"("+o+")",y.call(t.children("td")[0]))}),n=function(e,t){var a,i,l;(e=p(e)).data("off")||(l=e.data("field"),i=e.data("key"),i=c.col(i),a=e.closest("tr").data("index"),a=x.cache[c.key][a],e.children(u),(i="function"==typeof i.edit?i.edit(a):i.edit)&&((i=p("textarea"===i?'<textarea class="layui-input '+L+'" lay-unrow></textarea>':'<input class="layui-input '+L+'" lay-unrow>'))[0].value=(l=e.data("content")||a[l])===undefined||null===l?"":l,e.find("."+L)[0]||e.append(i),i.focus(),t)&&layui.stope(t))},i=(c.layBody.on("change","."+L,function(){var e=p(this),t=e.parent(),a=this.value,i=e.parent().data("field"),e=e.closest("tr").data("index"),e=x.cache[c.key][e],l=y.call(t[0],{value:a,field:i,oldValue:e[i],td:t,reedit:function(){setTimeout(function(){n(l.td);var e={};e[i]=l.oldValue,l.update(e)})},getCol:function(){return c.col(t.data("key"))}}),e={};e[i]=a,l.update(e),layui.event.call(t[0],T,"edit("+o+")",l)}).on("blur","."+L,function(){p(this).remove()}),c.layBody.on(s.editTrigger,"td",function(e){n(this,e)}).on("mouseenter","td",function(){t.call(this)}).on("mouseleave","td",function(){t.call(this,"hide")}),c.layTotal.on("mouseenter","td",function(){t.call(this)}).on("mouseleave","td",function(){t.call(this,"hide")}),"layui-table-grid-down"),t=function(e){var t=p(this),a=t.children(u);t.data("off")||t.parent().hasClass(j)||(e?t.find(".layui-table-grid-down").remove():!(a.prop("scrollWidth")>a.prop("clientWidth")||0<a.find("br").length)||s.lineStyle||a.find("."+i)[0]||t.append('<div class="'+i+'"><i class="layui-icon layui-icon-down"></i></div>'))},l=function(e,t){var a=p(this),i=a.parent(),l=i.data("key"),n=c.col(l),o=i.parent().data("index"),d=i.children(u),i="layui-table-cell-c",r=p('<i class="layui-icon layui-icon-up '+i+'">');"tips"===(t=t||n.expandedMode||s.cellExpandedMode)?c.tipsIndex=f.tips(['<div class="layui-table-tips-main" style="margin-top: -'+(d.height()+23)+"px;"+("sm"===s.size?"padding: 4px 15px; font-size: 12px;":"lg"===s.size?"padding: 14px 15px;":"")+'">',d.html(),"</div>",'<i class="layui-icon layui-table-tips-c layui-icon-close"></i>'].join(""),d[0],{tips:[3,""],time:-1,anim:-1,maxWidth:b.ios||b.android?300:c.elem.width()/2,isOutAnim:!1,skin:"layui-table-tips",success:function(e,t){e.find(".layui-table-tips-c").on("click",function(){f.close(t)})}}):(c.elem.find("."+i).trigger("click"),c.cssRules(l,function(e){var t=e.style.width,a=n.expandedWidth||s.cellExpandedWidth;a<parseFloat(t)&&(a=parseFloat(t)),r.data("cell-width",t),e.style.width=a+"px",setTimeout(function(){c.scrollPatch()})}),c.setRowActive(o,j),d.next("."+i)[0]||d.after(r),r.on("click",function(){var t=p(this);c.setRowActive(o,[j,_].join(" "),!0),c.cssRules(l,function(e){e.style.width=t.data("cell-width"),setTimeout(function(){c.resize()})}),t.remove(),d.scrollTop(0),d.scrollLeft(0)})),a.remove(),layui.stope(e)},h=(c.layBody.on("click","."+i,function(e){l.call(this,e)}),c.layTotal.on("click","."+i,function(e){l.call(this,e,"tips")}),function(e){var t=p(this),a=t.closest("td"),i=t.parents("tr").eq(0).data("index");c.setRowActive(i),layui.event.call(this,T,(e||"tool")+"("+o+")",y.call(this,{event:t.attr("lay-event"),getCol:function(){return c.col(a.data("key"))}}))});c.layBody.on("click","*[lay-event]",function(e){h.call(this),layui.stope(e)}).on("dblclick","*[lay-event]",function(e){h.call(this,"toolDouble"),layui.stope(e)}),c.layMain.on("scroll",function(){var e=p(this),t=e.scrollLeft(),e=e.scrollTop();c.layHeader.scrollLeft(t),c.layTotal.scrollLeft(t),c.layFixed.find(E).scrollTop(e),f.close(c.tipsIndex)}),c.layFixed.find(E).on("mousewheel DOMMouseScroll",function(e){var t=e.originalEvent.wheelDelta||-e.originalEvent.detail,a=c.layMain.scrollTop();e.preventDefault(),c.layMain.scrollTop(a+(0<t?-30:30))}),window.ResizeObserver&&(c.resizeObserver||(c.resizeObserver=new ResizeObserver(function(){x.resize(c.key)})),c.resizeObserver.observe(c.elem[0]))},d.on("resize",function(){layui.each(k.that,function(){this.resize()})}),F.on("click",function(){F.trigger("table.remove.tool.panel")}),F.on("table.remove.tool.panel",function(){p("."+H).remove()}),x.init=function(i,o){o=o||{};var e="object"==typeof i?i:p("string"==typeof i?'table[lay-filter="'+i+'"]':t+"[lay-data], "+t+"[lay-options]"),d="Table element property lay-data configuration item has a syntax error: ";return e.each(function(){var l,e=p(this),t=e.attr("lay-data"),t=r.options(this,{attr:t?"lay-data":null,errorText:d+(t||e.attr("lay-options"))}),n=p.extend({elem:this,cols:[],data:[],skin:e.attr("lay-skin"),size:e.attr("lay-size"),even:"string"==typeof e.attr("lay-even")},x.config,o,t),a=(i&&e.hide(),e.find("thead>tr").each(function(i){n.cols[i]=[],p(this).children().each(function(e){var t=p(this),a=t.attr("lay-data"),a=r.options(this,{attr:a?"lay-data":null,errorText:d+(a||t.attr("lay-options"))}),t=p.extend({title:t.text(),colspan:parseInt(t.attr("colspan"))||1,rowspan:parseInt(t.attr("rowspan"))||1},a);n.cols[i].push(t)})}),e.find("tbody>tr")),t=x.render(n);!a.length||o.data||t.config.url||(l=0,x.eachCols(t.config.id,function(e,i){a.each(function(e){n.data[e]=n.data[e]||{};var t=p(this),a=i.field;n.data[e][a]=t.children("td").eq(l).html()}),l++}),t.reloadData({data:n.data}))}),this},k.that={},k.config={},function(a,i,e,l){var n,o;l.colGroup&&(n=0,a++,l.CHILD_COLS=[],o=e+(parseInt(l.rowspan)||1),layui.each(i[o],function(e,t){t.parentKey?t.parentKey===l.key&&(t.PARENT_COL_INDEX=a,l.CHILD_COLS.push(t),c(a,i,o,t)):t.PARENT_COL_INDEX||1<=n&&n==(l.colspan||1)||(t.PARENT_COL_INDEX=a,l.CHILD_COLS.push(t),n+=parseInt(1<t.colspan?t.colspan:1),c(a,i,o,t))}))});x.eachCols=function(e,a,i){var e=k.config[e]||{},l=[],n=(i=p.extend(!0,[],i||e.cols),layui.each(i,function(a,e){if(a)return!0;layui.each(e,function(e,t){c(0,i,a,t),t.PARENT_COL_INDEX||l.push(t)})}),function(e){layui.each(e||l,function(e,t){if(t.CHILD_COLS)return n(t.CHILD_COLS);"function"==typeof a&&a(e,t)})});n()},x.checkStatus=function(e){var a=0,i=0,l=[],e=x.cache[e]||[];return layui.each(e,function(e,t){"array"===layui.type(t)||t[x.config.disabledName]?i++:t[x.config.checkName]&&(a++,t[x.config.disabledName]||l.push(x.clearCacheKey(t)))}),{data:l,isAll:!!e.length&&a===e.length-i}},x.setRowChecked=function(e,t){e=w(e);e&&e.setRowChecked(t)},x.getData=function(e){var a=[],e=x.cache[e]||[];return layui.each(e,function(e,t){"array"!==layui.type(t)&&a.push(x.clearCacheKey(t))}),a},x.resize=function(e){e?l(e)&&w(e).resize():layui.each(k.that,function(){this.resize()})},x.exportFile=function(e,t,a){t=t||x.clearCacheKey(x.cache[e]);var o,d,i,r,l=(a="object"==typeof a?a:(l={},a&&(l.type=a),l)).type||"csv",c=k.that[e],n=k.config[e]||{},s={csv:"text/csv",xls:"application/vnd.ms-excel"}[l],u=document.createElement("a");if(b.ie)return g.error("IE_NOT_SUPPORT_EXPORTS");if(n.tree&&n.tree.view)try{t=p.extend(!0,[],x.cache[e]),t=function y(e){return e.reduce(function(e,t){var a=t.children||[];return delete t.children,e.concat(t,y(a))},[])}(Array.from(t))}catch(h){}u.href="data:"+s+";charset=utf-8,\ufeff"+encodeURIComponent((o=[],d=[],i=[],r={},layui.each(t,function(i,l){var n=[];"object"==typeof e?(layui.each(e,function(e,t){0==i&&o.push(t||"")}),layui.each(layui.isArray(l)?p.extend([],l):x.clearCacheKey(l),function(e,t){n.push('"'+(t||"")+'"')})):x.eachCols(e,function(e,t){var a;!1===t.ignoreExport||t.field&&"normal"==t.type?t.hide&&!1!==t.ignoreExport||!0===t.ignoreExport?0==i&&(r[t.field]=!0):((a=l[t.field])!==undefined&&null!==a||(a=""),0==i&&o.push(t.fieldTitle||t.title||t.field||""),a=(a=C.call(c,{item3:t,content:a,tplData:l,text:"text",obj:{td:function(e){return c.layBody.find('tr[data-index="'+i+'"]>td').filter('[data-field="'+e+'"]')}}})).replace(/"/g,'""'),n.push(a='"'+a+'"')):t.field&&"normal"!==t.type&&0==i&&(r[t.field]=!0)}),d.push(n.join(","))}),c&&layui.each(c.dataTotal,function(e,t){r[t.field]||i.push('"'+(t.total||"")+'"')}),o.join(",")+"\r\n"+d.join("\r\n")+"\r\n"+i.join(","))),u.download=(a.title||n.title||"table_"+(n.index||""))+"."+l,document.body.appendChild(u),u.click(),document.body.removeChild(u)},x.getOptions=l,x.hideCol=function(e,l){var n=w(e);n&&("boolean"===layui.type(l)?n.eachCols(function(e,t){var a=t.key,i=n.col(a),t=t.parentKey;i.hide!=l&&(i=i.hide=l,n.elem.find('*[data-key="'+a+'"]')[i?"addClass":"removeClass"](R),n.setParentCol(i,t))}):(l=layui.isArray(l)?l:[l],layui.each(l,function(e,l){n.eachCols(function(e,t){var a,i;l.field===t.field&&(a=t.key,i=n.col(a),t=t.parentKey,"hide"in l)&&i.hide!=l.hide&&(i=i.hide=!!l.hide,n.elem.find('*[data-key="'+a+'"]')[i?"addClass":"removeClass"](R),n.setParentCol(i,t))})})),p("."+H).remove(),n.resize())},x.reload=function(e,t,a,i){if(l(e))return(e=w(e)).reload(t,a,i),k.call(e)},x.reloadData=function(){var a=p.extend([],arguments),i=(a[3]="reloadData",new RegExp("^("+["elem","id","cols","width","height","maxHeight","toolbar","defaultToolbar","className","css","pagebar"].join("|")+")$"));return layui.each(a[1],function(e,t){i.test(e)&&delete a[1][e]}),x.reload.apply(null,a)},x.render=function(e){e=new n(e);return k.call(e)},x.clearCacheKey=function(e){return delete(e=p.extend({},e))[x.config.checkName],delete e[x.config.indexName],delete e[x.config.numbersName],delete e[x.config.disabledName],e},p(function(){x.init()}),s(T,x)});layui.define(["table"],function(e){"use strict";var A=layui.$,x=layui.form,P=layui.table,y=layui.hint(),B={config:{},on:P.on,eachCols:P.eachCols,index:P.index,set:function(e){var t=this;return t.config=A.extend({},t.config,e),t},resize:P.resize,getOptions:P.getOptions,hideCol:P.hideCol,renderData:P.renderData},i=function(){var a=this,e=a.config,n=e.id||e.index;return{config:e,reload:function(e,t){a.reload.call(a,e,t)},reloadData:function(e,t){B.reloadData(n,e,t)}}},j=function(e){var t=i.that[e];return t||y.error(e?"The treeTable instance with ID '"+e+"' not found":"ID argument required"),t||null},F="lay-table-id",L="layui-hide",s=".layui-table-body",q=".layui-table-main",R=".layui-table-fixed-l",Y=".layui-table-fixed-r",l="layui-table-checked",h="layui-table-tree",z="LAY_DATA_INDEX",m="LAY_DATA_INDEX_HISTORY",p="LAY_PARENT_INDEX",b="LAY_CHECKBOX_HALF",H="LAY_EXPAND",X="LAY_HAS_EXPANDED",V="LAY_ASYNC_STATUS",n=["all","parent","children","none"],t=/<[^>]+?>/,f=["flexIconClose","flexIconOpen","iconClose","iconOpen","iconLeaf","icon"],a=function(e){var t=this;t.index=++B.index,t.config=A.extend(!0,{},t.config,B.config,e),t.init(),t.render()},g=function(n,i,e){var l=P.cache[n];layui.each(e||l,function(e,t){var a=t[z]||"";-1!==a.indexOf("-")&&(l[a]=t),t[i]&&g(n,i,t[i])})},d=function(d,a,e){var r=j(d),o=("reloadData"!==e&&(r.status={expand:{}}),A.extend(!0,{},r.getOptions(),a)),n=o.tree,c=n.customName.children,i=n.customName.id,l=(delete a.hasNumberCol,delete a.hasChecboxCol,delete a.hasRadioCol,P.eachCols(null,function(e,t){"numbers"===t.type?a.hasNumberCol=!0:"checkbox"===t.type?a.hasChecboxCol=!0:"radio"===t.type&&(a.hasRadioCol=!0)},o.cols),a.parseData),u=a.done;"reloadData"===e&&"fixed"===o.scrollPos&&(r.scrollTopCache=r.config.elem.next().find(s).scrollTop()),o.url?e&&(!l||l.mod)||(a.parseData=function(){var e=this,t=arguments,a=t[0],t=("function"===layui.type(l)&&(a=l.apply(e,t)||t[0]),e.response.dataName);return n.data.isSimpleData&&!n["async"].enable&&(a[t]=r.flatToTree(a[t])),N(a[t],function(e){e[H]=H in e?e[H]:e[i]!==undefined&&r.status.expand[e[i]]},c),e.autoSort&&e.initSort&&e.initSort.type&&layui.sort(a[t],e.initSort.field,"desc"===e.initSort.type,!0),r.initData(a[t]),a},a.parseData.mod=!0):a.data!==undefined&&(a.data=a.data||[],n.data.isSimpleData&&(a.data=r.flatToTree(a.data)),r.initData(a.data)),e&&(!u||u.mod)||(a.done=function(){var e,t=arguments,a=t[3],n="renderData"===a,i=(n||delete r.isExpandAll,this.elem.next()),l=(r.updateStatus(null,{LAY_HAS_EXPANDED:!1}),g(d,c),i.find('[name="layTableCheckbox"][lay-filter="layTableAllChoose"]'));if(l.length&&(e=B.checkStatus(d),l.prop({checked:e.isAll&&e.data.length,indeterminate:!e.isAll&&e.data.length})),!n&&o.autoSort&&o.initSort&&o.initSort.type&&B.sort(d),r.renderTreeTable(i),"reloadData"===a&&"fixed"===this.scrollPos&&i.find(s).scrollTop(r.scrollTopCache),"function"===layui.type(u))return u.apply(this,t)},a.done.mod=!0),a&&a.tree&&a.tree.view&&layui.each(f,function(e,t){a.tree.view[t]!==undefined&&(a.tree.view[t]=r.normalizedIcon(a.tree.view[t]))})};a.prototype.init=function(){var e=this.config,t=e.tree.data.cascade,t=(-1===n.indexOf(t)&&(e.tree.data.cascade="all"),P.render(A.extend({},e,{data:[],url:"",done:null}))),a=t.config.id;(i.that[a]=this).tableIns=t,d(a,e)},a.prototype.config={tree:{customName:{children:"children",isParent:"isParent",name:"name",id:"id",pid:"parentId",icon:"icon"},view:{indent:14,flexIconClose:'<i class="layui-icon layui-icon-triangle-r"></i>',flexIconOpen:'<i class="layui-icon layui-icon-triangle-d"></i>',showIcon:!0,icon:"",iconClose:'<i class="layui-icon layui-icon-folder"></i>',iconOpen:'<i class="layui-icon layui-icon-folder-open"></i>',iconLeaf:'<i class="layui-icon layui-icon-leaf"></i>',showFlexIconIfNotParent:!1,dblClickExpand:!0,expandAllDefault:!1},data:{isSimpleData:!1,rootPid:null,cascade:"all"},"async":{enable:!1,url:"",type:null,contentType:null,headers:null,where:null,autoParam:[]},callback:{beforeExpand:null,onExpand:null}}},a.prototype.normalizedIcon=function(e){return e?t.test(e)?e:'<i class="'+e+'"></i>':""},a.prototype.getOptions=function(){return this.tableIns?P.getOptions(this.tableIns.config.id):this.config},a.prototype.flatToTree=function(e){var n,i,l,d,r,o,c,u,t=this.getOptions(),a=t.tree,s=a.customName,t=t.id;return e=e||P.cache[t],t=e,n=s.id,i=s.pid,l=s.children,d=a.data.rootPid,n=n||"id",i=i||"parentId",l=l||"children",c={},u=[],layui.each(t,function(e,t){r=n+t[n],o=n+t[i],c[r]||(c[r]={},c[r][l]=[]);var a={};a[l]=c[r][l],c[r]=A.extend({},t,a),((d?c[r][i]===d:!c[r][i])?u:(c[o]||(c[o]={},c[o][l]=[]),c[o][l])).push(c[r])}),u},a.prototype.treeToFlat=function(e,n,i){var l=this,d=l.getOptions().tree.customName,r=d.children,o=d.pid,c=[];return layui.each(e,function(e,t){var e=(i?i+"-":"")+e,a=A.extend({},t);a[o]=t[o]||n,c.push(a),c=c.concat(l.treeToFlat(t[r],t[d.id],e))}),c},a.prototype.getTreeNode=function(e){var t,a,n=this;return e?(a=(t=n.getOptions()).tree,t.id,a.customName,{data:e,dataIndex:e[z],getParentNode:function(){return n.getNodeByIndex(e[p])}}):y.error("\u627e\u4e0d\u5230\u8282\u70b9\u6570\u636e")},a.prototype.getNodeByIndex=function(t){var a,e,n=this,i=n.getNodeDataByIndex(t);return i?((e=n.getOptions()).tree.customName.parent,a=e.id,(e={data:i,dataIndex:i[z],getParentNode:function(){return n.getNodeByIndex(i[p])},update:function(e){return B.updateNode(a,t,e)},remove:function(){return B.removeNode(a,t)},expand:function(e){return B.expandNode(a,A.extend({},e,{index:t}))},setChecked:function(e){return B.setRowChecked(a,A.extend({},e,{index:t}))}}).dataIndex=t,e):y.error("\u627e\u4e0d\u5230\u8282\u70b9\u6570\u636e")},a.prototype.getNodeById=function(a){var e=this.getOptions(),n=e.tree.customName.id,i="",e=B.getData(e.id,!0);if(layui.each(e,function(e,t){if(t[n]===a)return i=t[z],!0}),i)return this.getNodeByIndex(i)},a.prototype.getNodeDataByIndex=function(e,t,a){var n=this.getOptions(),i=n.tree,n=n.id,n=P.cache[n],l=n[e];if("delete"!==a&&l)return A.extend(l,a),t?A.extend({},l):l;for(var d=n,r=String(e).split("-"),o=0,c=i.customName.children;o<r.length;o++){if(a&&o===r.length-1){if("delete"===a)return(o?d[c]:d).splice(r[o],1)[0];A.extend((o?d[c]:d)[r[o]],a)}d=(o?d[c]:d)[r[o]]}return t?A.extend({},d):d},B.getNodeDataByIndex=function(e,t){e=j(e);if(e)return e.getNodeDataByIndex(t,!0)};a.prototype.initData=function(e,t){var a=this.getOptions(),n=a.tree,a=a.id,n=(e=e||this.getTableData(),n.customName),i=n.isParent,l=n.children,d=function(e,a){layui.each(e,function(e,t){i in t||(t[i]=!(!t[l]||!t[l].length)),t[m]=t[z],t[p]=a=a||"";e=t[z]=(a?a+"-":"")+e;d(t[l]||[],e)})};return d(e,t),g(a,l,e),e},r={};var r,U=function(e,t,a){return r[e]||(r[e]=layui.debounce(t,a)),r[e]},J=function(t,a,n,i,l){var e=t.trElem,d=t.tableViewElem||e.closest(".layui-table-view"),r=t.tableId||d.attr(F),o=t.options||P.getOptions(r),e=t.dataIndex||e.attr("lay-data-index"),c=j(r),u=o.tree||{},s=u.customName||{},f=s.isParent,y=c.getNodeDataByIndex(e),p="boolean"!==layui.type(a),x=p?!y[H]:a,h=y[f]?x:null;if(l&&x!=y[H]&&(!y[V]||"local"===y[V])){var m=u.callback.beforeExpand;if("function"===layui.type(m)&&!1===m(r,y,a))return h}var m=y[X],b=d.find('tr[lay-data-index="'+e+'"]'),g=b.find(".layui-table-tree-flexIcon"),v=(c.updateNodeIcon({scopeEl:b,isExpand:x,isParent:y[f]}),y[H]=x,y[s.id]);if(v!==undefined&&(c.status.expand[v]=x),null!==h){v=y[s.children]||[];if(x)if(m){if(!v.length)return;b.nextAll(v.map(function(e,t,a){return'tr[lay-data-index="'+e[z]+'"]'}).join(",")).removeClass(L),layui.each(v,function(e,t){t[f]&&(!n||p||t[H]?t[H]&&J({dataIndex:t[z],trElem:d.find('tr[lay-data-index="'+t[z]+'"]').first(),tableViewElem:d,tableId:r,options:o},!0):J({dataIndex:t[z],trElem:d.find('tr[lay-data-index="'+t[z]+'"]').first(),tableViewElem:d,tableId:r,options:o},a,n,i,l))})}else{var N,I,C,D,T,_,k,w,O,S,E,m=u["async"]||{},b=m.url||o.url;if(m.enable&&y[f]&&!y[V])return y[V]="loading",g.html('<i class="layui-icon layui-icon-loading layui-anim layui-anim-loop layui-anim-rotate"></i>'),N=function(e){y[V]="success",y[s.children]=e,c.initData(y[s.children],y[z]),J(t,!0,!p&&n,i,l)},C=m.format,"function"===layui.type(C)?C(y,o,N):(I=A.extend({},m.where||o.where),C=m.autoParam,layui.each(C,function(e,t){t=t.split("=");I[t[0].trim()]=y[(t[1]||t[0]).trim()]}),(C=m.contentType||o.contentType)&&0==C.indexOf("application/json")&&(I=JSON.stringify(I)),O=m.method||o.method,D=m.dataType||o.dataType,T=m.jsonpCallback||o.jsonpCallback,_=m.headers||o.headers,k=m.parseData||o.parseData,w=m.response||o.response,A.ajax({type:O||"get",url:b,contentType:C,data:I,dataType:D||"json",jsonpCallback:T,headers:_||{},success:function(e){(e="function"==typeof k?k.call(o,e)||e:e)[w.statusName]!=w.statusCode?(y[V]="error",g.html('<i class="layui-icon layui-icon-refresh"></i>')):N(e[w.dataName])},error:function(e,t){y[V]="error","function"==typeof o.error&&o.error(e,t)}})),h;y[X]=!0,v.length&&(!o.initSort||o.url&&!o.autoSort||((m=o.initSort).type?layui.sort(v,m.field,"desc"===m.type,!0):layui.sort(v,P.config.indexName,null,!0)),c.initData(y[s.children],y[z]),O=P.getTrHtml(r,v,null,null,e),S={trs:A(O.trs.join("")),trs_fixed:A(O.trs_fixed.join("")),trs_fixed_r:A(O.trs_fixed_r.join(""))},E=(e.split("-").length-1||0)+1,layui.each(v,function(e,t){S.trs.eq(e).attr({"data-index":t[z],"lay-data-index":t[z],"data-level":E}).data("index",t[z]),S.trs_fixed.eq(e).attr({"data-index":t[z],"lay-data-index":t[z],"data-level":E}).data("index",t[z]),S.trs_fixed_r.eq(e).attr({"data-index":t[z],"lay-data-index":t[z],"data-level":E}).data("index",t[z])}),d.find(q).find('tbody tr[lay-data-index="'+e+'"]').after(S.trs),d.find(R).find('tbody tr[lay-data-index="'+e+'"]').after(S.trs_fixed),d.find(Y).find('tbody tr[lay-data-index="'+e+'"]').after(S.trs_fixed_r),c.renderTreeTable(S.trs,E),n)&&!p&&layui.each(v,function(e,t){J({dataIndex:t[z],trElem:d.find('tr[lay-data-index="'+t[z]+'"]').first(),tableViewElem:d,tableId:r,options:o},a,n,i,l)})}else c.isExpandAll=!1,(n&&!p?(layui.each(v,function(e,t){J({dataIndex:t[z],trElem:d.find('tr[lay-data-index="'+t[z]+'"]').first(),tableViewElem:d,tableId:r,options:o},a,n,i,l)}),d.find(v.map(function(e,t,a){return'tr[lay-data-index="'+e[z]+'"]'}).join(","))):(b=c.treeToFlat(v,y[s.id],e),d.find(b.map(function(e,t,a){return'tr[lay-data-index="'+e[z]+'"]'}).join(",")))).addClass(L);U("resize-"+r,function(){B.resize(r)},0)(),l&&"loading"!==y[V]&&(C=u.callback.onExpand,"function"===layui.type(C))&&C(r,y,x)}return h},v=(B.expandNode=function(e,t){var a,n,i,e=j(e);if(e)return a=(t=t||{}).index,n=t.expandFlag,i=t.inherit,t=t.callbackFlag,e=e.getOptions().elem.next(),J({trElem:e.find('tr[lay-data-index="'+a+'"]').first()},n,i,null,t)},B.expandAll=function(a,e){if("boolean"!==layui.type(e))return y.error("expandAll \u7684\u5c55\u5f00\u72b6\u6001\u53c2\u6570\u53ea\u63a5\u6536true/false");var t=j(a);if(t){t.isExpandAll=e;var n=t.getOptions(),i=n.tree,l=n.elem.next(),d=i.customName.isParent,r=i.customName.id,o=i.view.showFlexIconIfNotParent;if(e){e=B.getData(a,!0);if(i["async"].enable){var c=!0;if(layui.each(e,function(e,t){if(t[d]&&!t[V])return!(c=!1)}),!c)return void layui.each(B.getData(a),function(e,t){B.expandNode(a,{index:t[z],expandFlag:!0,inherit:!0})})}var u=!0;if(layui.each(e,function(e,t){if(t[d]&&!t[X])return!(u=!1)}),u)t.updateStatus(null,function(e){(e[d]||o)&&(e[H]=!0,e[r]!==undefined)&&(t.status.expand[e[r]]=!0)}),l.find('tbody tr[data-level!="0"]').removeClass(L),l.find(".layui-table-tree-flexIcon").html(i.view.flexIconOpen),i.view.showIcon&&l.find(".layui-table-tree-nodeIcon:not(.layui-table-tree-iconCustom,.layui-table-tree-iconLeaf)").html(i.view.iconOpen);else{if(t.updateStatus(null,function(e){(e[d]||o)&&(e[H]=!0,e[X]=!0,e[r]!==undefined)&&(t.status.expand[e[r]]=!0)}),n.initSort&&n.initSort.type&&n.autoSort)return B.sort(a);var s,n=P.getTrHtml(a,e),f={trs:A(n.trs.join("")),trs_fixed:A(n.trs_fixed.join("")),trs_fixed_r:A(n.trs_fixed_r.join(""))};layui.each(e,function(e,t){var a=t[z].split("-").length-1;s={"data-index":t[z],"lay-data-index":t[z],"data-level":a},f.trs.eq(e).attr(s).data("index",t[z]),f.trs_fixed.eq(e).attr(s).data("index",t[z]),f.trs_fixed_r.eq(e).attr(s).data("index",t[z])}),layui.each(["main","fixed-l","fixed-r"],function(e,t){l.find(".layui-table-"+t+" tbody").html(f[["trs","trs_fixed","trs_fixed_r"][e]])}),t.renderTreeTable(l,0,!1)}}else t.updateStatus(null,function(e){(e[d]||o)&&(e[H]=!1,e[r]!==undefined)&&(t.status.expand[e[r]]=!1)}),l.find('.layui-table-box tbody tr[data-level!="0"]').addClass(L),l.find(".layui-table-tree-flexIcon").html(i.view.flexIconClose),i.view.showIcon&&l.find(".layui-table-tree-nodeIcon:not(.layui-table-tree-iconCustom,.layui-table-tree-iconLeaf)").html(i.view.iconClose);B.resize(a)}},a.prototype.updateNodeIcon=function(e){var t=this.getOptions().tree||{},a=e.scopeEl,n=e.isExpand,e=e.isParent;a.find(".layui-table-tree-flexIcon").css("visibility",e||t.view.showFlexIconIfNotParent?"visible":"hidden").html(n?t.view.flexIconOpen:t.view.flexIconClose),t.view.showIcon&&(a=a.find(".layui-table-tree-nodeIcon:not(.layui-table-tree-iconCustom)"),n=e?n?t.view.iconOpen:t.view.iconClose:t.view.iconLeaf,a.toggleClass("layui-table-tree-iconLeaf",!e).html(n))},a.prototype.renderTreeTable=function(e,t,a){var l=this,n=l.getOptions(),d=n.elem.next(),i=(d.hasClass(h)||d.addClass(h),n.id),r=n.tree||{},o=(r.data,r.view||{}),c=r.customName||{},u=c.isParent,s=(d.attr("lay-filter"),l),f=((t=t||0)||(d.find(".layui-table-body tr:not([data-level])").attr("data-level",t),layui.each(P.cache[i],function(e,t){d.find('.layui-table-main tbody tr[data-level="0"]:eq('+e+")").attr("lay-data-index",t[z]),d.find('.layui-table-fixed-l tbody tr[data-level="0"]:eq('+e+")").attr("lay-data-index",t[z]),d.find('.layui-table-fixed-r tbody tr[data-level="0"]:eq('+e+")").attr("lay-data-index",t[z])})),null),y=c.name,p=o.indent||14;if(layui.each(e.find('td[data-field="'+y+'"]'),function(e,t){var a,n,i=(t=A(t)).closest("tr"),t=t.children(".layui-table-cell");t.hasClass("layui-table-tree-item")||(n=i.attr("lay-data-index"))&&(i=d.find('tr[lay-data-index="'+n+'"]'),(a=s.getNodeDataByIndex(n))[H]&&a[u]&&((f=f||{})[n]=!0),a[b]&&i.find('input[type="checkbox"][name="layTableCheckbox"]').prop("indeterminate",!0),n=t.html(),(t=i.find('td[data-field="'+y+'"]>div.layui-table-cell')).addClass("layui-table-tree-item"),t.html(['<div class="layui-inline layui-table-tree-flexIcon" ','style="',"margin-left: "+p*i.attr("data-level")+"px;",a[u]||o.showFlexIconIfNotParent?"":" visibility: hidden;",'">',a[H]?o.flexIconOpen:o.flexIconClose,"</div>",o.showIcon?'<div class="layui-inline layui-table-tree-nodeIcon'+(a[c.icon]||o.icon?" layui-table-tree-iconCustom":"")+(a[u]?"":" layui-table-tree-iconLeaf")+'">'+(l.normalizedIcon(a[c.icon])||o.icon||(a[u]?a[H]?o.iconOpen:o.iconClose:o.iconLeaf)||"")+"</div>":"",n].join("")).find(".layui-table-tree-flexIcon").on("click",function(e){layui.stope(e),J({trElem:i},null,null,null,!0)}))}),!t&&r.view.expandAllDefault&&l.isExpandAll===undefined)return B.expandAll(i,!0);(!1!==a&&f?(layui.each(f,function(e,t){e=d.find('tr[lay-data-index="'+e+'"]');e.find(".layui-table-tree-flexIcon").html(o.flexIconOpen),J({trElem:e.first()},!0)}),U("renderTreeTable2-"+i,function(){x.render(A(".layui-table-tree["+F+'="'+i+'"]'))},0)):U("renderTreeTable-"+i,function(){n.hasNumberCol&&v(l),x.render(A(".layui-table-tree["+F+'="'+i+'"]'))},0))()},function(a){var e=a.getOptions(),t=e.elem.next(),n=0,i=t.find(".layui-table-main tbody tr"),l=t.find(".layui-table-fixed-l tbody tr"),d=t.find(".layui-table-fixed-r tbody tr");layui.each(a.treeToFlat(P.cache[e.id]),function(e,t){t.LAY_HIDE||(a.getNodeDataByIndex(t[z]).LAY_NUM=++n,i.eq(e).find(".laytable-cell-numbers").html(n),l.eq(e).find(".laytable-cell-numbers").html(n),d.eq(e).find(".laytable-cell-numbers").html(n))})}),N=(a.prototype.render=function(e){var t=this;t.tableIns=P["reloadData"===e?"reloadData":"reload"](t.tableIns.config.id,A.extend(!0,{},t.config)),t.config=t.tableIns.config},a.prototype.reload=function(e,t,a){var n=this;e=e||{},delete n.haveInit,layui.each(e,function(e,t){"array"===layui.type(t)&&delete n.config[e]}),d(n.getOptions().id,e,a||!0),n.config=A.extend(t,{},n.config,e),n.render(a)},B.reloadData=function(){var e=A.extend(!0,[],arguments);return e[3]="reloadData",B.reload.apply(null,e)},function(e,a,n,i){var l=[];return layui.each(e,function(e,t){"function"===layui.type(a)?a(t):A.extend(t,a),l.push(A.extend({},t)),i||(l=l.concat(N(t[n],a,n,i)))}),l}),o=(a.prototype.updateStatus=function(e,t,a){var n=this.getOptions(),i=n.tree;return e=e||P.cache[n.id],N(e,t,i.customName.children,a)},a.prototype.getTableData=function(){var e=this.getOptions();return P.cache[e.id]},B.updateStatus=function(e,t,a){var e=j(e),n=e.getOptions();return a=a||(n.url?P.cache[n.id]:n.data),e.updateStatus(a,t)},B.sort=function(e){var t,a,i,l,n,d=j(e);d&&(n=(t=d.getOptions()).tree,a=B.getData(e),i=n.customName.children,l=function(e,a,n){layui.sort(e,a,n,!0),layui.each(e,function(e,t){l(t[i]||[],a,n)})},t.autoSort)&&((n=t.initSort).type?l(a,n.field,"desc"===n.type):l(a,P.config.indexName,null),P.cache[e]=a,d.initData(a),B.renderData(e))},function(n){var t=n.config.id,i=j(t),a=n.data=B.getNodeDataByIndex(t,n.index),l=a[z],d=(n.dataIndex=l,n.update);n.update=function(){var e=arguments,t=(A.extend(i.getNodeDataByIndex(l),e[0]),d.apply(this,e)),a=n.config.tree.customName.name;return a in e[0]&&n.tr.find('td[data-field="'+a+'"]').children("div.layui-table-cell").removeClass("layui-table-tree-item"),i.renderTreeTable(n.tr,n.tr.attr("data-level"),!1),t},n.del=function(){B.removeNode(t,a)},n.setRowChecked=function(e){B.setRowChecked(t,{index:a,checked:e})}}),u=(B.updateNode=function(e,a,t){var n,i,l,d,r,o=j(e);o&&((d=o.getOptions()).tree,d=(n=d.elem.next()).find('tr[lay-data-index="'+a+'"]'),i=d.attr("data-index"),l=d.attr("data-level"),t)&&(d=o.getNodeDataByIndex(a,!1,t),r=P.getTrHtml(e,[d]),layui.each(["main","fixed-l","fixed-r"],function(e,t){n.find(".layui-table-"+t+' tbody tr[lay-data-index="'+a+'"]').replaceWith(A(r[["trs","trs_fixed","trs_fixed_r"][e]].join("")).attr({"data-index":i,"lay-data-index":a,"data-level":l}).data("index",i))}),o.renderTreeTable(n.find('tr[lay-data-index="'+a+'"]'),l))},B.removeNode=function(e,t,a){var n=j(e);if(n){var i,l=n.getOptions(),d=l.tree,r=d.customName.isParent,o=d.customName.children,c=l.elem.next(),u=[],s=P.cache[e],t=n.getNodeDataByIndex("string"===layui.type(t)?t:t[z],!1,"delete"),f=n.getNodeDataByIndex(t[p]),d=(n.updateCheckStatus(f),n.treeToFlat([t],t[d.customName.pid],t[p])),t=(layui.each(d,function(e,t){t=t[z];u.push('tr[lay-data-index="'+t+'"]'),-1!==t.indexOf("-")&&delete s[t]}),c.find(u.join(",")).remove(),n.initData());for(i in s)-1!==i.indexOf("-")&&i!==s[i][z]&&delete s[i];layui.each(n.treeToFlat(t),function(e,t){t[m]&&t[m]!==t[z]&&c.find('tr[lay-data-index="'+t[m]+'"]').attr({"data-index":t[z],"lay-data-index":t[z]}).data("index",t[z])}),layui.each(s,function(e,t){c.find('tr[data-level="0"][lay-data-index="'+t[z]+'"]').attr("data-index",e).data("index",e)}),l.hasNumberCol&&v(n),f&&(d=c.find('tr[lay-data-index="'+f[z]+'"]'),a||(f[r]=!(!f[o]||!f[o].length)),n.updateNodeIcon({scopeEl:d,isExpand:f[H],isParent:f[r]})),B.resize(e)}},B.addNodes=function(e,t){var a=j(e);if(a){var n=a.getOptions(),i=n.tree,l=n.elem.next(),d=P.config.checkName,r=(t=t||{}).parentIndex,o=t.index,c=t.data,t=t.focus,u=(r="number"===layui.type(r)?r.toString():r)?a.getNodeDataByIndex(r):null,o="number"===layui.type(o)?o:-1,c=A.extend(!0,[],layui.isArray(c)?c:[c]);layui.each(c,function(e,t){d in t||!u||(t[d]=u[d])}),a.getTableData();if(u){var s=i.customName.isParent,f=i.customName.children;u[s]=!0;var y=(y=u[f])?(p=y.splice(-1===o?y.length:o),u[f]=y.concat(c,p)):u[f]=c,f=(a.updateStatus(y,function(e){(e[s]||i.view.showFlexIconIfNotParent)&&(e[X]=!1)}),a.treeToFlat(y));l.find(f.map(function(e){return'tr[lay-data-index="'+e[z]+'"]'}).join(",")).remove(),a.initData(),u[X]=!1,u[V]="local",J({trElem:l.find('tr[lay-data-index="'+r+'"]')},!0)}else{var p=P.cache[e].splice(-1===o?P.cache[e].length:o);if(P.cache[e]=P.cache[e].concat(c,p),n.url||(n.page?(y=n.page,n.data.splice.apply(n.data,[y.limit*(y.curr-1),y.limit].concat(P.cache[e]))):n.data=P.cache[e]),a.initData(),l.find(".layui-none").length)return P.renderData(e),c;var x,f=P.getTrHtml(e,c),h={trs:A(f.trs.join("")),trs_fixed:A(f.trs_fixed.join("")),trs_fixed_r:A(f.trs_fixed_r.join(""))},r=(layui.each(c,function(e,t){x={"data-index":t[z],"lay-data-index":t[z],"data-level":"0"},h.trs.eq(e).attr(x).data("index",t[z]),h.trs_fixed.eq(e).attr(x).data("index",t[z]),h.trs_fixed_r.eq(e).attr(x).data("index",t[z])}),parseInt(c[0][z])-1),y=l.find(q),n=l.find(R),f=l.find(Y);-1==r?y.find('tr[data-level="0"][data-index="0"]')[0]?(y.find('tr[data-level="0"][data-index="0"]').before(h.trs),n.find('tr[data-level="0"][data-index="0"]').before(h.trs_fixed),f.find('tr[data-level="0"][data-index="0"]').before(h.trs_fixed_r)):(y.find("tbody").prepend(h.trs),n.find("tbody").prepend(h.trs_fixed),f.find("tbody").prepend(h.trs_fixed_r)):-1===o?(y.find("tbody").append(h.trs),n.find("tbody").append(h.trs_fixed),f.find("tbody").append(h.trs_fixed_r)):(r=p[0][m],y.find('tr[data-level="0"][data-index="'+r+'"]').before(h.trs),n.find('tr[data-level="0"][data-index="'+r+'"]').before(h.trs_fixed),f.find('tr[data-level="0"][data-index="'+r+'"]').before(h.trs_fixed_r)),layui.each(P.cache[e],function(e,t){l.find('tr[data-level="0"][lay-data-index="'+t[z]+'"]').attr("data-index",e).data("index",e)}),a.renderTreeTable(l.find(c.map(function(e,t,a){return'tr[lay-data-index="'+e[z]+'"]'}).join(",")))}return a.updateCheckStatus(u),u&&(o=l.find('tr[lay-data-index="'+u[z]+'"]'),a.updateNodeIcon({scopeEl:o,isExpand:u[H],isParent:u[s]})),B.resize(e),t&&l.find(q).find('tr[lay-data-index="'+c[0][z]+'"]').get(0).scrollIntoViewIfNeeded(),c}},B.checkStatus=function(e,n){var i,t,a,l=j(e);if(l)return l=l.getOptions().tree,i=P.config.checkName,t=B.getData(e,!0).filter(function(e,t,a){return e[i]||n&&e[b]}),a=!0,layui.each("all"===l.data.cascade?P.cache[e]:B.getData(e,!0),function(e,t){if(!t[i])return!(a=!1)}),{data:t,isAll:a}},B.on("sort",function(e){var e=e.config,t=e.elem.next(),e=e.id;t.hasClass(h)&&B.sort(e)}),B.on("row",function(e){e.config.elem.next().hasClass(h)&&o(e)}),B.on("rowDouble",function(e){var t=e.config,a=t.elem.next();t.id;a.hasClass(h)&&(o(e),(t.tree||{}).view.dblClickExpand)&&J({trElem:e.tr.first()},null,null,null,!0)}),B.on("rowContextmenu",function(e){var t=e.config,a=t.elem.next();t.id;a.hasClass(h)&&o(e)}),B.on("tool",function(e){var t=e.config,a=t.elem.next();t.id;a.hasClass(h)&&o(e)}),B.on("edit",function(e){var t=e.config,a=t.elem.next();t.id;a.hasClass(h)&&(o(e),e.field===t.tree.customName.name)&&((a={})[e.field]=e.value,e.update(a))}),B.on("radio",function(e){var t=e.config,a=t.elem.next(),t=t.id;a.hasClass(h)&&(a=j(t),o(e),u.call(a,e.tr,e.checked))}),a.prototype.setRowCheckedClass=function(e,t){var a=this.getOptions(),n=(e.data("index"),a.elem.next());e[t?"addClass":"removeClass"](l),e.each(function(){var e=A(this).data("index");n.find('.layui-table-fixed-r tbody tr[data-index="'+e+'"]')[t?"addClass":"removeClass"](l)})},a.prototype.updateCheckStatus=function(e,t){var a,n,i,l,d,r,o,c=this,u=c.getOptions();return!!u.hasChecboxCol&&(a=u.tree,n=u.id,i=u.elem.next(),l=P.config.checkName,"all"!==(d=a.data.cascade)&&"parent"!==d||!e||(d=c.updateParentCheckStatus(e,"boolean"===layui.type(t)?t:null),layui.each(d,function(e,t){var a=i.find('tr[lay-data-index="'+t[z]+'"] input[name="layTableCheckbox"]:not(:disabled)'),n=t[l];c.setRowCheckedClass(a.closest("tr"),n),x.render(a.prop({checked:n,indeterminate:t[b]}))})),o=!(r=!0),0<(e=(e="all"===a.data.cascade?P.cache[n]:B.getData(n,!0)).filter(function(e){return!e[u.disabledName]})).length?layui.each(e,function(e,t){if((t[l]||t[b])&&(o=!0),t[l]||(r=!1),o&&!r)return!0}):r=!1,o=o&&!r,x.render(i.find('input[name="layTableCheckbox"][lay-filter="layTableAllChoose"]').prop({checked:r,indeterminate:o})),r)},a.prototype.updateParentCheckStatus=function(a,n){var i,e=this.getOptions(),t=e.tree,e=e.id,l=P.config.checkName,t=t.customName.children,d=[];return!(a[b]=!1)===n?a[t].length?layui.each(a[t],function(e,t){if(!t[l])return n=!1,a[b]=!0}):n=!1:!1===n?layui.each(a[t],function(e,t){if(t[l]||t[b])return a[b]=!0}):(n=!1,i=0,layui.each(a[t],function(e,t){t[l]&&i++}),n=a[t].length?a[t].length===i:a[l],a[b]=!n&&0<i),a[l]=n,d.push(A.extend({},a)),d=a[p]?d.concat(this.updateParentCheckStatus(P.cache[e][a[p]],n)):d},function(e,t,a){var n=this,i=n.getOptions(),l=i.tree,d=i.id,r=i.elem.next(),o=(e.length?e:r).find(".laytable-cell-radio, .laytable-cell-checkbox").children("input").last(),i="radio"===o.attr("type");if(a){a=function(){var e=function(e){layui.stope(e)};o.parent().on("click",e),o.next().click(),o.parent().off("click",e)};i?t&&!o.prop("checked")&&a():"boolean"===layui.type(t)&&o.prop("checked")===t||a()}else{var c,a=n.getNodeDataByIndex(e.attr("data-index")),u=P.config.checkName;if(!i)return t="boolean"===layui.type(t)?t:!a[u],i=n.updateStatus(a?[a]:P.cache[d],function(e){e[P.config.disabledName]||(e[u]=t,e[b]=!1)},a&&-1!==["parent","none"].indexOf(l.data.cascade)),d=r.find(i.map(function(e){return'tr[lay-data-index="'+e[z]+'"] input[name="layTableCheckbox"]:not(:disabled)'}).join(",")),n.setRowCheckedClass(d.closest("tr"),t),x.render(d.prop({checked:t,indeterminate:!1})),a&&a[p]&&(c=n.getNodeDataByIndex(a[p])),n.updateCheckStatus(c,t);a&&(n.updateStatus(null,function(e){var t;e[u]&&(t=r.find('tr[lay-data-index="'+e[z]+'"] input[type="radio"][lay-type="layTableRadio"]'),e[u]=!1,n.setRowCheckedClass(t.closest("tr"),!1),x.render(t.prop("checked",!1)))}),a[u]=t,n.setRowCheckedClass(e,t),n.setRowCheckedClass(e.siblings(),!1),x.render(e.find('input[type="radio"][lay-type="layTableRadio"]').prop("checked",t)))}});B.on("checkbox",function(e){var t=e.config,a=t.elem.next(),t=t.id;a.hasClass(h)&&(a=j(t),t=e.checked,o(e),e.isAll=u.call(a,e.tr,t))}),B.setRowChecked=function(a,e){var t,n,i,l,d,r,o,c=j(a);c&&(t=c.getOptions().elem.next(),i=(e=e||{}).index,n=e.checked,e=e.callbackFlag,i="string"===layui.type(i)?i:i[z],r=c.getNodeDataByIndex(i))&&(l=function(e){o.push(e),t.find('tr[lay-data-index="'+e+'"]').length||(e=c.getNodeDataByIndex(e)[p])&&l(e)},(d=t.find('tr[lay-data-index="'+i+'"]')).length||(r=r[p],o=[],l(r),layui.each(o.reverse(),function(e,t){B.expandNode(a,{index:t,expandFlag:!0})}),d=t.find('tr[lay-data-index="'+i+'"]')),u.call(c,d,n,e))},B.checkAllNodes=function(e,t){var a,e=j(e);e&&(a=e.getOptions().elem.next(),u.call(e,a.find('tr[data-index="NONE"]'),!!t))},B.getData=function(e,t){var a,n=j(e);if(n)return a=[],layui.each(A.extend(!0,[],P.cache[e]||[]),function(e,t){a.push(t)}),t?n.treeToFlat(a):a},B.reloadAsyncNode=function(a,e){var t,n,i=j(a);i&&(t=i.getOptions().tree)["async"]&&t["async"].enable&&(n=i.getNodeDataByIndex(e))&&(n[X]=!1,n[H]=!1,n[V]=!1,layui.each(i.treeToFlat(n[t.customName.children]).reverse(),function(e,t){B.removeNode(a,t[z],!0)}),B.expandNode(a,{index:e,expandFlag:!0,callbackFlag:!0}))},B.getNodeById=function(e,t){e=j(e);if(e)return e.getNodeById(t)},B.getNodesByFilter=function(e,t,a){var n,i,l,d=j(e);if(d)return i=d.getOptions(),n=(a=a||{}).isSingle,a=(a=a.parentNode)&&a.data,i=d.treeToFlat(a?a[i.tree.customName.children]||[]:P.cache[e]).filter(t),l=[],layui.each(i,function(e,t){if(l.push(d.getNodeByIndex(t[z])),n)return!0}),l},i.that={},B.reload=function(e,t,a,n){e=j(e);if(e)return e.reload(t,a,n),i.call(e)},B.render=function(e){e=new a(e);return i.call(e)},e("treeTable",B)});layui.define(["form","util"],function(e){"use strict";var p=layui.$,i=layui.form,y=layui.layer,f=layui.util,a="tree",t={config:{customName:{id:"id",title:"title",children:"children"}},index:layui[a]?layui[a].index+1e4:0,set:function(e){var i=this;return i.config=p.extend({},i.config,e),i},on:function(e,i){return layui.onevent.call(this,a,e,i)}},n=function(){var i=this,e=i.config,a=e.id||i.index;return n.that[a]=i,{config:n.config[a]=e,reload:function(e){i.reload.call(i,e)},getChecked:function(){return i.getChecked.call(i)},setChecked:function(e){return i.setChecked.call(i,e)}}},m="layui-hide",u="layui-disabled",k="layui-tree-set",C="layui-tree-iconClick",v="layui-icon-addition",x="layui-icon-subtraction",b="layui-tree-entry",g="layui-tree-main",w="layui-tree-txt",N="layui-tree-pack",F="layui-tree-spread",T="layui-tree-setLineShort",L="layui-tree-showLine",S="layui-tree-lineExtend",l=function(e){var i=this;i.index=++t.index,i.config=p.extend({},i.config,t.config,e),i.render()};l.prototype.config={data:[],showCheckbox:!1,showLine:!0,accordion:!1,onlyIconControl:!1,isJump:!1,edit:!1,text:{defaultNodeName:"\u672a\u547d\u540d",none:"\u65e0\u6570\u636e"}},l.prototype.reload=function(e){var a=this;layui.each(e,function(e,i){"array"===layui.type(i)&&delete a.config[e]}),a.config=p.extend(!0,{},a.config,e),a.render()},l.prototype.render=function(){var e=this,i=e.config,a=(i.customName=p.extend({},t.config.customName,i.customName),e.checkids=[],p('<div class="layui-tree layui-border-box'+(i.showCheckbox?" layui-form":"")+(i.showLine?" layui-tree-line":"")+'" lay-filter="LAY-tree-'+e.index+'"></div>')),n=(e.tree(a),i.elem=p(i.elem));if(n[0]){if(e.key=i.id||e.index,e.elem=a,e.elemNone=p('<div class="layui-tree-emptyText">'+i.text.none+"</div>"),n.html(e.elem),0==e.elem.find(".layui-tree-set").length)return e.elem.append(e.elemNone);i.showCheckbox&&e.renderForm("checkbox"),e.elem.find(".layui-tree-set").each(function(){var e=p(this);e.parent(".layui-tree-pack")[0]||e.addClass("layui-tree-setHide"),!e.next()[0]&&e.parents(".layui-tree-pack").eq(1).hasClass("layui-tree-lineExtend")&&e.addClass(T),e.next()[0]||e.parents(".layui-tree-set").eq(0).next()[0]||e.addClass(T)}),e.events()}},l.prototype.renderForm=function(e){i.render(e,"LAY-tree-"+this.index)},l.prototype.tree=function(r,e){var d=this,s=d.config,o=s.customName,e=e||s.data;layui.each(e,function(e,i){var a,n,t=i[o.children]&&0<i[o.children].length,l=p('<div class="layui-tree-pack" '+(i.spread?'style="display: block;"':"")+"></div>"),c=p(['<div data-id="'+i[o.id]+'" class="layui-tree-set'+(i.spread?" layui-tree-spread":"")+(i.checked?" layui-tree-checkedFirst":"")+'">','<div class="layui-tree-entry">','<div class="layui-tree-main">',s.showLine?t?'<span class="layui-tree-iconClick layui-tree-icon"><i class="layui-icon '+(i.spread?"layui-icon-subtraction":"layui-icon-addition")+'"></i></span>':'<span class="layui-tree-iconClick"><i class="layui-icon layui-icon-file"></i></span>':'<span class="layui-tree-iconClick"><i class="layui-tree-iconArrow '+(t?"":m)+'"></i></span>',s.showCheckbox?'<input type="checkbox" name="'+(i.field||"layuiTreeCheck_"+i[o.id])+'" same="layuiTreeCheck" lay-skin="primary" '+(i.disabled?"disabled":"")+' value="'+i[o.id]+'">':"",s.isJump&&i.href?'<a href="'+i.href+'" target="_blank" class="'+w+'">'+(i[o.title]||i.label||s.text.defaultNodeName)+"</a>":'<span class="'+w+(i.disabled?" "+u:"")+'">'+(i[o.title]||i.label||s.text.defaultNodeName)+"</span>","</div>",s.edit?(a={add:'<i class="layui-icon layui-icon-add-1" data-type="add"></i>',update:'<i class="layui-icon layui-icon-edit" data-type="update"></i>',del:'<i class="layui-icon layui-icon-delete" data-type="del"></i>'},n=['<div class="layui-btn-group layui-tree-btnGroup">'],!0===s.edit&&(s.edit=["update","del"]),"object"==typeof s.edit?(layui.each(s.edit,function(e,i){n.push(a[i]||"")}),n.join("")+"</div>"):void 0):"","</div></div>"].join(""));t&&(c.append(l),d.tree(l,i[o.children])),r.append(c),c.prev("."+k)[0]&&c.prev().children(".layui-tree-pack").addClass("layui-tree-showLine"),t||c.parent(".layui-tree-pack").addClass("layui-tree-lineExtend"),d.spread(c,i),s.showCheckbox&&(i.checked&&d.checkids.push(i[o.id]),d.checkClick(c,i)),s.edit&&d.operate(c,i)})},l.prototype.spread=function(n,t){var l=this,c=l.config,e=n.children("."+b),i=e.children("."+g),a=i.find('input[same="layuiTreeCheck"]'),r=e.find("."+C),e=e.find("."+w),d=c.onlyIconControl?r:i,s="";d.on("click",function(e){var i=n.children("."+N),a=(d.children(".layui-icon")[0]?d:d.find(".layui-tree-icon")).children(".layui-icon");i[0]?n.hasClass(F)?(n.removeClass(F),i.slideUp(200),a.removeClass(x).addClass(v),l.updateFieldValue(t,"spread",!1)):(n.addClass(F),i.slideDown(200),a.addClass(x).removeClass(v),l.updateFieldValue(t,"spread",!0),c.accordion&&((i=n.siblings("."+k)).removeClass(F),i.children("."+N).slideUp(200),i.find(".layui-tree-icon").children(".layui-icon").removeClass(x).addClass(v))):s="normal"}),e.on("click",function(){p(this).hasClass(u)||(s=n.hasClass(F)?c.onlyIconControl?"open":"close":c.onlyIconControl?"close":"open",a[0]&&l.updateFieldValue(t,"checked",a.prop("checked")),c.click&&c.click({elem:n,state:s,data:t}))})},l.prototype.updateFieldValue=function(e,i,a){i in e&&(e[i]=a)},l.prototype.setCheckbox=function(e,i,a){var t,n=this,l=n.config.customName,c=a.prop("checked");a.prop("disabled")||("object"!=typeof i[l.children]&&!e.find("."+N)[0]||e.find("."+N).find('input[same="layuiTreeCheck"]').each(function(e){this.disabled||((e=i[l.children][e])&&n.updateFieldValue(e,"checked",c),n.updateFieldValue(this,"checked",c))}),(t=function(e){var i,a,n;e.parents("."+k)[0]&&(a=(e=e.parent("."+N)).parent(),n=e.prev().find('input[same="layuiTreeCheck"]'),c?n.prop("checked",c):(e.find('input[same="layuiTreeCheck"]').each(function(){this.checked&&(i=!0)}),i||n.prop("checked",!1)),t(a))})(e),n.renderForm("checkbox"))},l.prototype.checkClick=function(a,n){var t=this,l=t.config;a.children("."+b).children("."+g).on("click",'input[same="layuiTreeCheck"]+',function(e){layui.stope(e);var e=p(this).prev(),i=e.prop("checked");e.prop("disabled")||(t.setCheckbox(a,n,e),t.updateFieldValue(n,"checked",i),l.oncheck&&l.oncheck({elem:a,checked:i,data:n}))})},l.prototype.operate=function(r,d){var s=this,o=s.config,u=o.customName,e=r.children("."+b),h=e.children("."+g);e.children(".layui-tree-btnGroup").on("click",".layui-icon",function(e){layui.stope(e);var i,e=p(this).data("type"),n=r.children("."+N),t={data:d,type:e,elem:r};if("add"==e){n[0]||(o.showLine?(h.find("."+C).addClass("layui-tree-icon"),h.find("."+C).children(".layui-icon").addClass(v).removeClass("layui-icon-file")):h.find(".layui-tree-iconArrow").removeClass(m),r.append('<div class="layui-tree-pack"></div>'));var a,l=o.operate&&o.operate(t),c={};if(c[u.title]=o.text.defaultNodeName,c[u.id]=l,s.tree(r.children("."+N),[c]),o.showLine&&(n[0]?(n.hasClass(S)||n.addClass(S),r.find("."+N).each(function(){p(this).children("."+k).last().addClass(T)}),(n.children("."+k).last().prev().hasClass(T)?n.children("."+k).last().prev():n.children("."+k).last()).removeClass(T),!r.parent("."+N)[0]&&r.next()[0]&&n.children("."+k).last().removeClass(T)):(l=r.siblings("."+k),a=1,c=r.parent("."+N),layui.each(l,function(e,i){p(i).children("."+N)[0]||(a=0)}),(1==a?(l.children("."+N).addClass(L),l.children("."+N).children("."+k).removeClass(T),r.children("."+N).addClass(L),c.removeClass(S),c.children("."+k).last().children("."+N).children("."+k).last()):r.children("."+N).children("."+k)).addClass(T))),!o.showCheckbox)return;h.find('input[same="layuiTreeCheck"]')[0].checked&&(r.children("."+N).children("."+k).last().find('input[same="layuiTreeCheck"]')[0].checked=!0),s.renderForm("checkbox")}else"update"==e?(l=h.children("."+w).html(),h.children("."+w).html(""),h.append('<input type="text" class="layui-tree-editInput">'),h.children(".layui-tree-editInput").val(f.unescape(l)).focus(),i=function(e){var i=f.escape(e.val().trim())||o.text.defaultNodeName;e.remove(),h.children("."+w).html(i),t.data[u.title]=i,o.operate&&o.operate(t)},h.children(".layui-tree-editInput").blur(function(){i(p(this))}),h.children(".layui-tree-editInput").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),i(p(this)))})):y.confirm('\u786e\u8ba4\u5220\u9664\u8be5\u8282\u70b9 "<span style="color: #999;">'+(d[u.title]||"")+'</span>" \u5417\uff1f',function(e){var l,a,i;o.operate&&o.operate(t),t.status="remove",y.close(e),r.prev("."+k)[0]||r.next("."+k)[0]||r.parent("."+N)[0]?(r.siblings("."+k).children("."+b)[0]?(o.showCheckbox&&(l=function(e){var i,a,n,t;e.parents("."+k)[0]&&(i=e.siblings("."+k).children("."+b),a=(e=e.parent("."+N).prev()).find('input[same="layuiTreeCheck"]')[0],n=1,(t=0)==a.checked)&&(i.each(function(e,i){i=p(i).find('input[same="layuiTreeCheck"]')[0];0!=i.checked||i.disabled||(n=0),i.disabled||(t=1)}),1==n)&&1==t&&(a.checked=!0,s.renderForm("checkbox"),l(e.parent("."+k)))})(r),o.showLine&&(e=r.siblings("."+k),a=1,i=r.parent("."+N),layui.each(e,function(e,i){p(i).children("."+N)[0]||(a=0)}),1==a?(n[0]||(i.removeClass(S),e.children("."+N).addClass(L),e.children("."+N).children("."+k).removeClass(T)),(r.next()[0]?i.children("."+k).last():r.prev()).children("."+N).children("."+k).last().addClass(T),r.next()[0]||r.parents("."+k)[1]||r.parents("."+k).eq(0).next()[0]||r.prev("."+k).addClass(T)):!r.next()[0]&&r.hasClass(T)&&r.prev().addClass(T))):(e=r.parent("."+N).prev(),o.showLine?(e.find("."+C).removeClass("layui-tree-icon"),e.find("."+C).children(".layui-icon").removeClass(x).addClass("layui-icon-file"),(i=e.parents("."+N).eq(0)).addClass(S),i.children("."+k).each(function(){p(this).children("."+N).children("."+k).last().addClass(T)})):e.find(".layui-tree-iconArrow").addClass(m),r.parents("."+k).eq(0).removeClass(F),r.parent("."+N).remove()),r.remove()):(r.remove(),s.elem.append(s.elemNone))})})},l.prototype.events=function(){var i=this,t=i.config;i.elem.find(".layui-tree-checkedFirst");i.setChecked(i.checkids),i.elem.find(".layui-tree-search").on("keyup",function(){var e=p(this),a=e.val(),e=e.nextAll(),n=[];e.find("."+w).each(function(){var i,e=p(this).parents("."+b);-1!=p(this).html().indexOf(a)&&(n.push(p(this).parent()),(i=function(e){e.addClass("layui-tree-searchShow"),e.parent("."+N)[0]&&i(e.parent("."+N).parent("."+k))})(e.parent("."+k)))}),e.find("."+b).each(function(){var e=p(this).parent("."+k);e.hasClass("layui-tree-searchShow")||e.addClass(m)}),0==e.find(".layui-tree-searchShow").length&&i.elem.append(i.elemNone),t.onsearch&&t.onsearch({elem:n})}),i.elem.find(".layui-tree-search").on("keydown",function(){p(this).nextAll().find("."+b).each(function(){p(this).parent("."+k).removeClass("layui-tree-searchShow "+m)}),p(".layui-tree-emptyText")[0]&&p(".layui-tree-emptyText").remove()})},l.prototype.getChecked=function(){var t=this,e=t.config,l=e.customName,i=[],a=[],c=(t.elem.find(".layui-form-checked").each(function(){i.push(p(this).prev()[0].value)}),function(e,n){layui.each(e,function(e,a){layui.each(i,function(e,i){if(a[l.id]==i)return t.updateFieldValue(a,"checked",!0),delete(i=p.extend({},a))[l.children],n.push(i),a[l.children]&&(i[l.children]=[],c(a[l.children],i[l.children])),!0})})});return c(p.extend({},e.data),a),a},l.prototype.setChecked=function(l){this.config;this.elem.find("."+k).each(function(e,i){var a=p(this).data("id"),n=p(i).children("."+b).find('input[same="layuiTreeCheck"]'),t=n.next();if("number"==typeof l){if(a.toString()==l.toString())return n[0].checked||t.click(),!1}else"object"==typeof l&&layui.each(l,function(e,i){if(i.toString()==a.toString()&&!n[0].checked)return t.click(),!0})})},n.that={},n.config={},t.reload=function(e,i){e=n.that[e];return e.reload(i),n.call(e)},t.getChecked=function(e){return n.that[e].getChecked()},t.setChecked=function(e,i){return n.that[e].setChecked(i)},t.render=function(e){e=new l(e);return n.call(e)},e(a,t)});layui.define(["laytpl","form"],function(e){"use strict";var d=layui.$,n=layui.laytpl,t=layui.form,a="transfer",i={config:{},index:layui[a]?layui[a].index+1e4:0,set:function(e){var t=this;return t.config=d.extend({},t.config,e),t},on:function(e,t){return layui.onevent.call(this,a,e,t)}},l=function(){var t=this,e=t.config,a=e.id||t.index;return l.that[a]=t,{config:l.config[a]=e,reload:function(e){t.reload.call(t,e)},getData:function(){return t.getData.call(t)}}},s="layui-hide",u="layui-btn-disabled",c="layui-none",r="layui-transfer-box",h="layui-transfer-header",o="layui-transfer-search",f="layui-transfer-data",y=function(e){return['<div class="layui-transfer-box" data-index="'+(e=e||{}).index+'">','<div class="layui-transfer-header">','<input type="checkbox" name="'+e.checkAllName+'" lay-filter="layTransferCheckbox" lay-type="all" lay-skin="primary" title="{{= d.data.title['+e.index+"] || 'list"+(e.index+1)+"' }}\">","</div>","{{# if(d.data.showSearch){ }}",'<div class="layui-transfer-search">','<i class="layui-icon layui-icon-search"></i>','<input type="text" class="layui-input" placeholder="\u5173\u952e\u8bcd\u641c\u7d22">',"</div>","{{# } }}",'<ul class="layui-transfer-data"></ul>',"</div>"].join("")},p=['<div class="layui-transfer layui-form layui-border-box" lay-filter="LAY-transfer-{{= d.index }}">',y({index:0,checkAllName:"layTransferLeftCheckAll"}),'<div class="layui-transfer-active">','<button type="button" class="layui-btn layui-btn-sm layui-btn-primary layui-btn-disabled" data-index="0">','<i class="layui-icon layui-icon-next"></i>',"</button>",'<button type="button" class="layui-btn layui-btn-sm layui-btn-primary layui-btn-disabled" data-index="1">','<i class="layui-icon layui-icon-prev"></i>',"</button>","</div>",y({index:1,checkAllName:"layTransferRightCheckAll"}),"</div>"].join(""),v=function(e){var t=this;t.index=++i.index,t.config=d.extend({},t.config,i.config,e),t.render()};v.prototype.config={title:["\u5217\u8868\u4e00","\u5217\u8868\u4e8c"],width:200,height:360,data:[],value:[],showSearch:!1,id:"",text:{none:"\u65e0\u6570\u636e",searchNone:"\u65e0\u5339\u914d\u6570\u636e"}},v.prototype.reload=function(e){var t=this;t.config=d.extend({},t.config,e),t.render()},v.prototype.render=function(){var e=this,t=e.config,a=e.elem=d(n(p,{open:"{{",close:"}}"}).render({data:t,index:e.index})),i=t.elem=d(t.elem);i[0]&&(t.data=t.data||[],t.value=t.value||[],t.id="id"in t?t.id:elem.attr("id")||e.index,e.key=t.id,i.html(e.elem),e.layBox=e.elem.find("."+r),e.layHeader=e.elem.find("."+h),e.laySearch=e.elem.find("."+o),e.layData=a.find("."+f),e.layBtn=a.find(".layui-transfer-active .layui-btn"),e.layBox.css({width:t.width,height:t.height}),e.layData.css({height:(i=t.height-e.layHeader.outerHeight(),t.showSearch&&(i-=e.laySearch.outerHeight()),i-2)}),e.renderData(),e.events())},v.prototype.renderData=function(){var e=this,t=e.config,l=[{checkName:"layTransferLeftCheck",views:[]},{checkName:"layTransferRightCheck",views:[]}];e.parseData(function(a){var i=a.selected?1:0,n=["<li>",'<input type="checkbox" name="'+l[i].checkName+'" lay-skin="primary" lay-filter="layTransferCheckbox" title="'+a.title+'"'+(a.disabled?" disabled":"")+(a.checked?" checked":"")+' value="'+a.value+'">',"</li>"].join("");i?layui.each(t.value,function(e,t){t==a.value&&a.selected&&(l[i].views[e]=n)}):l[i].views.push(n),delete a.selected}),e.layData.eq(0).html(l[0].views.join("")),e.layData.eq(1).html(l[1].views.join("")),e.renderCheckBtn()},v.prototype.renderForm=function(e){t.render(e,"LAY-transfer-"+this.index)},v.prototype.renderCheckBtn=function(c){var r=this,o=r.config;c=c||{},r.layBox.each(function(e){var t=d(this),a=t.find("."+f),t=t.find("."+h).find('input[type="checkbox"]'),i=a.find('input[type="checkbox"]'),n=0,l=!1;i.each(function(){var e=d(this).data("hide");(this.checked||this.disabled||e)&&n++,this.checked&&!e&&(l=!0)}),t.prop("checked",l&&n===i.length),r.layBtn.eq(e)[l?"removeClass":"addClass"](u),c.stopNone||(i=a.children("li:not(."+s+")").length,r.noneView(a,i?"":o.text.none))}),r.renderForm("checkbox")},v.prototype.noneView=function(e,t){var a=d('<p class="layui-none">'+(t||"")+"</p>");e.find("."+c)[0]&&e.find("."+c).remove(),t.replace(/\s/g,"")&&e.append(a)},v.prototype.setValue=function(){var e=this.config,t=[];return this.layBox.eq(1).find("."+f+' input[type="checkbox"]').each(function(){d(this).data("hide")||t.push(this.value)}),e.value=t,this},v.prototype.parseData=function(t){var i=this.config,n=[];return layui.each(i.data,function(e,a){a=("function"==typeof i.parseData?i.parseData(a):a)||a,n.push(a=d.extend({},a)),layui.each(i.value,function(e,t){t==a.value&&(a.selected=!0)}),t&&t(a)}),i.data=n,this},v.prototype.getData=function(e){var t=this.config,i=[];return this.setValue(),layui.each(e||t.value,function(e,a){layui.each(t.data,function(e,t){delete t.selected,a==t.value&&i.push(t)})}),i},v.prototype.transfer=function(e,t){var a,i=this,n=i.config,l=i.layBox.eq(e),c=[],t=(t?((a=(t=t).find('input[type="checkbox"]'))[0].checked=!1,l.siblings("."+r).find("."+f).append(t.clone()),t.remove(),c.push(a[0].value),i.setValue()):l.each(function(e){d(this).find("."+f).children("li").each(function(){var e=d(this),t=e.find('input[type="checkbox"]'),a=t.data("hide");t[0].checked&&!a&&(t[0].checked=!1,l.siblings("."+r).find("."+f).append(e.clone()),e.remove(),c.push(t[0].value)),i.setValue()})}),i.renderCheckBtn(),l.siblings("."+r).find("."+o+" input"));""!==t.val()&&t.trigger("keyup"),n.onchange&&n.onchange(i.getData(c),e)},v.prototype.events=function(){var n=this,l=n.config;n.elem.on("click",'input[lay-filter="layTransferCheckbox"]+',function(){var e=d(this).prev(),t=e[0].checked,a=e.parents("."+r).eq(0).find("."+f);e[0].disabled||("all"===e.attr("lay-type")&&a.find('input[type="checkbox"]').each(function(){this.disabled||(this.checked=t)}),setTimeout(function(){n.renderCheckBtn({stopNone:!0})},0))}),n.elem.on("dblclick","."+f+">li",function(e){var t=d(this),a=t.children('input[type="checkbox"]'),i=t.parent().parent().data("index");a[0].disabled||!1!==("function"==typeof l.dblclick?l.dblclick({elem:t,data:n.getData([a[0].value])[0],index:i}):null)&&n.transfer(i,t)}),n.layBtn.on("click",function(){var e=d(this),t=e.data("index");e.hasClass(u)||n.transfer(t)}),n.laySearch.find("input").on("keyup",function(){var i=this.value,e=d(this).parents("."+o).eq(0).siblings("."+f),t=e.children("li"),t=(t.each(function(){var e=d(this),t=e.find('input[type="checkbox"]'),a=t[0].title,a=("cs"!==l.showSearch&&(a=a.toLowerCase(),i=i.toLowerCase()),-1!==a.indexOf(i));e[a?"removeClass":"addClass"](s),t.data("hide",!a)}),n.renderCheckBtn(),t.length===e.children("li."+s).length);n.noneView(e,t?l.text.searchNone:"")})},l.that={},l.config={},i.reload=function(e,t){e=l.that[e];return e.reload(t),l.call(e)},i.getData=function(e){return l.that[e].getData()},i.render=function(e){e=new v(e);return l.call(e)},e(a,i)});layui.define(["jquery","lay"],function(e){"use strict";var a=layui.$,l=layui.lay,t=(layui.hint(),layui.device(),{config:{},set:function(e){var i=this;return i.config=a.extend({},i.config,e),i},on:function(e,i){return layui.onevent.call(this,d,e,i)}}),d="carousel",r="layui-this",s="layui-carousel-left",u="layui-carousel-right",c="layui-carousel-prev",h="layui-carousel-next",o="layui-carousel-arrow",m="layui-carousel-ind",i=function(e){var i=this;i.config=a.extend({},i.config,t.config,e),i.render()};i.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},i.prototype.render=function(){var e=this,i=e.config,n=a(i.elem);if(1<n.length)return layui.each(n,function(){t.render(a.extend({},i,{elem:this}))}),e;a.extend(i,l.options(n[0])),i.elem=a(i.elem),i.elem[0]&&(e.elemItem=i.elem.find(">*[carousel-item]>*"),i.index<0&&(i.index=0),i.index>=e.elemItem.length&&(i.index=e.elemItem.length-1),i.interval<800&&(i.interval=800),i.full?i.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):i.elem.css({width:i.width,height:i.height}),i.elem.attr("lay-anim",i.anim),e.elemItem.eq(i.index).addClass(r),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},i.prototype.reload=function(e){var i=this;clearInterval(i.timer),i.config=a.extend({},i.config,e),i.render()},i.prototype.prevIndex=function(){var e=this.config.index-1;return e=e<0?this.elemItem.length-1:e},i.prototype.nextIndex=function(){var e=this.config.index+1;return e=e>=this.elemItem.length?0:e},i.prototype.addIndex=function(e){var i=this.config;i.index=i.index+(e=e||1),i.index>=this.elemItem.length&&(i.index=0)},i.prototype.subIndex=function(e){var i=this.config;i.index=i.index-(e=e||1),i.index<0&&(i.index=this.elemItem.length-1)},i.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(clearInterval(e.timer),e.timer=setInterval(function(){e.slide()},i.interval))},i.prototype.arrow=function(){var i=this,e=i.config,n=a(['<button class="layui-icon '+o+'" lay-type="sub">'+("updown"===e.anim?"":"")+"</button>",'<button class="layui-icon '+o+'" lay-type="add">'+("updown"===e.anim?"":"")+"</button>"].join(""));e.elem.attr("lay-arrow",e.arrow),e.elem.find("."+o)[0]&&e.elem.find("."+o).remove(),e.elem.append(n),n.on("click",function(){var e=a(this).attr("lay-type");i.slide(e)})},i.prototype["goto"]=function(e){var i=this,n=i.config;e>n.index?i.slide("add",e-n.index):e<n.index&&i.slide("sub",n.index-e)},i.prototype.indicator=function(){var i,e=this,n=e.config,t=e.elemInd=a(['<div class="'+m+'"><ul>',(i=[],layui.each(e.elemItem,function(e){i.push("<li"+(n.index===e?' class="layui-this"':"")+"></li>")}),i.join("")),"</ul></div>"].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+m)[0]&&n.elem.find("."+m).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-t.height()/2),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){e["goto"](a(this).index())})},i.prototype.slide=function(e,i){var n=this,t=n.elemItem,a=n.config,o=a.index,l=a.elem.attr("lay-filter");n.haveSlide||("sub"===e?(n.subIndex(i),t.eq(a.index).addClass(c),setTimeout(function(){t.eq(o).addClass(u),t.eq(a.index).addClass(u)},50)):(n.addIndex(i),t.eq(a.index).addClass(h),setTimeout(function(){t.eq(o).addClass(s),t.eq(a.index).addClass(s)},50)),setTimeout(function(){t.removeClass(r+" "+c+" "+h+" "+s+" "+u),t.eq(a.index).addClass(r),n.haveSlide=!1},350),n.elemInd.find("li").eq(a.index).addClass(r).siblings().removeClass(r),n.haveSlide=!0,e={index:a.index,prevIndex:o,item:t.eq(a.index)},"function"==typeof a.change&&a.change(e),layui.event.call(this,d,"change("+l+")",e))},i.prototype.events=function(){var t,a,o=this,e=o.config;e.elem.data("haveEvents")||(e.elem.on("mouseenter touchstart",function(){"always"!==o.config.autoplay&&clearInterval(o.timer)}).on("mouseleave touchend",function(){"always"!==o.config.autoplay&&o.autoplay()}),t=e.elem,a="updown"===e.anim,l.touchSwipe(t,{onTouchEnd:function(e,i){var n=Date.now()-i.timeStart,i=a?i.distanceY:i.distanceX;(.25<Math.abs(i/n)||Math.abs(i)>t[a?"height":"width"]()/3)&&o.slide(0<i?"":"sub")}}),e.elem.data("haveEvents",!0))},t.render=function(e){return new i(e)},e(d,t)});layui.define(["jquery","lay"],function(e){"use strict";var u=layui.jquery,r=layui.lay,c={config:{},index:layui.rate?layui.rate.index+1e4:0,set:function(e){var a=this;return a.config=u.extend({},a.config,e),a},on:function(e,a){return layui.onevent.call(this,l,e,a)}},l="rate",h="layui-icon-rate",f="layui-icon-rate-solid",o="layui-icon-rate-half",s="layui-icon-rate-solid layui-icon-rate-half",v="layui-icon-rate layui-icon-rate-half",a=function(e){var a=this;a.index=++c.index,a.config=u.extend({},a.config,c.config,e),a.render()};a.prototype.config={length:5,text:!1,readonly:!1,half:!1,value:0,theme:""},a.prototype.render=function(){var e=this,a=e.config,l=u(a.elem);if(1<l.length)return layui.each(l,function(){c.render(u.extend({},a,{elem:this}))}),e;u.extend(a,r.options(l[0]));for(var t=a.theme?'style="color: '+a.theme+';"':"",i=(a.elem=u(a.elem),a.value>a.length&&(a.value=a.length),parseInt(a.value)===a.value||a.half||(a.value=Math.ceil(a.value)-a.value<.5?Math.ceil(a.value):Math.floor(a.value)),'<ul class="layui-rate" '+(a.readonly?"readonly":"")+">"),n=1;n<=a.length;n++){var o='<li class="layui-inline"><i class="layui-icon '+(n>Math.floor(a.value)?h:f)+'" '+t+"></i></li>";a.half&&parseInt(a.value)!==a.value&&n==Math.ceil(a.value)?i=i+'<li><i class="layui-icon layui-icon-rate-half" '+t+"></i></li>":i+=o}i+="</ul>"+(a.text?'<span class="layui-inline">'+a.value+"\u661f":"")+"</span>";var l=a.elem,s=l.next(".layui-rate");s[0]&&s.remove(),e.elemTemp=u(i),a.span=e.elemTemp.next("span"),a.setText&&a.setText(a.value),l.html(e.elemTemp),l.addClass("layui-inline"),a.readonly||e.action()},a.prototype.setvalue=function(e){this.config.value=e,this.render()},a.prototype.action=function(){var n=this.config,t=this.elemTemp,i=t.find("i").width(),l=t.children("li");l.each(function(e){var a=e+1,l=u(this);l.on("click",function(e){n.value=a,n.half&&e.pageX-u(this).offset().left<=i/2&&(n.value=n.value-.5),n.text&&t.next("span").text(n.value+"\u661f"),n.choose&&n.choose(n.value),n.setText&&n.setText(n.value)}),l.on("mousemove",function(e){t.find("i").each(function(){u(this).addClass(h).removeClass(s)}),t.find("i:lt("+a+")").each(function(){u(this).addClass(f).removeClass(v)}),n.half&&e.pageX-u(this).offset().left<=i/2&&l.children("i").addClass(o).removeClass(f)}),l.on("mouseleave",function(){t.find("i").each(function(){u(this).addClass(h).removeClass(s)}),t.find("i:lt("+Math.floor(n.value)+")").each(function(){u(this).addClass(f).removeClass(v)}),n.half&&parseInt(n.value)!==n.value&&t.children("li:eq("+Math.floor(n.value)+")").children("i").addClass(o).removeClass("layui-icon-rate-solid layui-icon-rate")})}),r.touchSwipe(t,{onTouchMove:function(e,a){var i;Date.now()-a.timeStart<=200||(a=e.touches[0].pageX,e=t.width()/n.length,a=(a-t.offset().left)/e,(i=(i=(e=a%1)<=.5&&n.half?.5+(a-e):Math.ceil(a))>n.length?n.length:i)<0&&(i=0),l.each(function(e){var a=u(this).children("i"),l=Math.ceil(i)-e==1,t=Math.ceil(i)>e,e=i-e==.5;t?(a.addClass(f).removeClass(v),n.half&&e&&a.addClass(o).removeClass(f)):a.addClass(h).removeClass(s),a.toggleClass("layui-rate-hover",l)}),n.value=i,n.text&&t.next("span").text(n.value+"\u661f"),n.setText&&n.setText(n.value))},onTouchEnd:function(e,a){Date.now()-a.timeStart<=200||(t.find("i").removeClass("layui-rate-hover"),n.choose&&n.choose(n.value),n.setText&&n.setText(n.value))}})},a.prototype.events=function(){},c.render=function(e){e=new a(e);return function(){var a=this;return{setvalue:function(e){a.setvalue.call(a,e)},config:a.config}}.call(e)},e(l,c)});layui.define("jquery",function(o){"use strict";var w=layui.$,l=function(o){};l.prototype.load=function(o){var i,n,r,l,c,m,e,t,a,f,s,u,p,d,y,h=this,g=0,v=w((o=o||{}).elem);if(v[0])return c=w(o.scrollElem||document),m="mb"in o?o.mb:50,e=!("isAuto"in o)||o.isAuto,t=o.moreText||"\u52a0\u8f7d\u66f4\u591a",a=o.end||"\u6ca1\u6709\u66f4\u591a\u4e86",f="top"===(o.direction||"bottom"),h._cleanup(v,c),s=o.scrollElem&&o.scrollElem!==document,p=w('<div class="layui-flow-more"><a href="javascript:;">'+(u="<cite>"+t+"</cite>")+"</a></div>"),v.find(".layui-flow-more")[0]||v[f?"prepend":"append"](p),d=function(o,l){var e=s?c.prop("scrollHeight"):document.documentElement.scrollHeight,t=c.scrollTop();o=w(o),p[f?"after":"before"](o),(l=0==l||null)?p.html(a):p.find("a").html(u),n=l,i=null,r&&r(),f&&(o=s?c.prop("scrollHeight"):document.documentElement.scrollHeight,1===g?c.scrollTop(o):1<g&&c.scrollTop(t+(o-e)))},(y=function(){i=!0,p.find("a").html('<i class="layui-anim layui-anim-rotate layui-anim-loop layui-icon "></i>'),"function"==typeof o.done&&o.done(++g,d)})(),p.find("a").on("click.flow",function(){w(this);n||i||y()}),o.isLazyimg&&(r=h.lazyimg({elem:o.elem+" img",scrollElem:o.scrollElem,direction:o.direction})),e&&c.on("scroll.flow",function(){var e=w(this),t=e.scrollTop();l&&clearTimeout(l),!n&&v.width()&&(l=setTimeout(function(){var o=(s?e:w(window)).height(),l=s?e.prop("scrollHeight"):document.documentElement.scrollHeight;(f?t<=m:l-t-o<=m)&&!i&&y()},100))}),h},l.prototype.lazyimg=function(o){var l,m=this,a=0,f=w((o=o||{}).scrollElem||document),s=o.elem||"img",n="top"===(o.direction||"bottom"),u=o.scrollElem&&o.scrollElem!==document,p=function(l,o){var e,t=f.scrollTop(),o=t+o,i=u?l.offset().top-f.offset().top+t:l.offset().top;(n?i+l.height():i)>=t&&i<=o&&l.attr("lay-src")&&(e=l.attr("lay-src"),layui.img(e,function(){var o=m.lazyimg.elem.eq(a);l.attr("src",e).removeAttr("lay-src"),o[0]&&r(o),a++},function(){m.lazyimg.elem.eq(a);l.removeAttr("lay-src")}))},r=function(o,l){var e=(u?l||f:w(window)).height(),t=f.scrollTop(),i=t+e;if(m.lazyimg.elem=w(s),o)p(o,e);else for(var n=0;n<m.lazyimg.elem.length;n++){var r=m.lazyimg.elem.eq(n),c=u?r.offset().top-f.offset().top+t:r.offset().top;if(p(r,e),a=n,i<c)break}};return r(),f.on("scroll.lazyimg",function(){var o=w(this);l&&clearTimeout(l),l=setTimeout(function(){r(null,o)},50)}),r},l.prototype._cleanup=function(o,l){l.off("scroll.flow").off("scroll.lazyimg"),o.find(".layui-flow-more").find("a").off("click.flow"),o.html("")},o("flow",new l)});layui.define(["lay","util","element","form"],function(e){"use strict";var x=layui.$,D=layui.util,S=layui.element,I=layui.form,N=layui.layer,A=(layui.hint(),{ELEM_VIEW:"layui-code-view",ELEM_TAB:"layui-tab",ELEM_HEADER:"layui-code-header",ELEM_FULL:"layui-code-full",ELEM_PREVIEW:"layui-code-preview",ELEM_ITEM:"layui-code-item",ELEM_SHOW:"layui-show",ELEM_LINE:"layui-code-line",ELEM_LINE_NUM:"layui-code-line-number",ELEM_LN_MODE:"layui-code-ln-mode",CDDE_DATA_CLASS:"LayuiCodeDataClass",LINE_RAW_WIDTH:45}),T={elem:"",about:"",ln:!0,header:!1,encode:!0,copy:!0,text:{code:D.escape("</>"),preview:"Preview"},wordWrap:!0,lang:"text",highlighter:!1,langMarker:!1},W=layui.code?layui.code.index+1e4:0,R=function(e){return String(e).replace(/\s+$/,"").replace(/^\n|\n$/,"")};e("code",function(l,e){var o,i,t,a,n,d,c,s,r,u,y,p,E,f,h,v,m,L,_,M,C,g={config:l=x.extend(!0,{},T,l),reload:function(e){layui.code(this.updateOptions(e))},updateOptions:function(e){return delete(e=e||{}).elem,x.extend(!0,l,e)},reloadCode:function(e){layui.code(this.updateOptions(e),"reloadCode")}},w=x(l.elem);return 1<w.length?layui.each(l.obverse?w:w.get().reverse(),function(){layui.code(x.extend({},l,{elem:this}),e)}):(o=l.elem=x(l.elem))[0]&&(x.extend(!0,l,lay.options(o[0]),(i={},layui.each(["title","height","encode","skin","about"],function(e,t){var a=o.attr("lay-"+t);"string"==typeof a&&(i[t]=a)}),i)),l.encode=(l.encode||l.preview)&&!l.codeRender,l.code=l.code||(t=[],o.children("textarea").each(function(){t.push(R(this.value))}),0===t.length&&t.push(R(o.html())),t.join("")),w=function(e){"function"==typeof l.codeRender&&(e=l.codeRender(String(e),l));var t=String(e).split(/\r?\n/g);return{lines:t,html:e=x.map(t,function(e,t){return['<div class="'+A.ELEM_LINE+'">',l.ln?['<div class="'+A.ELEM_LINE_NUM+'">',D.digit(t+1)+".","</div>"].join(""):"",'<div class="layui-code-line-content">',e||" ","</div>","</div>"].join("")})}},a=l.code,n=function(e){return"function"==typeof l.codeParse?l.codeParse(e,l):e},"reloadCode"===e?o.children(".layui-code-wrap").html(w(n(a)).html):(d=layui.code.index=++W,o.attr("lay-code-index",d),(M=A.CDDE_DATA_CLASS in o.data())&&o.attr("class",o.data(A.CDDE_DATA_CLASS)||""),M||o.data(A.CDDE_DATA_CLASS,o.attr("class")),c={copy:{className:"file-b",title:["\u590d\u5236\u4ee3\u7801"],event:function(e){var t=D.unescape(n(l.code));lay.clipboard.writeText({text:t,done:function(){N.msg("\u5df2\u590d\u5236",{icon:1})},error:function(){N.msg("\u590d\u5236\u5931\u8d25",{icon:2})}}),"function"==typeof l.onCopy&&l.onCopy(t)}}},function b(){var e=o.parent("."+A.ELEM_PREVIEW),t=e.children("."+A.ELEM_TAB),a=e.children("."+A.ELEM_ITEM+"-preview");return t.remove(),a.remove(),e[0]&&o.unwrap(),b}(),l.preview&&(M="LAY-CODE-DF-"+d,f=l.layout||["code","preview"],s="iframe"===l.preview,E=x('<div class="'+A.ELEM_PREVIEW+'">'),C=x('<div class="layui-tab layui-tab-brief">'),r=x('<div class="layui-tab-title">'),_=x('<div class="'+[A.ELEM_ITEM,A.ELEM_ITEM+"-preview","layui-border"].join(" ")+'">'),u=x('<div class="layui-code-tools"></div>'),l.id&&E.attr("id",l.id),E.addClass(l.className),C.attr("lay-filter",M),layui.each(f,function(e,t){var a=x('<li lay-id="'+t+'">');0===e&&a.addClass("layui-this"),a.html(l.text[t]),r.append(a)}),x.extend(c,{full:{className:"screen-full",title:["\u6700\u5927\u5316\u663e\u793a","\u8fd8\u539f\u663e\u793a"],event:function(e){var e=e.elem,t=e.closest("."+A.ELEM_PREVIEW),a="layui-icon-"+this.className,i="layui-icon-screen-restore",l=this.title,o=x("html,body"),n="layui-scrollbar-hide";e.hasClass(a)?(t.addClass(A.ELEM_FULL),e.removeClass(a).addClass(i),e.attr("title",l[1]),o.addClass(n)):(t.removeClass(A.ELEM_FULL),e.removeClass(i).addClass(a),e.attr("title",l[0]),o.removeClass(n))}},window:{className:"release",title:["\u5728\u65b0\u7a97\u53e3\u9884\u89c8"],event:function(e){D.openWin({content:n(l.code)})}}}),l.copy&&("array"===layui.type(l.tools)?-1===l.tools.indexOf("copy")&&l.tools.unshift("copy"):l.tools=["copy"]),u.on("click",">i",function(){var e=x(this),t=e.data("type"),e={elem:e,type:t,options:l,rawCode:l.code,finalCode:D.unescape(n(l.code))};c[t]&&"function"==typeof c[t].event&&c[t].event(e),"function"==typeof l.toolsEvent&&l.toolsEvent(e)}),l.addTools&&l.tools&&(l.tools=[].concat(l.tools,l.addTools)),layui.each(l.tools,function(e,t){var a="object"==typeof t,i=a?t:c[t]||{className:t,title:[t]},l=i.className||i.type,o=i.title||[""],a=a?i.type||l:t;a&&(c[a]||((t={})[a]=i,x.extend(c,t)),u.append('<i class="layui-icon layui-icon-'+l+'" data-type="'+a+'" title="'+o[0]+'"></i>'))}),o.addClass(A.ELEM_ITEM).wrap(E),C.append(r),l.tools&&C.append(u),o.before(C),s&&_.html('<iframe allowtransparency="true" frameborder="0"></iframe>'),y=function(e){var t=e.children("iframe")[0];s&&t?t.srcdoc=n(l.code):e.html(l.code),setTimeout(function(){"function"==typeof l.done&&l.done({container:e,options:l,render:function(){I.render(e.find(".layui-form")),S.render()}})},3)},"preview"===f[0]?(_.addClass(A.ELEM_SHOW),o.before(_),y(_)):o.addClass(A.ELEM_SHOW).after(_),l.previewStyle=[l.style,l.previewStyle].join(""),_.attr("style",l.previewStyle),S.on("tab("+M+")",function(e){var t=x(this),a=x(e.elem).closest("."+A.ELEM_PREVIEW).find("."+A.ELEM_ITEM),e=a.eq(e.index);a.removeClass(A.ELEM_SHOW),e.addClass(A.ELEM_SHOW),"preview"===t.attr("lay-id")&&y(e),L()})),p=x('<code class="layui-code-wrap"></code>'),o.addClass((E=["layui-code-view layui-border-box"],l.wordWrap||E.push("layui-code-nowrap"),E.join(" "))),(C=l.theme||l.skin)&&(o.removeClass("layui-code-theme-dark layui-code-theme-light"),o.addClass("layui-code-theme-"+C)),l.highlighter&&o.addClass([l.highlighter,"language-"+l.lang,"layui-code-hl"].join(" ")),f=w(l.encode?D.escape(n(a)):a),h=f.lines,o.html(p.html(f.html)),l.ln&&o.append('<div class="layui-code-ln-side"></div>'),l.height&&p.css("max-height",l.height),l.codeStyle=[l.style,l.codeStyle].join(""),l.codeStyle&&p.attr("style",function(e,t){return(t||"")+l.codeStyle}),v=[{selector:">.layui-code-wrap>.layui-code-line{}",setValue:function(e,t){e.style["padding-left"]=t+"px"}},{selector:">.layui-code-wrap>.layui-code-line>.layui-code-line-number{}",setValue:function(e,t){e.style.width=t+"px"}},{selector:">.layui-code-ln-side{}",setValue:function(e,t){e.style.width=t+"px"}}],m=lay.style({target:o[0],id:"DF-code-"+d,text:x.map(x.map(v,function(e){return e.selector}),function(e,t){return['.layui-code-view[lay-code-index="'+d+'"]',e].join(" ")}).join("")}),L=function b(){var e,i;return l.ln&&(e=Math.floor(h.length/100),i=p.children("."+A.ELEM_LINE).last().children("."+A.ELEM_LINE_NUM).outerWidth(),o.addClass(A.ELEM_LN_MODE),e)&&A.LINE_RAW_WIDTH<i&&lay.getStyleRules(m,function(e,t){try{v[t].setValue(e,i)}catch(a){}}),b}(),l.header&&((_=x('<div class="'+A.ELEM_HEADER+'"></div>')).html(l.title||l.text.code),o.prepend(_)),M=x('<div class="layui-code-fixbar"></div>'),l.copy&&!l.preview&&((C=x(['<span class="layui-code-copy">','<i class="layui-icon layui-icon-file-b" title="\u590d\u5236"></i>',"</span>"].join(""))).on("click",function(){c.copy.event()}),M.append(C)),l.langMarker&&M.append('<span class="layui-code-lang-marker">'+l.lang+"</span>"),l.about&&M.append(l.about),o.append(M),l.preview||setTimeout(function(){"function"==typeof l.done&&l.done({})},3),l.elem.length===1+d&&"function"==typeof l.allDone&&l.allDone())),g})}),layui["layui.all"]||layui.addcss("modules/code.css?v=6","skincodecss"); | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/main/resources/static/pages/video/static/SkeyeWebPlayer/SkeyeWebPlayer-pack.js
0 → 100644
| 1 | +/*! For license information please see SkeyeWebPlayer_2.0.1.min.js.LICENSE.txt */ | ||
| 2 | +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.WebMediaPlayer=e():t.WebMediaPlayer=e()}(this,(function(){return function(t){var e={};function i(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)i.d(r,n,function(e){return t[e]}.bind(null,n));return r},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=283)}([function(t,e,i){"use strict";i.r(e),i.d(e,"tVideoRenderYV12",(function(){return n})),i.d(e,"tVideoRenderRGB",(function(){return o})),i.d(e,"tVideoRenderRGBA",(function(){return a})),i.d(e,"tOpenStream",(function(){return s})),i.d(e,"tCloseStream",(function(){return h})),i.d(e,"tFrameData",(function(){return u})),i.d(e,"tReOpenStream",(function(){return l})),i.d(e,"tConnecting",(function(){return d})),i.d(e,"tOpenAudio",(function(){return c})),i.d(e,"tCloseAudio",(function(){return p})),i.d(e,"tOutputStatInfo",(function(){return m})),i.d(e,"tGetTsStream",(function(){return g})),i.d(e,"tGetTsStreamRsp",(function(){return v})),i.d(e,"tDecode",(function(){return y})),i.d(e,"tVidInterval",(function(){return b})),i.d(e,"tPauseStream",(function(){return _})),i.d(e,"tResumeStream",(function(){return w})),i.d(e,"tSeekStream",(function(){return A})),i.d(e,"tMediaInfo",(function(){return M})),i.d(e,"tGetTsComplete",(function(){return E})),i.d(e,"tError",(function(){return S})),i.d(e,"tExcept",(function(){return k})),i.d(e,"tDisconnect",(function(){return T})),i.d(e,"tResetMSE",(function(){return R})),i.d(e,"tDecoderWorkerStartup",(function(){return I})),i.d(e,"DOWNLOAD_WORKER_ID",(function(){return C})),i.d(e,"DECODE_WORKER_ID",(function(){return P})),i.d(e,"RENDER_WORKER_ID",(function(){return x})),i.d(e,"setLiveStreamType",(function(){return V})),i.d(e,"GetLiveStreamType",(function(){return H})),i.d(e,"setCodecTypeStr",(function(){return z})),i.d(e,"setVideoWidth",(function(){return G})),i.d(e,"setVideoHeight",(function(){return X})),i.d(e,"setVideoBitrate",(function(){return Z})),i.d(e,"GetCodecTypeStr",(function(){return K})),i.d(e,"GetVideoWidth",(function(){return Q})),i.d(e,"GetVideoHeight",(function(){return Y})),i.d(e,"GetVideoBitrate",(function(){return J})),i.d(e,"SetEnableAudio",(function(){return $})),i.d(e,"GetEnableAudio",(function(){return tt})),i.d(e,"ClearAppendBufferError",(function(){return et})),i.d(e,"SetAppendBufferError",(function(){return it})),i.d(e,"GetAppendBufferError",(function(){return rt})),i.d(e,"sleep",(function(){return nt})),i.d(e,"MediaWorkerLog",(function(){return ot})),i.d(e,"getFullURL",(function(){return at})),i.d(e,"getMessage",(function(){return st})),i.d(e,"setMessage",(function(){return ht}));var r=f;!function(t,e){for(var i=f,r=t();;)try{if(568290===-parseInt(i(133,"z*d^"))/1*(parseInt(i(143,"910C"))/2)+parseInt(i(160,"CDl3"))/3*(-parseInt(i(150,"a8ng"))/4)+-parseInt(i(139,"LEw2"))/5*(parseInt(i(164,"Jo^l"))/6)+parseInt(i(154,"gvq)"))/7*(-parseInt(i(129,"fRUp"))/8)+parseInt(i(146,"^0y0"))/9*(parseInt(i(138,"!YIt"))/10)+-parseInt(i(151,"O%q4"))/11+parseInt(i(130,"UnZ4"))/12*(parseInt(i(141,"E^JA"))/13))break;r.push(r.shift())}catch(t){r.push(r.shift())}}(q);var n=1,o=2,a=3,s=1,h=2,u=3,l=4,d=5;function f(t,e){var i=q();return f=function(e,r){var n=i[e-=127];if(void 0===f.DsHZPz){var o=function(t){for(var e,i,r="",n="",o=0,a=0;i=t.charAt(a++);~i&&(e=o%4?64*e+i:i,o++%4)?r+=String.fromCharCode(255&e>>(-2*o&6)):0)i="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(i);for(var s=0,h=r.length;s<h;s++)n+="%"+("00"+r.charCodeAt(s).toString(16)).slice(-2);return decodeURIComponent(n)},a=function(t,e){var i,r,n=[],a=0,s="";for(t=o(t),r=0;r<256;r++)n[r]=r;for(r=0;r<256;r++)a=(a+n[r]+e.charCodeAt(r%e.length))%256,i=n[r],n[r]=n[a],n[a]=i;r=0,a=0;for(var h=0;h<t.length;h++)a=(a+n[r=(r+1)%256])%256,i=n[r],n[r]=n[a],n[a]=i,s+=String.fromCharCode(t.charCodeAt(h)^n[(n[r]+n[a])%256]);return s};f.BEleuN=a,t=arguments,f.DsHZPz=!0}var s=i[0],h=e+s,u=t[h];return u?n=u:(void 0===f.FreeCU&&(f.FreeCU=!0),n=f.BEleuN(n,r),t[h]=n),n},f(t,e)}var c=6,p=7,m=8,g=10,v=11,y=12,b=13,_=14,w=15,A=16,M=20,E=21,S=100,k=101,T=102,R=103,I=200,C=1,P=2,x=3,D=!0,O=r(128,"phS^"),B=1920,L=1080,W=0,N=!0,F={};F[r(162,"l7Tx")]=!1,F[r(148,"gvq)")]=!1;var U=F,j=[];function V(t){D=t}function H(){return D}function z(t){O=t}function G(t){B=t}function q(){var t=["W7JdKCkVWOriWRFdIgLJWQWFW6iC","E8kzW40tqsRdUcO","kIBcKSkipcldULRdPCkFvCkKka","dmoBfmkeCdpdP2a","W5z0WQDBbSkg","WQ1yWOTHka","o8o9W4vqWPdcI8kKoa","vmoGwmkXi3b+oa","fSkZBmkIWOmvW7JcUSoCwCoLmCkBWPO","WOb+W7FdVmkyW67dOZdcObrFcSo1WQ0","WOuudSkEka","W6KjWR9tmCodWQyz","dtidDCoiW5jPWOWXW4vkp2G","W7ZcQmkECYRdPZ4h","sc5fWPhdHCkwpNtdPmoN","W4nHwx3cTWrmc8kqvxDTimoB","sc5fWPtdG8knoxm","ESkAWObsovZdPbawWQddNxW","W5tcSmo9rq","tJ5vWRxdGW","g0vqnSoj","W6PuWRpcN8ksW7VdQCkZW78+W47cGG","sc5fWPJdJCkmlG","vL4njs8","dSoqsCoNfutdMMyhW600rG","e0mv","ACk5sc4","wqmoB8klWRpdNSk1WPFcSXOrW58","cdeaD8ohW5bRW5yoW7TIoN/cPG","EHBcSmorq8ouEq","qN88imk1","ACoVySoflgWs","W7NdV8kUdq","ACkeuCo+WPJdMSkXEmk9","hxnHWOVdMSk6a1y","W4X/x8ksW4i","tr1kECoysCkzWPNcI8kjW6xcQ8oc","WRJcUmoTagSJaCo5nq","nspcVutdTSoiW7ZdPq","W5VdTLRcI8olWPlcMti","hLXyoSos"];return(q=function(){return t})()}function X(t){L=t}function Z(t){W=t}function K(){return O}function Q(){return B}function Y(){return L}function J(){return W}function $(t){N=t}function tt(){return N}function et(){var t=r;U[t(153,"Wo@Z")]=!1,U[t(137,"PFV2")]=!1}function it(t){var e=r;t===e(132,"wu1V")?U[e(142,"fRUp")]=!0:"audio"===t&&(U[e(166,"[W2e")]=!0)}function rt(){return U}function nt(t){return new Promise((function(e){return setTimeout(e,t)}))}function ot(t){var e=r,i=new Date,n=i.getFullYear(),o=i[e(140,"O7#I")]()+1,a=i[e(165,"l7Tx")]();i[e(147,"wYCL")]();i[e(159,"l7Tx")](),i[e(157,"l7Tx")](),i.getSeconds()}function at(){for(var t=r,e=window[t(149,"BsNI")].href[t(163,"fRUp")]("/"),i="",n=0;n<3;n++)i+=e[n],i+="/";return i}function st(t){return j}function ht(t){j[r(134,"LEw2")](t)}},function(t,e,i){"use strict";var r=i(6),n=i.n(r),o=function(){function t(){}return t.e=function(e,i){e&&!t.FORCE_GLOBAL_TAG||(e=t.GLOBAL_TAG);var r="["+e+"] > "+i;t.ENABLE_CALLBACK&&t.emitter.emit("log","error",r),t.ENABLE_ERROR&&(console.error||console.warn)},t.i=function(e,i){e&&!t.FORCE_GLOBAL_TAG||(e=t.GLOBAL_TAG);var r="["+e+"] > "+i;t.ENABLE_CALLBACK&&t.emitter.emit("log","info",r),t.ENABLE_INFO&&console.info},t.w=function(e,i){e&&!t.FORCE_GLOBAL_TAG||(e=t.GLOBAL_TAG);var r="["+e+"] > "+i;t.ENABLE_CALLBACK&&t.emitter.emit("log","warn",r),t.ENABLE_WARN&&console.warn},t.d=function(e,i){e&&!t.FORCE_GLOBAL_TAG||(e=t.GLOBAL_TAG);var r="["+e+"] > "+i;t.ENABLE_CALLBACK&&t.emitter.emit("log","debug",r),t.ENABLE_DEBUG&&console.debug},t.v=function(e,i){e&&!t.FORCE_GLOBAL_TAG||(e=t.GLOBAL_TAG);var r="["+e+"] > "+i;t.ENABLE_CALLBACK&&t.emitter.emit("log","verbose",r),t.ENABLE_VERBOSE},t}();o.GLOBAL_TAG="SyncPlayer.js",o.FORCE_GLOBAL_TAG=!1,o.ENABLE_ERROR=!0,o.ENABLE_INFO=!0,o.ENABLE_WARN=!0,o.ENABLE_DEBUG=!0,o.ENABLE_VERBOSE=!0,o.ENABLE_CALLBACK=!1,o.emitter=new n.a,e.a=o},function(t,e,i){"use strict";function r(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,n(t,e)}function n(t,e){return n=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},n(t,e)}function o(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function a(t,e,i){return e&&o(t.prototype,e),i&&o(t,i),Object.defineProperty(t,"prototype",{writable:!1}),t}i.d(e,"d",(function(){return s})),i.d(e,"a",(function(){return h})),i.d(e,"b",(function(){return u})),i.d(e,"c",(function(){return l}));var s=function(){function t(t){this._message=t}return t.prototype.toString=function(){return this.name+": "+this.message},a(t,[{key:"name",get:function(){return"RuntimeException"}},{key:"message",get:function(){return this._message}}]),t}(),h=function(t){function e(e){return t.call(this,e)||this}return r(e,t),a(e,[{key:"name",get:function(){return"IllegalStateException"}}]),e}(s),u=function(t){function e(e){return t.call(this,e)||this}return r(e,t),a(e,[{key:"name",get:function(){return"InvalidArgumentException"}}]),e}(s),l=function(t){function e(e){return t.call(this,e)||this}return r(e,t),a(e,[{key:"name",get:function(){return"NotImplementedException"}}]),e}(s)},function(t,e){"function"==typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var i=function(){};i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t}}},function(t,e,i){var r=i(9),n=r.Buffer;function o(t,e){for(var i in t)e[i]=t[i]}function a(t,e,i){return n(t,e,i)}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?t.exports=r:(o(r,e),e.Buffer=a),a.prototype=Object.create(n.prototype),o(n,a),a.from=function(t,e,i){if("number"==typeof t)throw new TypeError("Argument must not be a number");return n(t,e,i)},a.alloc=function(t,e,i){if("number"!=typeof t)throw new TypeError("Argument must be a number");var r=n(t);return void 0!==e?"string"==typeof i?r.fill(e,i):r.fill(e):r.fill(0),r},a.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return n(t)},a.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return r.SlowBuffer(t)}},function(t,e,i){(function(e){var r;t.exports=(r=r||function(t,r){var n;if("undefined"!=typeof window&&window.crypto&&(n=window.crypto),"undefined"!=typeof self&&self.crypto&&(n=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(n=globalThis.crypto),!n&&"undefined"!=typeof window&&window.msCrypto&&(n=window.msCrypto),!n&&void 0!==e&&e.crypto&&(n=e.crypto),!n)try{n=i(258)}catch(t){}var o=function(){if(n){if("function"==typeof n.getRandomValues)try{return n.getRandomValues(new Uint32Array(1))[0]}catch(t){}if("function"==typeof n.randomBytes)try{return n.randomBytes(4).readInt32LE()}catch(t){}}throw new Error("Native crypto module could not be used to get secure random number.")},a=Object.create||function(){function t(){}return function(e){var i;return t.prototype=e,i=new t,t.prototype=null,i}}(),s={},h=s.lib={},u=h.Base={extend:function(t){var e=a(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),e.init.prototype=e,e.$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},l=h.WordArray=u.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=e!=r?e:4*t.length},toString:function(t){return(t||f).stringify(this)},concat:function(t){var e=this.words,i=t.words,r=this.sigBytes,n=t.sigBytes;if(this.clamp(),r%4)for(var o=0;o<n;o++){var a=i[o>>>2]>>>24-o%4*8&255;e[r+o>>>2]|=a<<24-(r+o)%4*8}else for(var s=0;s<n;s+=4)e[r+s>>>2]=i[s>>>2];return this.sigBytes+=n,this},clamp:function(){var e=this.words,i=this.sigBytes;e[i>>>2]&=4294967295<<32-i%4*8,e.length=t.ceil(i/4)},clone:function(){var t=u.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],i=0;i<t;i+=4)e.push(o());return new l.init(e,t)}}),d=s.enc={},f=d.Hex={stringify:function(t){for(var e=t.words,i=t.sigBytes,r=[],n=0;n<i;n++){var o=e[n>>>2]>>>24-n%4*8&255;r.push((o>>>4).toString(16)),r.push((15&o).toString(16))}return r.join("")},parse:function(t){for(var e=t.length,i=[],r=0;r<e;r+=2)i[r>>>3]|=parseInt(t.substr(r,2),16)<<24-r%8*4;return new l.init(i,e/2)}},c=d.Latin1={stringify:function(t){for(var e=t.words,i=t.sigBytes,r=[],n=0;n<i;n++){var o=e[n>>>2]>>>24-n%4*8&255;r.push(String.fromCharCode(o))}return r.join("")},parse:function(t){for(var e=t.length,i=[],r=0;r<e;r++)i[r>>>2]|=(255&t.charCodeAt(r))<<24-r%4*8;return new l.init(i,e)}},p=d.Utf8={stringify:function(t){try{return decodeURIComponent(escape(c.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return c.parse(unescape(encodeURIComponent(t)))}},m=h.BufferedBlockAlgorithm=u.extend({reset:function(){this._data=new l.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=p.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var i,r=this._data,n=r.words,o=r.sigBytes,a=this.blockSize,s=o/(4*a),h=(s=e?t.ceil(s):t.max((0|s)-this._minBufferSize,0))*a,u=t.min(4*h,o);if(h){for(var d=0;d<h;d+=a)this._doProcessBlock(n,d);i=n.splice(0,h),r.sigBytes-=u}return new l.init(i,u)},clone:function(){var t=u.clone.call(this);return t._data=this._data.clone(),t},_minBufferSize:0}),g=(h.Hasher=m.extend({cfg:u.extend(),init:function(t){this.cfg=this.cfg.extend(t),this.reset()},reset:function(){m.reset.call(this),this._doReset()},update:function(t){return this._append(t),this._process(),this},finalize:function(t){return t&&this._append(t),this._doFinalize()},blockSize:16,_createHelper:function(t){return function(e,i){return new t.init(i).finalize(e)}},_createHmacHelper:function(t){return function(e,i){return new g.HMAC.init(t,i).finalize(e)}}}),s.algo={});return s}(Math),r)}).call(this,i(10))},function(t,e,i){"use strict";var r,n="object"==typeof Reflect?Reflect:null,o=n&&"function"==typeof n.apply?n.apply:function(t,e,i){return Function.prototype.apply.call(t,e,i)};r=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var a=Number.isNaN||function(t){return t!=t};function s(){s.init.call(this)}t.exports=s,t.exports.once=function(t,e){return new Promise((function(i,r){function n(i){t.removeListener(e,o),r(i)}function o(){"function"==typeof t.removeListener&&t.removeListener("error",n),i([].slice.call(arguments))}v(t,e,o,{once:!0}),"error"!==e&&function(t,e,i){"function"==typeof t.on&&v(t,"error",e,i)}(t,n,{once:!0})}))},s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var h=10;function u(t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}function l(t){return void 0===t._maxListeners?s.defaultMaxListeners:t._maxListeners}function d(t,e,i,r){var n,o,a;if(u(i),void 0===(o=t._events)?(o=t._events=Object.create(null),t._eventsCount=0):(void 0!==o.newListener&&(t.emit("newListener",e,i.listener?i.listener:i),o=t._events),a=o[e]),void 0===a)a=o[e]=i,++t._eventsCount;else if("function"==typeof a?a=o[e]=r?[i,a]:[a,i]:r?a.unshift(i):a.push(i),(n=l(t))>0&&a.length>n&&!a.warned){a.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=t,s.type=e,s.count=a.length,console&&console.warn}return t}function f(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function c(t,e,i){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:i},n=f.bind(r);return n.listener=i,r.wrapFn=n,n}function p(t,e,i){var r=t._events;if(void 0===r)return[];var n=r[e];return void 0===n?[]:"function"==typeof n?i?[n.listener||n]:[n]:i?function(t){for(var e=new Array(t.length),i=0;i<e.length;++i)e[i]=t[i].listener||t[i];return e}(n):g(n,n.length)}function m(t){var e=this._events;if(void 0!==e){var i=e[t];if("function"==typeof i)return 1;if(void 0!==i)return i.length}return 0}function g(t,e){for(var i=new Array(e),r=0;r<e;++r)i[r]=t[r];return i}function v(t,e,i,r){if("function"==typeof t.on)r.once?t.once(e,i):t.on(e,i);else{if("function"!=typeof t.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t);t.addEventListener(e,(function n(o){r.once&&t.removeEventListener(e,n),i(o)}))}}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return h},set:function(t){if("number"!=typeof t||t<0||a(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");h=t}}),s.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(t){if("number"!=typeof t||t<0||a(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this},s.prototype.getMaxListeners=function(){return l(this)},s.prototype.emit=function(t){for(var e=[],i=1;i<arguments.length;i++)e.push(arguments[i]);var r="error"===t,n=this._events;if(void 0!==n)r=r&&void 0===n.error;else if(!r)return!1;if(r){var a;if(e.length>0&&(a=e[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var h=n[t];if(void 0===h)return!1;if("function"==typeof h)o(h,this,e);else{var u=h.length,l=g(h,u);for(i=0;i<u;++i)o(l[i],this,e)}return!0},s.prototype.addListener=function(t,e){return d(this,t,e,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(t,e){return d(this,t,e,!0)},s.prototype.once=function(t,e){return u(e),this.on(t,c(this,t,e)),this},s.prototype.prependOnceListener=function(t,e){return u(e),this.prependListener(t,c(this,t,e)),this},s.prototype.removeListener=function(t,e){var i,r,n,o,a;if(u(e),void 0===(r=this._events))return this;if(void 0===(i=r[t]))return this;if(i===e||i.listener===e)0==--this._eventsCount?this._events=Object.create(null):(delete r[t],r.removeListener&&this.emit("removeListener",t,i.listener||e));else if("function"!=typeof i){for(n=-1,o=i.length-1;o>=0;o--)if(i[o]===e||i[o].listener===e){a=i[o].listener,n=o;break}if(n<0)return this;0===n?i.shift():function(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}(i,n),1===i.length&&(r[t]=i[0]),void 0!==r.removeListener&&this.emit("removeListener",t,a||e)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(t){var e,i,r;if(void 0===(i=this._events))return this;if(void 0===i.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==i[t]&&(0==--this._eventsCount?this._events=Object.create(null):delete i[t]),this;if(0===arguments.length){var n,o=Object.keys(i);for(r=0;r<o.length;++r)"removeListener"!==(n=o[r])&&this.removeAllListeners(n);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(e=i[t]))this.removeListener(t,e);else if(void 0!==e)for(r=e.length-1;r>=0;r--)this.removeListener(t,e[r]);return this},s.prototype.listeners=function(t){return p(this,t,!0)},s.prototype.rawListeners=function(t){return p(this,t,!1)},s.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):m.call(t,e)},s.prototype.listenerCount=m,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(t,e,i){"use strict";e.a={OK:"OK",FORMAT_ERROR:"FormatError",FORMAT_UNSUPPORTED:"FormatUnsupported",CODEC_UNSUPPORTED:"CodecUnsupported"}},function(t,e){var i,r,n=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(t){if(i===setTimeout)return setTimeout(t,0);if((i===o||!i)&&setTimeout)return i=setTimeout,setTimeout(t,0);try{return i(t,0)}catch(e){try{return i.call(null,t,0)}catch(e){return i.call(this,t,0)}}}!function(){try{i="function"==typeof setTimeout?setTimeout:o}catch(t){i=o}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(t){r=a}}();var h,u=[],l=!1,d=-1;function f(){l&&h&&(l=!1,h.length?u=h.concat(u):d=-1,u.length&&c())}function c(){if(!l){var t=s(f);l=!0;for(var e=u.length;e;){for(h=u,u=[];++d<e;)h&&h[d].run();d=-1,e=u.length}h=null,l=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}(t)}}function p(t,e){this.fun=t,this.array=e}function m(){}n.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)e[i-1]=arguments[i];u.push(new p(t,e)),1!==u.length||l||s(c)},p.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=m,n.addListener=m,n.once=m,n.off=m,n.removeListener=m,n.removeAllListeners=m,n.emit=m,n.prependListener=m,n.prependOnceListener=m,n.listeners=function(t){return[]},n.binding=function(t){throw new Error("process.binding is not supported")},n.cwd=function(){return"/"},n.chdir=function(t){throw new Error("process.chdir is not supported")},n.umask=function(){return 0}},function(t,e,i){"use strict";(function(t){var r=i(140),n=i(141),o=i(78);function a(){return h.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(t,e){if(a()<e)throw new RangeError("Invalid typed array length");return h.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e)).__proto__=h.prototype:(null===t&&(t=new h(e)),t.length=e),t}function h(t,e,i){if(!(h.TYPED_ARRAY_SUPPORT||this instanceof h))return new h(t,e,i);if("number"==typeof t){if("string"==typeof e)throw new Error("If encoding is specified then the first argument must be a string");return d(this,t)}return u(this,t,e,i)}function u(t,e,i,r){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?function(t,e,i,r){if(e.byteLength,i<0||e.byteLength<i)throw new RangeError("'offset' is out of bounds");if(e.byteLength<i+(r||0))throw new RangeError("'length' is out of bounds");e=void 0===i&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,i):new Uint8Array(e,i,r);h.TYPED_ARRAY_SUPPORT?(t=e).__proto__=h.prototype:t=f(t,e);return t}(t,e,i,r):"string"==typeof e?function(t,e,i){"string"==typeof i&&""!==i||(i="utf8");if(!h.isEncoding(i))throw new TypeError('"encoding" must be a valid string encoding');var r=0|p(e,i),n=(t=s(t,r)).write(e,i);n!==r&&(t=t.slice(0,n));return t}(t,e,i):function(t,e){if(h.isBuffer(e)){var i=0|c(e.length);return 0===(t=s(t,i)).length||e.copy(t,0,0,i),t}if(e){if("undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return"number"!=typeof e.length||(r=e.length)!=r?s(t,0):f(t,e);if("Buffer"===e.type&&o(e.data))return f(t,e.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(t,e)}function l(t){if("number"!=typeof t)throw new TypeError('"size" argument must be a number');if(t<0)throw new RangeError('"size" argument must not be negative')}function d(t,e){if(l(e),t=s(t,e<0?0:0|c(e)),!h.TYPED_ARRAY_SUPPORT)for(var i=0;i<e;++i)t[i]=0;return t}function f(t,e){var i=e.length<0?0:0|c(e.length);t=s(t,i);for(var r=0;r<i;r+=1)t[r]=255&e[r];return t}function c(t){if(t>=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|t}function p(t,e){if(h.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var i=t.length;if(0===i)return 0;for(var r=!1;;)switch(e){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":case void 0:return j(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return V(t).length;default:if(r)return j(t).length;e=(""+e).toLowerCase(),r=!0}}function m(t,e,i){var r=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if((i>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return C(this,e,i);case"utf8":case"utf-8":return k(this,e,i);case"ascii":return R(this,e,i);case"latin1":case"binary":return I(this,e,i);case"base64":return S(this,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,e,i);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}function g(t,e,i){var r=t[e];t[e]=t[i],t[i]=r}function v(t,e,i,r,n){if(0===t.length)return-1;if("string"==typeof i?(r=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),i=+i,isNaN(i)&&(i=n?0:t.length-1),i<0&&(i=t.length+i),i>=t.length){if(n)return-1;i=t.length-1}else if(i<0){if(!n)return-1;i=0}if("string"==typeof e&&(e=h.from(e,r)),h.isBuffer(e))return 0===e.length?-1:y(t,e,i,r,n);if("number"==typeof e)return e&=255,h.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?n?Uint8Array.prototype.indexOf.call(t,e,i):Uint8Array.prototype.lastIndexOf.call(t,e,i):y(t,[e],i,r,n);throw new TypeError("val must be string, number or Buffer")}function y(t,e,i,r,n){var o,a=1,s=t.length,h=e.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(t.length<2||e.length<2)return-1;a=2,s/=2,h/=2,i/=2}function u(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(n){var l=-1;for(o=i;o<s;o++)if(u(t,o)===u(e,-1===l?0:o-l)){if(-1===l&&(l=o),o-l+1===h)return l*a}else-1!==l&&(o-=o-l),l=-1}else for(i+h>s&&(i=s-h),o=i;o>=0;o--){for(var d=!0,f=0;f<h;f++)if(u(t,o+f)!==u(e,f)){d=!1;break}if(d)return o}return-1}function b(t,e,i,r){i=Number(i)||0;var n=t.length-i;r?(r=Number(r))>n&&(r=n):r=n;var o=e.length;if(o%2!=0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var a=0;a<r;++a){var s=parseInt(e.substr(2*a,2),16);if(isNaN(s))return a;t[i+a]=s}return a}function _(t,e,i,r){return H(j(e,t.length-i),t,i,r)}function w(t,e,i,r){return H(function(t){for(var e=[],i=0;i<t.length;++i)e.push(255&t.charCodeAt(i));return e}(e),t,i,r)}function A(t,e,i,r){return w(t,e,i,r)}function M(t,e,i,r){return H(V(e),t,i,r)}function E(t,e,i,r){return H(function(t,e){for(var i,r,n,o=[],a=0;a<t.length&&!((e-=2)<0);++a)r=(i=t.charCodeAt(a))>>8,n=i%256,o.push(n),o.push(r);return o}(e,t.length-i),t,i,r)}function S(t,e,i){return 0===e&&i===t.length?r.fromByteArray(t):r.fromByteArray(t.slice(e,i))}function k(t,e,i){i=Math.min(t.length,i);for(var r=[],n=e;n<i;){var o,a,s,h,u=t[n],l=null,d=u>239?4:u>223?3:u>191?2:1;if(n+d<=i)switch(d){case 1:u<128&&(l=u);break;case 2:128==(192&(o=t[n+1]))&&(h=(31&u)<<6|63&o)>127&&(l=h);break;case 3:o=t[n+1],a=t[n+2],128==(192&o)&&128==(192&a)&&(h=(15&u)<<12|(63&o)<<6|63&a)>2047&&(h<55296||h>57343)&&(l=h);break;case 4:o=t[n+1],a=t[n+2],s=t[n+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&(h=(15&u)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&h<1114112&&(l=h)}null===l?(l=65533,d=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),n+=d}return function(t){var e=t.length;if(e<=T)return String.fromCharCode.apply(String,t);var i="",r=0;for(;r<e;)i+=String.fromCharCode.apply(String,t.slice(r,r+=T));return i}(r)}e.Buffer=h,e.SlowBuffer=function(t){+t!=t&&(t=0);return h.alloc(+t)},e.INSPECT_MAX_BYTES=50,h.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:function(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&"function"==typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(t){return!1}}(),e.kMaxLength=a(),h.poolSize=8192,h._augment=function(t){return t.__proto__=h.prototype,t},h.from=function(t,e,i){return u(null,t,e,i)},h.TYPED_ARRAY_SUPPORT&&(h.prototype.__proto__=Uint8Array.prototype,h.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&h[Symbol.species]===h&&Object.defineProperty(h,Symbol.species,{value:null,configurable:!0})),h.alloc=function(t,e,i){return function(t,e,i,r){return l(e),e<=0?s(t,e):void 0!==i?"string"==typeof r?s(t,e).fill(i,r):s(t,e).fill(i):s(t,e)}(null,t,e,i)},h.allocUnsafe=function(t){return d(null,t)},h.allocUnsafeSlow=function(t){return d(null,t)},h.isBuffer=function(t){return!(null==t||!t._isBuffer)},h.compare=function(t,e){if(!h.isBuffer(t)||!h.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var i=t.length,r=e.length,n=0,o=Math.min(i,r);n<o;++n)if(t[n]!==e[n]){i=t[n],r=e[n];break}return i<r?-1:r<i?1:0},h.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},h.concat=function(t,e){if(!o(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return h.alloc(0);var i;if(void 0===e)for(e=0,i=0;i<t.length;++i)e+=t[i].length;var r=h.allocUnsafe(e),n=0;for(i=0;i<t.length;++i){var a=t[i];if(!h.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(r,n),n+=a.length}return r},h.byteLength=p,h.prototype._isBuffer=!0,h.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;e<t;e+=2)g(this,e,e+1);return this},h.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var e=0;e<t;e+=4)g(this,e,e+3),g(this,e+1,e+2);return this},h.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var e=0;e<t;e+=8)g(this,e,e+7),g(this,e+1,e+6),g(this,e+2,e+5),g(this,e+3,e+4);return this},h.prototype.toString=function(){var t=0|this.length;return 0===t?"":0===arguments.length?k(this,0,t):m.apply(this,arguments)},h.prototype.equals=function(t){if(!h.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===h.compare(this,t)},h.prototype.inspect=function(){var t="",i=e.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,i).match(/.{2}/g).join(" "),this.length>i&&(t+=" ... ")),"<Buffer "+t+">"},h.prototype.compare=function(t,e,i,r,n){if(!h.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===i&&(i=t?t.length:0),void 0===r&&(r=0),void 0===n&&(n=this.length),e<0||i>t.length||r<0||n>this.length)throw new RangeError("out of range index");if(r>=n&&e>=i)return 0;if(r>=n)return-1;if(e>=i)return 1;if(this===t)return 0;for(var o=(n>>>=0)-(r>>>=0),a=(i>>>=0)-(e>>>=0),s=Math.min(o,a),u=this.slice(r,n),l=t.slice(e,i),d=0;d<s;++d)if(u[d]!==l[d]){o=u[d],a=l[d];break}return o<a?-1:a<o?1:0},h.prototype.includes=function(t,e,i){return-1!==this.indexOf(t,e,i)},h.prototype.indexOf=function(t,e,i){return v(this,t,e,i,!0)},h.prototype.lastIndexOf=function(t,e,i){return v(this,t,e,i,!1)},h.prototype.write=function(t,e,i,r){if(void 0===e)r="utf8",i=this.length,e=0;else if(void 0===i&&"string"==typeof e)r=e,i=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e|=0,isFinite(i)?(i|=0,void 0===r&&(r="utf8")):(r=i,i=void 0)}var n=this.length-e;if((void 0===i||i>n)&&(i=n),t.length>0&&(i<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return b(this,t,e,i);case"utf8":case"utf-8":return _(this,t,e,i);case"ascii":return w(this,t,e,i);case"latin1":case"binary":return A(this,t,e,i);case"base64":return M(this,t,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,e,i);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},h.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var T=4096;function R(t,e,i){var r="";i=Math.min(t.length,i);for(var n=e;n<i;++n)r+=String.fromCharCode(127&t[n]);return r}function I(t,e,i){var r="";i=Math.min(t.length,i);for(var n=e;n<i;++n)r+=String.fromCharCode(t[n]);return r}function C(t,e,i){var r=t.length;(!e||e<0)&&(e=0),(!i||i<0||i>r)&&(i=r);for(var n="",o=e;o<i;++o)n+=U(t[o]);return n}function P(t,e,i){for(var r=t.slice(e,i),n="",o=0;o<r.length;o+=2)n+=String.fromCharCode(r[o]+256*r[o+1]);return n}function x(t,e,i){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>i)throw new RangeError("Trying to access beyond buffer length")}function D(t,e,i,r,n,o){if(!h.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>n||e<o)throw new RangeError('"value" argument is out of bounds');if(i+r>t.length)throw new RangeError("Index out of range")}function O(t,e,i,r){e<0&&(e=65535+e+1);for(var n=0,o=Math.min(t.length-i,2);n<o;++n)t[i+n]=(e&255<<8*(r?n:1-n))>>>8*(r?n:1-n)}function B(t,e,i,r){e<0&&(e=4294967295+e+1);for(var n=0,o=Math.min(t.length-i,4);n<o;++n)t[i+n]=e>>>8*(r?n:3-n)&255}function L(t,e,i,r,n,o){if(i+r>t.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function W(t,e,i,r,o){return o||L(t,0,i,4),n.write(t,e,i,r,23,4),i+4}function N(t,e,i,r,o){return o||L(t,0,i,8),n.write(t,e,i,r,52,8),i+8}h.prototype.slice=function(t,e){var i,r=this.length;if((t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e<t&&(e=t),h.TYPED_ARRAY_SUPPORT)(i=this.subarray(t,e)).__proto__=h.prototype;else{var n=e-t;i=new h(n,void 0);for(var o=0;o<n;++o)i[o]=this[o+t]}return i},h.prototype.readUIntLE=function(t,e,i){t|=0,e|=0,i||x(t,e,this.length);for(var r=this[t],n=1,o=0;++o<e&&(n*=256);)r+=this[t+o]*n;return r},h.prototype.readUIntBE=function(t,e,i){t|=0,e|=0,i||x(t,e,this.length);for(var r=this[t+--e],n=1;e>0&&(n*=256);)r+=this[t+--e]*n;return r},h.prototype.readUInt8=function(t,e){return e||x(t,1,this.length),this[t]},h.prototype.readUInt16LE=function(t,e){return e||x(t,2,this.length),this[t]|this[t+1]<<8},h.prototype.readUInt16BE=function(t,e){return e||x(t,2,this.length),this[t]<<8|this[t+1]},h.prototype.readUInt32LE=function(t,e){return e||x(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},h.prototype.readUInt32BE=function(t,e){return e||x(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},h.prototype.readIntLE=function(t,e,i){t|=0,e|=0,i||x(t,e,this.length);for(var r=this[t],n=1,o=0;++o<e&&(n*=256);)r+=this[t+o]*n;return r>=(n*=128)&&(r-=Math.pow(2,8*e)),r},h.prototype.readIntBE=function(t,e,i){t|=0,e|=0,i||x(t,e,this.length);for(var r=e,n=1,o=this[t+--r];r>0&&(n*=256);)o+=this[t+--r]*n;return o>=(n*=128)&&(o-=Math.pow(2,8*e)),o},h.prototype.readInt8=function(t,e){return e||x(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},h.prototype.readInt16LE=function(t,e){e||x(t,2,this.length);var i=this[t]|this[t+1]<<8;return 32768&i?4294901760|i:i},h.prototype.readInt16BE=function(t,e){e||x(t,2,this.length);var i=this[t+1]|this[t]<<8;return 32768&i?4294901760|i:i},h.prototype.readInt32LE=function(t,e){return e||x(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},h.prototype.readInt32BE=function(t,e){return e||x(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},h.prototype.readFloatLE=function(t,e){return e||x(t,4,this.length),n.read(this,t,!0,23,4)},h.prototype.readFloatBE=function(t,e){return e||x(t,4,this.length),n.read(this,t,!1,23,4)},h.prototype.readDoubleLE=function(t,e){return e||x(t,8,this.length),n.read(this,t,!0,52,8)},h.prototype.readDoubleBE=function(t,e){return e||x(t,8,this.length),n.read(this,t,!1,52,8)},h.prototype.writeUIntLE=function(t,e,i,r){(t=+t,e|=0,i|=0,r)||D(this,t,e,i,Math.pow(2,8*i)-1,0);var n=1,o=0;for(this[e]=255&t;++o<i&&(n*=256);)this[e+o]=t/n&255;return e+i},h.prototype.writeUIntBE=function(t,e,i,r){(t=+t,e|=0,i|=0,r)||D(this,t,e,i,Math.pow(2,8*i)-1,0);var n=i-1,o=1;for(this[e+n]=255&t;--n>=0&&(o*=256);)this[e+n]=t/o&255;return e+i},h.prototype.writeUInt8=function(t,e,i){return t=+t,e|=0,i||D(this,t,e,1,255,0),h.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},h.prototype.writeUInt16LE=function(t,e,i){return t=+t,e|=0,i||D(this,t,e,2,65535,0),h.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):O(this,t,e,!0),e+2},h.prototype.writeUInt16BE=function(t,e,i){return t=+t,e|=0,i||D(this,t,e,2,65535,0),h.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):O(this,t,e,!1),e+2},h.prototype.writeUInt32LE=function(t,e,i){return t=+t,e|=0,i||D(this,t,e,4,4294967295,0),h.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):B(this,t,e,!0),e+4},h.prototype.writeUInt32BE=function(t,e,i){return t=+t,e|=0,i||D(this,t,e,4,4294967295,0),h.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):B(this,t,e,!1),e+4},h.prototype.writeIntLE=function(t,e,i,r){if(t=+t,e|=0,!r){var n=Math.pow(2,8*i-1);D(this,t,e,i,n-1,-n)}var o=0,a=1,s=0;for(this[e]=255&t;++o<i&&(a*=256);)t<0&&0===s&&0!==this[e+o-1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+i},h.prototype.writeIntBE=function(t,e,i,r){if(t=+t,e|=0,!r){var n=Math.pow(2,8*i-1);D(this,t,e,i,n-1,-n)}var o=i-1,a=1,s=0;for(this[e+o]=255&t;--o>=0&&(a*=256);)t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+i},h.prototype.writeInt8=function(t,e,i){return t=+t,e|=0,i||D(this,t,e,1,127,-128),h.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},h.prototype.writeInt16LE=function(t,e,i){return t=+t,e|=0,i||D(this,t,e,2,32767,-32768),h.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):O(this,t,e,!0),e+2},h.prototype.writeInt16BE=function(t,e,i){return t=+t,e|=0,i||D(this,t,e,2,32767,-32768),h.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):O(this,t,e,!1),e+2},h.prototype.writeInt32LE=function(t,e,i){return t=+t,e|=0,i||D(this,t,e,4,2147483647,-2147483648),h.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):B(this,t,e,!0),e+4},h.prototype.writeInt32BE=function(t,e,i){return t=+t,e|=0,i||D(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),h.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):B(this,t,e,!1),e+4},h.prototype.writeFloatLE=function(t,e,i){return W(this,t,e,!0,i)},h.prototype.writeFloatBE=function(t,e,i){return W(this,t,e,!1,i)},h.prototype.writeDoubleLE=function(t,e,i){return N(this,t,e,!0,i)},h.prototype.writeDoubleBE=function(t,e,i){return N(this,t,e,!1,i)},h.prototype.copy=function(t,e,i,r){if(i||(i=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r<i&&(r=i),r===i)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-e<r-i&&(r=t.length-e+i);var n,o=r-i;if(this===t&&i<e&&e<r)for(n=o-1;n>=0;--n)t[n+e]=this[n+i];else if(o<1e3||!h.TYPED_ARRAY_SUPPORT)for(n=0;n<o;++n)t[n+e]=this[n+i];else Uint8Array.prototype.set.call(t,this.subarray(i,i+o),e);return o},h.prototype.fill=function(t,e,i,r){if("string"==typeof t){if("string"==typeof e?(r=e,e=0,i=this.length):"string"==typeof i&&(r=i,i=this.length),1===t.length){var n=t.charCodeAt(0);n<256&&(t=n)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!h.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof t&&(t&=255);if(e<0||this.length<e||this.length<i)throw new RangeError("Out of range index");if(i<=e)return this;var o;if(e>>>=0,i=void 0===i?this.length:i>>>0,t||(t=0),"number"==typeof t)for(o=e;o<i;++o)this[o]=t;else{var a=h.isBuffer(t)?t:j(new h(t,r).toString()),s=a.length;for(o=0;o<i-e;++o)this[o+e]=a[o%s]}return this};var F=/[^+\/0-9A-Za-z-_]/g;function U(t){return t<16?"0"+t.toString(16):t.toString(16)}function j(t,e){var i;e=e||1/0;for(var r=t.length,n=null,o=[],a=0;a<r;++a){if((i=t.charCodeAt(a))>55295&&i<57344){if(!n){if(i>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(e-=3)>-1&&o.push(239,191,189);continue}n=i;continue}if(i<56320){(e-=3)>-1&&o.push(239,191,189),n=i;continue}i=65536+(n-55296<<10|i-56320)}else n&&(e-=3)>-1&&o.push(239,191,189);if(n=null,i<128){if((e-=1)<0)break;o.push(i)}else if(i<2048){if((e-=2)<0)break;o.push(i>>6|192,63&i|128)}else if(i<65536){if((e-=3)<0)break;o.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return o}function V(t){return r.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(F,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function H(t,e,i,r){for(var n=0;n<r&&!(n+i>=e.length||n>=t.length);++n)e[n+i]=t[n];return n}}).call(this,i(10))},function(t,e){var i;i=function(){return this}();try{i=i||new Function("return this")()}catch(t){"object"==typeof window&&(i=window)}t.exports=i},function(t,e,i){var r;t.exports=(r=i(5),i(21),void(r.lib.Cipher||function(t){var e=r,i=e.lib,n=i.Base,o=i.WordArray,a=i.BufferedBlockAlgorithm,s=e.enc,h=(s.Utf8,s.Base64),u=e.algo.EvpKDF,l=i.Cipher=a.extend({cfg:n.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,i){this.cfg=this.cfg.extend(i),this._xformMode=t,this._key=e,this.reset()},reset:function(){a.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return"string"==typeof t?b:v}return function(e){return{encrypt:function(i,r,n){return t(r).encrypt(e,i,r,n)},decrypt:function(i,r,n){return t(r).decrypt(e,i,r,n)}}}}()}),d=(i.StreamCipher=l.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),e.mode={}),f=i.BlockCipherMode=n.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),c=d.CBC=function(){var e=f.extend();function i(e,i,r){var n,o=this._iv;o?(n=o,this._iv=t):n=this._prevBlock;for(var a=0;a<r;a++)e[i+a]^=n[a]}return e.Encryptor=e.extend({processBlock:function(t,e){var r=this._cipher,n=r.blockSize;i.call(this,t,e,n),r.encryptBlock(t,e),this._prevBlock=t.slice(e,e+n)}}),e.Decryptor=e.extend({processBlock:function(t,e){var r=this._cipher,n=r.blockSize,o=t.slice(e,e+n);r.decryptBlock(t,e),i.call(this,t,e,n),this._prevBlock=o}}),e}(),p=(e.pad={}).Pkcs7={pad:function(t,e){for(var i=4*e,r=i-t.sigBytes%i,n=r<<24|r<<16|r<<8|r,a=[],s=0;s<r;s+=4)a.push(n);var h=o.create(a,r);t.concat(h)},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},m=(i.BlockCipher=l.extend({cfg:l.cfg.extend({mode:c,padding:p}),reset:function(){var t;l.reset.call(this);var e=this.cfg,i=e.iv,r=e.mode;this._xformMode==this._ENC_XFORM_MODE?t=r.createEncryptor:(t=r.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==t?this._mode.init(this,i&&i.words):(this._mode=t.call(r,this,i&&i.words),this._mode.__creator=t)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t,e=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(e.pad(this._data,this.blockSize),t=this._process(!0)):(t=this._process(!0),e.unpad(t)),t},blockSize:4}),i.CipherParams=n.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),g=(e.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,i=t.salt;return(i?o.create([1398893684,1701076831]).concat(i).concat(e):e).toString(h)},parse:function(t){var e,i=h.parse(t),r=i.words;return 1398893684==r[0]&&1701076831==r[1]&&(e=o.create(r.slice(2,4)),r.splice(0,4),i.sigBytes-=16),m.create({ciphertext:i,salt:e})}},v=i.SerializableCipher=n.extend({cfg:n.extend({format:g}),encrypt:function(t,e,i,r){r=this.cfg.extend(r);var n=t.createEncryptor(i,r),o=n.finalize(e),a=n.cfg;return m.create({ciphertext:o,key:i,iv:a.iv,algorithm:t,mode:a.mode,padding:a.padding,blockSize:t.blockSize,formatter:r.format})},decrypt:function(t,e,i,r){return r=this.cfg.extend(r),e=this._parse(e,r.format),t.createDecryptor(i,r).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),y=(e.kdf={}).OpenSSL={execute:function(t,e,i,r){r||(r=o.random(8));var n=u.create({keySize:e+i}).compute(t,r),a=o.create(n.words.slice(e),4*i);return n.sigBytes=4*e,m.create({key:n,iv:a,salt:r})}},b=i.PasswordBasedCipher=v.extend({cfg:v.cfg.extend({kdf:y}),encrypt:function(t,e,i,r){var n=(r=this.cfg.extend(r)).kdf.execute(i,t.keySize,t.ivSize);r.iv=n.iv;var o=v.encrypt.call(this,t,e,n.key,r);return o.mixIn(n),o},decrypt:function(t,e,i,r){r=this.cfg.extend(r),e=this._parse(e,r.format);var n=r.kdf.execute(i,t.keySize,t.ivSize,e.salt);return r.iv=n.iv,v.decrypt.call(this,t,e,n.key,r)}})}()))},function(t,e,i){"use strict";var r=function(){function t(){this.mimeType=null,this.duration=null,this.hasAudio=null,this.hasVideo=null,this.audioCodec=null,this.videoCodec=null,this.audioDataRate=null,this.videoDataRate=null,this.audioSampleRate=null,this.audioChannelCount=null,this.width=null,this.height=null,this.fps=null,this.profile=null,this.level=null,this.refFrames=null,this.chromaFormat=null,this.sarNum=null,this.sarDen=null,this.metadata=null,this.segments=null,this.segmentCount=null,this.hasKeyframesIndex=null,this.keyframesIndex=null}var e=t.prototype;return e.isComplete=function(){var t=!1===this.hasAudio||!0===this.hasAudio&&null!=this.audioCodec&&null!=this.audioSampleRate&&null!=this.audioChannelCount,e=!1===this.hasVideo||!0===this.hasVideo&&null!=this.videoCodec&&null!=this.width&&null!=this.height&&null!=this.fps&&null!=this.profile&&null!=this.level&&null!=this.refFrames&&null!=this.chromaFormat&&null!=this.sarNum&&null!=this.sarDen;return null!=this.mimeType&&null!=this.duration&&null!=this.metadata&&null!=this.hasKeyframesIndex&&t&&e},e.isSeekable=function(){return!0===this.hasKeyframesIndex},e.getNearestKeyframe=function(t){if(null==this.keyframesIndex)return null;var e=this.keyframesIndex,i=this._search(e.times,t);return{index:i,milliseconds:e.times[i],fileposition:e.filepositions[i]}},e._search=function(t,e){var i=0,r=t.length-1,n=0,o=0,a=r;for(e<t[0]&&(i=0,o=a+1);o<=a;){if((n=o+Math.floor((a-o)/2))===r||e>=t[n]&&e<t[n+1]){i=n;break}t[n]<e?o=n+1:a=n-1}return i},t}();e.a=r},function(t,e){function i(t,e){if(!t)throw new Error(e||"Assertion failed")}t.exports=i,i.equal=function(t,e,i){if(t!=e)throw new Error(i||"Assertion failed: "+t+" != "+e)}},function(t,e,i){"use strict";var r=e,n=i(16),o=i(13),a=i(116);r.assert=o,r.toArray=a.toArray,r.zero2=a.zero2,r.toHex=a.toHex,r.encode=a.encode,r.getNAF=function(t,e,i){var r=new Array(Math.max(t.bitLength(),i)+1);r.fill(0);for(var n=1<<e+1,o=t.clone(),a=0;a<r.length;a++){var s,h=o.andln(n-1);o.isOdd()?(s=h>(n>>1)-1?(n>>1)-h:h,o.isubn(s)):s=0,r[a]=s,o.iushrn(1)}return r},r.getJSF=function(t,e){var i=[[],[]];t=t.clone(),e=e.clone();for(var r,n=0,o=0;t.cmpn(-n)>0||e.cmpn(-o)>0;){var a,s,h=t.andln(3)+n&3,u=e.andln(3)+o&3;3===h&&(h=-1),3===u&&(u=-1),a=0==(1&h)?0:3!==(r=t.andln(7)+n&7)&&5!==r||2!==u?h:-h,i[0].push(a),s=0==(1&u)?0:3!==(r=e.andln(7)+o&7)&&5!==r||2!==h?u:-u,i[1].push(s),2*n===a+1&&(n=1-n),2*o===s+1&&(o=1-o),t.iushrn(1),e.iushrn(1)}return i},r.cachedProperty=function(t,e,i){var r="_"+e;t.prototype[e]=function(){return void 0!==this[r]?this[r]:this[r]=i.call(this)}},r.parseBytes=function(t){return"string"==typeof t?r.toArray(t,"hex"):t},r.intFromLE=function(t){return new n(t,"hex","le")}},function(t,e,i){"use strict";var r=i(13),n=i(3);function o(t,e){return 55296==(64512&t.charCodeAt(e))&&(!(e<0||e+1>=t.length)&&56320==(64512&t.charCodeAt(e+1)))}function a(t){return(t>>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24)>>>0}function s(t){return 1===t.length?"0"+t:t}function h(t){return 7===t.length?"0"+t:6===t.length?"00"+t:5===t.length?"000"+t:4===t.length?"0000"+t:3===t.length?"00000"+t:2===t.length?"000000"+t:1===t.length?"0000000"+t:t}e.inherits=n,e.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var i=[];if("string"==typeof t)if(e){if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),n=0;n<t.length;n+=2)i.push(parseInt(t[n]+t[n+1],16))}else for(var r=0,n=0;n<t.length;n++){var a=t.charCodeAt(n);a<128?i[r++]=a:a<2048?(i[r++]=a>>6|192,i[r++]=63&a|128):o(t,n)?(a=65536+((1023&a)<<10)+(1023&t.charCodeAt(++n)),i[r++]=a>>18|240,i[r++]=a>>12&63|128,i[r++]=a>>6&63|128,i[r++]=63&a|128):(i[r++]=a>>12|224,i[r++]=a>>6&63|128,i[r++]=63&a|128)}else for(n=0;n<t.length;n++)i[n]=0|t[n];return i},e.toHex=function(t){for(var e="",i=0;i<t.length;i++)e+=s(t[i].toString(16));return e},e.htonl=a,e.toHex32=function(t,e){for(var i="",r=0;r<t.length;r++){var n=t[r];"little"===e&&(n=a(n)),i+=h(n.toString(16))}return i},e.zero2=s,e.zero8=h,e.join32=function(t,e,i,n){var o=i-e;r(o%4==0);for(var a=new Array(o/4),s=0,h=e;s<a.length;s++,h+=4){var u;u="big"===n?t[h]<<24|t[h+1]<<16|t[h+2]<<8|t[h+3]:t[h+3]<<24|t[h+2]<<16|t[h+1]<<8|t[h],a[s]=u>>>0}return a},e.split32=function(t,e){for(var i=new Array(4*t.length),r=0,n=0;r<t.length;r++,n+=4){var o=t[r];"big"===e?(i[n]=o>>>24,i[n+1]=o>>>16&255,i[n+2]=o>>>8&255,i[n+3]=255&o):(i[n+3]=o>>>24,i[n+2]=o>>>16&255,i[n+1]=o>>>8&255,i[n]=255&o)}return i},e.rotr32=function(t,e){return t>>>e|t<<32-e},e.rotl32=function(t,e){return t<<e|t>>>32-e},e.sum32=function(t,e){return t+e>>>0},e.sum32_3=function(t,e,i){return t+e+i>>>0},e.sum32_4=function(t,e,i,r){return t+e+i+r>>>0},e.sum32_5=function(t,e,i,r,n){return t+e+i+r+n>>>0},e.sum64=function(t,e,i,r){var n=t[e],o=r+t[e+1]>>>0,a=(o<r?1:0)+i+n;t[e]=a>>>0,t[e+1]=o},e.sum64_hi=function(t,e,i,r){return(e+r>>>0<e?1:0)+t+i>>>0},e.sum64_lo=function(t,e,i,r){return e+r>>>0},e.sum64_4_hi=function(t,e,i,r,n,o,a,s){var h=0,u=e;return h+=(u=u+r>>>0)<e?1:0,h+=(u=u+o>>>0)<o?1:0,t+i+n+a+(h+=(u=u+s>>>0)<s?1:0)>>>0},e.sum64_4_lo=function(t,e,i,r,n,o,a,s){return e+r+o+s>>>0},e.sum64_5_hi=function(t,e,i,r,n,o,a,s,h,u){var l=0,d=e;return l+=(d=d+r>>>0)<e?1:0,l+=(d=d+o>>>0)<o?1:0,l+=(d=d+s>>>0)<s?1:0,t+i+n+a+h+(l+=(d=d+u>>>0)<u?1:0)>>>0},e.sum64_5_lo=function(t,e,i,r,n,o,a,s,h,u){return e+r+o+s+u>>>0},e.rotr64_hi=function(t,e,i){return(e<<32-i|t>>>i)>>>0},e.rotr64_lo=function(t,e,i){return(t<<32-i|e>>>i)>>>0},e.shr64_hi=function(t,e,i){return t>>>i},e.shr64_lo=function(t,e,i){return(t<<32-i|e>>>i)>>>0}},function(t,e,i){(function(t){!function(t,e){"use strict";function r(t,e){if(!t)throw new Error(e||"Assertion failed")}function n(t,e){t.super_=e;var i=function(){};i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t}function o(t,e,i){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(i=e,e=10),this._init(t||0,e||10,i||"be"))}var a;"object"==typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:i(209).Buffer}catch(t){}function s(t,e){var i=t.charCodeAt(e);return i>=65&&i<=70?i-55:i>=97&&i<=102?i-87:i-48&15}function h(t,e,i){var r=s(t,i);return i-1>=e&&(r|=s(t,i-1)<<4),r}function u(t,e,i,r){for(var n=0,o=Math.min(t.length,i),a=e;a<o;a++){var s=t.charCodeAt(a)-48;n*=r,n+=s>=49?s-49+10:s>=17?s-17+10:s}return n}o.isBN=function(t){return t instanceof o||null!==t&&"object"==typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,i){if("number"==typeof t)return this._initNumber(t,e,i);if("object"==typeof t)return this._initArray(t,e,i);"hex"===e&&(e=16),r(e===(0|e)&&e>=2&&e<=36);var n=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(n++,this.negative=1),n<t.length&&(16===e?this._parseHex(t,n,i):(this._parseBase(t,e,n),"le"===i&&this._initArray(this.toArray(),e,i)))},o.prototype._initNumber=function(t,e,i){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(r(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===i&&this._initArray(this.toArray(),e,i)},o.prototype._initArray=function(t,e,i){if(r("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var o,a,s=0;if("be"===i)for(n=t.length-1,o=0;n>=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===i)for(n=0,o=0;n<t.length;n+=3)a=t[n]|t[n+1]<<8|t[n+2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e,i){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var n,o=0,a=0;if("be"===i)for(r=t.length-1;r>=e;r-=2)n=h(t,e,r)<<o,this.words[a]|=67108863&n,o>=18?(o-=18,a+=1,this.words[a]|=n>>>26):o+=8;else for(r=(t.length-e)%2==0?e+1:e;r<t.length;r+=2)n=h(t,e,r)<<o,this.words[a]|=67108863&n,o>=18?(o-=18,a+=1,this.words[a]|=n>>>26):o+=8;this.strip()},o.prototype._parseBase=function(t,e,i){this.words=[0],this.length=1;for(var r=0,n=1;n<=67108863;n*=e)r++;r--,n=n/e|0;for(var o=t.length-i,a=o%r,s=Math.min(o,o-a)+i,h=0,l=i;l<s;l+=r)h=u(t,l,l+r,e),this.imuln(n),this.words[0]+h<67108864?this.words[0]+=h:this._iaddn(h);if(0!==a){var d=1;for(h=u(t,l,t.length,e),l=0;l<a;l++)d*=e;this.imuln(d),this.words[0]+h<67108864?this.words[0]+=h:this._iaddn(h)}this.strip()},o.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},o.prototype.clone=function(){var t=new o(null);return this.copy(t),t},o.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},o.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var l=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],d=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t,e,i){i.negative=e.negative^t.negative;var r=t.length+e.length|0;i.length=r,r=r-1|0;var n=0|t.words[0],o=0|e.words[0],a=n*o,s=67108863&a,h=a/67108864|0;i.words[0]=s;for(var u=1;u<r;u++){for(var l=h>>>26,d=67108863&h,f=Math.min(u,e.length-1),c=Math.max(0,u-t.length+1);c<=f;c++){var p=u-c|0;l+=(a=(n=0|t.words[p])*(o=0|e.words[c])+d)/67108864|0,d=67108863&a}i.words[u]=0|d,h=0|l}return 0!==h?i.words[u]=0|h:i.length--,i.strip()}o.prototype.toString=function(t,e){var i;if(e=0|e||1,16===(t=t||10)||"hex"===t){i="";for(var n=0,o=0,a=0;a<this.length;a++){var s=this.words[a],h=(16777215&(s<<n|o)).toString(16);i=0!==(o=s>>>24-n&16777215)||a!==this.length-1?l[6-h.length]+h+i:h+i,(n+=2)>=26&&(n-=26,a--)}for(0!==o&&(i=o.toString(16)+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}if(t===(0|t)&&t>=2&&t<=36){var u=d[t],c=f[t];i="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(c).toString(t);i=(p=p.idivn(c)).isZero()?m+i:l[u-m.length]+m+i}for(this.isZero()&&(i="0"+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return r(void 0!==a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,i){var n=this.byteLength(),o=i||Math.max(1,n);r(n<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0"),this.strip();var a,s,h="le"===e,u=new t(o),l=this.clone();if(h){for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[s]=a;for(;s<o;s++)u[s]=0}else{for(s=0;s<o-n;s++)u[s]=0;for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[o-s-1]=a}return u},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,i=0;return e>=4096&&(i+=13,e>>>=13),e>=64&&(i+=7,e>>>=7),e>=8&&(i+=4,e>>>=4),e>=2&&(i+=2,e>>>=2),i+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,i=0;return 0==(8191&e)&&(i+=13,e>>>=13),0==(127&e)&&(i+=7,e>>>=7),0==(15&e)&&(i+=4,e>>>=4),0==(3&e)&&(i+=2,e>>>=2),0==(1&e)&&i++,i},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var i=this._zeroBits(this.words[e]);if(t+=i,26!==i)break}return t},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},o.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},o.prototype.ior=function(t){return r(0==(this.negative|t.negative)),this.iuor(t)},o.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var i=0;i<e.length;i++)this.words[i]=this.words[i]&t.words[i];return this.length=e.length,this.strip()},o.prototype.iand=function(t){return r(0==(this.negative|t.negative)),this.iuand(t)},o.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,i;this.length>t.length?(e=this,i=t):(e=t,i=this);for(var r=0;r<i.length;r++)this.words[r]=e.words[r]^i.words[r];if(this!==e)for(;r<e.length;r++)this.words[r]=e.words[r];return this.length=e.length,this.strip()},o.prototype.ixor=function(t){return r(0==(this.negative|t.negative)),this.iuxor(t)},o.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){r("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),i=t%26;this._expand(e),i>0&&e--;for(var n=0;n<e;n++)this.words[n]=67108863&~this.words[n];return i>0&&(this.words[n]=~this.words[n]&67108863>>26-i),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){r("number"==typeof t&&t>=0);var i=t/26|0,n=t%26;return this._expand(i+1),this.words[i]=e?this.words[i]|1<<n:this.words[i]&~(1<<n),this.strip()},o.prototype.iadd=function(t){var e,i,r;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(i=this,r=t):(i=t,r=this);for(var n=0,o=0;o<r.length;o++)e=(0|i.words[o])+(0|r.words[o])+n,this.words[o]=67108863&e,n=e>>>26;for(;0!==n&&o<i.length;o++)e=(0|i.words[o])+n,this.words[o]=67108863&e,n=e>>>26;if(this.length=i.length,0!==n)this.words[this.length]=n,this.length++;else if(i!==this)for(;o<i.length;o++)this.words[o]=i.words[o];return this},o.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var i,r,n=this.cmp(t);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(i=this,r=t):(i=t,r=this);for(var o=0,a=0;a<r.length;a++)o=(e=(0|i.words[a])-(0|r.words[a])+o)>>26,this.words[a]=67108863&e;for(;0!==o&&a<i.length;a++)o=(e=(0|i.words[a])+o)>>26,this.words[a]=67108863&e;if(0===o&&a<i.length&&i!==this)for(;a<i.length;a++)this.words[a]=i.words[a];return this.length=Math.max(this.length,a),i!==this&&(this.negative=1),this.strip()},o.prototype.sub=function(t){return this.clone().isub(t)};var p=function(t,e,i){var r,n,o,a=t.words,s=e.words,h=i.words,u=0,l=0|a[0],d=8191&l,f=l>>>13,c=0|a[1],p=8191&c,m=c>>>13,g=0|a[2],v=8191&g,y=g>>>13,b=0|a[3],_=8191&b,w=b>>>13,A=0|a[4],M=8191&A,E=A>>>13,S=0|a[5],k=8191&S,T=S>>>13,R=0|a[6],I=8191&R,C=R>>>13,P=0|a[7],x=8191&P,D=P>>>13,O=0|a[8],B=8191&O,L=O>>>13,W=0|a[9],N=8191&W,F=W>>>13,U=0|s[0],j=8191&U,V=U>>>13,H=0|s[1],z=8191&H,G=H>>>13,q=0|s[2],X=8191&q,Z=q>>>13,K=0|s[3],Q=8191&K,Y=K>>>13,J=0|s[4],$=8191&J,tt=J>>>13,et=0|s[5],it=8191&et,rt=et>>>13,nt=0|s[6],ot=8191&nt,at=nt>>>13,st=0|s[7],ht=8191&st,ut=st>>>13,lt=0|s[8],dt=8191<,ft=lt>>>13,ct=0|s[9],pt=8191&ct,mt=ct>>>13;i.negative=t.negative^e.negative,i.length=19;var gt=(u+(r=Math.imul(d,j))|0)+((8191&(n=(n=Math.imul(d,V))+Math.imul(f,j)|0))<<13)|0;u=((o=Math.imul(f,V))+(n>>>13)|0)+(gt>>>26)|0,gt&=67108863,r=Math.imul(p,j),n=(n=Math.imul(p,V))+Math.imul(m,j)|0,o=Math.imul(m,V);var vt=(u+(r=r+Math.imul(d,z)|0)|0)+((8191&(n=(n=n+Math.imul(d,G)|0)+Math.imul(f,z)|0))<<13)|0;u=((o=o+Math.imul(f,G)|0)+(n>>>13)|0)+(vt>>>26)|0,vt&=67108863,r=Math.imul(v,j),n=(n=Math.imul(v,V))+Math.imul(y,j)|0,o=Math.imul(y,V),r=r+Math.imul(p,z)|0,n=(n=n+Math.imul(p,G)|0)+Math.imul(m,z)|0,o=o+Math.imul(m,G)|0;var yt=(u+(r=r+Math.imul(d,X)|0)|0)+((8191&(n=(n=n+Math.imul(d,Z)|0)+Math.imul(f,X)|0))<<13)|0;u=((o=o+Math.imul(f,Z)|0)+(n>>>13)|0)+(yt>>>26)|0,yt&=67108863,r=Math.imul(_,j),n=(n=Math.imul(_,V))+Math.imul(w,j)|0,o=Math.imul(w,V),r=r+Math.imul(v,z)|0,n=(n=n+Math.imul(v,G)|0)+Math.imul(y,z)|0,o=o+Math.imul(y,G)|0,r=r+Math.imul(p,X)|0,n=(n=n+Math.imul(p,Z)|0)+Math.imul(m,X)|0,o=o+Math.imul(m,Z)|0;var bt=(u+(r=r+Math.imul(d,Q)|0)|0)+((8191&(n=(n=n+Math.imul(d,Y)|0)+Math.imul(f,Q)|0))<<13)|0;u=((o=o+Math.imul(f,Y)|0)+(n>>>13)|0)+(bt>>>26)|0,bt&=67108863,r=Math.imul(M,j),n=(n=Math.imul(M,V))+Math.imul(E,j)|0,o=Math.imul(E,V),r=r+Math.imul(_,z)|0,n=(n=n+Math.imul(_,G)|0)+Math.imul(w,z)|0,o=o+Math.imul(w,G)|0,r=r+Math.imul(v,X)|0,n=(n=n+Math.imul(v,Z)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,Z)|0,r=r+Math.imul(p,Q)|0,n=(n=n+Math.imul(p,Y)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,Y)|0;var _t=(u+(r=r+Math.imul(d,$)|0)|0)+((8191&(n=(n=n+Math.imul(d,tt)|0)+Math.imul(f,$)|0))<<13)|0;u=((o=o+Math.imul(f,tt)|0)+(n>>>13)|0)+(_t>>>26)|0,_t&=67108863,r=Math.imul(k,j),n=(n=Math.imul(k,V))+Math.imul(T,j)|0,o=Math.imul(T,V),r=r+Math.imul(M,z)|0,n=(n=n+Math.imul(M,G)|0)+Math.imul(E,z)|0,o=o+Math.imul(E,G)|0,r=r+Math.imul(_,X)|0,n=(n=n+Math.imul(_,Z)|0)+Math.imul(w,X)|0,o=o+Math.imul(w,Z)|0,r=r+Math.imul(v,Q)|0,n=(n=n+Math.imul(v,Y)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,Y)|0,r=r+Math.imul(p,$)|0,n=(n=n+Math.imul(p,tt)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,tt)|0;var wt=(u+(r=r+Math.imul(d,it)|0)|0)+((8191&(n=(n=n+Math.imul(d,rt)|0)+Math.imul(f,it)|0))<<13)|0;u=((o=o+Math.imul(f,rt)|0)+(n>>>13)|0)+(wt>>>26)|0,wt&=67108863,r=Math.imul(I,j),n=(n=Math.imul(I,V))+Math.imul(C,j)|0,o=Math.imul(C,V),r=r+Math.imul(k,z)|0,n=(n=n+Math.imul(k,G)|0)+Math.imul(T,z)|0,o=o+Math.imul(T,G)|0,r=r+Math.imul(M,X)|0,n=(n=n+Math.imul(M,Z)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,Z)|0,r=r+Math.imul(_,Q)|0,n=(n=n+Math.imul(_,Y)|0)+Math.imul(w,Q)|0,o=o+Math.imul(w,Y)|0,r=r+Math.imul(v,$)|0,n=(n=n+Math.imul(v,tt)|0)+Math.imul(y,$)|0,o=o+Math.imul(y,tt)|0,r=r+Math.imul(p,it)|0,n=(n=n+Math.imul(p,rt)|0)+Math.imul(m,it)|0,o=o+Math.imul(m,rt)|0;var At=(u+(r=r+Math.imul(d,ot)|0)|0)+((8191&(n=(n=n+Math.imul(d,at)|0)+Math.imul(f,ot)|0))<<13)|0;u=((o=o+Math.imul(f,at)|0)+(n>>>13)|0)+(At>>>26)|0,At&=67108863,r=Math.imul(x,j),n=(n=Math.imul(x,V))+Math.imul(D,j)|0,o=Math.imul(D,V),r=r+Math.imul(I,z)|0,n=(n=n+Math.imul(I,G)|0)+Math.imul(C,z)|0,o=o+Math.imul(C,G)|0,r=r+Math.imul(k,X)|0,n=(n=n+Math.imul(k,Z)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,Z)|0,r=r+Math.imul(M,Q)|0,n=(n=n+Math.imul(M,Y)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,Y)|0,r=r+Math.imul(_,$)|0,n=(n=n+Math.imul(_,tt)|0)+Math.imul(w,$)|0,o=o+Math.imul(w,tt)|0,r=r+Math.imul(v,it)|0,n=(n=n+Math.imul(v,rt)|0)+Math.imul(y,it)|0,o=o+Math.imul(y,rt)|0,r=r+Math.imul(p,ot)|0,n=(n=n+Math.imul(p,at)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0;var Mt=(u+(r=r+Math.imul(d,ht)|0)|0)+((8191&(n=(n=n+Math.imul(d,ut)|0)+Math.imul(f,ht)|0))<<13)|0;u=((o=o+Math.imul(f,ut)|0)+(n>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,r=Math.imul(B,j),n=(n=Math.imul(B,V))+Math.imul(L,j)|0,o=Math.imul(L,V),r=r+Math.imul(x,z)|0,n=(n=n+Math.imul(x,G)|0)+Math.imul(D,z)|0,o=o+Math.imul(D,G)|0,r=r+Math.imul(I,X)|0,n=(n=n+Math.imul(I,Z)|0)+Math.imul(C,X)|0,o=o+Math.imul(C,Z)|0,r=r+Math.imul(k,Q)|0,n=(n=n+Math.imul(k,Y)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,Y)|0,r=r+Math.imul(M,$)|0,n=(n=n+Math.imul(M,tt)|0)+Math.imul(E,$)|0,o=o+Math.imul(E,tt)|0,r=r+Math.imul(_,it)|0,n=(n=n+Math.imul(_,rt)|0)+Math.imul(w,it)|0,o=o+Math.imul(w,rt)|0,r=r+Math.imul(v,ot)|0,n=(n=n+Math.imul(v,at)|0)+Math.imul(y,ot)|0,o=o+Math.imul(y,at)|0,r=r+Math.imul(p,ht)|0,n=(n=n+Math.imul(p,ut)|0)+Math.imul(m,ht)|0,o=o+Math.imul(m,ut)|0;var Et=(u+(r=r+Math.imul(d,dt)|0)|0)+((8191&(n=(n=n+Math.imul(d,ft)|0)+Math.imul(f,dt)|0))<<13)|0;u=((o=o+Math.imul(f,ft)|0)+(n>>>13)|0)+(Et>>>26)|0,Et&=67108863,r=Math.imul(N,j),n=(n=Math.imul(N,V))+Math.imul(F,j)|0,o=Math.imul(F,V),r=r+Math.imul(B,z)|0,n=(n=n+Math.imul(B,G)|0)+Math.imul(L,z)|0,o=o+Math.imul(L,G)|0,r=r+Math.imul(x,X)|0,n=(n=n+Math.imul(x,Z)|0)+Math.imul(D,X)|0,o=o+Math.imul(D,Z)|0,r=r+Math.imul(I,Q)|0,n=(n=n+Math.imul(I,Y)|0)+Math.imul(C,Q)|0,o=o+Math.imul(C,Y)|0,r=r+Math.imul(k,$)|0,n=(n=n+Math.imul(k,tt)|0)+Math.imul(T,$)|0,o=o+Math.imul(T,tt)|0,r=r+Math.imul(M,it)|0,n=(n=n+Math.imul(M,rt)|0)+Math.imul(E,it)|0,o=o+Math.imul(E,rt)|0,r=r+Math.imul(_,ot)|0,n=(n=n+Math.imul(_,at)|0)+Math.imul(w,ot)|0,o=o+Math.imul(w,at)|0,r=r+Math.imul(v,ht)|0,n=(n=n+Math.imul(v,ut)|0)+Math.imul(y,ht)|0,o=o+Math.imul(y,ut)|0,r=r+Math.imul(p,dt)|0,n=(n=n+Math.imul(p,ft)|0)+Math.imul(m,dt)|0,o=o+Math.imul(m,ft)|0;var St=(u+(r=r+Math.imul(d,pt)|0)|0)+((8191&(n=(n=n+Math.imul(d,mt)|0)+Math.imul(f,pt)|0))<<13)|0;u=((o=o+Math.imul(f,mt)|0)+(n>>>13)|0)+(St>>>26)|0,St&=67108863,r=Math.imul(N,z),n=(n=Math.imul(N,G))+Math.imul(F,z)|0,o=Math.imul(F,G),r=r+Math.imul(B,X)|0,n=(n=n+Math.imul(B,Z)|0)+Math.imul(L,X)|0,o=o+Math.imul(L,Z)|0,r=r+Math.imul(x,Q)|0,n=(n=n+Math.imul(x,Y)|0)+Math.imul(D,Q)|0,o=o+Math.imul(D,Y)|0,r=r+Math.imul(I,$)|0,n=(n=n+Math.imul(I,tt)|0)+Math.imul(C,$)|0,o=o+Math.imul(C,tt)|0,r=r+Math.imul(k,it)|0,n=(n=n+Math.imul(k,rt)|0)+Math.imul(T,it)|0,o=o+Math.imul(T,rt)|0,r=r+Math.imul(M,ot)|0,n=(n=n+Math.imul(M,at)|0)+Math.imul(E,ot)|0,o=o+Math.imul(E,at)|0,r=r+Math.imul(_,ht)|0,n=(n=n+Math.imul(_,ut)|0)+Math.imul(w,ht)|0,o=o+Math.imul(w,ut)|0,r=r+Math.imul(v,dt)|0,n=(n=n+Math.imul(v,ft)|0)+Math.imul(y,dt)|0,o=o+Math.imul(y,ft)|0;var kt=(u+(r=r+Math.imul(p,pt)|0)|0)+((8191&(n=(n=n+Math.imul(p,mt)|0)+Math.imul(m,pt)|0))<<13)|0;u=((o=o+Math.imul(m,mt)|0)+(n>>>13)|0)+(kt>>>26)|0,kt&=67108863,r=Math.imul(N,X),n=(n=Math.imul(N,Z))+Math.imul(F,X)|0,o=Math.imul(F,Z),r=r+Math.imul(B,Q)|0,n=(n=n+Math.imul(B,Y)|0)+Math.imul(L,Q)|0,o=o+Math.imul(L,Y)|0,r=r+Math.imul(x,$)|0,n=(n=n+Math.imul(x,tt)|0)+Math.imul(D,$)|0,o=o+Math.imul(D,tt)|0,r=r+Math.imul(I,it)|0,n=(n=n+Math.imul(I,rt)|0)+Math.imul(C,it)|0,o=o+Math.imul(C,rt)|0,r=r+Math.imul(k,ot)|0,n=(n=n+Math.imul(k,at)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,r=r+Math.imul(M,ht)|0,n=(n=n+Math.imul(M,ut)|0)+Math.imul(E,ht)|0,o=o+Math.imul(E,ut)|0,r=r+Math.imul(_,dt)|0,n=(n=n+Math.imul(_,ft)|0)+Math.imul(w,dt)|0,o=o+Math.imul(w,ft)|0;var Tt=(u+(r=r+Math.imul(v,pt)|0)|0)+((8191&(n=(n=n+Math.imul(v,mt)|0)+Math.imul(y,pt)|0))<<13)|0;u=((o=o+Math.imul(y,mt)|0)+(n>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,r=Math.imul(N,Q),n=(n=Math.imul(N,Y))+Math.imul(F,Q)|0,o=Math.imul(F,Y),r=r+Math.imul(B,$)|0,n=(n=n+Math.imul(B,tt)|0)+Math.imul(L,$)|0,o=o+Math.imul(L,tt)|0,r=r+Math.imul(x,it)|0,n=(n=n+Math.imul(x,rt)|0)+Math.imul(D,it)|0,o=o+Math.imul(D,rt)|0,r=r+Math.imul(I,ot)|0,n=(n=n+Math.imul(I,at)|0)+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,r=r+Math.imul(k,ht)|0,n=(n=n+Math.imul(k,ut)|0)+Math.imul(T,ht)|0,o=o+Math.imul(T,ut)|0,r=r+Math.imul(M,dt)|0,n=(n=n+Math.imul(M,ft)|0)+Math.imul(E,dt)|0,o=o+Math.imul(E,ft)|0;var Rt=(u+(r=r+Math.imul(_,pt)|0)|0)+((8191&(n=(n=n+Math.imul(_,mt)|0)+Math.imul(w,pt)|0))<<13)|0;u=((o=o+Math.imul(w,mt)|0)+(n>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,r=Math.imul(N,$),n=(n=Math.imul(N,tt))+Math.imul(F,$)|0,o=Math.imul(F,tt),r=r+Math.imul(B,it)|0,n=(n=n+Math.imul(B,rt)|0)+Math.imul(L,it)|0,o=o+Math.imul(L,rt)|0,r=r+Math.imul(x,ot)|0,n=(n=n+Math.imul(x,at)|0)+Math.imul(D,ot)|0,o=o+Math.imul(D,at)|0,r=r+Math.imul(I,ht)|0,n=(n=n+Math.imul(I,ut)|0)+Math.imul(C,ht)|0,o=o+Math.imul(C,ut)|0,r=r+Math.imul(k,dt)|0,n=(n=n+Math.imul(k,ft)|0)+Math.imul(T,dt)|0,o=o+Math.imul(T,ft)|0;var It=(u+(r=r+Math.imul(M,pt)|0)|0)+((8191&(n=(n=n+Math.imul(M,mt)|0)+Math.imul(E,pt)|0))<<13)|0;u=((o=o+Math.imul(E,mt)|0)+(n>>>13)|0)+(It>>>26)|0,It&=67108863,r=Math.imul(N,it),n=(n=Math.imul(N,rt))+Math.imul(F,it)|0,o=Math.imul(F,rt),r=r+Math.imul(B,ot)|0,n=(n=n+Math.imul(B,at)|0)+Math.imul(L,ot)|0,o=o+Math.imul(L,at)|0,r=r+Math.imul(x,ht)|0,n=(n=n+Math.imul(x,ut)|0)+Math.imul(D,ht)|0,o=o+Math.imul(D,ut)|0,r=r+Math.imul(I,dt)|0,n=(n=n+Math.imul(I,ft)|0)+Math.imul(C,dt)|0,o=o+Math.imul(C,ft)|0;var Ct=(u+(r=r+Math.imul(k,pt)|0)|0)+((8191&(n=(n=n+Math.imul(k,mt)|0)+Math.imul(T,pt)|0))<<13)|0;u=((o=o+Math.imul(T,mt)|0)+(n>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,r=Math.imul(N,ot),n=(n=Math.imul(N,at))+Math.imul(F,ot)|0,o=Math.imul(F,at),r=r+Math.imul(B,ht)|0,n=(n=n+Math.imul(B,ut)|0)+Math.imul(L,ht)|0,o=o+Math.imul(L,ut)|0,r=r+Math.imul(x,dt)|0,n=(n=n+Math.imul(x,ft)|0)+Math.imul(D,dt)|0,o=o+Math.imul(D,ft)|0;var Pt=(u+(r=r+Math.imul(I,pt)|0)|0)+((8191&(n=(n=n+Math.imul(I,mt)|0)+Math.imul(C,pt)|0))<<13)|0;u=((o=o+Math.imul(C,mt)|0)+(n>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,r=Math.imul(N,ht),n=(n=Math.imul(N,ut))+Math.imul(F,ht)|0,o=Math.imul(F,ut),r=r+Math.imul(B,dt)|0,n=(n=n+Math.imul(B,ft)|0)+Math.imul(L,dt)|0,o=o+Math.imul(L,ft)|0;var xt=(u+(r=r+Math.imul(x,pt)|0)|0)+((8191&(n=(n=n+Math.imul(x,mt)|0)+Math.imul(D,pt)|0))<<13)|0;u=((o=o+Math.imul(D,mt)|0)+(n>>>13)|0)+(xt>>>26)|0,xt&=67108863,r=Math.imul(N,dt),n=(n=Math.imul(N,ft))+Math.imul(F,dt)|0,o=Math.imul(F,ft);var Dt=(u+(r=r+Math.imul(B,pt)|0)|0)+((8191&(n=(n=n+Math.imul(B,mt)|0)+Math.imul(L,pt)|0))<<13)|0;u=((o=o+Math.imul(L,mt)|0)+(n>>>13)|0)+(Dt>>>26)|0,Dt&=67108863;var Ot=(u+(r=Math.imul(N,pt))|0)+((8191&(n=(n=Math.imul(N,mt))+Math.imul(F,pt)|0))<<13)|0;return u=((o=Math.imul(F,mt))+(n>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,h[0]=gt,h[1]=vt,h[2]=yt,h[3]=bt,h[4]=_t,h[5]=wt,h[6]=At,h[7]=Mt,h[8]=Et,h[9]=St,h[10]=kt,h[11]=Tt,h[12]=Rt,h[13]=It,h[14]=Ct,h[15]=Pt,h[16]=xt,h[17]=Dt,h[18]=Ot,0!==u&&(h[19]=u,i.length++),i};function m(t,e,i){return(new g).mulp(t,e,i)}function g(t,e){this.x=t,this.y=e}Math.imul||(p=c),o.prototype.mulTo=function(t,e){var i,r=this.length+t.length;return i=10===this.length&&10===t.length?p(this,t,e):r<63?c(this,t,e):r<1024?function(t,e,i){i.negative=e.negative^t.negative,i.length=t.length+e.length;for(var r=0,n=0,o=0;o<i.length-1;o++){var a=n;n=0;for(var s=67108863&r,h=Math.min(o,e.length-1),u=Math.max(0,o-t.length+1);u<=h;u++){var l=o-u,d=(0|t.words[l])*(0|e.words[u]),f=67108863&d;s=67108863&(f=f+s|0),n+=(a=(a=a+(d/67108864|0)|0)+(f>>>26)|0)>>>26,a&=67108863}i.words[o]=s,r=a,a=n}return 0!==r?i.words[o]=r:i.length--,i.strip()}(this,t,e):m(this,t,e),i},g.prototype.makeRBT=function(t){for(var e=new Array(t),i=o.prototype._countBits(t)-1,r=0;r<t;r++)e[r]=this.revBin(r,i,t);return e},g.prototype.revBin=function(t,e,i){if(0===t||t===i-1)return t;for(var r=0,n=0;n<e;n++)r|=(1&t)<<e-n-1,t>>=1;return r},g.prototype.permute=function(t,e,i,r,n,o){for(var a=0;a<o;a++)r[a]=e[t[a]],n[a]=i[t[a]]},g.prototype.transform=function(t,e,i,r,n,o){this.permute(o,t,e,i,r,n);for(var a=1;a<n;a<<=1)for(var s=a<<1,h=Math.cos(2*Math.PI/s),u=Math.sin(2*Math.PI/s),l=0;l<n;l+=s)for(var d=h,f=u,c=0;c<a;c++){var p=i[l+c],m=r[l+c],g=i[l+c+a],v=r[l+c+a],y=d*g-f*v;v=d*v+f*g,g=y,i[l+c]=p+g,r[l+c]=m+v,i[l+c+a]=p-g,r[l+c+a]=m-v,c!==s&&(y=h*d-u*f,f=h*f+u*d,d=y)}},g.prototype.guessLen13b=function(t,e){var i=1|Math.max(e,t),r=1&i,n=0;for(i=i/2|0;i;i>>>=1)n++;return 1<<n+1+r},g.prototype.conjugate=function(t,e,i){if(!(i<=1))for(var r=0;r<i/2;r++){var n=t[r];t[r]=t[i-r-1],t[i-r-1]=n,n=e[r],e[r]=-e[i-r-1],e[i-r-1]=-n}},g.prototype.normalize13b=function(t,e){for(var i=0,r=0;r<e/2;r++){var n=8192*Math.round(t[2*r+1]/e)+Math.round(t[2*r]/e)+i;t[r]=67108863&n,i=n<67108864?0:n/67108864|0}return t},g.prototype.convert13b=function(t,e,i,n){for(var o=0,a=0;a<e;a++)o+=0|t[a],i[2*a]=8191&o,o>>>=13,i[2*a+1]=8191&o,o>>>=13;for(a=2*e;a<n;++a)i[a]=0;r(0===o),r(0==(-8192&o))},g.prototype.stub=function(t){for(var e=new Array(t),i=0;i<t;i++)e[i]=0;return e},g.prototype.mulp=function(t,e,i){var r=2*this.guessLen13b(t.length,e.length),n=this.makeRBT(r),o=this.stub(r),a=new Array(r),s=new Array(r),h=new Array(r),u=new Array(r),l=new Array(r),d=new Array(r),f=i.words;f.length=r,this.convert13b(t.words,t.length,a,r),this.convert13b(e.words,e.length,u,r),this.transform(a,o,s,h,r,n),this.transform(u,o,l,d,r,n);for(var c=0;c<r;c++){var p=s[c]*l[c]-h[c]*d[c];h[c]=s[c]*d[c]+h[c]*l[c],s[c]=p}return this.conjugate(s,h,r),this.transform(s,h,f,o,r,n),this.conjugate(f,o,r),this.normalize13b(f,r),i.negative=t.negative^e.negative,i.length=t.length+e.length,i.strip()},o.prototype.mul=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},o.prototype.mulf=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),m(this,t,e)},o.prototype.imul=function(t){return this.clone().mulTo(t,this)},o.prototype.imuln=function(t){r("number"==typeof t),r(t<67108864);for(var e=0,i=0;i<this.length;i++){var n=(0|this.words[i])*t,o=(67108863&n)+(67108863&e);e>>=26,e+=n/67108864|0,e+=o>>>26,this.words[i]=67108863&o}return 0!==e&&(this.words[i]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),i=0;i<e.length;i++){var r=i/26|0,n=i%26;e[i]=(t.words[r]&1<<n)>>>n}return e}(t);if(0===e.length)return new o(1);for(var i=this,r=0;r<e.length&&0===e[r];r++,i=i.sqr());if(++r<e.length)for(var n=i.sqr();r<e.length;r++,n=n.sqr())0!==e[r]&&(i=i.mul(n));return i},o.prototype.iushln=function(t){r("number"==typeof t&&t>=0);var e,i=t%26,n=(t-i)/26,o=67108863>>>26-i<<26-i;if(0!==i){var a=0;for(e=0;e<this.length;e++){var s=this.words[e]&o,h=(0|this.words[e])-s<<i;this.words[e]=h|a,a=s>>>26-i}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e<n;e++)this.words[e]=0;this.length+=n}return this.strip()},o.prototype.ishln=function(t){return r(0===this.negative),this.iushln(t)},o.prototype.iushrn=function(t,e,i){var n;r("number"==typeof t&&t>=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<<o,h=i;if(n-=a,n=Math.max(0,n),h){for(var u=0;u<a;u++)h.words[u]=this.words[u];h.length=a}if(0===a);else if(this.length>a)for(this.length-=a,u=0;u<this.length;u++)this.words[u]=this.words[u+a];else this.words[0]=0,this.length=1;var l=0;for(u=this.length-1;u>=0&&(0!==l||u>=n);u--){var d=0|this.words[u];this.words[u]=l<<26-o|d>>>o,l=d&s}return h&&0!==l&&(h.words[h.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,i){return r(0===this.negative),this.iushrn(t,e,i)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){r("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26,n=1<<e;return!(this.length<=i)&&!!(this.words[i]&n)},o.prototype.imaskn=function(t){r("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=i)return this;if(0!==e&&i++,this.length=Math.min(i,this.length),0!==e){var n=67108863^67108863>>>e<<e;this.words[this.length-1]&=n}return this.strip()},o.prototype.maskn=function(t){return this.clone().imaskn(t)},o.prototype.iaddn=function(t){return r("number"==typeof t),r(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},o.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(r("number"==typeof t),r(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},o.prototype.addn=function(t){return this.clone().iaddn(t)},o.prototype.subn=function(t){return this.clone().isubn(t)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(t,e,i){var n,o,a=t.length+i;this._expand(a);var s=0;for(n=0;n<t.length;n++){o=(0|this.words[n+i])+s;var h=(0|t.words[n])*e;s=((o-=67108863&h)>>26)-(h/67108864|0),this.words[n+i]=67108863&o}for(;n<this.length-i;n++)s=(o=(0|this.words[n+i])+s)>>26,this.words[n+i]=67108863&o;if(0===s)return this.strip();for(r(-1===s),s=0,n=0;n<this.length;n++)s=(o=-(0|this.words[n])+s)>>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var i=(this.length,t.length),r=this.clone(),n=t,a=0|n.words[n.length-1];0!==(i=26-this._countBits(a))&&(n=n.ushln(i),r.iushln(i),a=0|n.words[n.length-1]);var s,h=r.length-n.length;if("mod"!==e){(s=new o(null)).length=h+1,s.words=new Array(s.length);for(var u=0;u<s.length;u++)s.words[u]=0}var l=r.clone()._ishlnsubmul(n,1,h);0===l.negative&&(r=l,s&&(s.words[h]=1));for(var d=h-1;d>=0;d--){var f=67108864*(0|r.words[n.length+d])+(0|r.words[n.length+d-1]);for(f=Math.min(f/a|0,67108863),r._ishlnsubmul(n,f,d);0!==r.negative;)f--,r.negative=0,r._ishlnsubmul(n,1,d),r.isZero()||(r.negative^=1);s&&(s.words[d]=f)}return s&&s.strip(),r.strip(),"div"!==e&&0!==i&&r.iushrn(i),{div:s||null,mod:r}},o.prototype.divmod=function(t,e,i){return r(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(a=s.mod.neg(),i&&0!==a.negative&&a.iadd(t)),{div:n,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),i&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var n,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var i=0!==e.div.negative?e.mod.isub(t):e.mod,r=t.ushrn(1),n=t.andln(1),o=i.cmp(r);return o<0||1===n&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){r(t<=67108863);for(var e=(1<<26)%t,i=0,n=this.length-1;n>=0;n--)i=(e*i+(0|this.words[n]))%t;return i},o.prototype.idivn=function(t){r(t<=67108863);for(var e=0,i=this.length-1;i>=0;i--){var n=(0|this.words[i])+67108864*e;this.words[i]=n/t|0,e=n%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){r(0===t.negative),r(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n=new o(1),a=new o(0),s=new o(0),h=new o(1),u=0;e.isEven()&&i.isEven();)e.iushrn(1),i.iushrn(1),++u;for(var l=i.clone(),d=e.clone();!e.isZero();){for(var f=0,c=1;0==(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(n.isOdd()||a.isOdd())&&(n.iadd(l),a.isub(d)),n.iushrn(1),a.iushrn(1);for(var p=0,m=1;0==(i.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(i.iushrn(p);p-- >0;)(s.isOdd()||h.isOdd())&&(s.iadd(l),h.isub(d)),s.iushrn(1),h.iushrn(1);e.cmp(i)>=0?(e.isub(i),n.isub(s),a.isub(h)):(i.isub(e),s.isub(n),h.isub(a))}return{a:s,b:h,gcd:i.iushln(u)}},o.prototype._invmp=function(t){r(0===t.negative),r(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n,a=new o(1),s=new o(0),h=i.clone();e.cmpn(1)>0&&i.cmpn(1)>0;){for(var u=0,l=1;0==(e.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(e.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(h),a.iushrn(1);for(var d=0,f=1;0==(i.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(i.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(h),s.iushrn(1);e.cmp(i)>=0?(e.isub(i),a.isub(s)):(i.isub(e),s.isub(a))}return(n=0===e.cmpn(1)?a:s).cmpn(0)<0&&n.iadd(t),n},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),i=t.clone();e.negative=0,i.negative=0;for(var r=0;e.isEven()&&i.isEven();r++)e.iushrn(1),i.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;i.isEven();)i.iushrn(1);var n=e.cmp(i);if(n<0){var o=e;e=i,i=o}else if(0===n||0===i.cmpn(1))break;e.isub(i)}return i.iushln(r)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){r("number"==typeof t);var e=t%26,i=(t-e)/26,n=1<<e;if(this.length<=i)return this._expand(i+1),this.words[i]|=n,this;for(var o=n,a=i;0!==o&&a<this.length;a++){var s=0|this.words[a];o=(s+=o)>>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,i=t<0;if(0!==this.negative&&!i)return-1;if(0===this.negative&&i)return 1;if(this.strip(),this.length>1)e=1;else{i&&(t=-t),r(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:n<t?-1:1}return 0!==this.negative?0|-e:e},o.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},o.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,i=this.length-1;i>=0;i--){var r=0|this.words[i],n=0|t.words[i];if(r!==n){r<n?e=-1:r>n&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new M(t)},o.prototype.toRed=function(t){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return r(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return r(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var v={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function A(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function M(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else r(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function E(t){M.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,i=t;do{this.split(i,this.tmp),e=(i=(i=this.imulK(i)).iadd(this.tmp)).bitLength()}while(e>this.n);var r=e<this.n?-1:i.ucmp(this.p);return 0===r?(i.words[0]=0,i.length=1):r>0?i.isub(this.p):void 0!==i.strip?i.strip():i._strip(),i},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},n(b,y),b.prototype.split=function(t,e){for(var i=4194303,r=Math.min(t.length,9),n=0;n<r;n++)e.words[n]=t.words[n];if(e.length=r,t.length<=9)return t.words[0]=0,void(t.length=1);var o=t.words[9];for(e.words[e.length++]=o&i,n=10;n<t.length;n++){var a=0|t.words[n];t.words[n-10]=(a&i)<<4|o>>>22,o=a}o>>>=22,t.words[n-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},b.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,i=0;i<t.length;i++){var r=0|t.words[i];e+=977*r,t.words[i]=67108863&e,e=64*r+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},n(_,y),n(w,y),n(A,y),A.prototype.imulK=function(t){for(var e=0,i=0;i<t.length;i++){var r=19*(0|t.words[i])+e,n=67108863&r;r>>>=26,t.words[i]=n,e=r}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(v[t])return v[t];var e;if("k256"===t)e=new b;else if("p224"===t)e=new _;else if("p192"===t)e=new w;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new A}return v[t]=e,e},M.prototype._verify1=function(t){r(0===t.negative,"red works only with positives"),r(t.red,"red works only with red numbers")},M.prototype._verify2=function(t,e){r(0==(t.negative|e.negative),"red works only with positives"),r(t.red&&t.red===e.red,"red works only with red numbers")},M.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},M.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},M.prototype.add=function(t,e){this._verify2(t,e);var i=t.add(e);return i.cmp(this.m)>=0&&i.isub(this.m),i._forceRed(this)},M.prototype.iadd=function(t,e){this._verify2(t,e);var i=t.iadd(e);return i.cmp(this.m)>=0&&i.isub(this.m),i},M.prototype.sub=function(t,e){this._verify2(t,e);var i=t.sub(e);return i.cmpn(0)<0&&i.iadd(this.m),i._forceRed(this)},M.prototype.isub=function(t,e){this._verify2(t,e);var i=t.isub(e);return i.cmpn(0)<0&&i.iadd(this.m),i},M.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},M.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},M.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},M.prototype.isqr=function(t){return this.imul(t,t.clone())},M.prototype.sqr=function(t){return this.mul(t,t)},M.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(r(e%2==1),3===e){var i=this.m.add(new o(1)).iushrn(2);return this.pow(t,i)}for(var n=this.m.subn(1),a=0;!n.isZero()&&0===n.andln(1);)a++,n.iushrn(1);r(!n.isZero());var s=new o(1).toRed(this),h=s.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(h);)l.redIAdd(h);for(var d=this.pow(l,n),f=this.pow(t,n.addn(1).iushrn(1)),c=this.pow(t,n),p=a;0!==c.cmp(s);){for(var m=c,g=0;0!==m.cmp(s);g++)m=m.redSqr();r(g<p);var v=this.pow(d,new o(1).iushln(p-g-1));f=f.redMul(v),d=v.redSqr(),c=c.redMul(d),p=g}return f},M.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},M.prototype.pow=function(t,e){if(e.isZero())return new o(1).toRed(this);if(0===e.cmpn(1))return t.clone();var i=new Array(16);i[0]=new o(1).toRed(this),i[1]=t;for(var r=2;r<i.length;r++)i[r]=this.mul(i[r-1],t);var n=i[0],a=0,s=0,h=e.bitLength()%26;for(0===h&&(h=26),r=e.length-1;r>=0;r--){for(var u=e.words[r],l=h-1;l>=0;l--){var d=u>>l&1;n!==i[0]&&(n=this.sqr(n)),0!==d||0!==a?(a<<=1,a|=d,(4===++s||0===r&&0===l)&&(n=this.mul(n,i[a]),s=0,a=0)):s=0}h=26}return n},M.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},M.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new E(t)},n(E,M),E.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},E.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},E.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var i=t.imul(e),r=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=i.isub(r).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},E.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var i=t.mul(e),r=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=i.isub(r).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},E.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t,this)}).call(this,i(20)(t))},function(t,e,i){var r=i(4).Buffer,n=i(161).Transform,o=i(18).StringDecoder;function a(t){n.call(this),this.hashMode="string"==typeof t,this.hashMode?this[t]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}i(3)(a,n),a.prototype.update=function(t,e,i){"string"==typeof t&&(t=r.from(t,e));var n=this._update(t);return this.hashMode?this:(i&&(n=this._toString(n,i)),n)},a.prototype.setAutoPadding=function(){},a.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},a.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},a.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},a.prototype._transform=function(t,e,i){var r;try{this.hashMode?this._update(t):this.push(this._update(t))}catch(t){r=t}finally{i(r)}},a.prototype._flush=function(t){var e;try{this.push(this.__final())}catch(t){e=t}t(e)},a.prototype._finalOrDigest=function(t){var e=this.__final()||r.alloc(0);return t&&(e=this._toString(e,t,!0)),e},a.prototype._toString=function(t,e,i){if(this._decoder||(this._decoder=new o(e),this._encoding=e),this._encoding!==e)throw new Error("can't switch encodings");var r=this._decoder.write(t);return i&&(r+=this._decoder.end()),r},t.exports=a},function(t,e,i){"use strict";var r=i(4).Buffer,n=r.isEncoding||function(t){switch((t=""+t)&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(t){var e;switch(this.encoding=function(t){var e=function(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}(t);if("string"!=typeof e&&(r.isEncoding===n||!n(t)))throw new Error("Unknown encoding: "+t);return e||t}(t),this.encoding){case"utf16le":this.text=h,this.end=u,e=4;break;case"utf8":this.fillLast=s,e=4;break;case"base64":this.text=l,this.end=d,e=3;break;default:return this.write=f,void(this.end=c)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(e)}function a(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function s(t){var e=this.lastTotal-this.lastNeed,i=function(t,e,i){if(128!=(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"�"}}(this,t);return void 0!==i?i:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function h(t,e){if((t.length-e)%2==0){var i=t.toString("utf16le",e);if(i){var r=i.charCodeAt(i.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],i.slice(0,-1)}return i}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function u(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var i=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,i)}return e}function l(t,e){var i=(t.length-e)%3;return 0===i?t.toString("base64",e):(this.lastNeed=3-i,this.lastTotal=3,1===i?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-i))}function d(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function f(t){return t.toString(this.encoding)}function c(t){return t&&t.length?this.write(t):""}e.StringDecoder=o,o.prototype.write=function(t){if(0===t.length)return"";var e,i;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";i=this.lastNeed,this.lastNeed=0}else i=0;return i<t.length?e?e+this.text(t,i):this.text(t,i):e||""},o.prototype.end=function(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"�":e},o.prototype.text=function(t,e){var i=function(t,e,i){var r=e.length-1;if(r<i)return 0;var n=a(e[r]);if(n>=0)return n>0&&(t.lastNeed=n-1),n;if(--r<i||-2===n)return 0;if((n=a(e[r]))>=0)return n>0&&(t.lastNeed=n-2),n;if(--r<i||-2===n)return 0;if((n=a(e[r]))>=0)return n>0&&(2===n?n=0:t.lastNeed=n-3),n;return 0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=i;var r=t.length-(i-this.lastNeed);return t.copy(this.lastChar,0,r),t.toString("utf8",e,r)},o.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},function(t,e,i){"use strict";var r=i(42),n=Object.keys||function(t){var e=[];for(var i in t)e.push(i);return e};t.exports=d;var o=Object.create(i(36));o.inherits=i(3);var a=i(88),s=i(59);o.inherits(d,a);for(var h=n(s.prototype),u=0;u<h.length;u++){var l=h[u];d.prototype[l]||(d.prototype[l]=s.prototype[l])}function d(t){if(!(this instanceof d))return new d(t);a.call(this,t),s.call(this,t),t&&!1===t.readable&&(this.readable=!1),t&&!1===t.writable&&(this.writable=!1),this.allowHalfOpen=!0,t&&!1===t.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",f)}function f(){this.allowHalfOpen||this._writableState.ended||r.nextTick(c,this)}function c(t){t.end()}Object.defineProperty(d.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(d.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(t){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=t,this._writableState.destroyed=t)}}),d.prototype._destroy=function(t,e){this.push(null),this.end(),r.nextTick(e,t)}},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,i){var r,n,o,a,s,h,u,l;t.exports=(l=i(5),i(75),i(76),n=(r=l).lib,o=n.Base,a=n.WordArray,s=r.algo,h=s.MD5,u=s.EvpKDF=o.extend({cfg:o.extend({keySize:4,hasher:h,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){for(var i,r=this.cfg,n=r.hasher.create(),o=a.create(),s=o.words,h=r.keySize,u=r.iterations;s.length<h;){i&&n.update(i),i=n.update(t).finalize(e),n.reset();for(var l=1;l<u;l++)i=n.finalize(i),n.reset();o.concat(i)}return o.sigBytes=4*h,o}}),r.EvpKDF=function(t,e,i){return u.create(i).compute(t,e)},l.EvpKDF)},function(t,e,i){function r(t){var e={};function i(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}i.m=t,i.c=e,i.i=function(t){return t},i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},i.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="/",i.oe=function(t){throw t};var r=i(i.s=ENTRY_MODULE);return r.default||r}var n="[\\.|\\-|\\+|\\w|/|@]+",o="\\(\\s*(/\\*.*?\\*/)?\\s*.*?([\\.|\\-|\\+|\\w|/|@]+).*?\\)";function a(t){return(t+"").replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}function s(t,e,r){var s={};s[r]=[];var h=e.toString(),u=h.match(/^function\s?\w*\(\w+,\s*\w+,\s*(\w+)\)/);if(!u)return s;for(var l,d=u[1],f=new RegExp("(\\\\n|\\W)"+a(d)+o,"g");l=f.exec(h);)"dll-reference"!==l[3]&&s[r].push(l[3]);for(f=new RegExp("\\("+a(d)+'\\("(dll-reference\\s('+n+'))"\\)\\)'+o,"g");l=f.exec(h);)t[l[2]]||(s[r].push(l[1]),t[l[2]]=i(l[1]).m),s[l[2]]=s[l[2]]||[],s[l[2]].push(l[4]);for(var c,p=Object.keys(s),m=0;m<p.length;m++)for(var g=0;g<s[p[m]].length;g++)c=s[p[m]][g],isNaN(1*c)||(s[p[m]][g]=1*s[p[m]][g]);return s}function h(t){return Object.keys(t).reduce((function(e,i){return e||t[i].length>0}),!1)}t.exports=function(t,e){e=e||{};var n={main:i.m},o=e.all?{main:Object.keys(n.main)}:function(t,e){for(var i={main:[e]},r={main:[]},n={main:{}};h(i);)for(var o=Object.keys(i),a=0;a<o.length;a++){var u=o[a],l=i[u].pop();if(n[u]=n[u]||{},!n[u][l]&&t[u][l]){n[u][l]=!0,r[u]=r[u]||[],r[u].push(l);for(var d=s(t,t[u][l],u),f=Object.keys(d),c=0;c<f.length;c++)i[f[c]]=i[f[c]]||[],i[f[c]]=i[f[c]].concat(d[f[c]])}}return r}(n,t),a="";Object.keys(o).filter((function(t){return"main"!==t})).forEach((function(t){for(var e=0;o[t][e];)e++;o[t].push(e),n[t][e]="(function(module, exports, __webpack_require__) { module.exports = __webpack_require__; })",a=a+"var "+t+" = ("+r.toString().replace("ENTRY_MODULE",JSON.stringify(e))+")({"+o[t].map((function(e){return JSON.stringify(e)+": "+n[t][e].toString()})).join(",")+"});\n"})),a=a+"new (("+r.toString().replace("ENTRY_MODULE",JSON.stringify(t))+")({"+o.main.map((function(t){return JSON.stringify(t)+": "+n.main[t].toString()})).join(",")+"}))(self);";var u=new window.Blob([a],{type:"text/javascript"});if(e.bare)return u;var l=(window.URL||window.webkitURL||window.mozURL||window.msURL).createObjectURL(u),d=new window.Worker(l);return d.objectURL=l,d}},function(t,e,i){"use strict";var r=i(2),n=function(){function t(t){this.TAG="ExpGolomb",this._buffer=t,this._buffer_index=0,this._total_bytes=t.byteLength,this._total_bits=8*t.byteLength,this._current_word=0,this._current_word_bits_left=0}var e=t.prototype;return e.destroy=function(){this._buffer=null},e._fillCurrentWord=function(){var t=this._total_bytes-this._buffer_index;if(t<=0)throw new r.a("ExpGolomb: _fillCurrentWord() but no bytes available");var e=Math.min(4,t),i=new Uint8Array(4);i.set(this._buffer.subarray(this._buffer_index,this._buffer_index+e)),this._current_word=new DataView(i.buffer).getUint32(0,!1),this._buffer_index+=e,this._current_word_bits_left=8*e},e.readBits=function(t){if(t>32)throw new r.b("ExpGolomb: readBits() bits exceeded max 32bits!");if(t<=this._current_word_bits_left){var e=this._current_word>>>32-t;return this._current_word<<=t,this._current_word_bits_left-=t,e}var i=this._current_word_bits_left?this._current_word:0;i>>>=32-this._current_word_bits_left;var n=t-this._current_word_bits_left;this._fillCurrentWord();var o=Math.min(n,this._current_word_bits_left),a=this._current_word>>>32-o;return this._current_word<<=o,this._current_word_bits_left-=o,i=i<<o|a},e.readBool=function(){return 1===this.readBits(1)},e.readByte=function(){return this.readBits(8)},e._skipLeadingZero=function(){var t;for(t=0;t<this._current_word_bits_left;t++)if(0!=(this._current_word&2147483648>>>t))return this._current_word<<=t,this._current_word_bits_left-=t,t;return this._fillCurrentWord(),t+this._skipLeadingZero()},e.readUEG=function(){var t=this._skipLeadingZero();return this.readBits(t+1)-1},e.readSEG=function(){var t=this.readUEG();return 1&t?t+1>>>1:-1*(t>>>1)},t}(),o=function(){function t(){}return t._ebsp2rbsp=function(t){for(var e=t,i=e.byteLength,r=new Uint8Array(i),n=0,o=0;o<i;o++)o>=2&&3===e[o]&&0===e[o-1]&&0===e[o-2]||(r[n]=e[o],n++);return new Uint8Array(r.buffer,0,n)},t.parseSPS=function(e){var i=t._ebsp2rbsp(e),r=new n(i);r.readByte();var o=r.readByte();r.readByte();var a=r.readByte();r.readUEG();var s=t.getProfileString(o),h=t.getLevelString(a),u=1,l=420,d=8;if((100===o||110===o||122===o||244===o||44===o||83===o||86===o||118===o||128===o||138===o||144===o)&&(3===(u=r.readUEG())&&r.readBits(1),u<=3&&(l=[0,420,422,444][u]),d=r.readUEG()+8,r.readUEG(),r.readBits(1),r.readBool()))for(var f=3!==u?8:12,c=0;c<f;c++)r.readBool()&&(c<6?t._skipScalingList(r,16):t._skipScalingList(r,64));r.readUEG();var p=r.readUEG();if(0===p)r.readUEG();else if(1===p){r.readBits(1),r.readSEG(),r.readSEG();for(var m=r.readUEG(),g=0;g<m;g++)r.readSEG()}var v=r.readUEG();r.readBits(1);var y=r.readUEG(),b=r.readUEG(),_=r.readBits(1);0===_&&r.readBits(1),r.readBits(1);var w=0,A=0,M=0,E=0;r.readBool()&&(w=r.readUEG(),A=r.readUEG(),M=r.readUEG(),E=r.readUEG());var S=1,k=1,T=0,R=!0,I=0,C=0;if(r.readBool()){if(r.readBool()){var P=r.readByte();P>0&&P<16?(S=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][P-1],k=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][P-1]):255===P&&(S=r.readByte()<<8|r.readByte(),k=r.readByte()<<8|r.readByte())}if(r.readBool()&&r.readBool(),r.readBool()&&(r.readBits(4),r.readBool()&&r.readBits(24)),r.readBool()&&(r.readUEG(),r.readUEG()),r.readBool()){var x=r.readBits(32),D=r.readBits(32);R=r.readBool(),T=(I=D)/(C=2*x)}}var O=1;1===S&&1===k||(O=S/k);var B=0,L=0;0===u?(B=1,L=2-_):(B=3===u?1:2,L=(1===u?2:1)*(2-_));var W=16*(y+1),N=16*(b+1)*(2-_);W-=(w+A)*B,N-=(M+E)*L;var F=Math.ceil(W*O);return r.destroy(),r=null,{avc_profile:o,profile_string:s,avc_level:a,level_string:h,bit_depth:d,ref_frames:v,chroma_format:l,chroma_format_string:t.getChromaFormatString(l),frame_rate:{fixed:R,fps:T,fps_den:C,fps_num:I},sar_ratio:{width:S,height:k},codec_size:{width:W,height:N},present_size:{width:F,height:N}}},t._skipScalingList=function(t,e){for(var i=8,r=8,n=0;n<e;n++)0!==r&&(r=(i+t.readSEG()+256)%256),i=0===r?i:r},t.getProfileString=function(t){switch(t){case 66:return"Baseline";case 77:return"Main";case 88:return"Extended";case 100:return"High";case 110:return"High10";case 122:return"High422";case 244:return"High444";default:return"Unknown"}},t.getLevelString=function(t){return(t/10).toFixed(1)},t.getChromaFormatString=function(t){switch(t){case 420:return"4:2:0";case 422:return"4:2:2";case 444:return"4:4:4";default:return"Unknown"}},t}();e.a=o},function(t,e,i){var r;t.exports=(r=i(5),i(49),i(259),i(260),i(31),i(261),i(32),i(75),i(131),i(262),i(132),i(263),i(264),i(265),i(76),i(266),i(21),i(11),i(267),i(268),i(269),i(270),i(271),i(272),i(273),i(274),i(275),i(276),i(277),i(278),i(279),i(280),i(281),i(282),r)},function(t,e,i){"use strict";(function(e,r){var n=65536,o=4294967295;var a=i(4).Buffer,s=e.crypto||e.msCrypto;s&&s.getRandomValues?t.exports=function(t,e){if(t>o)throw new RangeError("requested too many random bytes");var i=a.allocUnsafe(t);if(t>0)if(t>n)for(var h=0;h<t;h+=n)s.getRandomValues(i.slice(h,h+n));else s.getRandomValues(i);if("function"==typeof e)return r.nextTick((function(){e(null,i)}));return i}:t.exports=function(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}}).call(this,i(10),i(8))},function(t,e,i){"use strict";var r={};function n(t,e,i){i||(i=Error);var n=function(t){var i,r;function n(i,r,n){return t.call(this,function(t,i,r){return"string"==typeof e?e:e(t,i,r)}(i,r,n))||this}return r=t,(i=n).prototype=Object.create(r.prototype),i.prototype.constructor=i,i.__proto__=r,n}(i);n.prototype.name=i.name,n.prototype.code=t,r[t]=n}function o(t,e){if(Array.isArray(t)){var i=t.length;return t=t.map((function(t){return String(t)})),i>2?"one of ".concat(e," ").concat(t.slice(0,i-1).join(", "),", or ")+t[i-1]:2===i?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}n("ERR_INVALID_OPT_VALUE",(function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'}),TypeError),n("ERR_INVALID_ARG_TYPE",(function(t,e,i){var r,n,a,s;if("string"==typeof e&&(n="not ",e.substr(!a||a<0?0:+a,n.length)===n)?(r="must not be",e=e.replace(/^not /,"")):r="must be",function(t,e,i){return(void 0===i||i>t.length)&&(i=t.length),t.substring(i-e.length,i)===e}(t," argument"))s="The ".concat(t," ").concat(r," ").concat(o(e,"type"));else{var h=function(t,e,i){return"number"!=typeof i&&(i=0),!(i+e.length>t.length)&&-1!==t.indexOf(e,i)}(t,".")?"property":"argument";s='The "'.concat(t,'" ').concat(h," ").concat(r," ").concat(o(e,"type"))}return s+=". Received type ".concat(typeof i)}),TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",(function(t){return"The "+t+" method is not implemented"})),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",(function(t){return"Cannot call "+t+" after a stream was destroyed"})),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",(function(t){return"Unknown encoding: "+t}),TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),t.exports.codes=r},function(t,e,i){"use strict";(function(e){var r=Object.keys||function(t){var e=[];for(var i in t)e.push(i);return e};t.exports=u;var n=i(80),o=i(84);i(3)(u,n);for(var a=r(o.prototype),s=0;s<a.length;s++){var h=a[s];u.prototype[h]||(u.prototype[h]=o.prototype[h])}function u(t){if(!(this instanceof u))return new u(t);n.call(this,t),o.call(this,t),this.allowHalfOpen=!0,t&&(!1===t.readable&&(this.readable=!1),!1===t.writable&&(this.writable=!1),!1===t.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",l)))}function l(){this._writableState.ended||e.nextTick(d,this)}function d(t){t.end()}Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(u.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(u.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(u.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(t){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=t,this._writableState.destroyed=t)}})}).call(this,i(8))},function(t,e,i){var r=i(4).Buffer;function n(t,e){this._block=r.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}n.prototype.update=function(t,e){"string"==typeof t&&(e=e||"utf8",t=r.from(t,e));for(var i=this._block,n=this._blockSize,o=t.length,a=this._len,s=0;s<o;){for(var h=a%n,u=Math.min(o-s,n-h),l=0;l<u;l++)i[h+l]=t[s+l];s+=u,(a+=u)%n==0&&this._update(i)}return this._len+=o,this},n.prototype.digest=function(t){var e=this._len%this._blockSize;this._block[e]=128,this._block.fill(0,e+1),e>=this._finalSize&&(this._update(this._block),this._block.fill(0));var i=8*this._len;if(i<=4294967295)this._block.writeUInt32BE(i,this._blockSize-4);else{var r=(4294967295&i)>>>0,n=(i-r)/4294967296;this._block.writeUInt32BE(n,this._blockSize-8),this._block.writeUInt32BE(r,this._blockSize-4)}this._update(this._block);var o=this._hash();return t?o.toString(t):o},n.prototype._update=function(){throw new Error("_update must be implemented by subclass")},t.exports=n},function(t,e,i){"use strict";var r={};function n(t,e,i){i||(i=Error);var n=function(t){var i,r;function n(i,r,n){return t.call(this,function(t,i,r){return"string"==typeof e?e:e(t,i,r)}(i,r,n))||this}return r=t,(i=n).prototype=Object.create(r.prototype),i.prototype.constructor=i,i.__proto__=r,n}(i);n.prototype.name=i.name,n.prototype.code=t,r[t]=n}function o(t,e){if(Array.isArray(t)){var i=t.length;return t=t.map((function(t){return String(t)})),i>2?"one of ".concat(e," ").concat(t.slice(0,i-1).join(", "),", or ")+t[i-1]:2===i?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}n("ERR_INVALID_OPT_VALUE",(function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'}),TypeError),n("ERR_INVALID_ARG_TYPE",(function(t,e,i){var r,n,a,s;if("string"==typeof e&&(n="not ",e.substr(!a||a<0?0:+a,n.length)===n)?(r="must not be",e=e.replace(/^not /,"")):r="must be",function(t,e,i){return(void 0===i||i>t.length)&&(i=t.length),t.substring(i-e.length,i)===e}(t," argument"))s="The ".concat(t," ").concat(r," ").concat(o(e,"type"));else{var h=function(t,e,i){return"number"!=typeof i&&(i=0),!(i+e.length>t.length)&&-1!==t.indexOf(e,i)}(t,".")?"property":"argument";s='The "'.concat(t,'" ').concat(h," ").concat(r," ").concat(o(e,"type"))}return s+=". Received type ".concat(typeof i)}),TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",(function(t){return"The "+t+" method is not implemented"})),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",(function(t){return"Cannot call "+t+" after a stream was destroyed"})),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",(function(t){return"Unknown encoding: "+t}),TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),t.exports.codes=r},function(t,e,i){"use strict";(function(e){var r=Object.keys||function(t){var e=[];for(var i in t)e.push(i);return e};t.exports=u;var n=i(110),o=i(114);i(3)(u,n);for(var a=r(o.prototype),s=0;s<a.length;s++){var h=a[s];u.prototype[h]||(u.prototype[h]=o.prototype[h])}function u(t){if(!(this instanceof u))return new u(t);n.call(this,t),o.call(this,t),this.allowHalfOpen=!0,t&&(!1===t.readable&&(this.readable=!1),!1===t.writable&&(this.writable=!1),!1===t.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",l)))}function l(){this._writableState.ended||e.nextTick(d,this)}function d(t){t.end()}Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(u.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(u.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(u.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(t){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=t,this._writableState.destroyed=t)}})}).call(this,i(8))},function(t,e,i){var r;t.exports=(r=i(5),function(){var t=r,e=t.lib.WordArray;function i(t,i,r){for(var n=[],o=0,a=0;a<i;a++)if(a%4){var s=r[t.charCodeAt(a-1)]<<a%4*2|r[t.charCodeAt(a)]>>>6-a%4*2;n[o>>>2]|=s<<24-o%4*8,o++}return e.create(n,o)}t.enc.Base64={stringify:function(t){var e=t.words,i=t.sigBytes,r=this._map;t.clamp();for(var n=[],o=0;o<i;o+=3)for(var a=(e[o>>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,s=0;s<4&&o+.75*s<i;s++)n.push(r.charAt(a>>>6*(3-s)&63));var h=r.charAt(64);if(h)for(;n.length%4;)n.push(h);return n.join("")},parse:function(t){var e=t.length,r=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o<r.length;o++)n[r.charCodeAt(o)]=o}var a=r.charAt(64);if(a){var s=t.indexOf(a);-1!==s&&(e=s)}return i(t,e,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),r.enc.Base64)},function(t,e,i){var r;t.exports=(r=i(5),function(t){var e=r,i=e.lib,n=i.WordArray,o=i.Hasher,a=e.algo,s=[];!function(){for(var e=0;e<64;e++)s[e]=4294967296*t.abs(t.sin(e+1))|0}();var h=a.MD5=o.extend({_doReset:function(){this._hash=new n.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var i=0;i<16;i++){var r=e+i,n=t[r];t[r]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o=this._hash.words,a=t[e+0],h=t[e+1],c=t[e+2],p=t[e+3],m=t[e+4],g=t[e+5],v=t[e+6],y=t[e+7],b=t[e+8],_=t[e+9],w=t[e+10],A=t[e+11],M=t[e+12],E=t[e+13],S=t[e+14],k=t[e+15],T=o[0],R=o[1],I=o[2],C=o[3];T=u(T,R,I,C,a,7,s[0]),C=u(C,T,R,I,h,12,s[1]),I=u(I,C,T,R,c,17,s[2]),R=u(R,I,C,T,p,22,s[3]),T=u(T,R,I,C,m,7,s[4]),C=u(C,T,R,I,g,12,s[5]),I=u(I,C,T,R,v,17,s[6]),R=u(R,I,C,T,y,22,s[7]),T=u(T,R,I,C,b,7,s[8]),C=u(C,T,R,I,_,12,s[9]),I=u(I,C,T,R,w,17,s[10]),R=u(R,I,C,T,A,22,s[11]),T=u(T,R,I,C,M,7,s[12]),C=u(C,T,R,I,E,12,s[13]),I=u(I,C,T,R,S,17,s[14]),T=l(T,R=u(R,I,C,T,k,22,s[15]),I,C,h,5,s[16]),C=l(C,T,R,I,v,9,s[17]),I=l(I,C,T,R,A,14,s[18]),R=l(R,I,C,T,a,20,s[19]),T=l(T,R,I,C,g,5,s[20]),C=l(C,T,R,I,w,9,s[21]),I=l(I,C,T,R,k,14,s[22]),R=l(R,I,C,T,m,20,s[23]),T=l(T,R,I,C,_,5,s[24]),C=l(C,T,R,I,S,9,s[25]),I=l(I,C,T,R,p,14,s[26]),R=l(R,I,C,T,b,20,s[27]),T=l(T,R,I,C,E,5,s[28]),C=l(C,T,R,I,c,9,s[29]),I=l(I,C,T,R,y,14,s[30]),T=d(T,R=l(R,I,C,T,M,20,s[31]),I,C,g,4,s[32]),C=d(C,T,R,I,b,11,s[33]),I=d(I,C,T,R,A,16,s[34]),R=d(R,I,C,T,S,23,s[35]),T=d(T,R,I,C,h,4,s[36]),C=d(C,T,R,I,m,11,s[37]),I=d(I,C,T,R,y,16,s[38]),R=d(R,I,C,T,w,23,s[39]),T=d(T,R,I,C,E,4,s[40]),C=d(C,T,R,I,a,11,s[41]),I=d(I,C,T,R,p,16,s[42]),R=d(R,I,C,T,v,23,s[43]),T=d(T,R,I,C,_,4,s[44]),C=d(C,T,R,I,M,11,s[45]),I=d(I,C,T,R,k,16,s[46]),T=f(T,R=d(R,I,C,T,c,23,s[47]),I,C,a,6,s[48]),C=f(C,T,R,I,y,10,s[49]),I=f(I,C,T,R,S,15,s[50]),R=f(R,I,C,T,g,21,s[51]),T=f(T,R,I,C,M,6,s[52]),C=f(C,T,R,I,p,10,s[53]),I=f(I,C,T,R,w,15,s[54]),R=f(R,I,C,T,h,21,s[55]),T=f(T,R,I,C,b,6,s[56]),C=f(C,T,R,I,k,10,s[57]),I=f(I,C,T,R,v,15,s[58]),R=f(R,I,C,T,E,21,s[59]),T=f(T,R,I,C,m,6,s[60]),C=f(C,T,R,I,A,10,s[61]),I=f(I,C,T,R,c,15,s[62]),R=f(R,I,C,T,_,21,s[63]),o[0]=o[0]+T|0,o[1]=o[1]+R|0,o[2]=o[2]+I|0,o[3]=o[3]+C|0},_doFinalize:function(){var e=this._data,i=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;i[n>>>5]|=128<<24-n%32;var o=t.floor(r/4294967296),a=r;i[15+(n+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),i[14+(n+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),e.sigBytes=4*(i.length+1),this._process();for(var s=this._hash,h=s.words,u=0;u<4;u++){var l=h[u];h[u]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return s},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});function u(t,e,i,r,n,o,a){var s=t+(e&i|~e&r)+n+a;return(s<<o|s>>>32-o)+e}function l(t,e,i,r,n,o,a){var s=t+(e&r|i&~r)+n+a;return(s<<o|s>>>32-o)+e}function d(t,e,i,r,n,o,a){var s=t+(e^i^r)+n+a;return(s<<o|s>>>32-o)+e}function f(t,e,i,r,n,o,a){var s=t+(i^(e|~r))+n+a;return(s<<o|s>>>32-o)+e}e.MD5=o._createHelper(h),e.HmacMD5=o._createHmacHelper(h)}(Math),r.MD5)},function(t,e,i){"use strict";var r=function(){function t(){this.listeners={}}var e=t.prototype;return e.on=function(t,e){this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].push(e)},e.off=function(t,e){if(!this.listeners[t])return!1;var i=this.listeners[t].indexOf(e);return this.listeners[t]=this.listeners[t].slice(0),this.listeners[t].splice(i,1),i>-1},e.trigger=function(t){var e=this.listeners[t];if(e)if(2===arguments.length)for(var i=e.length,r=0;r<i;++r)e[r].call(this,arguments[1]);else for(var n=Array.prototype.slice.call(arguments,1),o=e.length,a=0;a<o;++a)e[a].apply(this,n)},e.dispose=function(){this.listeners={}},e.pipe=function(t){this.on("data",(function(e){t.push(e)}))},t}();t.exports=r},function(t,e){var i,r=((i={validateDimension:function(t){if(t<=0||t!==(0|t))throw"YUV plane dimensions must be a positive integer"},validateOffset:function(t){if(t<0||t!==(0|t))throw"YUV plane offsets must be a non-negative integer"},format:function(t){var e=t.width,i=t.height,r=t.chromaWidth||e,n=t.chromaHeight||i,o=t.cropLeft||0,a=t.cropTop||0,s=t.cropWidth||e-o,h=t.cropHeight||i-a,u=t.displayWidth||s,l=t.displayHeight||h;return this.validateDimension(e),this.validateDimension(i),this.validateDimension(r),this.validateDimension(n),this.validateOffset(o),this.validateOffset(a),this.validateDimension(s),this.validateDimension(h),this.validateDimension(u),this.validateDimension(l),{width:e,height:i,chromaWidth:r,chromaHeight:n,cropLeft:o,cropTop:a,cropWidth:s,cropHeight:h,displayWidth:u,displayHeight:l}},allocPlane:function(t,e){return r.validateDimension(t),r.validateDimension(e),{bytes:new Uint8Array(t*e),stride:t}},suitableStride:function(t){r.validateDimension(t);var e=t%4;return 0==e?t:t+(4-e)}}).allocPlane=function(t,e,i,r,n){var o,a;if(this.validateDimension(t),this.validateDimension(e),n=n||0,r=r||this.suitableStride(t),this.validateDimension(r),r<t)throw"Invalid input stride for YUV plane; must be larger than width";if(o=r*e,i){if(i.length-n<o)throw"Invalid input buffer for YUV plane; must be large enough for stride times height";a=i.slice(n,n+o)}else a=new Uint8Array(o),r=r||this.suitableStride(t);return{bytes:a,stride:r}},i.lumaPlane=function(t,e,i,r){return this.allocPlane(t.width,t.height,e,i,r)},i.chromaPlane=function(t,e,i,r){return this.allocPlane(t.chromaWidth,t.chromaHeight,e,i,r)},i.frame=function(t,e,i,r){return{format:t,y:e=e||this.lumaPlane(t),u:i=i||this.chromaPlane(t),v:r=r||this.chromaPlane(t)}},i.copyPlane=function(t){return{bytes:t.bytes.slice(),stride:t.stride}},i.copyFrame=function(t){return{format:t.format,y:this.copyPlane(t.y),u:this.copyPlane(t.u),v:this.copyPlane(t.v)}},i.transferables=function(t){return[t.y.bytes.buffer,t.u.bytes.buffer,t.v.bytes.buffer]},i);t.exports=r},function(t,e,i){"use strict";var r=i(3),n=i(52),o=i(55),a=i(56),s=i(17);function h(t){s.call(this,"digest"),this._hash=t}r(h,s),h.prototype._update=function(t){this._hash.update(t)},h.prototype._final=function(){return this._hash.digest()},t.exports=function(t){return"md5"===(t=t.toLowerCase())?new n:"rmd160"===t||"ripemd160"===t?new o:new h(a(t))}},function(t,e,i){function r(t){return Object.prototype.toString.call(t)}e.isArray=function(t){return Array.isArray?Array.isArray(t):"[object Array]"===r(t)},e.isBoolean=function(t){return"boolean"==typeof t},e.isNull=function(t){return null===t},e.isNullOrUndefined=function(t){return null==t},e.isNumber=function(t){return"number"==typeof t},e.isString=function(t){return"string"==typeof t},e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=function(t){return void 0===t},e.isRegExp=function(t){return"[object RegExp]"===r(t)},e.isObject=function(t){return"object"==typeof t&&null!==t},e.isDate=function(t){return"[object Date]"===r(t)},e.isError=function(t){return"[object Error]"===r(t)||t instanceof Error},e.isFunction=function(t){return"function"==typeof t},e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=i(9).Buffer.isBuffer},function(t,e,i){(function(e){t.exports=function(t,i){for(var r=Math.min(t.length,i.length),n=new e(r),o=0;o<r;++o)n[o]=t[o]^i[o];return n}}).call(this,i(9).Buffer)},function(t,e,i){"use strict";var r=i(15),n=i(13);function o(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}e.BlockHash=o,o.prototype.update=function(t,e){if(t=r.toArray(t,e),this.pending?this.pending=this.pending.concat(t):this.pending=t,this.pendingTotal+=t.length,this.pending.length>=this._delta8){var i=(t=this.pending).length%this._delta8;this.pending=t.slice(t.length-i,t.length),0===this.pending.length&&(this.pending=null),t=r.join32(t,0,t.length-i,this.endian);for(var n=0;n<t.length;n+=this._delta32)this._update(t,n,n+this._delta32)}return this},o.prototype.digest=function(t){return this.update(this._pad()),n(null===this.pending),this._digest(t)},o.prototype._pad=function(){var t=this.pendingTotal,e=this._delta8,i=e-(t+this.padLength)%e,r=new Array(i+this.padLength);r[0]=128;for(var n=1;n<i;n++)r[n]=0;if(t<<=3,"big"===this.endian){for(var o=8;o<this.padLength;o++)r[n++]=0;r[n++]=0,r[n++]=0,r[n++]=0,r[n++]=0,r[n++]=t>>>24&255,r[n++]=t>>>16&255,r[n++]=t>>>8&255,r[n++]=255&t}else for(r[n++]=255&t,r[n++]=t>>>8&255,r[n++]=t>>>16&255,r[n++]=t>>>24&255,r[n++]=0,r[n++]=0,r[n++]=0,r[n++]=0,o=8;o<this.padLength;o++)r[n++]=0;return r}},function(t,e,i){"use strict";var r=i(3),n=i(72).Reporter,o=i(70).Buffer;function a(t,e){n.call(this,e),o.isBuffer(t)?(this.base=t,this.offset=0,this.length=t.length):this.error("Input not Buffer")}function s(t,e){if(Array.isArray(t))this.length=0,this.value=t.map((function(t){return s.isEncoderBuffer(t)||(t=new s(t,e)),this.length+=t.length,t}),this);else if("number"==typeof t){if(!(0<=t&&t<=255))return e.error("non-byte EncoderBuffer value");this.value=t,this.length=1}else if("string"==typeof t)this.value=t,this.length=o.byteLength(t);else{if(!o.isBuffer(t))return e.error("Unsupported type: "+typeof t);this.value=t,this.length=t.length}}r(a,n),e.DecoderBuffer=a,a.isDecoderBuffer=function(t){return t instanceof a||"object"==typeof t&&o.isBuffer(t.base)&&"DecoderBuffer"===t.constructor.name&&"number"==typeof t.offset&&"number"==typeof t.length&&"function"==typeof t.save&&"function"==typeof t.restore&&"function"==typeof t.isEmpty&&"function"==typeof t.readUInt8&&"function"==typeof t.skip&&"function"==typeof t.raw},a.prototype.save=function(){return{offset:this.offset,reporter:n.prototype.save.call(this)}},a.prototype.restore=function(t){var e=new a(this.base);return e.offset=t.offset,e.length=this.offset,this.offset=t.offset,n.prototype.restore.call(this,t.reporter),e},a.prototype.isEmpty=function(){return this.offset===this.length},a.prototype.readUInt8=function(t){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(t||"DecoderBuffer overrun")},a.prototype.skip=function(t,e){if(!(this.offset+t<=this.length))return this.error(e||"DecoderBuffer overrun");var i=new a(this.base);return i._reporterState=this._reporterState,i.offset=this.offset,i.length=this.offset+t,this.offset+=t,i},a.prototype.raw=function(t){return this.base.slice(t?t.offset:this.offset,this.length)},e.EncoderBuffer=s,s.isEncoderBuffer=function(t){return t instanceof s||"object"==typeof t&&"EncoderBuffer"===t.constructor.name&&"number"==typeof t.length&&"function"==typeof t.join},s.prototype.join=function(t,e){return t||(t=o.alloc(this.length)),e||(e=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(i){i.join(t,e),e+=i.length})):("number"==typeof this.value?t[e]=this.value:"string"==typeof this.value?t.write(this.value,e):o.isBuffer(this.value)&&this.value.copy(t,e),e+=this.length)),t}},function(t,e,i){"use strict";var r=function(){function t(){this.stopFlag=!1,this.bufferSourcePtr=null}var e=t.prototype;return e.destroy=function(){this.interval&&clearInterval(this.interval),this.samples=null,this.audioCtx.close(),this.audioCtx=null},e.init=function(t){this.option=Object.assign({},{encoding:"16bitInt",channels:1,sampleRate:8e3,flushingTime:1e3},t),this.samples=new Float32Array,this.flush=this.flush.bind(this),this.interval=setInterval(this.flush,this.option.flushingTime),this.maxValue=this.getMaxValue(),this.typedArray=this.getTypedArray(),this.createContext()},e.getMaxValue=function(){var t={"8bitInt":128,"16bitInt":32768,"32bitInt":2147483648,"32bitFloat":1};return t[this.option.encoding]?t[this.option.encoding]:t["16bitInt"]},e.getTypedArray=function(){var t={"8bitInt":Int8Array,"16bitInt":Int16Array,"32bitInt":Int32Array,"32bitFloat":Float32Array};return t[this.option.encoding]?t[this.option.encoding]:t["16bitInt"]},e.createContext=function(){this.audioCtx=new(window.AudioContext||window.webkitAudioContext),this.gainNode=this.audioCtx.createGain(),this.gainNode.gain.value=1,this.gainNode.connect(this.audioCtx.destination),this.startTime=this.audioCtx.currentTime},e.isTypedArray=function(t){return t.byteLength&&t.buffer&&t.buffer.constructor==ArrayBuffer},e.feed=function(t){if(this.isTypedArray(t)){t=this.getFormatedValue(t);var e=new Float32Array(this.samples.length+t.length);e.set(this.samples,0),e.set(t,this.samples.length),this.samples=e}},e.getFormatedValue=function(t){t=new this.typedArray(t.buffer);var e,i=new Float32Array(t.length);for(e=0;e<t.length;e++)i[e]=t[e]/this.maxValue;return i},e.volume=function(t){this.gainNode.gain.value=t},e.flush=function(){if(null!=this.samples&&this.samples.length){var t,e,i,r,n,o=this.audioCtx.createBufferSource(),a=this.samples.length/this.option.channels,s=this.audioCtx.createBuffer(this.option.channels,a,this.option.sampleRate);for(e=0;e<this.option.channels;e++)for(t=s.getChannelData(e),i=e,n=50,r=0;r<a;r++)t[r]=this.samples[i],r<50&&(t[r]=t[r]*r/50),r>=a-51&&(t[r]=t[r]*n--/50),i+=this.option.channels;this.startTime<this.audioCtx.currentTime&&(this.startTime=this.audioCtx.currentTime),o.buffer=s,o.connect(this.gainNode),o.start(this.startTime),this.startTime+=s.duration,this.samples=new Float32Array}},e.getTimestamp=function(){return this.audioCtx?this.audioCtx.currentTime:0},e.play=function(t){if(null!=this.audioCtx)if("running"===this.audioCtx.state){if(this.isTypedArray(t)&&(t=this.getFormatedValue(t)).length){this.stopFlag=!1;var e,i,r,n,o,a,s=this.audioCtx.createBufferSource(),h=t.length/this.option.channels;try{e=this.audioCtx.createBuffer(this.option.channels,h,this.option.sampleRate)}catch(t){}for(r=0;r<this.option.channels;r++)for(i=e.getChannelData(r),n=r,a=50,o=0;o<h;o++)i[o]=t[n],o<50&&(i[o]=i[o]*o/50),o>=h-51&&(i[o]=i[o]*a--/50),n+=this.option.channels;this.startTime<this.audioCtx.currentTime&&(this.startTime=this.audioCtx.currentTime),s.buffer=e,s.connect(this.gainNode),s.start(this.startTime),this.startTime+=e.duration,this.bufferSourcePtr=s}}else this.audioCtx.resume()},e.clearAudioBuffer=function(){this.stopFlag=!0,this.bufferSourcePtr&&this.bufferSourcePtr.stop(0)},e.pause=function(){null!=this.audioCtx&&"running"===this.audioCtx.state&&this.audioCtx.suspend()},e.resume=function(){null!=this.audioCtx&&"suspended"===this.audioCtx.state&&this.audioCtx.resume()},t}();e.a=r},function(t,e,i){"use strict";i.r(e),function(t,r,n,o){i.d(e,"VSSModule",(function(){return d})),i.d(e,"VSSLoadWasmModule",(function(){return f})),i.d(e,"VSSModuleInitialized",(function(){return c}));var a=i(0),s=!1,h="",u=void 0!==u?u:{};function l(){if(!s){var e,a=function(t){return u.locateFile?u.locateFile(t,Ut):Ut+t},l=function t(e){t.shown||(t.shown={}),t.shown[e]||(t.shown[e]=1,Vt(e))},d=function(t,e){var i=[1,0,1,96],r=e.slice(0,1),n=e.slice(1),o={i:127,j:126,f:125,d:124};i.push(n.length);for(var a=0;a<n.length;++a)i.push(o[n[a]]);"v"==r?i.push(0):i=i.concat([1,o[r]]),i[1]=i.length-2;var s=new Uint8Array([0,97,115,109,1,0,0,0].concat(i,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0])),h=new WebAssembly.Module(s);return new WebAssembly.Instance(h,{e:{f:t}}).exports.f},f=function(t,e){var i=$t,r=i.length;try{i.grow(1)}catch(t){if(!t instanceof RangeError)throw t;throw"Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH."}try{i.set(r,t)}catch(o){if(!o instanceof TypeError)throw o;p(void 0!==e,"Missing signature argument to addFunction");var n=d(t,e);i.set(r,n)}return r},c=function(t,e){return p(void 0!==t),f(t,e)},p=function(t,e){t||j("Assertion failed: "+e)},m=function(t){var e=u["_"+t];return p(e,"Cannot call unknown function "+t+", make sure it is exported"),e},g=function(t,e,i,r,n){var o={string:function(t){var e=0;if(null!=t&&0!==t){var i=1+(t.length<<2);e=er(i),w(t,e,i)}return e},array:function(t){var e=er(t.length);return M(t,e),e}};var a=m(t),s=[],h=0;if(p("array"!==e,'Return type should not be "array".'),r)for(var u=0;u<r.length;u++){var l=o[i[u]];l?(0===h&&(h=tr()),s[u]=l(r[u])):s[u]=r[u]}var d=a.apply(null,s);return d=function(t){return"string"===e?b(t):"boolean"===e?Boolean(t):t}(d),0!==h&&ir(h),d},v=function(t,e,i,r){return function(){return g(t,e,i,arguments,r)}},y=function(t,e,i){for(var r=e+i,n=e;t[n]&&!(n>=r);)++n;if(n-e>16&&t.subarray&&ee)return ee.decode(t.subarray(e,n));for(var o="";e<n;){var a=t[e++];if(128&a){var s=63&t[e++];if(192!=(224&a)){var h=63&t[e++];if(224==(240&a)?a=(15&a)<<12|s<<6|h:(240!=(248&a)&&l("Invalid UTF-8 leading byte 0x"+a.toString(16)+" encountered when deserializing a UTF-8 string on the asm.js/wasm heap to a JS string!"),a=(7&a)<<18|s<<12|h<<6|63&t[e++]),a<65536)o+=String.fromCharCode(a);else{var u=a-65536;o+=String.fromCharCode(55296|u>>10,56320|1023&u)}}else o+=String.fromCharCode((31&a)<<6|s)}else o+=String.fromCharCode(a)}return o},b=function(t,e){return t?y(Kt,t,e):""},_=function(t,e,i,r){if(!(r>0))return 0;for(var n=i,o=i+r-1,a=0;a<t.length;++a){var s=t.charCodeAt(a);if(s>=55296&&s<=57343)s=65536+((1023&s)<<10)|1023&t.charCodeAt(++a);if(s<=127){if(i>=o)break;e[i++]=s}else if(s<=2047){if(i+1>=o)break;e[i++]=192|s>>6,e[i++]=128|63&s}else if(s<=65535){if(i+2>=o)break;e[i++]=224|s>>12,e[i++]=128|s>>6&63,e[i++]=128|63&s}else{if(i+3>=o)break;s>=2097152&&l("Invalid Unicode code point 0x"+s.toString(16)+" encountered when serializing a JS string to an UTF-8 string on the asm.js/wasm heap! (Valid unicode code points should be in range 0-0x1FFFFF)."),e[i++]=240|s>>18,e[i++]=128|s>>12&63,e[i++]=128|s>>6&63,e[i++]=128|63&s}}return e[i]=0,i-n},w=function(t,e,i){return p("number"==typeof i,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),_(t,Kt,e,i)},A=function(t){for(var e=0,i=0;i<t.length;++i){var r=t.charCodeAt(i);r>=55296&&r<=57343&&(r=65536+((1023&r)<<10)|1023&t.charCodeAt(++i)),r<=127?++e:e+=r<=2047?2:r<=65535?3:4}return e},M=function(t,e){p(t.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),Zt.set(t,e)},E=function(t,e,i){for(var r=0;r<t.length;++r)p(t.charCodeAt(r)==t.charCodeAt(r)&255),Zt[e++>>0]=t.charCodeAt(r);i||(Zt[e>>0]=0)},S=function(t,e){return t%e>0&&(t+=e-t%e),t},k=function(t){Xt=t,u.HEAP8=Zt=new Int8Array(t),u.HEAP16=Qt=new Int16Array(t),u.HEAP32=Yt=new Int32Array(t),u.HEAPU8=Kt=new Uint8Array(t),u.HEAPU16=new Uint16Array(t),u.HEAPU32=Jt=new Uint32Array(t),u.HEAPF32=new Float32Array(t),u.HEAPF64=new Float64Array(t)},T=function(){p(0==(3&ne)),Jt[1+(ne>>2)]=34821223,Jt[2+(ne>>2)]=2310721022,Yt[0]=1668509029},R=function(){var t=Jt[1+(ne>>2)],e=Jt[2+(ne>>2)];34821223==t&&2310721022==e||j("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x"+e.toString(16)+" "+t.toString(16)),1668509029!==Yt[0]&&j("Runtime error: The application has corrupted its heap memory area (address zero)!")},I=function(t){j("Stack overflow! Attempted to allocate "+t+" bytes on the stack, but stack has only "+(ne-tr()+t)+" bytes available!")},C=function(t){for(;t.length>0;){var e=t.shift();if("function"!=typeof e){var i=e.func;"number"==typeof i?void 0===e.arg?u.dynCall_v(i):u.dynCall_vi(i,e.arg):i(void 0===e.arg?null:e.arg)}else e()}},P=function(){if(u.preRun)for("function"==typeof u.preRun&&(u.preRun=[u.preRun]);u.preRun.length;)L(u.preRun.shift());C(ue)},x=function(){R(),p(!ce),ce=!0,u.noFSInit||Oe.init.initialized||Oe.init(),Ce.init(),C(le)},D=function(){R(),Oe.ignorePermissions=!1,C(de)},O=function(){R(),pe=!0},B=function(){if(R(),u.postRun)for("function"==typeof u.postRun&&(u.postRun=[u.postRun]);u.postRun.length;)W(u.postRun.shift());C(fe)},L=function(t){ue.unshift(t)},W=function(t){fe.unshift(t)},N=function(t){for(var e=t;;){if(!Ae[t])return t;t=e+Math.random()}return t},F=function(t){be++,u.monitorRunDependencies&&u.monitorRunDependencies(be),t?(p(!Ae[t]),Ae[t]=1,null===_e&&"undefined"!=typeof setInterval&&(_e=setInterval((function(){if(te)return clearInterval(_e),void(_e=null);var t=!1;for(var e in Ae)t||(t=!0,Vt("still waiting on run dependencies:")),Vt("dependency: "+e);t&&Vt("(end of list)")}),1e4))):Vt("warning: run dependency added without ID")},U=function(t){if(be--,u.monitorRunDependencies&&u.monitorRunDependencies(be),t?(p(Ae[t]),delete Ae[t]):Vt("warning: run dependency removed without ID"),0==be&&(null!==_e&&(clearInterval(_e),_e=null),we)){var e=we;we=null,e()}},j=function(t){throw u.onAbort&&u.onAbort(t),jt(t+=""),Vt(t),te=!0,1,t="abort("+t+") at "+K(),new WebAssembly.RuntimeError(t)},V=function(t){return String.prototype.startsWith?t.startsWith(Se):0===t.indexOf(Se)},H=function(){try{if(Ht)return new Uint8Array(Ht);if(Wt)return Wt(ke);throw"both async and sync fetching of the wasm failed"}catch(t){j(t)}},z=function(){return Ht||!Pt&&!xt||"function"!=typeof fetch?new Promise((function(t,e){t(H())})):fetch(ke,{credentials:"same-origin"}).then((function(t){if(!t.ok)throw"failed to load wasm binary file at '"+ke+"'";return t.arrayBuffer()})).catch((function(){return H()}))},G=function(){var t={env:We,wasi_unstable:We};function e(t,e){var i=t.exports;u.asm=i,U("wasm-instantiate")}F("wasm-instantiate");var i=u;function r(t){p(u===i,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),i=null,e(t.instance)}function n(e){return z().then((function(e){return WebAssembly.instantiate(e,t)})).then(e,(function(t){Vt("failed to asynchronously prepare wasm: "+t),j(t)}))}if(u.instantiateWasm)try{return u.instantiateWasm(t,e)}catch(t){return Vt("Module.instantiateWasm callback failed with error: "+t),!1}return function(){if(Ht||"function"!=typeof WebAssembly.instantiateStreaming||V(ke)||"function"!=typeof fetch)return n(r);fetch(ke,{credentials:"same-origin"}).then((function(e){return WebAssembly.instantiateStreaming(e,t).then(r,(function(t){Vt("wasm streaming compile failed: "+t),Vt("falling back to ArrayBuffer instantiation"),n(r)}))}))}(),{}},q=function(t){return l("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t},X=function(t){return t.replace(/\b_Z[\w\d_]+/g,(function(t){var e=q(t);return t===e?t:e+" ["+t+"]"}))},Z=function(){var t=new Error;if(!t.stack){try{throw new Error(0)}catch(e){t=e}if(!t.stack)return"(no stack trace available)"}return t.stack.toString()},K=function(){var t=Z();return u.extraStackTrace&&(t+="\n"+u.extraStackTrace()),X(t)},Q=function(t){return Ji(t)},Y=function(t,e,i){throw Te[t]={ptr:t,adjusted:[t],type:e,destructor:i,refcount:0,caught:!1,rethrown:!1},t,"uncaught_exception"in $i?$i.uncaught_exceptions++:$i.uncaught_exceptions=1,t+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."},J=function(){},$=function(t){return u.___errno_location?Yt[u.___errno_location()>>2]=t:Vt("failed to set errno from JS"),t},tt=function(t,e){Be.varargs=e;try{var i=Be.getStreamFromFD();switch(Be.get()){case 0:return(r=Be.get())<0?-28:Oe.open(i.path,i.flags,0,r).fd;case 1:case 2:case 13:case 14:return 0;case 3:return i.flags;case 4:var r=Be.get();return i.flags|=r,0;case 12:r=Be.get();return Qt[r+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return $(28),-1}}catch(t){return void 0!==Oe&&t instanceof Oe.ErrnoError||j(t),-t.errno}},et=function(t,e){Be.varargs=e;try{var i=Be.getStreamFromFD(),r=Be.get(),n=Be.get();return Oe.read(i,Zt,r,n)}catch(t){return void 0!==Oe&&t instanceof Oe.ErrnoError||j(t),-t.errno}},it=function(t,e){Be.varargs=e;try{var i=Be.getStr(),r=Be.get(),n=Be.get();return Oe.open(i,r,n).fd}catch(t){return void 0!==Oe&&t instanceof Oe.ErrnoError||j(t),-t.errno}},rt=function(){},nt=function(){j()},ot=function t(){return void 0===t.start&&(t.start=Date.now()),1e3*(Date.now()-t.start)|0},at=function(){return Zt.length},st=function(t,e,i){Kt.set(Kt.subarray(e,e+i),t)},ht=function(t){try{return Gt.grow(t-Xt.byteLength+65535>>16),k(Gt.buffer),1}catch(t){}},ut=function(t){var e=at();p(t>e);var i=65536,r=2147418112;if(t>r)return Vt("Cannot enlarge memory, asked to go up to "+t+" bytes, but the limit is "+r+" bytes!"),!1;for(var n=Math.max(e,16777216);n<t;)(n=n<=536870912?S(2*n,i):Math.min(S((3*n+2147483648)/4,i),r))===e&&l("Cannot ask for more memory since we reached the practical limit in browsers (which is just below 2GB), so the request would have failed. Requesting only "+Zt.length);return!!ht(n)||(Vt("Failed to grow the heap from "+e+" bytes to "+n+" bytes, not enough memory!"),!1)},lt=function t(){if(!t.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:It};for(var i in Le)e[i]=Le[i];var r=[];for(var i in e)r.push(i+"="+e[i]);t.strings=r}return t.strings},dt=function(t,e){var i=lt(),r=0;return i.forEach((function(i,n){var o=e+r;Yt[t+4*n>>2]=o,E(i,o),r+=i.length+1})),0},ft=function(t,e){var i=lt();Yt[t>>2]=i.length;var r=0;return i.forEach((function(t){r+=t.length+1})),Yt[e>>2]=r,0},ct=function(t){try{var e=Be.getStreamFromFD(t);return Oe.close(e),0}catch(t){return void 0!==Oe&&t instanceof Oe.ErrnoError||j(t),t.errno}},pt=function(t,e){try{var i=Be.getStreamFromFD(t),r=i.tty?2:Oe.isDir(i.mode)?3:Oe.isLink(i.mode)?7:4;return Zt[e>>0]=r,0}catch(t){return void 0!==Oe&&t instanceof Oe.ErrnoError||j(t),t.errno}},mt=function(t,e,i,r,n){try{var o=Be.getStreamFromFD(t),a=4294967296*i+(e>>>0),s=9007199254740992;return a<=-s||a>=s?-61:(Oe.llseek(o,a,r),Ee=[o.position>>>0,(Me=o.position,+me(Me)>=1?Me>0?(0|ye(+ve(Me/4294967296),4294967295))>>>0:~~+ge((Me-+(~~Me>>>0))/4294967296)>>>0:0)],Yt[n>>2]=Ee[0],Yt[n+4>>2]=Ee[1],o.getdents&&0===a&&0===r&&(o.getdents=null),0)}catch(t){return void 0!==Oe&&t instanceof Oe.ErrnoError||j(t),t.errno}},gt=function(t,e,i,r){try{var n=Be.getStreamFromFD(t),o=Be.doWritev(n,e,i);return Yt[r>>2]=o,0}catch(t){return void 0!==Oe&&t instanceof Oe.ErrnoError||j(t),t.errno}},vt=function(t){var e=Date.now();return Yt[t>>2]=e/1e3|0,Yt[t+4>>2]=e%1e3*1e3|0,0},yt=function(t){return(t=+t)>=0?+ve(t+.5):+ge(t-.5)},bt=function(t){qt(0|t)},_t=function(t){var e=Date.now()/1e3|0;return t&&(Yt[t>>2]=e),e},wt=function(t,e,i){var r=i>0?i:A(t)+1,n=new Array(r),o=_(t,n,0,n.length);return e&&(n.length=o),n},At=function(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t},Mt=function(t){p(0==be,'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])'),p(0==ue.length,"cannot call main when preRun functions remain to be called");var e=u._main;try{var i=e(0,0);kt(i,!0)}catch(t){if(t instanceof At)return;if("SimulateInfiniteLoop"==t)return void(zt=!0);var r=t;t&&"object"==typeof t&&t.stack&&(r=[t,t.stack]),Vt("exception thrown: "+r),Ct(1,t)}finally{!0}},Et=function(t){function e(){Qi||(Qi=!0,te||(x(),D(),u.onRuntimeInitialized&&u.onRuntimeInitialized(),rr&&Mt(t),B()))}t=t||Rt,be>0||(T(),P(),be>0||(u.setStatus?(u.setStatus("Running..."),setTimeout((function(){setTimeout((function(){u.setStatus("")}),1),e()}),1)):e(),R()))},St=function(){var t=jt,e=Vt,i=!1;jt=Vt=function(t){i=!0};try{var r=u._fflush;r&&r(0),["stdout","stderr"].forEach((function(t){var e=Oe.analyzePath("/dev/"+t);if(e){var r=e.object.rdev,n=Ce.ttys[r];n&&n.output&&n.output.length&&(i=!0)}}))}catch(t){}jt=t,Vt=e,i&&l("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.")},kt=function(t,e){St(),e&&zt&&0===t||(zt?e||Vt("program exited (with status: "+t+"), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)"):(te=!0,t,O(),u.onExit&&u.onExit(t)),Ct(t,new At(t)))},Tt={};for(e in u)u.hasOwnProperty(e)&&(Tt[e]=u[e]);var Rt=[],It="./this.program",Ct=function(t,e){throw e},Pt=!1,xt=!1,Dt=!1,Ot=!1,Bt=!1;if(Pt="object"==typeof window,xt="function"==typeof importScripts,Ot="object"==typeof t&&"object"==typeof t.versions&&"string"==typeof t.versions.node,Dt=Ot&&!Pt&&!xt,Bt=!Pt&&!Dt&&!xt,u.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)");var Lt,Wt,Nt,Ft,Ut="";if(Dt)Ut=r+"/",Lt=function(t,e){var r;return Nt||(Nt=i(146)),Ft||(Ft=i(147)),t=Ft.normalize(t),r=Nt.readFileSync(t),e?r:r.toString()},Wt=function(t){var e=Lt(t,!0);return e.buffer||(e=new Uint8Array(e)),p(e.buffer),e},t.argv.length>1&&(It=t.argv[1].replace(/\\/g,"/")),Rt=t.argv.slice(2),n.exports=u,t.on("uncaughtException",(function(t){if(!(t instanceof At))throw t})),t.on("unhandledRejection",j),Ct=function(e){t.exit(e)},u.inspect=function(){return"[Emscripten Module object]"};else if(Bt)"undefined"!=typeof read&&(Lt=function(t){return read(t)}),Wt=function(t){var e;return"function"==typeof readbuffer?new Uint8Array(readbuffer(t)):(e=read(t,"binary"),p("object"==typeof e),e)},"undefined"!=typeof scriptArgs?Rt=scriptArgs:void 0!==arguments&&(Rt=arguments),"function"==typeof quit&&(Ct=function(t){quit(t)}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print);else{if(!Pt&&!xt)throw new Error("environment detection error");xt?Ut=self.location.href:document.currentScript&&(Ut=document.currentScript.src),Ut=0!==Ut.indexOf("blob:")?Ut.substr(0,Ut.lastIndexOf("/")+1):"",Lt=function(t){var e=new XMLHttpRequest;return e.open("GET",t,!1),e.send(null),e.responseText},xt&&(Wt=function(t){var e=new XMLHttpRequest;return e.open("GET",t,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),function(t,e,i){var r=new XMLHttpRequest;r.open("GET",t,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?e(r.response):i()},r.onerror=i,r.send(null)},function(t){document.title=t}}var jt=u.print||void 0,Vt=u.printErr||void 0;for(e in Tt)Tt.hasOwnProperty(e)&&(u[e]=Tt[e]);Tt=null,u.arguments&&(Rt=u.arguments),Object.getOwnPropertyDescriptor(u,"arguments")||Object.defineProperty(u,"arguments",{configurable:!0,get:function(){j("Module.arguments has been replaced with plain arguments_")}}),u.thisProgram&&(It=u.thisProgram),Object.getOwnPropertyDescriptor(u,"thisProgram")||Object.defineProperty(u,"thisProgram",{configurable:!0,get:function(){j("Module.thisProgram has been replaced with plain thisProgram")}}),u.quit&&(Ct=u.quit),Object.getOwnPropertyDescriptor(u,"quit")||Object.defineProperty(u,"quit",{configurable:!0,get:function(){j("Module.quit has been replaced with plain quit_")}}),p(void 0===u.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),p(void 0===u.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),p(void 0===u.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),p(void 0===u.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),p(void 0===u.read,"Module.read option was removed (modify read_ in JS)"),p(void 0===u.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),p(void 0===u.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),p(void 0===u.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),Object.getOwnPropertyDescriptor(u,"read")||Object.defineProperty(u,"read",{configurable:!0,get:function(){j("Module.read has been replaced with plain read_")}}),Object.getOwnPropertyDescriptor(u,"readAsync")||Object.defineProperty(u,"readAsync",{configurable:!0,get:function(){j("Module.readAsync has been replaced with plain readAsync")}}),Object.getOwnPropertyDescriptor(u,"readBinary")||Object.defineProperty(u,"readBinary",{configurable:!0,get:function(){j("Module.readBinary has been replaced with plain readBinary")}}),tr=ir=er=function(){j("cannot use the stack before compiled code is ready to run, and has provided stack access")};var Ht,zt,Gt,qt=function(t){t};u.wasmBinary&&(Ht=u.wasmBinary),Object.getOwnPropertyDescriptor(u,"wasmBinary")||Object.defineProperty(u,"wasmBinary",{configurable:!0,get:function(){j("Module.wasmBinary has been replaced with plain wasmBinary")}}),u.noExitRuntime&&(zt=u.noExitRuntime),Object.getOwnPropertyDescriptor(u,"noExitRuntime")||Object.defineProperty(u,"noExitRuntime",{configurable:!0,get:function(){j("Module.noExitRuntime has been replaced with plain noExitRuntime")}}),"object"!=typeof WebAssembly&&j("No WebAssembly support found. Build with -s WASM=0 to target JavaScript instead.");var Xt,Zt,Kt,Qt,Yt,Jt,$t=new WebAssembly.Table({initial:2542,maximum:2552,element:"anyfunc"}),te=!1,ee="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,ie=("undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le"),65536),re=6583696,ne=1340816,oe=6583696,ae=1340656;p(re%16==0,"stack must start aligned"),p(oe%16==0,"heap must start aligned");var se=5242880;u.TOTAL_STACK&&p(se===u.TOTAL_STACK,"the stack size can no longer be determined at runtime");var he=u.TOTAL_MEMORY||67108864;Object.getOwnPropertyDescriptor(u,"TOTAL_MEMORY")||Object.defineProperty(u,"TOTAL_MEMORY",{configurable:!0,get:function(){j("Module.TOTAL_MEMORY has been replaced with plain INITIAL_TOTAL_MEMORY")}}),p(he>=se,"TOTAL_MEMORY should be larger than TOTAL_STACK, was "+he+"! (TOTAL_STACK="+se+")"),p("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&void 0!==Int32Array.prototype.subarray&&void 0!==Int32Array.prototype.set,"JS engine does not provide full typed array support"),(Gt=u.wasmMemory?u.wasmMemory:new WebAssembly.Memory({initial:he/ie}))&&(Xt=Gt.buffer),he=Xt.byteLength,p(he%ie==0),k(Xt),Yt[ae>>2]=oe,function(){var t=new Int16Array(1),e=new Int8Array(t.buffer);if(t[0]=25459,115!==e[0]||99!==e[1])throw"Runtime error: expected the system to be little-endian!"}();var ue=[],le=[],de=[],fe=[],ce=!1,pe=!1;p(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),p(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),p(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),p(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var me=Math.abs,ge=Math.ceil,ve=Math.floor,ye=Math.min,be=0,_e=null,we=null,Ae={};u.preloadedImages={},u.preloadedAudios={};var Me,Ee,Se="data:application/octet-stream;base64,",ke=h+"libVSS.wasm";V(ke)||(ke=a(ke)),le.push({func:function(){Yi()}});var Te={},Re={splitPath:function(t){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(t).slice(1)},normalizeArray:function(t,e){for(var i=0,r=t.length-1;r>=0;r--){var n=t[r];"."===n?t.splice(r,1):".."===n?(t.splice(r,1),i++):i&&(t.splice(r,1),i--)}if(e)for(;i;i--)t.unshift("..");return t},normalize:function(t){var e="/"===t.charAt(0),i="/"===t.substr(-1);return(t=Re.normalizeArray(t.split("/").filter((function(t){return!!t})),!e).join("/"))||e||(t="."),t&&i&&(t+="/"),(e?"/":"")+t},dirname:function(t){var e=Re.splitPath(t),i=e[0],r=e[1];return i||r?(r&&(r=r.substr(0,r.length-1)),i+r):"."},basename:function(t){if("/"===t)return"/";var e=t.lastIndexOf("/");return-1===e?t:t.substr(e+1)},extname:function(t){return Re.splitPath(t)[3]},join:function(){var t=Array.prototype.slice.call(arguments,0);return Re.normalize(t.join("/"))},join2:function(t,e){return Re.normalize(t+"/"+e)}},Ie={resolve:function(){for(var t="",e=!1,i=arguments.length-1;i>=-1&&!e;i--){var r=i>=0?arguments[i]:Oe.cwd();if("string"!=typeof r)throw new TypeError("Arguments to path.resolve must be strings");if(!r)return"";t=r+"/"+t,e="/"===r.charAt(0)}return(e?"/":"")+(t=Re.normalizeArray(t.split("/").filter((function(t){return!!t})),!e).join("/"))||"."},relative:function(t,e){function i(t){for(var e=0;e<t.length&&""===t[e];e++);for(var i=t.length-1;i>=0&&""===t[i];i--);return e>i?[]:t.slice(e,i-e+1)}t=Ie.resolve(t).substr(1),e=Ie.resolve(e).substr(1);for(var r=i(t.split("/")),n=i(e.split("/")),o=Math.min(r.length,n.length),a=o,s=0;s<o;s++)if(r[s]!==n[s]){a=s;break}var h=[];for(s=a;s<r.length;s++)h.push("..");return(h=h.concat(n.slice(a))).join("/")}},Ce={ttys:[],init:function(){},shutdown:function(){},register:function(t,e){Ce.ttys[t]={input:[],output:[],ops:e},Oe.registerDevice(t,Ce.stream_ops)},stream_ops:{open:function(t){var e=Ce.ttys[t.node.rdev];if(!e)throw new Oe.ErrnoError(43);t.tty=e,t.seekable=!1},close:function(t){t.tty.ops.flush(t.tty)},flush:function(t){t.tty.ops.flush(t.tty)},read:function(t,e,i,r,n){if(!t.tty||!t.tty.ops.get_char)throw new Oe.ErrnoError(60);for(var o=0,a=0;a<r;a++){var s;try{s=t.tty.ops.get_char(t.tty)}catch(t){throw new Oe.ErrnoError(29)}if(void 0===s&&0===o)throw new Oe.ErrnoError(6);if(null==s)break;o++,e[i+a]=s}return o&&(t.node.timestamp=Date.now()),o},write:function(t,e,i,r,n){if(!t.tty||!t.tty.ops.put_char)throw new Oe.ErrnoError(60);try{for(var o=0;o<r;o++)t.tty.ops.put_char(t.tty,e[i+o])}catch(t){throw new Oe.ErrnoError(29)}return r&&(t.node.timestamp=Date.now()),o}},default_tty_ops:{get_char:function(e){if(!e.input.length){var i=null;if(Dt){var r=o.alloc?o.alloc(256):new o(256),n=0;try{n=Nt.readSync(t.stdin.fd,r,0,256,null)}catch(t){if(-1==t.toString().indexOf("EOF"))throw t;n=0}i=n>0?r.slice(0,n).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(i=window.prompt("Input: "))&&(i+="\n"):"function"==typeof readline&&null!==(i=readline())&&(i+="\n");if(!i)return null;e.input=wt(i,!0)}return e.input.shift()},put_char:function(t,e){null===e||10===e?(jt(y(t.output,0)),t.output=[]):0!=e&&t.output.push(e)},flush:function(t){t.output&&t.output.length>0&&(jt(y(t.output,0)),t.output=[])}},default_tty1_ops:{put_char:function(t,e){null===e||10===e?(Vt(y(t.output,0)),t.output=[]):0!=e&&t.output.push(e)},flush:function(t){t.output&&t.output.length>0&&(Vt(y(t.output,0)),t.output=[])}}},Pe={ops_table:null,mount:function(t){return Pe.createNode(null,"/",16895,0)},createNode:function(t,e,i,r){if(Oe.isBlkdev(i)||Oe.isFIFO(i))throw new Oe.ErrnoError(63);Pe.ops_table||(Pe.ops_table={dir:{node:{getattr:Pe.node_ops.getattr,setattr:Pe.node_ops.setattr,lookup:Pe.node_ops.lookup,mknod:Pe.node_ops.mknod,rename:Pe.node_ops.rename,unlink:Pe.node_ops.unlink,rmdir:Pe.node_ops.rmdir,readdir:Pe.node_ops.readdir,symlink:Pe.node_ops.symlink},stream:{llseek:Pe.stream_ops.llseek}},file:{node:{getattr:Pe.node_ops.getattr,setattr:Pe.node_ops.setattr},stream:{llseek:Pe.stream_ops.llseek,read:Pe.stream_ops.read,write:Pe.stream_ops.write,allocate:Pe.stream_ops.allocate,mmap:Pe.stream_ops.mmap,msync:Pe.stream_ops.msync}},link:{node:{getattr:Pe.node_ops.getattr,setattr:Pe.node_ops.setattr,readlink:Pe.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Pe.node_ops.getattr,setattr:Pe.node_ops.setattr},stream:Oe.chrdev_stream_ops}});var n=Oe.createNode(t,e,i,r);return Oe.isDir(n.mode)?(n.node_ops=Pe.ops_table.dir.node,n.stream_ops=Pe.ops_table.dir.stream,n.contents={}):Oe.isFile(n.mode)?(n.node_ops=Pe.ops_table.file.node,n.stream_ops=Pe.ops_table.file.stream,n.usedBytes=0,n.contents=null):Oe.isLink(n.mode)?(n.node_ops=Pe.ops_table.link.node,n.stream_ops=Pe.ops_table.link.stream):Oe.isChrdev(n.mode)&&(n.node_ops=Pe.ops_table.chrdev.node,n.stream_ops=Pe.ops_table.chrdev.stream),n.timestamp=Date.now(),t&&(t.contents[e]=n),n},getFileDataAsRegularArray:function(t){if(t.contents&&t.contents.subarray){for(var e=[],i=0;i<t.usedBytes;++i)e.push(t.contents[i]);return e}return t.contents},getFileDataAsTypedArray:function(t){return t.contents?t.contents.subarray?t.contents.subarray(0,t.usedBytes):new Uint8Array(t.contents):new Uint8Array},expandFileStorage:function(t,e){var i=t.contents?t.contents.length:0;if(!(i>=e)){e=Math.max(e,i*(i<1048576?2:1.125)|0),0!=i&&(e=Math.max(e,256));var r=t.contents;t.contents=new Uint8Array(e),t.usedBytes>0&&t.contents.set(r.subarray(0,t.usedBytes),0)}},resizeFileStorage:function(t,e){if(t.usedBytes!=e){if(0==e)return t.contents=null,void(t.usedBytes=0);if(!t.contents||t.contents.subarray){var i=t.contents;return t.contents=new Uint8Array(new ArrayBuffer(e)),i&&t.contents.set(i.subarray(0,Math.min(e,t.usedBytes))),void(t.usedBytes=e)}if(t.contents||(t.contents=[]),t.contents.length>e)t.contents.length=e;else for(;t.contents.length<e;)t.contents.push(0);t.usedBytes=e}},node_ops:{getattr:function(t){var e={};return e.dev=Oe.isChrdev(t.mode)?t.id:1,e.ino=t.id,e.mode=t.mode,e.nlink=1,e.uid=0,e.gid=0,e.rdev=t.rdev,Oe.isDir(t.mode)?e.size=4096:Oe.isFile(t.mode)?e.size=t.usedBytes:Oe.isLink(t.mode)?e.size=t.link.length:e.size=0,e.atime=new Date(t.timestamp),e.mtime=new Date(t.timestamp),e.ctime=new Date(t.timestamp),e.blksize=4096,e.blocks=Math.ceil(e.size/e.blksize),e},setattr:function(t,e){void 0!==e.mode&&(t.mode=e.mode),void 0!==e.timestamp&&(t.timestamp=e.timestamp),void 0!==e.size&&Pe.resizeFileStorage(t,e.size)},lookup:function(t,e){throw Oe.genericErrors[44]},mknod:function(t,e,i,r){return Pe.createNode(t,e,i,r)},rename:function(t,e,i){if(Oe.isDir(t.mode)){var r;try{r=Oe.lookupNode(e,i)}catch(t){}if(r)for(var n in r.contents)throw new Oe.ErrnoError(55)}delete t.parent.contents[t.name],t.name=i,e.contents[i]=t,t.parent=e},unlink:function(t,e){delete t.contents[e]},rmdir:function(t,e){var i=Oe.lookupNode(t,e);for(var r in i.contents)throw new Oe.ErrnoError(55);delete t.contents[e]},readdir:function(t){var e=[".",".."];for(var i in t.contents)t.contents.hasOwnProperty(i)&&e.push(i);return e},symlink:function(t,e,i){var r=Pe.createNode(t,e,41471,0);return r.link=i,r},readlink:function(t){if(!Oe.isLink(t.mode))throw new Oe.ErrnoError(28);return t.link}},stream_ops:{read:function(t,e,i,r,n){var o=t.node.contents;if(n>=t.node.usedBytes)return 0;var a=Math.min(t.node.usedBytes-n,r);if(p(a>=0),a>8&&o.subarray)e.set(o.subarray(n,n+a),i);else for(var s=0;s<a;s++)e[i+s]=o[n+s];return a},write:function(t,e,i,r,n,o){if(o&&l("file packager has copied file data into memory, but in memory growth we are forced to copy it again (see --no-heap-copy)"),o=!1,!r)return 0;var a=t.node;if(a.timestamp=Date.now(),e.subarray&&(!a.contents||a.contents.subarray)){if(o)return p(0===n,"canOwn must imply no weird position inside the file"),a.contents=e.subarray(i,i+r),a.usedBytes=r,r;if(0===a.usedBytes&&0===n)return a.contents=new Uint8Array(e.subarray(i,i+r)),a.usedBytes=r,r;if(n+r<=a.usedBytes)return a.contents.set(e.subarray(i,i+r),n),r}if(Pe.expandFileStorage(a,n+r),a.contents.subarray&&e.subarray)a.contents.set(e.subarray(i,i+r),n);else for(var s=0;s<r;s++)a.contents[n+s]=e[i+s];return a.usedBytes=Math.max(a.usedBytes,n+r),r},llseek:function(t,e,i){var r=e;if(1===i?r+=t.position:2===i&&Oe.isFile(t.node.mode)&&(r+=t.node.usedBytes),r<0)throw new Oe.ErrnoError(28);return r},allocate:function(t,e,i){Pe.expandFileStorage(t.node,e+i),t.node.usedBytes=Math.max(t.node.usedBytes,e+i)},mmap:function(t,e,i,r,n,o,a){if(!Oe.isFile(t.node.mode))throw new Oe.ErrnoError(43);var s,h,u=t.node.contents;if(2&a||u.buffer!==e&&u.buffer!==e.buffer){(n>0||n+r<t.node.usedBytes)&&(u=u.subarray?u.subarray(n,n+r):Array.prototype.slice.call(u,n,n+r)),h=!0;var l=e.buffer==Zt.buffer;if(!(s=Ji(r)))throw new Oe.ErrnoError(48);(l?Zt:e).set(u,s)}else h=!1,s=u.byteOffset;return{ptr:s,allocated:h}},msync:function(t,e,i,r,n){if(!Oe.isFile(t.node.mode))throw new Oe.ErrnoError(43);if(2&n)return 0;Pe.stream_ops.write(t,e,0,r,i,!1);return 0}}},xe={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"},De={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},Oe={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(t){if(!(t instanceof Oe.ErrnoError))throw t+" : "+K();return $(t.errno)},lookupPath:function(t,e){if(e=e||{},!(t=Ie.resolve(Oe.cwd(),t)))return{path:"",node:null};var i={follow_mount:!0,recurse_count:0};for(var r in i)void 0===e[r]&&(e[r]=i[r]);if(e.recurse_count>8)throw new Oe.ErrnoError(32);for(var n=Re.normalizeArray(t.split("/").filter((function(t){return!!t})),!1),o=Oe.root,a="/",s=0;s<n.length;s++){var h=s===n.length-1;if(h&&e.parent)break;if(o=Oe.lookupNode(o,n[s]),a=Re.join2(a,n[s]),Oe.isMountpoint(o)&&(!h||h&&e.follow_mount)&&(o=o.mounted.root),!h||e.follow)for(var u=0;Oe.isLink(o.mode);){var l=Oe.readlink(a);if(a=Ie.resolve(Re.dirname(a),l),o=Oe.lookupPath(a,{recurse_count:e.recurse_count}).node,u++>40)throw new Oe.ErrnoError(32)}}return{path:a,node:o}},getPath:function(t){for(var e;;){if(Oe.isRoot(t)){var i=t.mount.mountpoint;return e?"/"!==i[i.length-1]?i+"/"+e:i+e:i}e=e?t.name+"/"+e:t.name,t=t.parent}},hashName:function(t,e){for(var i=0,r=0;r<e.length;r++)i=(i<<5)-i+e.charCodeAt(r)|0;return(t+i>>>0)%Oe.nameTable.length},hashAddNode:function(t){var e=Oe.hashName(t.parent.id,t.name);t.name_next=Oe.nameTable[e],Oe.nameTable[e]=t},hashRemoveNode:function(t){var e=Oe.hashName(t.parent.id,t.name);if(Oe.nameTable[e]===t)Oe.nameTable[e]=t.name_next;else for(var i=Oe.nameTable[e];i;){if(i.name_next===t){i.name_next=t.name_next;break}i=i.name_next}},lookupNode:function(t,e){var i=Oe.mayLookup(t);if(i)throw new Oe.ErrnoError(i,t);for(var r=Oe.hashName(t.id,e),n=Oe.nameTable[r];n;n=n.name_next){var o=n.name;if(n.parent.id===t.id&&o===e)return n}return Oe.lookup(t,e)},createNode:function(t,e,i,r){if(!Oe.FSNode){Oe.FSNode=function(t,e,i,r){t||(t=this),this.parent=t,this.mount=t.mount,this.mounted=null,this.id=Oe.nextInode++,this.name=e,this.mode=i,this.node_ops={},this.stream_ops={},this.rdev=r},Oe.FSNode.prototype={};var n=365,o=146;Object.defineProperties(Oe.FSNode.prototype,{read:{get:function(){return(this.mode&n)===n},set:function(t){t?this.mode|=n:this.mode&=-366}},write:{get:function(){return(this.mode&o)===o},set:function(t){t?this.mode|=o:this.mode&=-147}},isFolder:{get:function(){return Oe.isDir(this.mode)}},isDevice:{get:function(){return Oe.isChrdev(this.mode)}}})}var a=new Oe.FSNode(t,e,i,r);return Oe.hashAddNode(a),a},destroyNode:function(t){Oe.hashRemoveNode(t)},isRoot:function(t){return t===t.parent},isMountpoint:function(t){return!!t.mounted},isFile:function(t){return 32768==(61440&t)},isDir:function(t){return 16384==(61440&t)},isLink:function(t){return 40960==(61440&t)},isChrdev:function(t){return 8192==(61440&t)},isBlkdev:function(t){return 24576==(61440&t)},isFIFO:function(t){return 4096==(61440&t)},isSocket:function(t){return 49152==(49152&t)},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(t){var e=Oe.flagModes[t];if(void 0===e)throw new Error("Unknown file open mode: "+t);return e},flagsToPermissionString:function(t){var e=["r","w","rw"][3&t];return 512&t&&(e+="w"),e},nodePermissions:function(t,e){return Oe.ignorePermissions||(-1===e.indexOf("r")||292&t.mode)&&(-1===e.indexOf("w")||146&t.mode)&&(-1===e.indexOf("x")||73&t.mode)?0:2},mayLookup:function(t){var e=Oe.nodePermissions(t,"x");return e||(t.node_ops.lookup?0:2)},mayCreate:function(t,e){try{Oe.lookupNode(t,e);return 20}catch(t){}return Oe.nodePermissions(t,"wx")},mayDelete:function(t,e,i){var r;try{r=Oe.lookupNode(t,e)}catch(t){return t.errno}var n=Oe.nodePermissions(t,"wx");if(n)return n;if(i){if(!Oe.isDir(r.mode))return 54;if(Oe.isRoot(r)||Oe.getPath(r)===Oe.cwd())return 10}else if(Oe.isDir(r.mode))return 31;return 0},mayOpen:function(t,e){return t?Oe.isLink(t.mode)?32:Oe.isDir(t.mode)&&("r"!==Oe.flagsToPermissionString(e)||512&e)?31:Oe.nodePermissions(t,Oe.flagsToPermissionString(e)):44},MAX_OPEN_FDS:4096,nextfd:function(t,e){t=t||0,e=e||Oe.MAX_OPEN_FDS;for(var i=t;i<=e;i++)if(!Oe.streams[i])return i;throw new Oe.ErrnoError(33)},getStream:function(t){return Oe.streams[t]},createStream:function(t,e,i){Oe.FSStream||(Oe.FSStream=function(){},Oe.FSStream.prototype={},Object.defineProperties(Oe.FSStream.prototype,{object:{get:function(){return this.node},set:function(t){this.node=t}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}}));var r=new Oe.FSStream;for(var n in t)r[n]=t[n];t=r;var o=Oe.nextfd(e,i);return t.fd=o,Oe.streams[o]=t,t},closeStream:function(t){Oe.streams[t]=null},chrdev_stream_ops:{open:function(t){var e=Oe.getDevice(t.node.rdev);t.stream_ops=e.stream_ops,t.stream_ops.open&&t.stream_ops.open(t)},llseek:function(){throw new Oe.ErrnoError(70)}},major:function(t){return t>>8},minor:function(t){return 255&t},makedev:function(t,e){return t<<8|e},registerDevice:function(t,e){Oe.devices[t]={stream_ops:e}},getDevice:function(t){return Oe.devices[t]},getMounts:function(t){for(var e=[],i=[t];i.length;){var r=i.pop();e.push(r),i.push.apply(i,r.mounts)}return e},syncfs:function(t,e){"function"==typeof t&&(e=t,t=!1),Oe.syncFSRequests++,Oe.syncFSRequests;var i=Oe.getMounts(Oe.root.mount),r=0;function n(t){return p(Oe.syncFSRequests>0),Oe.syncFSRequests--,e(t)}function o(t){if(t)return o.errored?void 0:(o.errored=!0,n(t));++r>=i.length&&n(null)}i.forEach((function(e){if(!e.type.syncfs)return o(null);e.type.syncfs(e,t,o)}))},mount:function(t,e,i){if("string"==typeof t)throw t;var r,n="/"===i,o=!i;if(n&&Oe.root)throw new Oe.ErrnoError(10);if(!n&&!o){var a=Oe.lookupPath(i,{follow_mount:!1});if(i=a.path,r=a.node,Oe.isMountpoint(r))throw new Oe.ErrnoError(10);if(!Oe.isDir(r.mode))throw new Oe.ErrnoError(54)}var s={type:t,opts:e,mountpoint:i,mounts:[]},h=t.mount(s);return h.mount=s,s.root=h,n?Oe.root=h:r&&(r.mounted=s,r.mount&&r.mount.mounts.push(s)),h},unmount:function(t){var e=Oe.lookupPath(t,{follow_mount:!1});if(!Oe.isMountpoint(e.node))throw new Oe.ErrnoError(28);var i=e.node,r=i.mounted,n=Oe.getMounts(r);Object.keys(Oe.nameTable).forEach((function(t){for(var e=Oe.nameTable[t];e;){var i=e.name_next;-1!==n.indexOf(e.mount)&&Oe.destroyNode(e),e=i}})),i.mounted=null;var o=i.mount.mounts.indexOf(r);p(-1!==o),i.mount.mounts.splice(o,1)},lookup:function(t,e){return t.node_ops.lookup(t,e)},mknod:function(t,e,i){var r=Oe.lookupPath(t,{parent:!0}).node,n=Re.basename(t);if(!n||"."===n||".."===n)throw new Oe.ErrnoError(28);var o=Oe.mayCreate(r,n);if(o)throw new Oe.ErrnoError(o);if(!r.node_ops.mknod)throw new Oe.ErrnoError(63);return r.node_ops.mknod(r,n,e,i)},create:function(t,e){return e=void 0!==e?e:438,e&=4095,e|=32768,Oe.mknod(t,e,0)},mkdir:function(t,e){return e=void 0!==e?e:511,e&=1023,e|=16384,Oe.mknod(t,e,0)},mkdirTree:function(t,e){for(var i=t.split("/"),r="",n=0;n<i.length;++n)if(i[n]){r+="/"+i[n];try{Oe.mkdir(r,e)}catch(t){if(20!=t.errno)throw t}}},mkdev:function(t,e,i){return void 0===i&&(i=e,e=438),e|=8192,Oe.mknod(t,e,i)},symlink:function(t,e){if(!Ie.resolve(t))throw new Oe.ErrnoError(44);var i=Oe.lookupPath(e,{parent:!0}).node;if(!i)throw new Oe.ErrnoError(44);var r=Re.basename(e),n=Oe.mayCreate(i,r);if(n)throw new Oe.ErrnoError(n);if(!i.node_ops.symlink)throw new Oe.ErrnoError(63);return i.node_ops.symlink(i,r,t)},rename:function(t,e){var i,r,n=Re.dirname(t),o=Re.dirname(e),a=Re.basename(t),s=Re.basename(e);try{i=Oe.lookupPath(t,{parent:!0}).node,r=Oe.lookupPath(e,{parent:!0}).node}catch(t){throw new Oe.ErrnoError(10)}if(!i||!r)throw new Oe.ErrnoError(44);if(i.mount!==r.mount)throw new Oe.ErrnoError(75);var h,u=Oe.lookupNode(i,a),l=Ie.relative(t,o);if("."!==l.charAt(0))throw new Oe.ErrnoError(28);if("."!==(l=Ie.relative(e,n)).charAt(0))throw new Oe.ErrnoError(55);try{h=Oe.lookupNode(r,s)}catch(t){}if(u!==h){var d=Oe.isDir(u.mode),f=Oe.mayDelete(i,a,d);if(f)throw new Oe.ErrnoError(f);if(f=h?Oe.mayDelete(r,s,d):Oe.mayCreate(r,s))throw new Oe.ErrnoError(f);if(!i.node_ops.rename)throw new Oe.ErrnoError(63);if(Oe.isMountpoint(u)||h&&Oe.isMountpoint(h))throw new Oe.ErrnoError(10);if(r!==i&&(f=Oe.nodePermissions(i,"w")))throw new Oe.ErrnoError(f);try{Oe.trackingDelegate.willMovePath&&Oe.trackingDelegate.willMovePath(t,e)}catch(t){}Oe.hashRemoveNode(u);try{i.node_ops.rename(u,r,s)}catch(t){throw t}finally{Oe.hashAddNode(u)}try{Oe.trackingDelegate.onMovePath&&Oe.trackingDelegate.onMovePath(t,e)}catch(t){}}},rmdir:function(t){var e=Oe.lookupPath(t,{parent:!0}).node,i=Re.basename(t),r=Oe.lookupNode(e,i),n=Oe.mayDelete(e,i,!0);if(n)throw new Oe.ErrnoError(n);if(!e.node_ops.rmdir)throw new Oe.ErrnoError(63);if(Oe.isMountpoint(r))throw new Oe.ErrnoError(10);try{Oe.trackingDelegate.willDeletePath&&Oe.trackingDelegate.willDeletePath(t)}catch(t){}e.node_ops.rmdir(e,i),Oe.destroyNode(r);try{Oe.trackingDelegate.onDeletePath&&Oe.trackingDelegate.onDeletePath(t)}catch(t){}},readdir:function(t){var e=Oe.lookupPath(t,{follow:!0}).node;if(!e.node_ops.readdir)throw new Oe.ErrnoError(54);return e.node_ops.readdir(e)},unlink:function(t){var e=Oe.lookupPath(t,{parent:!0}).node,i=Re.basename(t),r=Oe.lookupNode(e,i),n=Oe.mayDelete(e,i,!1);if(n)throw new Oe.ErrnoError(n);if(!e.node_ops.unlink)throw new Oe.ErrnoError(63);if(Oe.isMountpoint(r))throw new Oe.ErrnoError(10);try{Oe.trackingDelegate.willDeletePath&&Oe.trackingDelegate.willDeletePath(t)}catch(t){}e.node_ops.unlink(e,i),Oe.destroyNode(r);try{Oe.trackingDelegate.onDeletePath&&Oe.trackingDelegate.onDeletePath(t)}catch(t){}},readlink:function(t){var e=Oe.lookupPath(t).node;if(!e)throw new Oe.ErrnoError(44);if(!e.node_ops.readlink)throw new Oe.ErrnoError(28);return Ie.resolve(Oe.getPath(e.parent),e.node_ops.readlink(e))},stat:function(t,e){var i=Oe.lookupPath(t,{follow:!e}).node;if(!i)throw new Oe.ErrnoError(44);if(!i.node_ops.getattr)throw new Oe.ErrnoError(63);return i.node_ops.getattr(i)},lstat:function(t){return Oe.stat(t,!0)},chmod:function(t,e,i){var r;"string"==typeof t?r=Oe.lookupPath(t,{follow:!i}).node:r=t;if(!r.node_ops.setattr)throw new Oe.ErrnoError(63);r.node_ops.setattr(r,{mode:4095&e|-4096&r.mode,timestamp:Date.now()})},lchmod:function(t,e){Oe.chmod(t,e,!0)},fchmod:function(t,e){var i=Oe.getStream(t);if(!i)throw new Oe.ErrnoError(8);Oe.chmod(i.node,e)},chown:function(t,e,i,r){var n;"string"==typeof t?n=Oe.lookupPath(t,{follow:!r}).node:n=t;if(!n.node_ops.setattr)throw new Oe.ErrnoError(63);n.node_ops.setattr(n,{timestamp:Date.now()})},lchown:function(t,e,i){Oe.chown(t,e,i,!0)},fchown:function(t,e,i){var r=Oe.getStream(t);if(!r)throw new Oe.ErrnoError(8);Oe.chown(r.node,e,i)},truncate:function(t,e){if(e<0)throw new Oe.ErrnoError(28);var i;"string"==typeof t?i=Oe.lookupPath(t,{follow:!0}).node:i=t;if(!i.node_ops.setattr)throw new Oe.ErrnoError(63);if(Oe.isDir(i.mode))throw new Oe.ErrnoError(31);if(!Oe.isFile(i.mode))throw new Oe.ErrnoError(28);var r=Oe.nodePermissions(i,"w");if(r)throw new Oe.ErrnoError(r);i.node_ops.setattr(i,{size:e,timestamp:Date.now()})},ftruncate:function(t,e){var i=Oe.getStream(t);if(!i)throw new Oe.ErrnoError(8);if(0==(2097155&i.flags))throw new Oe.ErrnoError(28);Oe.truncate(i.node,e)},utime:function(t,e,i){var r=Oe.lookupPath(t,{follow:!0}).node;r.node_ops.setattr(r,{timestamp:Math.max(e,i)})},open:function(t,e,i,r,n){if(""===t)throw new Oe.ErrnoError(44);var o;if(i=void 0===i?438:i,i=64&(e="string"==typeof e?Oe.modeStringToFlags(e):e)?4095&i|32768:0,"object"==typeof t)o=t;else{t=Re.normalize(t);try{o=Oe.lookupPath(t,{follow:!(131072&e)}).node}catch(t){}}var a=!1;if(64&e)if(o){if(128&e)throw new Oe.ErrnoError(20)}else o=Oe.mknod(t,i,0),a=!0;if(!o)throw new Oe.ErrnoError(44);if(Oe.isChrdev(o.mode)&&(e&=-513),65536&e&&!Oe.isDir(o.mode))throw new Oe.ErrnoError(54);if(!a){var s=Oe.mayOpen(o,e);if(s)throw new Oe.ErrnoError(s)}512&e&&Oe.truncate(o,0),e&=-641;var h=Oe.createStream({node:o,path:Oe.getPath(o),flags:e,seekable:!0,position:0,stream_ops:o.stream_ops,ungotten:[],error:!1},r,n);h.stream_ops.open&&h.stream_ops.open(h),!u.logReadFiles||1&e||(Oe.readFiles||(Oe.readFiles={}),t in Oe.readFiles||(Oe.readFiles[t]=1));try{if(Oe.trackingDelegate.onOpenFile){var l=0;1!=(2097155&e)&&(l|=Oe.tracking.openFlags.READ),0!=(2097155&e)&&(l|=Oe.tracking.openFlags.WRITE),Oe.trackingDelegate.onOpenFile(t,l)}}catch(t){}return h},close:function(t){if(Oe.isClosed(t))throw new Oe.ErrnoError(8);t.getdents&&(t.getdents=null);try{t.stream_ops.close&&t.stream_ops.close(t)}catch(t){throw t}finally{Oe.closeStream(t.fd)}t.fd=null},isClosed:function(t){return null===t.fd},llseek:function(t,e,i){if(Oe.isClosed(t))throw new Oe.ErrnoError(8);if(!t.seekable||!t.stream_ops.llseek)throw new Oe.ErrnoError(70);if(0!=i&&1!=i&&2!=i)throw new Oe.ErrnoError(28);return t.position=t.stream_ops.llseek(t,e,i),t.ungotten=[],t.position},read:function(t,e,i,r,n){if(r<0||n<0)throw new Oe.ErrnoError(28);if(Oe.isClosed(t))throw new Oe.ErrnoError(8);if(1==(2097155&t.flags))throw new Oe.ErrnoError(8);if(Oe.isDir(t.node.mode))throw new Oe.ErrnoError(31);if(!t.stream_ops.read)throw new Oe.ErrnoError(28);var o=void 0!==n;if(o){if(!t.seekable)throw new Oe.ErrnoError(70)}else n=t.position;var a=t.stream_ops.read(t,e,i,r,n);return o||(t.position+=a),a},write:function(t,e,i,r,n,o){if(r<0||n<0)throw new Oe.ErrnoError(28);if(Oe.isClosed(t))throw new Oe.ErrnoError(8);if(0==(2097155&t.flags))throw new Oe.ErrnoError(8);if(Oe.isDir(t.node.mode))throw new Oe.ErrnoError(31);if(!t.stream_ops.write)throw new Oe.ErrnoError(28);1024&t.flags&&Oe.llseek(t,0,2);var a=void 0!==n;if(a){if(!t.seekable)throw new Oe.ErrnoError(70)}else n=t.position;var s=t.stream_ops.write(t,e,i,r,n,o);a||(t.position+=s);try{t.path&&Oe.trackingDelegate.onWriteToFile&&Oe.trackingDelegate.onWriteToFile(t.path)}catch(t){}return s},allocate:function(t,e,i){if(Oe.isClosed(t))throw new Oe.ErrnoError(8);if(e<0||i<=0)throw new Oe.ErrnoError(28);if(0==(2097155&t.flags))throw new Oe.ErrnoError(8);if(!Oe.isFile(t.node.mode)&&!Oe.isDir(t.node.mode))throw new Oe.ErrnoError(43);if(!t.stream_ops.allocate)throw new Oe.ErrnoError(138);t.stream_ops.allocate(t,e,i)},mmap:function(t,e,i,r,n,o,a){if(0!=(2&o)&&0==(2&a)&&2!=(2097155&t.flags))throw new Oe.ErrnoError(2);if(1==(2097155&t.flags))throw new Oe.ErrnoError(2);if(!t.stream_ops.mmap)throw new Oe.ErrnoError(43);return t.stream_ops.mmap(t,e,i,r,n,o,a)},msync:function(t,e,i,r,n){return t&&t.stream_ops.msync?t.stream_ops.msync(t,e,i,r,n):0},munmap:function(t){return 0},ioctl:function(t,e,i){if(!t.stream_ops.ioctl)throw new Oe.ErrnoError(59);return t.stream_ops.ioctl(t,e,i)},readFile:function(t,e){if((e=e||{}).flags=e.flags||"r",e.encoding=e.encoding||"binary","utf8"!==e.encoding&&"binary"!==e.encoding)throw new Error('Invalid encoding type "'+e.encoding+'"');var i,r=Oe.open(t,e.flags),n=Oe.stat(t).size,o=new Uint8Array(n);return Oe.read(r,o,0,n,0),"utf8"===e.encoding?i=y(o,0):"binary"===e.encoding&&(i=o),Oe.close(r),i},writeFile:function(t,e,i){(i=i||{}).flags=i.flags||"w";var r=Oe.open(t,i.flags,i.mode);if("string"==typeof e){var n=new Uint8Array(A(e)+1),o=_(e,n,0,n.length);Oe.write(r,n,0,o,void 0,i.canOwn)}else{if(!ArrayBuffer.isView(e))throw new Error("Unsupported data type");Oe.write(r,e,0,e.byteLength,void 0,i.canOwn)}Oe.close(r)},cwd:function(){return Oe.currentPath},chdir:function(t){var e=Oe.lookupPath(t,{follow:!0});if(null===e.node)throw new Oe.ErrnoError(44);if(!Oe.isDir(e.node.mode))throw new Oe.ErrnoError(54);var i=Oe.nodePermissions(e.node,"x");if(i)throw new Oe.ErrnoError(i);Oe.currentPath=e.path},createDefaultDirectories:function(){Oe.mkdir("/tmp"),Oe.mkdir("/home"),Oe.mkdir("/home/web_user")},createDefaultDevices:function(){var t;if(Oe.mkdir("/dev"),Oe.registerDevice(Oe.makedev(1,3),{read:function(){return 0},write:function(t,e,i,r,n){return r}}),Oe.mkdev("/dev/null",Oe.makedev(1,3)),Ce.register(Oe.makedev(5,0),Ce.default_tty_ops),Ce.register(Oe.makedev(6,0),Ce.default_tty1_ops),Oe.mkdev("/dev/tty",Oe.makedev(5,0)),Oe.mkdev("/dev/tty1",Oe.makedev(6,0)),"object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);t=function(){return crypto.getRandomValues(e),e[0]}}else if(Dt)try{var r=i(148);t=function(){return r.randomBytes(1)[0]}}catch(t){}t||(t=function(){j("no cryptographic support found for random_device. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")}),Oe.createDevice("/dev","random",t),Oe.createDevice("/dev","urandom",t),Oe.mkdir("/dev/shm"),Oe.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){Oe.mkdir("/proc"),Oe.mkdir("/proc/self"),Oe.mkdir("/proc/self/fd"),Oe.mount({mount:function(){var t=Oe.createNode("/proc/self","fd",16895,73);return t.node_ops={lookup:function(t,e){var i=+e,r=Oe.getStream(i);if(!r)throw new Oe.ErrnoError(8);var n={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return r.path}}};return n.parent=n,n}},t}},{},"/proc/self/fd")},createStandardStreams:function(){u.stdin?Oe.createDevice("/dev","stdin",u.stdin):Oe.symlink("/dev/tty","/dev/stdin"),u.stdout?Oe.createDevice("/dev","stdout",null,u.stdout):Oe.symlink("/dev/tty","/dev/stdout"),u.stderr?Oe.createDevice("/dev","stderr",null,u.stderr):Oe.symlink("/dev/tty1","/dev/stderr");var t=Oe.open("/dev/stdin","r"),e=Oe.open("/dev/stdout","w"),i=Oe.open("/dev/stderr","w");p(0===t.fd,"invalid handle for stdin ("+t.fd+")"),p(1===e.fd,"invalid handle for stdout ("+e.fd+")"),p(2===i.fd,"invalid handle for stderr ("+i.fd+")")},ensureErrnoError:function(){Oe.ErrnoError||(Oe.ErrnoError=function(t,e){this.node=e,this.setErrno=function(t){for(var e in this.errno=t,De)if(De[e]===t){this.code=e;break}},this.setErrno(t),this.message=xe[t],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=X(this.stack))},Oe.ErrnoError.prototype=new Error,Oe.ErrnoError.prototype.constructor=Oe.ErrnoError,[44].forEach((function(t){Oe.genericErrors[t]=new Oe.ErrnoError(t),Oe.genericErrors[t].stack="<generic error, no stack>"})))},staticInit:function(){Oe.ensureErrnoError(),Oe.nameTable=new Array(4096),Oe.mount(Pe,{},"/"),Oe.createDefaultDirectories(),Oe.createDefaultDevices(),Oe.createSpecialDirectories(),Oe.filesystems={MEMFS:Pe}},init:function(t,e,i){p(!Oe.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),Oe.init.initialized=!0,Oe.ensureErrnoError(),u.stdin=t||u.stdin,u.stdout=e||u.stdout,u.stderr=i||u.stderr,Oe.createStandardStreams()},quit:function(){Oe.init.initialized=!1;var t=u._fflush;t&&t(0);for(var e=0;e<Oe.streams.length;e++){var i=Oe.streams[e];i&&Oe.close(i)}},getMode:function(t,e){var i=0;return t&&(i|=365),e&&(i|=146),i},joinPath:function(t,e){var i=Re.join.apply(null,t);return e&&"/"==i[0]&&(i=i.substr(1)),i},absolutePath:function(t,e){return Ie.resolve(e,t)},standardizePath:function(t){return Re.normalize(t)},findObject:function(t,e){var i=Oe.analyzePath(t,e);return i.exists?i.object:($(i.error),null)},analyzePath:function(t,e){try{t=(r=Oe.lookupPath(t,{follow:!e})).path}catch(t){}var i={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var r=Oe.lookupPath(t,{parent:!0});i.parentExists=!0,i.parentPath=r.path,i.parentObject=r.node,i.name=Re.basename(t),r=Oe.lookupPath(t,{follow:!e}),i.exists=!0,i.path=r.path,i.object=r.node,i.name=r.node.name,i.isRoot="/"===r.path}catch(t){i.error=t.errno}return i},createFolder:function(t,e,i,r){var n=Re.join2("string"==typeof t?t:Oe.getPath(t),e),o=Oe.getMode(i,r);return Oe.mkdir(n,o)},createPath:function(t,e,i,r){t="string"==typeof t?t:Oe.getPath(t);for(var n=e.split("/").reverse();n.length;){var o=n.pop();if(o){var a=Re.join2(t,o);try{Oe.mkdir(a)}catch(t){}t=a}}return a},createFile:function(t,e,i,r,n){var o=Re.join2("string"==typeof t?t:Oe.getPath(t),e),a=Oe.getMode(r,n);return Oe.create(o,a)},createDataFile:function(t,e,i,r,n,o){var a=e?Re.join2("string"==typeof t?t:Oe.getPath(t),e):t,s=Oe.getMode(r,n),h=Oe.create(a,s);if(i){if("string"==typeof i){for(var u=new Array(i.length),l=0,d=i.length;l<d;++l)u[l]=i.charCodeAt(l);i=u}Oe.chmod(h,146|s);var f=Oe.open(h,"w");Oe.write(f,i,0,i.length,0,o),Oe.close(f),Oe.chmod(h,s)}return h},createDevice:function(t,e,i,r){var n=Re.join2("string"==typeof t?t:Oe.getPath(t),e),o=Oe.getMode(!!i,!!r);Oe.createDevice.major||(Oe.createDevice.major=64);var a=Oe.makedev(Oe.createDevice.major++,0);return Oe.registerDevice(a,{open:function(t){t.seekable=!1},close:function(t){r&&r.buffer&&r.buffer.length&&r(10)},read:function(t,e,r,n,o){for(var a=0,s=0;s<n;s++){var h;try{h=i()}catch(t){throw new Oe.ErrnoError(29)}if(void 0===h&&0===a)throw new Oe.ErrnoError(6);if(null==h)break;a++,e[r+s]=h}return a&&(t.node.timestamp=Date.now()),a},write:function(t,e,i,n,o){for(var a=0;a<n;a++)try{r(e[i+a])}catch(t){throw new Oe.ErrnoError(29)}return n&&(t.node.timestamp=Date.now()),a}}),Oe.mkdev(n,o,a)},createLink:function(t,e,i,r,n){var o=Re.join2("string"==typeof t?t:Oe.getPath(t),e);return Oe.symlink(i,o)},forceLoadFile:function(t){if(t.isDevice||t.isFolder||t.link||t.contents)return!0;var e=!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!Lt)throw new Error("Cannot load without read() or XMLHttpRequest.");try{t.contents=wt(Lt(t.url),!0),t.usedBytes=t.contents.length}catch(t){e=!1}return e||$(29),e},createLazyFile:function(t,e,i,r,n){function o(){this.lengthKnown=!1,this.chunks=[]}if(o.prototype.get=function(t){if(!(t>this.length-1||t<0)){var e=t%this.chunkSize,i=t/this.chunkSize|0;return this.getter(i)[e]}},o.prototype.setDataGetter=function(t){this.getter=t},o.prototype.cacheLength=function(){var t=new XMLHttpRequest;if(t.open("HEAD",i,!1),t.send(null),!(t.status>=200&&t.status<300||304===t.status))throw new Error("Couldn't load "+i+". Status: "+t.status);var e,r=Number(t.getResponseHeader("Content-length")),n=(e=t.getResponseHeader("Accept-Ranges"))&&"bytes"===e,o=(e=t.getResponseHeader("Content-Encoding"))&&"gzip"===e,a=1048576;n||(a=r);var s=this;s.setDataGetter((function(t){var e=t*a,n=(t+1)*a-1;if(n=Math.min(n,r-1),void 0===s.chunks[t]&&(s.chunks[t]=function(t,e){if(t>e)throw new Error("invalid range ("+t+", "+e+") or no bytes requested!");if(e>r-1)throw new Error("only "+r+" bytes available! programmer error!");var n=new XMLHttpRequest;if(n.open("GET",i,!1),r!==a&&n.setRequestHeader("Range","bytes="+t+"-"+e),"undefined"!=typeof Uint8Array&&(n.responseType="arraybuffer"),n.overrideMimeType&&n.overrideMimeType("text/plain; charset=x-user-defined"),n.send(null),!(n.status>=200&&n.status<300||304===n.status))throw new Error("Couldn't load "+i+". Status: "+n.status);return void 0!==n.response?new Uint8Array(n.response||[]):wt(n.responseText||"",!0)}(e,n)),void 0===s.chunks[t])throw new Error("doXHR failed!");return s.chunks[t]})),!o&&r||(a=r=1,r=this.getter(0).length,a=r),this._length=r,this._chunkSize=a,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!xt)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a=new o;Object.defineProperties(a,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var s={isDevice:!1,contents:a}}else s={isDevice:!1,url:i};var h=Oe.createFile(t,e,s,r,n);s.contents?h.contents=s.contents:s.url&&(h.contents=null,h.url=s.url),Object.defineProperties(h,{usedBytes:{get:function(){return this.contents.length}}});var u={};return Object.keys(h.stream_ops).forEach((function(t){var e=h.stream_ops[t];u[t]=function(){if(!Oe.forceLoadFile(h))throw new Oe.ErrnoError(29);return e.apply(null,arguments)}})),u.read=function(t,e,i,r,n){if(!Oe.forceLoadFile(h))throw new Oe.ErrnoError(29);var o=t.node.contents;if(n>=o.length)return 0;var a=Math.min(o.length-n,r);if(p(a>=0),o.slice)for(var s=0;s<a;s++)e[i+s]=o[n+s];else for(s=0;s<a;s++)e[i+s]=o.get(n+s);return a},h.stream_ops=u,h},createPreloadedFile:function(t,e,i,r,n,o,a,s,h,l){Browser.init();var d=e?Ie.resolve(Re.join2(t,e)):t,f=N("cp "+d);function c(i){function c(i){l&&l(),s||Oe.createDataFile(t,e,i,r,n,h),o&&o(),U(f)}var p=!1;u.preloadPlugins.forEach((function(t){p||t.canHandle(d)&&(t.handle(i,d,c,(function(){a&&a(),U(f)})),p=!0)})),p||c(i)}F(f),"string"==typeof i?Browser.asyncLoad(i,(function(t){c(t)}),a):c(i)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(t,e,i){e=e||function(){},i=i||function(){};var r=Oe.indexedDB();try{var n=r.open(Oe.DB_NAME(),Oe.DB_VERSION)}catch(t){return i(t)}n.onupgradeneeded=function(){n.result.createObjectStore(Oe.DB_STORE_NAME)},n.onsuccess=function(){var r=n.result.transaction([Oe.DB_STORE_NAME],"readwrite"),o=r.objectStore(Oe.DB_STORE_NAME),a=0,s=0,h=t.length;function u(){0==s?e():i()}t.forEach((function(t){var e=o.put(Oe.analyzePath(t).object.contents,t);e.onsuccess=function(){++a+s==h&&u()},e.onerror=function(){s++,a+s==h&&u()}})),r.onerror=i},n.onerror=i},loadFilesFromDB:function(t,e,i){e=e||function(){},i=i||function(){};var r=Oe.indexedDB();try{var n=r.open(Oe.DB_NAME(),Oe.DB_VERSION)}catch(t){return i(t)}n.onupgradeneeded=i,n.onsuccess=function(){var r=n.result;try{var o=r.transaction([Oe.DB_STORE_NAME],"readonly")}catch(t){return void i(t)}var a=o.objectStore(Oe.DB_STORE_NAME),s=0,h=0,u=t.length;function l(){0==h?e():i()}t.forEach((function(t){var e=a.get(t);e.onsuccess=function(){Oe.analyzePath(t).exists&&Oe.unlink(t),Oe.createDataFile(Re.dirname(t),Re.basename(t),e.result,!0,!0,!0),++s+h==u&&l()},e.onerror=function(){h++,s+h==u&&l()}})),o.onerror=i},n.onerror=i}},Be={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function(t,e){if("/"!==e[0]){var i;if(-100===t)i=Oe.cwd();else{var r=Oe.getStream(t);if(!r)throw new Oe.ErrnoError(8);i=r.path}e=Re.join2(i,e)}return e},doStat:function(t,e,i){try{var r=t(e)}catch(t){if(t&&t.node&&Re.normalize(e)!==Re.normalize(Oe.getPath(t.node)))return-54;throw t}return Yt[i>>2]=r.dev,Yt[i+4>>2]=0,Yt[i+8>>2]=r.ino,Yt[i+12>>2]=r.mode,Yt[i+16>>2]=r.nlink,Yt[i+20>>2]=r.uid,Yt[i+24>>2]=r.gid,Yt[i+28>>2]=r.rdev,Yt[i+32>>2]=0,Ee=[r.size>>>0,(Me=r.size,+me(Me)>=1?Me>0?(0|ye(+ve(Me/4294967296),4294967295))>>>0:~~+ge((Me-+(~~Me>>>0))/4294967296)>>>0:0)],Yt[i+40>>2]=Ee[0],Yt[i+44>>2]=Ee[1],Yt[i+48>>2]=4096,Yt[i+52>>2]=r.blocks,Yt[i+56>>2]=r.atime.getTime()/1e3|0,Yt[i+60>>2]=0,Yt[i+64>>2]=r.mtime.getTime()/1e3|0,Yt[i+68>>2]=0,Yt[i+72>>2]=r.ctime.getTime()/1e3|0,Yt[i+76>>2]=0,Ee=[r.ino>>>0,(Me=r.ino,+me(Me)>=1?Me>0?(0|ye(+ve(Me/4294967296),4294967295))>>>0:~~+ge((Me-+(~~Me>>>0))/4294967296)>>>0:0)],Yt[i+80>>2]=Ee[0],Yt[i+84>>2]=Ee[1],0},doMsync:function(t,e,i,r){var n=new Uint8Array(Kt.subarray(t,t+i));Oe.msync(e,n,0,i,r)},doMkdir:function(t,e){return"/"===(t=Re.normalize(t))[t.length-1]&&(t=t.substr(0,t.length-1)),Oe.mkdir(t,e,0),0},doMknod:function(t,e,i){switch(61440&e){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return Oe.mknod(t,e,i),0},doReadlink:function(t,e,i){if(i<=0)return-28;var r=Oe.readlink(t),n=Math.min(i,A(r)),o=Zt[e+n];return w(r,e,i+1),Zt[e+n]=o,n},doAccess:function(t,e){if(-8&e)return-28;var i;if(!(i=Oe.lookupPath(t,{follow:!0}).node))return-44;var r="";return 4&e&&(r+="r"),2&e&&(r+="w"),1&e&&(r+="x"),r&&Oe.nodePermissions(i,r)?-2:0},doDup:function(t,e,i){var r=Oe.getStream(i);return r&&Oe.close(r),Oe.open(t,e,0,i,i).fd},doReadv:function(t,e,i,r){for(var n=0,o=0;o<i;o++){var a=Yt[e+8*o>>2],s=Yt[e+(8*o+4)>>2],h=Oe.read(t,Zt,a,s,r);if(h<0)return-1;if(n+=h,h<s)break}return n},doWritev:function(t,e,i,r){for(var n=0,o=0;o<i;o++){var a=Yt[e+8*o>>2],s=Yt[e+(8*o+4)>>2],h=Oe.write(t,Zt,a,s,r);if(h<0)return-1;n+=h}return n},varargs:0,get:function(t){return Be.varargs+=4,Yt[Be.varargs-4>>2]},getStr:function(){return b(Be.get())},getStreamFromFD:function(t){void 0===t&&(t=Be.get());var e=Oe.getStream(t);if(!e)throw new Oe.ErrnoError(8);return e},get64:function(){var t=Be.get(),e=Be.get();return p(t>=0?0===e:-1===e),t},getZero:function(){p(0===Be.get())}},Le={};w("GMT",1340720,4);Oe.staticInit();var We={__cxa_allocate_exception:Q,__cxa_throw:Y,__lock:J,__syscall221:tt,__syscall3:et,__syscall5:it,__unlock:rt,abort:nt,clock:ot,emscripten_memcpy_big:st,emscripten_resize_heap:ut,environ_get:dt,environ_sizes_get:ft,fd_close:ct,fd_fdstat_get:pt,fd_seek:mt,fd_write:gt,gettimeofday:vt,memory:Gt,round:yt,setTempRet0:bt,table:$t,time:_t},Ne=G(),Fe=Ne.__wasm_call_ctors;Ne.__wasm_call_ctors=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Fe.apply(null,arguments)};var Ue=Ne.WasmDecoder_Check;Ne.WasmDecoder_Check=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ue.apply(null,arguments)};var je=Ne.WasmDecoder_Init;Ne.WasmDecoder_Init=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),je.apply(null,arguments)};var Ve=Ne.WasmDecoder_Deinit;Ne.WasmDecoder_Deinit=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ve.apply(null,arguments)};var He=Ne.WasmDecoder_OpenChannel;Ne.WasmDecoder_OpenChannel=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),He.apply(null,arguments)};var ze=Ne.WasmDecoder_InputFlvStream;Ne.WasmDecoder_InputFlvStream=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ze.apply(null,arguments)};var Ge=Ne.WasmDecoder_GetFlvDecodeData;Ne.WasmDecoder_GetFlvDecodeData=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ge.apply(null,arguments)};var qe=Ne.WasmDecoder_InputFlvStreamAndDecode;Ne.WasmDecoder_InputFlvStreamAndDecode=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),qe.apply(null,arguments)};var Xe=Ne.WasmDecoder_OpenVideoDecoder;Ne.WasmDecoder_OpenVideoDecoder=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Xe.apply(null,arguments)};var Ze=Ne.WasmDecoder_OpenAudioDecoder;Ne.WasmDecoder_OpenAudioDecoder=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ze.apply(null,arguments)};var Ke=Ne.WasmDecoder_DecodeVideoFrame;Ne.WasmDecoder_DecodeVideoFrame=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ke.apply(null,arguments)};var Qe=Ne.WasmDecoder_DecodeAudioFrame;Ne.WasmDecoder_DecodeAudioFrame=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Qe.apply(null,arguments)};var Ye=Ne.WasmDecoder_CloseChannel;Ne.WasmDecoder_CloseChannel=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ye.apply(null,arguments)};var Je=Ne.WasmDecoder_ConvertFrame2Image;Ne.WasmDecoder_ConvertFrame2Image=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Je.apply(null,arguments)};var $e=Ne.WasmDecoder_ReleaseImageData;Ne.WasmDecoder_ReleaseImageData=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),$e.apply(null,arguments)};var ti=Ne.main;Ne.main=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ti.apply(null,arguments)};var ei=Ne.free;Ne.free=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ei.apply(null,arguments)};var ii=Ne.malloc;Ne.malloc=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ii.apply(null,arguments)};var ri=Ne.__errno_location;Ne.__errno_location=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ri.apply(null,arguments)};var ni=Ne.fflush;Ne.fflush=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ni.apply(null,arguments)};var oi=Ne._get_tzname;Ne._get_tzname=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),oi.apply(null,arguments)};var ai=Ne._get_daylight;Ne._get_daylight=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ai.apply(null,arguments)};var si=Ne._get_timezone;Ne._get_timezone=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),si.apply(null,arguments)};var hi=Ne.setThrew;Ne.setThrew=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),hi.apply(null,arguments)};var ui=Ne._ZSt18uncaught_exceptionv;Ne._ZSt18uncaught_exceptionv=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ui.apply(null,arguments)};var li=Ne.stackSave;Ne.stackSave=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),li.apply(null,arguments)};var di=Ne.stackAlloc;Ne.stackAlloc=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),di.apply(null,arguments)};var fi=Ne.stackRestore;Ne.stackRestore=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),fi.apply(null,arguments)};var ci=Ne.__growWasmMemory;Ne.__growWasmMemory=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ci.apply(null,arguments)};var pi=Ne.dynCall_ii;Ne.dynCall_ii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),pi.apply(null,arguments)};var mi=Ne.dynCall_viiiii;Ne.dynCall_viiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),mi.apply(null,arguments)};var gi=Ne.dynCall_viiiiiifi;Ne.dynCall_viiiiiifi=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),gi.apply(null,arguments)};var vi=Ne.dynCall_viiii;Ne.dynCall_viiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),vi.apply(null,arguments)};var yi=Ne.dynCall_viii;Ne.dynCall_viii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),yi.apply(null,arguments)};var bi=Ne.dynCall_iiiiiii;Ne.dynCall_iiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),bi.apply(null,arguments)};var _i=Ne.dynCall_iiiiii;Ne.dynCall_iiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),_i.apply(null,arguments)};var wi=Ne.dynCall_vii;Ne.dynCall_vii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wi.apply(null,arguments)};var Ai=Ne.dynCall_iii;Ne.dynCall_iii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ai.apply(null,arguments)};var Mi=Ne.dynCall_iiii;Ne.dynCall_iiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Mi.apply(null,arguments)};var Ei=Ne.dynCall_viiiiii;Ne.dynCall_viiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ei.apply(null,arguments)};var Si=Ne.dynCall_viiiiiiiii;Ne.dynCall_viiiiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Si.apply(null,arguments)};var ki=Ne.dynCall_viiiiiiii;Ne.dynCall_viiiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ki.apply(null,arguments)};var Ti=Ne.dynCall_iiiii;Ne.dynCall_iiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ti.apply(null,arguments)};var Ri=Ne.dynCall_viiiiiiiiiiiiii;Ne.dynCall_viiiiiiiiiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ri.apply(null,arguments)};var Ii=Ne.dynCall_viiiiiiiiiii;Ne.dynCall_viiiiiiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ii.apply(null,arguments)};var Ci=Ne.dynCall_viiiiiii;Ne.dynCall_viiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ci.apply(null,arguments)};var Pi=Ne.dynCall_viiiiiiiiiiii;Ne.dynCall_viiiiiiiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Pi.apply(null,arguments)};var xi=Ne.dynCall_vi;Ne.dynCall_vi=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),xi.apply(null,arguments)};var Di=Ne.dynCall_iiiiiiiii;Ne.dynCall_iiiiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Di.apply(null,arguments)};var Oi=Ne.dynCall_viiiifii;Ne.dynCall_viiiifii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Oi.apply(null,arguments)};var Bi=Ne.dynCall_fii;Ne.dynCall_fii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Bi.apply(null,arguments)};var Li=Ne.dynCall_viiiiiiiiii;Ne.dynCall_viiiiiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Li.apply(null,arguments)};var Wi=Ne.dynCall_dd;Ne.dynCall_dd=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Wi.apply(null,arguments)};var Ni=Ne.dynCall_viifi;Ne.dynCall_viifi=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ni.apply(null,arguments)};var Fi=Ne.dynCall_fiii;Ne.dynCall_fiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Fi.apply(null,arguments)};var Ui=Ne.dynCall_viidi;Ne.dynCall_viidi=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ui.apply(null,arguments)};var ji=Ne.dynCall_iiiiiiii;Ne.dynCall_iiiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ji.apply(null,arguments)};var Vi=Ne.dynCall_did;Ne.dynCall_did=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Vi.apply(null,arguments)};var Hi=Ne.dynCall_v;Ne.dynCall_v=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Hi.apply(null,arguments)};var zi=Ne.dynCall_viiijj;Ne.dynCall_viiijj=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),zi.apply(null,arguments)};var Gi=Ne.dynCall_iiiiiiidiiddii;Ne.dynCall_iiiiiiidiiddii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Gi.apply(null,arguments)};var qi=Ne.dynCall_jij;Ne.dynCall_jij=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),qi.apply(null,arguments)};var Xi=Ne.dynCall_jii;Ne.dynCall_jii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Xi.apply(null,arguments)};var Zi=Ne.dynCall_iidiiii;Ne.dynCall_iidiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Zi.apply(null,arguments)};var Ki=Ne.dynCall_jiji;Ne.dynCall_jiji=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ki.apply(null,arguments)},u.asm=Ne;var Qi,Yi=u.___wasm_call_ctors=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.__wasm_call_ctors.apply(null,arguments)},Ji=(u._WasmDecoder_Check=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.WasmDecoder_Check.apply(null,arguments)},u._WasmDecoder_Init=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.WasmDecoder_Init.apply(null,arguments)},u._WasmDecoder_Deinit=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.WasmDecoder_Deinit.apply(null,arguments)},u._WasmDecoder_OpenChannel=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.WasmDecoder_OpenChannel.apply(null,arguments)},u._WasmDecoder_InputFlvStream=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.WasmDecoder_InputFlvStream.apply(null,arguments)},u._WasmDecoder_GetFlvDecodeData=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.WasmDecoder_GetFlvDecodeData.apply(null,arguments)},u._WasmDecoder_InputFlvStreamAndDecode=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.WasmDecoder_InputFlvStreamAndDecode.apply(null,arguments)},u._WasmDecoder_OpenVideoDecoder=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.WasmDecoder_OpenVideoDecoder.apply(null,arguments)},u._WasmDecoder_OpenAudioDecoder=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.WasmDecoder_OpenAudioDecoder.apply(null,arguments)},u._WasmDecoder_DecodeVideoFrame=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.WasmDecoder_DecodeVideoFrame.apply(null,arguments)},u._WasmDecoder_DecodeAudioFrame=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.WasmDecoder_DecodeAudioFrame.apply(null,arguments)},u._WasmDecoder_CloseChannel=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.WasmDecoder_CloseChannel.apply(null,arguments)},u._WasmDecoder_ConvertFrame2Image=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.WasmDecoder_ConvertFrame2Image.apply(null,arguments)},u._WasmDecoder_ReleaseImageData=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.WasmDecoder_ReleaseImageData.apply(null,arguments)},u._main=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.main.apply(null,arguments)},u._free=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.free.apply(null,arguments)},u._malloc=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.malloc.apply(null,arguments)}),$i=(u.___errno_location=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.__errno_location.apply(null,arguments)},u._fflush=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.fflush.apply(null,arguments)},u.__get_tzname=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm._get_tzname.apply(null,arguments)},u.__get_daylight=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm._get_daylight.apply(null,arguments)},u.__get_timezone=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm._get_timezone.apply(null,arguments)},u._setThrew=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.setThrew.apply(null,arguments)},u.__ZSt18uncaught_exceptionv=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm._ZSt18uncaught_exceptionv.apply(null,arguments)}),tr=u.stackSave=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.stackSave.apply(null,arguments)},er=u.stackAlloc=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.stackAlloc.apply(null,arguments)},ir=u.stackRestore=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.stackRestore.apply(null,arguments)};u.__growWasmMemory=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.__growWasmMemory.apply(null,arguments)},u.dynCall_ii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_ii.apply(null,arguments)},u.dynCall_viiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_viiiii.apply(null,arguments)},u.dynCall_viiiiiifi=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_viiiiiifi.apply(null,arguments)},u.dynCall_viiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_viiii.apply(null,arguments)},u.dynCall_viii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_viii.apply(null,arguments)},u.dynCall_iiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_iiiiiii.apply(null,arguments)},u.dynCall_iiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_iiiiii.apply(null,arguments)},u.dynCall_vii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_vii.apply(null,arguments)},u.dynCall_iii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_iii.apply(null,arguments)},u.dynCall_iiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_iiii.apply(null,arguments)},u.dynCall_viiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_viiiiii.apply(null,arguments)},u.dynCall_viiiiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_viiiiiiiii.apply(null,arguments)},u.dynCall_viiiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_viiiiiiii.apply(null,arguments)},u.dynCall_iiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_iiiii.apply(null,arguments)},u.dynCall_viiiiiiiiiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_viiiiiiiiiiiiii.apply(null,arguments)},u.dynCall_viiiiiiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_viiiiiiiiiii.apply(null,arguments)},u.dynCall_viiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_viiiiiii.apply(null,arguments)},u.dynCall_viiiiiiiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_viiiiiiiiiiii.apply(null,arguments)},u.dynCall_vi=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_vi.apply(null,arguments)},u.dynCall_iiiiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_iiiiiiiii.apply(null,arguments)},u.dynCall_viiiifii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_viiiifii.apply(null,arguments)},u.dynCall_fii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_fii.apply(null,arguments)},u.dynCall_viiiiiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_viiiiiiiiii.apply(null,arguments)},u.dynCall_dd=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_dd.apply(null,arguments)},u.dynCall_viifi=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_viifi.apply(null,arguments)},u.dynCall_fiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_fiii.apply(null,arguments)},u.dynCall_viidi=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_viidi.apply(null,arguments)},u.dynCall_iiiiiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_iiiiiiii.apply(null,arguments)},u.dynCall_did=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_did.apply(null,arguments)},u.dynCall_v=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_v.apply(null,arguments)},u.dynCall_viiijj=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_viiijj.apply(null,arguments)},u.dynCall_iiiiiiidiiddii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_iiiiiiidiiddii.apply(null,arguments)},u.dynCall_jij=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_jij.apply(null,arguments)},u.dynCall_jii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_jii.apply(null,arguments)},u.dynCall_iidiiii=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_iidiiii.apply(null,arguments)},u.dynCall_jiji=function(){return p(ce,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),p(!pe,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),u.asm.dynCall_jiji.apply(null,arguments)};u.asm=Ne,Object.getOwnPropertyDescriptor(u,"intArrayFromString")||(u.intArrayFromString=function(){j("'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"intArrayToString")||(u.intArrayToString=function(){j("'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),u.ccall=g,u.cwrap=v,Object.getOwnPropertyDescriptor(u,"setValue")||(u.setValue=function(){j("'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"getValue")||(u.getValue=function(){j("'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"allocate")||(u.allocate=function(){j("'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"getMemory")||(u.getMemory=function(){j("'getMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(u,"AsciiToString")||(u.AsciiToString=function(){j("'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"stringToAscii")||(u.stringToAscii=function(){j("'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"UTF8ArrayToString")||(u.UTF8ArrayToString=function(){j("'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"UTF8ToString")||(u.UTF8ToString=function(){j("'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"stringToUTF8Array")||(u.stringToUTF8Array=function(){j("'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"stringToUTF8")||(u.stringToUTF8=function(){j("'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"lengthBytesUTF8")||(u.lengthBytesUTF8=function(){j("'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"UTF16ToString")||(u.UTF16ToString=function(){j("'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"stringToUTF16")||(u.stringToUTF16=function(){j("'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"lengthBytesUTF16")||(u.lengthBytesUTF16=function(){j("'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"UTF32ToString")||(u.UTF32ToString=function(){j("'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"stringToUTF32")||(u.stringToUTF32=function(){j("'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"lengthBytesUTF32")||(u.lengthBytesUTF32=function(){j("'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"allocateUTF8")||(u.allocateUTF8=function(){j("'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"stackTrace")||(u.stackTrace=function(){j("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"addOnPreRun")||(u.addOnPreRun=function(){j("'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"addOnInit")||(u.addOnInit=function(){j("'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"addOnPreMain")||(u.addOnPreMain=function(){j("'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"addOnExit")||(u.addOnExit=function(){j("'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"addOnPostRun")||(u.addOnPostRun=function(){j("'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"writeStringToMemory")||(u.writeStringToMemory=function(){j("'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"writeArrayToMemory")||(u.writeArrayToMemory=function(){j("'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"writeAsciiToMemory")||(u.writeAsciiToMemory=function(){j("'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"addRunDependency")||(u.addRunDependency=function(){j("'addRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(u,"removeRunDependency")||(u.removeRunDependency=function(){j("'removeRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(u,"ENV")||(u.ENV=function(){j("'ENV' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"FS")||(u.FS=function(){j("'FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"FS_createFolder")||(u.FS_createFolder=function(){j("'FS_createFolder' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(u,"FS_createPath")||(u.FS_createPath=function(){j("'FS_createPath' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(u,"FS_createDataFile")||(u.FS_createDataFile=function(){j("'FS_createDataFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(u,"FS_createPreloadedFile")||(u.FS_createPreloadedFile=function(){j("'FS_createPreloadedFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(u,"FS_createLazyFile")||(u.FS_createLazyFile=function(){j("'FS_createLazyFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(u,"FS_createLink")||(u.FS_createLink=function(){j("'FS_createLink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(u,"FS_createDevice")||(u.FS_createDevice=function(){j("'FS_createDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(u,"FS_unlink")||(u.FS_unlink=function(){j("'FS_unlink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(u,"GL")||(u.GL=function(){j("'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"dynamicAlloc")||(u.dynamicAlloc=function(){j("'dynamicAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"loadDynamicLibrary")||(u.loadDynamicLibrary=function(){j("'loadDynamicLibrary' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"loadWebAssemblyModule")||(u.loadWebAssemblyModule=function(){j("'loadWebAssemblyModule' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"getLEB")||(u.getLEB=function(){j("'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"getFunctionTables")||(u.getFunctionTables=function(){j("'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"alignFunctionTables")||(u.alignFunctionTables=function(){j("'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"registerFunctions")||(u.registerFunctions=function(){j("'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),u.addFunction=c,Object.getOwnPropertyDescriptor(u,"removeFunction")||(u.removeFunction=function(){j("'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"getFuncWrapper")||(u.getFuncWrapper=function(){j("'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"prettyPrint")||(u.prettyPrint=function(){j("'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"makeBigInt")||(u.makeBigInt=function(){j("'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"dynCall")||(u.dynCall=function(){j("'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"getCompilerSetting")||(u.getCompilerSetting=function(){j("'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"stackSave")||(u.stackSave=function(){j("'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"stackRestore")||(u.stackRestore=function(){j("'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"stackAlloc")||(u.stackAlloc=function(){j("'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"establishStackSpace")||(u.establishStackSpace=function(){j("'establishStackSpace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"print")||(u.print=function(){j("'print' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"printErr")||(u.printErr=function(){j("'printErr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"getTempRet0")||(u.getTempRet0=function(){j("'getTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"setTempRet0")||(u.setTempRet0=function(){j("'setTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"callMain")||(u.callMain=function(){j("'callMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"abort")||(u.abort=function(){j("'abort' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"Pointer_stringify")||(u.Pointer_stringify=function(){j("'Pointer_stringify' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(u,"warnOnce")||(u.warnOnce=function(){j("'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),u.writeStackCookie=T,u.checkStackCookie=R,u.abortStackOverflow=I,Object.getOwnPropertyDescriptor(u,"ALLOC_NORMAL")||Object.defineProperty(u,"ALLOC_NORMAL",{configurable:!0,get:function(){j("'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(u,"ALLOC_STACK")||Object.defineProperty(u,"ALLOC_STACK",{configurable:!0,get:function(){j("'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(u,"ALLOC_DYNAMIC")||Object.defineProperty(u,"ALLOC_DYNAMIC",{configurable:!0,get:function(){j("'ALLOC_DYNAMIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(u,"ALLOC_NONE")||Object.defineProperty(u,"ALLOC_NONE",{configurable:!0,get:function(){j("'ALLOC_NONE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(u,"calledRun")||Object.defineProperty(u,"calledRun",{configurable:!0,get:function(){j("'calledRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}});if(we=function t(){Qi||Et(),Qi||(we=t)},u.run=Et,u.preInit)for("function"==typeof u.preInit&&(u.preInit=[u.preInit]);u.preInit.length>0;)u.preInit.pop()();var rr=!0;u.noInitialRun&&(rr=!1),zt=!0,Et()}}e.default=function(t){t.isFlvStream=!0,t.enableAudio=!1,t.pause=!1,t.exitFlag=!1,t.needMoreData=!1,t.wasmDecoderId=-1,t.wasmInitVideoDecoder=!1,t.wasmInitAudioDecoder=!1,t.videoQueue=[],t.audioQueue=[],t.videoFrameNum=0,t.videoRawData=null,t.audioRawData=null,t.videoPacketData=null,t.audioPacketData=null,t.findKeyFrame=!0,t.videoIntervalHandle=-1,t.videoIntervalValue=40,t.audioIntervalHandle=-1,t.audioIntervalValue=80,t.lastPTS=0,t.ptsCount=0,t.maxCacheFrameNum=0,t.calcDelayFlag=!0,t.procVideoFlag=!1,t.procAudioFlag=!1;var e=function(){null==t.videoRawData&&(t.videoRawData=u._malloc(8294400)),null==t.audioRawData&&(t.audioRawData=u._malloc(16384)),null==t.videoPacketData&&(t.videoPacketData=u._malloc(1048576)),null==t.audioPacketData&&(t.audioPacketData=u._malloc(2048)),t.wasmDecoderId<0&&(t.wasmDecoderId=u._WasmDecoder_OpenChannel())},i=function(e,i,r,n,o,s,h,l,d){if(t.procVideoFlag)return-1;t.procVideoFlag=!0,u.HEAPU8.set(l,t.videoPacketData);var f,c=a.tVideoRenderYV12,p=0;if(c==a.tVideoRenderYV12?p=0:c==a.tVideoRenderRGB?p=2:c==a.tVideoRenderRGBA&&(p=26),1==e&&t.videoFrameNum>0&&(t.videoFrameNum-=1),1==e&&!t.wasmInitVideoDecoder&&r)0==u._WasmDecoder_OpenVideoDecoder(t.wasmDecoderId,i,0,0,p)&&(t.wasmInitVideoDecoder=!0);else if(2==e&&!t.wasmInitAudioDecoder){0==u._WasmDecoder_OpenAudioDecoder(t.wasmDecoderId,i,o,h,s)&&(t.wasmInitAudioDecoder=!0)}var m=null;if(1==e&&t.wasmInitVideoDecoder?m=u._WasmDecoder_DecodeVideoFrame(t.wasmDecoderId,t.videoPacketData,d,0,0,t.videoRawData,0):2==e&&t.wasmInitAudioDecoder&&t.enableAudio&&(m=u._WasmDecoder_DecodeAudioFrame(t.wasmDecoderId,t.videoPacketData,d,t.audioRawData,0)),0!=m&&null!=m){var g=u.HEAPU32[m/4],v=(u.HEAPU32[m/4+1],u.HEAPU32[m/4+2]),y=(u.HEAPU32[m/4+3],u.HEAPU32[m/4+4]),b=u.HEAPU32[m/4+5],_=(u.HEAPU32[m/4+6],u.HEAPU32[m/4+7]),w=u.HEAPU32[m/4+8],A=u.HEAPU32[m/4+9],M=u.HEAPU32[m/4+10],E=u.HEAPU32[m/4+11],S=(u.HEAPU32[m/4+12],u.HEAPU32[m/4+13]);if(v<1)return void(t.procVideoFlag=!1);if(1==g){0==p?f=y*b*3/2:2==p?f=y*b*3:(25==p||26==p)&&(f=y*b*4);var k=u.HEAPU8.subarray(t.videoRawData,t.videoRawData+f),T=new Uint8Array(k),R={cmd:a.tFrameData,workerId:a.DECODE_WORKER_ID,mediaType:1,ts:S,width:y,height:b,framesize:d,rawsize:f,fps:_,interval:w,playTimeSec:n,frameNum:t.videoFrameNum,dat:T};if(t.postMessage(R,[R.dat.buffer]),y>=1920&&b>=720)return t.procVideoFlag=!1,1}else if(2==g){k=u.HEAPU8.subarray(t.audioRawData,t.audioRawData+v),T=new Uint8Array(k);var I=0;8==E?I=0:16==E?I=1:32==E&&(I=2);R={cmd:a.tFrameData,workerId:a.DECODE_WORKER_ID,mediaType:2,fmt:I,ch:A,samplerate:M,ts:S,framesize:v,dat:T};t.postMessage(R,[R.dat.buffer])}}return t.procVideoFlag=!1,0},r=function(e,i,r,n,o,s){(u.HEAPU8.set(o,t.audioPacketData),t.wasmInitAudioDecoder)||0==u._WasmDecoder_OpenAudioDecoder(t.wasmDecoderId,e,i,n,r)&&(t.wasmInitAudioDecoder=!0);var h=null;if(t.wasmInitAudioDecoder&&t.enableAudio&&(h=u._WasmDecoder_DecodeAudioFrame(t.wasmDecoderId,t.audioPacketData,s,t.audioRawData,0)),0!=h&&null!=h){u.HEAPU32[h/4],u.HEAPU32[h/4+1];var l=u.HEAPU32[h/4+2],d=(u.HEAPU32[h/4+3],u.HEAPU32[h/4+4],u.HEAPU32[h/4+5],u.HEAPU32[h/4+6],u.HEAPU32[h/4+7],u.HEAPU32[h/4+8],u.HEAPU32[h/4+9]),f=u.HEAPU32[h/4+10],c=u.HEAPU32[h/4+11],p=(u.HEAPU32[h/4+12],u.HEAPU32[h/4+13]);if(l<1)return;var m=u.HEAPU8.subarray(t.audioRawData,t.audioRawData+l),g=new Uint8Array(m),v=0;8==c?v=0:16==c?v=1:32==c&&(v=2);var y={cmd:a.tFrameData,workerId:a.DECODE_WORKER_ID,mediaType:2,fmt:v,ch:d,samplerate:f,ts:p,framesize:l,dat:g};t.postMessage(y,[y.dat.buffer])}},n=function(){if(t.wasmDecoderId<0&&e(),t.wasmDecoderId>0&&t.videoQueue.length>0&&!t.pause){var r=null,n=-1;if(t.isFlvStream){if(t.findKeyFrame)for(;t.videoQueue.length>0;){if((r=t.videoQueue[0]).frameType&&t.videoQueue.length<60){t.findKeyFrame=!1;break}t.videoQueue.shift()}else t.videoQueue.length>60&&(t.findKeyFrame=!0);t.videoQueue.length>0&&(null==r&&(r=t.videoQueue[0]),n=i(r.mediaType,r.codecId,r.frameType,r.playTimeSec,r.samplerate,r.channelNum,r.bitPerSample,r.dat,r.dat.length))}else r=t.videoQueue[0],n=i(r.mediaType,r.codecId,r.frameType,r.playTimeSec,r.samplerate,r.channelNum,r.bitPerSample,r.dat,r.dat.length);n>=0&&t.videoQueue.shift(),t.videoQueue.length>t.maxCacheFrameNum&&t.videoQueue.length}},o=function(){if(!(t.wasmDecoderId<0)&&t.wasmDecoderId>0)for(;t.audioQueue.length>0&&!t.pause;)if(!t.pause){var e=t.audioQueue[0];t.enableAudio&&r(e.codecId,e.samplerate,e.channelNum,e.bitPerSample,e.dat,e.dat.length),t.audioQueue.shift()}};u.onRuntimeInitialized=function(){t.videoIntervalHandle=setInterval(n,t.videoIntervalValue),t.audioIntervalHandle=setInterval(o,t.audioIntervalValue);var e={cmd:a.tDecoderWorkerStartup};t.postMessage(e),s=!0};var d=function(e){if(e>t.lastPTS)if(t.lastPTS>0){if(t.videoQueue.length%5==0){var i=t.ptsCount/5;t.videoQueue.length<=t.maxCacheFrameNum&&function(e){if(s){var i=e;(i<5||i>500)&&(i=40),i!=t.videoIntervalValue&&(t.videoIntervalHandle>=0&&(clearInterval(t.videoIntervalHandle),t.videoIntervalHandle=-1),t.videoIntervalValue=Math.floor(i),t.videoIntervalHandle=setInterval(n,t.videoIntervalValue))}}(i),t.ptsCount=e-t.lastPTS}else t.ptsCount+=e-t.lastPTS;t.lastPTS=e}else t.lastPTS=e,t.ptsCount=40;else t.lastPTS=e,t.ptsCount=40};t.addEventListener("message",(function(i){var r=i.data;switch(r.cmd){case a.tOpenStream:if(h=r.url,t.isFlvStream=r.isFlv,s){var n={cmd:a.tDecoderWorkerStartup};t.postMessage(n)}else l();break;case a.tCloseStream:t.exitFlag=!0,t.wasmDecoderId>0&&(u._WasmDecoder_CloseChannel(t.wasmDecoderId),t.wasmDecoderId=-1),null!=t.videoRawData&&(u._free(t.videoRawData),t.videoRawData=null),null!=t.audioRawData&&(u._free(t.audioRawData),t.audioRawData=null),null!=t.videoPacketData&&(u._free(t.videoPacketData),t.videoPacketData=null),null!=t.audioPacketData&&(u._free(t.audioPacketData),t.audioPacketData=null),t.videoIntervalHandle>=0&&(clearInterval(t.videoIntervalHandle),t.videoIntervalHandle=-1),t.audioIntervalHandle>=0&&(clearInterval(t.audioIntervalHandle),t.audioIntervalHandle=-1),t.videoQueue.clear,t.videoQueue.length=0,t.videoFrameNum=0,t.audioQueue.clear,t.audioQueue.length=0;n={cmd:a.tCloseStream,workerId:a.DECODE_WORKER_ID};t.postMessage(n);break;case a.tOpenAudio:t.enableAudio=!0;break;case a.tCloseAudio:t.enableAudio=!1;break;case a.tPauseStream:t.pause=!0;break;case a.tResumeStream:t.pause=!1;break;case a.tSeekStream:t.videoQueue.clear,t.videoQueue.length=0,t.videoFrameNum=0,t.audioQueue.clear,t.audioQueue.length=0;break;case a.tVidInterval:t.updateIntervalTime(r.interval);break;case a.tFrameData:if(t.exitFlag)break;s?t.isFlvStream?(t.wasmDecoderId<0&&e(),t.wasmDecoderId>0?1==r.mediaType?t.videoIntervalHandle>=0&&(t.videoQueue.push(r),t.maxCacheFrameNum=5):2==r.mediaType&&t.audioIntervalHandle>=0&&!t.findKeyFrame&&t.audioQueue.push(r):t.videoQueue.length<100&&1==r.mediaType&&r.frameType&&t.videoIntervalHandle>=0&&(t.videoQueue.push(r),t.videoQueue.length>=5&&t.videoQueue.shift())):(1==r.mediaType?t.videoIntervalHandle>=0&&(t.videoQueue.push(r),d(r.samplerate),t.videoFrameNum+=1,t.calcDelayFlag&&t.maxCacheFrameNum<t.videoQueue.length?t.maxCacheFrameNum=t.videoQueue.length:t.calcDelayFlag&&(t.calcDelayFlag=!1)):2==r.mediaType&&t.audioIntervalHandle>=0&&t.audioQueue.push(r),t.needMoreData=!1):t.isFlvStream&&t.videoQueue.length<5?1==r.mediaType&&r.frameType&&t.videoIntervalHandle>=0&&(t.videoQueue.push(r),t.videoQueue.length>=5&&t.videoQueue.shift()):!t.isFlvStream&&t.videoQueue.length<1e3&&(1==r.mediaType?t.videoIntervalHandle>=0&&(t.videoQueue.push(r),d(r.samplerate),t.videoFrameNum+=1,t.calcDelayFlag&&t.maxCacheFrameNum<t.videoQueue.length?t.maxCacheFrameNum=t.videoQueue.length:t.calcDelayFlag&&(t.calcDelayFlag=!1)):2==r.mediaType&&t.audioIntervalHandle>=0&&t.audioQueue.push(r))}}))};var d=u,f=l,c=s}.call(this,i(8),"/",i(145)(t),i(9).Buffer)},function(t,e,i){"use strict";(function(e){void 0===e||!e.version||0===e.version.indexOf("v0.")||0===e.version.indexOf("v1.")&&0!==e.version.indexOf("v1.8.")?t.exports={nextTick:function(t,i,r,n){if("function"!=typeof t)throw new TypeError('"callback" argument must be a function');var o,a,s=arguments.length;switch(s){case 0:case 1:return e.nextTick(t);case 2:return e.nextTick((function(){t.call(null,i)}));case 3:return e.nextTick((function(){t.call(null,i,r)}));case 4:return e.nextTick((function(){t.call(null,i,r,n)}));default:for(o=new Array(s-1),a=0;a<o.length;)o[a++]=arguments[a];return e.nextTick((function(){t.apply(null,o)}))}}}:t.exports=e}).call(this,i(8))},function(t,e,i){var r=i(4).Buffer;function n(t){r.isBuffer(t)||(t=r.from(t));for(var e=t.length/4|0,i=new Array(e),n=0;n<e;n++)i[n]=t.readUInt32BE(4*n);return i}function o(t){for(;0<t.length;t++)t[0]=0}function a(t,e,i,r,n){for(var o,a,s,h,u=i[0],l=i[1],d=i[2],f=i[3],c=t[0]^e[0],p=t[1]^e[1],m=t[2]^e[2],g=t[3]^e[3],v=4,y=1;y<n;y++)o=u[c>>>24]^l[p>>>16&255]^d[m>>>8&255]^f[255&g]^e[v++],a=u[p>>>24]^l[m>>>16&255]^d[g>>>8&255]^f[255&c]^e[v++],s=u[m>>>24]^l[g>>>16&255]^d[c>>>8&255]^f[255&p]^e[v++],h=u[g>>>24]^l[c>>>16&255]^d[p>>>8&255]^f[255&m]^e[v++],c=o,p=a,m=s,g=h;return o=(r[c>>>24]<<24|r[p>>>16&255]<<16|r[m>>>8&255]<<8|r[255&g])^e[v++],a=(r[p>>>24]<<24|r[m>>>16&255]<<16|r[g>>>8&255]<<8|r[255&c])^e[v++],s=(r[m>>>24]<<24|r[g>>>16&255]<<16|r[c>>>8&255]<<8|r[255&p])^e[v++],h=(r[g>>>24]<<24|r[c>>>16&255]<<16|r[p>>>8&255]<<8|r[255&m])^e[v++],[o>>>=0,a>>>=0,s>>>=0,h>>>=0]}var s=[0,1,2,4,8,16,32,64,128,27,54],h=function(){for(var t=new Array(256),e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;for(var i=[],r=[],n=[[],[],[],[]],o=[[],[],[],[]],a=0,s=0,h=0;h<256;++h){var u=s^s<<1^s<<2^s<<3^s<<4;u=u>>>8^255&u^99,i[a]=u,r[u]=a;var l=t[a],d=t[l],f=t[d],c=257*t[u]^16843008*u;n[0][a]=c<<24|c>>>8,n[1][a]=c<<16|c>>>16,n[2][a]=c<<8|c>>>24,n[3][a]=c,c=16843009*f^65537*d^257*l^16843008*a,o[0][u]=c<<24|c>>>8,o[1][u]=c<<16|c>>>16,o[2][u]=c<<8|c>>>24,o[3][u]=c,0===a?a=s=1:(a=l^t[t[t[f^l]]],s^=t[t[s]])}return{SBOX:i,INV_SBOX:r,SUB_MIX:n,INV_SUB_MIX:o}}();function u(t){this._key=n(t),this._reset()}u.blockSize=16,u.keySize=32,u.prototype.blockSize=u.blockSize,u.prototype.keySize=u.keySize,u.prototype._reset=function(){for(var t=this._key,e=t.length,i=e+6,r=4*(i+1),n=[],o=0;o<e;o++)n[o]=t[o];for(o=e;o<r;o++){var a=n[o-1];o%e==0?(a=a<<8|a>>>24,a=h.SBOX[a>>>24]<<24|h.SBOX[a>>>16&255]<<16|h.SBOX[a>>>8&255]<<8|h.SBOX[255&a],a^=s[o/e|0]<<24):e>6&&o%e==4&&(a=h.SBOX[a>>>24]<<24|h.SBOX[a>>>16&255]<<16|h.SBOX[a>>>8&255]<<8|h.SBOX[255&a]),n[o]=n[o-e]^a}for(var u=[],l=0;l<r;l++){var d=r-l,f=n[d-(l%4?0:4)];u[l]=l<4||d<=4?f:h.INV_SUB_MIX[0][h.SBOX[f>>>24]]^h.INV_SUB_MIX[1][h.SBOX[f>>>16&255]]^h.INV_SUB_MIX[2][h.SBOX[f>>>8&255]]^h.INV_SUB_MIX[3][h.SBOX[255&f]]}this._nRounds=i,this._keySchedule=n,this._invKeySchedule=u},u.prototype.encryptBlockRaw=function(t){return a(t=n(t),this._keySchedule,h.SUB_MIX,h.SBOX,this._nRounds)},u.prototype.encryptBlock=function(t){var e=this.encryptBlockRaw(t),i=r.allocUnsafe(16);return i.writeUInt32BE(e[0],0),i.writeUInt32BE(e[1],4),i.writeUInt32BE(e[2],8),i.writeUInt32BE(e[3],12),i},u.prototype.decryptBlock=function(t){var e=(t=n(t))[1];t[1]=t[3],t[3]=e;var i=a(t,this._invKeySchedule,h.INV_SUB_MIX,h.INV_SBOX,this._nRounds),o=r.allocUnsafe(16);return o.writeUInt32BE(i[0],0),o.writeUInt32BE(i[3],4),o.writeUInt32BE(i[2],8),o.writeUInt32BE(i[1],12),o},u.prototype.scrub=function(){o(this._keySchedule),o(this._invKeySchedule),o(this._key)},t.exports.AES=u},function(t,e,i){var r=i(4).Buffer,n=i(52);t.exports=function(t,e,i,o){if(r.isBuffer(t)||(t=r.from(t,"binary")),e&&(r.isBuffer(e)||(e=r.from(e,"binary")),8!==e.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var a=i/8,s=r.alloc(a),h=r.alloc(o||0),u=r.alloc(0);a>0||o>0;){var l=new n;l.update(u),l.update(t),e&&l.update(e),u=l.digest();var d=0;if(a>0){var f=s.length-a;d=Math.min(a,u.length),u.copy(s,f,0,d),a-=d}if(d<u.length&&o>0){var c=h.length-o,p=Math.min(o,u.length-d);u.copy(h,c,d,d+p),o-=p}}return u.fill(0),{key:s,iv:h}}},function(t,e,i){"use strict";var r=i(16),n=i(14),o=n.getNAF,a=n.getJSF,s=n.assert;function h(t,e){this.type=t,this.p=new r(e.p,16),this.red=e.prime?r.red(e.prime):r.mont(this.p),this.zero=new r(0).toRed(this.red),this.one=new r(1).toRed(this.red),this.two=new r(2).toRed(this.red),this.n=e.n&&new r(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var i=this.n&&this.p.div(this.n);!i||i.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function u(t,e){this.curve=t,this.type=e,this.precomputed=null}t.exports=h,h.prototype.point=function(){throw new Error("Not implemented")},h.prototype.validate=function(){throw new Error("Not implemented")},h.prototype._fixedNafMul=function(t,e){s(t.precomputed);var i=t._getDoubles(),r=o(e,1,this._bitLength),n=(1<<i.step+1)-(i.step%2==0?2:1);n/=3;var a,h,u=[];for(a=0;a<r.length;a+=i.step){h=0;for(var l=a+i.step-1;l>=a;l--)h=(h<<1)+r[l];u.push(h)}for(var d=this.jpoint(null,null,null),f=this.jpoint(null,null,null),c=n;c>0;c--){for(a=0;a<u.length;a++)(h=u[a])===c?f=f.mixedAdd(i.points[a]):h===-c&&(f=f.mixedAdd(i.points[a].neg()));d=d.add(f)}return d.toP()},h.prototype._wnafMul=function(t,e){var i=4,r=t._getNAFPoints(i);i=r.wnd;for(var n=r.points,a=o(e,i,this._bitLength),h=this.jpoint(null,null,null),u=a.length-1;u>=0;u--){for(var l=0;u>=0&&0===a[u];u--)l++;if(u>=0&&l++,h=h.dblp(l),u<0)break;var d=a[u];s(0!==d),h="affine"===t.type?d>0?h.mixedAdd(n[d-1>>1]):h.mixedAdd(n[-d-1>>1].neg()):d>0?h.add(n[d-1>>1]):h.add(n[-d-1>>1].neg())}return"affine"===t.type?h.toP():h},h.prototype._wnafMulAdd=function(t,e,i,r,n){var s,h,u,l=this._wnafT1,d=this._wnafT2,f=this._wnafT3,c=0;for(s=0;s<r;s++){var p=(u=e[s])._getNAFPoints(t);l[s]=p.wnd,d[s]=p.points}for(s=r-1;s>=1;s-=2){var m=s-1,g=s;if(1===l[m]&&1===l[g]){var v=[e[m],null,null,e[g]];0===e[m].y.cmp(e[g].y)?(v[1]=e[m].add(e[g]),v[2]=e[m].toJ().mixedAdd(e[g].neg())):0===e[m].y.cmp(e[g].y.redNeg())?(v[1]=e[m].toJ().mixedAdd(e[g]),v[2]=e[m].add(e[g].neg())):(v[1]=e[m].toJ().mixedAdd(e[g]),v[2]=e[m].toJ().mixedAdd(e[g].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],b=a(i[m],i[g]);for(c=Math.max(b[0].length,c),f[m]=new Array(c),f[g]=new Array(c),h=0;h<c;h++){var _=0|b[0][h],w=0|b[1][h];f[m][h]=y[3*(_+1)+(w+1)],f[g][h]=0,d[m]=v}}else f[m]=o(i[m],l[m],this._bitLength),f[g]=o(i[g],l[g],this._bitLength),c=Math.max(f[m].length,c),c=Math.max(f[g].length,c)}var A=this.jpoint(null,null,null),M=this._wnafT4;for(s=c;s>=0;s--){for(var E=0;s>=0;){var S=!0;for(h=0;h<r;h++)M[h]=0|f[h][s],0!==M[h]&&(S=!1);if(!S)break;E++,s--}if(s>=0&&E++,A=A.dblp(E),s<0)break;for(h=0;h<r;h++){var k=M[h];0!==k&&(k>0?u=d[h][k-1>>1]:k<0&&(u=d[h][-k-1>>1].neg()),A="affine"===u.type?A.mixedAdd(u):A.add(u))}}for(s=0;s<r;s++)d[s]=null;return n?A:A.toP()},h.BasePoint=u,u.prototype.eq=function(){throw new Error("Not implemented")},u.prototype.validate=function(){return this.curve.validate(this)},h.prototype.decodePoint=function(t,e){t=n.toArray(t,e);var i=this.p.byteLength();if((4===t[0]||6===t[0]||7===t[0])&&t.length-1==2*i)return 6===t[0]?s(t[t.length-1]%2==0):7===t[0]&&s(t[t.length-1]%2==1),this.point(t.slice(1,1+i),t.slice(1+i,1+2*i));if((2===t[0]||3===t[0])&&t.length-1===i)return this.pointFromX(t.slice(1,1+i),3===t[0]);throw new Error("Unknown point format")},u.prototype.encodeCompressed=function(t){return this.encode(t,!0)},u.prototype._encode=function(t){var e=this.curve.p.byteLength(),i=this.getX().toArray("be",e);return t?[this.getY().isEven()?2:3].concat(i):[4].concat(i,this.getY().toArray("be",e))},u.prototype.encode=function(t,e){return n.encode(this._encode(e),t)},u.prototype.precompute=function(t){if(this.precomputed)return this;var e={doubles:null,naf:null,beta:null};return e.naf=this._getNAFPoints(8),e.doubles=this._getDoubles(4,t),e.beta=this._getBeta(),this.precomputed=e,this},u.prototype._hasDoubles=function(t){if(!this.precomputed)return!1;var e=this.precomputed.doubles;return!!e&&e.points.length>=Math.ceil((t.bitLength()+1)/e.step)},u.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var i=[this],r=this,n=0;n<e;n+=t){for(var o=0;o<t;o++)r=r.dbl();i.push(r)}return{step:t,points:i}},u.prototype._getNAFPoints=function(t){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var e=[this],i=(1<<t)-1,r=1===i?null:this.dbl(),n=1;n<i;n++)e[n]=e[n-1].add(r);return{wnd:t,points:e}},u.prototype._getBeta=function(){return null},u.prototype.dblp=function(t){for(var e=this,i=0;i<t;i++)e=e.dbl();return e}},function(t,e,i){var r=i(227),n=i(235),o=i(236),a=i(61),s=i(95),h=i(4).Buffer;function u(t){var e;"object"!=typeof t||h.isBuffer(t)||(e=t.passphrase,t=t.key),"string"==typeof t&&(t=h.from(t));var i,u,l=o(t,e),d=l.tag,f=l.data;switch(d){case"CERTIFICATE":u=r.certificate.decode(f,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(u||(u=r.PublicKey.decode(f,"der")),i=u.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return r.RSAPublicKey.decode(u.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return u.subjectPrivateKey=u.subjectPublicKey,{type:"ec",data:u};case"1.2.840.10040.4.1":return u.algorithm.params.pub_key=r.DSAparam.decode(u.subjectPublicKey.data,"der"),{type:"dsa",data:u.algorithm.params};default:throw new Error("unknown key id "+i)}case"ENCRYPTED PRIVATE KEY":f=function(t,e){var i=t.algorithm.decrypt.kde.kdeparams.salt,r=parseInt(t.algorithm.decrypt.kde.kdeparams.iters.toString(),10),o=n[t.algorithm.decrypt.cipher.algo.join(".")],u=t.algorithm.decrypt.cipher.iv,l=t.subjectPrivateKey,d=parseInt(o.split("-")[1],10)/8,f=s.pbkdf2Sync(e,i,r,d,"sha1"),c=a.createDecipheriv(o,f,u),p=[];return p.push(c.update(l)),p.push(c.final()),h.concat(p)}(f=r.EncryptedPrivateKey.decode(f,"der"),e);case"PRIVATE KEY":switch(i=(u=r.PrivateKey.decode(f,"der")).algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return r.RSAPrivateKey.decode(u.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:u.algorithm.curve,privateKey:r.ECPrivateKey.decode(u.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return u.algorithm.params.priv_key=r.DSAparam.decode(u.subjectPrivateKey,"der"),{type:"dsa",params:u.algorithm.params};default:throw new Error("unknown key id "+i)}case"RSA PUBLIC KEY":return r.RSAPublicKey.decode(f,"der");case"RSA PRIVATE KEY":return r.RSAPrivateKey.decode(f,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:r.DSAPrivateKey.decode(f,"der")};case"EC PRIVATE KEY":return{curve:(f=r.ECPrivateKey.decode(f,"der")).parameters.value,privateKey:f.privateKey};default:throw new Error("unknown key type "+d)}}t.exports=u,u.signature=r.signature},function(t,e,i){"use strict";var r,n=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},o=function(){var t={};return function(e){if(void 0===t[e]){var i=document.querySelector(e);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(t){i=null}t[e]=i}return t[e]}}(),a=[];function s(t){for(var e=-1,i=0;i<a.length;i++)if(a[i].identifier===t){e=i;break}return e}function h(t,e){for(var i={},r=[],n=0;n<t.length;n++){var o=t[n],h=e.base?o[0]+e.base:o[0],u=i[h]||0,l="".concat(h," ").concat(u);i[h]=u+1;var d=s(l),f={css:o[1],media:o[2],sourceMap:o[3]};-1!==d?(a[d].references++,a[d].updater(f)):a.push({identifier:l,updater:g(f,e),references:1}),r.push(l)}return r}function u(t){var e=document.createElement("style"),r=t.attributes||{};if(void 0===r.nonce){var n=i.nc;n&&(r.nonce=n)}if(Object.keys(r).forEach((function(t){e.setAttribute(t,r[t])})),"function"==typeof t.insert)t.insert(e);else{var a=o(t.insert||"head");if(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(e)}return e}var l,d=(l=[],function(t,e){return l[t]=e,l.filter(Boolean).join("\n")});function f(t,e,i,r){var n=i?"":r.media?"@media ".concat(r.media," {").concat(r.css,"}"):r.css;if(t.styleSheet)t.styleSheet.cssText=d(e,n);else{var o=document.createTextNode(n),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(o,a[e]):t.appendChild(o)}}function c(t,e,i){var r=i.css,n=i.media,o=i.sourceMap;if(n?t.setAttribute("media",n):t.removeAttribute("media"),o&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),t.styleSheet)t.styleSheet.cssText=r;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(r))}}var p=null,m=0;function g(t,e){var i,r,n;if(e.singleton){var o=m++;i=p||(p=u(e)),r=f.bind(null,i,o,!1),n=f.bind(null,i,o,!0)}else i=u(e),r=c.bind(null,i,e),n=function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(i)};return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else n()}}t.exports=function(t,e){(e=e||{}).singleton||"boolean"==typeof e.singleton||(e.singleton=n());var i=h(t=t||[],e);return function(t){if(t=t||[],"[object Array]"===Object.prototype.toString.call(t)){for(var r=0;r<i.length;r++){var n=s(i[r]);a[n].references--}for(var o=h(t,e),u=0;u<i.length;u++){var l=s(i[u]);0===a[l].references&&(a[l].updater(),a.splice(l,1))}i=o}}}},function(t,e,i){"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var i=function(t,e){var i=t[1]||"",r=t[3];if(!r)return i;if(e&&"function"==typeof btoa){var n=(a=r,s=btoa(unescape(encodeURIComponent(JSON.stringify(a)))),h="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(s),"/*# ".concat(h," */")),o=r.sources.map((function(t){return"/*# sourceURL=".concat(r.sourceRoot||"").concat(t," */")}));return[i].concat(o).concat([n]).join("\n")}var a,s,h;return[i].join("\n")}(e,t);return e[2]?"@media ".concat(e[2]," {").concat(i,"}"):i})).join("")},e.i=function(t,i,r){"string"==typeof t&&(t=[[null,t,""]]);var n={};if(r)for(var o=0;o<this.length;o++){var a=this[o][0];null!=a&&(n[a]=!0)}for(var s=0;s<t.length;s++){var h=[].concat(t[s]);r&&n[h[0]]||(i&&(h[2]?h[2]="".concat(i," and ").concat(h[2]):h[2]=i),e.push(h))}},e}},function(t,e,i){var r;t.exports=(r=i(5),function(t){var e=r,i=e.lib,n=i.Base,o=i.WordArray,a=e.x64={};a.Word=n.extend({init:function(t,e){this.high=t,this.low=e}}),a.WordArray=n.extend({init:function(e,i){e=this.words=e||[],this.sigBytes=i!=t?i:8*e.length},toX32:function(){for(var t=this.words,e=t.length,i=[],r=0;r<e;r++){var n=t[r];i.push(n.high),i.push(n.low)}return o.create(i,this.sigBytes)},clone:function(){for(var t=n.clone.call(this),e=t.words=this.words.slice(0),i=e.length,r=0;r<i;r++)e[r]=e[r].clone();return t}})}(),r)},function(t,e,i){"use strict";var r=i(1);function n(t,e,i){var r=t;if(e+i<r.length){for(;i--;)if(128!=(192&r[++e]))return!1;return!0}return!1}var o,a=function(t){for(var e=[],i=t,r=0,o=t.length;r<o;)if(i[r]<128)e.push(String.fromCharCode(i[r])),++r;else{if(i[r]<192);else if(i[r]<224){if(n(i,r,1)){var a=(31&i[r])<<6|63&i[r+1];if(a>=128){e.push(String.fromCharCode(65535&a)),r+=2;continue}}}else if(i[r]<240){if(n(i,r,2)){var s=(15&i[r])<<12|(63&i[r+1])<<6|63&i[r+2];if(s>=2048&&55296!=(63488&s)){e.push(String.fromCharCode(65535&s)),r+=3;continue}}}else if(i[r]<248&&n(i,r,3)){var h=(7&i[r])<<18|(63&i[r+1])<<12|(63&i[r+2])<<6|63&i[r+3];if(h>65536&&h<1114112){h-=65536,e.push(String.fromCharCode(h>>>10|55296)),e.push(String.fromCharCode(1023&h|56320)),r+=4;continue}}e.push(String.fromCharCode(65533)),++r}return e.join("")},s=i(2),h=(o=new ArrayBuffer(2),new DataView(o).setInt16(0,256,!0),256===new Int16Array(o)[0]),u=function(){function t(){}return t.parseScriptData=function(e,i,n){var o={};try{var a=t.parseValue(e,i,n);if(n-a.size<1)return o;var s=t.parseValue(e,i+a.size,n-a.size);o[a.data]=s.data}catch(t){r.a.e("AMF",t.toString())}return o},t.parseObject=function(e,i,r){if(r<3)throw new s.a("Data not enough when parse ScriptDataObject");var n=t.parseString(e,i,r),o=t.parseValue(e,i+n.size,r-n.size),a=o.objectEnd;return{data:{name:n.data,value:o.data},size:n.size+o.size,objectEnd:a}},t.parseVariable=function(e,i,r){return t.parseObject(e,i,r)},t.parseString=function(t,e,i){if(i<2)throw new s.a("Data not enough when parse String");var r=new DataView(t,e,i).getUint16(0,!h);return{data:r>0?a(new Uint8Array(t,e+2,r)):"",size:2+r}},t.parseLongString=function(t,e,i){if(i<4)throw new s.a("Data not enough when parse LongString");var r=new DataView(t,e,i).getUint32(0,!h);return{data:r>0?a(new Uint8Array(t,e+4,r)):"",size:4+r}},t.parseDate=function(t,e,i){if(i<10)throw new s.a("Data size invalid when parse Date");var r=new DataView(t,e,i),n=r.getFloat64(0,!h),o=r.getInt16(8,!h);return{data:new Date(n+=60*o*1e3),size:10}},t.parseValue=function(e,i,n){if(n<1)throw new s.a("Data not enough when parse Value");var o,a=new DataView(e,i,n),u=1,l=a.getUint8(0),d=!1;try{switch(l){case 0:o=a.getFloat64(1,!h),u+=8;break;case 1:o=!!a.getUint8(1),u+=1;break;case 2:var f=t.parseString(e,i+1,n-1);o=f.data,u+=f.size;break;case 3:o={};var c=0;for(9==(16777215&a.getUint32(n-4,!h))&&(c=3);u<n-4;){var p=t.parseObject(e,i+u,n-u-c);if(p.objectEnd)break;o[p.data.name]=p.data.value,u+=p.size}if(u<=n-3)9===(16777215&a.getUint32(u-1,!h))&&(u+=3);break;case 8:o={},u+=4;var m=0;for(9==(16777215&a.getUint32(n-4,!h))&&(m=3);u<n-8;){var g=t.parseVariable(e,i+u,n-u-m);if(g.objectEnd)break;o[g.data.name]=g.data.value,u+=g.size}if(u<=n-3)9===(16777215&a.getUint32(u-1,!h))&&(u+=3);break;case 9:o=void 0,u=1,d=!0;break;case 10:o=[];var v=a.getUint32(1,!h);u+=4;for(var y=0;y<v;y++){var b=t.parseValue(e,i+u,n-u);o.push(b.data),u+=b.size}break;case 11:var _=t.parseDate(e,i+1,n-1);o=_.data,u+=_.size;break;case 12:var w=t.parseString(e,i+1,n-1);o=w.data,u+=w.size;break;default:u=n}}catch(t){r.a.e("AMF",t.toString())}return{data:o,size:u,objectEnd:d}},t}(),l=i(23),d=i(7),f=i(12),c=i(0);function p(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var m=function(){function t(t,e,i,r,n,o){this.TAG="FLVDemuxer",this._config=e,this._onError=null,this._onMediaInfo=null,this._onMetaDataArrived=null,this._onScriptDataArrived=null,this._onTrackMetadata=null,this._onDataAvailable=null,this._dataOffset=t.dataOffset,this._firstParse=!0,this._dispatch=!1,this._hasAudio=t.hasAudioTrack,this._hasVideo=t.hasVideoTrack,this._hasAudioFlagOverrided=!1,this._hasVideoFlagOverrided=!1,this._audioInitialMetadataDispatched=!1,this._videoInitialMetadataDispatched=!1,this._mediaInfo=new f.a,this._mediaInfo.hasAudio=this._hasAudio,this._mediaInfo.hasVideo=this._hasVideo,this._metadata=null,this._audioMetadata=null,this._videoMetadata=null,this._naluLengthSize=4,this._timestampBase=0,this._timescale=1e3,this._duration=0,this._durationOverrided=!1,this._referenceFrameRate={fixed:!0,fps:23.976,fps_num:23976,fps_den:1e3},this._flvSoundRateTable=[5500,11025,22050,44100,48e3],this._mpegSamplingRates=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],this._mpegAudioV10SampleRateTable=[44100,48e3,32e3,0],this._mpegAudioV20SampleRateTable=[22050,24e3,16e3,0],this._mpegAudioV25SampleRateTable=[11025,12e3,8e3,0],this._mpegAudioL1BitRateTable=[0,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1],this._mpegAudioL2BitRateTable=[0,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1],this._mpegAudioL3BitRateTable=[0,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],this._videoTrack={type:"video",id:1,sequenceNumber:0,samples:[],length:0},this._audioTrack={type:"audio",id:2,sequenceNumber:0,samples:[],length:0},this._littleEndian=function(){var t=new ArrayBuffer(2);return new DataView(t).setInt16(0,256,!0),256===new Int16Array(t)[0]}(),this.videoCodecId=0,this.audioCodecId=0,this._AVC_SPS=null,this._AVC_PPS=null,this._HEVC_VPS=null,this._HEVC_SPS=null,this._HEVC_PPS=null,this._StartCode=[0,0,0,1],this._SampleRate=8e3,this._ChannelNum=1,this._pause=!1,this._callbackInitFlag=!1,this._callbackMediaDataFunc=i,this._callbackMediaDataUserPtr=r,this._callbackPlaybackTimeUserPtr=n,this.getVideoInfoCallbackFunc=o,this._debugProcCount=0,this._AudioMaxFrameSize=0,this._lastVideoPts=0,this._lastAudioPts=0,this.snapshotCount=0,this.fullFrameData=new Uint8Array(2097152),this.fullFramePos=0,this._DebugBuf=null,this._DebugBufPos=0}var e,i,n,o=t.prototype;return o.destroy=function(){this._mediaInfo=null,this._metadata=null,this._audioMetadata=null,this._videoMetadata=null,this._videoTrack=null,this._audioTrack=null,this._onError=null,this._onMediaInfo=null,this._onMetaDataArrived=null,this._onScriptDataArrived=null,this._onTrackMetadata=null,this._onDataAvailable=null},t.probe=function(t){var e=new Uint8Array(t),i={match:!1};if(70!==e[0]||76!==e[1]||86!==e[2]||1!==e[3])return i;var r,n,o=(4&e[4])>>>2!=0,a=0!=(1&e[4]),s=(r=e)[n=5]<<24|r[n+1]<<16|r[n+2]<<8|r[n+3];return s<9?i:{match:!0,consumed:s,dataOffset:s,hasAudioTrack:o,hasVideoTrack:a}},o.bindDataSource=function(t){return t.onDataArrival=this.parseChunks.bind(this),this},o.resetMediaInfo=function(){this._mediaInfo=new f.a},o.pause=function(){this._pause=!0},o.resume=function(){this._pause=!1},o._onDataAvailableToSoftwareDecodeVideo=function(t,e){var i=e.samples,r=-1;for(i.length>1&&(r=0);i.length;){for(var n=i.shift(),o=0,a=0;a<n.units.length;a++)o+=n.units[a].data.length;for(var s=0,h=new Uint8Array(o);n.units.length;){var u=n.units.shift();27==t&&(u.data[0]=0,u.data[1]=0,u.data[2]=0,u.data[3]=1),h.set(u.data,s),s+=u.data.length}this._callbackMediaDataFunc&&(r>=0&&r++,this._callbackMediaDataFunc(this._callbackMediaDataUserPtr,!0,1,t,n.isKeyframe,h,o,n.pts,0,0))}},o._onDataAvailableToSoftwareDecodeAudio=function(t,e){var i=e.samples,r=-1;for(i.length>1&&(r=0);i.length;){var n=i.shift();this._callbackMediaDataFunc&&(r>=0&&r++,this._callbackMediaDataFunc(this._callbackMediaDataUserPtr,!0,2,t,0,n.unit,n.length,this._SampleRate,this._ChannelNum,this._SampleRate>=44100?32:16))}},o._isInitialMetadataDispatched=function(){return this._hasAudio&&this._hasVideo?this._audioInitialMetadataDispatched&&this._videoInitialMetadataDispatched:this._hasAudio&&!this._hasVideo?this._audioInitialMetadataDispatched:!(this._hasAudio||!this._hasVideo)&&this._videoInitialMetadataDispatched},o.parseChunks=function(e,i){if(null!==e){if(!(this._onError&&this._onMediaInfo&&this._onTrackMetadata&&this._onDataAvailable))throw new s.a("Flv: onError & onMediaInfo & onTrackMetadata & onDataAvailable callback must be specified");var n=0,o=this._littleEndian;if(0===i){if(!(e.byteLength>13))return 0;n=t.probe(e).dataOffset}if(this._firstParse)this._firstParse=!1,i+n!==this._dataOffset&&r.a.w(this.TAG,"First time parsing but chunk byteStart invalid!"),0!==new DataView(e,n).getUint32(0,!o)&&r.a.w(this.TAG,"PrevTagSize0 !== 0 !!!"),n+=4;for(;n<e.byteLength;){this._dispatch=!0;var a=new DataView(e,n);if(n+11+4>e.byteLength)break;var h=a.getUint8(0),u=16777215&a.getUint32(0,!o);if(n+11+u+4>e.byteLength)break;if(8===h||9===h||18===h){var l=a.getUint8(4),d=a.getUint8(5),f=a.getUint8(6)|d<<8|l<<16|a.getUint8(7)<<24;0!==(16777215&a.getUint32(7,!o))&&r.a.w(this.TAG,"Meet tag which has StreamID != 0!");var c=n+11;if(!this._pause)switch(h){case 8:if(this._lastAudioPts>0)this._lastAudioPts;this._lastAudioPts=f,this.audioCodecId=this._parseAudioData(e,c,u,f);break;case 9:if(this._lastVideoPts>0)this._lastVideoPts;this._lastVideoPts=f,this.videoCodecId=this._parseVideoData(e,c,u,f,i+n);break;case 18:this._parseScriptData(e,c,u)}var p=a.getUint32(11+u,!o);p!==11+u&&r.a.w(this.TAG,"Invalid PrevTagSize "+p),n+=11+u+4}else r.a.w(this.TAG,"Unsupported tag type "+h+", skipped"),n+=11+u+4}return this._isInitialMetadataDispatched()?this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&(7==this.videoCodecId||0==this.videoCodecId?"auto"===this._config.decodeType||"hard"===this._config.decodeType?(this._onDataAvailable(this._audioTrack,this._videoTrack),this._callbackInitFlag||(this._callbackInitFlag=!0,this._callbackMediaDataFunc&&this._callbackMediaDataFunc(this._callbackMediaDataUserPtr,!1,1,0,0,null,0,0,0,0))):(this._videoTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeVideo(27,this._videoTrack),this._audioTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeAudio(10==this.audioCodecId?86018:0,this._audioTrack)):12==this.videoCodecId&&(this._videoTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeVideo(173,this._videoTrack),this._audioTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeAudio(10==this.audioCodecId?86018:0,this._audioTrack))):(this._debugProcCount++,this._debugProcCount>=60&&(this._debugProcCount=0,this._hasAudio=!1,this._mediaInfo.hasAudio=!1)),n}},o._parseScriptData=function(t,e,i){var n=u.parseScriptData(t,e,i);if(n.hasOwnProperty("onMetaData")){if(null==n.onMetaData||"object"!=typeof n.onMetaData)return void r.a.w(this.TAG,"Invalid onMetaData structure!");this._metadata&&r.a.w(this.TAG,"Found another onMetaData tag!"),this._metadata=n;var o=this._metadata.onMetaData;if(this._onMetaDataArrived&&this._onMetaDataArrived(Object.assign({},o)),"boolean"==typeof o.hasAudio&&!1===this._hasAudioFlagOverrided&&(this._hasAudio=o.hasAudio,this._mediaInfo.hasAudio=this._hasAudio),"boolean"==typeof o.hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=o.hasVideo,this._mediaInfo.hasVideo=this._hasVideo),"number"==typeof o.audiodatarate&&(this._mediaInfo.audioDataRate=o.audiodatarate),"number"==typeof o.videodatarate&&(this._mediaInfo.videoDataRate=o.videodatarate),"number"==typeof o.width&&(this._mediaInfo.width=o.width),"number"==typeof o.height&&(this._mediaInfo.height=o.height),"number"==typeof o.duration){if(!this._durationOverrided){var a=Math.floor(o.duration*this._timescale);this._duration=a,this._mediaInfo.duration=a}}else this._mediaInfo.duration=0;if("number"==typeof o.framerate){var s=Math.floor(1e3*o.framerate);if(s>0){var h=s/1e3;this._referenceFrameRate.fixed=!0,this._referenceFrameRate.fps=h,this._referenceFrameRate.fps_num=s,this._referenceFrameRate.fps_den=1e3,this._mediaInfo.fps=h}}if("object"==typeof o.keyframes){this._mediaInfo.hasKeyframesIndex=!0;var l=o.keyframes;this._mediaInfo.keyframesIndex=this._parseKeyframesIndex(l),o.keyframes=null}else this._mediaInfo.hasKeyframesIndex=!1;this._dispatch=!1,this._mediaInfo.metadata=o,r.a.v(this.TAG,"Parsed onMetaData"),this._mediaInfo.isComplete()&&this._onMediaInfo(this._mediaInfo)}Object.keys(n).length>0&&this._onScriptDataArrived&&this._onScriptDataArrived(Object.assign({},n))},o._parseKeyframesIndex=function(t){for(var e=[],i=[],r=1;r<t.times.length;r++){var n=this._timestampBase+Math.floor(1e3*t.times[r]);e.push(n),i.push(t.filepositions[r])}return{times:e,filepositions:i}},o._parseAudioData=function(t,e,i,n){if(i<=1)return r.a.w(this.TAG,"Flv: Invalid audio packet, missing SoundData payload!"),0;if(!0===this._hasAudioFlagOverrided&&!1===this._hasAudio)return 0;this._littleEndian;var o=new DataView(t,e,i).getUint8(0),a=o>>>4;if(2!==a&&10!==a)return this._onError(d.a.CODEC_UNSUPPORTED,"Flv: Unsupported audio codec idx: "+a),0;var s=0,h=(12&o)>>>2;if(!(h>=0&&h<=4))return this._onError(d.a.FORMAT_ERROR,"Flv: Invalid audio sample rate idx: "+h),0;s=this._flvSoundRateTable[h];var u=1&o,l=this._audioMetadata,f=this._audioTrack;if(l||(!1===this._hasAudio&&!1===this._hasAudioFlagOverrided&&(this._hasAudio=!0,this._mediaInfo.hasAudio=!0),(l=this._audioMetadata={}).type="audio",l.id=f.id,l.timescale=this._timescale,l.duration=this._duration,l.audioSampleRate=s,l.channelCount=0===u?1:2),10===a){var c=this._parseAACAudioData(t,e+1,i-1);if(null==c)return 0;if(0===c.packetType){l.config&&r.a.w(this.TAG,"Found another AudioSpecificConfig!");var p=c.data;l.audioSampleRate=p.samplingRate,l.channelCount=p.channelCount,l.codec=p.codec,l.originalCodec=p.originalCodec,l.config=p.config,l.refSampleDuration=1024/l.audioSampleRate*l.timescale,this._SampleRate=p.samplingRate,this._ChannelNum=p.channelCount,this._isInitialMetadataDispatched()?this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack):this._audioInitialMetadataDispatched=!0,this._dispatch=!1,this._onTrackMetadata("audio",l);var m=this._mediaInfo;m.audioCodec=l.originalCodec,m.audioSampleRate=l.audioSampleRate,m.audioChannelCount=l.channelCount,m.hasVideo?null!=m.videoCodec&&(m.mimeType='video/x-flv; codecs="'+m.videoCodec+","+m.audioCodec+'"'):m.mimeType='video/x-flv; codecs="'+m.audioCodec+'"',m.isComplete()&&this._onMediaInfo(m)}else if(1===c.packetType){var g=this._timestampBase+n,v={unit:c.data,length:c.data.byteLength,dts:g,pts:g};f.samples.push(v),f.length+=c.data.length,c.data.length>this._AudioMaxFrameSize&&(this._AudioMaxFrameSize=c.data.length)}else r.a.e(this.TAG,"Flv: Unsupported AAC data type "+c.packetType)}else if(2===a){if(!l.codec){var y=this._parseMP3AudioData(t,e+1,i-1,!0);if(null==y)return 0;l.audioSampleRate=y.samplingRate,l.channelCount=y.channelCount,l.codec=y.codec,l.originalCodec=y.originalCodec,l.refSampleDuration=1152/l.audioSampleRate*l.timescale,r.a.v(this.TAG,"Parsed MPEG Audio Frame Header"),this._audioInitialMetadataDispatched=!0,this._onTrackMetadata("audio",l);var b=this._mediaInfo;b.audioCodec=l.codec,b.audioSampleRate=l.audioSampleRate,b.audioChannelCount=l.channelCount,b.audioDataRate=y.bitRate,b.hasVideo?null!=b.videoCodec&&(b.mimeType='video/x-flv; codecs="'+b.videoCodec+","+b.audioCodec+'"'):b.mimeType='video/x-flv; codecs="'+b.audioCodec+'"',b.isComplete()&&this._onMediaInfo(b)}var _=this._parseMP3AudioData(t,e+1,i-1,!1);if(null==_)return 0;var w=this._timestampBase+n,A={unit:_,length:_.byteLength,dts:w,pts:w};f.samples.push(A),f.length+=_.length}return a},o._parseAACAudioData=function(t,e,i){if(!(i<=1)){var n={},o=new Uint8Array(t,e,i);return n.packetType=o[0],0===o[0]?n.data=this._parseAACAudioSpecificConfig(t,e+1,i-1):n.data=o.subarray(1),n}r.a.w(this.TAG,"Flv: Invalid AAC packet, missing AACPacketType or/and Data!")},o._parseAACAudioSpecificConfig=function(t,e,i){var r,n,o=new Uint8Array(t,e,i),a=null,s=0,h=null;if(s=r=o[0]>>>3,(n=(7&o[0])<<1|o[1]>>>7)<0||n>=this._mpegSamplingRates.length)this._onError(d.a.FORMAT_ERROR,"Flv: AAC invalid sampling frequency index!");else{var u=this._mpegSamplingRates[n],l=(120&o[1])>>>3;if(!(l<0||l>=8)){5===s&&(h=(7&o[1])<<1|o[2]>>>7,(124&o[2])>>>2);var f=self.navigator.userAgent.toLowerCase();return-1!==f.indexOf("firefox")?n>=6?(s=5,a=new Array(4),h=n-3):(s=2,a=new Array(2),h=n):-1!==f.indexOf("android")?(s=2,a=new Array(2),h=n):(s=5,h=n,a=new Array(4),n>=6?h=n-3:1===l&&(s=2,a=new Array(2),h=n)),a[0]=s<<3,a[0]|=(15&n)>>>1,a[1]=(15&n)<<7,a[1]|=(15&l)<<3,5===s&&(a[1]|=(15&h)>>>1,a[2]=(1&h)<<7,a[2]|=8,a[3]=0),{config:a,samplingRate:u,channelCount:l,codec:"mp4a.40."+s,originalCodec:"mp4a.40."+r}}this._onError(d.a.FORMAT_ERROR,"Flv: AAC invalid channel configuration")}},o._parseMP3AudioData=function(t,e,i,n){if(!(i<4)){this._littleEndian;var o=new Uint8Array(t,e,i),a=null;if(n){if(255!==o[0])return;var s=o[1]>>>3&3,h=(6&o[1])>>1,u=(240&o[2])>>>4,l=(12&o[2])>>>2,d=3!==(o[3]>>>6&3)?2:1,f=0,c=0;switch(s){case 0:f=this._mpegAudioV25SampleRateTable[l];break;case 2:f=this._mpegAudioV20SampleRateTable[l];break;case 3:f=this._mpegAudioV10SampleRateTable[l]}switch(h){case 1:34,u<this._mpegAudioL3BitRateTable.length&&(c=this._mpegAudioL3BitRateTable[u]);break;case 2:33,u<this._mpegAudioL2BitRateTable.length&&(c=this._mpegAudioL2BitRateTable[u]);break;case 3:32,u<this._mpegAudioL1BitRateTable.length&&(c=this._mpegAudioL1BitRateTable[u])}a={bitRate:c,samplingRate:f,channelCount:d,codec:"mp3",originalCodec:"mp3"}}else a=o;return a}r.a.w(this.TAG,"Flv: Invalid MP3 packet, header missing!")},o._parseVideoData=function(t,e,i,n,o){if(i<=1)r.a.w(this.TAG,"Flv: Invalid video packet, missing VideoData payload!");else if(!0!==this._hasVideoFlagOverrided||!1!==this._hasVideo){var a=new Uint8Array(t,e,i)[0],s=(240&a)>>>4,h=15&a;if(7===h||12===h)return this._parseAVCAndHEVCVideoPacket(h,t,e+1,i-1,n,o,s),h;this._onError(d.a.CODEC_UNSUPPORTED,"Flv: Unsupported codec in video frame: "+h)}},o._parseAVCAndHEVCVideoPacket=function(t,e,i,n,o,a,s){if(n<4)r.a.w(this.TAG,"Flv: Invalid AVC packet, missing AVCPacketType or/and CompositionTime");else{var h=this._littleEndian,u=new DataView(e,i,n),l=u.getUint8(0),f=(16777215&u.getUint32(0,!h))<<8>>8;if(0===l)7==t?(c.setCodecTypeStr("H264"),this._parseAVCDecoderConfigurationRecord(e,i+4,n-4)):(c.setCodecTypeStr("H265"),this._parseHEVCDecoderConfigurationRecord(e,i+4,n-4));else if(1===l)7==t?this._parseAVCVideoData(e,i+4,n-4,o,a,s,f):this._parseHEVCVideoData(e,i+4,n-4,o,a,s,f);else if(2!==l)return void this._onError(d.a.FORMAT_ERROR,"Flv: Invalid video packet type "+l)}},o._parseAVCDecoderConfigurationRecord=function(t,e,i){if(i<7)r.a.w(this.TAG,"Flv: Invalid AVCDecoderConfigurationRecord, lack of data!");else{var n=this._videoMetadata,o=this._videoTrack,a=this._littleEndian,s=new DataView(t,e,i);n?void 0!==n.avcc&&r.a.w(this.TAG,"Found another AVCDecoderConfigurationRecord!"):(!1===this._hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=!0,this._mediaInfo.hasVideo=!0),(n=this._videoMetadata={}).type="video",n.id=o.id,n.timescale=this._timescale,n.duration=this._duration);var h=s.getUint8(0),u=s.getUint8(1);s.getUint8(2),s.getUint8(3);if(1===h&&0!==u)if(this._naluLengthSize=1+(3&s.getUint8(4)),3===this._naluLengthSize||4===this._naluLengthSize){var f=31&s.getUint8(5);if(0!==f){f>1&&r.a.w(this.TAG,"Flv: Strange AVCDecoderConfigurationRecord: SPS Count = "+f);for(var c=6,p=0;p<f;p++){var m=s.getUint16(c,!a);if(c+=2,0!==m){var g=new Uint8Array(t,e+c,m);this._AVC_SPS=new Uint8Array(m+4),c+=m,this._AVC_SPS.set(this._StartCode,0),this._AVC_SPS.set(g,4);var v=l.a.parseSPS(g);if(0===p){n.codecWidth=v.codec_size.width,n.codecHeight=v.codec_size.height,n.presentWidth=v.present_size.width,n.presentHeight=v.present_size.height,n.profile=v.profile_string,n.level=v.level_string,n.bitDepth=v.bit_depth,n.chromaFormat=v.chroma_format,n.sarRatio=v.sar_ratio,n.frameRate=v.frame_rate,!1!==v.frame_rate.fixed&&0!==v.frame_rate.fps_num&&0!==v.frame_rate.fps_den||(n.frameRate=this._referenceFrameRate);var y=n.frameRate.fps_den,b=n.frameRate.fps_num;n.refSampleDuration=n.timescale*(y/b);for(var _=g.subarray(1,4),w="avc1.",A=0;A<3;A++){var M=_[A].toString(16);M.length<2&&(M="0"+M),w+=M}n.codec=w;var E=this._mediaInfo;E.width=n.codecWidth,E.height=n.codecHeight,E.fps=n.frameRate.fps,E.profile=n.profile,E.level=n.level,E.refFrames=v.ref_frames,E.chromaFormat=v.chroma_format_string,E.sarNum=n.sarRatio.width,E.sarDen=n.sarRatio.height,E.videoCodec=w,E.hasAudio?null!=E.audioCodec&&(E.mimeType='video/x-flv; codecs="'+E.videoCodec+","+E.audioCodec+'"'):E.mimeType='video/x-flv; codecs="'+E.videoCodec+'"',E.isComplete()&&this._onMediaInfo(E)}}}var S=s.getUint8(c);if(0!==S){S>1&&r.a.w(this.TAG,"Flv: Strange AVCDecoderConfigurationRecord: PPS Count = "+S),c++;for(var k=0;k<S;k++){var T=s.getUint16(c,!a);if(c+=2,0!==T){var R=new Uint8Array(t,e+c,T);this._AVC_PPS=new Uint8Array(T+4),this._AVC_PPS.set(this._StartCode,0),this._AVC_PPS.set(R,4),c+=T}}n.avcc=new Uint8Array(i),n.avcc.set(new Uint8Array(t,e,i),0),this._isInitialMetadataDispatched()?this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack):this._videoInitialMetadataDispatched=!0,this._dispatch=!1,this._onTrackMetadata("video",n),this.getVideoInfoCallbackFunc&&null!=this.getVideoInfoCallbackFunc&&this.getVideoInfoCallbackFunc(this._callbackPlaybackTimeUserPtr,"H264",n.codecWidth,n.codecHeight)}else this._onError(d.a.FORMAT_ERROR,"Flv: Invalid AVCDecoderConfigurationRecord: No PPS")}else this._onError(d.a.FORMAT_ERROR,"Flv: Invalid AVCDecoderConfigurationRecord: No SPS")}else this._onError(d.a.FORMAT_ERROR,"Flv: Strange NaluLengthSizeMinusOne: "+(this._naluLengthSize-1));else this._onError(d.a.FORMAT_ERROR,"Flv: Invalid AVCDecoderConfigurationRecord")}},o.uint8arrayToBase64=function(t){for(var e,i=0,r=t.length,n="";i<r;)e=t.subarray(i,Math.min(i+32768,r)),n+=String.fromCharCode.apply(null,e),i+=32768;return btoa(n)},o._parseAVCVideoData=function(t,e,i,n,o,a,s){var h=this._littleEndian,u=new DataView(t,e,i),l=[],d=0,f=0,c=this._naluLengthSize,p=this._timestampBase+n,m=1===a,g=!0;for(7==this.videoCodecId&&("auto"!==this._config.decodeType&&"hard"!==this._config.decodeType||(g=!1));f<i;){if(f+4>=i){r.a.w(this.TAG,"Malformed Nalu near timestamp "+p+", offset = "+f+", dataSize = "+i);break}var v=u.getUint32(f,!h);if(3===c&&(v>>>=8),v>i-c)return void r.a.w(this.TAG,"Malformed Nalus near timestamp "+p+", NaluSize > DataSize!");var y=31&u.getUint8(f+c);if(5===y&&(m=!0,l.length<1&&this._AVC_SPS&&this._AVC_SPS.length>0)){if(g){var b={type:7,data:this._AVC_SPS};l.push(b),d+=b.data.length;var _={type:8,data:this._AVC_PPS};l.push(_),d+=_.data.length}else{var w=this._AVC_SPS.subarray(0,this._AVC_SPS.length),A=w.length-4;w[0]=A>>24,w[1]=A>>16,w[2]=A>>8,w[3]=255&A;var M={type:7,data:w};l.push(M),d+=M.data.length;var E=this._AVC_PPS.subarray(0,this._AVC_PPS.length),S=E.length-4;E[0]=S>>24,E[1]=S>>16,E[2]=S>>8,E[3]=255&S;var k={type:8,data:E};l.push(k),d+=k.data.length}this.snapshotCount>0&&this.fullFrameData&&null!=this.fullFrameData&&(this.fullFrameData.set(this._AVC_SPS,0),this.fullFrameData[0]=0,this.fullFrameData[1]=0,this.fullFrameData[2]=0,this.fullFrameData[3]=1,this.fullFramePos=this._AVC_SPS.length,this.fullFrameData.set(this._AVC_PPS,this.fullFramePos),this.fullFramePos+=this._AVC_PPS.length,this.fullFrameData[this._AVC_SPS.length+0]=0,this.fullFrameData[this._AVC_SPS.length+1]=0,this.fullFrameData[this._AVC_SPS.length+2]=0,this.fullFrameData[this._AVC_SPS.length+3]=1)}var T=new Uint8Array(t,e+f,c+v),R={type:y,data:T};if(l.push(R),d+=T.byteLength,f+=c+v,m&&this.snapshotCount>0&&this.fullFrameData&&null!=this.fullFrameData&&this.fullFramePos>0&&window.vssModuleInitialized){this.snapshotCount--,this.fullFrameData.set(T,this.fullFramePos),this.fullFrameData[this.fullFramePos]=0,this.fullFrameData[this.fullFramePos+1]=0,this.fullFrameData[this.fullFramePos+2]=0,this.fullFrameData[this.fullFramePos+3]=1,this.fullFramePos+=T.length;var I=window.vssPlayerModule,C=window.VssPlayerWasmKits;if(I&&null!=I&&C&&null!=C){var P=new Uint8Array(this.fullFrameData);if(P.length>0){var x=I._malloc(P.length);I.HEAP8.set(P,x);var D=C.convertFrame2Image(0,x,this.fullFramePos,C.yuvData,0);if(D<1);else{var O=I.HEAPU8.subarray(C.yuvData,C.yuvData+D),B=this.uint8arrayToBase64(O),L=document.createElement("a");document.body.append(L),L.href="data:image/jpeg;base64,"+B,L.download="snapshot.jpg",L.rel="noopener noreferrer",L.click(),document.body.removeChild(L)}I._free(x)}}this.fullFramePos=0}}if(l.length){var W=this._videoTrack,N={units:l,length:d,isKeyframe:m,dts:p,cts:s,pts:p+s};m&&(N.fileposition=o),W.samples.push(N),W.length+=d}},o._parseHEVCDecoderConfigurationRecord=function(t,e,i){if(i<7)r.a.w(this.TAG,"Flv: Invalid AVCDecoderConfigurationRecord, lack of data!");else{var n=this._videoMetadata,o=this._videoTrack,a=this._littleEndian,s=new DataView(t,e,i);n?void 0!==n.avcc&&r.a.w(this.TAG,"Found another AVCDecoderConfigurationRecord!"):(!1===this._hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=!0,this._mediaInfo.hasVideo=!0),(n=this._videoMetadata={}).type="video",n.id=o.id,n.timescale=this._timescale,n.duration=this._duration);var h=s.getUint8(0),u=s.getUint8(1),l=s.getUint8(2),d=s.getUint8(3);if(0===h&&0===u&&0===l&&1===d);else{var f=22,c=s.getUint8(f);f+=1;for(var p=0;p<c;p++){var m=s.getUint8(f);f+=1;s.getUint16(f,!a);f+=2;var g=s.getUint16(f,!a);if(f+=2,32===m||160==m){var v=new Uint8Array(t,e+f,g);this._HEVC_VPS=new Uint8Array(g+4),this._HEVC_VPS.set(this._StartCode,0),this._HEVC_VPS.set(v,4)}else if(33===m||161==m){var y=new Uint8Array(t,e+f,g);this._HEVC_SPS=new Uint8Array(g+4),this._HEVC_SPS.set(this._StartCode,0),this._HEVC_SPS.set(y,4)}else if(34===m||162==m){var b=new Uint8Array(t,e+f,g);this._HEVC_PPS=new Uint8Array(g+4),this._HEVC_PPS.set(this._StartCode,0),this._HEVC_PPS.set(b,4)}f+=g}}this._isInitialMetadataDispatched()?this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack):this._videoInitialMetadataDispatched=!0,this._dispatch=!1}},o.snapshot=function(){this.snapshotCount++},o._makeH265Header=function(t){var e=2;switch(t){case 78:case 80:case 64:case 66:case 32:case 34:case 36:case 38:case 40:case 42:e=1}return e},o._parseHEVCVideoData=function(t,e,i,n,o,a,s){for(var h=this._littleEndian,u=new DataView(t,e,i),l=this._timestampBase+n,d=1===a,f=[],c=0,p=0;p<i;){if(p+4>=i){r.a.w(this.TAG,"Malformed Nalu near timestamp "+l+", offset = "+p+", dataSize = "+i);break}var m=u.getUint8(p),g=u.getUint8(p+1),v=u.getUint8(p+2),y=u.getUint8(p+3);if(0===m&&0===g&&0===v&&1===y);else{var b=u.getUint32(p,!h);p+=4;u.getUint8(p);if(p+=1,b>i-4)return void r.a.w(this.TAG,"Malformed Nalus near timestamp "+l+", NaluSize > DataSize!");if(b+p-1>i)break;var _=u.getUint8(p-1),w=this._makeH265Header(_);if(78==_){if(f.length<1){if(this._HEVC_VPS){var A={type:5,data:this._HEVC_VPS};f.push(A),c+=this._HEVC_VPS.length}if(this._HEVC_SPS){var M={type:6,data:this._HEVC_SPS};f.push(M),c+=this._HEVC_SPS.length}if(this._HEVC_PPS){var E={type:7,data:this._HEVC_PPS};f.push(E),c+=this._HEVC_PPS.length}}if(e+p-1-4>=0&&b>0){var S=new Uint8Array(t,e+p-1-4,b+4);S[0]=0,S[1]=0,S[2]=0,S[3]=1;var k={type:5,data:S};f.push(k),c+=S.length}p+=b-1;continue}if((32===_||34===_||36===_||38===_||40===_||42===_)&&f.length<1){if(this._HEVC_VPS){var T={type:5,data:this._HEVC_VPS};f.push(T),c+=this._HEVC_VPS.length}if(this._HEVC_SPS){var R={type:6,data:this._HEVC_SPS};f.push(R),c+=this._HEVC_SPS.length}if(this._HEVC_PPS){var I={type:7,data:this._HEVC_PPS};f.push(I),c+=this._HEVC_PPS.length}}if(1===w&&this._HEVC_VPS&&this._HEVC_VPS[0],e+p-1-4>=0&&b>0){var C=new Uint8Array(t,e+p-1-4,b+4);C[0]=0,C[1]=0,C[2]=0,C[3]=1;var P={type:5,data:C};f.push(P),c+=C.length}p+=b-1}}if(this._DebugBuf&&(this._DebugBufPos<1048576?(this._DebugBuf.set(data2,this._DebugBufPos),this._DebugBufPos+=data2.length):this._DebugBufPos=0),f.length){var x=this._videoTrack,D={units:f,length:c,isKeyframe:d,dts:l,cts:s,pts:l+s};d&&(D.fileposition=o),x.samples.push(D),x.length+=c}},e=t,(i=[{key:"onTrackMetadata",get:function(){return this._onTrackMetadata},set:function(t){this._onTrackMetadata=t}},{key:"onMediaInfo",get:function(){return this._onMediaInfo},set:function(t){this._onMediaInfo=t}},{key:"onMetaDataArrived",get:function(){return this._onMetaDataArrived},set:function(t){this._onMetaDataArrived=t}},{key:"onScriptDataArrived",get:function(){return this._onScriptDataArrived},set:function(t){this._onScriptDataArrived=t}},{key:"onError",get:function(){return this._onError},set:function(t){this._onError=t}},{key:"onDataAvailable",get:function(){return this._onDataAvailable},set:function(t){this._onDataAvailable=t}},{key:"timestampBase",get:function(){return this._timestampBase},set:function(t){this._timestampBase=t}},{key:"overridedDuration",get:function(){return this._duration},set:function(t){this._durationOverrided=!0,this._duration=t,this._mediaInfo.duration=t}},{key:"overridedHasAudio",set:function(t){this._hasAudioFlagOverrided=!0,this._hasAudio=t,this._mediaInfo.hasAudio=t}},{key:"overridedHasVideo",set:function(t){this._hasVideoFlagOverrided=!0,this._hasVideo=t,this._mediaInfo.hasVideo=t}}])&&p(e.prototype,i),n&&p(e,n),Object.defineProperty(e,"prototype",{writable:!1}),t}();e.a=m},function(t,e){!function(){"use strict";function e(t,e){throw new Error("abstract")}e.prototype.drawFrame=function(t){throw new Error("abstract")},e.prototype.clear=function(){throw new Error("abstract")},t.exports=e}()},function(t,e,i){"use strict";var r=i(3),n=i(79),o=i(4).Buffer,a=new Array(16);function s(){n.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function h(t,e){return t<<e|t>>>32-e}function u(t,e,i,r,n,o,a){return h(t+(e&i|~e&r)+n+o|0,a)+e|0}function l(t,e,i,r,n,o,a){return h(t+(e&r|i&~r)+n+o|0,a)+e|0}function d(t,e,i,r,n,o,a){return h(t+(e^i^r)+n+o|0,a)+e|0}function f(t,e,i,r,n,o,a){return h(t+(i^(e|~r))+n+o|0,a)+e|0}r(s,n),s.prototype._update=function(){for(var t=a,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var i=this._a,r=this._b,n=this._c,o=this._d;i=u(i,r,n,o,t[0],3614090360,7),o=u(o,i,r,n,t[1],3905402710,12),n=u(n,o,i,r,t[2],606105819,17),r=u(r,n,o,i,t[3],3250441966,22),i=u(i,r,n,o,t[4],4118548399,7),o=u(o,i,r,n,t[5],1200080426,12),n=u(n,o,i,r,t[6],2821735955,17),r=u(r,n,o,i,t[7],4249261313,22),i=u(i,r,n,o,t[8],1770035416,7),o=u(o,i,r,n,t[9],2336552879,12),n=u(n,o,i,r,t[10],4294925233,17),r=u(r,n,o,i,t[11],2304563134,22),i=u(i,r,n,o,t[12],1804603682,7),o=u(o,i,r,n,t[13],4254626195,12),n=u(n,o,i,r,t[14],2792965006,17),i=l(i,r=u(r,n,o,i,t[15],1236535329,22),n,o,t[1],4129170786,5),o=l(o,i,r,n,t[6],3225465664,9),n=l(n,o,i,r,t[11],643717713,14),r=l(r,n,o,i,t[0],3921069994,20),i=l(i,r,n,o,t[5],3593408605,5),o=l(o,i,r,n,t[10],38016083,9),n=l(n,o,i,r,t[15],3634488961,14),r=l(r,n,o,i,t[4],3889429448,20),i=l(i,r,n,o,t[9],568446438,5),o=l(o,i,r,n,t[14],3275163606,9),n=l(n,o,i,r,t[3],4107603335,14),r=l(r,n,o,i,t[8],1163531501,20),i=l(i,r,n,o,t[13],2850285829,5),o=l(o,i,r,n,t[2],4243563512,9),n=l(n,o,i,r,t[7],1735328473,14),i=d(i,r=l(r,n,o,i,t[12],2368359562,20),n,o,t[5],4294588738,4),o=d(o,i,r,n,t[8],2272392833,11),n=d(n,o,i,r,t[11],1839030562,16),r=d(r,n,o,i,t[14],4259657740,23),i=d(i,r,n,o,t[1],2763975236,4),o=d(o,i,r,n,t[4],1272893353,11),n=d(n,o,i,r,t[7],4139469664,16),r=d(r,n,o,i,t[10],3200236656,23),i=d(i,r,n,o,t[13],681279174,4),o=d(o,i,r,n,t[0],3936430074,11),n=d(n,o,i,r,t[3],3572445317,16),r=d(r,n,o,i,t[6],76029189,23),i=d(i,r,n,o,t[9],3654602809,4),o=d(o,i,r,n,t[12],3873151461,11),n=d(n,o,i,r,t[15],530742520,16),i=f(i,r=d(r,n,o,i,t[2],3299628645,23),n,o,t[0],4096336452,6),o=f(o,i,r,n,t[7],1126891415,10),n=f(n,o,i,r,t[14],2878612391,15),r=f(r,n,o,i,t[5],4237533241,21),i=f(i,r,n,o,t[12],1700485571,6),o=f(o,i,r,n,t[3],2399980690,10),n=f(n,o,i,r,t[10],4293915773,15),r=f(r,n,o,i,t[1],2240044497,21),i=f(i,r,n,o,t[8],1873313359,6),o=f(o,i,r,n,t[15],4264355552,10),n=f(n,o,i,r,t[6],2734768916,15),r=f(r,n,o,i,t[13],1309151649,21),i=f(i,r,n,o,t[4],4149444226,6),o=f(o,i,r,n,t[11],3174756917,10),n=f(n,o,i,r,t[2],718787259,15),r=f(r,n,o,i,t[9],3951481745,21),this._a=this._a+i|0,this._b=this._b+r|0,this._c=this._c+n|0,this._d=this._d+o|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=o.allocUnsafe(16);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t},t.exports=s},function(t,e,i){(function(e){function i(t){try{if(!e.localStorage)return!1}catch(t){return!1}var i=e.localStorage[t];return null!=i&&"true"===String(i).toLowerCase()}t.exports=function(t,e){if(i("noDeprecation"))return t;var r=!1;return function(){if(!r){if(i("throwDeprecation"))throw new Error(e);i("traceDeprecation"),r=!0}return t.apply(this,arguments)}}}).call(this,i(10))},function(t,e,i){"use strict";var r=i(26).codes.ERR_STREAM_PREMATURE_CLOSE;function n(){}t.exports=function t(e,i,o){if("function"==typeof i)return t(e,null,i);i||(i={}),o=function(t){var e=!1;return function(){if(!e){e=!0;for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];t.apply(this,r)}}}(o||n);var a=i.readable||!1!==i.readable&&e.readable,s=i.writable||!1!==i.writable&&e.writable,h=function(){e.writable||l()},u=e._writableState&&e._writableState.finished,l=function(){s=!1,u=!0,a||o.call(e)},d=e._readableState&&e._readableState.endEmitted,f=function(){a=!1,d=!0,s||o.call(e)},c=function(t){o.call(e,t)},p=function(){var t;return a&&!d?(e._readableState&&e._readableState.ended||(t=new r),o.call(e,t)):s&&!u?(e._writableState&&e._writableState.ended||(t=new r),o.call(e,t)):void 0},m=function(){e.req.on("finish",l)};return!function(t){return t.setHeader&&"function"==typeof t.abort}(e)?s&&!e._writableState&&(e.on("end",h),e.on("close",h)):(e.on("complete",l),e.on("abort",p),e.req?m():e.on("request",m)),e.on("end",f),e.on("finish",l),!1!==i.error&&e.on("error",c),e.on("close",p),function(){e.removeListener("complete",l),e.removeListener("abort",p),e.removeListener("request",m),e.req&&e.req.removeListener("finish",l),e.removeListener("end",h),e.removeListener("close",h),e.removeListener("finish",l),e.removeListener("end",f),e.removeListener("error",c),e.removeListener("close",p)}}},function(t,e,i){"use strict";var r=i(9).Buffer,n=i(3),o=i(79),a=new Array(16),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],h=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],u=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],l=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],d=[0,1518500249,1859775393,2400959708,2840853838],f=[1352829926,1548603684,1836072691,2053994217,0];function c(){o.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function p(t,e){return t<<e|t>>>32-e}function m(t,e,i,r,n,o,a,s){return p(t+(e^i^r)+o+a|0,s)+n|0}function g(t,e,i,r,n,o,a,s){return p(t+(e&i|~e&r)+o+a|0,s)+n|0}function v(t,e,i,r,n,o,a,s){return p(t+((e|~i)^r)+o+a|0,s)+n|0}function y(t,e,i,r,n,o,a,s){return p(t+(e&r|i&~r)+o+a|0,s)+n|0}function b(t,e,i,r,n,o,a,s){return p(t+(e^(i|~r))+o+a|0,s)+n|0}n(c,o),c.prototype._update=function(){for(var t=a,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);for(var i=0|this._a,r=0|this._b,n=0|this._c,o=0|this._d,c=0|this._e,_=0|this._a,w=0|this._b,A=0|this._c,M=0|this._d,E=0|this._e,S=0;S<80;S+=1){var k,T;S<16?(k=m(i,r,n,o,c,t[s[S]],d[0],u[S]),T=b(_,w,A,M,E,t[h[S]],f[0],l[S])):S<32?(k=g(i,r,n,o,c,t[s[S]],d[1],u[S]),T=y(_,w,A,M,E,t[h[S]],f[1],l[S])):S<48?(k=v(i,r,n,o,c,t[s[S]],d[2],u[S]),T=v(_,w,A,M,E,t[h[S]],f[2],l[S])):S<64?(k=y(i,r,n,o,c,t[s[S]],d[3],u[S]),T=g(_,w,A,M,E,t[h[S]],f[3],l[S])):(k=b(i,r,n,o,c,t[s[S]],d[4],u[S]),T=m(_,w,A,M,E,t[h[S]],f[4],l[S])),i=c,c=o,o=p(n,10),n=r,r=k,_=E,E=M,M=p(A,10),A=w,w=T}var R=this._b+n+M|0;this._b=this._c+o+E|0,this._c=this._d+c+_|0,this._d=this._e+i+w|0,this._e=this._a+r+A|0,this._a=R},c.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=r.alloc?r.alloc(20):new r(20);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t.writeInt32LE(this._e,16),t},t.exports=c},function(t,e,i){(e=t.exports=function(t){t=t.toLowerCase();var i=e[t];if(!i)throw new Error(t+" is not supported (we accept pull requests)");return new i}).sha=i(157),e.sha1=i(158),e.sha224=i(159),e.sha256=i(86),e.sha384=i(160),e.sha512=i(87)},function(t,e,i){(e=t.exports=i(88)).Stream=e,e.Readable=e,e.Writable=i(59),e.Duplex=i(19),e.Transform=i(91),e.PassThrough=i(167)},function(t,e,i){var r=i(9),n=r.Buffer;function o(t,e){for(var i in t)e[i]=t[i]}function a(t,e,i){return n(t,e,i)}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?t.exports=r:(o(r,e),e.Buffer=a),o(n,a),a.from=function(t,e,i){if("number"==typeof t)throw new TypeError("Argument must not be a number");return n(t,e,i)},a.alloc=function(t,e,i){if("number"!=typeof t)throw new TypeError("Argument must be a number");var r=n(t);return void 0!==e?"string"==typeof i?r.fill(e,i):r.fill(e):r.fill(0),r},a.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return n(t)},a.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return r.SlowBuffer(t)}},function(t,e,i){"use strict";(function(e,r,n){var o=i(42);function a(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e,i){var r=t.entry;t.entry=null;for(;r;){var n=r.callback;e.pendingcb--,n(i),r=r.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}(e,t)}}t.exports=y;var s,h=!e.browser&&["v0.10","v0.9."].indexOf(e.version.slice(0,5))>-1?r:o.nextTick;y.WritableState=v;var u=Object.create(i(36));u.inherits=i(3);var l={deprecate:i(53)},d=i(89),f=i(58).Buffer,c=n.Uint8Array||function(){};var p,m=i(90);function g(){}function v(t,e){s=s||i(19),t=t||{};var r=e instanceof s;this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var n=t.highWaterMark,u=t.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=n||0===n?n:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var d=!1===t.decodeStrings;this.decodeStrings=!d,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,e){var i=t._writableState,r=i.sync,n=i.writecb;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(i),e)!function(t,e,i,r,n){--e.pendingcb,i?(o.nextTick(n,r),o.nextTick(E,t,e),t._writableState.errorEmitted=!0,t.emit("error",r)):(n(r),t._writableState.errorEmitted=!0,t.emit("error",r),E(t,e))}(t,i,r,e,n);else{var a=A(i);a||i.corked||i.bufferProcessing||!i.bufferedRequest||w(t,i),r?h(_,t,i,a,n):_(t,i,a,n)}}(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function y(t){if(s=s||i(19),!(p.call(y,this)||this instanceof s))return new y(t);this._writableState=new v(t,this),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.final&&(this._final=t.final)),d.call(this)}function b(t,e,i,r,n,o,a){e.writelen=r,e.writecb=a,e.writing=!0,e.sync=!0,i?t._writev(n,e.onwrite):t._write(n,o,e.onwrite),e.sync=!1}function _(t,e,i,r){i||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}(t,e),e.pendingcb--,r(),E(t,e)}function w(t,e){e.bufferProcessing=!0;var i=e.bufferedRequest;if(t._writev&&i&&i.next){var r=e.bufferedRequestCount,n=new Array(r),o=e.corkedRequestsFree;o.entry=i;for(var s=0,h=!0;i;)n[s]=i,i.isBuf||(h=!1),i=i.next,s+=1;n.allBuffers=h,b(t,e,!0,e.length,n,"",o.finish),e.pendingcb++,e.lastBufferedRequest=null,o.next?(e.corkedRequestsFree=o.next,o.next=null):e.corkedRequestsFree=new a(e),e.bufferedRequestCount=0}else{for(;i;){var u=i.chunk,l=i.encoding,d=i.callback;if(b(t,e,!1,e.objectMode?1:u.length,u,l,d),i=i.next,e.bufferedRequestCount--,e.writing)break}null===i&&(e.lastBufferedRequest=null)}e.bufferedRequest=i,e.bufferProcessing=!1}function A(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function M(t,e){t._final((function(i){e.pendingcb--,i&&t.emit("error",i),e.prefinished=!0,t.emit("prefinish"),E(t,e)}))}function E(t,e){var i=A(e);return i&&(!function(t,e){e.prefinished||e.finalCalled||("function"==typeof t._final?(e.pendingcb++,e.finalCalled=!0,o.nextTick(M,t,e)):(e.prefinished=!0,t.emit("prefinish")))}(t,e),0===e.pendingcb&&(e.finished=!0,t.emit("finish"))),i}u.inherits(y,d),v.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(p=Function.prototype[Symbol.hasInstance],Object.defineProperty(y,Symbol.hasInstance,{value:function(t){return!!p.call(this,t)||this===y&&(t&&t._writableState instanceof v)}})):p=function(t){return t instanceof this},y.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},y.prototype.write=function(t,e,i){var r,n=this._writableState,a=!1,s=!n.objectMode&&(r=t,f.isBuffer(r)||r instanceof c);return s&&!f.isBuffer(t)&&(t=function(t){return f.from(t)}(t)),"function"==typeof e&&(i=e,e=null),s?e="buffer":e||(e=n.defaultEncoding),"function"!=typeof i&&(i=g),n.ended?function(t,e){var i=new Error("write after end");t.emit("error",i),o.nextTick(e,i)}(this,i):(s||function(t,e,i,r){var n=!0,a=!1;return null===i?a=new TypeError("May not write null values to stream"):"string"==typeof i||void 0===i||e.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(t.emit("error",a),o.nextTick(r,a),n=!1),n}(this,n,t,i))&&(n.pendingcb++,a=function(t,e,i,r,n,o){if(!i){var a=function(t,e,i){t.objectMode||!1===t.decodeStrings||"string"!=typeof e||(e=f.from(e,i));return e}(e,r,n);r!==a&&(i=!0,n="buffer",r=a)}var s=e.objectMode?1:r.length;e.length+=s;var h=e.length<e.highWaterMark;h||(e.needDrain=!0);if(e.writing||e.corked){var u=e.lastBufferedRequest;e.lastBufferedRequest={chunk:r,encoding:n,isBuf:i,callback:o,next:null},u?u.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else b(t,e,!1,s,r,n,o);return h}(this,n,s,t,e,i)),a},y.prototype.cork=function(){this._writableState.corked++},y.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,t.writing||t.corked||t.finished||t.bufferProcessing||!t.bufferedRequest||w(this,t))},y.prototype.setDefaultEncoding=function(t){if("string"==typeof t&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(y.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),y.prototype._write=function(t,e,i){i(new Error("_write() is not implemented"))},y.prototype._writev=null,y.prototype.end=function(t,e,i){var r=this._writableState;"function"==typeof t?(i=t,t=null,e=null):"function"==typeof e&&(i=e,e=null),null!=t&&this.write(t,e),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(t,e,i){e.ending=!0,E(t,e),i&&(e.finished?o.nextTick(i):t.once("finish",i));e.ended=!0,t.writable=!1}(this,r,i)},Object.defineProperty(y.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),y.prototype.destroy=m.destroy,y.prototype._undestroy=m.undestroy,y.prototype._destroy=function(t,e){this.end(),e(t)}}).call(this,i(8),i(165).setImmediate,i(10))},function(t,e,i){"use strict";var r=i(13);function n(t){this.options=t,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0}t.exports=n,n.prototype._init=function(){},n.prototype.update=function(t){return 0===t.length?[]:"decrypt"===this.type?this._updateDecrypt(t):this._updateEncrypt(t)},n.prototype._buffer=function(t,e){for(var i=Math.min(this.buffer.length-this.bufferOff,t.length-e),r=0;r<i;r++)this.buffer[this.bufferOff+r]=t[e+r];return this.bufferOff+=i,i},n.prototype._flushBuffer=function(t,e){return this._update(this.buffer,0,t,e),this.bufferOff=0,this.blockSize},n.prototype._updateEncrypt=function(t){var e=0,i=0,r=(this.bufferOff+t.length)/this.blockSize|0,n=new Array(r*this.blockSize);0!==this.bufferOff&&(e+=this._buffer(t,e),this.bufferOff===this.buffer.length&&(i+=this._flushBuffer(n,i)));for(var o=t.length-(t.length-e)%this.blockSize;e<o;e+=this.blockSize)this._update(t,e,n,i),i+=this.blockSize;for(;e<t.length;e++,this.bufferOff++)this.buffer[this.bufferOff]=t[e];return n},n.prototype._updateDecrypt=function(t){for(var e=0,i=0,r=Math.ceil((this.bufferOff+t.length)/this.blockSize)-1,n=new Array(r*this.blockSize);r>0;r--)e+=this._buffer(t,e),i+=this._flushBuffer(n,i);return e+=this._buffer(t,e),n},n.prototype.final=function(t){var e,i;return t&&(e=this.update(t)),i="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),e?e.concat(i):i},n.prototype._pad=function(t,e){if(0===e)return!1;for(;e<t.length;)t[e++]=0;return!0},n.prototype._finalEncrypt=function(){if(!this._pad(this.buffer,this.bufferOff))return[];var t=new Array(this.blockSize);return this._update(this.buffer,0,t,0),t},n.prototype._unpad=function(t){return t},n.prototype._finalDecrypt=function(){r.equal(this.bufferOff,this.blockSize,"Not enough data to decrypt");var t=new Array(this.blockSize);return this._flushBuffer(t,0),this._unpad(t)}},function(t,e,i){var r=i(180),n=i(188),o=i(104);e.createCipher=e.Cipher=r.createCipher,e.createCipheriv=e.Cipheriv=r.createCipheriv,e.createDecipher=e.Decipher=n.createDecipher,e.createDecipheriv=e.Decipheriv=n.createDecipheriv,e.listCiphers=e.getCiphers=function(){return Object.keys(o)}},function(t,e,i){var r={ECB:i(181),CBC:i(182),CFB:i(183),CFB8:i(184),CFB1:i(185),OFB:i(186),CTR:i(102),GCM:i(102)},n=i(104);for(var o in n)n[o].module=r[n[o].mode];t.exports=n},function(t,e,i){var r;function n(t){this.rand=t}if(t.exports=function(t){return r||(r=new n(null)),r.generate(t)},t.exports.Rand=n,n.prototype.generate=function(t){return this._rand(t)},n.prototype._rand=function(t){if(this.rand.getBytes)return this.rand.getBytes(t);for(var e=new Uint8Array(t),i=0;i<e.length;i++)e[i]=this.rand.getByte();return e},"object"==typeof self)self.crypto&&self.crypto.getRandomValues?n.prototype._rand=function(t){var e=new Uint8Array(t);return self.crypto.getRandomValues(e),e}:self.msCrypto&&self.msCrypto.getRandomValues?n.prototype._rand=function(t){var e=new Uint8Array(t);return self.msCrypto.getRandomValues(e),e}:"object"==typeof window&&(n.prototype._rand=function(){throw new Error("Not implemented yet")});else try{var o=i(194);if("function"!=typeof o.randomBytes)throw new Error("Not supported");n.prototype._rand=function(t){return o.randomBytes(t)}}catch(t){}},function(t,e,i){"use strict";var r=i(29).codes.ERR_STREAM_PREMATURE_CLOSE;function n(){}t.exports=function t(e,i,o){if("function"==typeof i)return t(e,null,i);i||(i={}),o=function(t){var e=!1;return function(){if(!e){e=!0;for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];t.apply(this,r)}}}(o||n);var a=i.readable||!1!==i.readable&&e.readable,s=i.writable||!1!==i.writable&&e.writable,h=function(){e.writable||l()},u=e._writableState&&e._writableState.finished,l=function(){s=!1,u=!0,a||o.call(e)},d=e._readableState&&e._readableState.endEmitted,f=function(){a=!1,d=!0,s||o.call(e)},c=function(t){o.call(e,t)},p=function(){var t;return a&&!d?(e._readableState&&e._readableState.ended||(t=new r),o.call(e,t)):s&&!u?(e._writableState&&e._writableState.ended||(t=new r),o.call(e,t)):void 0},m=function(){e.req.on("finish",l)};return!function(t){return t.setHeader&&"function"==typeof t.abort}(e)?s&&!e._writableState&&(e.on("end",h),e.on("close",h)):(e.on("complete",l),e.on("abort",p),e.req?m():e.on("request",m)),e.on("end",f),e.on("finish",l),!1!==i.error&&e.on("error",c),e.on("close",p),function(){e.removeListener("complete",l),e.removeListener("abort",p),e.removeListener("request",m),e.req&&e.req.removeListener("finish",l),e.removeListener("end",h),e.removeListener("close",h),e.removeListener("finish",l),e.removeListener("end",f),e.removeListener("error",c),e.removeListener("close",p)}}},function(t,e,i){(function(e){var r=i(66),n=i(25);function o(t){var e,i=t.modulus.byteLength();do{e=new r(n(i))}while(e.cmp(t.modulus)>=0||!e.umod(t.prime1)||!e.umod(t.prime2));return e}function a(t,i){var n=function(t){var e=o(t);return{blinder:e.toRed(r.mont(t.modulus)).redPow(new r(t.publicExponent)).fromRed(),unblinder:e.invm(t.modulus)}}(i),a=i.modulus.byteLength(),s=new r(t).mul(n.blinder).umod(i.modulus),h=s.toRed(r.mont(i.prime1)),u=s.toRed(r.mont(i.prime2)),l=i.coefficient,d=i.prime1,f=i.prime2,c=h.redPow(i.exponent1).fromRed(),p=u.redPow(i.exponent2).fromRed(),m=c.isub(p).imul(l).umod(d).imul(f);return p.iadd(m).imul(n.unblinder).umod(i.modulus).toArrayLike(e,"be",a)}a.getr=o,t.exports=a}).call(this,i(9).Buffer)},function(t,e,i){(function(t){!function(t,e){"use strict";function r(t,e){if(!t)throw new Error(e||"Assertion failed")}function n(t,e){t.super_=e;var i=function(){};i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t}function o(t,e,i){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(i=e,e=10),this._init(t||0,e||10,i||"be"))}var a;"object"==typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:i(207).Buffer}catch(t){}function s(t,e){var i=t.charCodeAt(e);return i>=48&&i<=57?i-48:i>=65&&i<=70?i-55:i>=97&&i<=102?i-87:void r(!1,"Invalid character in "+t)}function h(t,e,i){var r=s(t,i);return i-1>=e&&(r|=s(t,i-1)<<4),r}function u(t,e,i,n){for(var o=0,a=0,s=Math.min(t.length,i),h=e;h<s;h++){var u=t.charCodeAt(h)-48;o*=n,a=u>=49?u-49+10:u>=17?u-17+10:u,r(u>=0&&a<n,"Invalid character"),o+=a}return o}function l(t,e){t.words=e.words,t.length=e.length,t.negative=e.negative,t.red=e.red}if(o.isBN=function(t){return t instanceof o||null!==t&&"object"==typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,i){if("number"==typeof t)return this._initNumber(t,e,i);if("object"==typeof t)return this._initArray(t,e,i);"hex"===e&&(e=16),r(e===(0|e)&&e>=2&&e<=36);var n=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(n++,this.negative=1),n<t.length&&(16===e?this._parseHex(t,n,i):(this._parseBase(t,e,n),"le"===i&&this._initArray(this.toArray(),e,i)))},o.prototype._initNumber=function(t,e,i){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(r(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===i&&this._initArray(this.toArray(),e,i)},o.prototype._initArray=function(t,e,i){if(r("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var o,a,s=0;if("be"===i)for(n=t.length-1,o=0;n>=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===i)for(n=0,o=0;n<t.length;n+=3)a=t[n]|t[n+1]<<8|t[n+2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this._strip()},o.prototype._parseHex=function(t,e,i){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var n,o=0,a=0;if("be"===i)for(r=t.length-1;r>=e;r-=2)n=h(t,e,r)<<o,this.words[a]|=67108863&n,o>=18?(o-=18,a+=1,this.words[a]|=n>>>26):o+=8;else for(r=(t.length-e)%2==0?e+1:e;r<t.length;r+=2)n=h(t,e,r)<<o,this.words[a]|=67108863&n,o>=18?(o-=18,a+=1,this.words[a]|=n>>>26):o+=8;this._strip()},o.prototype._parseBase=function(t,e,i){this.words=[0],this.length=1;for(var r=0,n=1;n<=67108863;n*=e)r++;r--,n=n/e|0;for(var o=t.length-i,a=o%r,s=Math.min(o,o-a)+i,h=0,l=i;l<s;l+=r)h=u(t,l,l+r,e),this.imuln(n),this.words[0]+h<67108864?this.words[0]+=h:this._iaddn(h);if(0!==a){var d=1;for(h=u(t,l,t.length,e),l=0;l<a;l++)d*=e;this.imuln(d),this.words[0]+h<67108864?this.words[0]+=h:this._iaddn(h)}this._strip()},o.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},o.prototype._move=function(t){l(t,this)},o.prototype.clone=function(){var t=new o(null);return this.copy(t),t},o.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},o.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{o.prototype[Symbol.for("nodejs.util.inspect.custom")]=d}catch(t){o.prototype.inspect=d}else o.prototype.inspect=d;function d(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var f=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],c=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];o.prototype.toString=function(t,e){var i;if(e=0|e||1,16===(t=t||10)||"hex"===t){i="";for(var n=0,o=0,a=0;a<this.length;a++){var s=this.words[a],h=(16777215&(s<<n|o)).toString(16);i=0!==(o=s>>>24-n&16777215)||a!==this.length-1?f[6-h.length]+h+i:h+i,(n+=2)>=26&&(n-=26,a--)}for(0!==o&&(i=o.toString(16)+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}if(t===(0|t)&&t>=2&&t<=36){var u=c[t],l=p[t];i="";var d=this.clone();for(d.negative=0;!d.isZero();){var m=d.modrn(l).toString(t);i=(d=d.idivn(l)).isZero()?m+i:f[u-m.length]+m+i}for(this.isZero()&&(i="0"+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16,2)},a&&(o.prototype.toBuffer=function(t,e){return this.toArrayLike(a,t,e)}),o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)};function m(t,e,i){i.negative=e.negative^t.negative;var r=t.length+e.length|0;i.length=r,r=r-1|0;var n=0|t.words[0],o=0|e.words[0],a=n*o,s=67108863&a,h=a/67108864|0;i.words[0]=s;for(var u=1;u<r;u++){for(var l=h>>>26,d=67108863&h,f=Math.min(u,e.length-1),c=Math.max(0,u-t.length+1);c<=f;c++){var p=u-c|0;l+=(a=(n=0|t.words[p])*(o=0|e.words[c])+d)/67108864|0,d=67108863&a}i.words[u]=0|d,h=0|l}return 0!==h?i.words[u]=0|h:i.length--,i._strip()}o.prototype.toArrayLike=function(t,e,i){this._strip();var n=this.byteLength(),o=i||Math.max(1,n);r(n<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0");var a=function(t,e){return t.allocUnsafe?t.allocUnsafe(e):new t(e)}(t,o);return this["_toArrayLike"+("le"===e?"LE":"BE")](a,n),a},o.prototype._toArrayLikeLE=function(t,e){for(var i=0,r=0,n=0,o=0;n<this.length;n++){var a=this.words[n]<<o|r;t[i++]=255&a,i<t.length&&(t[i++]=a>>8&255),i<t.length&&(t[i++]=a>>16&255),6===o?(i<t.length&&(t[i++]=a>>24&255),r=0,o=0):(r=a>>>24,o+=2)}if(i<t.length)for(t[i++]=r;i<t.length;)t[i++]=0},o.prototype._toArrayLikeBE=function(t,e){for(var i=t.length-1,r=0,n=0,o=0;n<this.length;n++){var a=this.words[n]<<o|r;t[i--]=255&a,i>=0&&(t[i--]=a>>8&255),i>=0&&(t[i--]=a>>16&255),6===o?(i>=0&&(t[i--]=a>>24&255),r=0,o=0):(r=a>>>24,o+=2)}if(i>=0)for(t[i--]=r;i>=0;)t[i--]=0},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,i=0;return e>=4096&&(i+=13,e>>>=13),e>=64&&(i+=7,e>>>=7),e>=8&&(i+=4,e>>>=4),e>=2&&(i+=2,e>>>=2),i+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,i=0;return 0==(8191&e)&&(i+=13,e>>>=13),0==(127&e)&&(i+=7,e>>>=7),0==(15&e)&&(i+=4,e>>>=4),0==(3&e)&&(i+=2,e>>>=2),0==(1&e)&&i++,i},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var i=this._zeroBits(this.words[e]);if(t+=i,26!==i)break}return t},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},o.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this._strip()},o.prototype.ior=function(t){return r(0==(this.negative|t.negative)),this.iuor(t)},o.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var i=0;i<e.length;i++)this.words[i]=this.words[i]&t.words[i];return this.length=e.length,this._strip()},o.prototype.iand=function(t){return r(0==(this.negative|t.negative)),this.iuand(t)},o.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,i;this.length>t.length?(e=this,i=t):(e=t,i=this);for(var r=0;r<i.length;r++)this.words[r]=e.words[r]^i.words[r];if(this!==e)for(;r<e.length;r++)this.words[r]=e.words[r];return this.length=e.length,this._strip()},o.prototype.ixor=function(t){return r(0==(this.negative|t.negative)),this.iuxor(t)},o.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){r("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),i=t%26;this._expand(e),i>0&&e--;for(var n=0;n<e;n++)this.words[n]=67108863&~this.words[n];return i>0&&(this.words[n]=~this.words[n]&67108863>>26-i),this._strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){r("number"==typeof t&&t>=0);var i=t/26|0,n=t%26;return this._expand(i+1),this.words[i]=e?this.words[i]|1<<n:this.words[i]&~(1<<n),this._strip()},o.prototype.iadd=function(t){var e,i,r;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(i=this,r=t):(i=t,r=this);for(var n=0,o=0;o<r.length;o++)e=(0|i.words[o])+(0|r.words[o])+n,this.words[o]=67108863&e,n=e>>>26;for(;0!==n&&o<i.length;o++)e=(0|i.words[o])+n,this.words[o]=67108863&e,n=e>>>26;if(this.length=i.length,0!==n)this.words[this.length]=n,this.length++;else if(i!==this)for(;o<i.length;o++)this.words[o]=i.words[o];return this},o.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var i,r,n=this.cmp(t);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(i=this,r=t):(i=t,r=this);for(var o=0,a=0;a<r.length;a++)o=(e=(0|i.words[a])-(0|r.words[a])+o)>>26,this.words[a]=67108863&e;for(;0!==o&&a<i.length;a++)o=(e=(0|i.words[a])+o)>>26,this.words[a]=67108863&e;if(0===o&&a<i.length&&i!==this)for(;a<i.length;a++)this.words[a]=i.words[a];return this.length=Math.max(this.length,a),i!==this&&(this.negative=1),this._strip()},o.prototype.sub=function(t){return this.clone().isub(t)};var g=function(t,e,i){var r,n,o,a=t.words,s=e.words,h=i.words,u=0,l=0|a[0],d=8191&l,f=l>>>13,c=0|a[1],p=8191&c,m=c>>>13,g=0|a[2],v=8191&g,y=g>>>13,b=0|a[3],_=8191&b,w=b>>>13,A=0|a[4],M=8191&A,E=A>>>13,S=0|a[5],k=8191&S,T=S>>>13,R=0|a[6],I=8191&R,C=R>>>13,P=0|a[7],x=8191&P,D=P>>>13,O=0|a[8],B=8191&O,L=O>>>13,W=0|a[9],N=8191&W,F=W>>>13,U=0|s[0],j=8191&U,V=U>>>13,H=0|s[1],z=8191&H,G=H>>>13,q=0|s[2],X=8191&q,Z=q>>>13,K=0|s[3],Q=8191&K,Y=K>>>13,J=0|s[4],$=8191&J,tt=J>>>13,et=0|s[5],it=8191&et,rt=et>>>13,nt=0|s[6],ot=8191&nt,at=nt>>>13,st=0|s[7],ht=8191&st,ut=st>>>13,lt=0|s[8],dt=8191<,ft=lt>>>13,ct=0|s[9],pt=8191&ct,mt=ct>>>13;i.negative=t.negative^e.negative,i.length=19;var gt=(u+(r=Math.imul(d,j))|0)+((8191&(n=(n=Math.imul(d,V))+Math.imul(f,j)|0))<<13)|0;u=((o=Math.imul(f,V))+(n>>>13)|0)+(gt>>>26)|0,gt&=67108863,r=Math.imul(p,j),n=(n=Math.imul(p,V))+Math.imul(m,j)|0,o=Math.imul(m,V);var vt=(u+(r=r+Math.imul(d,z)|0)|0)+((8191&(n=(n=n+Math.imul(d,G)|0)+Math.imul(f,z)|0))<<13)|0;u=((o=o+Math.imul(f,G)|0)+(n>>>13)|0)+(vt>>>26)|0,vt&=67108863,r=Math.imul(v,j),n=(n=Math.imul(v,V))+Math.imul(y,j)|0,o=Math.imul(y,V),r=r+Math.imul(p,z)|0,n=(n=n+Math.imul(p,G)|0)+Math.imul(m,z)|0,o=o+Math.imul(m,G)|0;var yt=(u+(r=r+Math.imul(d,X)|0)|0)+((8191&(n=(n=n+Math.imul(d,Z)|0)+Math.imul(f,X)|0))<<13)|0;u=((o=o+Math.imul(f,Z)|0)+(n>>>13)|0)+(yt>>>26)|0,yt&=67108863,r=Math.imul(_,j),n=(n=Math.imul(_,V))+Math.imul(w,j)|0,o=Math.imul(w,V),r=r+Math.imul(v,z)|0,n=(n=n+Math.imul(v,G)|0)+Math.imul(y,z)|0,o=o+Math.imul(y,G)|0,r=r+Math.imul(p,X)|0,n=(n=n+Math.imul(p,Z)|0)+Math.imul(m,X)|0,o=o+Math.imul(m,Z)|0;var bt=(u+(r=r+Math.imul(d,Q)|0)|0)+((8191&(n=(n=n+Math.imul(d,Y)|0)+Math.imul(f,Q)|0))<<13)|0;u=((o=o+Math.imul(f,Y)|0)+(n>>>13)|0)+(bt>>>26)|0,bt&=67108863,r=Math.imul(M,j),n=(n=Math.imul(M,V))+Math.imul(E,j)|0,o=Math.imul(E,V),r=r+Math.imul(_,z)|0,n=(n=n+Math.imul(_,G)|0)+Math.imul(w,z)|0,o=o+Math.imul(w,G)|0,r=r+Math.imul(v,X)|0,n=(n=n+Math.imul(v,Z)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,Z)|0,r=r+Math.imul(p,Q)|0,n=(n=n+Math.imul(p,Y)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,Y)|0;var _t=(u+(r=r+Math.imul(d,$)|0)|0)+((8191&(n=(n=n+Math.imul(d,tt)|0)+Math.imul(f,$)|0))<<13)|0;u=((o=o+Math.imul(f,tt)|0)+(n>>>13)|0)+(_t>>>26)|0,_t&=67108863,r=Math.imul(k,j),n=(n=Math.imul(k,V))+Math.imul(T,j)|0,o=Math.imul(T,V),r=r+Math.imul(M,z)|0,n=(n=n+Math.imul(M,G)|0)+Math.imul(E,z)|0,o=o+Math.imul(E,G)|0,r=r+Math.imul(_,X)|0,n=(n=n+Math.imul(_,Z)|0)+Math.imul(w,X)|0,o=o+Math.imul(w,Z)|0,r=r+Math.imul(v,Q)|0,n=(n=n+Math.imul(v,Y)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,Y)|0,r=r+Math.imul(p,$)|0,n=(n=n+Math.imul(p,tt)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,tt)|0;var wt=(u+(r=r+Math.imul(d,it)|0)|0)+((8191&(n=(n=n+Math.imul(d,rt)|0)+Math.imul(f,it)|0))<<13)|0;u=((o=o+Math.imul(f,rt)|0)+(n>>>13)|0)+(wt>>>26)|0,wt&=67108863,r=Math.imul(I,j),n=(n=Math.imul(I,V))+Math.imul(C,j)|0,o=Math.imul(C,V),r=r+Math.imul(k,z)|0,n=(n=n+Math.imul(k,G)|0)+Math.imul(T,z)|0,o=o+Math.imul(T,G)|0,r=r+Math.imul(M,X)|0,n=(n=n+Math.imul(M,Z)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,Z)|0,r=r+Math.imul(_,Q)|0,n=(n=n+Math.imul(_,Y)|0)+Math.imul(w,Q)|0,o=o+Math.imul(w,Y)|0,r=r+Math.imul(v,$)|0,n=(n=n+Math.imul(v,tt)|0)+Math.imul(y,$)|0,o=o+Math.imul(y,tt)|0,r=r+Math.imul(p,it)|0,n=(n=n+Math.imul(p,rt)|0)+Math.imul(m,it)|0,o=o+Math.imul(m,rt)|0;var At=(u+(r=r+Math.imul(d,ot)|0)|0)+((8191&(n=(n=n+Math.imul(d,at)|0)+Math.imul(f,ot)|0))<<13)|0;u=((o=o+Math.imul(f,at)|0)+(n>>>13)|0)+(At>>>26)|0,At&=67108863,r=Math.imul(x,j),n=(n=Math.imul(x,V))+Math.imul(D,j)|0,o=Math.imul(D,V),r=r+Math.imul(I,z)|0,n=(n=n+Math.imul(I,G)|0)+Math.imul(C,z)|0,o=o+Math.imul(C,G)|0,r=r+Math.imul(k,X)|0,n=(n=n+Math.imul(k,Z)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,Z)|0,r=r+Math.imul(M,Q)|0,n=(n=n+Math.imul(M,Y)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,Y)|0,r=r+Math.imul(_,$)|0,n=(n=n+Math.imul(_,tt)|0)+Math.imul(w,$)|0,o=o+Math.imul(w,tt)|0,r=r+Math.imul(v,it)|0,n=(n=n+Math.imul(v,rt)|0)+Math.imul(y,it)|0,o=o+Math.imul(y,rt)|0,r=r+Math.imul(p,ot)|0,n=(n=n+Math.imul(p,at)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0;var Mt=(u+(r=r+Math.imul(d,ht)|0)|0)+((8191&(n=(n=n+Math.imul(d,ut)|0)+Math.imul(f,ht)|0))<<13)|0;u=((o=o+Math.imul(f,ut)|0)+(n>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,r=Math.imul(B,j),n=(n=Math.imul(B,V))+Math.imul(L,j)|0,o=Math.imul(L,V),r=r+Math.imul(x,z)|0,n=(n=n+Math.imul(x,G)|0)+Math.imul(D,z)|0,o=o+Math.imul(D,G)|0,r=r+Math.imul(I,X)|0,n=(n=n+Math.imul(I,Z)|0)+Math.imul(C,X)|0,o=o+Math.imul(C,Z)|0,r=r+Math.imul(k,Q)|0,n=(n=n+Math.imul(k,Y)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,Y)|0,r=r+Math.imul(M,$)|0,n=(n=n+Math.imul(M,tt)|0)+Math.imul(E,$)|0,o=o+Math.imul(E,tt)|0,r=r+Math.imul(_,it)|0,n=(n=n+Math.imul(_,rt)|0)+Math.imul(w,it)|0,o=o+Math.imul(w,rt)|0,r=r+Math.imul(v,ot)|0,n=(n=n+Math.imul(v,at)|0)+Math.imul(y,ot)|0,o=o+Math.imul(y,at)|0,r=r+Math.imul(p,ht)|0,n=(n=n+Math.imul(p,ut)|0)+Math.imul(m,ht)|0,o=o+Math.imul(m,ut)|0;var Et=(u+(r=r+Math.imul(d,dt)|0)|0)+((8191&(n=(n=n+Math.imul(d,ft)|0)+Math.imul(f,dt)|0))<<13)|0;u=((o=o+Math.imul(f,ft)|0)+(n>>>13)|0)+(Et>>>26)|0,Et&=67108863,r=Math.imul(N,j),n=(n=Math.imul(N,V))+Math.imul(F,j)|0,o=Math.imul(F,V),r=r+Math.imul(B,z)|0,n=(n=n+Math.imul(B,G)|0)+Math.imul(L,z)|0,o=o+Math.imul(L,G)|0,r=r+Math.imul(x,X)|0,n=(n=n+Math.imul(x,Z)|0)+Math.imul(D,X)|0,o=o+Math.imul(D,Z)|0,r=r+Math.imul(I,Q)|0,n=(n=n+Math.imul(I,Y)|0)+Math.imul(C,Q)|0,o=o+Math.imul(C,Y)|0,r=r+Math.imul(k,$)|0,n=(n=n+Math.imul(k,tt)|0)+Math.imul(T,$)|0,o=o+Math.imul(T,tt)|0,r=r+Math.imul(M,it)|0,n=(n=n+Math.imul(M,rt)|0)+Math.imul(E,it)|0,o=o+Math.imul(E,rt)|0,r=r+Math.imul(_,ot)|0,n=(n=n+Math.imul(_,at)|0)+Math.imul(w,ot)|0,o=o+Math.imul(w,at)|0,r=r+Math.imul(v,ht)|0,n=(n=n+Math.imul(v,ut)|0)+Math.imul(y,ht)|0,o=o+Math.imul(y,ut)|0,r=r+Math.imul(p,dt)|0,n=(n=n+Math.imul(p,ft)|0)+Math.imul(m,dt)|0,o=o+Math.imul(m,ft)|0;var St=(u+(r=r+Math.imul(d,pt)|0)|0)+((8191&(n=(n=n+Math.imul(d,mt)|0)+Math.imul(f,pt)|0))<<13)|0;u=((o=o+Math.imul(f,mt)|0)+(n>>>13)|0)+(St>>>26)|0,St&=67108863,r=Math.imul(N,z),n=(n=Math.imul(N,G))+Math.imul(F,z)|0,o=Math.imul(F,G),r=r+Math.imul(B,X)|0,n=(n=n+Math.imul(B,Z)|0)+Math.imul(L,X)|0,o=o+Math.imul(L,Z)|0,r=r+Math.imul(x,Q)|0,n=(n=n+Math.imul(x,Y)|0)+Math.imul(D,Q)|0,o=o+Math.imul(D,Y)|0,r=r+Math.imul(I,$)|0,n=(n=n+Math.imul(I,tt)|0)+Math.imul(C,$)|0,o=o+Math.imul(C,tt)|0,r=r+Math.imul(k,it)|0,n=(n=n+Math.imul(k,rt)|0)+Math.imul(T,it)|0,o=o+Math.imul(T,rt)|0,r=r+Math.imul(M,ot)|0,n=(n=n+Math.imul(M,at)|0)+Math.imul(E,ot)|0,o=o+Math.imul(E,at)|0,r=r+Math.imul(_,ht)|0,n=(n=n+Math.imul(_,ut)|0)+Math.imul(w,ht)|0,o=o+Math.imul(w,ut)|0,r=r+Math.imul(v,dt)|0,n=(n=n+Math.imul(v,ft)|0)+Math.imul(y,dt)|0,o=o+Math.imul(y,ft)|0;var kt=(u+(r=r+Math.imul(p,pt)|0)|0)+((8191&(n=(n=n+Math.imul(p,mt)|0)+Math.imul(m,pt)|0))<<13)|0;u=((o=o+Math.imul(m,mt)|0)+(n>>>13)|0)+(kt>>>26)|0,kt&=67108863,r=Math.imul(N,X),n=(n=Math.imul(N,Z))+Math.imul(F,X)|0,o=Math.imul(F,Z),r=r+Math.imul(B,Q)|0,n=(n=n+Math.imul(B,Y)|0)+Math.imul(L,Q)|0,o=o+Math.imul(L,Y)|0,r=r+Math.imul(x,$)|0,n=(n=n+Math.imul(x,tt)|0)+Math.imul(D,$)|0,o=o+Math.imul(D,tt)|0,r=r+Math.imul(I,it)|0,n=(n=n+Math.imul(I,rt)|0)+Math.imul(C,it)|0,o=o+Math.imul(C,rt)|0,r=r+Math.imul(k,ot)|0,n=(n=n+Math.imul(k,at)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,r=r+Math.imul(M,ht)|0,n=(n=n+Math.imul(M,ut)|0)+Math.imul(E,ht)|0,o=o+Math.imul(E,ut)|0,r=r+Math.imul(_,dt)|0,n=(n=n+Math.imul(_,ft)|0)+Math.imul(w,dt)|0,o=o+Math.imul(w,ft)|0;var Tt=(u+(r=r+Math.imul(v,pt)|0)|0)+((8191&(n=(n=n+Math.imul(v,mt)|0)+Math.imul(y,pt)|0))<<13)|0;u=((o=o+Math.imul(y,mt)|0)+(n>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,r=Math.imul(N,Q),n=(n=Math.imul(N,Y))+Math.imul(F,Q)|0,o=Math.imul(F,Y),r=r+Math.imul(B,$)|0,n=(n=n+Math.imul(B,tt)|0)+Math.imul(L,$)|0,o=o+Math.imul(L,tt)|0,r=r+Math.imul(x,it)|0,n=(n=n+Math.imul(x,rt)|0)+Math.imul(D,it)|0,o=o+Math.imul(D,rt)|0,r=r+Math.imul(I,ot)|0,n=(n=n+Math.imul(I,at)|0)+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,r=r+Math.imul(k,ht)|0,n=(n=n+Math.imul(k,ut)|0)+Math.imul(T,ht)|0,o=o+Math.imul(T,ut)|0,r=r+Math.imul(M,dt)|0,n=(n=n+Math.imul(M,ft)|0)+Math.imul(E,dt)|0,o=o+Math.imul(E,ft)|0;var Rt=(u+(r=r+Math.imul(_,pt)|0)|0)+((8191&(n=(n=n+Math.imul(_,mt)|0)+Math.imul(w,pt)|0))<<13)|0;u=((o=o+Math.imul(w,mt)|0)+(n>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,r=Math.imul(N,$),n=(n=Math.imul(N,tt))+Math.imul(F,$)|0,o=Math.imul(F,tt),r=r+Math.imul(B,it)|0,n=(n=n+Math.imul(B,rt)|0)+Math.imul(L,it)|0,o=o+Math.imul(L,rt)|0,r=r+Math.imul(x,ot)|0,n=(n=n+Math.imul(x,at)|0)+Math.imul(D,ot)|0,o=o+Math.imul(D,at)|0,r=r+Math.imul(I,ht)|0,n=(n=n+Math.imul(I,ut)|0)+Math.imul(C,ht)|0,o=o+Math.imul(C,ut)|0,r=r+Math.imul(k,dt)|0,n=(n=n+Math.imul(k,ft)|0)+Math.imul(T,dt)|0,o=o+Math.imul(T,ft)|0;var It=(u+(r=r+Math.imul(M,pt)|0)|0)+((8191&(n=(n=n+Math.imul(M,mt)|0)+Math.imul(E,pt)|0))<<13)|0;u=((o=o+Math.imul(E,mt)|0)+(n>>>13)|0)+(It>>>26)|0,It&=67108863,r=Math.imul(N,it),n=(n=Math.imul(N,rt))+Math.imul(F,it)|0,o=Math.imul(F,rt),r=r+Math.imul(B,ot)|0,n=(n=n+Math.imul(B,at)|0)+Math.imul(L,ot)|0,o=o+Math.imul(L,at)|0,r=r+Math.imul(x,ht)|0,n=(n=n+Math.imul(x,ut)|0)+Math.imul(D,ht)|0,o=o+Math.imul(D,ut)|0,r=r+Math.imul(I,dt)|0,n=(n=n+Math.imul(I,ft)|0)+Math.imul(C,dt)|0,o=o+Math.imul(C,ft)|0;var Ct=(u+(r=r+Math.imul(k,pt)|0)|0)+((8191&(n=(n=n+Math.imul(k,mt)|0)+Math.imul(T,pt)|0))<<13)|0;u=((o=o+Math.imul(T,mt)|0)+(n>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,r=Math.imul(N,ot),n=(n=Math.imul(N,at))+Math.imul(F,ot)|0,o=Math.imul(F,at),r=r+Math.imul(B,ht)|0,n=(n=n+Math.imul(B,ut)|0)+Math.imul(L,ht)|0,o=o+Math.imul(L,ut)|0,r=r+Math.imul(x,dt)|0,n=(n=n+Math.imul(x,ft)|0)+Math.imul(D,dt)|0,o=o+Math.imul(D,ft)|0;var Pt=(u+(r=r+Math.imul(I,pt)|0)|0)+((8191&(n=(n=n+Math.imul(I,mt)|0)+Math.imul(C,pt)|0))<<13)|0;u=((o=o+Math.imul(C,mt)|0)+(n>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,r=Math.imul(N,ht),n=(n=Math.imul(N,ut))+Math.imul(F,ht)|0,o=Math.imul(F,ut),r=r+Math.imul(B,dt)|0,n=(n=n+Math.imul(B,ft)|0)+Math.imul(L,dt)|0,o=o+Math.imul(L,ft)|0;var xt=(u+(r=r+Math.imul(x,pt)|0)|0)+((8191&(n=(n=n+Math.imul(x,mt)|0)+Math.imul(D,pt)|0))<<13)|0;u=((o=o+Math.imul(D,mt)|0)+(n>>>13)|0)+(xt>>>26)|0,xt&=67108863,r=Math.imul(N,dt),n=(n=Math.imul(N,ft))+Math.imul(F,dt)|0,o=Math.imul(F,ft);var Dt=(u+(r=r+Math.imul(B,pt)|0)|0)+((8191&(n=(n=n+Math.imul(B,mt)|0)+Math.imul(L,pt)|0))<<13)|0;u=((o=o+Math.imul(L,mt)|0)+(n>>>13)|0)+(Dt>>>26)|0,Dt&=67108863;var Ot=(u+(r=Math.imul(N,pt))|0)+((8191&(n=(n=Math.imul(N,mt))+Math.imul(F,pt)|0))<<13)|0;return u=((o=Math.imul(F,mt))+(n>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,h[0]=gt,h[1]=vt,h[2]=yt,h[3]=bt,h[4]=_t,h[5]=wt,h[6]=At,h[7]=Mt,h[8]=Et,h[9]=St,h[10]=kt,h[11]=Tt,h[12]=Rt,h[13]=It,h[14]=Ct,h[15]=Pt,h[16]=xt,h[17]=Dt,h[18]=Ot,0!==u&&(h[19]=u,i.length++),i};function v(t,e,i){i.negative=e.negative^t.negative,i.length=t.length+e.length;for(var r=0,n=0,o=0;o<i.length-1;o++){var a=n;n=0;for(var s=67108863&r,h=Math.min(o,e.length-1),u=Math.max(0,o-t.length+1);u<=h;u++){var l=o-u,d=(0|t.words[l])*(0|e.words[u]),f=67108863&d;s=67108863&(f=f+s|0),n+=(a=(a=a+(d/67108864|0)|0)+(f>>>26)|0)>>>26,a&=67108863}i.words[o]=s,r=a,a=n}return 0!==r?i.words[o]=r:i.length--,i._strip()}function y(t,e,i){return v(t,e,i)}function b(t,e){this.x=t,this.y=e}Math.imul||(g=m),o.prototype.mulTo=function(t,e){var i=this.length+t.length;return 10===this.length&&10===t.length?g(this,t,e):i<63?m(this,t,e):i<1024?v(this,t,e):y(this,t,e)},b.prototype.makeRBT=function(t){for(var e=new Array(t),i=o.prototype._countBits(t)-1,r=0;r<t;r++)e[r]=this.revBin(r,i,t);return e},b.prototype.revBin=function(t,e,i){if(0===t||t===i-1)return t;for(var r=0,n=0;n<e;n++)r|=(1&t)<<e-n-1,t>>=1;return r},b.prototype.permute=function(t,e,i,r,n,o){for(var a=0;a<o;a++)r[a]=e[t[a]],n[a]=i[t[a]]},b.prototype.transform=function(t,e,i,r,n,o){this.permute(o,t,e,i,r,n);for(var a=1;a<n;a<<=1)for(var s=a<<1,h=Math.cos(2*Math.PI/s),u=Math.sin(2*Math.PI/s),l=0;l<n;l+=s)for(var d=h,f=u,c=0;c<a;c++){var p=i[l+c],m=r[l+c],g=i[l+c+a],v=r[l+c+a],y=d*g-f*v;v=d*v+f*g,g=y,i[l+c]=p+g,r[l+c]=m+v,i[l+c+a]=p-g,r[l+c+a]=m-v,c!==s&&(y=h*d-u*f,f=h*f+u*d,d=y)}},b.prototype.guessLen13b=function(t,e){var i=1|Math.max(e,t),r=1&i,n=0;for(i=i/2|0;i;i>>>=1)n++;return 1<<n+1+r},b.prototype.conjugate=function(t,e,i){if(!(i<=1))for(var r=0;r<i/2;r++){var n=t[r];t[r]=t[i-r-1],t[i-r-1]=n,n=e[r],e[r]=-e[i-r-1],e[i-r-1]=-n}},b.prototype.normalize13b=function(t,e){for(var i=0,r=0;r<e/2;r++){var n=8192*Math.round(t[2*r+1]/e)+Math.round(t[2*r]/e)+i;t[r]=67108863&n,i=n<67108864?0:n/67108864|0}return t},b.prototype.convert13b=function(t,e,i,n){for(var o=0,a=0;a<e;a++)o+=0|t[a],i[2*a]=8191&o,o>>>=13,i[2*a+1]=8191&o,o>>>=13;for(a=2*e;a<n;++a)i[a]=0;r(0===o),r(0==(-8192&o))},b.prototype.stub=function(t){for(var e=new Array(t),i=0;i<t;i++)e[i]=0;return e},b.prototype.mulp=function(t,e,i){var r=2*this.guessLen13b(t.length,e.length),n=this.makeRBT(r),o=this.stub(r),a=new Array(r),s=new Array(r),h=new Array(r),u=new Array(r),l=new Array(r),d=new Array(r),f=i.words;f.length=r,this.convert13b(t.words,t.length,a,r),this.convert13b(e.words,e.length,u,r),this.transform(a,o,s,h,r,n),this.transform(u,o,l,d,r,n);for(var c=0;c<r;c++){var p=s[c]*l[c]-h[c]*d[c];h[c]=s[c]*d[c]+h[c]*l[c],s[c]=p}return this.conjugate(s,h,r),this.transform(s,h,f,o,r,n),this.conjugate(f,o,r),this.normalize13b(f,r),i.negative=t.negative^e.negative,i.length=t.length+e.length,i._strip()},o.prototype.mul=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},o.prototype.mulf=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),y(this,t,e)},o.prototype.imul=function(t){return this.clone().mulTo(t,this)},o.prototype.imuln=function(t){var e=t<0;e&&(t=-t),r("number"==typeof t),r(t<67108864);for(var i=0,n=0;n<this.length;n++){var o=(0|this.words[n])*t,a=(67108863&o)+(67108863&i);i>>=26,i+=o/67108864|0,i+=a>>>26,this.words[n]=67108863&a}return 0!==i&&(this.words[n]=i,this.length++),e?this.ineg():this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),i=0;i<e.length;i++){var r=i/26|0,n=i%26;e[i]=t.words[r]>>>n&1}return e}(t);if(0===e.length)return new o(1);for(var i=this,r=0;r<e.length&&0===e[r];r++,i=i.sqr());if(++r<e.length)for(var n=i.sqr();r<e.length;r++,n=n.sqr())0!==e[r]&&(i=i.mul(n));return i},o.prototype.iushln=function(t){r("number"==typeof t&&t>=0);var e,i=t%26,n=(t-i)/26,o=67108863>>>26-i<<26-i;if(0!==i){var a=0;for(e=0;e<this.length;e++){var s=this.words[e]&o,h=(0|this.words[e])-s<<i;this.words[e]=h|a,a=s>>>26-i}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e<n;e++)this.words[e]=0;this.length+=n}return this._strip()},o.prototype.ishln=function(t){return r(0===this.negative),this.iushln(t)},o.prototype.iushrn=function(t,e,i){var n;r("number"==typeof t&&t>=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<<o,h=i;if(n-=a,n=Math.max(0,n),h){for(var u=0;u<a;u++)h.words[u]=this.words[u];h.length=a}if(0===a);else if(this.length>a)for(this.length-=a,u=0;u<this.length;u++)this.words[u]=this.words[u+a];else this.words[0]=0,this.length=1;var l=0;for(u=this.length-1;u>=0&&(0!==l||u>=n);u--){var d=0|this.words[u];this.words[u]=l<<26-o|d>>>o,l=d&s}return h&&0!==l&&(h.words[h.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.ishrn=function(t,e,i){return r(0===this.negative),this.iushrn(t,e,i)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){r("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26,n=1<<e;return!(this.length<=i)&&!!(this.words[i]&n)},o.prototype.imaskn=function(t){r("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=i)return this;if(0!==e&&i++,this.length=Math.min(i,this.length),0!==e){var n=67108863^67108863>>>e<<e;this.words[this.length-1]&=n}return this._strip()},o.prototype.maskn=function(t){return this.clone().imaskn(t)},o.prototype.iaddn=function(t){return r("number"==typeof t),r(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<=t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},o.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(r("number"==typeof t),r(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this._strip()},o.prototype.addn=function(t){return this.clone().iaddn(t)},o.prototype.subn=function(t){return this.clone().isubn(t)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(t,e,i){var n,o,a=t.length+i;this._expand(a);var s=0;for(n=0;n<t.length;n++){o=(0|this.words[n+i])+s;var h=(0|t.words[n])*e;s=((o-=67108863&h)>>26)-(h/67108864|0),this.words[n+i]=67108863&o}for(;n<this.length-i;n++)s=(o=(0|this.words[n+i])+s)>>26,this.words[n+i]=67108863&o;if(0===s)return this._strip();for(r(-1===s),s=0,n=0;n<this.length;n++)s=(o=-(0|this.words[n])+s)>>26,this.words[n]=67108863&o;return this.negative=1,this._strip()},o.prototype._wordDiv=function(t,e){var i=(this.length,t.length),r=this.clone(),n=t,a=0|n.words[n.length-1];0!==(i=26-this._countBits(a))&&(n=n.ushln(i),r.iushln(i),a=0|n.words[n.length-1]);var s,h=r.length-n.length;if("mod"!==e){(s=new o(null)).length=h+1,s.words=new Array(s.length);for(var u=0;u<s.length;u++)s.words[u]=0}var l=r.clone()._ishlnsubmul(n,1,h);0===l.negative&&(r=l,s&&(s.words[h]=1));for(var d=h-1;d>=0;d--){var f=67108864*(0|r.words[n.length+d])+(0|r.words[n.length+d-1]);for(f=Math.min(f/a|0,67108863),r._ishlnsubmul(n,f,d);0!==r.negative;)f--,r.negative=0,r._ishlnsubmul(n,1,d),r.isZero()||(r.negative^=1);s&&(s.words[d]=f)}return s&&s._strip(),r._strip(),"div"!==e&&0!==i&&r.iushrn(i),{div:s||null,mod:r}},o.prototype.divmod=function(t,e,i){return r(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(a=s.mod.neg(),i&&0!==a.negative&&a.iadd(t)),{div:n,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),i&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modrn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modrn(t.words[0]))}:this._wordDiv(t,e);var n,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var i=0!==e.div.negative?e.mod.isub(t):e.mod,r=t.ushrn(1),n=t.andln(1),o=i.cmp(r);return o<0||1===n&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modrn=function(t){var e=t<0;e&&(t=-t),r(t<=67108863);for(var i=(1<<26)%t,n=0,o=this.length-1;o>=0;o--)n=(i*n+(0|this.words[o]))%t;return e?-n:n},o.prototype.modn=function(t){return this.modrn(t)},o.prototype.idivn=function(t){var e=t<0;e&&(t=-t),r(t<=67108863);for(var i=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*i;this.words[n]=o/t|0,i=o%t}return this._strip(),e?this.ineg():this},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){r(0===t.negative),r(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n=new o(1),a=new o(0),s=new o(0),h=new o(1),u=0;e.isEven()&&i.isEven();)e.iushrn(1),i.iushrn(1),++u;for(var l=i.clone(),d=e.clone();!e.isZero();){for(var f=0,c=1;0==(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(n.isOdd()||a.isOdd())&&(n.iadd(l),a.isub(d)),n.iushrn(1),a.iushrn(1);for(var p=0,m=1;0==(i.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(i.iushrn(p);p-- >0;)(s.isOdd()||h.isOdd())&&(s.iadd(l),h.isub(d)),s.iushrn(1),h.iushrn(1);e.cmp(i)>=0?(e.isub(i),n.isub(s),a.isub(h)):(i.isub(e),s.isub(n),h.isub(a))}return{a:s,b:h,gcd:i.iushln(u)}},o.prototype._invmp=function(t){r(0===t.negative),r(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n,a=new o(1),s=new o(0),h=i.clone();e.cmpn(1)>0&&i.cmpn(1)>0;){for(var u=0,l=1;0==(e.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(e.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(h),a.iushrn(1);for(var d=0,f=1;0==(i.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(i.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(h),s.iushrn(1);e.cmp(i)>=0?(e.isub(i),a.isub(s)):(i.isub(e),s.isub(a))}return(n=0===e.cmpn(1)?a:s).cmpn(0)<0&&n.iadd(t),n},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),i=t.clone();e.negative=0,i.negative=0;for(var r=0;e.isEven()&&i.isEven();r++)e.iushrn(1),i.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;i.isEven();)i.iushrn(1);var n=e.cmp(i);if(n<0){var o=e;e=i,i=o}else if(0===n||0===i.cmpn(1))break;e.isub(i)}return i.iushln(r)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){r("number"==typeof t);var e=t%26,i=(t-e)/26,n=1<<e;if(this.length<=i)return this._expand(i+1),this.words[i]|=n,this;for(var o=n,a=i;0!==o&&a<this.length;a++){var s=0|this.words[a];o=(s+=o)>>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,i=t<0;if(0!==this.negative&&!i)return-1;if(0===this.negative&&i)return 1;if(this._strip(),this.length>1)e=1;else{i&&(t=-t),r(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:n<t?-1:1}return 0!==this.negative?0|-e:e},o.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},o.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,i=this.length-1;i>=0;i--){var r=0|this.words[i],n=0|t.words[i];if(r!==n){r<n?e=-1:r>n&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new k(t)},o.prototype.toRed=function(t){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return r(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return r(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var _={k256:null,p224:null,p192:null,p25519:null};function w(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function A(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function E(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function k(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else r(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function T(t){k.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}w.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},w.prototype.ireduce=function(t){var e,i=t;do{this.split(i,this.tmp),e=(i=(i=this.imulK(i)).iadd(this.tmp)).bitLength()}while(e>this.n);var r=e<this.n?-1:i.ucmp(this.p);return 0===r?(i.words[0]=0,i.length=1):r>0?i.isub(this.p):void 0!==i.strip?i.strip():i._strip(),i},w.prototype.split=function(t,e){t.iushrn(this.n,0,e)},w.prototype.imulK=function(t){return t.imul(this.k)},n(A,w),A.prototype.split=function(t,e){for(var i=4194303,r=Math.min(t.length,9),n=0;n<r;n++)e.words[n]=t.words[n];if(e.length=r,t.length<=9)return t.words[0]=0,void(t.length=1);var o=t.words[9];for(e.words[e.length++]=o&i,n=10;n<t.length;n++){var a=0|t.words[n];t.words[n-10]=(a&i)<<4|o>>>22,o=a}o>>>=22,t.words[n-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},A.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,i=0;i<t.length;i++){var r=0|t.words[i];e+=977*r,t.words[i]=67108863&e,e=64*r+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},n(M,w),n(E,w),n(S,w),S.prototype.imulK=function(t){for(var e=0,i=0;i<t.length;i++){var r=19*(0|t.words[i])+e,n=67108863&r;r>>>=26,t.words[i]=n,e=r}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(_[t])return _[t];var e;if("k256"===t)e=new A;else if("p224"===t)e=new M;else if("p192"===t)e=new E;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new S}return _[t]=e,e},k.prototype._verify1=function(t){r(0===t.negative,"red works only with positives"),r(t.red,"red works only with red numbers")},k.prototype._verify2=function(t,e){r(0==(t.negative|e.negative),"red works only with positives"),r(t.red&&t.red===e.red,"red works only with red numbers")},k.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):(l(t,t.umod(this.m)._forceRed(this)),t)},k.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},k.prototype.add=function(t,e){this._verify2(t,e);var i=t.add(e);return i.cmp(this.m)>=0&&i.isub(this.m),i._forceRed(this)},k.prototype.iadd=function(t,e){this._verify2(t,e);var i=t.iadd(e);return i.cmp(this.m)>=0&&i.isub(this.m),i},k.prototype.sub=function(t,e){this._verify2(t,e);var i=t.sub(e);return i.cmpn(0)<0&&i.iadd(this.m),i._forceRed(this)},k.prototype.isub=function(t,e){this._verify2(t,e);var i=t.isub(e);return i.cmpn(0)<0&&i.iadd(this.m),i},k.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},k.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},k.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},k.prototype.isqr=function(t){return this.imul(t,t.clone())},k.prototype.sqr=function(t){return this.mul(t,t)},k.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(r(e%2==1),3===e){var i=this.m.add(new o(1)).iushrn(2);return this.pow(t,i)}for(var n=this.m.subn(1),a=0;!n.isZero()&&0===n.andln(1);)a++,n.iushrn(1);r(!n.isZero());var s=new o(1).toRed(this),h=s.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(h);)l.redIAdd(h);for(var d=this.pow(l,n),f=this.pow(t,n.addn(1).iushrn(1)),c=this.pow(t,n),p=a;0!==c.cmp(s);){for(var m=c,g=0;0!==m.cmp(s);g++)m=m.redSqr();r(g<p);var v=this.pow(d,new o(1).iushln(p-g-1));f=f.redMul(v),d=v.redSqr(),c=c.redMul(d),p=g}return f},k.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},k.prototype.pow=function(t,e){if(e.isZero())return new o(1).toRed(this);if(0===e.cmpn(1))return t.clone();var i=new Array(16);i[0]=new o(1).toRed(this),i[1]=t;for(var r=2;r<i.length;r++)i[r]=this.mul(i[r-1],t);var n=i[0],a=0,s=0,h=e.bitLength()%26;for(0===h&&(h=26),r=e.length-1;r>=0;r--){for(var u=e.words[r],l=h-1;l>=0;l--){var d=u>>l&1;n!==i[0]&&(n=this.sqr(n)),0!==d||0!==a?(a<<=1,a|=d,(4===++s||0===r&&0===l)&&(n=this.mul(n,i[a]),s=0,a=0)):s=0}h=26}return n},k.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},k.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new T(t)},n(T,k),T.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},T.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},T.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var i=t.imul(e),r=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=i.isub(r).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},T.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var i=t.mul(e),r=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=i.isub(r).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},T.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t,this)}).call(this,i(20)(t))},function(t,e,i){"use strict";var r=e;r.version=i(208).version,r.utils=i(14),r.rand=i(63),r.curve=i(117),r.curves=i(68),r.ec=i(220),r.eddsa=i(224)},function(t,e,i){"use strict";var r,n=e,o=i(69),a=i(117),s=i(14).assert;function h(t){"short"===t.type?this.curve=new a.short(t):"edwards"===t.type?this.curve=new a.edwards(t):this.curve=new a.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,s(this.g.validate(),"Invalid curve"),s(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function u(t,e){Object.defineProperty(n,t,{configurable:!0,enumerable:!0,get:function(){var i=new h(e);return Object.defineProperty(n,t,{configurable:!0,enumerable:!0,value:i}),i}})}n.PresetCurve=h,u("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:o.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),u("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:o.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),u("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:o.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),u("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:o.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),u("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:o.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),u("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["9"]}),u("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=i(219)}catch(t){r=void 0}u("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:o.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})},function(t,e,i){var r=e;r.utils=i(15),r.common=i(38),r.sha=i(213),r.ripemd=i(217),r.hmac=i(218),r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160},function(t,e,i){"use strict";(function(e){var r,n=i(9),o=n.Buffer,a={};for(r in n)n.hasOwnProperty(r)&&"SlowBuffer"!==r&&"Buffer"!==r&&(a[r]=n[r]);var s=a.Buffer={};for(r in o)o.hasOwnProperty(r)&&"allocUnsafe"!==r&&"allocUnsafeSlow"!==r&&(s[r]=o[r]);if(a.Buffer.prototype=o.prototype,s.from&&s.from!==Uint8Array.from||(s.from=function(t,e,i){if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof t);if(t&&void 0===t.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);return o(t,e,i)}),s.alloc||(s.alloc=function(t,e,i){if("number"!=typeof t)throw new TypeError('The "size" argument must be of type number. Received type '+typeof t);if(t<0||t>=2*(1<<30))throw new RangeError('The value "'+t+'" is invalid for option "size"');var r=o(t);return e&&0!==e.length?"string"==typeof i?r.fill(e,i):r.fill(e):r.fill(0),r}),!a.kStringMaxLength)try{a.kStringMaxLength=e.binding("buffer").kStringMaxLength}catch(t){}a.constants||(a.constants={MAX_LENGTH:a.kMaxLength},a.kStringMaxLength&&(a.constants.MAX_STRING_LENGTH=a.kStringMaxLength)),t.exports=a}).call(this,i(8))},function(t,e,i){"use strict";var r=i(72).Reporter,n=i(39).EncoderBuffer,o=i(39).DecoderBuffer,a=i(13),s=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],h=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(s);function u(t,e,i){var r={};this._baseState=r,r.name=i,r.enc=t,r.parent=e||null,r.children=null,r.tag=null,r.args=null,r.reverseArgs=null,r.choice=null,r.optional=!1,r.any=!1,r.obj=!1,r.use=null,r.useDecoder=null,r.key=null,r.default=null,r.explicit=null,r.implicit=null,r.contains=null,r.parent||(r.children=[],this._wrap())}t.exports=u;var l=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];u.prototype.clone=function(){var t=this._baseState,e={};l.forEach((function(i){e[i]=t[i]}));var i=new this.constructor(e.parent);return i._baseState=e,i},u.prototype._wrap=function(){var t=this._baseState;h.forEach((function(e){this[e]=function(){var i=new this.constructor(this);return t.children.push(i),i[e].apply(i,arguments)}}),this)},u.prototype._init=function(t){var e=this._baseState;a(null===e.parent),t.call(this),e.children=e.children.filter((function(t){return t._baseState.parent===this}),this),a.equal(e.children.length,1,"Root node can have only one child")},u.prototype._useArgs=function(t){var e=this._baseState,i=t.filter((function(t){return t instanceof this.constructor}),this);t=t.filter((function(t){return!(t instanceof this.constructor)}),this),0!==i.length&&(a(null===e.children),e.children=i,i.forEach((function(t){t._baseState.parent=this}),this)),0!==t.length&&(a(null===e.args),e.args=t,e.reverseArgs=t.map((function(t){if("object"!=typeof t||t.constructor!==Object)return t;var e={};return Object.keys(t).forEach((function(i){i==(0|i)&&(i|=0);var r=t[i];e[r]=i})),e})))},["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"].forEach((function(t){u.prototype[t]=function(){var e=this._baseState;throw new Error(t+" not implemented for encoding: "+e.enc)}})),s.forEach((function(t){u.prototype[t]=function(){var e=this._baseState,i=Array.prototype.slice.call(arguments);return a(null===e.tag),e.tag=t,this._useArgs(i),this}})),u.prototype.use=function(t){a(t);var e=this._baseState;return a(null===e.use),e.use=t,this},u.prototype.optional=function(){return this._baseState.optional=!0,this},u.prototype.def=function(t){var e=this._baseState;return a(null===e.default),e.default=t,e.optional=!0,this},u.prototype.explicit=function(t){var e=this._baseState;return a(null===e.explicit&&null===e.implicit),e.explicit=t,this},u.prototype.implicit=function(t){var e=this._baseState;return a(null===e.explicit&&null===e.implicit),e.implicit=t,this},u.prototype.obj=function(){var t=this._baseState,e=Array.prototype.slice.call(arguments);return t.obj=!0,0!==e.length&&this._useArgs(e),this},u.prototype.key=function(t){var e=this._baseState;return a(null===e.key),e.key=t,this},u.prototype.any=function(){return this._baseState.any=!0,this},u.prototype.choice=function(t){var e=this._baseState;return a(null===e.choice),e.choice=t,this._useArgs(Object.keys(t).map((function(e){return t[e]}))),this},u.prototype.contains=function(t){var e=this._baseState;return a(null===e.use),e.contains=t,this},u.prototype._decode=function(t,e){var i=this._baseState;if(null===i.parent)return t.wrapResult(i.children[0]._decode(t,e));var r,n=i.default,a=!0,s=null;if(null!==i.key&&(s=t.enterKey(i.key)),i.optional){var h=null;if(null!==i.explicit?h=i.explicit:null!==i.implicit?h=i.implicit:null!==i.tag&&(h=i.tag),null!==h||i.any){if(a=this._peekTag(t,h,i.any),t.isError(a))return a}else{var u=t.save();try{null===i.choice?this._decodeGeneric(i.tag,t,e):this._decodeChoice(t,e),a=!0}catch(t){a=!1}t.restore(u)}}if(i.obj&&a&&(r=t.enterObject()),a){if(null!==i.explicit){var l=this._decodeTag(t,i.explicit);if(t.isError(l))return l;t=l}var d=t.offset;if(null===i.use&&null===i.choice){var f;i.any&&(f=t.save());var c=this._decodeTag(t,null!==i.implicit?i.implicit:i.tag,i.any);if(t.isError(c))return c;i.any?n=t.raw(f):t=c}if(e&&e.track&&null!==i.tag&&e.track(t.path(),d,t.length,"tagged"),e&&e.track&&null!==i.tag&&e.track(t.path(),t.offset,t.length,"content"),i.any||(n=null===i.choice?this._decodeGeneric(i.tag,t,e):this._decodeChoice(t,e)),t.isError(n))return n;if(i.any||null!==i.choice||null===i.children||i.children.forEach((function(i){i._decode(t,e)})),i.contains&&("octstr"===i.tag||"bitstr"===i.tag)){var p=new o(n);n=this._getUse(i.contains,t._reporterState.obj)._decode(p,e)}}return i.obj&&a&&(n=t.leaveObject(r)),null===i.key||null===n&&!0!==a?null!==s&&t.exitKey(s):t.leaveKey(s,i.key,n),n},u.prototype._decodeGeneric=function(t,e,i){var r=this._baseState;return"seq"===t||"set"===t?null:"seqof"===t||"setof"===t?this._decodeList(e,t,r.args[0],i):/str$/.test(t)?this._decodeStr(e,t,i):"objid"===t&&r.args?this._decodeObjid(e,r.args[0],r.args[1],i):"objid"===t?this._decodeObjid(e,null,null,i):"gentime"===t||"utctime"===t?this._decodeTime(e,t,i):"null_"===t?this._decodeNull(e,i):"bool"===t?this._decodeBool(e,i):"objDesc"===t?this._decodeStr(e,t,i):"int"===t||"enum"===t?this._decodeInt(e,r.args&&r.args[0],i):null!==r.use?this._getUse(r.use,e._reporterState.obj)._decode(e,i):e.error("unknown tag: "+t)},u.prototype._getUse=function(t,e){var i=this._baseState;return i.useDecoder=this._use(t,e),a(null===i.useDecoder._baseState.parent),i.useDecoder=i.useDecoder._baseState.children[0],i.implicit!==i.useDecoder._baseState.implicit&&(i.useDecoder=i.useDecoder.clone(),i.useDecoder._baseState.implicit=i.implicit),i.useDecoder},u.prototype._decodeChoice=function(t,e){var i=this._baseState,r=null,n=!1;return Object.keys(i.choice).some((function(o){var a=t.save(),s=i.choice[o];try{var h=s._decode(t,e);if(t.isError(h))return!1;r={type:o,value:h},n=!0}catch(e){return t.restore(a),!1}return!0}),this),n?r:t.error("Choice not matched")},u.prototype._createEncoderBuffer=function(t){return new n(t,this.reporter)},u.prototype._encode=function(t,e,i){var r=this._baseState;if(null===r.default||r.default!==t){var n=this._encodeValue(t,e,i);if(void 0!==n&&!this._skipDefault(n,e,i))return n}},u.prototype._encodeValue=function(t,e,i){var n=this._baseState;if(null===n.parent)return n.children[0]._encode(t,e||new r);var o=null;if(this.reporter=e,n.optional&&void 0===t){if(null===n.default)return;t=n.default}var a=null,s=!1;if(n.any)o=this._createEncoderBuffer(t);else if(n.choice)o=this._encodeChoice(t,e);else if(n.contains)a=this._getUse(n.contains,i)._encode(t,e),s=!0;else if(n.children)a=n.children.map((function(i){if("null_"===i._baseState.tag)return i._encode(null,e,t);if(null===i._baseState.key)return e.error("Child should have a key");var r=e.enterKey(i._baseState.key);if("object"!=typeof t)return e.error("Child expected, but input is not object");var n=i._encode(t[i._baseState.key],e,t);return e.leaveKey(r),n}),this).filter((function(t){return t})),a=this._createEncoderBuffer(a);else if("seqof"===n.tag||"setof"===n.tag){if(!n.args||1!==n.args.length)return e.error("Too many args for : "+n.tag);if(!Array.isArray(t))return e.error("seqof/setof, but data is not Array");var h=this.clone();h._baseState.implicit=null,a=this._createEncoderBuffer(t.map((function(i){var r=this._baseState;return this._getUse(r.args[0],t)._encode(i,e)}),h))}else null!==n.use?o=this._getUse(n.use,i)._encode(t,e):(a=this._encodePrimitive(n.tag,t),s=!0);if(!n.any&&null===n.choice){var u=null!==n.implicit?n.implicit:n.tag,l=null===n.implicit?"universal":"context";null===u?null===n.use&&e.error("Tag could be omitted only for .use()"):null===n.use&&(o=this._encodeComposite(u,s,l,a))}return null!==n.explicit&&(o=this._encodeComposite(n.explicit,!1,"context",o)),o},u.prototype._encodeChoice=function(t,e){var i=this._baseState,r=i.choice[t.type];return r||a(!1,t.type+" not found in "+JSON.stringify(Object.keys(i.choice))),r._encode(t.value,e)},u.prototype._encodePrimitive=function(t,e){var i=this._baseState;if(/str$/.test(t))return this._encodeStr(e,t);if("objid"===t&&i.args)return this._encodeObjid(e,i.reverseArgs[0],i.args[1]);if("objid"===t)return this._encodeObjid(e,null,null);if("gentime"===t||"utctime"===t)return this._encodeTime(e,t);if("null_"===t)return this._encodeNull();if("int"===t||"enum"===t)return this._encodeInt(e,i.args&&i.reverseArgs[0]);if("bool"===t)return this._encodeBool(e);if("objDesc"===t)return this._encodeStr(e,t);throw new Error("Unsupported tag: "+t)},u.prototype._isNumstr=function(t){return/^[0-9 ]*$/.test(t)},u.prototype._isPrintstr=function(t){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(t)}},function(t,e,i){"use strict";var r=i(3);function n(t){this._reporterState={obj:null,path:[],options:t||{},errors:[]}}function o(t,e){this.path=t,this.rethrow(e)}e.Reporter=n,n.prototype.isError=function(t){return t instanceof o},n.prototype.save=function(){var t=this._reporterState;return{obj:t.obj,pathLen:t.path.length}},n.prototype.restore=function(t){var e=this._reporterState;e.obj=t.obj,e.path=e.path.slice(0,t.pathLen)},n.prototype.enterKey=function(t){return this._reporterState.path.push(t)},n.prototype.exitKey=function(t){var e=this._reporterState;e.path=e.path.slice(0,t-1)},n.prototype.leaveKey=function(t,e,i){var r=this._reporterState;this.exitKey(t),null!==r.obj&&(r.obj[e]=i)},n.prototype.path=function(){return this._reporterState.path.join("/")},n.prototype.enterObject=function(){var t=this._reporterState,e=t.obj;return t.obj={},e},n.prototype.leaveObject=function(t){var e=this._reporterState,i=e.obj;return e.obj=t,i},n.prototype.error=function(t){var e,i=this._reporterState,r=t instanceof o;if(e=r?t:new o(i.path.map((function(t){return"["+JSON.stringify(t)+"]"})).join(""),t.message||t,t.stack),!i.options.partial)throw e;return r||i.errors.push(e),e},n.prototype.wrapResult=function(t){var e=this._reporterState;return e.options.partial?{result:this.isError(t)?null:t,errors:e.errors}:t},r(o,Error),o.prototype.rethrow=function(t){if(this.message=t+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,o),!this.stack)try{throw new Error(this.message)}catch(t){this.stack=t.stack}return this}},function(t,e,i){"use strict";function r(t){var e={};return Object.keys(t).forEach((function(i){(0|i)==i&&(i|=0);var r=t[i];e[r]=i})),e}e.tagClass={0:"universal",1:"application",2:"context",3:"private"},e.tagClassByName=r(e.tagClass),e.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},e.tagByName=r(e.tag)},function(t,e,i){(function(t){!function(t,e){"use strict";function r(t,e){if(!t)throw new Error(e||"Assertion failed")}function n(t,e){t.super_=e;var i=function(){};i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t}function o(t,e,i){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(i=e,e=10),this._init(t||0,e||10,i||"be"))}var a;"object"==typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:i(243).Buffer}catch(t){}function s(t,e){var i=t.charCodeAt(e);return i>=65&&i<=70?i-55:i>=97&&i<=102?i-87:i-48&15}function h(t,e,i){var r=s(t,i);return i-1>=e&&(r|=s(t,i-1)<<4),r}function u(t,e,i,r){for(var n=0,o=Math.min(t.length,i),a=e;a<o;a++){var s=t.charCodeAt(a)-48;n*=r,n+=s>=49?s-49+10:s>=17?s-17+10:s}return n}o.isBN=function(t){return t instanceof o||null!==t&&"object"==typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,i){if("number"==typeof t)return this._initNumber(t,e,i);if("object"==typeof t)return this._initArray(t,e,i);"hex"===e&&(e=16),r(e===(0|e)&&e>=2&&e<=36);var n=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(n++,this.negative=1),n<t.length&&(16===e?this._parseHex(t,n,i):(this._parseBase(t,e,n),"le"===i&&this._initArray(this.toArray(),e,i)))},o.prototype._initNumber=function(t,e,i){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(r(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===i&&this._initArray(this.toArray(),e,i)},o.prototype._initArray=function(t,e,i){if(r("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var o,a,s=0;if("be"===i)for(n=t.length-1,o=0;n>=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===i)for(n=0,o=0;n<t.length;n+=3)a=t[n]|t[n+1]<<8|t[n+2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e,i){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var n,o=0,a=0;if("be"===i)for(r=t.length-1;r>=e;r-=2)n=h(t,e,r)<<o,this.words[a]|=67108863&n,o>=18?(o-=18,a+=1,this.words[a]|=n>>>26):o+=8;else for(r=(t.length-e)%2==0?e+1:e;r<t.length;r+=2)n=h(t,e,r)<<o,this.words[a]|=67108863&n,o>=18?(o-=18,a+=1,this.words[a]|=n>>>26):o+=8;this.strip()},o.prototype._parseBase=function(t,e,i){this.words=[0],this.length=1;for(var r=0,n=1;n<=67108863;n*=e)r++;r--,n=n/e|0;for(var o=t.length-i,a=o%r,s=Math.min(o,o-a)+i,h=0,l=i;l<s;l+=r)h=u(t,l,l+r,e),this.imuln(n),this.words[0]+h<67108864?this.words[0]+=h:this._iaddn(h);if(0!==a){var d=1;for(h=u(t,l,t.length,e),l=0;l<a;l++)d*=e;this.imuln(d),this.words[0]+h<67108864?this.words[0]+=h:this._iaddn(h)}this.strip()},o.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},o.prototype.clone=function(){var t=new o(null);return this.copy(t),t},o.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},o.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var l=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],d=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t,e,i){i.negative=e.negative^t.negative;var r=t.length+e.length|0;i.length=r,r=r-1|0;var n=0|t.words[0],o=0|e.words[0],a=n*o,s=67108863&a,h=a/67108864|0;i.words[0]=s;for(var u=1;u<r;u++){for(var l=h>>>26,d=67108863&h,f=Math.min(u,e.length-1),c=Math.max(0,u-t.length+1);c<=f;c++){var p=u-c|0;l+=(a=(n=0|t.words[p])*(o=0|e.words[c])+d)/67108864|0,d=67108863&a}i.words[u]=0|d,h=0|l}return 0!==h?i.words[u]=0|h:i.length--,i.strip()}o.prototype.toString=function(t,e){var i;if(e=0|e||1,16===(t=t||10)||"hex"===t){i="";for(var n=0,o=0,a=0;a<this.length;a++){var s=this.words[a],h=(16777215&(s<<n|o)).toString(16);i=0!==(o=s>>>24-n&16777215)||a!==this.length-1?l[6-h.length]+h+i:h+i,(n+=2)>=26&&(n-=26,a--)}for(0!==o&&(i=o.toString(16)+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}if(t===(0|t)&&t>=2&&t<=36){var u=d[t],c=f[t];i="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(c).toString(t);i=(p=p.idivn(c)).isZero()?m+i:l[u-m.length]+m+i}for(this.isZero()&&(i="0"+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return r(void 0!==a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,i){var n=this.byteLength(),o=i||Math.max(1,n);r(n<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0"),this.strip();var a,s,h="le"===e,u=new t(o),l=this.clone();if(h){for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[s]=a;for(;s<o;s++)u[s]=0}else{for(s=0;s<o-n;s++)u[s]=0;for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[o-s-1]=a}return u},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,i=0;return e>=4096&&(i+=13,e>>>=13),e>=64&&(i+=7,e>>>=7),e>=8&&(i+=4,e>>>=4),e>=2&&(i+=2,e>>>=2),i+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,i=0;return 0==(8191&e)&&(i+=13,e>>>=13),0==(127&e)&&(i+=7,e>>>=7),0==(15&e)&&(i+=4,e>>>=4),0==(3&e)&&(i+=2,e>>>=2),0==(1&e)&&i++,i},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var i=this._zeroBits(this.words[e]);if(t+=i,26!==i)break}return t},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},o.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},o.prototype.ior=function(t){return r(0==(this.negative|t.negative)),this.iuor(t)},o.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var i=0;i<e.length;i++)this.words[i]=this.words[i]&t.words[i];return this.length=e.length,this.strip()},o.prototype.iand=function(t){return r(0==(this.negative|t.negative)),this.iuand(t)},o.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,i;this.length>t.length?(e=this,i=t):(e=t,i=this);for(var r=0;r<i.length;r++)this.words[r]=e.words[r]^i.words[r];if(this!==e)for(;r<e.length;r++)this.words[r]=e.words[r];return this.length=e.length,this.strip()},o.prototype.ixor=function(t){return r(0==(this.negative|t.negative)),this.iuxor(t)},o.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){r("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),i=t%26;this._expand(e),i>0&&e--;for(var n=0;n<e;n++)this.words[n]=67108863&~this.words[n];return i>0&&(this.words[n]=~this.words[n]&67108863>>26-i),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){r("number"==typeof t&&t>=0);var i=t/26|0,n=t%26;return this._expand(i+1),this.words[i]=e?this.words[i]|1<<n:this.words[i]&~(1<<n),this.strip()},o.prototype.iadd=function(t){var e,i,r;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(i=this,r=t):(i=t,r=this);for(var n=0,o=0;o<r.length;o++)e=(0|i.words[o])+(0|r.words[o])+n,this.words[o]=67108863&e,n=e>>>26;for(;0!==n&&o<i.length;o++)e=(0|i.words[o])+n,this.words[o]=67108863&e,n=e>>>26;if(this.length=i.length,0!==n)this.words[this.length]=n,this.length++;else if(i!==this)for(;o<i.length;o++)this.words[o]=i.words[o];return this},o.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var i,r,n=this.cmp(t);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(i=this,r=t):(i=t,r=this);for(var o=0,a=0;a<r.length;a++)o=(e=(0|i.words[a])-(0|r.words[a])+o)>>26,this.words[a]=67108863&e;for(;0!==o&&a<i.length;a++)o=(e=(0|i.words[a])+o)>>26,this.words[a]=67108863&e;if(0===o&&a<i.length&&i!==this)for(;a<i.length;a++)this.words[a]=i.words[a];return this.length=Math.max(this.length,a),i!==this&&(this.negative=1),this.strip()},o.prototype.sub=function(t){return this.clone().isub(t)};var p=function(t,e,i){var r,n,o,a=t.words,s=e.words,h=i.words,u=0,l=0|a[0],d=8191&l,f=l>>>13,c=0|a[1],p=8191&c,m=c>>>13,g=0|a[2],v=8191&g,y=g>>>13,b=0|a[3],_=8191&b,w=b>>>13,A=0|a[4],M=8191&A,E=A>>>13,S=0|a[5],k=8191&S,T=S>>>13,R=0|a[6],I=8191&R,C=R>>>13,P=0|a[7],x=8191&P,D=P>>>13,O=0|a[8],B=8191&O,L=O>>>13,W=0|a[9],N=8191&W,F=W>>>13,U=0|s[0],j=8191&U,V=U>>>13,H=0|s[1],z=8191&H,G=H>>>13,q=0|s[2],X=8191&q,Z=q>>>13,K=0|s[3],Q=8191&K,Y=K>>>13,J=0|s[4],$=8191&J,tt=J>>>13,et=0|s[5],it=8191&et,rt=et>>>13,nt=0|s[6],ot=8191&nt,at=nt>>>13,st=0|s[7],ht=8191&st,ut=st>>>13,lt=0|s[8],dt=8191<,ft=lt>>>13,ct=0|s[9],pt=8191&ct,mt=ct>>>13;i.negative=t.negative^e.negative,i.length=19;var gt=(u+(r=Math.imul(d,j))|0)+((8191&(n=(n=Math.imul(d,V))+Math.imul(f,j)|0))<<13)|0;u=((o=Math.imul(f,V))+(n>>>13)|0)+(gt>>>26)|0,gt&=67108863,r=Math.imul(p,j),n=(n=Math.imul(p,V))+Math.imul(m,j)|0,o=Math.imul(m,V);var vt=(u+(r=r+Math.imul(d,z)|0)|0)+((8191&(n=(n=n+Math.imul(d,G)|0)+Math.imul(f,z)|0))<<13)|0;u=((o=o+Math.imul(f,G)|0)+(n>>>13)|0)+(vt>>>26)|0,vt&=67108863,r=Math.imul(v,j),n=(n=Math.imul(v,V))+Math.imul(y,j)|0,o=Math.imul(y,V),r=r+Math.imul(p,z)|0,n=(n=n+Math.imul(p,G)|0)+Math.imul(m,z)|0,o=o+Math.imul(m,G)|0;var yt=(u+(r=r+Math.imul(d,X)|0)|0)+((8191&(n=(n=n+Math.imul(d,Z)|0)+Math.imul(f,X)|0))<<13)|0;u=((o=o+Math.imul(f,Z)|0)+(n>>>13)|0)+(yt>>>26)|0,yt&=67108863,r=Math.imul(_,j),n=(n=Math.imul(_,V))+Math.imul(w,j)|0,o=Math.imul(w,V),r=r+Math.imul(v,z)|0,n=(n=n+Math.imul(v,G)|0)+Math.imul(y,z)|0,o=o+Math.imul(y,G)|0,r=r+Math.imul(p,X)|0,n=(n=n+Math.imul(p,Z)|0)+Math.imul(m,X)|0,o=o+Math.imul(m,Z)|0;var bt=(u+(r=r+Math.imul(d,Q)|0)|0)+((8191&(n=(n=n+Math.imul(d,Y)|0)+Math.imul(f,Q)|0))<<13)|0;u=((o=o+Math.imul(f,Y)|0)+(n>>>13)|0)+(bt>>>26)|0,bt&=67108863,r=Math.imul(M,j),n=(n=Math.imul(M,V))+Math.imul(E,j)|0,o=Math.imul(E,V),r=r+Math.imul(_,z)|0,n=(n=n+Math.imul(_,G)|0)+Math.imul(w,z)|0,o=o+Math.imul(w,G)|0,r=r+Math.imul(v,X)|0,n=(n=n+Math.imul(v,Z)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,Z)|0,r=r+Math.imul(p,Q)|0,n=(n=n+Math.imul(p,Y)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,Y)|0;var _t=(u+(r=r+Math.imul(d,$)|0)|0)+((8191&(n=(n=n+Math.imul(d,tt)|0)+Math.imul(f,$)|0))<<13)|0;u=((o=o+Math.imul(f,tt)|0)+(n>>>13)|0)+(_t>>>26)|0,_t&=67108863,r=Math.imul(k,j),n=(n=Math.imul(k,V))+Math.imul(T,j)|0,o=Math.imul(T,V),r=r+Math.imul(M,z)|0,n=(n=n+Math.imul(M,G)|0)+Math.imul(E,z)|0,o=o+Math.imul(E,G)|0,r=r+Math.imul(_,X)|0,n=(n=n+Math.imul(_,Z)|0)+Math.imul(w,X)|0,o=o+Math.imul(w,Z)|0,r=r+Math.imul(v,Q)|0,n=(n=n+Math.imul(v,Y)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,Y)|0,r=r+Math.imul(p,$)|0,n=(n=n+Math.imul(p,tt)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,tt)|0;var wt=(u+(r=r+Math.imul(d,it)|0)|0)+((8191&(n=(n=n+Math.imul(d,rt)|0)+Math.imul(f,it)|0))<<13)|0;u=((o=o+Math.imul(f,rt)|0)+(n>>>13)|0)+(wt>>>26)|0,wt&=67108863,r=Math.imul(I,j),n=(n=Math.imul(I,V))+Math.imul(C,j)|0,o=Math.imul(C,V),r=r+Math.imul(k,z)|0,n=(n=n+Math.imul(k,G)|0)+Math.imul(T,z)|0,o=o+Math.imul(T,G)|0,r=r+Math.imul(M,X)|0,n=(n=n+Math.imul(M,Z)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,Z)|0,r=r+Math.imul(_,Q)|0,n=(n=n+Math.imul(_,Y)|0)+Math.imul(w,Q)|0,o=o+Math.imul(w,Y)|0,r=r+Math.imul(v,$)|0,n=(n=n+Math.imul(v,tt)|0)+Math.imul(y,$)|0,o=o+Math.imul(y,tt)|0,r=r+Math.imul(p,it)|0,n=(n=n+Math.imul(p,rt)|0)+Math.imul(m,it)|0,o=o+Math.imul(m,rt)|0;var At=(u+(r=r+Math.imul(d,ot)|0)|0)+((8191&(n=(n=n+Math.imul(d,at)|0)+Math.imul(f,ot)|0))<<13)|0;u=((o=o+Math.imul(f,at)|0)+(n>>>13)|0)+(At>>>26)|0,At&=67108863,r=Math.imul(x,j),n=(n=Math.imul(x,V))+Math.imul(D,j)|0,o=Math.imul(D,V),r=r+Math.imul(I,z)|0,n=(n=n+Math.imul(I,G)|0)+Math.imul(C,z)|0,o=o+Math.imul(C,G)|0,r=r+Math.imul(k,X)|0,n=(n=n+Math.imul(k,Z)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,Z)|0,r=r+Math.imul(M,Q)|0,n=(n=n+Math.imul(M,Y)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,Y)|0,r=r+Math.imul(_,$)|0,n=(n=n+Math.imul(_,tt)|0)+Math.imul(w,$)|0,o=o+Math.imul(w,tt)|0,r=r+Math.imul(v,it)|0,n=(n=n+Math.imul(v,rt)|0)+Math.imul(y,it)|0,o=o+Math.imul(y,rt)|0,r=r+Math.imul(p,ot)|0,n=(n=n+Math.imul(p,at)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0;var Mt=(u+(r=r+Math.imul(d,ht)|0)|0)+((8191&(n=(n=n+Math.imul(d,ut)|0)+Math.imul(f,ht)|0))<<13)|0;u=((o=o+Math.imul(f,ut)|0)+(n>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,r=Math.imul(B,j),n=(n=Math.imul(B,V))+Math.imul(L,j)|0,o=Math.imul(L,V),r=r+Math.imul(x,z)|0,n=(n=n+Math.imul(x,G)|0)+Math.imul(D,z)|0,o=o+Math.imul(D,G)|0,r=r+Math.imul(I,X)|0,n=(n=n+Math.imul(I,Z)|0)+Math.imul(C,X)|0,o=o+Math.imul(C,Z)|0,r=r+Math.imul(k,Q)|0,n=(n=n+Math.imul(k,Y)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,Y)|0,r=r+Math.imul(M,$)|0,n=(n=n+Math.imul(M,tt)|0)+Math.imul(E,$)|0,o=o+Math.imul(E,tt)|0,r=r+Math.imul(_,it)|0,n=(n=n+Math.imul(_,rt)|0)+Math.imul(w,it)|0,o=o+Math.imul(w,rt)|0,r=r+Math.imul(v,ot)|0,n=(n=n+Math.imul(v,at)|0)+Math.imul(y,ot)|0,o=o+Math.imul(y,at)|0,r=r+Math.imul(p,ht)|0,n=(n=n+Math.imul(p,ut)|0)+Math.imul(m,ht)|0,o=o+Math.imul(m,ut)|0;var Et=(u+(r=r+Math.imul(d,dt)|0)|0)+((8191&(n=(n=n+Math.imul(d,ft)|0)+Math.imul(f,dt)|0))<<13)|0;u=((o=o+Math.imul(f,ft)|0)+(n>>>13)|0)+(Et>>>26)|0,Et&=67108863,r=Math.imul(N,j),n=(n=Math.imul(N,V))+Math.imul(F,j)|0,o=Math.imul(F,V),r=r+Math.imul(B,z)|0,n=(n=n+Math.imul(B,G)|0)+Math.imul(L,z)|0,o=o+Math.imul(L,G)|0,r=r+Math.imul(x,X)|0,n=(n=n+Math.imul(x,Z)|0)+Math.imul(D,X)|0,o=o+Math.imul(D,Z)|0,r=r+Math.imul(I,Q)|0,n=(n=n+Math.imul(I,Y)|0)+Math.imul(C,Q)|0,o=o+Math.imul(C,Y)|0,r=r+Math.imul(k,$)|0,n=(n=n+Math.imul(k,tt)|0)+Math.imul(T,$)|0,o=o+Math.imul(T,tt)|0,r=r+Math.imul(M,it)|0,n=(n=n+Math.imul(M,rt)|0)+Math.imul(E,it)|0,o=o+Math.imul(E,rt)|0,r=r+Math.imul(_,ot)|0,n=(n=n+Math.imul(_,at)|0)+Math.imul(w,ot)|0,o=o+Math.imul(w,at)|0,r=r+Math.imul(v,ht)|0,n=(n=n+Math.imul(v,ut)|0)+Math.imul(y,ht)|0,o=o+Math.imul(y,ut)|0,r=r+Math.imul(p,dt)|0,n=(n=n+Math.imul(p,ft)|0)+Math.imul(m,dt)|0,o=o+Math.imul(m,ft)|0;var St=(u+(r=r+Math.imul(d,pt)|0)|0)+((8191&(n=(n=n+Math.imul(d,mt)|0)+Math.imul(f,pt)|0))<<13)|0;u=((o=o+Math.imul(f,mt)|0)+(n>>>13)|0)+(St>>>26)|0,St&=67108863,r=Math.imul(N,z),n=(n=Math.imul(N,G))+Math.imul(F,z)|0,o=Math.imul(F,G),r=r+Math.imul(B,X)|0,n=(n=n+Math.imul(B,Z)|0)+Math.imul(L,X)|0,o=o+Math.imul(L,Z)|0,r=r+Math.imul(x,Q)|0,n=(n=n+Math.imul(x,Y)|0)+Math.imul(D,Q)|0,o=o+Math.imul(D,Y)|0,r=r+Math.imul(I,$)|0,n=(n=n+Math.imul(I,tt)|0)+Math.imul(C,$)|0,o=o+Math.imul(C,tt)|0,r=r+Math.imul(k,it)|0,n=(n=n+Math.imul(k,rt)|0)+Math.imul(T,it)|0,o=o+Math.imul(T,rt)|0,r=r+Math.imul(M,ot)|0,n=(n=n+Math.imul(M,at)|0)+Math.imul(E,ot)|0,o=o+Math.imul(E,at)|0,r=r+Math.imul(_,ht)|0,n=(n=n+Math.imul(_,ut)|0)+Math.imul(w,ht)|0,o=o+Math.imul(w,ut)|0,r=r+Math.imul(v,dt)|0,n=(n=n+Math.imul(v,ft)|0)+Math.imul(y,dt)|0,o=o+Math.imul(y,ft)|0;var kt=(u+(r=r+Math.imul(p,pt)|0)|0)+((8191&(n=(n=n+Math.imul(p,mt)|0)+Math.imul(m,pt)|0))<<13)|0;u=((o=o+Math.imul(m,mt)|0)+(n>>>13)|0)+(kt>>>26)|0,kt&=67108863,r=Math.imul(N,X),n=(n=Math.imul(N,Z))+Math.imul(F,X)|0,o=Math.imul(F,Z),r=r+Math.imul(B,Q)|0,n=(n=n+Math.imul(B,Y)|0)+Math.imul(L,Q)|0,o=o+Math.imul(L,Y)|0,r=r+Math.imul(x,$)|0,n=(n=n+Math.imul(x,tt)|0)+Math.imul(D,$)|0,o=o+Math.imul(D,tt)|0,r=r+Math.imul(I,it)|0,n=(n=n+Math.imul(I,rt)|0)+Math.imul(C,it)|0,o=o+Math.imul(C,rt)|0,r=r+Math.imul(k,ot)|0,n=(n=n+Math.imul(k,at)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,r=r+Math.imul(M,ht)|0,n=(n=n+Math.imul(M,ut)|0)+Math.imul(E,ht)|0,o=o+Math.imul(E,ut)|0,r=r+Math.imul(_,dt)|0,n=(n=n+Math.imul(_,ft)|0)+Math.imul(w,dt)|0,o=o+Math.imul(w,ft)|0;var Tt=(u+(r=r+Math.imul(v,pt)|0)|0)+((8191&(n=(n=n+Math.imul(v,mt)|0)+Math.imul(y,pt)|0))<<13)|0;u=((o=o+Math.imul(y,mt)|0)+(n>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,r=Math.imul(N,Q),n=(n=Math.imul(N,Y))+Math.imul(F,Q)|0,o=Math.imul(F,Y),r=r+Math.imul(B,$)|0,n=(n=n+Math.imul(B,tt)|0)+Math.imul(L,$)|0,o=o+Math.imul(L,tt)|0,r=r+Math.imul(x,it)|0,n=(n=n+Math.imul(x,rt)|0)+Math.imul(D,it)|0,o=o+Math.imul(D,rt)|0,r=r+Math.imul(I,ot)|0,n=(n=n+Math.imul(I,at)|0)+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,r=r+Math.imul(k,ht)|0,n=(n=n+Math.imul(k,ut)|0)+Math.imul(T,ht)|0,o=o+Math.imul(T,ut)|0,r=r+Math.imul(M,dt)|0,n=(n=n+Math.imul(M,ft)|0)+Math.imul(E,dt)|0,o=o+Math.imul(E,ft)|0;var Rt=(u+(r=r+Math.imul(_,pt)|0)|0)+((8191&(n=(n=n+Math.imul(_,mt)|0)+Math.imul(w,pt)|0))<<13)|0;u=((o=o+Math.imul(w,mt)|0)+(n>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,r=Math.imul(N,$),n=(n=Math.imul(N,tt))+Math.imul(F,$)|0,o=Math.imul(F,tt),r=r+Math.imul(B,it)|0,n=(n=n+Math.imul(B,rt)|0)+Math.imul(L,it)|0,o=o+Math.imul(L,rt)|0,r=r+Math.imul(x,ot)|0,n=(n=n+Math.imul(x,at)|0)+Math.imul(D,ot)|0,o=o+Math.imul(D,at)|0,r=r+Math.imul(I,ht)|0,n=(n=n+Math.imul(I,ut)|0)+Math.imul(C,ht)|0,o=o+Math.imul(C,ut)|0,r=r+Math.imul(k,dt)|0,n=(n=n+Math.imul(k,ft)|0)+Math.imul(T,dt)|0,o=o+Math.imul(T,ft)|0;var It=(u+(r=r+Math.imul(M,pt)|0)|0)+((8191&(n=(n=n+Math.imul(M,mt)|0)+Math.imul(E,pt)|0))<<13)|0;u=((o=o+Math.imul(E,mt)|0)+(n>>>13)|0)+(It>>>26)|0,It&=67108863,r=Math.imul(N,it),n=(n=Math.imul(N,rt))+Math.imul(F,it)|0,o=Math.imul(F,rt),r=r+Math.imul(B,ot)|0,n=(n=n+Math.imul(B,at)|0)+Math.imul(L,ot)|0,o=o+Math.imul(L,at)|0,r=r+Math.imul(x,ht)|0,n=(n=n+Math.imul(x,ut)|0)+Math.imul(D,ht)|0,o=o+Math.imul(D,ut)|0,r=r+Math.imul(I,dt)|0,n=(n=n+Math.imul(I,ft)|0)+Math.imul(C,dt)|0,o=o+Math.imul(C,ft)|0;var Ct=(u+(r=r+Math.imul(k,pt)|0)|0)+((8191&(n=(n=n+Math.imul(k,mt)|0)+Math.imul(T,pt)|0))<<13)|0;u=((o=o+Math.imul(T,mt)|0)+(n>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,r=Math.imul(N,ot),n=(n=Math.imul(N,at))+Math.imul(F,ot)|0,o=Math.imul(F,at),r=r+Math.imul(B,ht)|0,n=(n=n+Math.imul(B,ut)|0)+Math.imul(L,ht)|0,o=o+Math.imul(L,ut)|0,r=r+Math.imul(x,dt)|0,n=(n=n+Math.imul(x,ft)|0)+Math.imul(D,dt)|0,o=o+Math.imul(D,ft)|0;var Pt=(u+(r=r+Math.imul(I,pt)|0)|0)+((8191&(n=(n=n+Math.imul(I,mt)|0)+Math.imul(C,pt)|0))<<13)|0;u=((o=o+Math.imul(C,mt)|0)+(n>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,r=Math.imul(N,ht),n=(n=Math.imul(N,ut))+Math.imul(F,ht)|0,o=Math.imul(F,ut),r=r+Math.imul(B,dt)|0,n=(n=n+Math.imul(B,ft)|0)+Math.imul(L,dt)|0,o=o+Math.imul(L,ft)|0;var xt=(u+(r=r+Math.imul(x,pt)|0)|0)+((8191&(n=(n=n+Math.imul(x,mt)|0)+Math.imul(D,pt)|0))<<13)|0;u=((o=o+Math.imul(D,mt)|0)+(n>>>13)|0)+(xt>>>26)|0,xt&=67108863,r=Math.imul(N,dt),n=(n=Math.imul(N,ft))+Math.imul(F,dt)|0,o=Math.imul(F,ft);var Dt=(u+(r=r+Math.imul(B,pt)|0)|0)+((8191&(n=(n=n+Math.imul(B,mt)|0)+Math.imul(L,pt)|0))<<13)|0;u=((o=o+Math.imul(L,mt)|0)+(n>>>13)|0)+(Dt>>>26)|0,Dt&=67108863;var Ot=(u+(r=Math.imul(N,pt))|0)+((8191&(n=(n=Math.imul(N,mt))+Math.imul(F,pt)|0))<<13)|0;return u=((o=Math.imul(F,mt))+(n>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,h[0]=gt,h[1]=vt,h[2]=yt,h[3]=bt,h[4]=_t,h[5]=wt,h[6]=At,h[7]=Mt,h[8]=Et,h[9]=St,h[10]=kt,h[11]=Tt,h[12]=Rt,h[13]=It,h[14]=Ct,h[15]=Pt,h[16]=xt,h[17]=Dt,h[18]=Ot,0!==u&&(h[19]=u,i.length++),i};function m(t,e,i){return(new g).mulp(t,e,i)}function g(t,e){this.x=t,this.y=e}Math.imul||(p=c),o.prototype.mulTo=function(t,e){var i,r=this.length+t.length;return i=10===this.length&&10===t.length?p(this,t,e):r<63?c(this,t,e):r<1024?function(t,e,i){i.negative=e.negative^t.negative,i.length=t.length+e.length;for(var r=0,n=0,o=0;o<i.length-1;o++){var a=n;n=0;for(var s=67108863&r,h=Math.min(o,e.length-1),u=Math.max(0,o-t.length+1);u<=h;u++){var l=o-u,d=(0|t.words[l])*(0|e.words[u]),f=67108863&d;s=67108863&(f=f+s|0),n+=(a=(a=a+(d/67108864|0)|0)+(f>>>26)|0)>>>26,a&=67108863}i.words[o]=s,r=a,a=n}return 0!==r?i.words[o]=r:i.length--,i.strip()}(this,t,e):m(this,t,e),i},g.prototype.makeRBT=function(t){for(var e=new Array(t),i=o.prototype._countBits(t)-1,r=0;r<t;r++)e[r]=this.revBin(r,i,t);return e},g.prototype.revBin=function(t,e,i){if(0===t||t===i-1)return t;for(var r=0,n=0;n<e;n++)r|=(1&t)<<e-n-1,t>>=1;return r},g.prototype.permute=function(t,e,i,r,n,o){for(var a=0;a<o;a++)r[a]=e[t[a]],n[a]=i[t[a]]},g.prototype.transform=function(t,e,i,r,n,o){this.permute(o,t,e,i,r,n);for(var a=1;a<n;a<<=1)for(var s=a<<1,h=Math.cos(2*Math.PI/s),u=Math.sin(2*Math.PI/s),l=0;l<n;l+=s)for(var d=h,f=u,c=0;c<a;c++){var p=i[l+c],m=r[l+c],g=i[l+c+a],v=r[l+c+a],y=d*g-f*v;v=d*v+f*g,g=y,i[l+c]=p+g,r[l+c]=m+v,i[l+c+a]=p-g,r[l+c+a]=m-v,c!==s&&(y=h*d-u*f,f=h*f+u*d,d=y)}},g.prototype.guessLen13b=function(t,e){var i=1|Math.max(e,t),r=1&i,n=0;for(i=i/2|0;i;i>>>=1)n++;return 1<<n+1+r},g.prototype.conjugate=function(t,e,i){if(!(i<=1))for(var r=0;r<i/2;r++){var n=t[r];t[r]=t[i-r-1],t[i-r-1]=n,n=e[r],e[r]=-e[i-r-1],e[i-r-1]=-n}},g.prototype.normalize13b=function(t,e){for(var i=0,r=0;r<e/2;r++){var n=8192*Math.round(t[2*r+1]/e)+Math.round(t[2*r]/e)+i;t[r]=67108863&n,i=n<67108864?0:n/67108864|0}return t},g.prototype.convert13b=function(t,e,i,n){for(var o=0,a=0;a<e;a++)o+=0|t[a],i[2*a]=8191&o,o>>>=13,i[2*a+1]=8191&o,o>>>=13;for(a=2*e;a<n;++a)i[a]=0;r(0===o),r(0==(-8192&o))},g.prototype.stub=function(t){for(var e=new Array(t),i=0;i<t;i++)e[i]=0;return e},g.prototype.mulp=function(t,e,i){var r=2*this.guessLen13b(t.length,e.length),n=this.makeRBT(r),o=this.stub(r),a=new Array(r),s=new Array(r),h=new Array(r),u=new Array(r),l=new Array(r),d=new Array(r),f=i.words;f.length=r,this.convert13b(t.words,t.length,a,r),this.convert13b(e.words,e.length,u,r),this.transform(a,o,s,h,r,n),this.transform(u,o,l,d,r,n);for(var c=0;c<r;c++){var p=s[c]*l[c]-h[c]*d[c];h[c]=s[c]*d[c]+h[c]*l[c],s[c]=p}return this.conjugate(s,h,r),this.transform(s,h,f,o,r,n),this.conjugate(f,o,r),this.normalize13b(f,r),i.negative=t.negative^e.negative,i.length=t.length+e.length,i.strip()},o.prototype.mul=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},o.prototype.mulf=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),m(this,t,e)},o.prototype.imul=function(t){return this.clone().mulTo(t,this)},o.prototype.imuln=function(t){r("number"==typeof t),r(t<67108864);for(var e=0,i=0;i<this.length;i++){var n=(0|this.words[i])*t,o=(67108863&n)+(67108863&e);e>>=26,e+=n/67108864|0,e+=o>>>26,this.words[i]=67108863&o}return 0!==e&&(this.words[i]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),i=0;i<e.length;i++){var r=i/26|0,n=i%26;e[i]=(t.words[r]&1<<n)>>>n}return e}(t);if(0===e.length)return new o(1);for(var i=this,r=0;r<e.length&&0===e[r];r++,i=i.sqr());if(++r<e.length)for(var n=i.sqr();r<e.length;r++,n=n.sqr())0!==e[r]&&(i=i.mul(n));return i},o.prototype.iushln=function(t){r("number"==typeof t&&t>=0);var e,i=t%26,n=(t-i)/26,o=67108863>>>26-i<<26-i;if(0!==i){var a=0;for(e=0;e<this.length;e++){var s=this.words[e]&o,h=(0|this.words[e])-s<<i;this.words[e]=h|a,a=s>>>26-i}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e<n;e++)this.words[e]=0;this.length+=n}return this.strip()},o.prototype.ishln=function(t){return r(0===this.negative),this.iushln(t)},o.prototype.iushrn=function(t,e,i){var n;r("number"==typeof t&&t>=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<<o,h=i;if(n-=a,n=Math.max(0,n),h){for(var u=0;u<a;u++)h.words[u]=this.words[u];h.length=a}if(0===a);else if(this.length>a)for(this.length-=a,u=0;u<this.length;u++)this.words[u]=this.words[u+a];else this.words[0]=0,this.length=1;var l=0;for(u=this.length-1;u>=0&&(0!==l||u>=n);u--){var d=0|this.words[u];this.words[u]=l<<26-o|d>>>o,l=d&s}return h&&0!==l&&(h.words[h.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,i){return r(0===this.negative),this.iushrn(t,e,i)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){r("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26,n=1<<e;return!(this.length<=i)&&!!(this.words[i]&n)},o.prototype.imaskn=function(t){r("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=i)return this;if(0!==e&&i++,this.length=Math.min(i,this.length),0!==e){var n=67108863^67108863>>>e<<e;this.words[this.length-1]&=n}return this.strip()},o.prototype.maskn=function(t){return this.clone().imaskn(t)},o.prototype.iaddn=function(t){return r("number"==typeof t),r(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},o.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(r("number"==typeof t),r(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},o.prototype.addn=function(t){return this.clone().iaddn(t)},o.prototype.subn=function(t){return this.clone().isubn(t)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(t,e,i){var n,o,a=t.length+i;this._expand(a);var s=0;for(n=0;n<t.length;n++){o=(0|this.words[n+i])+s;var h=(0|t.words[n])*e;s=((o-=67108863&h)>>26)-(h/67108864|0),this.words[n+i]=67108863&o}for(;n<this.length-i;n++)s=(o=(0|this.words[n+i])+s)>>26,this.words[n+i]=67108863&o;if(0===s)return this.strip();for(r(-1===s),s=0,n=0;n<this.length;n++)s=(o=-(0|this.words[n])+s)>>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var i=(this.length,t.length),r=this.clone(),n=t,a=0|n.words[n.length-1];0!==(i=26-this._countBits(a))&&(n=n.ushln(i),r.iushln(i),a=0|n.words[n.length-1]);var s,h=r.length-n.length;if("mod"!==e){(s=new o(null)).length=h+1,s.words=new Array(s.length);for(var u=0;u<s.length;u++)s.words[u]=0}var l=r.clone()._ishlnsubmul(n,1,h);0===l.negative&&(r=l,s&&(s.words[h]=1));for(var d=h-1;d>=0;d--){var f=67108864*(0|r.words[n.length+d])+(0|r.words[n.length+d-1]);for(f=Math.min(f/a|0,67108863),r._ishlnsubmul(n,f,d);0!==r.negative;)f--,r.negative=0,r._ishlnsubmul(n,1,d),r.isZero()||(r.negative^=1);s&&(s.words[d]=f)}return s&&s.strip(),r.strip(),"div"!==e&&0!==i&&r.iushrn(i),{div:s||null,mod:r}},o.prototype.divmod=function(t,e,i){return r(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(a=s.mod.neg(),i&&0!==a.negative&&a.iadd(t)),{div:n,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),i&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var n,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var i=0!==e.div.negative?e.mod.isub(t):e.mod,r=t.ushrn(1),n=t.andln(1),o=i.cmp(r);return o<0||1===n&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){r(t<=67108863);for(var e=(1<<26)%t,i=0,n=this.length-1;n>=0;n--)i=(e*i+(0|this.words[n]))%t;return i},o.prototype.idivn=function(t){r(t<=67108863);for(var e=0,i=this.length-1;i>=0;i--){var n=(0|this.words[i])+67108864*e;this.words[i]=n/t|0,e=n%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){r(0===t.negative),r(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n=new o(1),a=new o(0),s=new o(0),h=new o(1),u=0;e.isEven()&&i.isEven();)e.iushrn(1),i.iushrn(1),++u;for(var l=i.clone(),d=e.clone();!e.isZero();){for(var f=0,c=1;0==(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(n.isOdd()||a.isOdd())&&(n.iadd(l),a.isub(d)),n.iushrn(1),a.iushrn(1);for(var p=0,m=1;0==(i.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(i.iushrn(p);p-- >0;)(s.isOdd()||h.isOdd())&&(s.iadd(l),h.isub(d)),s.iushrn(1),h.iushrn(1);e.cmp(i)>=0?(e.isub(i),n.isub(s),a.isub(h)):(i.isub(e),s.isub(n),h.isub(a))}return{a:s,b:h,gcd:i.iushln(u)}},o.prototype._invmp=function(t){r(0===t.negative),r(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n,a=new o(1),s=new o(0),h=i.clone();e.cmpn(1)>0&&i.cmpn(1)>0;){for(var u=0,l=1;0==(e.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(e.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(h),a.iushrn(1);for(var d=0,f=1;0==(i.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(i.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(h),s.iushrn(1);e.cmp(i)>=0?(e.isub(i),a.isub(s)):(i.isub(e),s.isub(a))}return(n=0===e.cmpn(1)?a:s).cmpn(0)<0&&n.iadd(t),n},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),i=t.clone();e.negative=0,i.negative=0;for(var r=0;e.isEven()&&i.isEven();r++)e.iushrn(1),i.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;i.isEven();)i.iushrn(1);var n=e.cmp(i);if(n<0){var o=e;e=i,i=o}else if(0===n||0===i.cmpn(1))break;e.isub(i)}return i.iushln(r)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){r("number"==typeof t);var e=t%26,i=(t-e)/26,n=1<<e;if(this.length<=i)return this._expand(i+1),this.words[i]|=n,this;for(var o=n,a=i;0!==o&&a<this.length;a++){var s=0|this.words[a];o=(s+=o)>>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,i=t<0;if(0!==this.negative&&!i)return-1;if(0===this.negative&&i)return 1;if(this.strip(),this.length>1)e=1;else{i&&(t=-t),r(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:n<t?-1:1}return 0!==this.negative?0|-e:e},o.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},o.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,i=this.length-1;i>=0;i--){var r=0|this.words[i],n=0|t.words[i];if(r!==n){r<n?e=-1:r>n&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new M(t)},o.prototype.toRed=function(t){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return r(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return r(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var v={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function A(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function M(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else r(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function E(t){M.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,i=t;do{this.split(i,this.tmp),e=(i=(i=this.imulK(i)).iadd(this.tmp)).bitLength()}while(e>this.n);var r=e<this.n?-1:i.ucmp(this.p);return 0===r?(i.words[0]=0,i.length=1):r>0?i.isub(this.p):void 0!==i.strip?i.strip():i._strip(),i},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},n(b,y),b.prototype.split=function(t,e){for(var i=4194303,r=Math.min(t.length,9),n=0;n<r;n++)e.words[n]=t.words[n];if(e.length=r,t.length<=9)return t.words[0]=0,void(t.length=1);var o=t.words[9];for(e.words[e.length++]=o&i,n=10;n<t.length;n++){var a=0|t.words[n];t.words[n-10]=(a&i)<<4|o>>>22,o=a}o>>>=22,t.words[n-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},b.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,i=0;i<t.length;i++){var r=0|t.words[i];e+=977*r,t.words[i]=67108863&e,e=64*r+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},n(_,y),n(w,y),n(A,y),A.prototype.imulK=function(t){for(var e=0,i=0;i<t.length;i++){var r=19*(0|t.words[i])+e,n=67108863&r;r>>>=26,t.words[i]=n,e=r}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(v[t])return v[t];var e;if("k256"===t)e=new b;else if("p224"===t)e=new _;else if("p192"===t)e=new w;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new A}return v[t]=e,e},M.prototype._verify1=function(t){r(0===t.negative,"red works only with positives"),r(t.red,"red works only with red numbers")},M.prototype._verify2=function(t,e){r(0==(t.negative|e.negative),"red works only with positives"),r(t.red&&t.red===e.red,"red works only with red numbers")},M.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},M.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},M.prototype.add=function(t,e){this._verify2(t,e);var i=t.add(e);return i.cmp(this.m)>=0&&i.isub(this.m),i._forceRed(this)},M.prototype.iadd=function(t,e){this._verify2(t,e);var i=t.iadd(e);return i.cmp(this.m)>=0&&i.isub(this.m),i},M.prototype.sub=function(t,e){this._verify2(t,e);var i=t.sub(e);return i.cmpn(0)<0&&i.iadd(this.m),i._forceRed(this)},M.prototype.isub=function(t,e){this._verify2(t,e);var i=t.isub(e);return i.cmpn(0)<0&&i.iadd(this.m),i},M.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},M.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},M.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},M.prototype.isqr=function(t){return this.imul(t,t.clone())},M.prototype.sqr=function(t){return this.mul(t,t)},M.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(r(e%2==1),3===e){var i=this.m.add(new o(1)).iushrn(2);return this.pow(t,i)}for(var n=this.m.subn(1),a=0;!n.isZero()&&0===n.andln(1);)a++,n.iushrn(1);r(!n.isZero());var s=new o(1).toRed(this),h=s.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(h);)l.redIAdd(h);for(var d=this.pow(l,n),f=this.pow(t,n.addn(1).iushrn(1)),c=this.pow(t,n),p=a;0!==c.cmp(s);){for(var m=c,g=0;0!==m.cmp(s);g++)m=m.redSqr();r(g<p);var v=this.pow(d,new o(1).iushln(p-g-1));f=f.redMul(v),d=v.redSqr(),c=c.redMul(d),p=g}return f},M.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},M.prototype.pow=function(t,e){if(e.isZero())return new o(1).toRed(this);if(0===e.cmpn(1))return t.clone();var i=new Array(16);i[0]=new o(1).toRed(this),i[1]=t;for(var r=2;r<i.length;r++)i[r]=this.mul(i[r-1],t);var n=i[0],a=0,s=0,h=e.bitLength()%26;for(0===h&&(h=26),r=e.length-1;r>=0;r--){for(var u=e.words[r],l=h-1;l>=0;l--){var d=u>>l&1;n!==i[0]&&(n=this.sqr(n)),0!==d||0!==a?(a<<=1,a|=d,(4===++s||0===r&&0===l)&&(n=this.mul(n,i[a]),s=0,a=0)):s=0}h=26}return n},M.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},M.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new E(t)},n(E,M),E.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},E.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},E.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var i=t.imul(e),r=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=i.isub(r).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},E.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var i=t.mul(e),r=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=i.isub(r).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},E.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t,this)}).call(this,i(20)(t))},function(t,e,i){var r,n,o,a,s,h,u,l;t.exports=(l=i(5),n=(r=l).lib,o=n.WordArray,a=n.Hasher,s=r.algo,h=[],u=s.SHA1=a.extend({_doReset:function(){this._hash=new o.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var i=this._hash.words,r=i[0],n=i[1],o=i[2],a=i[3],s=i[4],u=0;u<80;u++){if(u<16)h[u]=0|t[e+u];else{var l=h[u-3]^h[u-8]^h[u-14]^h[u-16];h[u]=l<<1|l>>>31}var d=(r<<5|r>>>27)+s+h[u];d+=u<20?1518500249+(n&o|~n&a):u<40?1859775393+(n^o^a):u<60?(n&o|n&a|o&a)-1894007588:(n^o^a)-899497514,s=a,a=o,o=n<<30|n>>>2,n=r,r=d}i[0]=i[0]+r|0,i[1]=i[1]+n|0,i[2]=i[2]+o|0,i[3]=i[3]+a|0,i[4]=i[4]+s|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,r=8*t.sigBytes;return e[r>>>5]|=128<<24-r%32,e[14+(r+64>>>9<<4)]=Math.floor(i/4294967296),e[15+(r+64>>>9<<4)]=i,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=a.clone.call(this);return t._hash=this._hash.clone(),t}}),r.SHA1=a._createHelper(u),r.HmacSHA1=a._createHmacHelper(u),l.SHA1)},function(t,e,i){var r,n,o,a;t.exports=(r=i(5),o=(n=r).lib.Base,a=n.enc.Utf8,void(n.algo.HMAC=o.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=a.parse(e));var i=t.blockSize,r=4*i;e.sigBytes>r&&(e=t.finalize(e)),e.clamp();for(var n=this._oKey=e.clone(),o=this._iKey=e.clone(),s=n.words,h=o.words,u=0;u<i;u++)s[u]^=1549556828,h[u]^=909522486;n.sigBytes=o.sigBytes=r,this.reset()},reset:function(){var t=this._hasher;t.reset(),t.update(this._iKey)},update:function(t){return this._hasher.update(t),this},finalize:function(t){var e=this._hasher,i=e.finalize(t);return e.reset(),e.finalize(this._oKey.clone().concat(i))}})))},function(t,e,r){"use strict";var n=r(0);function o(t,e,i){var r,n,o,a,s,h=navigator.userAgent.toLowerCase(),u=i,l=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];if(r=1+((192&t[e+2])>>>6),!((n=(60&t[e+2])>>>2)>l.length-1))return a=(1&t[e+2])<<2,a|=(192&t[e+3])>>>6,/firefox/i.test(h)?n>=6?(r=5,s=new Array(4),o=n-3):(r=2,s=new Array(2),o=n):-1!==h.indexOf("android")?(r=2,s=new Array(2),o=n):(r=5,s=new Array(4),i&&(-1!==i.indexOf("mp4a.40.29")||-1!==i.indexOf("mp4a.40.5"))||!i&&n>=6?o=n-3:((i&&-1!==i.indexOf("mp4a.40.2")&&(n>=6&&1===a||/vivaldi/i.test(h))||!i&&1===a)&&(r=2,s=new Array(2)),o=n)),s[0]=r<<3,s[0]|=(14&n)>>1,s[1]|=(1&n)<<7,s[1]|=a<<3,5===r&&(s[1]|=(14&o)>>1,s[2]=(1&o)<<7,s[2]|=8,s[3]=0),{config:s,samplerate:l[n],channelCount:a,codec:"mp4a.40."+r,manifestCodec:u}}function a(t,e){return 255===t[e]&&240==(246&t[e+1])}function s(t,e){return 1&t[e+1]?7:9}function h(t,e){return(3&t[e+3])<<11|t[e+4]<<3|(224&t[e+5])>>>5}function u(t,e){return!!(e+1<t.length&&a(t,e))}function l(t,e,i){return o(t,e,i)}function d(t){return 9216e4/t}function f(t,e,i,r,n){var o=function(t,e,i,r,n){var o,a,u=t.length;if(o=s(t,e),a=h(t,e),(a-=o)>0&&e+o+a<=u)return{headerLength:o,frameLength:a,stamp:i+r*n}}(e,i,r,n,d(t));if(o){var a=o.stamp,u=o.headerLength,l=o.frameLength;return{sample:{unit:e.subarray(i+u,i+u+l),pts:a,dts:a},length:l+u}}}var c=function(){function t(t){this.data=t,this.bytesAvailable=t.byteLength,this.word=0,this.bitsAvailable=0}var e=t.prototype;return e.loadWord=function(){var t=this.data,e=this.bytesAvailable,i=t.byteLength-e,r=new Uint8Array(4),n=Math.min(4,e);if(0===n)throw new Error("no bytes available");r.set(t.subarray(i,i+n)),this.word=new DataView(r.buffer).getUint32(0),this.bitsAvailable=8*n,this.bytesAvailable-=n},e.skipBits=function(t){var e;this.bitsAvailable>t?(this.word<<=t,this.bitsAvailable-=t):(t-=this.bitsAvailable,t-=(e=t>>3)>>3,this.bytesAvailable-=e,this.loadWord(),this.word<<=t,this.bitsAvailable-=t)},e.readBits=function(t){var e=Math.min(this.bitsAvailable,t),i=this.word>>>32-e;return t>32&&logger.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=e,this.bitsAvailable>0?this.word<<=e:this.bytesAvailable>0&&this.loadWord(),(e=t-e)>0&&this.bitsAvailable?i<<e|this.readBits(e):i},e.skipLZ=function(){var t;for(t=0;t<this.bitsAvailable;++t)if(0!=(this.word&2147483648>>>t))return this.word<<=t,this.bitsAvailable-=t,t;return this.loadWord(),t+this.skipLZ()},e.skipUEG=function(){this.skipBits(1+this.skipLZ())},e.skipEG=function(){this.skipBits(1+this.skipLZ())},e.readUEG=function(){var t=this.skipLZ();return this.readBits(t+1)-1},e.readEG=function(){var t=this.readUEG();return 1&t?1+t>>>1:-1*(t>>>1)},e.readBoolean=function(){return 1===this.readBits(1)},e.readUByte=function(){return this.readBits(8)},e.readUShort=function(){return this.readBits(16)},e.readUInt=function(){return this.readBits(32)},e.skipScalingList=function(t){var e,i=8,r=8;for(e=0;e<t;e++)0!==r&&(r=(i+this.readEG()+256)%256),i=0===r?i:r},e.readSPS=function(){var t,e,i,r,n,o,a,s=0,h=0,u=0,l=0,d=this.readUByte.bind(this),f=this.readBits.bind(this),c=this.readUEG.bind(this),p=this.readBoolean.bind(this),m=this.skipBits.bind(this),g=this.skipEG.bind(this),v=this.skipUEG.bind(this),y=this.skipScalingList.bind(this);if(d(),t=d(),f(5),m(3),d(),v(),100===t||110===t||122===t||244===t||44===t||83===t||86===t||118===t||128===t){var b=c();if(3===b&&m(1),v(),v(),m(1),p())for(o=3!==b?8:12,a=0;a<o;a++)p()&&y(a<6?16:64)}v();var _=c();if(0===_)c();else if(1===_)for(m(1),g(),g(),e=c(),a=0;a<e;a++)g();v(),m(1),i=c(),r=c(),0===(n=f(1))&&m(1),m(1),p()&&(s=c(),h=c(),u=c(),l=c());var w=[1,1];if(p()&&p())switch(d()){case 1:w=[1,1];break;case 2:w=[12,11];break;case 3:w=[10,11];break;case 4:w=[16,11];break;case 5:w=[40,33];break;case 6:w=[24,11];break;case 7:w=[20,11];break;case 8:w=[32,11];break;case 9:w=[80,33];break;case 10:w=[18,11];break;case 11:w=[15,11];break;case 12:w=[64,33];break;case 13:w=[160,99];break;case 14:w=[4,3];break;case 15:w=[3,2];break;case 16:w=[2,1];break;case 255:w=[d()<<8|d(),d()<<8|d()]}return{width:Math.ceil(16*(i+1)-2*s-2*h),height:(2-n)*(r+1)*16-(n?2:4)*(u+l),pixelRatio:w}},e.readSliceType=function(){return this.readUByte(),this.readUEG(),this.readUEG()},t}(),p=r(23),m=r(12);r(50);function g(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var v=function(){function t(t,e,i){this.TAG="TSDemuxer",this._config=t,this._onError=null,this._onMediaInfo=null,this._onMetaDataArrived=null,this._onScriptDataArrived=null,this._onTrackMetadata=null,this._onDataAvailable=null,this._hasAudio=!1,this._hasVideo=!1,this._hasAudioFlagOverrided=!1,this._hasVideoFlagOverrided=!1,this._initVideoMetadata=!1,this._initAudioMetadata=!1,this._mediaInfo=new m.a,this._mediaInfo.hasAudio=!1,this._mediaInfo.hasVideo=!1,this._metadata=null,this._audioMetadata=null,this._videoMetadata=null,this.tagPosition=0,this.filePosition=0,this.isHEVC=0,this.isAAC=0,this.avcTrackPid=-1,this.audioTrackPid=-1,this.id3TrackPid=-1,this.audioSampleRate=0,this.audioChannel=2,this.audioBitPerSample=16,this.avcTrackPesData=null,this.audioTrackPesData=null,this.id3TrackPesData=null,this.findKeyframe=!0,this.syncVideoPts=0,this.syncAudioPts=0,this.startVideoPts=0,this.startAudioPts=0,this.accurateTimeOffset=0,this.lastVideoPts=0,this.currentVideoPts=0,this.seekVideoHistoryPts=0,this.currentAudioPts=0,this.audioFrameNum=0,this.reset=0,this._videoTrack={type:"video",id:1,sequenceNumber:0,samples:[],length:0},this._audioTrack={type:"audio",id:2,sequenceNumber:0,samples:[],length:0},this._timestampBase=0,this._timescale=1e3,this._duration=0,this._durationOverrided=!1,this._AVC_SPS=null,this._AVC_PPS=null,this._HEVC_VPS=null,this._HEVC_SPS=null,this._HEVC_PPS=null,this._StartCode=[0,0,0,1],this._AVC_Config=null,this._callbackInitFlag=!1,this._callbackMediaDataFunc=e,this._callbackMediaDataUserPtr=i}var e,r,o,a=t.prototype;return a.bindDataSource=function(t){return t.onDataArrival=this.append.bind(this),this},a.resetMediaInfo=function(){this._mediaInfo=new m.a},a.resetMediaPts=function(t){this.reset=t,this.syncVideoPts=0,this.syncAudioPts=0,this.findKeyframe=!0,this._videoTrack.samples=[],this._audioTrack.samples=[]},a._onDataAvailableToSoftwareDecodeVideo=function(t,e){var i=e.samples;if(!(t<1&&i.length>0)){var r=-1;for(i.length>1&&(r=0);i.length;){for(var n=i.shift(),o=0,a=0;a<n.units.length;a++)o+=n.units[a].data.length;for(var s=0,h=new Uint8Array(o);n.units.length;){var u=n.units.shift();27==t&&(u.data[0]=0,u.data[1]=0,u.data[2]=0,u.data[3]=1),h.set(u.data,s),s+=u.data.length}this._callbackMediaDataFunc&&(r>=0&&r++,this._callbackMediaDataFunc(this._callbackMediaDataUserPtr,!0,1,t,n.isKeyframe,h,o,n.pts,0,0))}}},a._onDataAvailableToSoftwareDecodeAudio=function(t,e){var i=e.samples,r=-1;for(i.length>1&&(r=0);i.length;){var n=i.shift();this._callbackMediaDataFunc&&(r>=0&&r++,this._callbackMediaDataFunc(this._callbackMediaDataUserPtr,!0,2,t,0,n.unit,n.length,this._SampleRate,this._ChannelNum,this._SampleRate>=44100?32:16))}},t.createTrack=function(t,e){return{container:"video"===t||"audio"===t?"video/mp2t":void 0,type:t,id:RemuxerTrackIdConfig[t],pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:"video"===t?0:void 0,isAAC:"audio"===t||void 0,duration:"audio"===t?e:void 0,isHEVC:0}},t._syncOffset=function(t){for(var e=Math.min(1e3,t.length-564),i=0;i<e;){if(71===t[i]&&71===t[i+188]&&71===t[i+376])return i;i++}return-1},a.destroy=function(){this._initPTS=this._initDTS=void 0,this._duration=0},a.parsePAT=function(t,e){return(31&t[e+10])<<8|t[e+11]},a.parsePMT=function(t,e,i,r){var o,a,s={audio:-1,avc:-1,hevc:-1,id3:-1,isAAC:!0};for(o=e+3+((15&t[e+1])<<8|t[e+2])-4,e+=12+((15&t[e+10])<<8|t[e+11]);e<o;){switch(a=(31&t[e+1])<<8|t[e+2],t[e]){case 207:if(!r)break;case 15:-1===s.audio&&(s.audio=a);break;case 21:-1===s.id3&&(s.id3=a);break;case 219:if(!r){logger.log("unknown stream type:"+t[e]);break}case 27:-1===s.avc&&(s.avc=a),n.setCodecTypeStr("H264");break;case 36:-1===s.avc&&(s.avc=a,s.hevc=a),n.setCodecTypeStr("H265");break;case 3:case 4:i?-1===s.audio&&(s.audio=a,s.isAAC=!1):logger.log("MPEG audio found, not supported in this browser for now")}e+=5+((15&t[e+3])<<8|t[e+4])}return s},a.parsePES=function(t){if(1!==this.reset){var e,i,r,n,o,a,s,h,u=0,l=t.data;if(!t||0===t.size)return null;for(;l[0].length<19&&l.length>1;){var d=new Uint8Array(l[0].length+l[1].length);d.set(l[0]),d.set(l[1],l[0].length),l[0]=d,l.splice(1,1)}if(1===((e=l[0])[0]<<16)+(e[1]<<8)+e[2]){if((r=(e[4]<<8)+e[5])&&r>t.size-6)return null;if(192&(i=e[7])&&((a=536870912*(14&e[9])+4194304*(255&e[10])+16384*(254&e[11])+128*(255&e[12])+(254&e[13])/2)>4294967295&&(a-=4294967295),64&i?((s=536870912*(14&e[14])+4194304*(255&e[15])+16384*(254&e[16])+128*(255&e[17])+(254&e[18])/2)>4294967295&&(s-=4294967295),a-s>54e5&&(a=s)):s=a),h=(n=e[8])+9,t.size<=h)return null;t.size-=h,o=new Uint8Array(t.size);for(var f=0,c=l.length;f<c;f++){var p=(e=l[f]).byteLength;if(h){if(h>p){h-=p;continue}e=e.subarray(h),p-=h,h=0}o.set(e,u),u+=p}return r&&(r-=n+3),{data:o,pts:a,dts:s,len:r}}return null}},a.pushAccesUnit=function(t,e){if(t.units.length&&t.frame){var i=e.samples,r=i.length;if(isNaN(t.pts)){if(!r)return void e.dropped++;var n=i[r-1];t.pts=n.pts,t.dts=n.dts}!this.config.forceKeyFrameOnDiscontinuity||!0===t.key||e.sps&&(r||this.contiguous)?(t.id=r,i.push(t)):e.dropped++}t.debug.length&&logger.log(t.pts+"/"+t.dts+":"+t.debug)},a.parseAVCPES=function(t,e,r){var n=this,o=0;(0===this.startVideoPts||t.pts<this.startVideoPts)&&(this.startVideoPts=t.pts,o=1),this.audioFrameNum=0;var a=this._parseAVCNALu(t.data),s=[],h=0;t.data=null;var u=!1,l=!1;a.forEach((function(e){var r=e.data.length,o=new Uint8Array(4+r);o[0]=r>>24&255,o[1]=r>>16&255,o[2]=r>>8&255,o[3]=255&r,o.set(e.data,4);var a={type:e.type,data:o};switch(h+=o.length,s.push(a),e.type){case 1:!0;var d=e.data;if(l&&d.length>4)new c(d).readSliceType();break;case 5:!0,n.findKeyframe=!1,u=!0;break;case 6:!0;var f=new c(n.discardEPB(e.data));f.readUByte();for(var m=0,g=0,v=!1,y=0;!v&&f.bytesAvailable>1;){m=0;do{m+=y=f.readUByte()}while(255===y);g=0;do{g+=y=f.readUByte()}while(255===y);if(4===m&&0!==f.bytesAvailable){if(v=!0,181===f.readUByte())if(49===f.readUShort())if(1195456820===f.readUInt())if(3===f.readUByte()){var b=f.readUByte(),_=31&b,w=[b,f.readUByte()];for(i=0;i<_;i++)w.push(f.readUByte()),w.push(f.readUByte()),w.push(f.readUByte());n._insertSampleInOrder(n._txtTrack.samples,{type:3,pts:t.pts,bytes:w})}}else if(5===m&&0!==f.bytesAvailable){if(v=!0,g>16){var A=[];for(i=0;i<16;i++)A.push(f.readUByte().toString(16)),3!==i&&5!==i&&7!==i&&9!==i||A.push("-");var M=g-16,E=new Uint8Array(M);for(i=0;i<M;i++)E[i]=f.readUByte()}}else if(g<f.bytesAvailable)for(i=0;i<g;i++)f.readUByte()}break;case 7:!0,l=!0,n.findKeyframe=!1,n.tagPosition=n.filePosition,n._AVC_Config=p.a.parseSPS(e.data);var S=n._AVC_Config,k="avc1.";if(S)for(var T=e.data.subarray(1,4),R=0;R<3;R++){var I=T[R].toString(16);I.length<2&&(I="0"+I),k+=I}if(!n._initVideoMetadata){null==n._AVC_SPS&&(n._AVC_SPS=new Uint8Array(e.data.length+4),n._AVC_SPS.set(n._StartCode,0),n._AVC_SPS.set(e.data,4));var C=n._videoMetadata,P=n._videoTrack;if(C?void 0!==C.avcc&&Log.w(n.TAG,"Found another AVCDecoderConfigurationRecord!"):(!1===n._hasVideo&&!1===n._hasVideoFlagOverrided&&(n._hasVideo=!0,n._mediaInfo.hasVideo=!0),(C=n._videoMetadata={}).type="video",C.id=P.id,C.timescale=n._timescale,C.duration=n._duration),C.codecWidth=S.codec_size.width,C.codecHeight=S.codec_size.height,C.presentWidth=S.present_size.width,C.presentHeight=S.present_size.height,C.profile=S.profile_string,C.level=S.level_string,C.bitDepth=S.bit_depth,C.chromaFormat=S.chroma_format,C.sarRatio=S.sar_ratio,C.frameRate=S.frame_rate,!1!==S.frame_rate.fixed&&0!==S.frame_rate.fps_num&&0!==S.frame_rate.fps_den||(C.frameRate=n._referenceFrameRate),void 0!==C.frameRate){var x=C.frameRate.fps_den,D=C.frameRate.fps_num;C.refSampleDuration=C.timescale*(x/D)}C.codec=k;var O=n._mediaInfo;O.width=C.codecWidth,O.height=C.codecHeight,void 0!==C.frameRate&&(O.fps=C.frameRate.fps),O.profile=C.profile,O.level=C.level,O.refFrames=S.ref_frames,O.chromaFormat=S.chroma_format_string,O.sarNum=C.sarRatio.width,O.sarDen=C.sarRatio.height,O.videoCodec=k,O.hasAudio?null!=O.audioCodec&&(O.mimeType='video/x-flv; codecs="'+O.videoCodec+","+O.audioCodec+'"'):O.mimeType='video/x-flv; codecs="'+O.videoCodec+'"',O.isComplete()&&n._onMediaInfo(O)}break;case 8:if(!0,n.findKeyframe=!1,null==n._AVC_PPS&&(n._AVC_PPS=new Uint8Array(e.data.length+4),n._AVC_PPS.set(n._StartCode,0),n._AVC_PPS.set(e.data,4)),!n._initVideoMetadata){n._initVideoMetadata=!0;var B=n._videoMetadata;if(null==B.avcc){var L=0,W=n._AVC_SPS.length-4+8+1+2+(n._AVC_PPS.length-4);B.avcc=new Uint8Array(W+1),B.avcc[0]=1,B.avcc[1]=n._AVC_SPS[5],B.avcc[2]=n._AVC_SPS[6],B.avcc[3]=n._AVC_SPS[7],B.avcc[4]=255,B.avcc[5]=225,L=6;new Uint8Array;B.avcc[L++]=n._AVC_SPS.length-4>>8,B.avcc[L++]=n._AVC_SPS.length-4&255;var N=n._AVC_SPS.subarray(4,n._AVC_SPS.length);B.avcc.set(N,L),L+=N.length,B.avcc[L++]=1,B.avcc[L++]=n._AVC_PPS.length-4>>8,B.avcc[L++]=n._AVC_PPS.length-4&255;var F=n._AVC_PPS.subarray(4,n._AVC_PPS.length);B.avcc.set(F,L),L+=F.length,B.avcc[W]=1}n._onTrackMetadata("video",B)}break;default:!1}}));var d=(t.pts-this.startVideoPts)/90;u&&this.syncVideoPts<1&&(this.syncVideoPts=this.startVideoPts);var f=this._videoTrack,m={units:s,length:h,isKeyframe:u,dts:d,cts:0,pts:d};u&&(m.fileposition=this.tagPosition),0!==this.reset||this.findKeyframe||(f.samples.push(m),f.length+=h),this.filePosition+=h,this.accurateTimeOffset=m.pts,this.lastVideoPts=t.pts,1===o&&(this.seekVideoHistoryPts=d),e&&0===this.reset&&("auto"===this._config.decodeType||"hard"===this._config.decodeType?this._onDataAvailable(this._audioTrack,this._videoTrack):(this._videoTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeVideo(27,this._videoTrack),this._audioTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeAudio(86018,this._audioTrack)))},a.parseHEVCPES=function(t,e,i){(0===this.startVideoPts||t.pts<this.startVideoPts)&&(this.startVideoPts=t.pts);var r=[],n=0,o={type:1,data:t.data},a=0;if((n+=t.data.length)>32){var s=0;for(s=0;s<32;s++)if(0===t.data[s]&&0===t.data[s+1]&&0===t.data[s+2]&&1===t.data[s+3]&&64===t.data[s+4]){a=1,this.findKeyframe=!1;break}}r.push(o);var h=(t.pts-this.startVideoPts)/90;a&&this.syncVideoPts<1&&(this.syncVideoPts=this.startVideoPts);var u=this._videoTrack,l={units:r,length:n,isKeyframe:a,dts:h,cts:0,pts:h};a&&(l.fileposition=this.tagPosition),u.samples.push(l),u.length+=n,this._videoTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeVideo(173,this._videoTrack),this._audioTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeAudio(86018,this._audioTrack)},a._insertSampleInOrder=function(t,e){var i=t.length;if(i>0){if(e.pts>=t[i-1].pts)t.push(e);else for(var r=i-1;r>=0;r--)if(e.pts<t[r].pts){t.splice(r,0,e);break}}else t.push(e)},a._getLastNalUnit=function(){var t,e=this.avcSample;if(!e||0===e.units.length){var i=this._avcTrack.samples;e=i[i.length-1]}if(e){var r=e.units;t=r[r.length-1]}return t},a._parseAVCNALu=function(t){var e,i,r,n=0,o=t.byteLength,a=0,s=[],h=-1;for(-1===a&&(h=0,r=31&t[0],a=0,n=1);n<o;)if(e=t[n++],a)if(1!==a)if(e)if(1===e){if(h>=0)9!=(i={data:t.subarray(h,n-a-1),type:r}).type&&s.push(i);else;n<o?(h=n,r=31&t[n],a=0):a=-1}else a=0;else a=3;else a=e?0:2;else a=e?0:1;if(h>=0&&a>=0&&(i={data:t.subarray(h,o),type:r,state:a},s.push(i)),0===s.length){var u=this._getLastNalUnit();if(u){var l=new Uint8Array(u.data.byteLength+t.byteLength);l.set(u.data,0),l.set(t,u.data.byteLength),u.data=l}}return s},a.discardEPB=function(t){for(var e,i,r=t.byteLength,n=[],o=1;o<r-2;)0===t[o]&&0===t[o+1]&&3===t[o+2]?(n.push(o+2),o+=2):o++;if(0===n.length)return t;e=r-n.length,i=new Uint8Array(e);var a=0;for(o=0;o<e;a++,o++)a===n[0]&&(a++,n.shift()),i[o]=t[a];return i},a.parseAACPES=function(t,e){0===this.startAudioPts&&(this.startAudioPts=t.pts);var i,r,n,o,a,s,h,c=this._audioTrack,p=t.data,m=t.pts,g=this.aacOverFlow,v=this.aacLastPTS;if(g){var y=new Uint8Array(g.byteLength+p.byteLength);y.set(g,0),y.set(p,g.byteLength),p=y}for(n=0,a=p.length;n<a-1&&!u(p,n);n++);if(n&&(n<a-1?(s="AAC PES did not start with ADTS header,offset:"+n,h=!1):(s="no ADTS header found in AAC PES",h=!0),logger.warn("parsing error:"+s),this.observer.trigger(Event.ERROR,{type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.FRAG_PARSING_ERROR,fatal:h,reason:s}),h))return;if(this.audioSampleRate<1){var b=l(p,n,this.audioCodec);if(b&&(this.audioSampleRate=b.samplerate,this.audioChannel=b.channelCount,this.audioBitPerSample=16,!this._initAudioMetadata)){this._initAudioMetadata=!0;var _=this._audioMetadata,w=this._audioTrack;_||((_=this._audioMetadata={}).type="audio",_.id=w.id,_.timescale=1e3,_.duration=0,_.audioSampleRate=this.audioSampleRate,_.channelCount=this.audioChannel),_.config&&Log.w(this.TAG,"Found another AudioSpecificConfig!");b.config;_.audioSampleRate=b.samplerate,_.channelCount=b.channelCount,_.codec=b.codec,_.originalCodec=b.originalCodec,_.config=b.config,_.refSampleDuration=1024/_.audioSampleRate*_.timescale,this._SampleRate=b.samplerate,this._ChannelNum=b.channelCount,this._onDataAvailable(this._audioTrack,this._videoTrack),this._onTrackMetadata("audio",_);var A=this._mediaInfo;A.audioCodec=_.originalCodec,A.audioSampleRate=_.audioSampleRate,A.audioChannelCount=_.channelCount,A.hasVideo?null!=A.videoCodec&&(A.mimeType='video/x-flv; codecs="'+A.videoCodec+","+A.audioCodec+'"'):A.mimeType='video/x-flv; codecs="'+A.audioCodec+'"',A.isComplete()&&this._onMediaInfo(A)}}if(r=0,i=d(this.audioSampleRate),g&&v){var M=v+i;Math.abs(M-m)>1&&(m=M)}for(;n<a;)if(u(p,n)&&n+5<a){var E=f(this.audioSampleRate,p,n,m,r);if(!E)break;var S=Math.round((E.sample.pts-this.startAudioPts)/90),k={unit:E.sample.unit,length:E.length,dts:S,pts:S};0!==this.reset||this.findKeyframe||(this.syncAudioPts<1&&this.syncVideoPts>0&&(this.syncAudioPts=this.syncVideoPts),this.syncAudioPts>0&&(c.samples.push(k),c.length+=E.length)),n+=E.length,o=E.sample.pts,r++}else n++;g=n<a?p.subarray(n,a):null,this.aacOverFlow=g,this.aacLastPTS=o},a.parseMPEGPES=function(t){for(var e=t.data,i=e.length,r=0,n=0,o=t.pts;n<i;)if(MpegAudio.isHeader(e,n)){var a=MpegAudio.appendFrame(this._audioTrack,e,n,o,r);if(!a)break;n+=a.length,r++}else n++},a.append=function(e,i,r){if(null!=e&&(i=e.length,1!==this.reset)){var n,o,a,s,h,u,l=i,d=!1,f=-1,c=-1,p=-1,m=this.avcTrackPesData,g=this.audioTrackPesData,v=this.id3TrackPesData,y=!1,b=t._syncOffset(e);for(l-=(l+b)%188,n=b;n<l;n+=188)if(71===e[n]){if(o=!!(64&e[n+1]),a=((31&e[n+1])<<8)+e[n+2],(48&e[n+3])>>4>1){if((s=n+5+e[n+4])===n+188)continue}else s=n+4;switch(a){case f:o&&(m&&(h=this.parsePES(m))&&(1==this.isHEVC?this.parseHEVCPES(h,!1,r):this.parseAVCPES(h,!1,r)),m={data:[],size:0}),m&&(m.data.push(e.subarray(s,n+188)),m.size+=n+188-s);break;case c:o&&(g&&(h=this.parsePES(g))&&(this.isAAC?this.parseAACPES(h,!1):this.parseMPEGPES(h)),g={data:[],size:0}),g&&(g.data.push(e.subarray(s,n+188)),g.size+=n+188-s);break;case p:o&&(v&&(h=this.parsePES(v))&&parseID3PES(h),v={data:[],size:0}),v&&(v.data.push(e.subarray(s,n+188)),v.size+=n+188-s);break;case 0:o&&(s+=e[s]+1),u=this.parsePAT(e,s);break;case u:o&&(s+=e[s]+1);var _=this.parsePMT(e,s,!1,!1);f=_.avc,_.hevc>0&&(f=_.hevc,this.isHEVC=1),f>0&&(this.avcTrackPid=f),!this._callbackInitFlag&&this._callbackMediaDataFunc&&(this._callbackInitFlag=!0,1===this.isHEVC||"auto"!==this._config.decodeType&&"hard"!==this._config.decodeType||this._callbackMediaDataFunc(this._callbackMediaDataUserPtr,!1,1,0,0,null,0,0,0,0)),(c=_.audio)>0&&(this.audioTrackPid=c,this.isAAC=_.isAAC),(p=_.id3)>0&&(this.id3TrackPid=p),d&&!y&&(d=!1,n=b-188),y=!0;break;case 17:case 8191:break;default:d=!0}}m&&(h=this.parsePES(m))?(1==this.isHEVC?this.parseHEVCPES(h,!0,r):this.parseAVCPES(h,!0,r),this.avcTrackPesData=null):this.avcTrackPesData=m,g&&(h=this.parsePES(g))?(this.isAAC?this.parseAACPES(h,!0):this.parseMPEGPES(h),this.audioTrackPesData=null):(g&&g.size&&logger.log("last AAC PES packet truncated,might overlap between fragments"),this.audioTrackPesData=g),v&&(h=this.parsePES(v))?(parseID3PES(h),this.id3TrackPesData=null):this.id3TrackPesData=v}},e=t,(r=[{key:"onTrackMetadata",get:function(){return this._onTrackMetadata},set:function(t){this._onTrackMetadata=t}},{key:"onMediaInfo",get:function(){return this._onMediaInfo},set:function(t){this._onMediaInfo=t}},{key:"onMetaDataArrived",get:function(){return this._onMetaDataArrived},set:function(t){this._onMetaDataArrived=t}},{key:"onScriptDataArrived",get:function(){return this._onScriptDataArrived},set:function(t){this._onScriptDataArrived=t}},{key:"onError",get:function(){return this._onError},set:function(t){this._onError=t}},{key:"onDataAvailable",get:function(){return this._onDataAvailable},set:function(t){this._onDataAvailable=t}},{key:"timestampBase",get:function(){return this._timestampBase},set:function(t){this._timestampBase=t}},{key:"overridedDuration",get:function(){return this._duration},set:function(t){this._durationOverrided=!0,this._duration=t,this._mediaInfo.duration=t}},{key:"overridedHasAudio",set:function(t){this._hasAudioFlagOverrided=!0,this._hasAudio=t,this._mediaInfo.hasAudio=t}},{key:"overridedHasVideo",set:function(t){this._hasVideoFlagOverrided=!0,this._hasVideo=t,this._mediaInfo.hasVideo=t}}])&&g(e.prototype,r),o&&g(e,o),Object.defineProperty(e,"prototype",{writable:!1}),t}();e.a=v},function(t,e){var i={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==i.call(t)}},function(t,e,i){"use strict";var r=i(4).Buffer,n=i(149).Transform;function o(t){n.call(this),this._block=r.allocUnsafe(t),this._blockSize=t,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}i(3)(o,n),o.prototype._transform=function(t,e,i){var r=null;try{this.update(t,e)}catch(t){r=t}i(r)},o.prototype._flush=function(t){var e=null;try{this.push(this.digest())}catch(t){e=t}t(e)},o.prototype.update=function(t,e){if(function(t,e){if(!r.isBuffer(t)&&"string"!=typeof t)throw new TypeError(e+" must be a string or a buffer")}(t,"Data"),this._finalized)throw new Error("Digest already called");r.isBuffer(t)||(t=r.from(t,e));for(var i=this._block,n=0;this._blockOffset+t.length-n>=this._blockSize;){for(var o=this._blockOffset;o<this._blockSize;)i[o++]=t[n++];this._update(),this._blockOffset=0}for(;n<t.length;)i[this._blockOffset++]=t[n++];for(var a=0,s=8*t.length;s>0;++a)this._length[a]+=s,(s=this._length[a]/4294967296|0)>0&&(this._length[a]-=4294967296*s);return this},o.prototype._update=function(){throw new Error("_update is not implemented")},o.prototype.digest=function(t){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var e=this._digest();void 0!==t&&(e=e.toString(t)),this._block.fill(0),this._blockOffset=0;for(var i=0;i<4;++i)this._length[i]=0;return e},o.prototype._digest=function(){throw new Error("_digest is not implemented")},t.exports=o},function(t,e,i){"use strict";(function(e,r){var n;t.exports=S,S.ReadableState=E;i(6).EventEmitter;var o=function(t,e){return t.listeners(e).length},a=i(81),s=i(9).Buffer,h=e.Uint8Array||function(){};var u,l=i(150);u=l&&l.debuglog?l.debuglog("stream"):function(){};var d,f,c,p=i(151),m=i(82),g=i(83).getHighWaterMark,v=i(26).codes,y=v.ERR_INVALID_ARG_TYPE,b=v.ERR_STREAM_PUSH_AFTER_EOF,_=v.ERR_METHOD_NOT_IMPLEMENTED,w=v.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;i(3)(S,a);var A=m.errorOrDestroy,M=["error","close","destroy","pause","resume"];function E(t,e,r){n=n||i(27),t=t||{},"boolean"!=typeof r&&(r=e instanceof n),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=g(this,t,"readableHighWaterMark",r),this.buffer=new p,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(d||(d=i(18).StringDecoder),this.decoder=new d(t.encoding),this.encoding=t.encoding)}function S(t){if(n=n||i(27),!(this instanceof S))return new S(t);var e=this instanceof n;this._readableState=new E(t,this,e),this.readable=!0,t&&("function"==typeof t.read&&(this._read=t.read),"function"==typeof t.destroy&&(this._destroy=t.destroy)),a.call(this)}function k(t,e,i,r,n){u("readableAddChunk",e);var o,a=t._readableState;if(null===e)a.reading=!1,function(t,e){if(u("onEofChunk"),e.ended)return;if(e.decoder){var i=e.decoder.end();i&&i.length&&(e.buffer.push(i),e.length+=e.objectMode?1:i.length)}e.ended=!0,e.sync?C(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,P(t)))}(t,a);else if(n||(o=function(t,e){var i;r=e,s.isBuffer(r)||r instanceof h||"string"==typeof e||void 0===e||t.objectMode||(i=new y("chunk",["string","Buffer","Uint8Array"],e));var r;return i}(a,e)),o)A(t,o);else if(a.objectMode||e&&e.length>0)if("string"==typeof e||a.objectMode||Object.getPrototypeOf(e)===s.prototype||(e=function(t){return s.from(t)}(e)),r)a.endEmitted?A(t,new w):T(t,a,e,!0);else if(a.ended)A(t,new b);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!i?(e=a.decoder.write(e),a.objectMode||0!==e.length?T(t,a,e,!1):x(t,a)):T(t,a,e,!1)}else r||(a.reading=!1,x(t,a));return!a.ended&&(a.length<a.highWaterMark||0===a.length)}function T(t,e,i,r){e.flowing&&0===e.length&&!e.sync?(e.awaitDrain=0,t.emit("data",i)):(e.length+=e.objectMode?1:i.length,r?e.buffer.unshift(i):e.buffer.push(i),e.needReadable&&C(t)),x(t,e)}Object.defineProperty(S.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(t){this._readableState&&(this._readableState.destroyed=t)}}),S.prototype.destroy=m.destroy,S.prototype._undestroy=m.undestroy,S.prototype._destroy=function(t,e){e(t)},S.prototype.push=function(t,e){var i,r=this._readableState;return r.objectMode?i=!0:"string"==typeof t&&((e=e||r.defaultEncoding)!==r.encoding&&(t=s.from(t,e),e=""),i=!0),k(this,t,e,!1,i)},S.prototype.unshift=function(t){return k(this,t,null,!0,!1)},S.prototype.isPaused=function(){return!1===this._readableState.flowing},S.prototype.setEncoding=function(t){d||(d=i(18).StringDecoder);var e=new d(t);this._readableState.decoder=e,this._readableState.encoding=this._readableState.decoder.encoding;for(var r=this._readableState.buffer.head,n="";null!==r;)n+=e.write(r.data),r=r.next;return this._readableState.buffer.clear(),""!==n&&this._readableState.buffer.push(n),this._readableState.length=n.length,this};var R=1073741824;function I(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!=t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=function(t){return t>=R?t=R:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function C(t){var e=t._readableState;u("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(u("emitReadable",e.flowing),e.emittedReadable=!0,r.nextTick(P,t))}function P(t){var e=t._readableState;u("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,W(t)}function x(t,e){e.readingMore||(e.readingMore=!0,r.nextTick(D,t,e))}function D(t,e){for(;!e.reading&&!e.ended&&(e.length<e.highWaterMark||e.flowing&&0===e.length);){var i=e.length;if(u("maybeReadMore read 0"),t.read(0),i===e.length)break}e.readingMore=!1}function O(t){var e=t._readableState;e.readableListening=t.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function B(t){u("readable nexttick read 0"),t.read(0)}function L(t,e){u("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),W(t),e.flowing&&!e.reading&&t.read(0)}function W(t){var e=t._readableState;for(u("flow",e.flowing);e.flowing&&null!==t.read(););}function N(t,e){return 0===e.length?null:(e.objectMode?i=e.buffer.shift():!t||t>=e.length?(i=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):i=e.buffer.consume(t,e.decoder),i);var i}function F(t){var e=t._readableState;u("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,r.nextTick(U,e,t))}function U(t,e){if(u("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var i=e._writableState;(!i||i.autoDestroy&&i.finished)&&e.destroy()}}function j(t,e){for(var i=0,r=t.length;i<r;i++)if(t[i]===e)return i;return-1}S.prototype.read=function(t){u("read",t),t=parseInt(t,10);var e=this._readableState,i=t;if(0!==t&&(e.emittedReadable=!1),0===t&&e.needReadable&&((0!==e.highWaterMark?e.length>=e.highWaterMark:e.length>0)||e.ended))return u("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?F(this):C(this),null;if(0===(t=I(t,e))&&e.ended)return 0===e.length&&F(this),null;var r,n=e.needReadable;return u("need readable",n),(0===e.length||e.length-t<e.highWaterMark)&&u("length less than watermark",n=!0),e.ended||e.reading?u("reading or ended",n=!1):n&&(u("do read"),e.reading=!0,e.sync=!0,0===e.length&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(t=I(i,e))),null===(r=t>0?N(t,e):null)?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),i!==t&&e.ended&&F(this)),null!==r&&this.emit("data",r),r},S.prototype._read=function(t){A(this,new _("_read()"))},S.prototype.pipe=function(t,e){var i=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=t;break;case 1:n.pipes=[n.pipes,t];break;default:n.pipes.push(t)}n.pipesCount+=1,u("pipe count=%d opts=%j",n.pipesCount,e);var a=(!e||!1!==e.end)&&t!==r.stdout&&t!==r.stderr?h:g;function s(e,r){u("onunpipe"),e===i&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,u("cleanup"),t.removeListener("close",p),t.removeListener("finish",m),t.removeListener("drain",l),t.removeListener("error",c),t.removeListener("unpipe",s),i.removeListener("end",h),i.removeListener("end",g),i.removeListener("data",f),d=!0,!n.awaitDrain||t._writableState&&!t._writableState.needDrain||l())}function h(){u("onend"),t.end()}n.endEmitted?r.nextTick(a):i.once("end",a),t.on("unpipe",s);var l=function(t){return function(){var e=t._readableState;u("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&o(t,"data")&&(e.flowing=!0,W(t))}}(i);t.on("drain",l);var d=!1;function f(e){u("ondata");var r=t.write(e);u("dest.write",r),!1===r&&((1===n.pipesCount&&n.pipes===t||n.pipesCount>1&&-1!==j(n.pipes,t))&&!d&&(u("false write response, pause",n.awaitDrain),n.awaitDrain++),i.pause())}function c(e){u("onerror",e),g(),t.removeListener("error",c),0===o(t,"error")&&A(t,e)}function p(){t.removeListener("finish",m),g()}function m(){u("onfinish"),t.removeListener("close",p),g()}function g(){u("unpipe"),i.unpipe(t)}return i.on("data",f),function(t,e,i){if("function"==typeof t.prependListener)return t.prependListener(e,i);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(i):t._events[e]=[i,t._events[e]]:t.on(e,i)}(t,"error",c),t.once("close",p),t.once("finish",m),t.emit("pipe",i),n.flowing||(u("pipe resume"),i.resume()),t},S.prototype.unpipe=function(t){var e=this._readableState,i={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,i)),this;if(!t){var r=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o<n;o++)r[o].emit("unpipe",this,{hasUnpiped:!1});return this}var a=j(e.pipes,t);return-1===a||(e.pipes.splice(a,1),e.pipesCount-=1,1===e.pipesCount&&(e.pipes=e.pipes[0]),t.emit("unpipe",this,i)),this},S.prototype.on=function(t,e){var i=a.prototype.on.call(this,t,e),n=this._readableState;return"data"===t?(n.readableListening=this.listenerCount("readable")>0,!1!==n.flowing&&this.resume()):"readable"===t&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,u("on readable",n.length,n.reading),n.length?C(this):n.reading||r.nextTick(B,this))),i},S.prototype.addListener=S.prototype.on,S.prototype.removeListener=function(t,e){var i=a.prototype.removeListener.call(this,t,e);return"readable"===t&&r.nextTick(O,this),i},S.prototype.removeAllListeners=function(t){var e=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||r.nextTick(O,this),e},S.prototype.resume=function(){var t=this._readableState;return t.flowing||(u("resume"),t.flowing=!t.readableListening,function(t,e){e.resumeScheduled||(e.resumeScheduled=!0,r.nextTick(L,t,e))}(this,t)),t.paused=!1,this},S.prototype.pause=function(){return u("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(u("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},S.prototype.wrap=function(t){var e=this,i=this._readableState,r=!1;for(var n in t.on("end",(function(){if(u("wrapped end"),i.decoder&&!i.ended){var t=i.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(n){(u("wrapped data"),i.decoder&&(n=i.decoder.write(n)),i.objectMode&&null==n)||(i.objectMode||n&&n.length)&&(e.push(n)||(r=!0,t.pause()))})),t)void 0===this[n]&&"function"==typeof t[n]&&(this[n]=function(e){return function(){return t[e].apply(t,arguments)}}(n));for(var o=0;o<M.length;o++)t.on(M[o],this.emit.bind(this,M[o]));return this._read=function(e){u("wrapped _read",e),r&&(r=!1,t.resume())},this},"function"==typeof Symbol&&(S.prototype[Symbol.asyncIterator]=function(){return void 0===f&&(f=i(153)),f(this)}),Object.defineProperty(S.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(S.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(S.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(t){this._readableState&&(this._readableState.flowing=t)}}),S._fromList=N,Object.defineProperty(S.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}}),"function"==typeof Symbol&&(S.from=function(t,e){return void 0===c&&(c=i(154)),c(S,t,e)})}).call(this,i(10),i(8))},function(t,e,i){t.exports=i(6).EventEmitter},function(t,e,i){"use strict";(function(e){function i(t,e){n(t,e),r(t)}function r(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function n(t,e){t.emit("error",e)}t.exports={destroy:function(t,o){var a=this,s=this._readableState&&this._readableState.destroyed,h=this._writableState&&this._writableState.destroyed;return s||h?(o?o(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,e.nextTick(n,this,t)):e.nextTick(n,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,(function(t){!o&&t?a._writableState?a._writableState.errorEmitted?e.nextTick(r,a):(a._writableState.errorEmitted=!0,e.nextTick(i,a,t)):e.nextTick(i,a,t):o?(e.nextTick(r,a),o(t)):e.nextTick(r,a)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(t,e){var i=t._readableState,r=t._writableState;i&&i.autoDestroy||r&&r.autoDestroy?t.destroy(e):t.emit("error",e)}}}).call(this,i(8))},function(t,e,i){"use strict";var r=i(26).codes.ERR_INVALID_OPT_VALUE;t.exports={getHighWaterMark:function(t,e,i,n){var o=function(t,e,i){return null!=t.highWaterMark?t.highWaterMark:e?t[i]:null}(e,n,i);if(null!=o){if(!isFinite(o)||Math.floor(o)!==o||o<0)throw new r(n?i:"highWaterMark",o);return Math.floor(o)}return t.objectMode?16:16384}}},function(t,e,i){"use strict";(function(e,r){function n(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e,i){var r=t.entry;t.entry=null;for(;r;){var n=r.callback;e.pendingcb--,n(i),r=r.next}e.corkedRequestsFree.next=t}(e,t)}}var o;t.exports=S,S.WritableState=E;var a={deprecate:i(53)},s=i(81),h=i(9).Buffer,u=e.Uint8Array||function(){};var l,d=i(82),f=i(83).getHighWaterMark,c=i(26).codes,p=c.ERR_INVALID_ARG_TYPE,m=c.ERR_METHOD_NOT_IMPLEMENTED,g=c.ERR_MULTIPLE_CALLBACK,v=c.ERR_STREAM_CANNOT_PIPE,y=c.ERR_STREAM_DESTROYED,b=c.ERR_STREAM_NULL_VALUES,_=c.ERR_STREAM_WRITE_AFTER_END,w=c.ERR_UNKNOWN_ENCODING,A=d.errorOrDestroy;function M(){}function E(t,e,a){o=o||i(27),t=t||{},"boolean"!=typeof a&&(a=e instanceof o),this.objectMode=!!t.objectMode,a&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=f(this,t,"writableHighWaterMark",a),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var s=!1===t.decodeStrings;this.decodeStrings=!s,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,e){var i=t._writableState,n=i.sync,o=i.writecb;if("function"!=typeof o)throw new g;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(i),e)!function(t,e,i,n,o){--e.pendingcb,i?(r.nextTick(o,n),r.nextTick(P,t,e),t._writableState.errorEmitted=!0,A(t,n)):(o(n),t._writableState.errorEmitted=!0,A(t,n),P(t,e))}(t,i,n,e,o);else{var a=I(i)||t.destroyed;a||i.corked||i.bufferProcessing||!i.bufferedRequest||R(t,i),n?r.nextTick(T,t,i,a,o):T(t,i,a,o)}}(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function S(t){var e=this instanceof(o=o||i(27));if(!e&&!l.call(S,this))return new S(t);this._writableState=new E(t,this,e),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.final&&(this._final=t.final)),s.call(this)}function k(t,e,i,r,n,o,a){e.writelen=r,e.writecb=a,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new y("write")):i?t._writev(n,e.onwrite):t._write(n,o,e.onwrite),e.sync=!1}function T(t,e,i,r){i||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}(t,e),e.pendingcb--,r(),P(t,e)}function R(t,e){e.bufferProcessing=!0;var i=e.bufferedRequest;if(t._writev&&i&&i.next){var r=e.bufferedRequestCount,o=new Array(r),a=e.corkedRequestsFree;a.entry=i;for(var s=0,h=!0;i;)o[s]=i,i.isBuf||(h=!1),i=i.next,s+=1;o.allBuffers=h,k(t,e,!0,e.length,o,"",a.finish),e.pendingcb++,e.lastBufferedRequest=null,a.next?(e.corkedRequestsFree=a.next,a.next=null):e.corkedRequestsFree=new n(e),e.bufferedRequestCount=0}else{for(;i;){var u=i.chunk,l=i.encoding,d=i.callback;if(k(t,e,!1,e.objectMode?1:u.length,u,l,d),i=i.next,e.bufferedRequestCount--,e.writing)break}null===i&&(e.lastBufferedRequest=null)}e.bufferedRequest=i,e.bufferProcessing=!1}function I(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function C(t,e){t._final((function(i){e.pendingcb--,i&&A(t,i),e.prefinished=!0,t.emit("prefinish"),P(t,e)}))}function P(t,e){var i=I(e);if(i&&(function(t,e){e.prefinished||e.finalCalled||("function"!=typeof t._final||e.destroyed?(e.prefinished=!0,t.emit("prefinish")):(e.pendingcb++,e.finalCalled=!0,r.nextTick(C,t,e)))}(t,e),0===e.pendingcb&&(e.finished=!0,t.emit("finish"),e.autoDestroy))){var n=t._readableState;(!n||n.autoDestroy&&n.endEmitted)&&t.destroy()}return i}i(3)(S,s),E.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(E.prototype,"buffer",{get:a.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(l=Function.prototype[Symbol.hasInstance],Object.defineProperty(S,Symbol.hasInstance,{value:function(t){return!!l.call(this,t)||this===S&&(t&&t._writableState instanceof E)}})):l=function(t){return t instanceof this},S.prototype.pipe=function(){A(this,new v)},S.prototype.write=function(t,e,i){var n,o=this._writableState,a=!1,s=!o.objectMode&&(n=t,h.isBuffer(n)||n instanceof u);return s&&!h.isBuffer(t)&&(t=function(t){return h.from(t)}(t)),"function"==typeof e&&(i=e,e=null),s?e="buffer":e||(e=o.defaultEncoding),"function"!=typeof i&&(i=M),o.ending?function(t,e){var i=new _;A(t,i),r.nextTick(e,i)}(this,i):(s||function(t,e,i,n){var o;return null===i?o=new b:"string"==typeof i||e.objectMode||(o=new p("chunk",["string","Buffer"],i)),!o||(A(t,o),r.nextTick(n,o),!1)}(this,o,t,i))&&(o.pendingcb++,a=function(t,e,i,r,n,o){if(!i){var a=function(t,e,i){t.objectMode||!1===t.decodeStrings||"string"!=typeof e||(e=h.from(e,i));return e}(e,r,n);r!==a&&(i=!0,n="buffer",r=a)}var s=e.objectMode?1:r.length;e.length+=s;var u=e.length<e.highWaterMark;u||(e.needDrain=!0);if(e.writing||e.corked){var l=e.lastBufferedRequest;e.lastBufferedRequest={chunk:r,encoding:n,isBuf:i,callback:o,next:null},l?l.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else k(t,e,!1,s,r,n,o);return u}(this,o,s,t,e,i)),a},S.prototype.cork=function(){this._writableState.corked++},S.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,t.writing||t.corked||t.bufferProcessing||!t.bufferedRequest||R(this,t))},S.prototype.setDefaultEncoding=function(t){if("string"==typeof t&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new w(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(S.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(S.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),S.prototype._write=function(t,e,i){i(new m("_write()"))},S.prototype._writev=null,S.prototype.end=function(t,e,i){var n=this._writableState;return"function"==typeof t?(i=t,t=null,e=null):"function"==typeof e&&(i=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||function(t,e,i){e.ending=!0,P(t,e),i&&(e.finished?r.nextTick(i):t.once("finish",i));e.ended=!0,t.writable=!1}(this,n,i),this},Object.defineProperty(S.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(S.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),S.prototype.destroy=d.destroy,S.prototype._undestroy=d.undestroy,S.prototype._destroy=function(t,e){e(t)}}).call(this,i(10),i(8))},function(t,e,i){"use strict";t.exports=l;var r=i(26).codes,n=r.ERR_METHOD_NOT_IMPLEMENTED,o=r.ERR_MULTIPLE_CALLBACK,a=r.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=r.ERR_TRANSFORM_WITH_LENGTH_0,h=i(27);function u(t,e){var i=this._transformState;i.transforming=!1;var r=i.writecb;if(null===r)return this.emit("error",new o);i.writechunk=null,i.writecb=null,null!=e&&this.push(e),r(t);var n=this._readableState;n.reading=!1,(n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}function l(t){if(!(this instanceof l))return new l(t);h.call(this,t),this._transformState={afterTransform:u.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,t&&("function"==typeof t.transform&&(this._transform=t.transform),"function"==typeof t.flush&&(this._flush=t.flush)),this.on("prefinish",d)}function d(){var t=this;"function"!=typeof this._flush||this._readableState.destroyed?f(this,null,null):this._flush((function(e,i){f(t,e,i)}))}function f(t,e,i){if(e)return t.emit("error",e);if(null!=i&&t.push(i),t._writableState.length)throw new s;if(t._transformState.transforming)throw new a;return t.push(null)}i(3)(l,h),l.prototype.push=function(t,e){return this._transformState.needTransform=!1,h.prototype.push.call(this,t,e)},l.prototype._transform=function(t,e,i){i(new n("_transform()"))},l.prototype._write=function(t,e,i){var r=this._transformState;if(r.writecb=i,r.writechunk=t,r.writeencoding=e,!r.transforming){var n=this._readableState;(r.needTransform||n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}},l.prototype._read=function(t){var e=this._transformState;null===e.writechunk||e.transforming?e.needTransform=!0:(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform))},l.prototype._destroy=function(t,e){h.prototype._destroy.call(this,t,(function(t){e(t)}))}},function(t,e,i){var r=i(3),n=i(28),o=i(4).Buffer,a=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],s=new Array(64);function h(){this.init(),this._w=s,n.call(this,64,56)}function u(t,e,i){return i^t&(e^i)}function l(t,e,i){return t&e|i&(t|e)}function d(t){return(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10)}function f(t){return(t>>>6|t<<26)^(t>>>11|t<<21)^(t>>>25|t<<7)}function c(t){return(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3}r(h,n),h.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},h.prototype._update=function(t){for(var e,i=this._w,r=0|this._a,n=0|this._b,o=0|this._c,s=0|this._d,h=0|this._e,p=0|this._f,m=0|this._g,g=0|this._h,v=0;v<16;++v)i[v]=t.readInt32BE(4*v);for(;v<64;++v)i[v]=0|(((e=i[v-2])>>>17|e<<15)^(e>>>19|e<<13)^e>>>10)+i[v-7]+c(i[v-15])+i[v-16];for(var y=0;y<64;++y){var b=g+f(h)+u(h,p,m)+a[y]+i[y]|0,_=d(r)+l(r,n,o)|0;g=m,m=p,p=h,h=s+b|0,s=o,o=n,n=r,r=b+_|0}this._a=r+this._a|0,this._b=n+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=h+this._e|0,this._f=p+this._f|0,this._g=m+this._g|0,this._h=g+this._h|0},h.prototype._hash=function(){var t=o.allocUnsafe(32);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t.writeInt32BE(this._h,28),t},t.exports=h},function(t,e,i){var r=i(3),n=i(28),o=i(4).Buffer,a=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function h(){this.init(),this._w=s,n.call(this,128,112)}function u(t,e,i){return i^t&(e^i)}function l(t,e,i){return t&e|i&(t|e)}function d(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function f(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function c(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^t>>>7}function p(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^(t>>>7|e<<25)}function m(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^t>>>6}function g(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^(t>>>6|e<<26)}function v(t,e){return t>>>0<e>>>0?1:0}r(h,n),h.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},h.prototype._update=function(t){for(var e=this._w,i=0|this._ah,r=0|this._bh,n=0|this._ch,o=0|this._dh,s=0|this._eh,h=0|this._fh,y=0|this._gh,b=0|this._hh,_=0|this._al,w=0|this._bl,A=0|this._cl,M=0|this._dl,E=0|this._el,S=0|this._fl,k=0|this._gl,T=0|this._hl,R=0;R<32;R+=2)e[R]=t.readInt32BE(4*R),e[R+1]=t.readInt32BE(4*R+4);for(;R<160;R+=2){var I=e[R-30],C=e[R-30+1],P=c(I,C),x=p(C,I),D=m(I=e[R-4],C=e[R-4+1]),O=g(C,I),B=e[R-14],L=e[R-14+1],W=e[R-32],N=e[R-32+1],F=x+L|0,U=P+B+v(F,x)|0;U=(U=U+D+v(F=F+O|0,O)|0)+W+v(F=F+N|0,N)|0,e[R]=U,e[R+1]=F}for(var j=0;j<160;j+=2){U=e[j],F=e[j+1];var V=l(i,r,n),H=l(_,w,A),z=d(i,_),G=d(_,i),q=f(s,E),X=f(E,s),Z=a[j],K=a[j+1],Q=u(s,h,y),Y=u(E,S,k),J=T+X|0,$=b+q+v(J,T)|0;$=($=($=$+Q+v(J=J+Y|0,Y)|0)+Z+v(J=J+K|0,K)|0)+U+v(J=J+F|0,F)|0;var tt=G+H|0,et=z+V+v(tt,G)|0;b=y,T=k,y=h,k=S,h=s,S=E,s=o+$+v(E=M+J|0,M)|0,o=n,M=A,n=r,A=w,r=i,w=_,i=$+et+v(_=J+tt|0,J)|0}this._al=this._al+_|0,this._bl=this._bl+w|0,this._cl=this._cl+A|0,this._dl=this._dl+M|0,this._el=this._el+E|0,this._fl=this._fl+S|0,this._gl=this._gl+k|0,this._hl=this._hl+T|0,this._ah=this._ah+i+v(this._al,_)|0,this._bh=this._bh+r+v(this._bl,w)|0,this._ch=this._ch+n+v(this._cl,A)|0,this._dh=this._dh+o+v(this._dl,M)|0,this._eh=this._eh+s+v(this._el,E)|0,this._fh=this._fh+h+v(this._fl,S)|0,this._gh=this._gh+y+v(this._gl,k)|0,this._hh=this._hh+b+v(this._hl,T)|0},h.prototype._hash=function(){var t=o.allocUnsafe(64);function e(e,i,r){t.writeInt32BE(e,r),t.writeInt32BE(i,r+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),t},t.exports=h},function(t,e,i){"use strict";(function(e,r){var n=i(42);t.exports=b;var o,a=i(78);b.ReadableState=y;i(6).EventEmitter;var s=function(t,e){return t.listeners(e).length},h=i(89),u=i(58).Buffer,l=e.Uint8Array||function(){};var d=Object.create(i(36));d.inherits=i(3);var f=i(162),c=void 0;c=f&&f.debuglog?f.debuglog("stream"):function(){};var p,m=i(163),g=i(90);d.inherits(b,h);var v=["error","close","destroy","pause","resume"];function y(t,e){t=t||{};var r=e instanceof(o=o||i(19));this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var n=t.highWaterMark,a=t.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=n||0===n?n:r&&(a||0===a)?a:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(p||(p=i(18).StringDecoder),this.decoder=new p(t.encoding),this.encoding=t.encoding)}function b(t){if(o=o||i(19),!(this instanceof b))return new b(t);this._readableState=new y(t,this),this.readable=!0,t&&("function"==typeof t.read&&(this._read=t.read),"function"==typeof t.destroy&&(this._destroy=t.destroy)),h.call(this)}function _(t,e,i,r,n){var o,a=t._readableState;null===e?(a.reading=!1,function(t,e){if(e.ended)return;if(e.decoder){var i=e.decoder.end();i&&i.length&&(e.buffer.push(i),e.length+=e.objectMode?1:i.length)}e.ended=!0,E(t)}(t,a)):(n||(o=function(t,e){var i;r=e,u.isBuffer(r)||r instanceof l||"string"==typeof e||void 0===e||t.objectMode||(i=new TypeError("Invalid non-string/buffer chunk"));var r;return i}(a,e)),o?t.emit("error",o):a.objectMode||e&&e.length>0?("string"==typeof e||a.objectMode||Object.getPrototypeOf(e)===u.prototype||(e=function(t){return u.from(t)}(e)),r?a.endEmitted?t.emit("error",new Error("stream.unshift() after end event")):w(t,a,e,!0):a.ended?t.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!i?(e=a.decoder.write(e),a.objectMode||0!==e.length?w(t,a,e,!1):k(t,a)):w(t,a,e,!1))):r||(a.reading=!1));return function(t){return!t.ended&&(t.needReadable||t.length<t.highWaterMark||0===t.length)}(a)}function w(t,e,i,r){e.flowing&&0===e.length&&!e.sync?(t.emit("data",i),t.read(0)):(e.length+=e.objectMode?1:i.length,r?e.buffer.unshift(i):e.buffer.push(i),e.needReadable&&E(t)),k(t,e)}Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(t){this._readableState&&(this._readableState.destroyed=t)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(t,e){this.push(null),e(t)},b.prototype.push=function(t,e){var i,r=this._readableState;return r.objectMode?i=!0:"string"==typeof t&&((e=e||r.defaultEncoding)!==r.encoding&&(t=u.from(t,e),e=""),i=!0),_(this,t,e,!1,i)},b.prototype.unshift=function(t){return _(this,t,null,!0,!1)},b.prototype.isPaused=function(){return!1===this._readableState.flowing},b.prototype.setEncoding=function(t){return p||(p=i(18).StringDecoder),this._readableState.decoder=new p(t),this._readableState.encoding=t,this};var A=8388608;function M(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!=t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=function(t){return t>=A?t=A:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function E(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(c("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?n.nextTick(S,t):S(t))}function S(t){c("emit readable"),t.emit("readable"),C(t)}function k(t,e){e.readingMore||(e.readingMore=!0,n.nextTick(T,t,e))}function T(t,e){for(var i=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length<e.highWaterMark&&(c("maybeReadMore read 0"),t.read(0),i!==e.length);)i=e.length;e.readingMore=!1}function R(t){c("readable nexttick read 0"),t.read(0)}function I(t,e){e.reading||(c("resume read 0"),t.read(0)),e.resumeScheduled=!1,e.awaitDrain=0,t.emit("resume"),C(t),e.flowing&&!e.reading&&t.read(0)}function C(t){var e=t._readableState;for(c("flow",e.flowing);e.flowing&&null!==t.read(););}function P(t,e){return 0===e.length?null:(e.objectMode?i=e.buffer.shift():!t||t>=e.length?(i=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):i=function(t,e,i){var r;t<e.head.data.length?(r=e.head.data.slice(0,t),e.head.data=e.head.data.slice(t)):r=t===e.head.data.length?e.shift():i?function(t,e){var i=e.head,r=1,n=i.data;t-=n.length;for(;i=i.next;){var o=i.data,a=t>o.length?o.length:t;if(a===o.length?n+=o:n+=o.slice(0,t),0===(t-=a)){a===o.length?(++r,i.next?e.head=i.next:e.head=e.tail=null):(e.head=i,i.data=o.slice(a));break}++r}return e.length-=r,n}(t,e):function(t,e){var i=u.allocUnsafe(t),r=e.head,n=1;r.data.copy(i),t-=r.data.length;for(;r=r.next;){var o=r.data,a=t>o.length?o.length:t;if(o.copy(i,i.length-t,0,a),0===(t-=a)){a===o.length?(++n,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=o.slice(a));break}++n}return e.length-=n,i}(t,e);return r}(t,e.buffer,e.decoder),i);var i}function x(t){var e=t._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=!0,n.nextTick(D,e,t))}function D(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function O(t,e){for(var i=0,r=t.length;i<r;i++)if(t[i]===e)return i;return-1}b.prototype.read=function(t){c("read",t),t=parseInt(t,10);var e=this._readableState,i=t;if(0!==t&&(e.emittedReadable=!1),0===t&&e.needReadable&&(e.length>=e.highWaterMark||e.ended))return c("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?x(this):E(this),null;if(0===(t=M(t,e))&&e.ended)return 0===e.length&&x(this),null;var r,n=e.needReadable;return c("need readable",n),(0===e.length||e.length-t<e.highWaterMark)&&c("length less than watermark",n=!0),e.ended||e.reading?c("reading or ended",n=!1):n&&(c("do read"),e.reading=!0,e.sync=!0,0===e.length&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(t=M(i,e))),null===(r=t>0?P(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),i!==t&&e.ended&&x(this)),null!==r&&this.emit("data",r),r},b.prototype._read=function(t){this.emit("error",new Error("_read() is not implemented"))},b.prototype.pipe=function(t,e){var i=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=t;break;case 1:o.pipes=[o.pipes,t];break;default:o.pipes.push(t)}o.pipesCount+=1,c("pipe count=%d opts=%j",o.pipesCount,e);var h=(!e||!1!==e.end)&&t!==r.stdout&&t!==r.stderr?l:b;function u(e,r){c("onunpipe"),e===i&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,c("cleanup"),t.removeListener("close",v),t.removeListener("finish",y),t.removeListener("drain",d),t.removeListener("error",g),t.removeListener("unpipe",u),i.removeListener("end",l),i.removeListener("end",b),i.removeListener("data",m),f=!0,!o.awaitDrain||t._writableState&&!t._writableState.needDrain||d())}function l(){c("onend"),t.end()}o.endEmitted?n.nextTick(h):i.once("end",h),t.on("unpipe",u);var d=function(t){return function(){var e=t._readableState;c("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&s(t,"data")&&(e.flowing=!0,C(t))}}(i);t.on("drain",d);var f=!1;var p=!1;function m(e){c("ondata"),p=!1,!1!==t.write(e)||p||((1===o.pipesCount&&o.pipes===t||o.pipesCount>1&&-1!==O(o.pipes,t))&&!f&&(c("false write response, pause",i._readableState.awaitDrain),i._readableState.awaitDrain++,p=!0),i.pause())}function g(e){c("onerror",e),b(),t.removeListener("error",g),0===s(t,"error")&&t.emit("error",e)}function v(){t.removeListener("finish",y),b()}function y(){c("onfinish"),t.removeListener("close",v),b()}function b(){c("unpipe"),i.unpipe(t)}return i.on("data",m),function(t,e,i){if("function"==typeof t.prependListener)return t.prependListener(e,i);t._events&&t._events[e]?a(t._events[e])?t._events[e].unshift(i):t._events[e]=[i,t._events[e]]:t.on(e,i)}(t,"error",g),t.once("close",v),t.once("finish",y),t.emit("pipe",i),o.flowing||(c("pipe resume"),i.resume()),t},b.prototype.unpipe=function(t){var e=this._readableState,i={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,i)),this;if(!t){var r=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o<n;o++)r[o].emit("unpipe",this,i);return this}var a=O(e.pipes,t);return-1===a||(e.pipes.splice(a,1),e.pipesCount-=1,1===e.pipesCount&&(e.pipes=e.pipes[0]),t.emit("unpipe",this,i)),this},b.prototype.on=function(t,e){var i=h.prototype.on.call(this,t,e);if("data"===t)!1!==this._readableState.flowing&&this.resume();else if("readable"===t){var r=this._readableState;r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&E(this):n.nextTick(R,this))}return i},b.prototype.addListener=b.prototype.on,b.prototype.resume=function(){var t=this._readableState;return t.flowing||(c("resume"),t.flowing=!0,function(t,e){e.resumeScheduled||(e.resumeScheduled=!0,n.nextTick(I,t,e))}(this,t)),this},b.prototype.pause=function(){return c("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(c("pause"),this._readableState.flowing=!1,this.emit("pause")),this},b.prototype.wrap=function(t){var e=this,i=this._readableState,r=!1;for(var n in t.on("end",(function(){if(c("wrapped end"),i.decoder&&!i.ended){var t=i.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(n){(c("wrapped data"),i.decoder&&(n=i.decoder.write(n)),i.objectMode&&null==n)||(i.objectMode||n&&n.length)&&(e.push(n)||(r=!0,t.pause()))})),t)void 0===this[n]&&"function"==typeof t[n]&&(this[n]=function(e){return function(){return t[e].apply(t,arguments)}}(n));for(var o=0;o<v.length;o++)t.on(v[o],this.emit.bind(this,v[o]));return this._read=function(e){c("wrapped _read",e),r&&(r=!1,t.resume())},this},Object.defineProperty(b.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),b._fromList=P}).call(this,i(10),i(8))},function(t,e,i){t.exports=i(6).EventEmitter},function(t,e,i){"use strict";var r=i(42);function n(t,e){t.emit("error",e)}t.exports={destroy:function(t,e){var i=this,o=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return o||a?(e?e(t):!t||this._writableState&&this._writableState.errorEmitted||r.nextTick(n,this,t),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,(function(t){!e&&t?(r.nextTick(n,i,t),i._writableState&&(i._writableState.errorEmitted=!0)):e&&e(t)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(t,e,i){"use strict";t.exports=a;var r=i(19),n=Object.create(i(36));function o(t,e){var i=this._transformState;i.transforming=!1;var r=i.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));i.writechunk=null,i.writecb=null,null!=e&&this.push(e),r(t);var n=this._readableState;n.reading=!1,(n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}function a(t){if(!(this instanceof a))return new a(t);r.call(this,t),this._transformState={afterTransform:o.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,t&&("function"==typeof t.transform&&(this._transform=t.transform),"function"==typeof t.flush&&(this._flush=t.flush)),this.on("prefinish",s)}function s(){var t=this;"function"==typeof this._flush?this._flush((function(e,i){h(t,e,i)})):h(this,null,null)}function h(t,e,i){if(e)return t.emit("error",e);if(null!=i&&t.push(i),t._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(t._transformState.transforming)throw new Error("Calling transform done when still transforming");return t.push(null)}n.inherits=i(3),n.inherits(a,r),a.prototype.push=function(t,e){return this._transformState.needTransform=!1,r.prototype.push.call(this,t,e)},a.prototype._transform=function(t,e,i){throw new Error("_transform() is not implemented")},a.prototype._write=function(t,e,i){var r=this._transformState;if(r.writecb=i,r.writechunk=t,r.writeencoding=e,!r.transforming){var n=this._readableState;(r.needTransform||n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}},a.prototype._read=function(t){var e=this._transformState;null!==e.writechunk&&e.writecb&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0},a.prototype._destroy=function(t,e){var i=this;r.prototype._destroy.call(this,t,(function(t){e(t),i.emit("close")}))}},function(t,e,i){"use strict";var r=i(3),n=i(172),o=i(17),a=i(4).Buffer,s=i(93),h=i(55),u=i(56),l=a.alloc(128);function d(t,e){o.call(this,"digest"),"string"==typeof e&&(e=a.from(e));var i="sha512"===t||"sha384"===t?128:64;(this._alg=t,this._key=e,e.length>i)?e=("rmd160"===t?new h:u(t)).update(e).digest():e.length<i&&(e=a.concat([e,l],i));for(var r=this._ipad=a.allocUnsafe(i),n=this._opad=a.allocUnsafe(i),s=0;s<i;s++)r[s]=54^e[s],n[s]=92^e[s];this._hash="rmd160"===t?new h:u(t),this._hash.update(r)}r(d,o),d.prototype._update=function(t){this._hash.update(t)},d.prototype._final=function(){var t=this._hash.digest();return("rmd160"===this._alg?new h:u(this._alg)).update(this._opad).update(t).digest()},t.exports=function(t,e){return"rmd160"===(t=t.toLowerCase())||"ripemd160"===t?new d("rmd160",e):"md5"===t?new n(s,e):new d(t,e)}},function(t,e,i){var r=i(52);t.exports=function(t){return(new r).update(t).digest()}},function(t){t.exports=JSON.parse('{"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}}')},function(t,e,i){e.pbkdf2=i(174),e.pbkdf2Sync=i(98)},function(t,e){var i=Math.pow(2,30)-1;t.exports=function(t,e){if("number"!=typeof t)throw new TypeError("Iterations not a number");if(t<0)throw new TypeError("Bad iterations");if("number"!=typeof e)throw new TypeError("Key length not a number");if(e<0||e>i||e!=e)throw new TypeError("Bad key length")}},function(t,e,i){(function(e,i){var r;if(e.process&&e.process.browser)r="utf-8";else if(e.process&&e.process.version){r=parseInt(i.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary"}else r="utf-8";t.exports=r}).call(this,i(10),i(8))},function(t,e,i){var r=i(93),n=i(55),o=i(56),a=i(4).Buffer,s=i(96),h=i(97),u=i(99),l=a.alloc(128),d={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function f(t,e,i){var s=function(t){function e(e){return o(t).update(e).digest()}function i(t){return(new n).update(t).digest()}return"rmd160"===t||"ripemd160"===t?i:"md5"===t?r:e}(t),h="sha512"===t||"sha384"===t?128:64;e.length>h?e=s(e):e.length<h&&(e=a.concat([e,l],h));for(var u=a.allocUnsafe(h+d[t]),f=a.allocUnsafe(h+d[t]),c=0;c<h;c++)u[c]=54^e[c],f[c]=92^e[c];var p=a.allocUnsafe(h+i+4);u.copy(p,0,0,h),this.ipad1=p,this.ipad2=u,this.opad=f,this.alg=t,this.blocksize=h,this.hash=s,this.size=d[t]}f.prototype.run=function(t,e){return t.copy(e,this.blocksize),this.hash(e).copy(this.opad,this.blocksize),this.hash(this.opad)},t.exports=function(t,e,i,r,n){s(i,r);var o=new f(n=n||"sha1",t=u(t,h,"Password"),(e=u(e,h,"Salt")).length),l=a.allocUnsafe(r),c=a.allocUnsafe(e.length+4);e.copy(c,0,0,e.length);for(var p=0,m=d[n],g=Math.ceil(r/m),v=1;v<=g;v++){c.writeUInt32BE(v,e.length);for(var y=o.run(c,o.ipad1),b=y,_=1;_<i;_++){b=o.run(b,o.ipad2);for(var w=0;w<m;w++)y[w]^=b[w]}y.copy(l,p),p+=m}return l}},function(t,e,i){var r=i(4).Buffer;t.exports=function(t,e,i){if(r.isBuffer(t))return t;if("string"==typeof t)return r.from(t,e);if(ArrayBuffer.isView(t))return r.from(t.buffer);throw new TypeError(i+" must be a string, a Buffer, a typed array or a DataView")}},function(t,e,i){"use strict";e.readUInt32BE=function(t,e){return(t[0+e]<<24|t[1+e]<<16|t[2+e]<<8|t[3+e])>>>0},e.writeUInt32BE=function(t,e,i){t[0+i]=e>>>24,t[1+i]=e>>>16&255,t[2+i]=e>>>8&255,t[3+i]=255&e},e.ip=function(t,e,i,r){for(var n=0,o=0,a=6;a>=0;a-=2){for(var s=0;s<=24;s+=8)n<<=1,n|=e>>>s+a&1;for(s=0;s<=24;s+=8)n<<=1,n|=t>>>s+a&1}for(a=6;a>=0;a-=2){for(s=1;s<=25;s+=8)o<<=1,o|=e>>>s+a&1;for(s=1;s<=25;s+=8)o<<=1,o|=t>>>s+a&1}i[r+0]=n>>>0,i[r+1]=o>>>0},e.rip=function(t,e,i,r){for(var n=0,o=0,a=0;a<4;a++)for(var s=24;s>=0;s-=8)n<<=1,n|=e>>>s+a&1,n<<=1,n|=t>>>s+a&1;for(a=4;a<8;a++)for(s=24;s>=0;s-=8)o<<=1,o|=e>>>s+a&1,o<<=1,o|=t>>>s+a&1;i[r+0]=n>>>0,i[r+1]=o>>>0},e.pc1=function(t,e,i,r){for(var n=0,o=0,a=7;a>=5;a--){for(var s=0;s<=24;s+=8)n<<=1,n|=e>>s+a&1;for(s=0;s<=24;s+=8)n<<=1,n|=t>>s+a&1}for(s=0;s<=24;s+=8)n<<=1,n|=e>>s+a&1;for(a=1;a<=3;a++){for(s=0;s<=24;s+=8)o<<=1,o|=e>>s+a&1;for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1}for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1;i[r+0]=n>>>0,i[r+1]=o>>>0},e.r28shl=function(t,e){return t<<e&268435455|t>>>28-e};var r=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];e.pc2=function(t,e,i,n){for(var o=0,a=0,s=r.length>>>1,h=0;h<s;h++)o<<=1,o|=t>>>r[h]&1;for(h=s;h<r.length;h++)a<<=1,a|=e>>>r[h]&1;i[n+0]=o>>>0,i[n+1]=a>>>0},e.expand=function(t,e,i){var r=0,n=0;r=(1&t)<<5|t>>>27;for(var o=23;o>=15;o-=4)r<<=6,r|=t>>>o&63;for(o=11;o>=3;o-=4)n|=t>>>o&63,n<<=6;n|=(31&t)<<1|t>>>31,e[i+0]=r>>>0,e[i+1]=n>>>0};var n=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];e.substitute=function(t,e){for(var i=0,r=0;r<4;r++){i<<=4,i|=n[64*r+(t>>>18-6*r&63)]}for(r=0;r<4;r++){i<<=4,i|=n[256+64*r+(e>>>18-6*r&63)]}return i>>>0};var o=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];e.permute=function(t){for(var e=0,i=0;i<o.length;i++)e<<=1,e|=t>>>o[i]&1;return e>>>0},e.padSplit=function(t,e,i){for(var r=t.toString(2);r.length<e;)r="0"+r;for(var n=[],o=0;o<e;o+=i)n.push(r.slice(o,o+i));return n.join(" ")}},function(t,e,i){"use strict";var r=i(13),n=i(3),o=i(100),a=i(60);function s(){this.tmp=new Array(2),this.keys=null}function h(t){a.call(this,t);var e=new s;this._desState=e,this.deriveKeys(e,t.key)}n(h,a),t.exports=h,h.create=function(t){return new h(t)};var u=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];h.prototype.deriveKeys=function(t,e){t.keys=new Array(32),r.equal(e.length,this.blockSize,"Invalid key length");var i=o.readUInt32BE(e,0),n=o.readUInt32BE(e,4);o.pc1(i,n,t.tmp,0),i=t.tmp[0],n=t.tmp[1];for(var a=0;a<t.keys.length;a+=2){var s=u[a>>>1];i=o.r28shl(i,s),n=o.r28shl(n,s),o.pc2(i,n,t.keys,a)}},h.prototype._update=function(t,e,i,r){var n=this._desState,a=o.readUInt32BE(t,e),s=o.readUInt32BE(t,e+4);o.ip(a,s,n.tmp,0),a=n.tmp[0],s=n.tmp[1],"encrypt"===this.type?this._encrypt(n,a,s,n.tmp,0):this._decrypt(n,a,s,n.tmp,0),a=n.tmp[0],s=n.tmp[1],o.writeUInt32BE(i,a,r),o.writeUInt32BE(i,s,r+4)},h.prototype._pad=function(t,e){for(var i=t.length-e,r=e;r<t.length;r++)t[r]=i;return!0},h.prototype._unpad=function(t){for(var e=t[t.length-1],i=t.length-e;i<t.length;i++)r.equal(t[i],e);return t.slice(0,t.length-e)},h.prototype._encrypt=function(t,e,i,r,n){for(var a=e,s=i,h=0;h<t.keys.length;h+=2){var u=t.keys[h],l=t.keys[h+1];o.expand(s,t.tmp,0),u^=t.tmp[0],l^=t.tmp[1];var d=o.substitute(u,l),f=s;s=(a^o.permute(d))>>>0,a=f}o.rip(s,a,r,n)},h.prototype._decrypt=function(t,e,i,r,n){for(var a=i,s=e,h=t.keys.length-2;h>=0;h-=2){var u=t.keys[h],l=t.keys[h+1];o.expand(a,t.tmp,0),u^=t.tmp[0],l^=t.tmp[1];var d=o.substitute(u,l),f=a;a=(s^o.permute(d))>>>0,s=f}o.rip(a,s,r,n)}},function(t,e,i){var r=i(37),n=i(4).Buffer,o=i(103);function a(t){var e=t._cipher.encryptBlockRaw(t._prev);return o(t._prev),e}e.encrypt=function(t,e){var i=Math.ceil(e.length/16),o=t._cache.length;t._cache=n.concat([t._cache,n.allocUnsafe(16*i)]);for(var s=0;s<i;s++){var h=a(t),u=o+16*s;t._cache.writeUInt32BE(h[0],u+0),t._cache.writeUInt32BE(h[1],u+4),t._cache.writeUInt32BE(h[2],u+8),t._cache.writeUInt32BE(h[3],u+12)}var l=t._cache.slice(0,e.length);return t._cache=t._cache.slice(e.length),r(e,l)}},function(t,e){t.exports=function(t){for(var e,i=t.length;i--;){if(255!==(e=t.readUInt8(i))){e++,t.writeUInt8(e,i);break}t.writeUInt8(0,i)}}},function(t){t.exports=JSON.parse('{"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}}')},function(t,e,i){var r=i(43),n=i(4).Buffer,o=i(17),a=i(3),s=i(187),h=i(37),u=i(103);function l(t,e,i,a){o.call(this);var h=n.alloc(4,0);this._cipher=new r.AES(e);var l=this._cipher.encryptBlock(h);this._ghash=new s(l),i=function(t,e,i){if(12===e.length)return t._finID=n.concat([e,n.from([0,0,0,1])]),n.concat([e,n.from([0,0,0,2])]);var r=new s(i),o=e.length,a=o%16;r.update(e),a&&(a=16-a,r.update(n.alloc(a,0))),r.update(n.alloc(8,0));var h=8*o,l=n.alloc(8);l.writeUIntBE(h,0,8),r.update(l),t._finID=r.state;var d=n.from(t._finID);return u(d),d}(this,i,l),this._prev=n.from(i),this._cache=n.allocUnsafe(0),this._secCache=n.allocUnsafe(0),this._decrypt=a,this._alen=0,this._len=0,this._mode=t,this._authTag=null,this._called=!1}a(l,o),l.prototype._update=function(t){if(!this._called&&this._alen){var e=16-this._alen%16;e<16&&(e=n.alloc(e,0),this._ghash.update(e))}this._called=!0;var i=this._mode.encrypt(this,t);return this._decrypt?this._ghash.update(t):this._ghash.update(i),this._len+=t.length,i},l.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var t=h(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(t,e){var i=0;t.length!==e.length&&i++;for(var r=Math.min(t.length,e.length),n=0;n<r;++n)i+=t[n]^e[n];return i}(t,this._authTag))throw new Error("Unsupported state or unable to authenticate data");this._authTag=t,this._cipher.scrub()},l.prototype.getAuthTag=function(){if(this._decrypt||!n.isBuffer(this._authTag))throw new Error("Attempting to get auth tag in unsupported state");return this._authTag},l.prototype.setAuthTag=function(t){if(!this._decrypt)throw new Error("Attempting to set auth tag in unsupported state");this._authTag=t},l.prototype.setAAD=function(t){if(this._called)throw new Error("Attempting to set AAD in unsupported state");this._ghash.update(t),this._alen+=t.length},t.exports=l},function(t,e,i){var r=i(43),n=i(4).Buffer,o=i(17);function a(t,e,i,a){o.call(this),this._cipher=new r.AES(e),this._prev=n.from(i),this._cache=n.allocUnsafe(0),this._secCache=n.allocUnsafe(0),this._decrypt=a,this._mode=t}i(3)(a,o),a.prototype._update=function(t){return this._mode.encrypt(this,t,this._decrypt)},a.prototype._final=function(){this._cipher.scrub()},t.exports=a},function(t,e,i){var r=i(25);t.exports=y,y.simpleSieve=g,y.fermatTest=v;var n=i(108),o=new n(24),a=new(i(109)),s=new n(1),h=new n(2),u=new n(5),l=(new n(16),new n(8),new n(10)),d=new n(3),f=(new n(7),new n(11)),c=new n(4),p=(new n(12),null);function m(){if(null!==p)return p;var t=[];t[0]=2;for(var e=1,i=3;i<1048576;i+=2){for(var r=Math.ceil(Math.sqrt(i)),n=0;n<e&&t[n]<=r&&i%t[n]!=0;n++);e!==n&&t[n]<=r||(t[e++]=i)}return p=t,t}function g(t){for(var e=m(),i=0;i<e.length;i++)if(0===t.modn(e[i]))return 0===t.cmpn(e[i]);return!0}function v(t){var e=n.mont(t);return 0===h.toRed(e).redPow(t.subn(1)).fromRed().cmpn(1)}function y(t,e){if(t<16)return new n(2===e||5===e?[140,123]:[140,39]);var i,p;for(e=new n(e);;){for(i=new n(r(Math.ceil(t/8)));i.bitLength()>t;)i.ishrn(1);if(i.isEven()&&i.iadd(s),i.testn(1)||i.iadd(h),e.cmp(h)){if(!e.cmp(u))for(;i.mod(l).cmp(d);)i.iadd(c)}else for(;i.mod(o).cmp(f);)i.iadd(c);if(g(p=i.shrn(1))&&g(i)&&v(p)&&v(i)&&a.test(p)&&a.test(i))return i}}},function(t,e,i){(function(t){!function(t,e){"use strict";function r(t,e){if(!t)throw new Error(e||"Assertion failed")}function n(t,e){t.super_=e;var i=function(){};i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t}function o(t,e,i){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(i=e,e=10),this._init(t||0,e||10,i||"be"))}var a;"object"==typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:i(191).Buffer}catch(t){}function s(t,e){var i=t.charCodeAt(e);return i>=65&&i<=70?i-55:i>=97&&i<=102?i-87:i-48&15}function h(t,e,i){var r=s(t,i);return i-1>=e&&(r|=s(t,i-1)<<4),r}function u(t,e,i,r){for(var n=0,o=Math.min(t.length,i),a=e;a<o;a++){var s=t.charCodeAt(a)-48;n*=r,n+=s>=49?s-49+10:s>=17?s-17+10:s}return n}o.isBN=function(t){return t instanceof o||null!==t&&"object"==typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,i){if("number"==typeof t)return this._initNumber(t,e,i);if("object"==typeof t)return this._initArray(t,e,i);"hex"===e&&(e=16),r(e===(0|e)&&e>=2&&e<=36);var n=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(n++,this.negative=1),n<t.length&&(16===e?this._parseHex(t,n,i):(this._parseBase(t,e,n),"le"===i&&this._initArray(this.toArray(),e,i)))},o.prototype._initNumber=function(t,e,i){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(r(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===i&&this._initArray(this.toArray(),e,i)},o.prototype._initArray=function(t,e,i){if(r("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var o,a,s=0;if("be"===i)for(n=t.length-1,o=0;n>=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===i)for(n=0,o=0;n<t.length;n+=3)a=t[n]|t[n+1]<<8|t[n+2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e,i){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var n,o=0,a=0;if("be"===i)for(r=t.length-1;r>=e;r-=2)n=h(t,e,r)<<o,this.words[a]|=67108863&n,o>=18?(o-=18,a+=1,this.words[a]|=n>>>26):o+=8;else for(r=(t.length-e)%2==0?e+1:e;r<t.length;r+=2)n=h(t,e,r)<<o,this.words[a]|=67108863&n,o>=18?(o-=18,a+=1,this.words[a]|=n>>>26):o+=8;this.strip()},o.prototype._parseBase=function(t,e,i){this.words=[0],this.length=1;for(var r=0,n=1;n<=67108863;n*=e)r++;r--,n=n/e|0;for(var o=t.length-i,a=o%r,s=Math.min(o,o-a)+i,h=0,l=i;l<s;l+=r)h=u(t,l,l+r,e),this.imuln(n),this.words[0]+h<67108864?this.words[0]+=h:this._iaddn(h);if(0!==a){var d=1;for(h=u(t,l,t.length,e),l=0;l<a;l++)d*=e;this.imuln(d),this.words[0]+h<67108864?this.words[0]+=h:this._iaddn(h)}this.strip()},o.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},o.prototype.clone=function(){var t=new o(null);return this.copy(t),t},o.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},o.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var l=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],d=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t,e,i){i.negative=e.negative^t.negative;var r=t.length+e.length|0;i.length=r,r=r-1|0;var n=0|t.words[0],o=0|e.words[0],a=n*o,s=67108863&a,h=a/67108864|0;i.words[0]=s;for(var u=1;u<r;u++){for(var l=h>>>26,d=67108863&h,f=Math.min(u,e.length-1),c=Math.max(0,u-t.length+1);c<=f;c++){var p=u-c|0;l+=(a=(n=0|t.words[p])*(o=0|e.words[c])+d)/67108864|0,d=67108863&a}i.words[u]=0|d,h=0|l}return 0!==h?i.words[u]=0|h:i.length--,i.strip()}o.prototype.toString=function(t,e){var i;if(e=0|e||1,16===(t=t||10)||"hex"===t){i="";for(var n=0,o=0,a=0;a<this.length;a++){var s=this.words[a],h=(16777215&(s<<n|o)).toString(16);i=0!==(o=s>>>24-n&16777215)||a!==this.length-1?l[6-h.length]+h+i:h+i,(n+=2)>=26&&(n-=26,a--)}for(0!==o&&(i=o.toString(16)+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}if(t===(0|t)&&t>=2&&t<=36){var u=d[t],c=f[t];i="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(c).toString(t);i=(p=p.idivn(c)).isZero()?m+i:l[u-m.length]+m+i}for(this.isZero()&&(i="0"+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return r(void 0!==a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,i){var n=this.byteLength(),o=i||Math.max(1,n);r(n<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0"),this.strip();var a,s,h="le"===e,u=new t(o),l=this.clone();if(h){for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[s]=a;for(;s<o;s++)u[s]=0}else{for(s=0;s<o-n;s++)u[s]=0;for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[o-s-1]=a}return u},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,i=0;return e>=4096&&(i+=13,e>>>=13),e>=64&&(i+=7,e>>>=7),e>=8&&(i+=4,e>>>=4),e>=2&&(i+=2,e>>>=2),i+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,i=0;return 0==(8191&e)&&(i+=13,e>>>=13),0==(127&e)&&(i+=7,e>>>=7),0==(15&e)&&(i+=4,e>>>=4),0==(3&e)&&(i+=2,e>>>=2),0==(1&e)&&i++,i},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var i=this._zeroBits(this.words[e]);if(t+=i,26!==i)break}return t},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},o.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},o.prototype.ior=function(t){return r(0==(this.negative|t.negative)),this.iuor(t)},o.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var i=0;i<e.length;i++)this.words[i]=this.words[i]&t.words[i];return this.length=e.length,this.strip()},o.prototype.iand=function(t){return r(0==(this.negative|t.negative)),this.iuand(t)},o.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,i;this.length>t.length?(e=this,i=t):(e=t,i=this);for(var r=0;r<i.length;r++)this.words[r]=e.words[r]^i.words[r];if(this!==e)for(;r<e.length;r++)this.words[r]=e.words[r];return this.length=e.length,this.strip()},o.prototype.ixor=function(t){return r(0==(this.negative|t.negative)),this.iuxor(t)},o.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){r("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),i=t%26;this._expand(e),i>0&&e--;for(var n=0;n<e;n++)this.words[n]=67108863&~this.words[n];return i>0&&(this.words[n]=~this.words[n]&67108863>>26-i),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){r("number"==typeof t&&t>=0);var i=t/26|0,n=t%26;return this._expand(i+1),this.words[i]=e?this.words[i]|1<<n:this.words[i]&~(1<<n),this.strip()},o.prototype.iadd=function(t){var e,i,r;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(i=this,r=t):(i=t,r=this);for(var n=0,o=0;o<r.length;o++)e=(0|i.words[o])+(0|r.words[o])+n,this.words[o]=67108863&e,n=e>>>26;for(;0!==n&&o<i.length;o++)e=(0|i.words[o])+n,this.words[o]=67108863&e,n=e>>>26;if(this.length=i.length,0!==n)this.words[this.length]=n,this.length++;else if(i!==this)for(;o<i.length;o++)this.words[o]=i.words[o];return this},o.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var i,r,n=this.cmp(t);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(i=this,r=t):(i=t,r=this);for(var o=0,a=0;a<r.length;a++)o=(e=(0|i.words[a])-(0|r.words[a])+o)>>26,this.words[a]=67108863&e;for(;0!==o&&a<i.length;a++)o=(e=(0|i.words[a])+o)>>26,this.words[a]=67108863&e;if(0===o&&a<i.length&&i!==this)for(;a<i.length;a++)this.words[a]=i.words[a];return this.length=Math.max(this.length,a),i!==this&&(this.negative=1),this.strip()},o.prototype.sub=function(t){return this.clone().isub(t)};var p=function(t,e,i){var r,n,o,a=t.words,s=e.words,h=i.words,u=0,l=0|a[0],d=8191&l,f=l>>>13,c=0|a[1],p=8191&c,m=c>>>13,g=0|a[2],v=8191&g,y=g>>>13,b=0|a[3],_=8191&b,w=b>>>13,A=0|a[4],M=8191&A,E=A>>>13,S=0|a[5],k=8191&S,T=S>>>13,R=0|a[6],I=8191&R,C=R>>>13,P=0|a[7],x=8191&P,D=P>>>13,O=0|a[8],B=8191&O,L=O>>>13,W=0|a[9],N=8191&W,F=W>>>13,U=0|s[0],j=8191&U,V=U>>>13,H=0|s[1],z=8191&H,G=H>>>13,q=0|s[2],X=8191&q,Z=q>>>13,K=0|s[3],Q=8191&K,Y=K>>>13,J=0|s[4],$=8191&J,tt=J>>>13,et=0|s[5],it=8191&et,rt=et>>>13,nt=0|s[6],ot=8191&nt,at=nt>>>13,st=0|s[7],ht=8191&st,ut=st>>>13,lt=0|s[8],dt=8191<,ft=lt>>>13,ct=0|s[9],pt=8191&ct,mt=ct>>>13;i.negative=t.negative^e.negative,i.length=19;var gt=(u+(r=Math.imul(d,j))|0)+((8191&(n=(n=Math.imul(d,V))+Math.imul(f,j)|0))<<13)|0;u=((o=Math.imul(f,V))+(n>>>13)|0)+(gt>>>26)|0,gt&=67108863,r=Math.imul(p,j),n=(n=Math.imul(p,V))+Math.imul(m,j)|0,o=Math.imul(m,V);var vt=(u+(r=r+Math.imul(d,z)|0)|0)+((8191&(n=(n=n+Math.imul(d,G)|0)+Math.imul(f,z)|0))<<13)|0;u=((o=o+Math.imul(f,G)|0)+(n>>>13)|0)+(vt>>>26)|0,vt&=67108863,r=Math.imul(v,j),n=(n=Math.imul(v,V))+Math.imul(y,j)|0,o=Math.imul(y,V),r=r+Math.imul(p,z)|0,n=(n=n+Math.imul(p,G)|0)+Math.imul(m,z)|0,o=o+Math.imul(m,G)|0;var yt=(u+(r=r+Math.imul(d,X)|0)|0)+((8191&(n=(n=n+Math.imul(d,Z)|0)+Math.imul(f,X)|0))<<13)|0;u=((o=o+Math.imul(f,Z)|0)+(n>>>13)|0)+(yt>>>26)|0,yt&=67108863,r=Math.imul(_,j),n=(n=Math.imul(_,V))+Math.imul(w,j)|0,o=Math.imul(w,V),r=r+Math.imul(v,z)|0,n=(n=n+Math.imul(v,G)|0)+Math.imul(y,z)|0,o=o+Math.imul(y,G)|0,r=r+Math.imul(p,X)|0,n=(n=n+Math.imul(p,Z)|0)+Math.imul(m,X)|0,o=o+Math.imul(m,Z)|0;var bt=(u+(r=r+Math.imul(d,Q)|0)|0)+((8191&(n=(n=n+Math.imul(d,Y)|0)+Math.imul(f,Q)|0))<<13)|0;u=((o=o+Math.imul(f,Y)|0)+(n>>>13)|0)+(bt>>>26)|0,bt&=67108863,r=Math.imul(M,j),n=(n=Math.imul(M,V))+Math.imul(E,j)|0,o=Math.imul(E,V),r=r+Math.imul(_,z)|0,n=(n=n+Math.imul(_,G)|0)+Math.imul(w,z)|0,o=o+Math.imul(w,G)|0,r=r+Math.imul(v,X)|0,n=(n=n+Math.imul(v,Z)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,Z)|0,r=r+Math.imul(p,Q)|0,n=(n=n+Math.imul(p,Y)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,Y)|0;var _t=(u+(r=r+Math.imul(d,$)|0)|0)+((8191&(n=(n=n+Math.imul(d,tt)|0)+Math.imul(f,$)|0))<<13)|0;u=((o=o+Math.imul(f,tt)|0)+(n>>>13)|0)+(_t>>>26)|0,_t&=67108863,r=Math.imul(k,j),n=(n=Math.imul(k,V))+Math.imul(T,j)|0,o=Math.imul(T,V),r=r+Math.imul(M,z)|0,n=(n=n+Math.imul(M,G)|0)+Math.imul(E,z)|0,o=o+Math.imul(E,G)|0,r=r+Math.imul(_,X)|0,n=(n=n+Math.imul(_,Z)|0)+Math.imul(w,X)|0,o=o+Math.imul(w,Z)|0,r=r+Math.imul(v,Q)|0,n=(n=n+Math.imul(v,Y)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,Y)|0,r=r+Math.imul(p,$)|0,n=(n=n+Math.imul(p,tt)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,tt)|0;var wt=(u+(r=r+Math.imul(d,it)|0)|0)+((8191&(n=(n=n+Math.imul(d,rt)|0)+Math.imul(f,it)|0))<<13)|0;u=((o=o+Math.imul(f,rt)|0)+(n>>>13)|0)+(wt>>>26)|0,wt&=67108863,r=Math.imul(I,j),n=(n=Math.imul(I,V))+Math.imul(C,j)|0,o=Math.imul(C,V),r=r+Math.imul(k,z)|0,n=(n=n+Math.imul(k,G)|0)+Math.imul(T,z)|0,o=o+Math.imul(T,G)|0,r=r+Math.imul(M,X)|0,n=(n=n+Math.imul(M,Z)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,Z)|0,r=r+Math.imul(_,Q)|0,n=(n=n+Math.imul(_,Y)|0)+Math.imul(w,Q)|0,o=o+Math.imul(w,Y)|0,r=r+Math.imul(v,$)|0,n=(n=n+Math.imul(v,tt)|0)+Math.imul(y,$)|0,o=o+Math.imul(y,tt)|0,r=r+Math.imul(p,it)|0,n=(n=n+Math.imul(p,rt)|0)+Math.imul(m,it)|0,o=o+Math.imul(m,rt)|0;var At=(u+(r=r+Math.imul(d,ot)|0)|0)+((8191&(n=(n=n+Math.imul(d,at)|0)+Math.imul(f,ot)|0))<<13)|0;u=((o=o+Math.imul(f,at)|0)+(n>>>13)|0)+(At>>>26)|0,At&=67108863,r=Math.imul(x,j),n=(n=Math.imul(x,V))+Math.imul(D,j)|0,o=Math.imul(D,V),r=r+Math.imul(I,z)|0,n=(n=n+Math.imul(I,G)|0)+Math.imul(C,z)|0,o=o+Math.imul(C,G)|0,r=r+Math.imul(k,X)|0,n=(n=n+Math.imul(k,Z)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,Z)|0,r=r+Math.imul(M,Q)|0,n=(n=n+Math.imul(M,Y)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,Y)|0,r=r+Math.imul(_,$)|0,n=(n=n+Math.imul(_,tt)|0)+Math.imul(w,$)|0,o=o+Math.imul(w,tt)|0,r=r+Math.imul(v,it)|0,n=(n=n+Math.imul(v,rt)|0)+Math.imul(y,it)|0,o=o+Math.imul(y,rt)|0,r=r+Math.imul(p,ot)|0,n=(n=n+Math.imul(p,at)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0;var Mt=(u+(r=r+Math.imul(d,ht)|0)|0)+((8191&(n=(n=n+Math.imul(d,ut)|0)+Math.imul(f,ht)|0))<<13)|0;u=((o=o+Math.imul(f,ut)|0)+(n>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,r=Math.imul(B,j),n=(n=Math.imul(B,V))+Math.imul(L,j)|0,o=Math.imul(L,V),r=r+Math.imul(x,z)|0,n=(n=n+Math.imul(x,G)|0)+Math.imul(D,z)|0,o=o+Math.imul(D,G)|0,r=r+Math.imul(I,X)|0,n=(n=n+Math.imul(I,Z)|0)+Math.imul(C,X)|0,o=o+Math.imul(C,Z)|0,r=r+Math.imul(k,Q)|0,n=(n=n+Math.imul(k,Y)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,Y)|0,r=r+Math.imul(M,$)|0,n=(n=n+Math.imul(M,tt)|0)+Math.imul(E,$)|0,o=o+Math.imul(E,tt)|0,r=r+Math.imul(_,it)|0,n=(n=n+Math.imul(_,rt)|0)+Math.imul(w,it)|0,o=o+Math.imul(w,rt)|0,r=r+Math.imul(v,ot)|0,n=(n=n+Math.imul(v,at)|0)+Math.imul(y,ot)|0,o=o+Math.imul(y,at)|0,r=r+Math.imul(p,ht)|0,n=(n=n+Math.imul(p,ut)|0)+Math.imul(m,ht)|0,o=o+Math.imul(m,ut)|0;var Et=(u+(r=r+Math.imul(d,dt)|0)|0)+((8191&(n=(n=n+Math.imul(d,ft)|0)+Math.imul(f,dt)|0))<<13)|0;u=((o=o+Math.imul(f,ft)|0)+(n>>>13)|0)+(Et>>>26)|0,Et&=67108863,r=Math.imul(N,j),n=(n=Math.imul(N,V))+Math.imul(F,j)|0,o=Math.imul(F,V),r=r+Math.imul(B,z)|0,n=(n=n+Math.imul(B,G)|0)+Math.imul(L,z)|0,o=o+Math.imul(L,G)|0,r=r+Math.imul(x,X)|0,n=(n=n+Math.imul(x,Z)|0)+Math.imul(D,X)|0,o=o+Math.imul(D,Z)|0,r=r+Math.imul(I,Q)|0,n=(n=n+Math.imul(I,Y)|0)+Math.imul(C,Q)|0,o=o+Math.imul(C,Y)|0,r=r+Math.imul(k,$)|0,n=(n=n+Math.imul(k,tt)|0)+Math.imul(T,$)|0,o=o+Math.imul(T,tt)|0,r=r+Math.imul(M,it)|0,n=(n=n+Math.imul(M,rt)|0)+Math.imul(E,it)|0,o=o+Math.imul(E,rt)|0,r=r+Math.imul(_,ot)|0,n=(n=n+Math.imul(_,at)|0)+Math.imul(w,ot)|0,o=o+Math.imul(w,at)|0,r=r+Math.imul(v,ht)|0,n=(n=n+Math.imul(v,ut)|0)+Math.imul(y,ht)|0,o=o+Math.imul(y,ut)|0,r=r+Math.imul(p,dt)|0,n=(n=n+Math.imul(p,ft)|0)+Math.imul(m,dt)|0,o=o+Math.imul(m,ft)|0;var St=(u+(r=r+Math.imul(d,pt)|0)|0)+((8191&(n=(n=n+Math.imul(d,mt)|0)+Math.imul(f,pt)|0))<<13)|0;u=((o=o+Math.imul(f,mt)|0)+(n>>>13)|0)+(St>>>26)|0,St&=67108863,r=Math.imul(N,z),n=(n=Math.imul(N,G))+Math.imul(F,z)|0,o=Math.imul(F,G),r=r+Math.imul(B,X)|0,n=(n=n+Math.imul(B,Z)|0)+Math.imul(L,X)|0,o=o+Math.imul(L,Z)|0,r=r+Math.imul(x,Q)|0,n=(n=n+Math.imul(x,Y)|0)+Math.imul(D,Q)|0,o=o+Math.imul(D,Y)|0,r=r+Math.imul(I,$)|0,n=(n=n+Math.imul(I,tt)|0)+Math.imul(C,$)|0,o=o+Math.imul(C,tt)|0,r=r+Math.imul(k,it)|0,n=(n=n+Math.imul(k,rt)|0)+Math.imul(T,it)|0,o=o+Math.imul(T,rt)|0,r=r+Math.imul(M,ot)|0,n=(n=n+Math.imul(M,at)|0)+Math.imul(E,ot)|0,o=o+Math.imul(E,at)|0,r=r+Math.imul(_,ht)|0,n=(n=n+Math.imul(_,ut)|0)+Math.imul(w,ht)|0,o=o+Math.imul(w,ut)|0,r=r+Math.imul(v,dt)|0,n=(n=n+Math.imul(v,ft)|0)+Math.imul(y,dt)|0,o=o+Math.imul(y,ft)|0;var kt=(u+(r=r+Math.imul(p,pt)|0)|0)+((8191&(n=(n=n+Math.imul(p,mt)|0)+Math.imul(m,pt)|0))<<13)|0;u=((o=o+Math.imul(m,mt)|0)+(n>>>13)|0)+(kt>>>26)|0,kt&=67108863,r=Math.imul(N,X),n=(n=Math.imul(N,Z))+Math.imul(F,X)|0,o=Math.imul(F,Z),r=r+Math.imul(B,Q)|0,n=(n=n+Math.imul(B,Y)|0)+Math.imul(L,Q)|0,o=o+Math.imul(L,Y)|0,r=r+Math.imul(x,$)|0,n=(n=n+Math.imul(x,tt)|0)+Math.imul(D,$)|0,o=o+Math.imul(D,tt)|0,r=r+Math.imul(I,it)|0,n=(n=n+Math.imul(I,rt)|0)+Math.imul(C,it)|0,o=o+Math.imul(C,rt)|0,r=r+Math.imul(k,ot)|0,n=(n=n+Math.imul(k,at)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,r=r+Math.imul(M,ht)|0,n=(n=n+Math.imul(M,ut)|0)+Math.imul(E,ht)|0,o=o+Math.imul(E,ut)|0,r=r+Math.imul(_,dt)|0,n=(n=n+Math.imul(_,ft)|0)+Math.imul(w,dt)|0,o=o+Math.imul(w,ft)|0;var Tt=(u+(r=r+Math.imul(v,pt)|0)|0)+((8191&(n=(n=n+Math.imul(v,mt)|0)+Math.imul(y,pt)|0))<<13)|0;u=((o=o+Math.imul(y,mt)|0)+(n>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,r=Math.imul(N,Q),n=(n=Math.imul(N,Y))+Math.imul(F,Q)|0,o=Math.imul(F,Y),r=r+Math.imul(B,$)|0,n=(n=n+Math.imul(B,tt)|0)+Math.imul(L,$)|0,o=o+Math.imul(L,tt)|0,r=r+Math.imul(x,it)|0,n=(n=n+Math.imul(x,rt)|0)+Math.imul(D,it)|0,o=o+Math.imul(D,rt)|0,r=r+Math.imul(I,ot)|0,n=(n=n+Math.imul(I,at)|0)+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,r=r+Math.imul(k,ht)|0,n=(n=n+Math.imul(k,ut)|0)+Math.imul(T,ht)|0,o=o+Math.imul(T,ut)|0,r=r+Math.imul(M,dt)|0,n=(n=n+Math.imul(M,ft)|0)+Math.imul(E,dt)|0,o=o+Math.imul(E,ft)|0;var Rt=(u+(r=r+Math.imul(_,pt)|0)|0)+((8191&(n=(n=n+Math.imul(_,mt)|0)+Math.imul(w,pt)|0))<<13)|0;u=((o=o+Math.imul(w,mt)|0)+(n>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,r=Math.imul(N,$),n=(n=Math.imul(N,tt))+Math.imul(F,$)|0,o=Math.imul(F,tt),r=r+Math.imul(B,it)|0,n=(n=n+Math.imul(B,rt)|0)+Math.imul(L,it)|0,o=o+Math.imul(L,rt)|0,r=r+Math.imul(x,ot)|0,n=(n=n+Math.imul(x,at)|0)+Math.imul(D,ot)|0,o=o+Math.imul(D,at)|0,r=r+Math.imul(I,ht)|0,n=(n=n+Math.imul(I,ut)|0)+Math.imul(C,ht)|0,o=o+Math.imul(C,ut)|0,r=r+Math.imul(k,dt)|0,n=(n=n+Math.imul(k,ft)|0)+Math.imul(T,dt)|0,o=o+Math.imul(T,ft)|0;var It=(u+(r=r+Math.imul(M,pt)|0)|0)+((8191&(n=(n=n+Math.imul(M,mt)|0)+Math.imul(E,pt)|0))<<13)|0;u=((o=o+Math.imul(E,mt)|0)+(n>>>13)|0)+(It>>>26)|0,It&=67108863,r=Math.imul(N,it),n=(n=Math.imul(N,rt))+Math.imul(F,it)|0,o=Math.imul(F,rt),r=r+Math.imul(B,ot)|0,n=(n=n+Math.imul(B,at)|0)+Math.imul(L,ot)|0,o=o+Math.imul(L,at)|0,r=r+Math.imul(x,ht)|0,n=(n=n+Math.imul(x,ut)|0)+Math.imul(D,ht)|0,o=o+Math.imul(D,ut)|0,r=r+Math.imul(I,dt)|0,n=(n=n+Math.imul(I,ft)|0)+Math.imul(C,dt)|0,o=o+Math.imul(C,ft)|0;var Ct=(u+(r=r+Math.imul(k,pt)|0)|0)+((8191&(n=(n=n+Math.imul(k,mt)|0)+Math.imul(T,pt)|0))<<13)|0;u=((o=o+Math.imul(T,mt)|0)+(n>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,r=Math.imul(N,ot),n=(n=Math.imul(N,at))+Math.imul(F,ot)|0,o=Math.imul(F,at),r=r+Math.imul(B,ht)|0,n=(n=n+Math.imul(B,ut)|0)+Math.imul(L,ht)|0,o=o+Math.imul(L,ut)|0,r=r+Math.imul(x,dt)|0,n=(n=n+Math.imul(x,ft)|0)+Math.imul(D,dt)|0,o=o+Math.imul(D,ft)|0;var Pt=(u+(r=r+Math.imul(I,pt)|0)|0)+((8191&(n=(n=n+Math.imul(I,mt)|0)+Math.imul(C,pt)|0))<<13)|0;u=((o=o+Math.imul(C,mt)|0)+(n>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,r=Math.imul(N,ht),n=(n=Math.imul(N,ut))+Math.imul(F,ht)|0,o=Math.imul(F,ut),r=r+Math.imul(B,dt)|0,n=(n=n+Math.imul(B,ft)|0)+Math.imul(L,dt)|0,o=o+Math.imul(L,ft)|0;var xt=(u+(r=r+Math.imul(x,pt)|0)|0)+((8191&(n=(n=n+Math.imul(x,mt)|0)+Math.imul(D,pt)|0))<<13)|0;u=((o=o+Math.imul(D,mt)|0)+(n>>>13)|0)+(xt>>>26)|0,xt&=67108863,r=Math.imul(N,dt),n=(n=Math.imul(N,ft))+Math.imul(F,dt)|0,o=Math.imul(F,ft);var Dt=(u+(r=r+Math.imul(B,pt)|0)|0)+((8191&(n=(n=n+Math.imul(B,mt)|0)+Math.imul(L,pt)|0))<<13)|0;u=((o=o+Math.imul(L,mt)|0)+(n>>>13)|0)+(Dt>>>26)|0,Dt&=67108863;var Ot=(u+(r=Math.imul(N,pt))|0)+((8191&(n=(n=Math.imul(N,mt))+Math.imul(F,pt)|0))<<13)|0;return u=((o=Math.imul(F,mt))+(n>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,h[0]=gt,h[1]=vt,h[2]=yt,h[3]=bt,h[4]=_t,h[5]=wt,h[6]=At,h[7]=Mt,h[8]=Et,h[9]=St,h[10]=kt,h[11]=Tt,h[12]=Rt,h[13]=It,h[14]=Ct,h[15]=Pt,h[16]=xt,h[17]=Dt,h[18]=Ot,0!==u&&(h[19]=u,i.length++),i};function m(t,e,i){return(new g).mulp(t,e,i)}function g(t,e){this.x=t,this.y=e}Math.imul||(p=c),o.prototype.mulTo=function(t,e){var i,r=this.length+t.length;return i=10===this.length&&10===t.length?p(this,t,e):r<63?c(this,t,e):r<1024?function(t,e,i){i.negative=e.negative^t.negative,i.length=t.length+e.length;for(var r=0,n=0,o=0;o<i.length-1;o++){var a=n;n=0;for(var s=67108863&r,h=Math.min(o,e.length-1),u=Math.max(0,o-t.length+1);u<=h;u++){var l=o-u,d=(0|t.words[l])*(0|e.words[u]),f=67108863&d;s=67108863&(f=f+s|0),n+=(a=(a=a+(d/67108864|0)|0)+(f>>>26)|0)>>>26,a&=67108863}i.words[o]=s,r=a,a=n}return 0!==r?i.words[o]=r:i.length--,i.strip()}(this,t,e):m(this,t,e),i},g.prototype.makeRBT=function(t){for(var e=new Array(t),i=o.prototype._countBits(t)-1,r=0;r<t;r++)e[r]=this.revBin(r,i,t);return e},g.prototype.revBin=function(t,e,i){if(0===t||t===i-1)return t;for(var r=0,n=0;n<e;n++)r|=(1&t)<<e-n-1,t>>=1;return r},g.prototype.permute=function(t,e,i,r,n,o){for(var a=0;a<o;a++)r[a]=e[t[a]],n[a]=i[t[a]]},g.prototype.transform=function(t,e,i,r,n,o){this.permute(o,t,e,i,r,n);for(var a=1;a<n;a<<=1)for(var s=a<<1,h=Math.cos(2*Math.PI/s),u=Math.sin(2*Math.PI/s),l=0;l<n;l+=s)for(var d=h,f=u,c=0;c<a;c++){var p=i[l+c],m=r[l+c],g=i[l+c+a],v=r[l+c+a],y=d*g-f*v;v=d*v+f*g,g=y,i[l+c]=p+g,r[l+c]=m+v,i[l+c+a]=p-g,r[l+c+a]=m-v,c!==s&&(y=h*d-u*f,f=h*f+u*d,d=y)}},g.prototype.guessLen13b=function(t,e){var i=1|Math.max(e,t),r=1&i,n=0;for(i=i/2|0;i;i>>>=1)n++;return 1<<n+1+r},g.prototype.conjugate=function(t,e,i){if(!(i<=1))for(var r=0;r<i/2;r++){var n=t[r];t[r]=t[i-r-1],t[i-r-1]=n,n=e[r],e[r]=-e[i-r-1],e[i-r-1]=-n}},g.prototype.normalize13b=function(t,e){for(var i=0,r=0;r<e/2;r++){var n=8192*Math.round(t[2*r+1]/e)+Math.round(t[2*r]/e)+i;t[r]=67108863&n,i=n<67108864?0:n/67108864|0}return t},g.prototype.convert13b=function(t,e,i,n){for(var o=0,a=0;a<e;a++)o+=0|t[a],i[2*a]=8191&o,o>>>=13,i[2*a+1]=8191&o,o>>>=13;for(a=2*e;a<n;++a)i[a]=0;r(0===o),r(0==(-8192&o))},g.prototype.stub=function(t){for(var e=new Array(t),i=0;i<t;i++)e[i]=0;return e},g.prototype.mulp=function(t,e,i){var r=2*this.guessLen13b(t.length,e.length),n=this.makeRBT(r),o=this.stub(r),a=new Array(r),s=new Array(r),h=new Array(r),u=new Array(r),l=new Array(r),d=new Array(r),f=i.words;f.length=r,this.convert13b(t.words,t.length,a,r),this.convert13b(e.words,e.length,u,r),this.transform(a,o,s,h,r,n),this.transform(u,o,l,d,r,n);for(var c=0;c<r;c++){var p=s[c]*l[c]-h[c]*d[c];h[c]=s[c]*d[c]+h[c]*l[c],s[c]=p}return this.conjugate(s,h,r),this.transform(s,h,f,o,r,n),this.conjugate(f,o,r),this.normalize13b(f,r),i.negative=t.negative^e.negative,i.length=t.length+e.length,i.strip()},o.prototype.mul=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},o.prototype.mulf=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),m(this,t,e)},o.prototype.imul=function(t){return this.clone().mulTo(t,this)},o.prototype.imuln=function(t){r("number"==typeof t),r(t<67108864);for(var e=0,i=0;i<this.length;i++){var n=(0|this.words[i])*t,o=(67108863&n)+(67108863&e);e>>=26,e+=n/67108864|0,e+=o>>>26,this.words[i]=67108863&o}return 0!==e&&(this.words[i]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),i=0;i<e.length;i++){var r=i/26|0,n=i%26;e[i]=(t.words[r]&1<<n)>>>n}return e}(t);if(0===e.length)return new o(1);for(var i=this,r=0;r<e.length&&0===e[r];r++,i=i.sqr());if(++r<e.length)for(var n=i.sqr();r<e.length;r++,n=n.sqr())0!==e[r]&&(i=i.mul(n));return i},o.prototype.iushln=function(t){r("number"==typeof t&&t>=0);var e,i=t%26,n=(t-i)/26,o=67108863>>>26-i<<26-i;if(0!==i){var a=0;for(e=0;e<this.length;e++){var s=this.words[e]&o,h=(0|this.words[e])-s<<i;this.words[e]=h|a,a=s>>>26-i}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e<n;e++)this.words[e]=0;this.length+=n}return this.strip()},o.prototype.ishln=function(t){return r(0===this.negative),this.iushln(t)},o.prototype.iushrn=function(t,e,i){var n;r("number"==typeof t&&t>=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<<o,h=i;if(n-=a,n=Math.max(0,n),h){for(var u=0;u<a;u++)h.words[u]=this.words[u];h.length=a}if(0===a);else if(this.length>a)for(this.length-=a,u=0;u<this.length;u++)this.words[u]=this.words[u+a];else this.words[0]=0,this.length=1;var l=0;for(u=this.length-1;u>=0&&(0!==l||u>=n);u--){var d=0|this.words[u];this.words[u]=l<<26-o|d>>>o,l=d&s}return h&&0!==l&&(h.words[h.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,i){return r(0===this.negative),this.iushrn(t,e,i)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){r("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26,n=1<<e;return!(this.length<=i)&&!!(this.words[i]&n)},o.prototype.imaskn=function(t){r("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=i)return this;if(0!==e&&i++,this.length=Math.min(i,this.length),0!==e){var n=67108863^67108863>>>e<<e;this.words[this.length-1]&=n}return this.strip()},o.prototype.maskn=function(t){return this.clone().imaskn(t)},o.prototype.iaddn=function(t){return r("number"==typeof t),r(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},o.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(r("number"==typeof t),r(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},o.prototype.addn=function(t){return this.clone().iaddn(t)},o.prototype.subn=function(t){return this.clone().isubn(t)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(t,e,i){var n,o,a=t.length+i;this._expand(a);var s=0;for(n=0;n<t.length;n++){o=(0|this.words[n+i])+s;var h=(0|t.words[n])*e;s=((o-=67108863&h)>>26)-(h/67108864|0),this.words[n+i]=67108863&o}for(;n<this.length-i;n++)s=(o=(0|this.words[n+i])+s)>>26,this.words[n+i]=67108863&o;if(0===s)return this.strip();for(r(-1===s),s=0,n=0;n<this.length;n++)s=(o=-(0|this.words[n])+s)>>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var i=(this.length,t.length),r=this.clone(),n=t,a=0|n.words[n.length-1];0!==(i=26-this._countBits(a))&&(n=n.ushln(i),r.iushln(i),a=0|n.words[n.length-1]);var s,h=r.length-n.length;if("mod"!==e){(s=new o(null)).length=h+1,s.words=new Array(s.length);for(var u=0;u<s.length;u++)s.words[u]=0}var l=r.clone()._ishlnsubmul(n,1,h);0===l.negative&&(r=l,s&&(s.words[h]=1));for(var d=h-1;d>=0;d--){var f=67108864*(0|r.words[n.length+d])+(0|r.words[n.length+d-1]);for(f=Math.min(f/a|0,67108863),r._ishlnsubmul(n,f,d);0!==r.negative;)f--,r.negative=0,r._ishlnsubmul(n,1,d),r.isZero()||(r.negative^=1);s&&(s.words[d]=f)}return s&&s.strip(),r.strip(),"div"!==e&&0!==i&&r.iushrn(i),{div:s||null,mod:r}},o.prototype.divmod=function(t,e,i){return r(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(a=s.mod.neg(),i&&0!==a.negative&&a.iadd(t)),{div:n,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),i&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var n,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var i=0!==e.div.negative?e.mod.isub(t):e.mod,r=t.ushrn(1),n=t.andln(1),o=i.cmp(r);return o<0||1===n&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){r(t<=67108863);for(var e=(1<<26)%t,i=0,n=this.length-1;n>=0;n--)i=(e*i+(0|this.words[n]))%t;return i},o.prototype.idivn=function(t){r(t<=67108863);for(var e=0,i=this.length-1;i>=0;i--){var n=(0|this.words[i])+67108864*e;this.words[i]=n/t|0,e=n%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){r(0===t.negative),r(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n=new o(1),a=new o(0),s=new o(0),h=new o(1),u=0;e.isEven()&&i.isEven();)e.iushrn(1),i.iushrn(1),++u;for(var l=i.clone(),d=e.clone();!e.isZero();){for(var f=0,c=1;0==(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(n.isOdd()||a.isOdd())&&(n.iadd(l),a.isub(d)),n.iushrn(1),a.iushrn(1);for(var p=0,m=1;0==(i.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(i.iushrn(p);p-- >0;)(s.isOdd()||h.isOdd())&&(s.iadd(l),h.isub(d)),s.iushrn(1),h.iushrn(1);e.cmp(i)>=0?(e.isub(i),n.isub(s),a.isub(h)):(i.isub(e),s.isub(n),h.isub(a))}return{a:s,b:h,gcd:i.iushln(u)}},o.prototype._invmp=function(t){r(0===t.negative),r(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n,a=new o(1),s=new o(0),h=i.clone();e.cmpn(1)>0&&i.cmpn(1)>0;){for(var u=0,l=1;0==(e.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(e.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(h),a.iushrn(1);for(var d=0,f=1;0==(i.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(i.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(h),s.iushrn(1);e.cmp(i)>=0?(e.isub(i),a.isub(s)):(i.isub(e),s.isub(a))}return(n=0===e.cmpn(1)?a:s).cmpn(0)<0&&n.iadd(t),n},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),i=t.clone();e.negative=0,i.negative=0;for(var r=0;e.isEven()&&i.isEven();r++)e.iushrn(1),i.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;i.isEven();)i.iushrn(1);var n=e.cmp(i);if(n<0){var o=e;e=i,i=o}else if(0===n||0===i.cmpn(1))break;e.isub(i)}return i.iushln(r)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){r("number"==typeof t);var e=t%26,i=(t-e)/26,n=1<<e;if(this.length<=i)return this._expand(i+1),this.words[i]|=n,this;for(var o=n,a=i;0!==o&&a<this.length;a++){var s=0|this.words[a];o=(s+=o)>>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,i=t<0;if(0!==this.negative&&!i)return-1;if(0===this.negative&&i)return 1;if(this.strip(),this.length>1)e=1;else{i&&(t=-t),r(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:n<t?-1:1}return 0!==this.negative?0|-e:e},o.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},o.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,i=this.length-1;i>=0;i--){var r=0|this.words[i],n=0|t.words[i];if(r!==n){r<n?e=-1:r>n&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new M(t)},o.prototype.toRed=function(t){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return r(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return r(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var v={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function A(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function M(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else r(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function E(t){M.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,i=t;do{this.split(i,this.tmp),e=(i=(i=this.imulK(i)).iadd(this.tmp)).bitLength()}while(e>this.n);var r=e<this.n?-1:i.ucmp(this.p);return 0===r?(i.words[0]=0,i.length=1):r>0?i.isub(this.p):void 0!==i.strip?i.strip():i._strip(),i},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},n(b,y),b.prototype.split=function(t,e){for(var i=4194303,r=Math.min(t.length,9),n=0;n<r;n++)e.words[n]=t.words[n];if(e.length=r,t.length<=9)return t.words[0]=0,void(t.length=1);var o=t.words[9];for(e.words[e.length++]=o&i,n=10;n<t.length;n++){var a=0|t.words[n];t.words[n-10]=(a&i)<<4|o>>>22,o=a}o>>>=22,t.words[n-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},b.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,i=0;i<t.length;i++){var r=0|t.words[i];e+=977*r,t.words[i]=67108863&e,e=64*r+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},n(_,y),n(w,y),n(A,y),A.prototype.imulK=function(t){for(var e=0,i=0;i<t.length;i++){var r=19*(0|t.words[i])+e,n=67108863&r;r>>>=26,t.words[i]=n,e=r}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(v[t])return v[t];var e;if("k256"===t)e=new b;else if("p224"===t)e=new _;else if("p192"===t)e=new w;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new A}return v[t]=e,e},M.prototype._verify1=function(t){r(0===t.negative,"red works only with positives"),r(t.red,"red works only with red numbers")},M.prototype._verify2=function(t,e){r(0==(t.negative|e.negative),"red works only with positives"),r(t.red&&t.red===e.red,"red works only with red numbers")},M.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},M.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},M.prototype.add=function(t,e){this._verify2(t,e);var i=t.add(e);return i.cmp(this.m)>=0&&i.isub(this.m),i._forceRed(this)},M.prototype.iadd=function(t,e){this._verify2(t,e);var i=t.iadd(e);return i.cmp(this.m)>=0&&i.isub(this.m),i},M.prototype.sub=function(t,e){this._verify2(t,e);var i=t.sub(e);return i.cmpn(0)<0&&i.iadd(this.m),i._forceRed(this)},M.prototype.isub=function(t,e){this._verify2(t,e);var i=t.isub(e);return i.cmpn(0)<0&&i.iadd(this.m),i},M.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},M.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},M.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},M.prototype.isqr=function(t){return this.imul(t,t.clone())},M.prototype.sqr=function(t){return this.mul(t,t)},M.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(r(e%2==1),3===e){var i=this.m.add(new o(1)).iushrn(2);return this.pow(t,i)}for(var n=this.m.subn(1),a=0;!n.isZero()&&0===n.andln(1);)a++,n.iushrn(1);r(!n.isZero());var s=new o(1).toRed(this),h=s.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(h);)l.redIAdd(h);for(var d=this.pow(l,n),f=this.pow(t,n.addn(1).iushrn(1)),c=this.pow(t,n),p=a;0!==c.cmp(s);){for(var m=c,g=0;0!==m.cmp(s);g++)m=m.redSqr();r(g<p);var v=this.pow(d,new o(1).iushln(p-g-1));f=f.redMul(v),d=v.redSqr(),c=c.redMul(d),p=g}return f},M.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},M.prototype.pow=function(t,e){if(e.isZero())return new o(1).toRed(this);if(0===e.cmpn(1))return t.clone();var i=new Array(16);i[0]=new o(1).toRed(this),i[1]=t;for(var r=2;r<i.length;r++)i[r]=this.mul(i[r-1],t);var n=i[0],a=0,s=0,h=e.bitLength()%26;for(0===h&&(h=26),r=e.length-1;r>=0;r--){for(var u=e.words[r],l=h-1;l>=0;l--){var d=u>>l&1;n!==i[0]&&(n=this.sqr(n)),0!==d||0!==a?(a<<=1,a|=d,(4===++s||0===r&&0===l)&&(n=this.mul(n,i[a]),s=0,a=0)):s=0}h=26}return n},M.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},M.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new E(t)},n(E,M),E.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},E.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},E.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var i=t.imul(e),r=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=i.isub(r).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},E.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var i=t.mul(e),r=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=i.isub(r).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},E.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t,this)}).call(this,i(20)(t))},function(t,e,i){var r=i(192),n=i(63);function o(t){this.rand=t||new n.Rand}t.exports=o,o.create=function(t){return new o(t)},o.prototype._randbelow=function(t){var e=t.bitLength(),i=Math.ceil(e/8);do{var n=new r(this.rand.generate(i))}while(n.cmp(t)>=0);return n},o.prototype._randrange=function(t,e){var i=e.sub(t);return t.add(this._randbelow(i))},o.prototype.test=function(t,e,i){var n=t.bitLength(),o=r.mont(t),a=new r(1).toRed(o);e||(e=Math.max(1,n/48|0));for(var s=t.subn(1),h=0;!s.testn(h);h++);for(var u=t.shrn(h),l=s.toRed(o);e>0;e--){var d=this._randrange(new r(2),s);i&&i(d);var f=d.toRed(o).redPow(u);if(0!==f.cmp(a)&&0!==f.cmp(l)){for(var c=1;c<h;c++){if(0===(f=f.redSqr()).cmp(a))return!1;if(0===f.cmp(l))break}if(c===h)return!1}}return!0},o.prototype.getDivisor=function(t,e){var i=t.bitLength(),n=r.mont(t),o=new r(1).toRed(n);e||(e=Math.max(1,i/48|0));for(var a=t.subn(1),s=0;!a.testn(s);s++);for(var h=t.shrn(s),u=a.toRed(n);e>0;e--){var l=this._randrange(new r(2),a),d=t.gcd(l);if(0!==d.cmpn(1))return d;var f=l.toRed(n).redPow(h);if(0!==f.cmp(o)&&0!==f.cmp(u)){for(var c=1;c<s;c++){if(0===(f=f.redSqr()).cmp(o))return f.fromRed().subn(1).gcd(t);if(0===f.cmp(u))break}if(c===s)return(f=f.redSqr()).fromRed().subn(1).gcd(t)}}return!1}},function(t,e,i){"use strict";(function(e,r){var n;t.exports=S,S.ReadableState=E;i(6).EventEmitter;var o=function(t,e){return t.listeners(e).length},a=i(111),s=i(9).Buffer,h=e.Uint8Array||function(){};var u,l=i(199);u=l&&l.debuglog?l.debuglog("stream"):function(){};var d,f,c,p=i(200),m=i(112),g=i(113).getHighWaterMark,v=i(29).codes,y=v.ERR_INVALID_ARG_TYPE,b=v.ERR_STREAM_PUSH_AFTER_EOF,_=v.ERR_METHOD_NOT_IMPLEMENTED,w=v.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;i(3)(S,a);var A=m.errorOrDestroy,M=["error","close","destroy","pause","resume"];function E(t,e,r){n=n||i(30),t=t||{},"boolean"!=typeof r&&(r=e instanceof n),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=g(this,t,"readableHighWaterMark",r),this.buffer=new p,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(d||(d=i(18).StringDecoder),this.decoder=new d(t.encoding),this.encoding=t.encoding)}function S(t){if(n=n||i(30),!(this instanceof S))return new S(t);var e=this instanceof n;this._readableState=new E(t,this,e),this.readable=!0,t&&("function"==typeof t.read&&(this._read=t.read),"function"==typeof t.destroy&&(this._destroy=t.destroy)),a.call(this)}function k(t,e,i,r,n){u("readableAddChunk",e);var o,a=t._readableState;if(null===e)a.reading=!1,function(t,e){if(u("onEofChunk"),e.ended)return;if(e.decoder){var i=e.decoder.end();i&&i.length&&(e.buffer.push(i),e.length+=e.objectMode?1:i.length)}e.ended=!0,e.sync?C(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,P(t)))}(t,a);else if(n||(o=function(t,e){var i;r=e,s.isBuffer(r)||r instanceof h||"string"==typeof e||void 0===e||t.objectMode||(i=new y("chunk",["string","Buffer","Uint8Array"],e));var r;return i}(a,e)),o)A(t,o);else if(a.objectMode||e&&e.length>0)if("string"==typeof e||a.objectMode||Object.getPrototypeOf(e)===s.prototype||(e=function(t){return s.from(t)}(e)),r)a.endEmitted?A(t,new w):T(t,a,e,!0);else if(a.ended)A(t,new b);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!i?(e=a.decoder.write(e),a.objectMode||0!==e.length?T(t,a,e,!1):x(t,a)):T(t,a,e,!1)}else r||(a.reading=!1,x(t,a));return!a.ended&&(a.length<a.highWaterMark||0===a.length)}function T(t,e,i,r){e.flowing&&0===e.length&&!e.sync?(e.awaitDrain=0,t.emit("data",i)):(e.length+=e.objectMode?1:i.length,r?e.buffer.unshift(i):e.buffer.push(i),e.needReadable&&C(t)),x(t,e)}Object.defineProperty(S.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(t){this._readableState&&(this._readableState.destroyed=t)}}),S.prototype.destroy=m.destroy,S.prototype._undestroy=m.undestroy,S.prototype._destroy=function(t,e){e(t)},S.prototype.push=function(t,e){var i,r=this._readableState;return r.objectMode?i=!0:"string"==typeof t&&((e=e||r.defaultEncoding)!==r.encoding&&(t=s.from(t,e),e=""),i=!0),k(this,t,e,!1,i)},S.prototype.unshift=function(t){return k(this,t,null,!0,!1)},S.prototype.isPaused=function(){return!1===this._readableState.flowing},S.prototype.setEncoding=function(t){d||(d=i(18).StringDecoder);var e=new d(t);this._readableState.decoder=e,this._readableState.encoding=this._readableState.decoder.encoding;for(var r=this._readableState.buffer.head,n="";null!==r;)n+=e.write(r.data),r=r.next;return this._readableState.buffer.clear(),""!==n&&this._readableState.buffer.push(n),this._readableState.length=n.length,this};var R=1073741824;function I(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!=t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=function(t){return t>=R?t=R:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function C(t){var e=t._readableState;u("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(u("emitReadable",e.flowing),e.emittedReadable=!0,r.nextTick(P,t))}function P(t){var e=t._readableState;u("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,W(t)}function x(t,e){e.readingMore||(e.readingMore=!0,r.nextTick(D,t,e))}function D(t,e){for(;!e.reading&&!e.ended&&(e.length<e.highWaterMark||e.flowing&&0===e.length);){var i=e.length;if(u("maybeReadMore read 0"),t.read(0),i===e.length)break}e.readingMore=!1}function O(t){var e=t._readableState;e.readableListening=t.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function B(t){u("readable nexttick read 0"),t.read(0)}function L(t,e){u("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),W(t),e.flowing&&!e.reading&&t.read(0)}function W(t){var e=t._readableState;for(u("flow",e.flowing);e.flowing&&null!==t.read(););}function N(t,e){return 0===e.length?null:(e.objectMode?i=e.buffer.shift():!t||t>=e.length?(i=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):i=e.buffer.consume(t,e.decoder),i);var i}function F(t){var e=t._readableState;u("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,r.nextTick(U,e,t))}function U(t,e){if(u("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var i=e._writableState;(!i||i.autoDestroy&&i.finished)&&e.destroy()}}function j(t,e){for(var i=0,r=t.length;i<r;i++)if(t[i]===e)return i;return-1}S.prototype.read=function(t){u("read",t),t=parseInt(t,10);var e=this._readableState,i=t;if(0!==t&&(e.emittedReadable=!1),0===t&&e.needReadable&&((0!==e.highWaterMark?e.length>=e.highWaterMark:e.length>0)||e.ended))return u("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?F(this):C(this),null;if(0===(t=I(t,e))&&e.ended)return 0===e.length&&F(this),null;var r,n=e.needReadable;return u("need readable",n),(0===e.length||e.length-t<e.highWaterMark)&&u("length less than watermark",n=!0),e.ended||e.reading?u("reading or ended",n=!1):n&&(u("do read"),e.reading=!0,e.sync=!0,0===e.length&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(t=I(i,e))),null===(r=t>0?N(t,e):null)?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),i!==t&&e.ended&&F(this)),null!==r&&this.emit("data",r),r},S.prototype._read=function(t){A(this,new _("_read()"))},S.prototype.pipe=function(t,e){var i=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=t;break;case 1:n.pipes=[n.pipes,t];break;default:n.pipes.push(t)}n.pipesCount+=1,u("pipe count=%d opts=%j",n.pipesCount,e);var a=(!e||!1!==e.end)&&t!==r.stdout&&t!==r.stderr?h:g;function s(e,r){u("onunpipe"),e===i&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,u("cleanup"),t.removeListener("close",p),t.removeListener("finish",m),t.removeListener("drain",l),t.removeListener("error",c),t.removeListener("unpipe",s),i.removeListener("end",h),i.removeListener("end",g),i.removeListener("data",f),d=!0,!n.awaitDrain||t._writableState&&!t._writableState.needDrain||l())}function h(){u("onend"),t.end()}n.endEmitted?r.nextTick(a):i.once("end",a),t.on("unpipe",s);var l=function(t){return function(){var e=t._readableState;u("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&o(t,"data")&&(e.flowing=!0,W(t))}}(i);t.on("drain",l);var d=!1;function f(e){u("ondata");var r=t.write(e);u("dest.write",r),!1===r&&((1===n.pipesCount&&n.pipes===t||n.pipesCount>1&&-1!==j(n.pipes,t))&&!d&&(u("false write response, pause",n.awaitDrain),n.awaitDrain++),i.pause())}function c(e){u("onerror",e),g(),t.removeListener("error",c),0===o(t,"error")&&A(t,e)}function p(){t.removeListener("finish",m),g()}function m(){u("onfinish"),t.removeListener("close",p),g()}function g(){u("unpipe"),i.unpipe(t)}return i.on("data",f),function(t,e,i){if("function"==typeof t.prependListener)return t.prependListener(e,i);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(i):t._events[e]=[i,t._events[e]]:t.on(e,i)}(t,"error",c),t.once("close",p),t.once("finish",m),t.emit("pipe",i),n.flowing||(u("pipe resume"),i.resume()),t},S.prototype.unpipe=function(t){var e=this._readableState,i={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,i)),this;if(!t){var r=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o<n;o++)r[o].emit("unpipe",this,{hasUnpiped:!1});return this}var a=j(e.pipes,t);return-1===a||(e.pipes.splice(a,1),e.pipesCount-=1,1===e.pipesCount&&(e.pipes=e.pipes[0]),t.emit("unpipe",this,i)),this},S.prototype.on=function(t,e){var i=a.prototype.on.call(this,t,e),n=this._readableState;return"data"===t?(n.readableListening=this.listenerCount("readable")>0,!1!==n.flowing&&this.resume()):"readable"===t&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,u("on readable",n.length,n.reading),n.length?C(this):n.reading||r.nextTick(B,this))),i},S.prototype.addListener=S.prototype.on,S.prototype.removeListener=function(t,e){var i=a.prototype.removeListener.call(this,t,e);return"readable"===t&&r.nextTick(O,this),i},S.prototype.removeAllListeners=function(t){var e=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||r.nextTick(O,this),e},S.prototype.resume=function(){var t=this._readableState;return t.flowing||(u("resume"),t.flowing=!t.readableListening,function(t,e){e.resumeScheduled||(e.resumeScheduled=!0,r.nextTick(L,t,e))}(this,t)),t.paused=!1,this},S.prototype.pause=function(){return u("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(u("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},S.prototype.wrap=function(t){var e=this,i=this._readableState,r=!1;for(var n in t.on("end",(function(){if(u("wrapped end"),i.decoder&&!i.ended){var t=i.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(n){(u("wrapped data"),i.decoder&&(n=i.decoder.write(n)),i.objectMode&&null==n)||(i.objectMode||n&&n.length)&&(e.push(n)||(r=!0,t.pause()))})),t)void 0===this[n]&&"function"==typeof t[n]&&(this[n]=function(e){return function(){return t[e].apply(t,arguments)}}(n));for(var o=0;o<M.length;o++)t.on(M[o],this.emit.bind(this,M[o]));return this._read=function(e){u("wrapped _read",e),r&&(r=!1,t.resume())},this},"function"==typeof Symbol&&(S.prototype[Symbol.asyncIterator]=function(){return void 0===f&&(f=i(202)),f(this)}),Object.defineProperty(S.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(S.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(S.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(t){this._readableState&&(this._readableState.flowing=t)}}),S._fromList=N,Object.defineProperty(S.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}}),"function"==typeof Symbol&&(S.from=function(t,e){return void 0===c&&(c=i(203)),c(S,t,e)})}).call(this,i(10),i(8))},function(t,e,i){t.exports=i(6).EventEmitter},function(t,e,i){"use strict";(function(e){function i(t,e){n(t,e),r(t)}function r(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function n(t,e){t.emit("error",e)}t.exports={destroy:function(t,o){var a=this,s=this._readableState&&this._readableState.destroyed,h=this._writableState&&this._writableState.destroyed;return s||h?(o?o(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,e.nextTick(n,this,t)):e.nextTick(n,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,(function(t){!o&&t?a._writableState?a._writableState.errorEmitted?e.nextTick(r,a):(a._writableState.errorEmitted=!0,e.nextTick(i,a,t)):e.nextTick(i,a,t):o?(e.nextTick(r,a),o(t)):e.nextTick(r,a)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(t,e){var i=t._readableState,r=t._writableState;i&&i.autoDestroy||r&&r.autoDestroy?t.destroy(e):t.emit("error",e)}}}).call(this,i(8))},function(t,e,i){"use strict";var r=i(29).codes.ERR_INVALID_OPT_VALUE;t.exports={getHighWaterMark:function(t,e,i,n){var o=function(t,e,i){return null!=t.highWaterMark?t.highWaterMark:e?t[i]:null}(e,n,i);if(null!=o){if(!isFinite(o)||Math.floor(o)!==o||o<0)throw new r(n?i:"highWaterMark",o);return Math.floor(o)}return t.objectMode?16:16384}}},function(t,e,i){"use strict";(function(e,r){function n(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e,i){var r=t.entry;t.entry=null;for(;r;){var n=r.callback;e.pendingcb--,n(i),r=r.next}e.corkedRequestsFree.next=t}(e,t)}}var o;t.exports=S,S.WritableState=E;var a={deprecate:i(53)},s=i(111),h=i(9).Buffer,u=e.Uint8Array||function(){};var l,d=i(112),f=i(113).getHighWaterMark,c=i(29).codes,p=c.ERR_INVALID_ARG_TYPE,m=c.ERR_METHOD_NOT_IMPLEMENTED,g=c.ERR_MULTIPLE_CALLBACK,v=c.ERR_STREAM_CANNOT_PIPE,y=c.ERR_STREAM_DESTROYED,b=c.ERR_STREAM_NULL_VALUES,_=c.ERR_STREAM_WRITE_AFTER_END,w=c.ERR_UNKNOWN_ENCODING,A=d.errorOrDestroy;function M(){}function E(t,e,a){o=o||i(30),t=t||{},"boolean"!=typeof a&&(a=e instanceof o),this.objectMode=!!t.objectMode,a&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=f(this,t,"writableHighWaterMark",a),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var s=!1===t.decodeStrings;this.decodeStrings=!s,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,e){var i=t._writableState,n=i.sync,o=i.writecb;if("function"!=typeof o)throw new g;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(i),e)!function(t,e,i,n,o){--e.pendingcb,i?(r.nextTick(o,n),r.nextTick(P,t,e),t._writableState.errorEmitted=!0,A(t,n)):(o(n),t._writableState.errorEmitted=!0,A(t,n),P(t,e))}(t,i,n,e,o);else{var a=I(i)||t.destroyed;a||i.corked||i.bufferProcessing||!i.bufferedRequest||R(t,i),n?r.nextTick(T,t,i,a,o):T(t,i,a,o)}}(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function S(t){var e=this instanceof(o=o||i(30));if(!e&&!l.call(S,this))return new S(t);this._writableState=new E(t,this,e),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.final&&(this._final=t.final)),s.call(this)}function k(t,e,i,r,n,o,a){e.writelen=r,e.writecb=a,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new y("write")):i?t._writev(n,e.onwrite):t._write(n,o,e.onwrite),e.sync=!1}function T(t,e,i,r){i||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}(t,e),e.pendingcb--,r(),P(t,e)}function R(t,e){e.bufferProcessing=!0;var i=e.bufferedRequest;if(t._writev&&i&&i.next){var r=e.bufferedRequestCount,o=new Array(r),a=e.corkedRequestsFree;a.entry=i;for(var s=0,h=!0;i;)o[s]=i,i.isBuf||(h=!1),i=i.next,s+=1;o.allBuffers=h,k(t,e,!0,e.length,o,"",a.finish),e.pendingcb++,e.lastBufferedRequest=null,a.next?(e.corkedRequestsFree=a.next,a.next=null):e.corkedRequestsFree=new n(e),e.bufferedRequestCount=0}else{for(;i;){var u=i.chunk,l=i.encoding,d=i.callback;if(k(t,e,!1,e.objectMode?1:u.length,u,l,d),i=i.next,e.bufferedRequestCount--,e.writing)break}null===i&&(e.lastBufferedRequest=null)}e.bufferedRequest=i,e.bufferProcessing=!1}function I(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function C(t,e){t._final((function(i){e.pendingcb--,i&&A(t,i),e.prefinished=!0,t.emit("prefinish"),P(t,e)}))}function P(t,e){var i=I(e);if(i&&(function(t,e){e.prefinished||e.finalCalled||("function"!=typeof t._final||e.destroyed?(e.prefinished=!0,t.emit("prefinish")):(e.pendingcb++,e.finalCalled=!0,r.nextTick(C,t,e)))}(t,e),0===e.pendingcb&&(e.finished=!0,t.emit("finish"),e.autoDestroy))){var n=t._readableState;(!n||n.autoDestroy&&n.endEmitted)&&t.destroy()}return i}i(3)(S,s),E.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(E.prototype,"buffer",{get:a.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(l=Function.prototype[Symbol.hasInstance],Object.defineProperty(S,Symbol.hasInstance,{value:function(t){return!!l.call(this,t)||this===S&&(t&&t._writableState instanceof E)}})):l=function(t){return t instanceof this},S.prototype.pipe=function(){A(this,new v)},S.prototype.write=function(t,e,i){var n,o=this._writableState,a=!1,s=!o.objectMode&&(n=t,h.isBuffer(n)||n instanceof u);return s&&!h.isBuffer(t)&&(t=function(t){return h.from(t)}(t)),"function"==typeof e&&(i=e,e=null),s?e="buffer":e||(e=o.defaultEncoding),"function"!=typeof i&&(i=M),o.ending?function(t,e){var i=new _;A(t,i),r.nextTick(e,i)}(this,i):(s||function(t,e,i,n){var o;return null===i?o=new b:"string"==typeof i||e.objectMode||(o=new p("chunk",["string","Buffer"],i)),!o||(A(t,o),r.nextTick(n,o),!1)}(this,o,t,i))&&(o.pendingcb++,a=function(t,e,i,r,n,o){if(!i){var a=function(t,e,i){t.objectMode||!1===t.decodeStrings||"string"!=typeof e||(e=h.from(e,i));return e}(e,r,n);r!==a&&(i=!0,n="buffer",r=a)}var s=e.objectMode?1:r.length;e.length+=s;var u=e.length<e.highWaterMark;u||(e.needDrain=!0);if(e.writing||e.corked){var l=e.lastBufferedRequest;e.lastBufferedRequest={chunk:r,encoding:n,isBuf:i,callback:o,next:null},l?l.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else k(t,e,!1,s,r,n,o);return u}(this,o,s,t,e,i)),a},S.prototype.cork=function(){this._writableState.corked++},S.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,t.writing||t.corked||t.bufferProcessing||!t.bufferedRequest||R(this,t))},S.prototype.setDefaultEncoding=function(t){if("string"==typeof t&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new w(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(S.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(S.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),S.prototype._write=function(t,e,i){i(new m("_write()"))},S.prototype._writev=null,S.prototype.end=function(t,e,i){var n=this._writableState;return"function"==typeof t?(i=t,t=null,e=null):"function"==typeof e&&(i=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||function(t,e,i){e.ending=!0,P(t,e),i&&(e.finished?r.nextTick(i):t.once("finish",i));e.ended=!0,t.writable=!1}(this,n,i),this},Object.defineProperty(S.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(S.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),S.prototype.destroy=d.destroy,S.prototype._undestroy=d.undestroy,S.prototype._destroy=function(t,e){e(t)}}).call(this,i(10),i(8))},function(t,e,i){"use strict";t.exports=l;var r=i(29).codes,n=r.ERR_METHOD_NOT_IMPLEMENTED,o=r.ERR_MULTIPLE_CALLBACK,a=r.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=r.ERR_TRANSFORM_WITH_LENGTH_0,h=i(30);function u(t,e){var i=this._transformState;i.transforming=!1;var r=i.writecb;if(null===r)return this.emit("error",new o);i.writechunk=null,i.writecb=null,null!=e&&this.push(e),r(t);var n=this._readableState;n.reading=!1,(n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}function l(t){if(!(this instanceof l))return new l(t);h.call(this,t),this._transformState={afterTransform:u.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,t&&("function"==typeof t.transform&&(this._transform=t.transform),"function"==typeof t.flush&&(this._flush=t.flush)),this.on("prefinish",d)}function d(){var t=this;"function"!=typeof this._flush||this._readableState.destroyed?f(this,null,null):this._flush((function(e,i){f(t,e,i)}))}function f(t,e,i){if(e)return t.emit("error",e);if(null!=i&&t.push(i),t._writableState.length)throw new s;if(t._transformState.transforming)throw new a;return t.push(null)}i(3)(l,h),l.prototype.push=function(t,e){return this._transformState.needTransform=!1,h.prototype.push.call(this,t,e)},l.prototype._transform=function(t,e,i){i(new n("_transform()"))},l.prototype._write=function(t,e,i){var r=this._transformState;if(r.writecb=i,r.writechunk=t,r.writeencoding=e,!r.transforming){var n=this._readableState;(r.needTransform||n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}},l.prototype._read=function(t){var e=this._transformState;null===e.writechunk||e.transforming?e.needTransform=!0:(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform))},l.prototype._destroy=function(t,e){h.prototype._destroy.call(this,t,(function(t){e(t)}))}},function(t,e,i){"use strict";var r=e;function n(t){return 1===t.length?"0"+t:t}function o(t){for(var e="",i=0;i<t.length;i++)e+=n(t[i].toString(16));return e}r.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var i=[];if("string"!=typeof t){for(var r=0;r<t.length;r++)i[r]=0|t[r];return i}if("hex"===e){(t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t);for(r=0;r<t.length;r+=2)i.push(parseInt(t[r]+t[r+1],16))}else for(r=0;r<t.length;r++){var n=t.charCodeAt(r),o=n>>8,a=255&n;o?i.push(o,a):i.push(a)}return i},r.zero2=n,r.toHex=o,r.encode=function(t,e){return"hex"===e?o(t):t}},function(t,e,i){"use strict";var r=e;r.base=i(45),r.short=i(210),r.mont=i(211),r.edwards=i(212)},function(t,e,i){"use strict";var r=i(15).rotr32;function n(t,e,i){return t&e^~t&i}function o(t,e,i){return t&e^t&i^e&i}function a(t,e,i){return t^e^i}e.ft_1=function(t,e,i,r){return 0===t?n(e,i,r):1===t||3===t?a(e,i,r):2===t?o(e,i,r):void 0},e.ch32=n,e.maj32=o,e.p32=a,e.s0_256=function(t){return r(t,2)^r(t,13)^r(t,22)},e.s1_256=function(t){return r(t,6)^r(t,11)^r(t,25)},e.g0_256=function(t){return r(t,7)^r(t,18)^t>>>3},e.g1_256=function(t){return r(t,17)^r(t,19)^t>>>10}},function(t,e,i){"use strict";var r=i(15),n=i(38),o=i(118),a=i(13),s=r.sum32,h=r.sum32_4,u=r.sum32_5,l=o.ch32,d=o.maj32,f=o.s0_256,c=o.s1_256,p=o.g0_256,m=o.g1_256,g=n.BlockHash,v=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function y(){if(!(this instanceof y))return new y;g.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=v,this.W=new Array(64)}r.inherits(y,g),t.exports=y,y.blockSize=512,y.outSize=256,y.hmacStrength=192,y.padLength=64,y.prototype._update=function(t,e){for(var i=this.W,r=0;r<16;r++)i[r]=t[e+r];for(;r<i.length;r++)i[r]=h(m(i[r-2]),i[r-7],p(i[r-15]),i[r-16]);var n=this.h[0],o=this.h[1],g=this.h[2],v=this.h[3],y=this.h[4],b=this.h[5],_=this.h[6],w=this.h[7];for(a(this.k.length===i.length),r=0;r<i.length;r++){var A=u(w,c(y),l(y,b,_),this.k[r],i[r]),M=s(f(n),d(n,o,g));w=_,_=b,b=y,y=s(v,A),v=g,g=o,o=n,n=s(A,M)}this.h[0]=s(this.h[0],n),this.h[1]=s(this.h[1],o),this.h[2]=s(this.h[2],g),this.h[3]=s(this.h[3],v),this.h[4]=s(this.h[4],y),this.h[5]=s(this.h[5],b),this.h[6]=s(this.h[6],_),this.h[7]=s(this.h[7],w)},y.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},function(t,e,i){"use strict";var r=i(15),n=i(38),o=i(13),a=r.rotr64_hi,s=r.rotr64_lo,h=r.shr64_hi,u=r.shr64_lo,l=r.sum64,d=r.sum64_hi,f=r.sum64_lo,c=r.sum64_4_hi,p=r.sum64_4_lo,m=r.sum64_5_hi,g=r.sum64_5_lo,v=n.BlockHash,y=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function b(){if(!(this instanceof b))return new b;v.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=y,this.W=new Array(160)}function _(t,e,i,r,n){var o=t&i^~t&n;return o<0&&(o+=4294967296),o}function w(t,e,i,r,n,o){var a=e&r^~e&o;return a<0&&(a+=4294967296),a}function A(t,e,i,r,n){var o=t&i^t&n^i&n;return o<0&&(o+=4294967296),o}function M(t,e,i,r,n,o){var a=e&r^e&o^r&o;return a<0&&(a+=4294967296),a}function E(t,e){var i=a(t,e,28)^a(e,t,2)^a(e,t,7);return i<0&&(i+=4294967296),i}function S(t,e){var i=s(t,e,28)^s(e,t,2)^s(e,t,7);return i<0&&(i+=4294967296),i}function k(t,e){var i=a(t,e,14)^a(t,e,18)^a(e,t,9);return i<0&&(i+=4294967296),i}function T(t,e){var i=s(t,e,14)^s(t,e,18)^s(e,t,9);return i<0&&(i+=4294967296),i}function R(t,e){var i=a(t,e,1)^a(t,e,8)^h(t,e,7);return i<0&&(i+=4294967296),i}function I(t,e){var i=s(t,e,1)^s(t,e,8)^u(t,e,7);return i<0&&(i+=4294967296),i}function C(t,e){var i=a(t,e,19)^a(e,t,29)^h(t,e,6);return i<0&&(i+=4294967296),i}function P(t,e){var i=s(t,e,19)^s(e,t,29)^u(t,e,6);return i<0&&(i+=4294967296),i}r.inherits(b,v),t.exports=b,b.blockSize=1024,b.outSize=512,b.hmacStrength=192,b.padLength=128,b.prototype._prepareBlock=function(t,e){for(var i=this.W,r=0;r<32;r++)i[r]=t[e+r];for(;r<i.length;r+=2){var n=C(i[r-4],i[r-3]),o=P(i[r-4],i[r-3]),a=i[r-14],s=i[r-13],h=R(i[r-30],i[r-29]),u=I(i[r-30],i[r-29]),l=i[r-32],d=i[r-31];i[r]=c(n,o,a,s,h,u,l,d),i[r+1]=p(n,o,a,s,h,u,l,d)}},b.prototype._update=function(t,e){this._prepareBlock(t,e);var i=this.W,r=this.h[0],n=this.h[1],a=this.h[2],s=this.h[3],h=this.h[4],u=this.h[5],c=this.h[6],p=this.h[7],v=this.h[8],y=this.h[9],b=this.h[10],R=this.h[11],I=this.h[12],C=this.h[13],P=this.h[14],x=this.h[15];o(this.k.length===i.length);for(var D=0;D<i.length;D+=2){var O=P,B=x,L=k(v,y),W=T(v,y),N=_(v,y,b,R,I),F=w(v,y,b,R,I,C),U=this.k[D],j=this.k[D+1],V=i[D],H=i[D+1],z=m(O,B,L,W,N,F,U,j,V,H),G=g(O,B,L,W,N,F,U,j,V,H);O=E(r,n),B=S(r,n),L=A(r,n,a,s,h),W=M(r,n,a,s,h,u);var q=d(O,B,L,W),X=f(O,B,L,W);P=I,x=C,I=b,C=R,b=v,R=y,v=d(c,p,z,G),y=f(p,p,z,G),c=h,p=u,h=a,u=s,a=r,s=n,r=d(z,G,q,X),n=f(z,G,q,X)}l(this.h,0,r,n),l(this.h,2,a,s),l(this.h,4,h,u),l(this.h,6,c,p),l(this.h,8,v,y),l(this.h,10,b,R),l(this.h,12,I,C),l(this.h,14,P,x)},b.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},function(t,e,i){"use strict";var r=e;r.bignum=i(122),r.define=i(229).define,r.base=i(232),r.constants=i(233),r.decoders=i(125),r.encoders=i(123)},function(t,e,i){(function(t){!function(t,e){"use strict";function r(t,e){if(!t)throw new Error(e||"Assertion failed")}function n(t,e){t.super_=e;var i=function(){};i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t}function o(t,e,i){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(i=e,e=10),this._init(t||0,e||10,i||"be"))}var a;"object"==typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:i(228).Buffer}catch(t){}function s(t,e){var i=t.charCodeAt(e);return i>=65&&i<=70?i-55:i>=97&&i<=102?i-87:i-48&15}function h(t,e,i){var r=s(t,i);return i-1>=e&&(r|=s(t,i-1)<<4),r}function u(t,e,i,r){for(var n=0,o=Math.min(t.length,i),a=e;a<o;a++){var s=t.charCodeAt(a)-48;n*=r,n+=s>=49?s-49+10:s>=17?s-17+10:s}return n}o.isBN=function(t){return t instanceof o||null!==t&&"object"==typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,i){if("number"==typeof t)return this._initNumber(t,e,i);if("object"==typeof t)return this._initArray(t,e,i);"hex"===e&&(e=16),r(e===(0|e)&&e>=2&&e<=36);var n=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(n++,this.negative=1),n<t.length&&(16===e?this._parseHex(t,n,i):(this._parseBase(t,e,n),"le"===i&&this._initArray(this.toArray(),e,i)))},o.prototype._initNumber=function(t,e,i){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(r(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===i&&this._initArray(this.toArray(),e,i)},o.prototype._initArray=function(t,e,i){if(r("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var o,a,s=0;if("be"===i)for(n=t.length-1,o=0;n>=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===i)for(n=0,o=0;n<t.length;n+=3)a=t[n]|t[n+1]<<8|t[n+2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e,i){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var n,o=0,a=0;if("be"===i)for(r=t.length-1;r>=e;r-=2)n=h(t,e,r)<<o,this.words[a]|=67108863&n,o>=18?(o-=18,a+=1,this.words[a]|=n>>>26):o+=8;else for(r=(t.length-e)%2==0?e+1:e;r<t.length;r+=2)n=h(t,e,r)<<o,this.words[a]|=67108863&n,o>=18?(o-=18,a+=1,this.words[a]|=n>>>26):o+=8;this.strip()},o.prototype._parseBase=function(t,e,i){this.words=[0],this.length=1;for(var r=0,n=1;n<=67108863;n*=e)r++;r--,n=n/e|0;for(var o=t.length-i,a=o%r,s=Math.min(o,o-a)+i,h=0,l=i;l<s;l+=r)h=u(t,l,l+r,e),this.imuln(n),this.words[0]+h<67108864?this.words[0]+=h:this._iaddn(h);if(0!==a){var d=1;for(h=u(t,l,t.length,e),l=0;l<a;l++)d*=e;this.imuln(d),this.words[0]+h<67108864?this.words[0]+=h:this._iaddn(h)}this.strip()},o.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},o.prototype.clone=function(){var t=new o(null);return this.copy(t),t},o.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},o.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var l=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],d=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t,e,i){i.negative=e.negative^t.negative;var r=t.length+e.length|0;i.length=r,r=r-1|0;var n=0|t.words[0],o=0|e.words[0],a=n*o,s=67108863&a,h=a/67108864|0;i.words[0]=s;for(var u=1;u<r;u++){for(var l=h>>>26,d=67108863&h,f=Math.min(u,e.length-1),c=Math.max(0,u-t.length+1);c<=f;c++){var p=u-c|0;l+=(a=(n=0|t.words[p])*(o=0|e.words[c])+d)/67108864|0,d=67108863&a}i.words[u]=0|d,h=0|l}return 0!==h?i.words[u]=0|h:i.length--,i.strip()}o.prototype.toString=function(t,e){var i;if(e=0|e||1,16===(t=t||10)||"hex"===t){i="";for(var n=0,o=0,a=0;a<this.length;a++){var s=this.words[a],h=(16777215&(s<<n|o)).toString(16);i=0!==(o=s>>>24-n&16777215)||a!==this.length-1?l[6-h.length]+h+i:h+i,(n+=2)>=26&&(n-=26,a--)}for(0!==o&&(i=o.toString(16)+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}if(t===(0|t)&&t>=2&&t<=36){var u=d[t],c=f[t];i="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(c).toString(t);i=(p=p.idivn(c)).isZero()?m+i:l[u-m.length]+m+i}for(this.isZero()&&(i="0"+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return r(void 0!==a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,i){var n=this.byteLength(),o=i||Math.max(1,n);r(n<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0"),this.strip();var a,s,h="le"===e,u=new t(o),l=this.clone();if(h){for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[s]=a;for(;s<o;s++)u[s]=0}else{for(s=0;s<o-n;s++)u[s]=0;for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[o-s-1]=a}return u},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,i=0;return e>=4096&&(i+=13,e>>>=13),e>=64&&(i+=7,e>>>=7),e>=8&&(i+=4,e>>>=4),e>=2&&(i+=2,e>>>=2),i+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,i=0;return 0==(8191&e)&&(i+=13,e>>>=13),0==(127&e)&&(i+=7,e>>>=7),0==(15&e)&&(i+=4,e>>>=4),0==(3&e)&&(i+=2,e>>>=2),0==(1&e)&&i++,i},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var i=this._zeroBits(this.words[e]);if(t+=i,26!==i)break}return t},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},o.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},o.prototype.ior=function(t){return r(0==(this.negative|t.negative)),this.iuor(t)},o.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var i=0;i<e.length;i++)this.words[i]=this.words[i]&t.words[i];return this.length=e.length,this.strip()},o.prototype.iand=function(t){return r(0==(this.negative|t.negative)),this.iuand(t)},o.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,i;this.length>t.length?(e=this,i=t):(e=t,i=this);for(var r=0;r<i.length;r++)this.words[r]=e.words[r]^i.words[r];if(this!==e)for(;r<e.length;r++)this.words[r]=e.words[r];return this.length=e.length,this.strip()},o.prototype.ixor=function(t){return r(0==(this.negative|t.negative)),this.iuxor(t)},o.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){r("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),i=t%26;this._expand(e),i>0&&e--;for(var n=0;n<e;n++)this.words[n]=67108863&~this.words[n];return i>0&&(this.words[n]=~this.words[n]&67108863>>26-i),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){r("number"==typeof t&&t>=0);var i=t/26|0,n=t%26;return this._expand(i+1),this.words[i]=e?this.words[i]|1<<n:this.words[i]&~(1<<n),this.strip()},o.prototype.iadd=function(t){var e,i,r;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(i=this,r=t):(i=t,r=this);for(var n=0,o=0;o<r.length;o++)e=(0|i.words[o])+(0|r.words[o])+n,this.words[o]=67108863&e,n=e>>>26;for(;0!==n&&o<i.length;o++)e=(0|i.words[o])+n,this.words[o]=67108863&e,n=e>>>26;if(this.length=i.length,0!==n)this.words[this.length]=n,this.length++;else if(i!==this)for(;o<i.length;o++)this.words[o]=i.words[o];return this},o.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var i,r,n=this.cmp(t);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(i=this,r=t):(i=t,r=this);for(var o=0,a=0;a<r.length;a++)o=(e=(0|i.words[a])-(0|r.words[a])+o)>>26,this.words[a]=67108863&e;for(;0!==o&&a<i.length;a++)o=(e=(0|i.words[a])+o)>>26,this.words[a]=67108863&e;if(0===o&&a<i.length&&i!==this)for(;a<i.length;a++)this.words[a]=i.words[a];return this.length=Math.max(this.length,a),i!==this&&(this.negative=1),this.strip()},o.prototype.sub=function(t){return this.clone().isub(t)};var p=function(t,e,i){var r,n,o,a=t.words,s=e.words,h=i.words,u=0,l=0|a[0],d=8191&l,f=l>>>13,c=0|a[1],p=8191&c,m=c>>>13,g=0|a[2],v=8191&g,y=g>>>13,b=0|a[3],_=8191&b,w=b>>>13,A=0|a[4],M=8191&A,E=A>>>13,S=0|a[5],k=8191&S,T=S>>>13,R=0|a[6],I=8191&R,C=R>>>13,P=0|a[7],x=8191&P,D=P>>>13,O=0|a[8],B=8191&O,L=O>>>13,W=0|a[9],N=8191&W,F=W>>>13,U=0|s[0],j=8191&U,V=U>>>13,H=0|s[1],z=8191&H,G=H>>>13,q=0|s[2],X=8191&q,Z=q>>>13,K=0|s[3],Q=8191&K,Y=K>>>13,J=0|s[4],$=8191&J,tt=J>>>13,et=0|s[5],it=8191&et,rt=et>>>13,nt=0|s[6],ot=8191&nt,at=nt>>>13,st=0|s[7],ht=8191&st,ut=st>>>13,lt=0|s[8],dt=8191<,ft=lt>>>13,ct=0|s[9],pt=8191&ct,mt=ct>>>13;i.negative=t.negative^e.negative,i.length=19;var gt=(u+(r=Math.imul(d,j))|0)+((8191&(n=(n=Math.imul(d,V))+Math.imul(f,j)|0))<<13)|0;u=((o=Math.imul(f,V))+(n>>>13)|0)+(gt>>>26)|0,gt&=67108863,r=Math.imul(p,j),n=(n=Math.imul(p,V))+Math.imul(m,j)|0,o=Math.imul(m,V);var vt=(u+(r=r+Math.imul(d,z)|0)|0)+((8191&(n=(n=n+Math.imul(d,G)|0)+Math.imul(f,z)|0))<<13)|0;u=((o=o+Math.imul(f,G)|0)+(n>>>13)|0)+(vt>>>26)|0,vt&=67108863,r=Math.imul(v,j),n=(n=Math.imul(v,V))+Math.imul(y,j)|0,o=Math.imul(y,V),r=r+Math.imul(p,z)|0,n=(n=n+Math.imul(p,G)|0)+Math.imul(m,z)|0,o=o+Math.imul(m,G)|0;var yt=(u+(r=r+Math.imul(d,X)|0)|0)+((8191&(n=(n=n+Math.imul(d,Z)|0)+Math.imul(f,X)|0))<<13)|0;u=((o=o+Math.imul(f,Z)|0)+(n>>>13)|0)+(yt>>>26)|0,yt&=67108863,r=Math.imul(_,j),n=(n=Math.imul(_,V))+Math.imul(w,j)|0,o=Math.imul(w,V),r=r+Math.imul(v,z)|0,n=(n=n+Math.imul(v,G)|0)+Math.imul(y,z)|0,o=o+Math.imul(y,G)|0,r=r+Math.imul(p,X)|0,n=(n=n+Math.imul(p,Z)|0)+Math.imul(m,X)|0,o=o+Math.imul(m,Z)|0;var bt=(u+(r=r+Math.imul(d,Q)|0)|0)+((8191&(n=(n=n+Math.imul(d,Y)|0)+Math.imul(f,Q)|0))<<13)|0;u=((o=o+Math.imul(f,Y)|0)+(n>>>13)|0)+(bt>>>26)|0,bt&=67108863,r=Math.imul(M,j),n=(n=Math.imul(M,V))+Math.imul(E,j)|0,o=Math.imul(E,V),r=r+Math.imul(_,z)|0,n=(n=n+Math.imul(_,G)|0)+Math.imul(w,z)|0,o=o+Math.imul(w,G)|0,r=r+Math.imul(v,X)|0,n=(n=n+Math.imul(v,Z)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,Z)|0,r=r+Math.imul(p,Q)|0,n=(n=n+Math.imul(p,Y)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,Y)|0;var _t=(u+(r=r+Math.imul(d,$)|0)|0)+((8191&(n=(n=n+Math.imul(d,tt)|0)+Math.imul(f,$)|0))<<13)|0;u=((o=o+Math.imul(f,tt)|0)+(n>>>13)|0)+(_t>>>26)|0,_t&=67108863,r=Math.imul(k,j),n=(n=Math.imul(k,V))+Math.imul(T,j)|0,o=Math.imul(T,V),r=r+Math.imul(M,z)|0,n=(n=n+Math.imul(M,G)|0)+Math.imul(E,z)|0,o=o+Math.imul(E,G)|0,r=r+Math.imul(_,X)|0,n=(n=n+Math.imul(_,Z)|0)+Math.imul(w,X)|0,o=o+Math.imul(w,Z)|0,r=r+Math.imul(v,Q)|0,n=(n=n+Math.imul(v,Y)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,Y)|0,r=r+Math.imul(p,$)|0,n=(n=n+Math.imul(p,tt)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,tt)|0;var wt=(u+(r=r+Math.imul(d,it)|0)|0)+((8191&(n=(n=n+Math.imul(d,rt)|0)+Math.imul(f,it)|0))<<13)|0;u=((o=o+Math.imul(f,rt)|0)+(n>>>13)|0)+(wt>>>26)|0,wt&=67108863,r=Math.imul(I,j),n=(n=Math.imul(I,V))+Math.imul(C,j)|0,o=Math.imul(C,V),r=r+Math.imul(k,z)|0,n=(n=n+Math.imul(k,G)|0)+Math.imul(T,z)|0,o=o+Math.imul(T,G)|0,r=r+Math.imul(M,X)|0,n=(n=n+Math.imul(M,Z)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,Z)|0,r=r+Math.imul(_,Q)|0,n=(n=n+Math.imul(_,Y)|0)+Math.imul(w,Q)|0,o=o+Math.imul(w,Y)|0,r=r+Math.imul(v,$)|0,n=(n=n+Math.imul(v,tt)|0)+Math.imul(y,$)|0,o=o+Math.imul(y,tt)|0,r=r+Math.imul(p,it)|0,n=(n=n+Math.imul(p,rt)|0)+Math.imul(m,it)|0,o=o+Math.imul(m,rt)|0;var At=(u+(r=r+Math.imul(d,ot)|0)|0)+((8191&(n=(n=n+Math.imul(d,at)|0)+Math.imul(f,ot)|0))<<13)|0;u=((o=o+Math.imul(f,at)|0)+(n>>>13)|0)+(At>>>26)|0,At&=67108863,r=Math.imul(x,j),n=(n=Math.imul(x,V))+Math.imul(D,j)|0,o=Math.imul(D,V),r=r+Math.imul(I,z)|0,n=(n=n+Math.imul(I,G)|0)+Math.imul(C,z)|0,o=o+Math.imul(C,G)|0,r=r+Math.imul(k,X)|0,n=(n=n+Math.imul(k,Z)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,Z)|0,r=r+Math.imul(M,Q)|0,n=(n=n+Math.imul(M,Y)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,Y)|0,r=r+Math.imul(_,$)|0,n=(n=n+Math.imul(_,tt)|0)+Math.imul(w,$)|0,o=o+Math.imul(w,tt)|0,r=r+Math.imul(v,it)|0,n=(n=n+Math.imul(v,rt)|0)+Math.imul(y,it)|0,o=o+Math.imul(y,rt)|0,r=r+Math.imul(p,ot)|0,n=(n=n+Math.imul(p,at)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0;var Mt=(u+(r=r+Math.imul(d,ht)|0)|0)+((8191&(n=(n=n+Math.imul(d,ut)|0)+Math.imul(f,ht)|0))<<13)|0;u=((o=o+Math.imul(f,ut)|0)+(n>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,r=Math.imul(B,j),n=(n=Math.imul(B,V))+Math.imul(L,j)|0,o=Math.imul(L,V),r=r+Math.imul(x,z)|0,n=(n=n+Math.imul(x,G)|0)+Math.imul(D,z)|0,o=o+Math.imul(D,G)|0,r=r+Math.imul(I,X)|0,n=(n=n+Math.imul(I,Z)|0)+Math.imul(C,X)|0,o=o+Math.imul(C,Z)|0,r=r+Math.imul(k,Q)|0,n=(n=n+Math.imul(k,Y)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,Y)|0,r=r+Math.imul(M,$)|0,n=(n=n+Math.imul(M,tt)|0)+Math.imul(E,$)|0,o=o+Math.imul(E,tt)|0,r=r+Math.imul(_,it)|0,n=(n=n+Math.imul(_,rt)|0)+Math.imul(w,it)|0,o=o+Math.imul(w,rt)|0,r=r+Math.imul(v,ot)|0,n=(n=n+Math.imul(v,at)|0)+Math.imul(y,ot)|0,o=o+Math.imul(y,at)|0,r=r+Math.imul(p,ht)|0,n=(n=n+Math.imul(p,ut)|0)+Math.imul(m,ht)|0,o=o+Math.imul(m,ut)|0;var Et=(u+(r=r+Math.imul(d,dt)|0)|0)+((8191&(n=(n=n+Math.imul(d,ft)|0)+Math.imul(f,dt)|0))<<13)|0;u=((o=o+Math.imul(f,ft)|0)+(n>>>13)|0)+(Et>>>26)|0,Et&=67108863,r=Math.imul(N,j),n=(n=Math.imul(N,V))+Math.imul(F,j)|0,o=Math.imul(F,V),r=r+Math.imul(B,z)|0,n=(n=n+Math.imul(B,G)|0)+Math.imul(L,z)|0,o=o+Math.imul(L,G)|0,r=r+Math.imul(x,X)|0,n=(n=n+Math.imul(x,Z)|0)+Math.imul(D,X)|0,o=o+Math.imul(D,Z)|0,r=r+Math.imul(I,Q)|0,n=(n=n+Math.imul(I,Y)|0)+Math.imul(C,Q)|0,o=o+Math.imul(C,Y)|0,r=r+Math.imul(k,$)|0,n=(n=n+Math.imul(k,tt)|0)+Math.imul(T,$)|0,o=o+Math.imul(T,tt)|0,r=r+Math.imul(M,it)|0,n=(n=n+Math.imul(M,rt)|0)+Math.imul(E,it)|0,o=o+Math.imul(E,rt)|0,r=r+Math.imul(_,ot)|0,n=(n=n+Math.imul(_,at)|0)+Math.imul(w,ot)|0,o=o+Math.imul(w,at)|0,r=r+Math.imul(v,ht)|0,n=(n=n+Math.imul(v,ut)|0)+Math.imul(y,ht)|0,o=o+Math.imul(y,ut)|0,r=r+Math.imul(p,dt)|0,n=(n=n+Math.imul(p,ft)|0)+Math.imul(m,dt)|0,o=o+Math.imul(m,ft)|0;var St=(u+(r=r+Math.imul(d,pt)|0)|0)+((8191&(n=(n=n+Math.imul(d,mt)|0)+Math.imul(f,pt)|0))<<13)|0;u=((o=o+Math.imul(f,mt)|0)+(n>>>13)|0)+(St>>>26)|0,St&=67108863,r=Math.imul(N,z),n=(n=Math.imul(N,G))+Math.imul(F,z)|0,o=Math.imul(F,G),r=r+Math.imul(B,X)|0,n=(n=n+Math.imul(B,Z)|0)+Math.imul(L,X)|0,o=o+Math.imul(L,Z)|0,r=r+Math.imul(x,Q)|0,n=(n=n+Math.imul(x,Y)|0)+Math.imul(D,Q)|0,o=o+Math.imul(D,Y)|0,r=r+Math.imul(I,$)|0,n=(n=n+Math.imul(I,tt)|0)+Math.imul(C,$)|0,o=o+Math.imul(C,tt)|0,r=r+Math.imul(k,it)|0,n=(n=n+Math.imul(k,rt)|0)+Math.imul(T,it)|0,o=o+Math.imul(T,rt)|0,r=r+Math.imul(M,ot)|0,n=(n=n+Math.imul(M,at)|0)+Math.imul(E,ot)|0,o=o+Math.imul(E,at)|0,r=r+Math.imul(_,ht)|0,n=(n=n+Math.imul(_,ut)|0)+Math.imul(w,ht)|0,o=o+Math.imul(w,ut)|0,r=r+Math.imul(v,dt)|0,n=(n=n+Math.imul(v,ft)|0)+Math.imul(y,dt)|0,o=o+Math.imul(y,ft)|0;var kt=(u+(r=r+Math.imul(p,pt)|0)|0)+((8191&(n=(n=n+Math.imul(p,mt)|0)+Math.imul(m,pt)|0))<<13)|0;u=((o=o+Math.imul(m,mt)|0)+(n>>>13)|0)+(kt>>>26)|0,kt&=67108863,r=Math.imul(N,X),n=(n=Math.imul(N,Z))+Math.imul(F,X)|0,o=Math.imul(F,Z),r=r+Math.imul(B,Q)|0,n=(n=n+Math.imul(B,Y)|0)+Math.imul(L,Q)|0,o=o+Math.imul(L,Y)|0,r=r+Math.imul(x,$)|0,n=(n=n+Math.imul(x,tt)|0)+Math.imul(D,$)|0,o=o+Math.imul(D,tt)|0,r=r+Math.imul(I,it)|0,n=(n=n+Math.imul(I,rt)|0)+Math.imul(C,it)|0,o=o+Math.imul(C,rt)|0,r=r+Math.imul(k,ot)|0,n=(n=n+Math.imul(k,at)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,r=r+Math.imul(M,ht)|0,n=(n=n+Math.imul(M,ut)|0)+Math.imul(E,ht)|0,o=o+Math.imul(E,ut)|0,r=r+Math.imul(_,dt)|0,n=(n=n+Math.imul(_,ft)|0)+Math.imul(w,dt)|0,o=o+Math.imul(w,ft)|0;var Tt=(u+(r=r+Math.imul(v,pt)|0)|0)+((8191&(n=(n=n+Math.imul(v,mt)|0)+Math.imul(y,pt)|0))<<13)|0;u=((o=o+Math.imul(y,mt)|0)+(n>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,r=Math.imul(N,Q),n=(n=Math.imul(N,Y))+Math.imul(F,Q)|0,o=Math.imul(F,Y),r=r+Math.imul(B,$)|0,n=(n=n+Math.imul(B,tt)|0)+Math.imul(L,$)|0,o=o+Math.imul(L,tt)|0,r=r+Math.imul(x,it)|0,n=(n=n+Math.imul(x,rt)|0)+Math.imul(D,it)|0,o=o+Math.imul(D,rt)|0,r=r+Math.imul(I,ot)|0,n=(n=n+Math.imul(I,at)|0)+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,r=r+Math.imul(k,ht)|0,n=(n=n+Math.imul(k,ut)|0)+Math.imul(T,ht)|0,o=o+Math.imul(T,ut)|0,r=r+Math.imul(M,dt)|0,n=(n=n+Math.imul(M,ft)|0)+Math.imul(E,dt)|0,o=o+Math.imul(E,ft)|0;var Rt=(u+(r=r+Math.imul(_,pt)|0)|0)+((8191&(n=(n=n+Math.imul(_,mt)|0)+Math.imul(w,pt)|0))<<13)|0;u=((o=o+Math.imul(w,mt)|0)+(n>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,r=Math.imul(N,$),n=(n=Math.imul(N,tt))+Math.imul(F,$)|0,o=Math.imul(F,tt),r=r+Math.imul(B,it)|0,n=(n=n+Math.imul(B,rt)|0)+Math.imul(L,it)|0,o=o+Math.imul(L,rt)|0,r=r+Math.imul(x,ot)|0,n=(n=n+Math.imul(x,at)|0)+Math.imul(D,ot)|0,o=o+Math.imul(D,at)|0,r=r+Math.imul(I,ht)|0,n=(n=n+Math.imul(I,ut)|0)+Math.imul(C,ht)|0,o=o+Math.imul(C,ut)|0,r=r+Math.imul(k,dt)|0,n=(n=n+Math.imul(k,ft)|0)+Math.imul(T,dt)|0,o=o+Math.imul(T,ft)|0;var It=(u+(r=r+Math.imul(M,pt)|0)|0)+((8191&(n=(n=n+Math.imul(M,mt)|0)+Math.imul(E,pt)|0))<<13)|0;u=((o=o+Math.imul(E,mt)|0)+(n>>>13)|0)+(It>>>26)|0,It&=67108863,r=Math.imul(N,it),n=(n=Math.imul(N,rt))+Math.imul(F,it)|0,o=Math.imul(F,rt),r=r+Math.imul(B,ot)|0,n=(n=n+Math.imul(B,at)|0)+Math.imul(L,ot)|0,o=o+Math.imul(L,at)|0,r=r+Math.imul(x,ht)|0,n=(n=n+Math.imul(x,ut)|0)+Math.imul(D,ht)|0,o=o+Math.imul(D,ut)|0,r=r+Math.imul(I,dt)|0,n=(n=n+Math.imul(I,ft)|0)+Math.imul(C,dt)|0,o=o+Math.imul(C,ft)|0;var Ct=(u+(r=r+Math.imul(k,pt)|0)|0)+((8191&(n=(n=n+Math.imul(k,mt)|0)+Math.imul(T,pt)|0))<<13)|0;u=((o=o+Math.imul(T,mt)|0)+(n>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,r=Math.imul(N,ot),n=(n=Math.imul(N,at))+Math.imul(F,ot)|0,o=Math.imul(F,at),r=r+Math.imul(B,ht)|0,n=(n=n+Math.imul(B,ut)|0)+Math.imul(L,ht)|0,o=o+Math.imul(L,ut)|0,r=r+Math.imul(x,dt)|0,n=(n=n+Math.imul(x,ft)|0)+Math.imul(D,dt)|0,o=o+Math.imul(D,ft)|0;var Pt=(u+(r=r+Math.imul(I,pt)|0)|0)+((8191&(n=(n=n+Math.imul(I,mt)|0)+Math.imul(C,pt)|0))<<13)|0;u=((o=o+Math.imul(C,mt)|0)+(n>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,r=Math.imul(N,ht),n=(n=Math.imul(N,ut))+Math.imul(F,ht)|0,o=Math.imul(F,ut),r=r+Math.imul(B,dt)|0,n=(n=n+Math.imul(B,ft)|0)+Math.imul(L,dt)|0,o=o+Math.imul(L,ft)|0;var xt=(u+(r=r+Math.imul(x,pt)|0)|0)+((8191&(n=(n=n+Math.imul(x,mt)|0)+Math.imul(D,pt)|0))<<13)|0;u=((o=o+Math.imul(D,mt)|0)+(n>>>13)|0)+(xt>>>26)|0,xt&=67108863,r=Math.imul(N,dt),n=(n=Math.imul(N,ft))+Math.imul(F,dt)|0,o=Math.imul(F,ft);var Dt=(u+(r=r+Math.imul(B,pt)|0)|0)+((8191&(n=(n=n+Math.imul(B,mt)|0)+Math.imul(L,pt)|0))<<13)|0;u=((o=o+Math.imul(L,mt)|0)+(n>>>13)|0)+(Dt>>>26)|0,Dt&=67108863;var Ot=(u+(r=Math.imul(N,pt))|0)+((8191&(n=(n=Math.imul(N,mt))+Math.imul(F,pt)|0))<<13)|0;return u=((o=Math.imul(F,mt))+(n>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,h[0]=gt,h[1]=vt,h[2]=yt,h[3]=bt,h[4]=_t,h[5]=wt,h[6]=At,h[7]=Mt,h[8]=Et,h[9]=St,h[10]=kt,h[11]=Tt,h[12]=Rt,h[13]=It,h[14]=Ct,h[15]=Pt,h[16]=xt,h[17]=Dt,h[18]=Ot,0!==u&&(h[19]=u,i.length++),i};function m(t,e,i){return(new g).mulp(t,e,i)}function g(t,e){this.x=t,this.y=e}Math.imul||(p=c),o.prototype.mulTo=function(t,e){var i,r=this.length+t.length;return i=10===this.length&&10===t.length?p(this,t,e):r<63?c(this,t,e):r<1024?function(t,e,i){i.negative=e.negative^t.negative,i.length=t.length+e.length;for(var r=0,n=0,o=0;o<i.length-1;o++){var a=n;n=0;for(var s=67108863&r,h=Math.min(o,e.length-1),u=Math.max(0,o-t.length+1);u<=h;u++){var l=o-u,d=(0|t.words[l])*(0|e.words[u]),f=67108863&d;s=67108863&(f=f+s|0),n+=(a=(a=a+(d/67108864|0)|0)+(f>>>26)|0)>>>26,a&=67108863}i.words[o]=s,r=a,a=n}return 0!==r?i.words[o]=r:i.length--,i.strip()}(this,t,e):m(this,t,e),i},g.prototype.makeRBT=function(t){for(var e=new Array(t),i=o.prototype._countBits(t)-1,r=0;r<t;r++)e[r]=this.revBin(r,i,t);return e},g.prototype.revBin=function(t,e,i){if(0===t||t===i-1)return t;for(var r=0,n=0;n<e;n++)r|=(1&t)<<e-n-1,t>>=1;return r},g.prototype.permute=function(t,e,i,r,n,o){for(var a=0;a<o;a++)r[a]=e[t[a]],n[a]=i[t[a]]},g.prototype.transform=function(t,e,i,r,n,o){this.permute(o,t,e,i,r,n);for(var a=1;a<n;a<<=1)for(var s=a<<1,h=Math.cos(2*Math.PI/s),u=Math.sin(2*Math.PI/s),l=0;l<n;l+=s)for(var d=h,f=u,c=0;c<a;c++){var p=i[l+c],m=r[l+c],g=i[l+c+a],v=r[l+c+a],y=d*g-f*v;v=d*v+f*g,g=y,i[l+c]=p+g,r[l+c]=m+v,i[l+c+a]=p-g,r[l+c+a]=m-v,c!==s&&(y=h*d-u*f,f=h*f+u*d,d=y)}},g.prototype.guessLen13b=function(t,e){var i=1|Math.max(e,t),r=1&i,n=0;for(i=i/2|0;i;i>>>=1)n++;return 1<<n+1+r},g.prototype.conjugate=function(t,e,i){if(!(i<=1))for(var r=0;r<i/2;r++){var n=t[r];t[r]=t[i-r-1],t[i-r-1]=n,n=e[r],e[r]=-e[i-r-1],e[i-r-1]=-n}},g.prototype.normalize13b=function(t,e){for(var i=0,r=0;r<e/2;r++){var n=8192*Math.round(t[2*r+1]/e)+Math.round(t[2*r]/e)+i;t[r]=67108863&n,i=n<67108864?0:n/67108864|0}return t},g.prototype.convert13b=function(t,e,i,n){for(var o=0,a=0;a<e;a++)o+=0|t[a],i[2*a]=8191&o,o>>>=13,i[2*a+1]=8191&o,o>>>=13;for(a=2*e;a<n;++a)i[a]=0;r(0===o),r(0==(-8192&o))},g.prototype.stub=function(t){for(var e=new Array(t),i=0;i<t;i++)e[i]=0;return e},g.prototype.mulp=function(t,e,i){var r=2*this.guessLen13b(t.length,e.length),n=this.makeRBT(r),o=this.stub(r),a=new Array(r),s=new Array(r),h=new Array(r),u=new Array(r),l=new Array(r),d=new Array(r),f=i.words;f.length=r,this.convert13b(t.words,t.length,a,r),this.convert13b(e.words,e.length,u,r),this.transform(a,o,s,h,r,n),this.transform(u,o,l,d,r,n);for(var c=0;c<r;c++){var p=s[c]*l[c]-h[c]*d[c];h[c]=s[c]*d[c]+h[c]*l[c],s[c]=p}return this.conjugate(s,h,r),this.transform(s,h,f,o,r,n),this.conjugate(f,o,r),this.normalize13b(f,r),i.negative=t.negative^e.negative,i.length=t.length+e.length,i.strip()},o.prototype.mul=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},o.prototype.mulf=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),m(this,t,e)},o.prototype.imul=function(t){return this.clone().mulTo(t,this)},o.prototype.imuln=function(t){r("number"==typeof t),r(t<67108864);for(var e=0,i=0;i<this.length;i++){var n=(0|this.words[i])*t,o=(67108863&n)+(67108863&e);e>>=26,e+=n/67108864|0,e+=o>>>26,this.words[i]=67108863&o}return 0!==e&&(this.words[i]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),i=0;i<e.length;i++){var r=i/26|0,n=i%26;e[i]=(t.words[r]&1<<n)>>>n}return e}(t);if(0===e.length)return new o(1);for(var i=this,r=0;r<e.length&&0===e[r];r++,i=i.sqr());if(++r<e.length)for(var n=i.sqr();r<e.length;r++,n=n.sqr())0!==e[r]&&(i=i.mul(n));return i},o.prototype.iushln=function(t){r("number"==typeof t&&t>=0);var e,i=t%26,n=(t-i)/26,o=67108863>>>26-i<<26-i;if(0!==i){var a=0;for(e=0;e<this.length;e++){var s=this.words[e]&o,h=(0|this.words[e])-s<<i;this.words[e]=h|a,a=s>>>26-i}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e<n;e++)this.words[e]=0;this.length+=n}return this.strip()},o.prototype.ishln=function(t){return r(0===this.negative),this.iushln(t)},o.prototype.iushrn=function(t,e,i){var n;r("number"==typeof t&&t>=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<<o,h=i;if(n-=a,n=Math.max(0,n),h){for(var u=0;u<a;u++)h.words[u]=this.words[u];h.length=a}if(0===a);else if(this.length>a)for(this.length-=a,u=0;u<this.length;u++)this.words[u]=this.words[u+a];else this.words[0]=0,this.length=1;var l=0;for(u=this.length-1;u>=0&&(0!==l||u>=n);u--){var d=0|this.words[u];this.words[u]=l<<26-o|d>>>o,l=d&s}return h&&0!==l&&(h.words[h.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,i){return r(0===this.negative),this.iushrn(t,e,i)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){r("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26,n=1<<e;return!(this.length<=i)&&!!(this.words[i]&n)},o.prototype.imaskn=function(t){r("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=i)return this;if(0!==e&&i++,this.length=Math.min(i,this.length),0!==e){var n=67108863^67108863>>>e<<e;this.words[this.length-1]&=n}return this.strip()},o.prototype.maskn=function(t){return this.clone().imaskn(t)},o.prototype.iaddn=function(t){return r("number"==typeof t),r(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},o.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(r("number"==typeof t),r(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},o.prototype.addn=function(t){return this.clone().iaddn(t)},o.prototype.subn=function(t){return this.clone().isubn(t)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(t,e,i){var n,o,a=t.length+i;this._expand(a);var s=0;for(n=0;n<t.length;n++){o=(0|this.words[n+i])+s;var h=(0|t.words[n])*e;s=((o-=67108863&h)>>26)-(h/67108864|0),this.words[n+i]=67108863&o}for(;n<this.length-i;n++)s=(o=(0|this.words[n+i])+s)>>26,this.words[n+i]=67108863&o;if(0===s)return this.strip();for(r(-1===s),s=0,n=0;n<this.length;n++)s=(o=-(0|this.words[n])+s)>>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var i=(this.length,t.length),r=this.clone(),n=t,a=0|n.words[n.length-1];0!==(i=26-this._countBits(a))&&(n=n.ushln(i),r.iushln(i),a=0|n.words[n.length-1]);var s,h=r.length-n.length;if("mod"!==e){(s=new o(null)).length=h+1,s.words=new Array(s.length);for(var u=0;u<s.length;u++)s.words[u]=0}var l=r.clone()._ishlnsubmul(n,1,h);0===l.negative&&(r=l,s&&(s.words[h]=1));for(var d=h-1;d>=0;d--){var f=67108864*(0|r.words[n.length+d])+(0|r.words[n.length+d-1]);for(f=Math.min(f/a|0,67108863),r._ishlnsubmul(n,f,d);0!==r.negative;)f--,r.negative=0,r._ishlnsubmul(n,1,d),r.isZero()||(r.negative^=1);s&&(s.words[d]=f)}return s&&s.strip(),r.strip(),"div"!==e&&0!==i&&r.iushrn(i),{div:s||null,mod:r}},o.prototype.divmod=function(t,e,i){return r(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(a=s.mod.neg(),i&&0!==a.negative&&a.iadd(t)),{div:n,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),i&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var n,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var i=0!==e.div.negative?e.mod.isub(t):e.mod,r=t.ushrn(1),n=t.andln(1),o=i.cmp(r);return o<0||1===n&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){r(t<=67108863);for(var e=(1<<26)%t,i=0,n=this.length-1;n>=0;n--)i=(e*i+(0|this.words[n]))%t;return i},o.prototype.idivn=function(t){r(t<=67108863);for(var e=0,i=this.length-1;i>=0;i--){var n=(0|this.words[i])+67108864*e;this.words[i]=n/t|0,e=n%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){r(0===t.negative),r(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n=new o(1),a=new o(0),s=new o(0),h=new o(1),u=0;e.isEven()&&i.isEven();)e.iushrn(1),i.iushrn(1),++u;for(var l=i.clone(),d=e.clone();!e.isZero();){for(var f=0,c=1;0==(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(n.isOdd()||a.isOdd())&&(n.iadd(l),a.isub(d)),n.iushrn(1),a.iushrn(1);for(var p=0,m=1;0==(i.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(i.iushrn(p);p-- >0;)(s.isOdd()||h.isOdd())&&(s.iadd(l),h.isub(d)),s.iushrn(1),h.iushrn(1);e.cmp(i)>=0?(e.isub(i),n.isub(s),a.isub(h)):(i.isub(e),s.isub(n),h.isub(a))}return{a:s,b:h,gcd:i.iushln(u)}},o.prototype._invmp=function(t){r(0===t.negative),r(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n,a=new o(1),s=new o(0),h=i.clone();e.cmpn(1)>0&&i.cmpn(1)>0;){for(var u=0,l=1;0==(e.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(e.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(h),a.iushrn(1);for(var d=0,f=1;0==(i.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(i.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(h),s.iushrn(1);e.cmp(i)>=0?(e.isub(i),a.isub(s)):(i.isub(e),s.isub(a))}return(n=0===e.cmpn(1)?a:s).cmpn(0)<0&&n.iadd(t),n},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),i=t.clone();e.negative=0,i.negative=0;for(var r=0;e.isEven()&&i.isEven();r++)e.iushrn(1),i.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;i.isEven();)i.iushrn(1);var n=e.cmp(i);if(n<0){var o=e;e=i,i=o}else if(0===n||0===i.cmpn(1))break;e.isub(i)}return i.iushln(r)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){r("number"==typeof t);var e=t%26,i=(t-e)/26,n=1<<e;if(this.length<=i)return this._expand(i+1),this.words[i]|=n,this;for(var o=n,a=i;0!==o&&a<this.length;a++){var s=0|this.words[a];o=(s+=o)>>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,i=t<0;if(0!==this.negative&&!i)return-1;if(0===this.negative&&i)return 1;if(this.strip(),this.length>1)e=1;else{i&&(t=-t),r(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:n<t?-1:1}return 0!==this.negative?0|-e:e},o.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},o.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,i=this.length-1;i>=0;i--){var r=0|this.words[i],n=0|t.words[i];if(r!==n){r<n?e=-1:r>n&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new M(t)},o.prototype.toRed=function(t){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return r(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return r(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var v={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function A(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function M(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else r(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function E(t){M.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,i=t;do{this.split(i,this.tmp),e=(i=(i=this.imulK(i)).iadd(this.tmp)).bitLength()}while(e>this.n);var r=e<this.n?-1:i.ucmp(this.p);return 0===r?(i.words[0]=0,i.length=1):r>0?i.isub(this.p):void 0!==i.strip?i.strip():i._strip(),i},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},n(b,y),b.prototype.split=function(t,e){for(var i=4194303,r=Math.min(t.length,9),n=0;n<r;n++)e.words[n]=t.words[n];if(e.length=r,t.length<=9)return t.words[0]=0,void(t.length=1);var o=t.words[9];for(e.words[e.length++]=o&i,n=10;n<t.length;n++){var a=0|t.words[n];t.words[n-10]=(a&i)<<4|o>>>22,o=a}o>>>=22,t.words[n-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},b.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,i=0;i<t.length;i++){var r=0|t.words[i];e+=977*r,t.words[i]=67108863&e,e=64*r+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},n(_,y),n(w,y),n(A,y),A.prototype.imulK=function(t){for(var e=0,i=0;i<t.length;i++){var r=19*(0|t.words[i])+e,n=67108863&r;r>>>=26,t.words[i]=n,e=r}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(v[t])return v[t];var e;if("k256"===t)e=new b;else if("p224"===t)e=new _;else if("p192"===t)e=new w;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new A}return v[t]=e,e},M.prototype._verify1=function(t){r(0===t.negative,"red works only with positives"),r(t.red,"red works only with red numbers")},M.prototype._verify2=function(t,e){r(0==(t.negative|e.negative),"red works only with positives"),r(t.red&&t.red===e.red,"red works only with red numbers")},M.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},M.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},M.prototype.add=function(t,e){this._verify2(t,e);var i=t.add(e);return i.cmp(this.m)>=0&&i.isub(this.m),i._forceRed(this)},M.prototype.iadd=function(t,e){this._verify2(t,e);var i=t.iadd(e);return i.cmp(this.m)>=0&&i.isub(this.m),i},M.prototype.sub=function(t,e){this._verify2(t,e);var i=t.sub(e);return i.cmpn(0)<0&&i.iadd(this.m),i._forceRed(this)},M.prototype.isub=function(t,e){this._verify2(t,e);var i=t.isub(e);return i.cmpn(0)<0&&i.iadd(this.m),i},M.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},M.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},M.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},M.prototype.isqr=function(t){return this.imul(t,t.clone())},M.prototype.sqr=function(t){return this.mul(t,t)},M.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(r(e%2==1),3===e){var i=this.m.add(new o(1)).iushrn(2);return this.pow(t,i)}for(var n=this.m.subn(1),a=0;!n.isZero()&&0===n.andln(1);)a++,n.iushrn(1);r(!n.isZero());var s=new o(1).toRed(this),h=s.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(h);)l.redIAdd(h);for(var d=this.pow(l,n),f=this.pow(t,n.addn(1).iushrn(1)),c=this.pow(t,n),p=a;0!==c.cmp(s);){for(var m=c,g=0;0!==m.cmp(s);g++)m=m.redSqr();r(g<p);var v=this.pow(d,new o(1).iushln(p-g-1));f=f.redMul(v),d=v.redSqr(),c=c.redMul(d),p=g}return f},M.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},M.prototype.pow=function(t,e){if(e.isZero())return new o(1).toRed(this);if(0===e.cmpn(1))return t.clone();var i=new Array(16);i[0]=new o(1).toRed(this),i[1]=t;for(var r=2;r<i.length;r++)i[r]=this.mul(i[r-1],t);var n=i[0],a=0,s=0,h=e.bitLength()%26;for(0===h&&(h=26),r=e.length-1;r>=0;r--){for(var u=e.words[r],l=h-1;l>=0;l--){var d=u>>l&1;n!==i[0]&&(n=this.sqr(n)),0!==d||0!==a?(a<<=1,a|=d,(4===++s||0===r&&0===l)&&(n=this.mul(n,i[a]),s=0,a=0)):s=0}h=26}return n},M.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},M.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new E(t)},n(E,M),E.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},E.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},E.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var i=t.imul(e),r=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=i.isub(r).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},E.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var i=t.mul(e),r=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=i.isub(r).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},E.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t,this)}).call(this,i(20)(t))},function(t,e,i){"use strict";var r=e;r.der=i(124),r.pem=i(230)},function(t,e,i){"use strict";var r=i(3),n=i(70).Buffer,o=i(71),a=i(73);function s(t){this.enc="der",this.name=t.name,this.entity=t,this.tree=new h,this.tree._init(t.body)}function h(t){o.call(this,"der",t)}function u(t){return t<10?"0"+t:t}t.exports=s,s.prototype.encode=function(t,e){return this.tree._encode(t,e).join()},r(h,o),h.prototype._encodeComposite=function(t,e,i,r){var o=function(t,e,i,r){var n;"seqof"===t?t="seq":"setof"===t&&(t="set");if(a.tagByName.hasOwnProperty(t))n=a.tagByName[t];else{if("number"!=typeof t||(0|t)!==t)return r.error("Unknown tag: "+t);n=t}if(n>=31)return r.error("Multi-octet tag encoding unsupported");e||(n|=32);return n|=a.tagClassByName[i||"universal"]<<6}(t,e,i,this.reporter);if(r.length<128){var s=n.alloc(2);return s[0]=o,s[1]=r.length,this._createEncoderBuffer([s,r])}for(var h=1,u=r.length;u>=256;u>>=8)h++;var l=n.alloc(2+h);l[0]=o,l[1]=128|h;for(var d=1+h,f=r.length;f>0;d--,f>>=8)l[d]=255&f;return this._createEncoderBuffer([l,r])},h.prototype._encodeStr=function(t,e){if("bitstr"===e)return this._createEncoderBuffer([0|t.unused,t.data]);if("bmpstr"===e){for(var i=n.alloc(2*t.length),r=0;r<t.length;r++)i.writeUInt16BE(t.charCodeAt(r),2*r);return this._createEncoderBuffer(i)}return"numstr"===e?this._isNumstr(t)?this._createEncoderBuffer(t):this.reporter.error("Encoding of string type: numstr supports only digits and space"):"printstr"===e?this._isPrintstr(t)?this._createEncoderBuffer(t):this.reporter.error("Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark"):/str$/.test(e)||"objDesc"===e?this._createEncoderBuffer(t):this.reporter.error("Encoding of string type: "+e+" unsupported")},h.prototype._encodeObjid=function(t,e,i){if("string"==typeof t){if(!e)return this.reporter.error("string objid given, but no values map found");if(!e.hasOwnProperty(t))return this.reporter.error("objid not found in values map");t=e[t].split(/[\s.]+/g);for(var r=0;r<t.length;r++)t[r]|=0}else if(Array.isArray(t)){t=t.slice();for(var o=0;o<t.length;o++)t[o]|=0}if(!Array.isArray(t))return this.reporter.error("objid() should be either array or string, got: "+JSON.stringify(t));if(!i){if(t[1]>=40)return this.reporter.error("Second objid identifier OOB");t.splice(0,2,40*t[0]+t[1])}for(var a=0,s=0;s<t.length;s++){var h=t[s];for(a++;h>=128;h>>=7)a++}for(var u=n.alloc(a),l=u.length-1,d=t.length-1;d>=0;d--){var f=t[d];for(u[l--]=127&f;(f>>=7)>0;)u[l--]=128|127&f}return this._createEncoderBuffer(u)},h.prototype._encodeTime=function(t,e){var i,r=new Date(t);return"gentime"===e?i=[u(r.getUTCFullYear()),u(r.getUTCMonth()+1),u(r.getUTCDate()),u(r.getUTCHours()),u(r.getUTCMinutes()),u(r.getUTCSeconds()),"Z"].join(""):"utctime"===e?i=[u(r.getUTCFullYear()%100),u(r.getUTCMonth()+1),u(r.getUTCDate()),u(r.getUTCHours()),u(r.getUTCMinutes()),u(r.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+e+" time is not supported yet"),this._encodeStr(i,"octstr")},h.prototype._encodeNull=function(){return this._createEncoderBuffer("")},h.prototype._encodeInt=function(t,e){if("string"==typeof t){if(!e)return this.reporter.error("String int or enum given, but no values map");if(!e.hasOwnProperty(t))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(t));t=e[t]}if("number"!=typeof t&&!n.isBuffer(t)){var i=t.toArray();!t.sign&&128&i[0]&&i.unshift(0),t=n.from(i)}if(n.isBuffer(t)){var r=t.length;0===t.length&&r++;var o=n.alloc(r);return t.copy(o),0===t.length&&(o[0]=0),this._createEncoderBuffer(o)}if(t<128)return this._createEncoderBuffer(t);if(t<256)return this._createEncoderBuffer([0,t]);for(var a=1,s=t;s>=256;s>>=8)a++;for(var h=new Array(a),u=h.length-1;u>=0;u--)h[u]=255&t,t>>=8;return 128&h[0]&&h.unshift(0),this._createEncoderBuffer(n.from(h))},h.prototype._encodeBool=function(t){return this._createEncoderBuffer(t?255:0)},h.prototype._use=function(t,e){return"function"==typeof t&&(t=t(e)),t._getEncoder("der").tree},h.prototype._skipDefault=function(t,e,i){var r,n=this._baseState;if(null===n.default)return!1;var o=t.join();if(void 0===n.defaultBuffer&&(n.defaultBuffer=this._encodeValue(n.default,e,i).join()),o.length!==n.defaultBuffer.length)return!1;for(r=0;r<o.length;r++)if(o[r]!==n.defaultBuffer[r])return!1;return!0}},function(t,e,i){"use strict";var r=e;r.der=i(126),r.pem=i(231)},function(t,e,i){"use strict";var r=i(3),n=i(122),o=i(39).DecoderBuffer,a=i(71),s=i(73);function h(t){this.enc="der",this.name=t.name,this.entity=t,this.tree=new u,this.tree._init(t.body)}function u(t){a.call(this,"der",t)}function l(t,e){var i=t.readUInt8(e);if(t.isError(i))return i;var r=s.tagClass[i>>6],n=0==(32&i);if(31==(31&i)){var o=i;for(i=0;128==(128&o);){if(o=t.readUInt8(e),t.isError(o))return o;i<<=7,i|=127&o}}else i&=31;return{cls:r,primitive:n,tag:i,tagStr:s.tag[i]}}function d(t,e,i){var r=t.readUInt8(i);if(t.isError(r))return r;if(!e&&128===r)return null;if(0==(128&r))return r;var n=127&r;if(n>4)return t.error("length octect is too long");r=0;for(var o=0;o<n;o++){r<<=8;var a=t.readUInt8(i);if(t.isError(a))return a;r|=a}return r}t.exports=h,h.prototype.decode=function(t,e){return o.isDecoderBuffer(t)||(t=new o(t,e)),this.tree._decode(t,e)},r(u,a),u.prototype._peekTag=function(t,e,i){if(t.isEmpty())return!1;var r=t.save(),n=l(t,'Failed to peek tag: "'+e+'"');return t.isError(n)?n:(t.restore(r),n.tag===e||n.tagStr===e||n.tagStr+"of"===e||i)},u.prototype._decodeTag=function(t,e,i){var r=l(t,'Failed to decode tag of "'+e+'"');if(t.isError(r))return r;var n=d(t,r.primitive,'Failed to get length of "'+e+'"');if(t.isError(n))return n;if(!i&&r.tag!==e&&r.tagStr!==e&&r.tagStr+"of"!==e)return t.error('Failed to match tag: "'+e+'"');if(r.primitive||null!==n)return t.skip(n,'Failed to match body of: "'+e+'"');var o=t.save(),a=this._skipUntilEnd(t,'Failed to skip indefinite length body: "'+this.tag+'"');return t.isError(a)?a:(n=t.offset-o.offset,t.restore(o),t.skip(n,'Failed to match body of: "'+e+'"'))},u.prototype._skipUntilEnd=function(t,e){for(;;){var i=l(t,e);if(t.isError(i))return i;var r=d(t,i.primitive,e);if(t.isError(r))return r;var n=void 0;if(n=i.primitive||null!==r?t.skip(r):this._skipUntilEnd(t,e),t.isError(n))return n;if("end"===i.tagStr)break}},u.prototype._decodeList=function(t,e,i,r){for(var n=[];!t.isEmpty();){var o=this._peekTag(t,"end");if(t.isError(o))return o;var a=i.decode(t,"der",r);if(t.isError(a)&&o)break;n.push(a)}return n},u.prototype._decodeStr=function(t,e){if("bitstr"===e){var i=t.readUInt8();return t.isError(i)?i:{unused:i,data:t.raw()}}if("bmpstr"===e){var r=t.raw();if(r.length%2==1)return t.error("Decoding of string type: bmpstr length mismatch");for(var n="",o=0;o<r.length/2;o++)n+=String.fromCharCode(r.readUInt16BE(2*o));return n}if("numstr"===e){var a=t.raw().toString("ascii");return this._isNumstr(a)?a:t.error("Decoding of string type: numstr unsupported characters")}if("octstr"===e)return t.raw();if("objDesc"===e)return t.raw();if("printstr"===e){var s=t.raw().toString("ascii");return this._isPrintstr(s)?s:t.error("Decoding of string type: printstr unsupported characters")}return/str$/.test(e)?t.raw().toString():t.error("Decoding of string type: "+e+" unsupported")},u.prototype._decodeObjid=function(t,e,i){for(var r,n=[],o=0,a=0;!t.isEmpty();)o<<=7,o|=127&(a=t.readUInt8()),0==(128&a)&&(n.push(o),o=0);128&a&&n.push(o);var s=n[0]/40|0,h=n[0]%40;if(r=i?n:[s,h].concat(n.slice(1)),e){var u=e[r.join(" ")];void 0===u&&(u=e[r.join(".")]),void 0!==u&&(r=u)}return r},u.prototype._decodeTime=function(t,e){var i,r,n,o,a,s,h=t.raw().toString();if("gentime"===e)i=0|h.slice(0,4),r=0|h.slice(4,6),n=0|h.slice(6,8),o=0|h.slice(8,10),a=0|h.slice(10,12),s=0|h.slice(12,14);else{if("utctime"!==e)return t.error("Decoding "+e+" time is not supported yet");i=0|h.slice(0,2),r=0|h.slice(2,4),n=0|h.slice(4,6),o=0|h.slice(6,8),a=0|h.slice(8,10),s=0|h.slice(10,12),i=i<70?2e3+i:1900+i}return Date.UTC(i,r-1,n,o,a,s,0)},u.prototype._decodeNull=function(){return null},u.prototype._decodeBool=function(t){var e=t.readUInt8();return t.isError(e)?e:0!==e},u.prototype._decodeInt=function(t,e){var i=t.raw(),r=new n(i);return e&&(r=e[r.toString(10)]||r),r},u.prototype._use=function(t,e){return"function"==typeof t&&(t=t(e)),t._getDecoder("der").tree}},function(t){t.exports=JSON.parse('{"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}')},function(t,e,i){var r=i(35),n=i(4).Buffer;function o(t){var e=n.allocUnsafe(4);return e.writeUInt32BE(t,0),e}t.exports=function(t,e){for(var i,a=n.alloc(0),s=0;a.length<e;)i=o(s++),a=n.concat([a,r("sha1").update(t).update(i).digest()]);return a.slice(0,e)}},function(t,e){t.exports=function(t,e){for(var i=t.length,r=-1;++r<i;)t[r]^=e[r];return t}},function(t,e,i){var r=i(74),n=i(4).Buffer;t.exports=function(t,e){return n.from(t.toRed(r.mont(e.modulus)).redPow(new r(e.publicExponent)).fromRed().toArray())}},function(t,e,i){var r;t.exports=(r=i(5),function(t){var e=r,i=e.lib,n=i.WordArray,o=i.Hasher,a=e.algo,s=[],h=[];!function(){function e(e){for(var i=t.sqrt(e),r=2;r<=i;r++)if(!(e%r))return!1;return!0}function i(t){return 4294967296*(t-(0|t))|0}for(var r=2,n=0;n<64;)e(r)&&(n<8&&(s[n]=i(t.pow(r,.5))),h[n]=i(t.pow(r,1/3)),n++),r++}();var u=[],l=a.SHA256=o.extend({_doReset:function(){this._hash=new n.init(s.slice(0))},_doProcessBlock:function(t,e){for(var i=this._hash.words,r=i[0],n=i[1],o=i[2],a=i[3],s=i[4],l=i[5],d=i[6],f=i[7],c=0;c<64;c++){if(c<16)u[c]=0|t[e+c];else{var p=u[c-15],m=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,g=u[c-2],v=(g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10;u[c]=m+u[c-7]+v+u[c-16]}var y=r&n^r&o^n&o,b=(r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22),_=f+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&l^~s&d)+h[c]+u[c];f=d,d=l,l=s,s=a+_|0,a=o,o=n,n=r,r=_+(b+y)|0}i[0]=i[0]+r|0,i[1]=i[1]+n|0,i[2]=i[2]+o|0,i[3]=i[3]+a|0,i[4]=i[4]+s|0,i[5]=i[5]+l|0,i[6]=i[6]+d|0,i[7]=i[7]+f|0},_doFinalize:function(){var e=this._data,i=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;return i[n>>>5]|=128<<24-n%32,i[14+(n+64>>>9<<4)]=t.floor(r/4294967296),i[15+(n+64>>>9<<4)]=r,e.sigBytes=4*i.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(l),e.HmacSHA256=o._createHmacHelper(l)}(Math),r.SHA256)},function(t,e,i){var r;t.exports=(r=i(5),i(49),function(){var t=r,e=t.lib.Hasher,i=t.x64,n=i.Word,o=i.WordArray,a=t.algo;function s(){return n.create.apply(n,arguments)}var h=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],u=[];!function(){for(var t=0;t<80;t++)u[t]=s()}();var l=a.SHA512=e.extend({_doReset:function(){this._hash=new o.init([new n.init(1779033703,4089235720),new n.init(3144134277,2227873595),new n.init(1013904242,4271175723),new n.init(2773480762,1595750129),new n.init(1359893119,2917565137),new n.init(2600822924,725511199),new n.init(528734635,4215389547),new n.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var i=this._hash.words,r=i[0],n=i[1],o=i[2],a=i[3],s=i[4],l=i[5],d=i[6],f=i[7],c=r.high,p=r.low,m=n.high,g=n.low,v=o.high,y=o.low,b=a.high,_=a.low,w=s.high,A=s.low,M=l.high,E=l.low,S=d.high,k=d.low,T=f.high,R=f.low,I=c,C=p,P=m,x=g,D=v,O=y,B=b,L=_,W=w,N=A,F=M,U=E,j=S,V=k,H=T,z=R,G=0;G<80;G++){var q,X,Z=u[G];if(G<16)X=Z.high=0|t[e+2*G],q=Z.low=0|t[e+2*G+1];else{var K=u[G-15],Q=K.high,Y=K.low,J=(Q>>>1|Y<<31)^(Q>>>8|Y<<24)^Q>>>7,$=(Y>>>1|Q<<31)^(Y>>>8|Q<<24)^(Y>>>7|Q<<25),tt=u[G-2],et=tt.high,it=tt.low,rt=(et>>>19|it<<13)^(et<<3|it>>>29)^et>>>6,nt=(it>>>19|et<<13)^(it<<3|et>>>29)^(it>>>6|et<<26),ot=u[G-7],at=ot.high,st=ot.low,ht=u[G-16],ut=ht.high,lt=ht.low;X=(X=(X=J+at+((q=$+st)>>>0<$>>>0?1:0))+rt+((q+=nt)>>>0<nt>>>0?1:0))+ut+((q+=lt)>>>0<lt>>>0?1:0),Z.high=X,Z.low=q}var dt,ft=W&F^~W&j,ct=N&U^~N&V,pt=I&P^I&D^P&D,mt=C&x^C&O^x&O,gt=(I>>>28|C<<4)^(I<<30|C>>>2)^(I<<25|C>>>7),vt=(C>>>28|I<<4)^(C<<30|I>>>2)^(C<<25|I>>>7),yt=(W>>>14|N<<18)^(W>>>18|N<<14)^(W<<23|N>>>9),bt=(N>>>14|W<<18)^(N>>>18|W<<14)^(N<<23|W>>>9),_t=h[G],wt=_t.high,At=_t.low,Mt=H+yt+((dt=z+bt)>>>0<z>>>0?1:0),Et=vt+mt;H=j,z=V,j=F,V=U,F=W,U=N,W=B+(Mt=(Mt=(Mt=Mt+ft+((dt+=ct)>>>0<ct>>>0?1:0))+wt+((dt+=At)>>>0<At>>>0?1:0))+X+((dt+=q)>>>0<q>>>0?1:0))+((N=L+dt|0)>>>0<L>>>0?1:0)|0,B=D,L=O,D=P,O=x,P=I,x=C,I=Mt+(gt+pt+(Et>>>0<vt>>>0?1:0))+((C=dt+Et|0)>>>0<dt>>>0?1:0)|0}p=r.low=p+C,r.high=c+I+(p>>>0<C>>>0?1:0),g=n.low=g+x,n.high=m+P+(g>>>0<x>>>0?1:0),y=o.low=y+O,o.high=v+D+(y>>>0<O>>>0?1:0),_=a.low=_+L,a.high=b+B+(_>>>0<L>>>0?1:0),A=s.low=A+N,s.high=w+W+(A>>>0<N>>>0?1:0),E=l.low=E+U,l.high=M+F+(E>>>0<U>>>0?1:0),k=d.low=k+V,d.high=S+j+(k>>>0<V>>>0?1:0),R=f.low=R+z,f.high=T+H+(R>>>0<z>>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,r=8*t.sigBytes;return e[r>>>5]|=128<<24-r%32,e[30+(r+128>>>10<<5)]=Math.floor(i/4294967296),e[31+(r+128>>>10<<5)]=i,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});t.SHA512=e._createHelper(l),t.HmacSHA512=e._createHmacHelper(l)}(),r.SHA512)},function(t,e,i){!function(){"use strict";var e=i(51),r=i(135),n=i(138),o={FrameSink:e,SoftwareFrameSink:r,WebGLFrameSink:n,attach:function(t,e){return("webGL"in(e=e||{})?e.webGL:n.isAvailable())?new n(t,e):new r(t,e)}};t.exports=o}()},function(t,e,i){"use strict";(function(e){var r,n=(r=i(142))&&"object"==typeof r&&"default"in r?r.default:r;t.exports=function(t){for(var i,r=(i=t,n.atob?n.atob(i):e.from(i,"base64").toString("binary")),o=new Uint8Array(r.length),a=0;a<r.length;a++)o[a]=r.charCodeAt(a);return o}}).call(this,i(9).Buffer)},function(t,e,i){!function(){"use strict";var e=i(51),r=i(136);function n(t){var e=this,i=t.getContext("2d"),n=null,o=null,a=null;return e.drawFrame=function(e){var s=e.format;t.width===s.displayWidth&&t.height===s.displayHeight||(t.width=s.displayWidth,t.height=s.displayHeight),null!==n&&n.width==s.width&&n.height==s.height||function(t,e){for(var r=(n=i.createImageData(t,e)).data,o=t*e*4,a=0;a<o;a+=4)r[a+3]=255}(s.width,s.height),r.convertYCbCr(e,n.data);var h,u,l,d=s.cropWidth!=s.displayWidth||s.cropHeight!=s.displayHeight;d?(o||(u=s.cropWidth,l=s.cropHeight,(o=document.createElement("canvas")).width=u,o.height=l,a=o.getContext("2d")),h=a):h=i,h.putImageData(n,-s.cropLeft,-s.cropTop,s.cropLeft,s.cropTop,s.cropWidth,s.cropHeight),d&&i.drawImage(o,0,0,s.displayWidth,s.displayHeight)},e.clear=function(){i.clearRect(0,0,t.width,t.height)},e}n.prototype=Object.create(e.prototype),t.exports=n}()},function(t,e,i){!function(){"use strict";var e=i(137);t.exports={convertYCbCr:function(t,i){var r=0|t.format.width,n=0|t.format.height,o=0|e(t.format.width/t.format.chromaWidth),a=0|e(t.format.height/t.format.chromaHeight),s=t.y.bytes,h=t.u.bytes,u=t.v.bytes,l=0|t.y.stride,d=0|t.u.stride,f=0|t.v.stride,c=r<<2,p=0,m=0,g=0,v=0,y=0,b=0,_=0,w=0,A=0,M=0,E=0,S=0,k=0,T=0,R=0,I=0,C=0,P=0;if(1==o&&1==a)for(_=0,w=c,P=0,I=0;I<n;I+=2){for(g=(m=I*l|0)+l|0,v=P*d|0,y=P*f|0,R=0;R<r;R+=2)A=0|h[v++],S=(409*(M=0|u[y++])|0)-57088|0,k=(100*A|0)+(208*M|0)-34816|0,T=(516*A|0)-70912|0,E=298*s[m++]|0,i[_]=E+S>>8,i[_+1]=E-k>>8,i[_+2]=E+T>>8,_+=4,E=298*s[m++]|0,i[_]=E+S>>8,i[_+1]=E-k>>8,i[_+2]=E+T>>8,_+=4,E=298*s[g++]|0,i[w]=E+S>>8,i[w+1]=E-k>>8,i[w+2]=E+T>>8,w+=4,E=298*s[g++]|0,i[w]=E+S>>8,i[w+1]=E-k>>8,i[w+2]=E+T>>8,w+=4;_+=c,w+=c,P++}else for(b=0,I=0;I<n;I++)for(C=0,p=I*l|0,v=(P=I>>a)*d|0,y=P*f|0,R=0;R<r;R++)A=0|h[v+(C=R>>o)],S=(409*(M=0|u[y+C])|0)-57088|0,k=(100*A|0)+(208*M|0)-34816|0,T=(516*A|0)-70912|0,E=298*s[p++]|0,i[b]=E+S>>8,i[b+1]=E-k>>8,i[b+2]=E+T>>8,b+=4}}}()},function(t,e){!function(){"use strict";t.exports=function(t){for(var e=0,i=t>>1;0!=i;)i>>=1,e++;if(t!==1<<e)throw"chroma plane dimensions must be power of 2 ratio to luma plane dimensions; got "+t;return e}}()},function(t,e,i){!function(){"use strict";var e=i(51),r=i(139);function n(t){var e,i,o=this,a=n.contextForCanvas(t);if(null===a)throw new Error("WebGL unavailable");function s(t,e){var i=a.createShader(t);if(a.shaderSource(i,e),a.compileShader(i),!a.getShaderParameter(i,a.COMPILE_STATUS)){var r=a.getShaderInfoLog(i);throw a.deleteShader(i),new Error("GL shader compilation for "+t+" failed: "+r)}return i}var h,u,l,d,f,c,p,m,g,v,y=new Float32Array([-1,-1,1,-1,-1,1,-1,1,1,-1,1,1]),b={},_={},w={};function A(t,e){return b[t]&&!e||(b[t]=a.createTexture()),b[t]}function M(t,e,i,r,o){var s=!b[t]||e,h=A(t,e);if(a.activeTexture(a.TEXTURE0),n.stripe){var u=!b[t+"_temp"]||e,l=A(t+"_temp",e);a.bindTexture(a.TEXTURE_2D,l),u?(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.NEAREST),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,i/4,r,0,a.RGBA,a.UNSIGNED_BYTE,o)):a.texSubImage2D(a.TEXTURE_2D,0,0,0,i/4,r,a.RGBA,a.UNSIGNED_BYTE,o);var d=b[t+"_stripe"],f=!d||e;f&&(d=A(t+"_stripe",e)),a.bindTexture(a.TEXTURE_2D,d),f&&(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.NEAREST),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,i,1,0,a.RGBA,a.UNSIGNED_BYTE,function(t){if(w[t])return w[t];for(var e=t,i=new Uint32Array(e),r=0;r<e;r+=4)i[r]=255,i[r+1]=65280,i[r+2]=16711680,i[r+3]=4278190080;return w[t]=new Uint8Array(i.buffer)}(i)))}else a.bindTexture(a.TEXTURE_2D,h),s?(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR),a.texImage2D(a.TEXTURE_2D,0,a.ALPHA,i,r,0,a.ALPHA,a.UNSIGNED_BYTE,o)):a.texSubImage2D(a.TEXTURE_2D,0,0,0,i,r,a.ALPHA,a.UNSIGNED_BYTE,o)}function E(t,e,r,n){var o=b[t];a.useProgram(i);var s=_[t];s&&!e||(a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,o),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,r,n,0,a.RGBA,a.UNSIGNED_BYTE,null),s=_[t]=a.createFramebuffer()),a.bindFramebuffer(a.FRAMEBUFFER,s),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,o,0);var p=b[t+"_temp"];a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,p),a.uniform1i(c,1);var m=b[t+"_stripe"];a.activeTexture(a.TEXTURE2),a.bindTexture(a.TEXTURE_2D,m),a.uniform1i(f,2),a.bindBuffer(a.ARRAY_BUFFER,h),a.enableVertexAttribArray(u),a.vertexAttribPointer(u,2,a.FLOAT,!1,0,0),a.bindBuffer(a.ARRAY_BUFFER,l),a.enableVertexAttribArray(d),a.vertexAttribPointer(d,2,a.FLOAT,!1,0,0),a.viewport(0,0,r,n),a.drawArrays(a.TRIANGLES,0,y.length/2),a.bindFramebuffer(a.FRAMEBUFFER,null)}function S(t,i,r){a.activeTexture(i),a.bindTexture(a.TEXTURE_2D,b[t]),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR),a.uniform1i(a.getUniformLocation(e,t),r)}function k(t,e){var i=s(a.VERTEX_SHADER,t),r=s(a.FRAGMENT_SHADER,e),n=a.createProgram();if(a.attachShader(n,i),a.attachShader(n,r),a.linkProgram(n),!a.getProgramParameter(n,a.LINK_STATUS)){var o=a.getProgramInfoLog(n);throw a.deleteProgram(n),new Error("GL program linking failed: "+o)}return n}return o.drawFrame=function(s){var b=s.format,_=!e||t.width!==b.displayWidth||t.height!==b.displayHeight;if(_&&(t.width=b.displayWidth,t.height=b.displayHeight,o.clear()),e||function(){if(n.stripe){i=k(r.vertexStripe,r.fragmentStripe),a.getAttribLocation(i,"aPosition"),l=a.createBuffer();var t=new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]);a.bindBuffer(a.ARRAY_BUFFER,l),a.bufferData(a.ARRAY_BUFFER,t,a.STATIC_DRAW),d=a.getAttribLocation(i,"aTexturePosition"),f=a.getUniformLocation(i,"uStripe"),c=a.getUniformLocation(i,"uTexture")}e=k(r.vertex,r.fragment),h=a.createBuffer(),a.bindBuffer(a.ARRAY_BUFFER,h),a.bufferData(a.ARRAY_BUFFER,y,a.STATIC_DRAW),u=a.getAttribLocation(e,"aPosition"),p=a.createBuffer(),m=a.getAttribLocation(e,"aLumaPosition"),g=a.createBuffer(),v=a.getAttribLocation(e,"aChromaPosition")}(),_){var w=function(t,e,i){var r=b.cropLeft/i,n=(b.cropLeft+b.cropWidth)/i,o=(b.cropTop+b.cropHeight)/b.height,s=b.cropTop/b.height,h=new Float32Array([r,o,n,o,r,s,r,s,n,o,n,s]);a.bindBuffer(a.ARRAY_BUFFER,t),a.bufferData(a.ARRAY_BUFFER,h,a.STATIC_DRAW)};w(p,0,s.y.stride),w(g,0,s.u.stride*b.width/b.chromaWidth)}M("uTextureY",_,s.y.stride,b.height,s.y.bytes),M("uTextureCb",_,s.u.stride,b.chromaHeight,s.u.bytes),M("uTextureCr",_,s.v.stride,b.chromaHeight,s.v.bytes),n.stripe&&(E("uTextureY",_,s.y.stride,b.height),E("uTextureCb",_,s.u.stride,b.chromaHeight),E("uTextureCr",_,s.v.stride,b.chromaHeight)),a.useProgram(e),a.viewport(0,0,t.width,t.height),S("uTextureY",a.TEXTURE0,0),S("uTextureCb",a.TEXTURE1,1),S("uTextureCr",a.TEXTURE2,2),a.bindBuffer(a.ARRAY_BUFFER,h),a.enableVertexAttribArray(u),a.vertexAttribPointer(u,2,a.FLOAT,!1,0,0),a.bindBuffer(a.ARRAY_BUFFER,p),a.enableVertexAttribArray(m),a.vertexAttribPointer(m,2,a.FLOAT,!1,0,0),a.bindBuffer(a.ARRAY_BUFFER,g),a.enableVertexAttribArray(v),a.vertexAttribPointer(v,2,a.FLOAT,!1,0,0),a.drawArrays(a.TRIANGLES,0,y.length/2)},o.clear=function(){a.viewport(0,0,t.width,t.height),a.clearColor(0,0,0,0),a.clear(a.COLOR_BUFFER_BIT)},o.clear(),o}n.stripe=!1,n.contextForCanvas=function(t){var e={preferLowPowerToHighPerformance:!0,powerPreference:"low-power",failIfMajorPerformanceCaveat:!0,preserveDrawingBuffer:!0};return t.getContext("webgl",e)||t.getContext("experimental-webgl",e)},n.isAvailable=function(){var t,e=document.createElement("canvas");e.width=1,e.height=1;try{t=n.contextForCanvas(e)}catch(t){return!1}if(t){var i=t.TEXTURE0,r=t.createTexture(),o=new Uint8Array(16),a=n.stripe?1:4,s=n.stripe?t.RGBA:t.ALPHA,h=n.stripe?t.NEAREST:t.LINEAR;return t.activeTexture(i),t.bindTexture(t.TEXTURE_2D,r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,h),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,h),t.texImage2D(t.TEXTURE_2D,0,s,a,4,0,s,t.UNSIGNED_BYTE,o),!t.getError()}return!1},n.prototype=Object.create(e.prototype),t.exports=n}()},function(t,e){t.exports={vertex:"precision mediump float;\n\nattribute vec2 aPosition;\nattribute vec2 aLumaPosition;\nattribute vec2 aChromaPosition;\nvarying vec2 vLumaPosition;\nvarying vec2 vChromaPosition;\nvoid main() {\n gl_Position = vec4(aPosition, 0, 1);\n vLumaPosition = aLumaPosition;\n vChromaPosition = aChromaPosition;\n}\n",fragment:"// inspired by https://github.com/mbebenita/Broadway/blob/master/Player/canvas.js\n\nprecision mediump float;\n\nuniform sampler2D uTextureY;\nuniform sampler2D uTextureCb;\nuniform sampler2D uTextureCr;\nvarying vec2 vLumaPosition;\nvarying vec2 vChromaPosition;\nvoid main() {\n // Y, Cb, and Cr planes are uploaded as ALPHA textures.\n float fY = texture2D(uTextureY, vLumaPosition).w;\n float fCb = texture2D(uTextureCb, vChromaPosition).w;\n float fCr = texture2D(uTextureCr, vChromaPosition).w;\n\n // Premultipy the Y...\n float fYmul = fY * 1.1643828125;\n\n // And convert that to RGB!\n gl_FragColor = vec4(\n fYmul + 1.59602734375 * fCr - 0.87078515625,\n fYmul - 0.39176171875 * fCb - 0.81296875 * fCr + 0.52959375,\n fYmul + 2.017234375 * fCb - 1.081390625,\n 1\n );\n}\n",vertexStripe:"precision mediump float;\n\nattribute vec2 aPosition;\nattribute vec2 aTexturePosition;\nvarying vec2 vTexturePosition;\n\nvoid main() {\n gl_Position = vec4(aPosition, 0, 1);\n vTexturePosition = aTexturePosition;\n}\n",fragmentStripe:"// extra 'stripe' texture fiddling to work around IE 11's poor performance on gl.LUMINANCE and gl.ALPHA textures\n\nprecision mediump float;\n\nuniform sampler2D uStripe;\nuniform sampler2D uTexture;\nvarying vec2 vTexturePosition;\nvoid main() {\n // Y, Cb, and Cr planes are mapped into a pseudo-RGBA texture\n // so we can upload them without expanding the bytes on IE 11\n // which doesn't allow LUMINANCE or ALPHA textures\n // The stripe textures mark which channel to keep for each pixel.\n // Each texture extraction will contain the relevant value in one\n // channel only.\n\n float fLuminance = dot(\n texture2D(uStripe, vTexturePosition),\n texture2D(uTexture, vTexturePosition)\n );\n\n gl_FragColor = vec4(0, 0, 0, fLuminance);\n}\n"}},function(t,e,i){"use strict";e.byteLength=function(t){var e=u(t),i=e[0],r=e[1];return 3*(i+r)/4-r},e.toByteArray=function(t){var e,i,r=u(t),a=r[0],s=r[1],h=new o(function(t,e,i){return 3*(e+i)/4-i}(0,a,s)),l=0,d=s>0?a-4:a;for(i=0;i<d;i+=4)e=n[t.charCodeAt(i)]<<18|n[t.charCodeAt(i+1)]<<12|n[t.charCodeAt(i+2)]<<6|n[t.charCodeAt(i+3)],h[l++]=e>>16&255,h[l++]=e>>8&255,h[l++]=255&e;2===s&&(e=n[t.charCodeAt(i)]<<2|n[t.charCodeAt(i+1)]>>4,h[l++]=255&e);1===s&&(e=n[t.charCodeAt(i)]<<10|n[t.charCodeAt(i+1)]<<4|n[t.charCodeAt(i+2)]>>2,h[l++]=e>>8&255,h[l++]=255&e);return h},e.fromByteArray=function(t){for(var e,i=t.length,n=i%3,o=[],a=16383,s=0,h=i-n;s<h;s+=a)o.push(l(t,s,s+a>h?h:s+a));1===n?(e=t[i-1],o.push(r[e>>2]+r[e<<4&63]+"==")):2===n&&(e=(t[i-2]<<8)+t[i-1],o.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"="));return o.join("")};for(var r=[],n=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,h=a.length;s<h;++s)r[s]=a[s],n[a.charCodeAt(s)]=s;function u(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var i=t.indexOf("=");return-1===i&&(i=e),[i,i===e?0:4-i%4]}function l(t,e,i){for(var n,o,a=[],s=e;s<i;s+=3)n=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(255&t[s+2]),a.push(r[(o=n)>>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return a.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},function(t,e){e.read=function(t,e,i,r,n){var o,a,s=8*n-r-1,h=(1<<s)-1,u=h>>1,l=-7,d=i?n-1:0,f=i?-1:1,c=t[e+d];for(d+=f,o=c&(1<<-l)-1,c>>=-l,l+=s;l>0;o=256*o+t[e+d],d+=f,l-=8);for(a=o&(1<<-l)-1,o>>=-l,l+=r;l>0;a=256*a+t[e+d],d+=f,l-=8);if(0===o)o=1-u;else{if(o===h)return a?NaN:1/0*(c?-1:1);a+=Math.pow(2,r),o-=u}return(c?-1:1)*a*Math.pow(2,o-r)},e.write=function(t,e,i,r,n,o){var a,s,h,u=8*o-n-1,l=(1<<u)-1,d=l>>1,f=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,c=r?0:o-1,p=r?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=l):(a=Math.floor(Math.log(e)/Math.LN2),e*(h=Math.pow(2,-a))<1&&(a--,h*=2),(e+=a+d>=1?f/h:f*Math.pow(2,1-d))*h>=2&&(a++,h/=2),a+d>=l?(s=0,a=l):a+d>=1?(s=(e*h-1)*Math.pow(2,n),a+=d):(s=e*Math.pow(2,d-1)*Math.pow(2,n),a=0));n>=8;t[i+c]=255&s,c+=p,s/=256,n-=8);for(a=a<<n|s,u+=n;u>0;t[i+c]=255&a,c+=p,a/=256,u-=8);t[i+c-p]|=128*m}},function(t,e,i){(function(e){var i;i="undefined"!=typeof window?window:void 0!==e?e:"undefined"!=typeof self?self:{},t.exports=i}).call(this,i(10))},function(t,e,i){(function(e,i){var r;r=function(){"use strict";function t(t){return"function"==typeof t}var r=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},n=0,o=void 0,a=void 0,s=function(t,e){p[n]=t,p[n+1]=e,2===(n+=2)&&(a?a(m):v())},h="undefined"!=typeof window?window:void 0,u=h||{},l=u.MutationObserver||u.WebKitMutationObserver,d="undefined"==typeof self&&void 0!==e&&"[object process]"==={}.toString.call(e),f="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function c(){var t=setTimeout;return function(){return t(m,1)}}var p=new Array(1e3);function m(){for(var t=0;t<n;t+=2)(0,p[t])(p[t+1]),p[t]=void 0,p[t+1]=void 0;n=0}var g,v=void 0;function y(t,e){var i=this,r=new this.constructor(w);void 0===r[_]&&x(r);var n=i._state;if(n){var o=arguments[n-1];s((function(){return C(n,r,o,i._result)}))}else R(i,r,t,e);return r}function b(t){if(t&&"object"==typeof t&&t.constructor===this)return t;var e=new this(w);return E(e,t),e}d?v=function(){return e.nextTick(m)}:l?v=function(){var t=0,e=new l(m),i=document.createTextNode("");return e.observe(i,{characterData:!0}),function(){i.data=t=++t%2}}():f?((g=new MessageChannel).port1.onmessage=m,v=function(){return g.port2.postMessage(0)}):v=void 0===h?function(){try{var t=Function("return this")().require("vertx");return void 0!==(o=t.runOnLoop||t.runOnContext)?function(){o(m)}:c()}catch(t){return c()}}():c();var _=Math.random().toString(36).substring(2);function w(){}var A=void 0;function M(e,i,r){i.constructor===e.constructor&&r===y&&i.constructor.resolve===b?function(t,e){1===e._state?k(t,e._result):2===e._state?T(t,e._result):R(e,void 0,(function(e){return E(t,e)}),(function(e){return T(t,e)}))}(e,i):void 0===r?k(e,i):t(r)?function(t,e,i){s((function(t){var r=!1,n=function(t,e,i,r){try{t.call(e,i,r)}catch(t){return t}}(i,e,(function(i){r||(r=!0,e!==i?E(t,i):k(t,i))}),(function(e){r||(r=!0,T(t,e))}),t._label);!r&&n&&(r=!0,T(t,n))}),t)}(e,i,r):k(e,i)}function E(t,e){if(t===e)T(t,new TypeError("You cannot resolve a promise with itself"));else if(n=typeof(r=e),null===r||"object"!==n&&"function"!==n)k(t,e);else{var i=void 0;try{i=e.then}catch(e){return void T(t,e)}M(t,e,i)}var r,n}function S(t){t._onerror&&t._onerror(t._result),I(t)}function k(t,e){t._state===A&&(t._result=e,t._state=1,0!==t._subscribers.length&&s(I,t))}function T(t,e){t._state===A&&(t._state=2,t._result=e,s(S,t))}function R(t,e,i,r){var n=t._subscribers,o=n.length;t._onerror=null,n[o]=e,n[o+1]=i,n[o+2]=r,0===o&&t._state&&s(I,t)}function I(t){var e=t._subscribers,i=t._state;if(0!==e.length){for(var r=void 0,n=void 0,o=t._result,a=0;a<e.length;a+=3)r=e[a],n=e[a+i],r?C(i,r,n,o):n(o);t._subscribers.length=0}}function C(e,i,r,n){var o=t(r),a=void 0,s=void 0,h=!0;if(o){try{a=r(n)}catch(t){h=!1,s=t}if(i===a)return void T(i,new TypeError("A promises callback cannot return that same promise."))}else a=n;i._state!==A||(o&&h?E(i,a):!1===h?T(i,s):1===e?k(i,a):2===e&&T(i,a))}var P=0;function x(t){t[_]=P++,t._state=void 0,t._result=void 0,t._subscribers=[]}var D=function(){function t(t,e){this._instanceConstructor=t,this.promise=new t(w),this.promise[_]||x(this.promise),r(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?k(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&k(this.promise,this._result))):T(this.promise,new Error("Array Methods must be provided an Array"))}return t.prototype._enumerate=function(t){for(var e=0;this._state===A&&e<t.length;e++)this._eachEntry(t[e],e)},t.prototype._eachEntry=function(t,e){var i=this._instanceConstructor,r=i.resolve;if(r===b){var n=void 0,o=void 0,a=!1;try{n=t.then}catch(t){a=!0,o=t}if(n===y&&t._state!==A)this._settledAt(t._state,e,t._result);else if("function"!=typeof n)this._remaining--,this._result[e]=t;else if(i===O){var s=new i(w);a?T(s,o):M(s,t,n),this._willSettleAt(s,e)}else this._willSettleAt(new i((function(e){return e(t)})),e)}else this._willSettleAt(r(t),e)},t.prototype._settledAt=function(t,e,i){var r=this.promise;r._state===A&&(this._remaining--,2===t?T(r,i):this._result[e]=i),0===this._remaining&&k(r,this._result)},t.prototype._willSettleAt=function(t,e){var i=this;R(t,void 0,(function(t){return i._settledAt(1,e,t)}),(function(t){return i._settledAt(2,e,t)}))},t}(),O=function(){function e(t){this[_]=P++,this._result=this._state=void 0,this._subscribers=[],w!==t&&("function"!=typeof t&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof e?function(t,e){try{e((function(e){E(t,e)}),(function(e){T(t,e)}))}catch(e){T(t,e)}}(this,t):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}return e.prototype.catch=function(t){return this.then(null,t)},e.prototype.finally=function(e){var i=this,r=i.constructor;return t(e)?i.then((function(t){return r.resolve(e()).then((function(){return t}))}),(function(t){return r.resolve(e()).then((function(){throw t}))})):i.then(e,e)},e}();return O.prototype.then=y,O.all=function(t){return new D(this,t).promise},O.race=function(t){var e=this;return r(t)?new e((function(i,r){for(var n=t.length,o=0;o<n;o++)e.resolve(t[o]).then(i,r)})):new e((function(t,e){return e(new TypeError("You must pass an array to race."))}))},O.resolve=b,O.reject=function(t){var e=new this(w);return T(e,t),e},O._setScheduler=function(t){a=t},O._setAsap=function(t){s=t},O._asap=s,O.polyfill=function(){var t=void 0;if(void 0!==i)t=i;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var e=t.Promise;if(e){var r=null;try{r=Object.prototype.toString.call(e.resolve())}catch(t){}if("[object Promise]"===r&&!e.cast)return}t.Promise=O},O.Promise=O,O},t.exports=r()}).call(this,i(8),i(10))},function(t,e){var i=arguments[3],r=arguments[4],n=arguments[5],o=JSON.stringify;t.exports=function(t,e){for(var a,s=Object.keys(n),h=0,u=s.length;h<u;h++){var l=s[h],d=n[l].exports;if(d===t||d&&d.default===t){a=l;break}}if(!a){a=Math.floor(Math.pow(16,8)*Math.random()).toString(16);var f={};for(h=0,u=s.length;h<u;h++){f[l=s[h]]=l}r[a]=["function(require,module,exports){"+t+"(self); }",f]}var c=Math.floor(Math.pow(16,8)*Math.random()).toString(16),p={};p[a]=a,r[c]=["function(require,module,exports){var f = require("+o(a)+");(f.default ? f.default : f)(self);}",p];var m={};!function t(e){for(var i in m[e]=!0,r[e][1]){var n=r[e][1][i];m[n]||t(n)}}(c);var g="("+i+")({"+Object.keys(m).map((function(t){return o(t)+":["+r[t][0]+","+o(r[t][1])+"]"})).join(",")+"},{},["+o(c)+"])",v=window.URL||window.webkitURL||window.mozURL||window.msURL,y=new Blob([g],{type:"text/javascript"});if(e&&e.bare)return y;var b=v.createObjectURL(y),_=new Worker(b);return _.objectURL=b,_}},function(t,e){t.exports=function(t){if(!t.webpackPolyfill){var e=Object.create(t);e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),Object.defineProperty(e,"exports",{enumerable:!0}),e.webpackPolyfill=1}return e}},function(t,e){},function(t,e,i){(function(t){function i(t,e){for(var i=0,r=t.length-1;r>=0;r--){var n=t[r];"."===n?t.splice(r,1):".."===n?(t.splice(r,1),i++):i&&(t.splice(r,1),i--)}if(e)for(;i--;i)t.unshift("..");return t}function r(t,e){if(t.filter)return t.filter(e);for(var i=[],r=0;r<t.length;r++)e(t[r],r,t)&&i.push(t[r]);return i}e.resolve=function(){for(var e="",n=!1,o=arguments.length-1;o>=-1&&!n;o--){var a=o>=0?arguments[o]:t.cwd();if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(e=a+"/"+e,n="/"===a.charAt(0))}return(n?"/":"")+(e=i(r(e.split("/"),(function(t){return!!t})),!n).join("/"))||"."},e.normalize=function(t){var o=e.isAbsolute(t),a="/"===n(t,-1);return(t=i(r(t.split("/"),(function(t){return!!t})),!o).join("/"))||o||(t="."),t&&a&&(t+="/"),(o?"/":"")+t},e.isAbsolute=function(t){return"/"===t.charAt(0)},e.join=function(){var t=Array.prototype.slice.call(arguments,0);return e.normalize(r(t,(function(t,e){if("string"!=typeof t)throw new TypeError("Arguments to path.join must be strings");return t})).join("/"))},e.relative=function(t,i){function r(t){for(var e=0;e<t.length&&""===t[e];e++);for(var i=t.length-1;i>=0&&""===t[i];i--);return e>i?[]:t.slice(e,i-e+1)}t=e.resolve(t).substr(1),i=e.resolve(i).substr(1);for(var n=r(t.split("/")),o=r(i.split("/")),a=Math.min(n.length,o.length),s=a,h=0;h<a;h++)if(n[h]!==o[h]){s=h;break}var u=[];for(h=s;h<n.length;h++)u.push("..");return(u=u.concat(o.slice(s))).join("/")},e.sep="/",e.delimiter=":",e.dirname=function(t){if("string"!=typeof t&&(t+=""),0===t.length)return".";for(var e=t.charCodeAt(0),i=47===e,r=-1,n=!0,o=t.length-1;o>=1;--o)if(47===(e=t.charCodeAt(o))){if(!n){r=o;break}}else n=!1;return-1===r?i?"/":".":i&&1===r?"/":t.slice(0,r)},e.basename=function(t,e){var i=function(t){"string"!=typeof t&&(t+="");var e,i=0,r=-1,n=!0;for(e=t.length-1;e>=0;--e)if(47===t.charCodeAt(e)){if(!n){i=e+1;break}}else-1===r&&(n=!1,r=e+1);return-1===r?"":t.slice(i,r)}(t);return e&&i.substr(-1*e.length)===e&&(i=i.substr(0,i.length-e.length)),i},e.extname=function(t){"string"!=typeof t&&(t+="");for(var e=-1,i=0,r=-1,n=!0,o=0,a=t.length-1;a>=0;--a){var s=t.charCodeAt(a);if(47!==s)-1===r&&(n=!1,r=a+1),46===s?-1===e?e=a:1!==o&&(o=1):-1!==e&&(o=-1);else if(!n){i=a+1;break}}return-1===e||-1===r||0===o||1===o&&e===r-1&&e===i+1?"":t.slice(e,r)};var n="b"==="ab".substr(-1)?function(t,e,i){return t.substr(e,i)}:function(t,e,i){return e<0&&(e=t.length+e),t.substr(e,i)}}).call(this,i(8))},function(t,e,i){"use strict";e.randomBytes=e.rng=e.pseudoRandomBytes=e.prng=i(25),e.createHash=e.Hash=i(35),e.createHmac=e.Hmac=i(92);var r=i(173),n=Object.keys(r),o=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(n);e.getHashes=function(){return o};var a=i(95);e.pbkdf2=a.pbkdf2,e.pbkdf2Sync=a.pbkdf2Sync;var s=i(175);e.Cipher=s.Cipher,e.createCipher=s.createCipher,e.Cipheriv=s.Cipheriv,e.createCipheriv=s.createCipheriv,e.Decipher=s.Decipher,e.createDecipher=s.createDecipher,e.Decipheriv=s.Decipheriv,e.createDecipheriv=s.createDecipheriv,e.getCiphers=s.getCiphers,e.listCiphers=s.listCiphers;var h=i(190);e.DiffieHellmanGroup=h.DiffieHellmanGroup,e.createDiffieHellmanGroup=h.createDiffieHellmanGroup,e.getDiffieHellman=h.getDiffieHellman,e.createDiffieHellman=h.createDiffieHellman,e.DiffieHellman=h.DiffieHellman;var u=i(197);e.createSign=u.createSign,e.Sign=u.Sign,e.createVerify=u.createVerify,e.Verify=u.Verify,e.createECDH=i(238);var l=i(241);e.publicEncrypt=l.publicEncrypt,e.privateEncrypt=l.privateEncrypt,e.publicDecrypt=l.publicDecrypt,e.privateDecrypt=l.privateDecrypt;var d=i(245);e.randomFill=d.randomFill,e.randomFillSync=d.randomFillSync,e.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},e.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},function(t,e,i){(e=t.exports=i(80)).Stream=e,e.Readable=e,e.Writable=i(84),e.Duplex=i(27),e.Transform=i(85),e.PassThrough=i(155),e.finished=i(54),e.pipeline=i(156)},function(t,e){},function(t,e,i){"use strict";function r(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,r)}return i}function n(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function o(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var a=i(9).Buffer,s=i(152).inspect,h=s&&s.custom||"inspect";t.exports=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.head=null,this.tail=null,this.length=0}var e,i,u;return e=t,i=[{key:"push",value:function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(0===this.length)return"";for(var e=this.head,i=""+e.data;e=e.next;)i+=t+e.data;return i}},{key:"concat",value:function(t){if(0===this.length)return a.alloc(0);for(var e,i,r,n=a.allocUnsafe(t>>>0),o=this.head,s=0;o;)e=o.data,i=n,r=s,a.prototype.copy.call(e,i,r),s+=o.data.length,o=o.next;return n}},{key:"consume",value:function(t,e){var i;return t<this.head.data.length?(i=this.head.data.slice(0,t),this.head.data=this.head.data.slice(t)):i=t===this.head.data.length?this.shift():e?this._getString(t):this._getBuffer(t),i}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(t){var e=this.head,i=1,r=e.data;for(t-=r.length;e=e.next;){var n=e.data,o=t>n.length?n.length:t;if(o===n.length?r+=n:r+=n.slice(0,t),0==(t-=o)){o===n.length?(++i,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=n.slice(o));break}++i}return this.length-=i,r}},{key:"_getBuffer",value:function(t){var e=a.allocUnsafe(t),i=this.head,r=1;for(i.data.copy(e),t-=i.data.length;i=i.next;){var n=i.data,o=t>n.length?n.length:t;if(n.copy(e,e.length-t,0,o),0==(t-=o)){o===n.length?(++r,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=n.slice(o));break}++r}return this.length-=r,e}},{key:h,value:function(t,e){return s(this,function(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?r(Object(i),!0).forEach((function(e){n(t,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):r(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}))}return t}({},e,{depth:0,customInspect:!1}))}}],i&&o(e.prototype,i),u&&o(e,u),t}()},function(t,e){},function(t,e,i){"use strict";(function(e){var r;function n(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}var o=i(54),a=Symbol("lastResolve"),s=Symbol("lastReject"),h=Symbol("error"),u=Symbol("ended"),l=Symbol("lastPromise"),d=Symbol("handlePromise"),f=Symbol("stream");function c(t,e){return{value:t,done:e}}function p(t){var e=t[a];if(null!==e){var i=t[f].read();null!==i&&(t[l]=null,t[a]=null,t[s]=null,e(c(i,!1)))}}function m(t){e.nextTick(p,t)}var g=Object.getPrototypeOf((function(){})),v=Object.setPrototypeOf((n(r={get stream(){return this[f]},next:function(){var t=this,i=this[h];if(null!==i)return Promise.reject(i);if(this[u])return Promise.resolve(c(void 0,!0));if(this[f].destroyed)return new Promise((function(i,r){e.nextTick((function(){t[h]?r(t[h]):i(c(void 0,!0))}))}));var r,n=this[l];if(n)r=new Promise(function(t,e){return function(i,r){t.then((function(){e[u]?i(c(void 0,!0)):e[d](i,r)}),r)}}(n,this));else{var o=this[f].read();if(null!==o)return Promise.resolve(c(o,!1));r=new Promise(this[d])}return this[l]=r,r}},Symbol.asyncIterator,(function(){return this})),n(r,"return",(function(){var t=this;return new Promise((function(e,i){t[f].destroy(null,(function(t){t?i(t):e(c(void 0,!0))}))}))})),r),g);t.exports=function(t){var e,i=Object.create(v,(n(e={},f,{value:t,writable:!0}),n(e,a,{value:null,writable:!0}),n(e,s,{value:null,writable:!0}),n(e,h,{value:null,writable:!0}),n(e,u,{value:t._readableState.endEmitted,writable:!0}),n(e,d,{value:function(t,e){var r=i[f].read();r?(i[l]=null,i[a]=null,i[s]=null,t(c(r,!1))):(i[a]=t,i[s]=e)},writable:!0}),e));return i[l]=null,o(t,(function(t){if(t&&"ERR_STREAM_PREMATURE_CLOSE"!==t.code){var e=i[s];return null!==e&&(i[l]=null,i[a]=null,i[s]=null,e(t)),void(i[h]=t)}var r=i[a];null!==r&&(i[l]=null,i[a]=null,i[s]=null,r(c(void 0,!0))),i[u]=!0})),t.on("readable",m.bind(null,i)),i}}).call(this,i(8))},function(t,e){t.exports=function(){throw new Error("Readable.from is not available in the browser")}},function(t,e,i){"use strict";t.exports=n;var r=i(85);function n(t){if(!(this instanceof n))return new n(t);r.call(this,t)}i(3)(n,r),n.prototype._transform=function(t,e,i){i(null,t)}},function(t,e,i){"use strict";var r;var n=i(26).codes,o=n.ERR_MISSING_ARGS,a=n.ERR_STREAM_DESTROYED;function s(t){if(t)throw t}function h(t,e,n,o){o=function(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}(o);var s=!1;t.on("close",(function(){s=!0})),void 0===r&&(r=i(54)),r(t,{readable:e,writable:n},(function(t){if(t)return o(t);s=!0,o()}));var h=!1;return function(e){if(!s&&!h)return h=!0,function(t){return t.setHeader&&"function"==typeof t.abort}(t)?t.abort():"function"==typeof t.destroy?t.destroy():void o(e||new a("pipe"))}}function u(t){t()}function l(t,e){return t.pipe(e)}function d(t){return t.length?"function"!=typeof t[t.length-1]?s:t.pop():s}t.exports=function(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];var r,n=d(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new o("streams");var a=e.map((function(t,i){var o=i<e.length-1;return h(t,o,i>0,(function(t){r||(r=t),t&&a.forEach(u),o||(a.forEach(u),n(r))}))}));return e.reduce(l)}},function(t,e,i){var r=i(3),n=i(28),o=i(4).Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function h(){this.init(),this._w=s,n.call(this,64,56)}function u(t){return t<<30|t>>>2}function l(t,e,i,r){return 0===t?e&i|~e&r:2===t?e&i|e&r|i&r:e^i^r}r(h,n),h.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},h.prototype._update=function(t){for(var e,i=this._w,r=0|this._a,n=0|this._b,o=0|this._c,s=0|this._d,h=0|this._e,d=0;d<16;++d)i[d]=t.readInt32BE(4*d);for(;d<80;++d)i[d]=i[d-3]^i[d-8]^i[d-14]^i[d-16];for(var f=0;f<80;++f){var c=~~(f/20),p=0|((e=r)<<5|e>>>27)+l(c,n,o,s)+h+i[f]+a[c];h=s,s=o,o=u(n),n=r,r=p}this._a=r+this._a|0,this._b=n+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=h+this._e|0},h.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=h},function(t,e,i){var r=i(3),n=i(28),o=i(4).Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function h(){this.init(),this._w=s,n.call(this,64,56)}function u(t){return t<<5|t>>>27}function l(t){return t<<30|t>>>2}function d(t,e,i,r){return 0===t?e&i|~e&r:2===t?e&i|e&r|i&r:e^i^r}r(h,n),h.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},h.prototype._update=function(t){for(var e,i=this._w,r=0|this._a,n=0|this._b,o=0|this._c,s=0|this._d,h=0|this._e,f=0;f<16;++f)i[f]=t.readInt32BE(4*f);for(;f<80;++f)i[f]=(e=i[f-3]^i[f-8]^i[f-14]^i[f-16])<<1|e>>>31;for(var c=0;c<80;++c){var p=~~(c/20),m=u(r)+d(p,n,o,s)+h+i[c]+a[p]|0;h=s,s=o,o=l(n),n=r,r=m}this._a=r+this._a|0,this._b=n+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=h+this._e|0},h.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=h},function(t,e,i){var r=i(3),n=i(86),o=i(28),a=i(4).Buffer,s=new Array(64);function h(){this.init(),this._w=s,o.call(this,64,56)}r(h,n),h.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},h.prototype._hash=function(){var t=a.allocUnsafe(28);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t},t.exports=h},function(t,e,i){var r=i(3),n=i(87),o=i(28),a=i(4).Buffer,s=new Array(160);function h(){this.init(),this._w=s,o.call(this,128,112)}r(h,n),h.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},h.prototype._hash=function(){var t=a.allocUnsafe(48);function e(e,i,r){t.writeInt32BE(e,r),t.writeInt32BE(i,r+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),t},t.exports=h},function(t,e,i){t.exports=n;var r=i(6).EventEmitter;function n(){r.call(this)}i(3)(n,r),n.Readable=i(57),n.Writable=i(168),n.Duplex=i(169),n.Transform=i(170),n.PassThrough=i(171),n.Stream=n,n.prototype.pipe=function(t,e){var i=this;function n(e){t.writable&&!1===t.write(e)&&i.pause&&i.pause()}function o(){i.readable&&i.resume&&i.resume()}i.on("data",n),t.on("drain",o),t._isStdio||e&&!1===e.end||(i.on("end",s),i.on("close",h));var a=!1;function s(){a||(a=!0,t.end())}function h(){a||(a=!0,"function"==typeof t.destroy&&t.destroy())}function u(t){if(l(),0===r.listenerCount(this,"error"))throw t}function l(){i.removeListener("data",n),t.removeListener("drain",o),i.removeListener("end",s),i.removeListener("close",h),i.removeListener("error",u),t.removeListener("error",u),i.removeListener("end",l),i.removeListener("close",l),t.removeListener("close",l)}return i.on("error",u),t.on("error",u),i.on("end",l),i.on("close",l),t.on("close",l),t.emit("pipe",i),t}},function(t,e){},function(t,e,i){"use strict";var r=i(58).Buffer,n=i(164);t.exports=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.head=null,this.tail=null,this.length=0}return t.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return"";for(var e=this.head,i=""+e.data;e=e.next;)i+=t+e.data;return i},t.prototype.concat=function(t){if(0===this.length)return r.alloc(0);if(1===this.length)return this.head.data;for(var e,i,n,o=r.allocUnsafe(t>>>0),a=this.head,s=0;a;)e=a.data,i=o,n=s,e.copy(i,n),s+=a.data.length,a=a.next;return o},t}(),n&&n.inspect&&n.inspect.custom&&(t.exports.prototype[n.inspect.custom]=function(){var t=n.inspect({length:this.length});return this.constructor.name+" "+t})},function(t,e){},function(t,e,i){(function(t){var r=void 0!==t&&t||"undefined"!=typeof self&&self||window,n=Function.prototype.apply;function o(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new o(n.call(setTimeout,r,arguments),clearTimeout)},e.setInterval=function(){return new o(n.call(setInterval,r,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(r,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},i(166),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,i(10))},function(t,e,i){(function(t,e){!function(t,i){"use strict";if(!t.setImmediate){var r,n,o,a,s,h=1,u={},l=!1,d=t.document,f=Object.getPrototypeOf&&Object.getPrototypeOf(t);f=f&&f.setTimeout?f:t,"[object process]"==={}.toString.call(t.process)?r=function(t){e.nextTick((function(){p(t)}))}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,i=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=i,e}}()?t.MessageChannel?((o=new MessageChannel).port1.onmessage=function(t){p(t.data)},r=function(t){o.port2.postMessage(t)}):d&&"onreadystatechange"in d.createElement("script")?(n=d.documentElement,r=function(t){var e=d.createElement("script");e.onreadystatechange=function(){p(t),e.onreadystatechange=null,n.removeChild(e),e=null},n.appendChild(e)}):r=function(t){setTimeout(p,0,t)}:(a="setImmediate$"+Math.random()+"$",s=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(a)&&p(+e.data.slice(a.length))},t.addEventListener?t.addEventListener("message",s,!1):t.attachEvent("onmessage",s),r=function(e){t.postMessage(a+e,"*")}),f.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),i=0;i<e.length;i++)e[i]=arguments[i+1];var n={callback:t,args:e};return u[h]=n,r(h),h++},f.clearImmediate=c}function c(t){delete u[t]}function p(t){if(l)setTimeout(p,0,t);else{var e=u[t];if(e){l=!0;try{!function(t){var e=t.callback,i=t.args;switch(i.length){case 0:e();break;case 1:e(i[0]);break;case 2:e(i[0],i[1]);break;case 3:e(i[0],i[1],i[2]);break;default:e.apply(void 0,i)}}(e)}finally{c(t),l=!1}}}}}("undefined"==typeof self?void 0===t?this:t:self)}).call(this,i(10),i(8))},function(t,e,i){"use strict";t.exports=o;var r=i(91),n=Object.create(i(36));function o(t){if(!(this instanceof o))return new o(t);r.call(this,t)}n.inherits=i(3),n.inherits(o,r),o.prototype._transform=function(t,e,i){i(null,t)}},function(t,e,i){t.exports=i(59)},function(t,e,i){t.exports=i(19)},function(t,e,i){t.exports=i(57).Transform},function(t,e,i){t.exports=i(57).PassThrough},function(t,e,i){"use strict";var r=i(3),n=i(4).Buffer,o=i(17),a=n.alloc(128),s=64;function h(t,e){o.call(this,"digest"),"string"==typeof e&&(e=n.from(e)),this._alg=t,this._key=e,e.length>s?e=t(e):e.length<s&&(e=n.concat([e,a],s));for(var i=this._ipad=n.allocUnsafe(s),r=this._opad=n.allocUnsafe(s),h=0;h<s;h++)i[h]=54^e[h],r[h]=92^e[h];this._hash=[i]}r(h,o),h.prototype._update=function(t){this._hash.push(t)},h.prototype._final=function(){var t=this._alg(n.concat(this._hash));return this._alg(n.concat([this._opad,t]))},t.exports=h},function(t,e,i){t.exports=i(94)},function(t,e,i){(function(e){var r,n,o=i(4).Buffer,a=i(96),s=i(97),h=i(98),u=i(99),l=e.crypto&&e.crypto.subtle,d={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},f=[];function c(){return n||(n=e.process&&e.process.nextTick?e.process.nextTick:e.queueMicrotask?e.queueMicrotask:e.setImmediate?e.setImmediate:e.setTimeout)}function p(t,e,i,r,n){return l.importKey("raw",t,{name:"PBKDF2"},!1,["deriveBits"]).then((function(t){return l.deriveBits({name:"PBKDF2",salt:e,iterations:i,hash:{name:n}},t,r<<3)})).then((function(t){return o.from(t)}))}t.exports=function(t,i,n,m,g,v){"function"==typeof g&&(v=g,g=void 0);var y=d[(g=g||"sha1").toLowerCase()];if(y&&"function"==typeof e.Promise){if(a(n,m),t=u(t,s,"Password"),i=u(i,s,"Salt"),"function"!=typeof v)throw new Error("No callback provided to pbkdf2");!function(t,e){t.then((function(t){c()((function(){e(null,t)}))}),(function(t){c()((function(){e(t)}))}))}(function(t){if(e.process&&!e.process.browser)return Promise.resolve(!1);if(!l||!l.importKey||!l.deriveBits)return Promise.resolve(!1);if(void 0!==f[t])return f[t];var i=p(r=r||o.alloc(8),r,10,128,t).then((function(){return!0})).catch((function(){return!1}));return f[t]=i,i}(y).then((function(e){return e?p(t,i,n,m,y):h(t,i,n,m,g)})),v)}else c()((function(){var e;try{e=h(t,i,n,m,g)}catch(t){return v(t)}v(null,e)}))}}).call(this,i(10))},function(t,e,i){var r=i(176),n=i(61),o=i(62),a=i(189),s=i(44);function h(t,e,i){if(t=t.toLowerCase(),o[t])return n.createCipheriv(t,e,i);if(a[t])return new r({key:e,iv:i,mode:t});throw new TypeError("invalid suite type")}function u(t,e,i){if(t=t.toLowerCase(),o[t])return n.createDecipheriv(t,e,i);if(a[t])return new r({key:e,iv:i,mode:t,decrypt:!0});throw new TypeError("invalid suite type")}e.createCipher=e.Cipher=function(t,e){var i,r;if(t=t.toLowerCase(),o[t])i=o[t].key,r=o[t].iv;else{if(!a[t])throw new TypeError("invalid suite type");i=8*a[t].key,r=a[t].iv}var n=s(e,!1,i,r);return h(t,n.key,n.iv)},e.createCipheriv=e.Cipheriv=h,e.createDecipher=e.Decipher=function(t,e){var i,r;if(t=t.toLowerCase(),o[t])i=o[t].key,r=o[t].iv;else{if(!a[t])throw new TypeError("invalid suite type");i=8*a[t].key,r=a[t].iv}var n=s(e,!1,i,r);return u(t,n.key,n.iv)},e.createDecipheriv=e.Decipheriv=u,e.listCiphers=e.getCiphers=function(){return Object.keys(a).concat(n.getCiphers())}},function(t,e,i){var r=i(17),n=i(177),o=i(3),a=i(4).Buffer,s={"des-ede3-cbc":n.CBC.instantiate(n.EDE),"des-ede3":n.EDE,"des-ede-cbc":n.CBC.instantiate(n.EDE),"des-ede":n.EDE,"des-cbc":n.CBC.instantiate(n.DES),"des-ecb":n.DES};function h(t){r.call(this);var e,i=t.mode.toLowerCase(),n=s[i];e=t.decrypt?"decrypt":"encrypt";var o=t.key;a.isBuffer(o)||(o=a.from(o)),"des-ede"!==i&&"des-ede-cbc"!==i||(o=a.concat([o,o.slice(0,8)]));var h=t.iv;a.isBuffer(h)||(h=a.from(h)),this._des=n.create({key:o,iv:h,type:e})}s.des=s["des-cbc"],s.des3=s["des-ede3-cbc"],t.exports=h,o(h,r),h.prototype._update=function(t){return a.from(this._des.update(t))},h.prototype._final=function(){return a.from(this._des.final())}},function(t,e,i){"use strict";e.utils=i(100),e.Cipher=i(60),e.DES=i(101),e.CBC=i(178),e.EDE=i(179)},function(t,e,i){"use strict";var r=i(13),n=i(3),o={};function a(t){r.equal(t.length,8,"Invalid IV length"),this.iv=new Array(8);for(var e=0;e<this.iv.length;e++)this.iv[e]=t[e]}e.instantiate=function(t){function e(e){t.call(this,e),this._cbcInit()}n(e,t);for(var i=Object.keys(o),r=0;r<i.length;r++){var a=i[r];e.prototype[a]=o[a]}return e.create=function(t){return new e(t)},e},o._cbcInit=function(){var t=new a(this.options.iv);this._cbcState=t},o._update=function(t,e,i,r){var n=this._cbcState,o=this.constructor.super_.prototype,a=n.iv;if("encrypt"===this.type){for(var s=0;s<this.blockSize;s++)a[s]^=t[e+s];o._update.call(this,a,0,i,r);for(s=0;s<this.blockSize;s++)a[s]=i[r+s]}else{o._update.call(this,t,e,i,r);for(s=0;s<this.blockSize;s++)i[r+s]^=a[s];for(s=0;s<this.blockSize;s++)a[s]=t[e+s]}}},function(t,e,i){"use strict";var r=i(13),n=i(3),o=i(60),a=i(101);function s(t,e){r.equal(e.length,24,"Invalid key length");var i=e.slice(0,8),n=e.slice(8,16),o=e.slice(16,24);this.ciphers="encrypt"===t?[a.create({type:"encrypt",key:i}),a.create({type:"decrypt",key:n}),a.create({type:"encrypt",key:o})]:[a.create({type:"decrypt",key:o}),a.create({type:"encrypt",key:n}),a.create({type:"decrypt",key:i})]}function h(t){o.call(this,t);var e=new s(this.type,this.options.key);this._edeState=e}n(h,o),t.exports=h,h.create=function(t){return new h(t)},h.prototype._update=function(t,e,i,r){var n=this._edeState;n.ciphers[0]._update(t,e,i,r),n.ciphers[1]._update(i,r,i,r),n.ciphers[2]._update(i,r,i,r)},h.prototype._pad=a.prototype._pad,h.prototype._unpad=a.prototype._unpad},function(t,e,i){var r=i(62),n=i(105),o=i(4).Buffer,a=i(106),s=i(17),h=i(43),u=i(44);function l(t,e,i){s.call(this),this._cache=new f,this._cipher=new h.AES(e),this._prev=o.from(i),this._mode=t,this._autopadding=!0}i(3)(l,s),l.prototype._update=function(t){var e,i;this._cache.add(t);for(var r=[];e=this._cache.get();)i=this._mode.encrypt(this,e),r.push(i);return o.concat(r)};var d=o.alloc(16,16);function f(){this.cache=o.allocUnsafe(0)}function c(t,e,i){var s=r[t.toLowerCase()];if(!s)throw new TypeError("invalid suite type");if("string"==typeof e&&(e=o.from(e)),e.length!==s.key/8)throw new TypeError("invalid key length "+e.length);if("string"==typeof i&&(i=o.from(i)),"GCM"!==s.mode&&i.length!==s.iv)throw new TypeError("invalid iv length "+i.length);return"stream"===s.type?new a(s.module,e,i):"auth"===s.type?new n(s.module,e,i):new l(s.module,e,i)}l.prototype._final=function(){var t=this._cache.flush();if(this._autopadding)return t=this._mode.encrypt(this,t),this._cipher.scrub(),t;if(!t.equals(d))throw this._cipher.scrub(),new Error("data not multiple of block length")},l.prototype.setAutoPadding=function(t){return this._autopadding=!!t,this},f.prototype.add=function(t){this.cache=o.concat([this.cache,t])},f.prototype.get=function(){if(this.cache.length>15){var t=this.cache.slice(0,16);return this.cache=this.cache.slice(16),t}return null},f.prototype.flush=function(){for(var t=16-this.cache.length,e=o.allocUnsafe(t),i=-1;++i<t;)e.writeUInt8(t,i);return o.concat([this.cache,e])},e.createCipheriv=c,e.createCipher=function(t,e){var i=r[t.toLowerCase()];if(!i)throw new TypeError("invalid suite type");var n=u(e,!1,i.key,i.iv);return c(t,n.key,n.iv)}},function(t,e){e.encrypt=function(t,e){return t._cipher.encryptBlock(e)},e.decrypt=function(t,e){return t._cipher.decryptBlock(e)}},function(t,e,i){var r=i(37);e.encrypt=function(t,e){var i=r(e,t._prev);return t._prev=t._cipher.encryptBlock(i),t._prev},e.decrypt=function(t,e){var i=t._prev;t._prev=e;var n=t._cipher.decryptBlock(e);return r(n,i)}},function(t,e,i){var r=i(4).Buffer,n=i(37);function o(t,e,i){var o=e.length,a=n(e,t._cache);return t._cache=t._cache.slice(o),t._prev=r.concat([t._prev,i?e:a]),a}e.encrypt=function(t,e,i){for(var n,a=r.allocUnsafe(0);e.length;){if(0===t._cache.length&&(t._cache=t._cipher.encryptBlock(t._prev),t._prev=r.allocUnsafe(0)),!(t._cache.length<=e.length)){a=r.concat([a,o(t,e,i)]);break}n=t._cache.length,a=r.concat([a,o(t,e.slice(0,n),i)]),e=e.slice(n)}return a}},function(t,e,i){var r=i(4).Buffer;function n(t,e,i){var n=t._cipher.encryptBlock(t._prev)[0]^e;return t._prev=r.concat([t._prev.slice(1),r.from([i?e:n])]),n}e.encrypt=function(t,e,i){for(var o=e.length,a=r.allocUnsafe(o),s=-1;++s<o;)a[s]=n(t,e[s],i);return a}},function(t,e,i){var r=i(4).Buffer;function n(t,e,i){for(var r,n,a=-1,s=0;++a<8;)r=e&1<<7-a?128:0,s+=(128&(n=t._cipher.encryptBlock(t._prev)[0]^r))>>a%8,t._prev=o(t._prev,i?r:n);return s}function o(t,e){var i=t.length,n=-1,o=r.allocUnsafe(t.length);for(t=r.concat([t,r.from([e])]);++n<i;)o[n]=t[n]<<1|t[n+1]>>7;return o}e.encrypt=function(t,e,i){for(var o=e.length,a=r.allocUnsafe(o),s=-1;++s<o;)a[s]=n(t,e[s],i);return a}},function(t,e,i){(function(t){var r=i(37);function n(t){return t._prev=t._cipher.encryptBlock(t._prev),t._prev}e.encrypt=function(e,i){for(;e._cache.length<i.length;)e._cache=t.concat([e._cache,n(e)]);var o=e._cache.slice(0,i.length);return e._cache=e._cache.slice(i.length),r(i,o)}}).call(this,i(9).Buffer)},function(t,e,i){var r=i(4).Buffer,n=r.alloc(16,0);function o(t){var e=r.allocUnsafe(16);return e.writeUInt32BE(t[0]>>>0,0),e.writeUInt32BE(t[1]>>>0,4),e.writeUInt32BE(t[2]>>>0,8),e.writeUInt32BE(t[3]>>>0,12),e}function a(t){this.h=t,this.state=r.alloc(16,0),this.cache=r.allocUnsafe(0)}a.prototype.ghash=function(t){for(var e=-1;++e<t.length;)this.state[e]^=t[e];this._multiply()},a.prototype._multiply=function(){for(var t,e,i,r=[(t=this.h).readUInt32BE(0),t.readUInt32BE(4),t.readUInt32BE(8),t.readUInt32BE(12)],n=[0,0,0,0],a=-1;++a<128;){for(0!=(this.state[~~(a/8)]&1<<7-a%8)&&(n[0]^=r[0],n[1]^=r[1],n[2]^=r[2],n[3]^=r[3]),i=0!=(1&r[3]),e=3;e>0;e--)r[e]=r[e]>>>1|(1&r[e-1])<<31;r[0]=r[0]>>>1,i&&(r[0]=r[0]^225<<24)}this.state=o(n)},a.prototype.update=function(t){var e;for(this.cache=r.concat([this.cache,t]);this.cache.length>=16;)e=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(e)},a.prototype.final=function(t,e){return this.cache.length&&this.ghash(r.concat([this.cache,n],16)),this.ghash(o([0,t,0,e])),this.state},t.exports=a},function(t,e,i){var r=i(105),n=i(4).Buffer,o=i(62),a=i(106),s=i(17),h=i(43),u=i(44);function l(t,e,i){s.call(this),this._cache=new d,this._last=void 0,this._cipher=new h.AES(e),this._prev=n.from(i),this._mode=t,this._autopadding=!0}function d(){this.cache=n.allocUnsafe(0)}function f(t,e,i){var s=o[t.toLowerCase()];if(!s)throw new TypeError("invalid suite type");if("string"==typeof i&&(i=n.from(i)),"GCM"!==s.mode&&i.length!==s.iv)throw new TypeError("invalid iv length "+i.length);if("string"==typeof e&&(e=n.from(e)),e.length!==s.key/8)throw new TypeError("invalid key length "+e.length);return"stream"===s.type?new a(s.module,e,i,!0):"auth"===s.type?new r(s.module,e,i,!0):new l(s.module,e,i)}i(3)(l,s),l.prototype._update=function(t){var e,i;this._cache.add(t);for(var r=[];e=this._cache.get(this._autopadding);)i=this._mode.decrypt(this,e),r.push(i);return n.concat(r)},l.prototype._final=function(){var t=this._cache.flush();if(this._autopadding)return function(t){var e=t[15];if(e<1||e>16)throw new Error("unable to decrypt data");var i=-1;for(;++i<e;)if(t[i+(16-e)]!==e)throw new Error("unable to decrypt data");if(16===e)return;return t.slice(0,16-e)}(this._mode.decrypt(this,t));if(t)throw new Error("data not multiple of block length")},l.prototype.setAutoPadding=function(t){return this._autopadding=!!t,this},d.prototype.add=function(t){this.cache=n.concat([this.cache,t])},d.prototype.get=function(t){var e;if(t){if(this.cache.length>16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e}else if(this.cache.length>=16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e;return null},d.prototype.flush=function(){if(this.cache.length)return this.cache},e.createDecipher=function(t,e){var i=o[t.toLowerCase()];if(!i)throw new TypeError("invalid suite type");var r=u(e,!1,i.key,i.iv);return f(t,r.key,r.iv)},e.createDecipheriv=f},function(t,e){e["des-ecb"]={key:8,iv:0},e["des-cbc"]=e.des={key:8,iv:8},e["des-ede3-cbc"]=e.des3={key:24,iv:8},e["des-ede3"]={key:24,iv:0},e["des-ede-cbc"]={key:16,iv:8},e["des-ede"]={key:16,iv:0}},function(t,e,i){(function(t){var r=i(107),n=i(195),o=i(196);var a={binary:!0,hex:!0,base64:!0};e.DiffieHellmanGroup=e.createDiffieHellmanGroup=e.getDiffieHellman=function(e){var i=new t(n[e].prime,"hex"),r=new t(n[e].gen,"hex");return new o(i,r)},e.createDiffieHellman=e.DiffieHellman=function e(i,n,s,h){return t.isBuffer(n)||void 0===a[n]?e(i,"binary",n,s):(n=n||"binary",h=h||"binary",s=s||new t([2]),t.isBuffer(s)||(s=new t(s,h)),"number"==typeof i?new o(r(i,s),s,!0):(t.isBuffer(i)||(i=new t(i,n)),new o(i,s,!0)))}}).call(this,i(9).Buffer)},function(t,e){},function(t,e,i){(function(t){!function(t,e){"use strict";function r(t,e){if(!t)throw new Error(e||"Assertion failed")}function n(t,e){t.super_=e;var i=function(){};i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t}function o(t,e,i){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(i=e,e=10),this._init(t||0,e||10,i||"be"))}var a;"object"==typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:i(193).Buffer}catch(t){}function s(t,e){var i=t.charCodeAt(e);return i>=65&&i<=70?i-55:i>=97&&i<=102?i-87:i-48&15}function h(t,e,i){var r=s(t,i);return i-1>=e&&(r|=s(t,i-1)<<4),r}function u(t,e,i,r){for(var n=0,o=Math.min(t.length,i),a=e;a<o;a++){var s=t.charCodeAt(a)-48;n*=r,n+=s>=49?s-49+10:s>=17?s-17+10:s}return n}o.isBN=function(t){return t instanceof o||null!==t&&"object"==typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,i){if("number"==typeof t)return this._initNumber(t,e,i);if("object"==typeof t)return this._initArray(t,e,i);"hex"===e&&(e=16),r(e===(0|e)&&e>=2&&e<=36);var n=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(n++,this.negative=1),n<t.length&&(16===e?this._parseHex(t,n,i):(this._parseBase(t,e,n),"le"===i&&this._initArray(this.toArray(),e,i)))},o.prototype._initNumber=function(t,e,i){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(r(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===i&&this._initArray(this.toArray(),e,i)},o.prototype._initArray=function(t,e,i){if(r("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var o,a,s=0;if("be"===i)for(n=t.length-1,o=0;n>=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===i)for(n=0,o=0;n<t.length;n+=3)a=t[n]|t[n+1]<<8|t[n+2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e,i){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var n,o=0,a=0;if("be"===i)for(r=t.length-1;r>=e;r-=2)n=h(t,e,r)<<o,this.words[a]|=67108863&n,o>=18?(o-=18,a+=1,this.words[a]|=n>>>26):o+=8;else for(r=(t.length-e)%2==0?e+1:e;r<t.length;r+=2)n=h(t,e,r)<<o,this.words[a]|=67108863&n,o>=18?(o-=18,a+=1,this.words[a]|=n>>>26):o+=8;this.strip()},o.prototype._parseBase=function(t,e,i){this.words=[0],this.length=1;for(var r=0,n=1;n<=67108863;n*=e)r++;r--,n=n/e|0;for(var o=t.length-i,a=o%r,s=Math.min(o,o-a)+i,h=0,l=i;l<s;l+=r)h=u(t,l,l+r,e),this.imuln(n),this.words[0]+h<67108864?this.words[0]+=h:this._iaddn(h);if(0!==a){var d=1;for(h=u(t,l,t.length,e),l=0;l<a;l++)d*=e;this.imuln(d),this.words[0]+h<67108864?this.words[0]+=h:this._iaddn(h)}this.strip()},o.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},o.prototype.clone=function(){var t=new o(null);return this.copy(t),t},o.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},o.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var l=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],d=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t,e,i){i.negative=e.negative^t.negative;var r=t.length+e.length|0;i.length=r,r=r-1|0;var n=0|t.words[0],o=0|e.words[0],a=n*o,s=67108863&a,h=a/67108864|0;i.words[0]=s;for(var u=1;u<r;u++){for(var l=h>>>26,d=67108863&h,f=Math.min(u,e.length-1),c=Math.max(0,u-t.length+1);c<=f;c++){var p=u-c|0;l+=(a=(n=0|t.words[p])*(o=0|e.words[c])+d)/67108864|0,d=67108863&a}i.words[u]=0|d,h=0|l}return 0!==h?i.words[u]=0|h:i.length--,i.strip()}o.prototype.toString=function(t,e){var i;if(e=0|e||1,16===(t=t||10)||"hex"===t){i="";for(var n=0,o=0,a=0;a<this.length;a++){var s=this.words[a],h=(16777215&(s<<n|o)).toString(16);i=0!==(o=s>>>24-n&16777215)||a!==this.length-1?l[6-h.length]+h+i:h+i,(n+=2)>=26&&(n-=26,a--)}for(0!==o&&(i=o.toString(16)+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}if(t===(0|t)&&t>=2&&t<=36){var u=d[t],c=f[t];i="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(c).toString(t);i=(p=p.idivn(c)).isZero()?m+i:l[u-m.length]+m+i}for(this.isZero()&&(i="0"+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return r(void 0!==a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,i){var n=this.byteLength(),o=i||Math.max(1,n);r(n<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0"),this.strip();var a,s,h="le"===e,u=new t(o),l=this.clone();if(h){for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[s]=a;for(;s<o;s++)u[s]=0}else{for(s=0;s<o-n;s++)u[s]=0;for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[o-s-1]=a}return u},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,i=0;return e>=4096&&(i+=13,e>>>=13),e>=64&&(i+=7,e>>>=7),e>=8&&(i+=4,e>>>=4),e>=2&&(i+=2,e>>>=2),i+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,i=0;return 0==(8191&e)&&(i+=13,e>>>=13),0==(127&e)&&(i+=7,e>>>=7),0==(15&e)&&(i+=4,e>>>=4),0==(3&e)&&(i+=2,e>>>=2),0==(1&e)&&i++,i},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var i=this._zeroBits(this.words[e]);if(t+=i,26!==i)break}return t},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},o.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},o.prototype.ior=function(t){return r(0==(this.negative|t.negative)),this.iuor(t)},o.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var i=0;i<e.length;i++)this.words[i]=this.words[i]&t.words[i];return this.length=e.length,this.strip()},o.prototype.iand=function(t){return r(0==(this.negative|t.negative)),this.iuand(t)},o.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,i;this.length>t.length?(e=this,i=t):(e=t,i=this);for(var r=0;r<i.length;r++)this.words[r]=e.words[r]^i.words[r];if(this!==e)for(;r<e.length;r++)this.words[r]=e.words[r];return this.length=e.length,this.strip()},o.prototype.ixor=function(t){return r(0==(this.negative|t.negative)),this.iuxor(t)},o.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){r("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),i=t%26;this._expand(e),i>0&&e--;for(var n=0;n<e;n++)this.words[n]=67108863&~this.words[n];return i>0&&(this.words[n]=~this.words[n]&67108863>>26-i),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){r("number"==typeof t&&t>=0);var i=t/26|0,n=t%26;return this._expand(i+1),this.words[i]=e?this.words[i]|1<<n:this.words[i]&~(1<<n),this.strip()},o.prototype.iadd=function(t){var e,i,r;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(i=this,r=t):(i=t,r=this);for(var n=0,o=0;o<r.length;o++)e=(0|i.words[o])+(0|r.words[o])+n,this.words[o]=67108863&e,n=e>>>26;for(;0!==n&&o<i.length;o++)e=(0|i.words[o])+n,this.words[o]=67108863&e,n=e>>>26;if(this.length=i.length,0!==n)this.words[this.length]=n,this.length++;else if(i!==this)for(;o<i.length;o++)this.words[o]=i.words[o];return this},o.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var i,r,n=this.cmp(t);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(i=this,r=t):(i=t,r=this);for(var o=0,a=0;a<r.length;a++)o=(e=(0|i.words[a])-(0|r.words[a])+o)>>26,this.words[a]=67108863&e;for(;0!==o&&a<i.length;a++)o=(e=(0|i.words[a])+o)>>26,this.words[a]=67108863&e;if(0===o&&a<i.length&&i!==this)for(;a<i.length;a++)this.words[a]=i.words[a];return this.length=Math.max(this.length,a),i!==this&&(this.negative=1),this.strip()},o.prototype.sub=function(t){return this.clone().isub(t)};var p=function(t,e,i){var r,n,o,a=t.words,s=e.words,h=i.words,u=0,l=0|a[0],d=8191&l,f=l>>>13,c=0|a[1],p=8191&c,m=c>>>13,g=0|a[2],v=8191&g,y=g>>>13,b=0|a[3],_=8191&b,w=b>>>13,A=0|a[4],M=8191&A,E=A>>>13,S=0|a[5],k=8191&S,T=S>>>13,R=0|a[6],I=8191&R,C=R>>>13,P=0|a[7],x=8191&P,D=P>>>13,O=0|a[8],B=8191&O,L=O>>>13,W=0|a[9],N=8191&W,F=W>>>13,U=0|s[0],j=8191&U,V=U>>>13,H=0|s[1],z=8191&H,G=H>>>13,q=0|s[2],X=8191&q,Z=q>>>13,K=0|s[3],Q=8191&K,Y=K>>>13,J=0|s[4],$=8191&J,tt=J>>>13,et=0|s[5],it=8191&et,rt=et>>>13,nt=0|s[6],ot=8191&nt,at=nt>>>13,st=0|s[7],ht=8191&st,ut=st>>>13,lt=0|s[8],dt=8191<,ft=lt>>>13,ct=0|s[9],pt=8191&ct,mt=ct>>>13;i.negative=t.negative^e.negative,i.length=19;var gt=(u+(r=Math.imul(d,j))|0)+((8191&(n=(n=Math.imul(d,V))+Math.imul(f,j)|0))<<13)|0;u=((o=Math.imul(f,V))+(n>>>13)|0)+(gt>>>26)|0,gt&=67108863,r=Math.imul(p,j),n=(n=Math.imul(p,V))+Math.imul(m,j)|0,o=Math.imul(m,V);var vt=(u+(r=r+Math.imul(d,z)|0)|0)+((8191&(n=(n=n+Math.imul(d,G)|0)+Math.imul(f,z)|0))<<13)|0;u=((o=o+Math.imul(f,G)|0)+(n>>>13)|0)+(vt>>>26)|0,vt&=67108863,r=Math.imul(v,j),n=(n=Math.imul(v,V))+Math.imul(y,j)|0,o=Math.imul(y,V),r=r+Math.imul(p,z)|0,n=(n=n+Math.imul(p,G)|0)+Math.imul(m,z)|0,o=o+Math.imul(m,G)|0;var yt=(u+(r=r+Math.imul(d,X)|0)|0)+((8191&(n=(n=n+Math.imul(d,Z)|0)+Math.imul(f,X)|0))<<13)|0;u=((o=o+Math.imul(f,Z)|0)+(n>>>13)|0)+(yt>>>26)|0,yt&=67108863,r=Math.imul(_,j),n=(n=Math.imul(_,V))+Math.imul(w,j)|0,o=Math.imul(w,V),r=r+Math.imul(v,z)|0,n=(n=n+Math.imul(v,G)|0)+Math.imul(y,z)|0,o=o+Math.imul(y,G)|0,r=r+Math.imul(p,X)|0,n=(n=n+Math.imul(p,Z)|0)+Math.imul(m,X)|0,o=o+Math.imul(m,Z)|0;var bt=(u+(r=r+Math.imul(d,Q)|0)|0)+((8191&(n=(n=n+Math.imul(d,Y)|0)+Math.imul(f,Q)|0))<<13)|0;u=((o=o+Math.imul(f,Y)|0)+(n>>>13)|0)+(bt>>>26)|0,bt&=67108863,r=Math.imul(M,j),n=(n=Math.imul(M,V))+Math.imul(E,j)|0,o=Math.imul(E,V),r=r+Math.imul(_,z)|0,n=(n=n+Math.imul(_,G)|0)+Math.imul(w,z)|0,o=o+Math.imul(w,G)|0,r=r+Math.imul(v,X)|0,n=(n=n+Math.imul(v,Z)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,Z)|0,r=r+Math.imul(p,Q)|0,n=(n=n+Math.imul(p,Y)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,Y)|0;var _t=(u+(r=r+Math.imul(d,$)|0)|0)+((8191&(n=(n=n+Math.imul(d,tt)|0)+Math.imul(f,$)|0))<<13)|0;u=((o=o+Math.imul(f,tt)|0)+(n>>>13)|0)+(_t>>>26)|0,_t&=67108863,r=Math.imul(k,j),n=(n=Math.imul(k,V))+Math.imul(T,j)|0,o=Math.imul(T,V),r=r+Math.imul(M,z)|0,n=(n=n+Math.imul(M,G)|0)+Math.imul(E,z)|0,o=o+Math.imul(E,G)|0,r=r+Math.imul(_,X)|0,n=(n=n+Math.imul(_,Z)|0)+Math.imul(w,X)|0,o=o+Math.imul(w,Z)|0,r=r+Math.imul(v,Q)|0,n=(n=n+Math.imul(v,Y)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,Y)|0,r=r+Math.imul(p,$)|0,n=(n=n+Math.imul(p,tt)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,tt)|0;var wt=(u+(r=r+Math.imul(d,it)|0)|0)+((8191&(n=(n=n+Math.imul(d,rt)|0)+Math.imul(f,it)|0))<<13)|0;u=((o=o+Math.imul(f,rt)|0)+(n>>>13)|0)+(wt>>>26)|0,wt&=67108863,r=Math.imul(I,j),n=(n=Math.imul(I,V))+Math.imul(C,j)|0,o=Math.imul(C,V),r=r+Math.imul(k,z)|0,n=(n=n+Math.imul(k,G)|0)+Math.imul(T,z)|0,o=o+Math.imul(T,G)|0,r=r+Math.imul(M,X)|0,n=(n=n+Math.imul(M,Z)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,Z)|0,r=r+Math.imul(_,Q)|0,n=(n=n+Math.imul(_,Y)|0)+Math.imul(w,Q)|0,o=o+Math.imul(w,Y)|0,r=r+Math.imul(v,$)|0,n=(n=n+Math.imul(v,tt)|0)+Math.imul(y,$)|0,o=o+Math.imul(y,tt)|0,r=r+Math.imul(p,it)|0,n=(n=n+Math.imul(p,rt)|0)+Math.imul(m,it)|0,o=o+Math.imul(m,rt)|0;var At=(u+(r=r+Math.imul(d,ot)|0)|0)+((8191&(n=(n=n+Math.imul(d,at)|0)+Math.imul(f,ot)|0))<<13)|0;u=((o=o+Math.imul(f,at)|0)+(n>>>13)|0)+(At>>>26)|0,At&=67108863,r=Math.imul(x,j),n=(n=Math.imul(x,V))+Math.imul(D,j)|0,o=Math.imul(D,V),r=r+Math.imul(I,z)|0,n=(n=n+Math.imul(I,G)|0)+Math.imul(C,z)|0,o=o+Math.imul(C,G)|0,r=r+Math.imul(k,X)|0,n=(n=n+Math.imul(k,Z)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,Z)|0,r=r+Math.imul(M,Q)|0,n=(n=n+Math.imul(M,Y)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,Y)|0,r=r+Math.imul(_,$)|0,n=(n=n+Math.imul(_,tt)|0)+Math.imul(w,$)|0,o=o+Math.imul(w,tt)|0,r=r+Math.imul(v,it)|0,n=(n=n+Math.imul(v,rt)|0)+Math.imul(y,it)|0,o=o+Math.imul(y,rt)|0,r=r+Math.imul(p,ot)|0,n=(n=n+Math.imul(p,at)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0;var Mt=(u+(r=r+Math.imul(d,ht)|0)|0)+((8191&(n=(n=n+Math.imul(d,ut)|0)+Math.imul(f,ht)|0))<<13)|0;u=((o=o+Math.imul(f,ut)|0)+(n>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,r=Math.imul(B,j),n=(n=Math.imul(B,V))+Math.imul(L,j)|0,o=Math.imul(L,V),r=r+Math.imul(x,z)|0,n=(n=n+Math.imul(x,G)|0)+Math.imul(D,z)|0,o=o+Math.imul(D,G)|0,r=r+Math.imul(I,X)|0,n=(n=n+Math.imul(I,Z)|0)+Math.imul(C,X)|0,o=o+Math.imul(C,Z)|0,r=r+Math.imul(k,Q)|0,n=(n=n+Math.imul(k,Y)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,Y)|0,r=r+Math.imul(M,$)|0,n=(n=n+Math.imul(M,tt)|0)+Math.imul(E,$)|0,o=o+Math.imul(E,tt)|0,r=r+Math.imul(_,it)|0,n=(n=n+Math.imul(_,rt)|0)+Math.imul(w,it)|0,o=o+Math.imul(w,rt)|0,r=r+Math.imul(v,ot)|0,n=(n=n+Math.imul(v,at)|0)+Math.imul(y,ot)|0,o=o+Math.imul(y,at)|0,r=r+Math.imul(p,ht)|0,n=(n=n+Math.imul(p,ut)|0)+Math.imul(m,ht)|0,o=o+Math.imul(m,ut)|0;var Et=(u+(r=r+Math.imul(d,dt)|0)|0)+((8191&(n=(n=n+Math.imul(d,ft)|0)+Math.imul(f,dt)|0))<<13)|0;u=((o=o+Math.imul(f,ft)|0)+(n>>>13)|0)+(Et>>>26)|0,Et&=67108863,r=Math.imul(N,j),n=(n=Math.imul(N,V))+Math.imul(F,j)|0,o=Math.imul(F,V),r=r+Math.imul(B,z)|0,n=(n=n+Math.imul(B,G)|0)+Math.imul(L,z)|0,o=o+Math.imul(L,G)|0,r=r+Math.imul(x,X)|0,n=(n=n+Math.imul(x,Z)|0)+Math.imul(D,X)|0,o=o+Math.imul(D,Z)|0,r=r+Math.imul(I,Q)|0,n=(n=n+Math.imul(I,Y)|0)+Math.imul(C,Q)|0,o=o+Math.imul(C,Y)|0,r=r+Math.imul(k,$)|0,n=(n=n+Math.imul(k,tt)|0)+Math.imul(T,$)|0,o=o+Math.imul(T,tt)|0,r=r+Math.imul(M,it)|0,n=(n=n+Math.imul(M,rt)|0)+Math.imul(E,it)|0,o=o+Math.imul(E,rt)|0,r=r+Math.imul(_,ot)|0,n=(n=n+Math.imul(_,at)|0)+Math.imul(w,ot)|0,o=o+Math.imul(w,at)|0,r=r+Math.imul(v,ht)|0,n=(n=n+Math.imul(v,ut)|0)+Math.imul(y,ht)|0,o=o+Math.imul(y,ut)|0,r=r+Math.imul(p,dt)|0,n=(n=n+Math.imul(p,ft)|0)+Math.imul(m,dt)|0,o=o+Math.imul(m,ft)|0;var St=(u+(r=r+Math.imul(d,pt)|0)|0)+((8191&(n=(n=n+Math.imul(d,mt)|0)+Math.imul(f,pt)|0))<<13)|0;u=((o=o+Math.imul(f,mt)|0)+(n>>>13)|0)+(St>>>26)|0,St&=67108863,r=Math.imul(N,z),n=(n=Math.imul(N,G))+Math.imul(F,z)|0,o=Math.imul(F,G),r=r+Math.imul(B,X)|0,n=(n=n+Math.imul(B,Z)|0)+Math.imul(L,X)|0,o=o+Math.imul(L,Z)|0,r=r+Math.imul(x,Q)|0,n=(n=n+Math.imul(x,Y)|0)+Math.imul(D,Q)|0,o=o+Math.imul(D,Y)|0,r=r+Math.imul(I,$)|0,n=(n=n+Math.imul(I,tt)|0)+Math.imul(C,$)|0,o=o+Math.imul(C,tt)|0,r=r+Math.imul(k,it)|0,n=(n=n+Math.imul(k,rt)|0)+Math.imul(T,it)|0,o=o+Math.imul(T,rt)|0,r=r+Math.imul(M,ot)|0,n=(n=n+Math.imul(M,at)|0)+Math.imul(E,ot)|0,o=o+Math.imul(E,at)|0,r=r+Math.imul(_,ht)|0,n=(n=n+Math.imul(_,ut)|0)+Math.imul(w,ht)|0,o=o+Math.imul(w,ut)|0,r=r+Math.imul(v,dt)|0,n=(n=n+Math.imul(v,ft)|0)+Math.imul(y,dt)|0,o=o+Math.imul(y,ft)|0;var kt=(u+(r=r+Math.imul(p,pt)|0)|0)+((8191&(n=(n=n+Math.imul(p,mt)|0)+Math.imul(m,pt)|0))<<13)|0;u=((o=o+Math.imul(m,mt)|0)+(n>>>13)|0)+(kt>>>26)|0,kt&=67108863,r=Math.imul(N,X),n=(n=Math.imul(N,Z))+Math.imul(F,X)|0,o=Math.imul(F,Z),r=r+Math.imul(B,Q)|0,n=(n=n+Math.imul(B,Y)|0)+Math.imul(L,Q)|0,o=o+Math.imul(L,Y)|0,r=r+Math.imul(x,$)|0,n=(n=n+Math.imul(x,tt)|0)+Math.imul(D,$)|0,o=o+Math.imul(D,tt)|0,r=r+Math.imul(I,it)|0,n=(n=n+Math.imul(I,rt)|0)+Math.imul(C,it)|0,o=o+Math.imul(C,rt)|0,r=r+Math.imul(k,ot)|0,n=(n=n+Math.imul(k,at)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,r=r+Math.imul(M,ht)|0,n=(n=n+Math.imul(M,ut)|0)+Math.imul(E,ht)|0,o=o+Math.imul(E,ut)|0,r=r+Math.imul(_,dt)|0,n=(n=n+Math.imul(_,ft)|0)+Math.imul(w,dt)|0,o=o+Math.imul(w,ft)|0;var Tt=(u+(r=r+Math.imul(v,pt)|0)|0)+((8191&(n=(n=n+Math.imul(v,mt)|0)+Math.imul(y,pt)|0))<<13)|0;u=((o=o+Math.imul(y,mt)|0)+(n>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,r=Math.imul(N,Q),n=(n=Math.imul(N,Y))+Math.imul(F,Q)|0,o=Math.imul(F,Y),r=r+Math.imul(B,$)|0,n=(n=n+Math.imul(B,tt)|0)+Math.imul(L,$)|0,o=o+Math.imul(L,tt)|0,r=r+Math.imul(x,it)|0,n=(n=n+Math.imul(x,rt)|0)+Math.imul(D,it)|0,o=o+Math.imul(D,rt)|0,r=r+Math.imul(I,ot)|0,n=(n=n+Math.imul(I,at)|0)+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,r=r+Math.imul(k,ht)|0,n=(n=n+Math.imul(k,ut)|0)+Math.imul(T,ht)|0,o=o+Math.imul(T,ut)|0,r=r+Math.imul(M,dt)|0,n=(n=n+Math.imul(M,ft)|0)+Math.imul(E,dt)|0,o=o+Math.imul(E,ft)|0;var Rt=(u+(r=r+Math.imul(_,pt)|0)|0)+((8191&(n=(n=n+Math.imul(_,mt)|0)+Math.imul(w,pt)|0))<<13)|0;u=((o=o+Math.imul(w,mt)|0)+(n>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,r=Math.imul(N,$),n=(n=Math.imul(N,tt))+Math.imul(F,$)|0,o=Math.imul(F,tt),r=r+Math.imul(B,it)|0,n=(n=n+Math.imul(B,rt)|0)+Math.imul(L,it)|0,o=o+Math.imul(L,rt)|0,r=r+Math.imul(x,ot)|0,n=(n=n+Math.imul(x,at)|0)+Math.imul(D,ot)|0,o=o+Math.imul(D,at)|0,r=r+Math.imul(I,ht)|0,n=(n=n+Math.imul(I,ut)|0)+Math.imul(C,ht)|0,o=o+Math.imul(C,ut)|0,r=r+Math.imul(k,dt)|0,n=(n=n+Math.imul(k,ft)|0)+Math.imul(T,dt)|0,o=o+Math.imul(T,ft)|0;var It=(u+(r=r+Math.imul(M,pt)|0)|0)+((8191&(n=(n=n+Math.imul(M,mt)|0)+Math.imul(E,pt)|0))<<13)|0;u=((o=o+Math.imul(E,mt)|0)+(n>>>13)|0)+(It>>>26)|0,It&=67108863,r=Math.imul(N,it),n=(n=Math.imul(N,rt))+Math.imul(F,it)|0,o=Math.imul(F,rt),r=r+Math.imul(B,ot)|0,n=(n=n+Math.imul(B,at)|0)+Math.imul(L,ot)|0,o=o+Math.imul(L,at)|0,r=r+Math.imul(x,ht)|0,n=(n=n+Math.imul(x,ut)|0)+Math.imul(D,ht)|0,o=o+Math.imul(D,ut)|0,r=r+Math.imul(I,dt)|0,n=(n=n+Math.imul(I,ft)|0)+Math.imul(C,dt)|0,o=o+Math.imul(C,ft)|0;var Ct=(u+(r=r+Math.imul(k,pt)|0)|0)+((8191&(n=(n=n+Math.imul(k,mt)|0)+Math.imul(T,pt)|0))<<13)|0;u=((o=o+Math.imul(T,mt)|0)+(n>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,r=Math.imul(N,ot),n=(n=Math.imul(N,at))+Math.imul(F,ot)|0,o=Math.imul(F,at),r=r+Math.imul(B,ht)|0,n=(n=n+Math.imul(B,ut)|0)+Math.imul(L,ht)|0,o=o+Math.imul(L,ut)|0,r=r+Math.imul(x,dt)|0,n=(n=n+Math.imul(x,ft)|0)+Math.imul(D,dt)|0,o=o+Math.imul(D,ft)|0;var Pt=(u+(r=r+Math.imul(I,pt)|0)|0)+((8191&(n=(n=n+Math.imul(I,mt)|0)+Math.imul(C,pt)|0))<<13)|0;u=((o=o+Math.imul(C,mt)|0)+(n>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,r=Math.imul(N,ht),n=(n=Math.imul(N,ut))+Math.imul(F,ht)|0,o=Math.imul(F,ut),r=r+Math.imul(B,dt)|0,n=(n=n+Math.imul(B,ft)|0)+Math.imul(L,dt)|0,o=o+Math.imul(L,ft)|0;var xt=(u+(r=r+Math.imul(x,pt)|0)|0)+((8191&(n=(n=n+Math.imul(x,mt)|0)+Math.imul(D,pt)|0))<<13)|0;u=((o=o+Math.imul(D,mt)|0)+(n>>>13)|0)+(xt>>>26)|0,xt&=67108863,r=Math.imul(N,dt),n=(n=Math.imul(N,ft))+Math.imul(F,dt)|0,o=Math.imul(F,ft);var Dt=(u+(r=r+Math.imul(B,pt)|0)|0)+((8191&(n=(n=n+Math.imul(B,mt)|0)+Math.imul(L,pt)|0))<<13)|0;u=((o=o+Math.imul(L,mt)|0)+(n>>>13)|0)+(Dt>>>26)|0,Dt&=67108863;var Ot=(u+(r=Math.imul(N,pt))|0)+((8191&(n=(n=Math.imul(N,mt))+Math.imul(F,pt)|0))<<13)|0;return u=((o=Math.imul(F,mt))+(n>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,h[0]=gt,h[1]=vt,h[2]=yt,h[3]=bt,h[4]=_t,h[5]=wt,h[6]=At,h[7]=Mt,h[8]=Et,h[9]=St,h[10]=kt,h[11]=Tt,h[12]=Rt,h[13]=It,h[14]=Ct,h[15]=Pt,h[16]=xt,h[17]=Dt,h[18]=Ot,0!==u&&(h[19]=u,i.length++),i};function m(t,e,i){return(new g).mulp(t,e,i)}function g(t,e){this.x=t,this.y=e}Math.imul||(p=c),o.prototype.mulTo=function(t,e){var i,r=this.length+t.length;return i=10===this.length&&10===t.length?p(this,t,e):r<63?c(this,t,e):r<1024?function(t,e,i){i.negative=e.negative^t.negative,i.length=t.length+e.length;for(var r=0,n=0,o=0;o<i.length-1;o++){var a=n;n=0;for(var s=67108863&r,h=Math.min(o,e.length-1),u=Math.max(0,o-t.length+1);u<=h;u++){var l=o-u,d=(0|t.words[l])*(0|e.words[u]),f=67108863&d;s=67108863&(f=f+s|0),n+=(a=(a=a+(d/67108864|0)|0)+(f>>>26)|0)>>>26,a&=67108863}i.words[o]=s,r=a,a=n}return 0!==r?i.words[o]=r:i.length--,i.strip()}(this,t,e):m(this,t,e),i},g.prototype.makeRBT=function(t){for(var e=new Array(t),i=o.prototype._countBits(t)-1,r=0;r<t;r++)e[r]=this.revBin(r,i,t);return e},g.prototype.revBin=function(t,e,i){if(0===t||t===i-1)return t;for(var r=0,n=0;n<e;n++)r|=(1&t)<<e-n-1,t>>=1;return r},g.prototype.permute=function(t,e,i,r,n,o){for(var a=0;a<o;a++)r[a]=e[t[a]],n[a]=i[t[a]]},g.prototype.transform=function(t,e,i,r,n,o){this.permute(o,t,e,i,r,n);for(var a=1;a<n;a<<=1)for(var s=a<<1,h=Math.cos(2*Math.PI/s),u=Math.sin(2*Math.PI/s),l=0;l<n;l+=s)for(var d=h,f=u,c=0;c<a;c++){var p=i[l+c],m=r[l+c],g=i[l+c+a],v=r[l+c+a],y=d*g-f*v;v=d*v+f*g,g=y,i[l+c]=p+g,r[l+c]=m+v,i[l+c+a]=p-g,r[l+c+a]=m-v,c!==s&&(y=h*d-u*f,f=h*f+u*d,d=y)}},g.prototype.guessLen13b=function(t,e){var i=1|Math.max(e,t),r=1&i,n=0;for(i=i/2|0;i;i>>>=1)n++;return 1<<n+1+r},g.prototype.conjugate=function(t,e,i){if(!(i<=1))for(var r=0;r<i/2;r++){var n=t[r];t[r]=t[i-r-1],t[i-r-1]=n,n=e[r],e[r]=-e[i-r-1],e[i-r-1]=-n}},g.prototype.normalize13b=function(t,e){for(var i=0,r=0;r<e/2;r++){var n=8192*Math.round(t[2*r+1]/e)+Math.round(t[2*r]/e)+i;t[r]=67108863&n,i=n<67108864?0:n/67108864|0}return t},g.prototype.convert13b=function(t,e,i,n){for(var o=0,a=0;a<e;a++)o+=0|t[a],i[2*a]=8191&o,o>>>=13,i[2*a+1]=8191&o,o>>>=13;for(a=2*e;a<n;++a)i[a]=0;r(0===o),r(0==(-8192&o))},g.prototype.stub=function(t){for(var e=new Array(t),i=0;i<t;i++)e[i]=0;return e},g.prototype.mulp=function(t,e,i){var r=2*this.guessLen13b(t.length,e.length),n=this.makeRBT(r),o=this.stub(r),a=new Array(r),s=new Array(r),h=new Array(r),u=new Array(r),l=new Array(r),d=new Array(r),f=i.words;f.length=r,this.convert13b(t.words,t.length,a,r),this.convert13b(e.words,e.length,u,r),this.transform(a,o,s,h,r,n),this.transform(u,o,l,d,r,n);for(var c=0;c<r;c++){var p=s[c]*l[c]-h[c]*d[c];h[c]=s[c]*d[c]+h[c]*l[c],s[c]=p}return this.conjugate(s,h,r),this.transform(s,h,f,o,r,n),this.conjugate(f,o,r),this.normalize13b(f,r),i.negative=t.negative^e.negative,i.length=t.length+e.length,i.strip()},o.prototype.mul=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},o.prototype.mulf=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),m(this,t,e)},o.prototype.imul=function(t){return this.clone().mulTo(t,this)},o.prototype.imuln=function(t){r("number"==typeof t),r(t<67108864);for(var e=0,i=0;i<this.length;i++){var n=(0|this.words[i])*t,o=(67108863&n)+(67108863&e);e>>=26,e+=n/67108864|0,e+=o>>>26,this.words[i]=67108863&o}return 0!==e&&(this.words[i]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),i=0;i<e.length;i++){var r=i/26|0,n=i%26;e[i]=(t.words[r]&1<<n)>>>n}return e}(t);if(0===e.length)return new o(1);for(var i=this,r=0;r<e.length&&0===e[r];r++,i=i.sqr());if(++r<e.length)for(var n=i.sqr();r<e.length;r++,n=n.sqr())0!==e[r]&&(i=i.mul(n));return i},o.prototype.iushln=function(t){r("number"==typeof t&&t>=0);var e,i=t%26,n=(t-i)/26,o=67108863>>>26-i<<26-i;if(0!==i){var a=0;for(e=0;e<this.length;e++){var s=this.words[e]&o,h=(0|this.words[e])-s<<i;this.words[e]=h|a,a=s>>>26-i}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e<n;e++)this.words[e]=0;this.length+=n}return this.strip()},o.prototype.ishln=function(t){return r(0===this.negative),this.iushln(t)},o.prototype.iushrn=function(t,e,i){var n;r("number"==typeof t&&t>=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<<o,h=i;if(n-=a,n=Math.max(0,n),h){for(var u=0;u<a;u++)h.words[u]=this.words[u];h.length=a}if(0===a);else if(this.length>a)for(this.length-=a,u=0;u<this.length;u++)this.words[u]=this.words[u+a];else this.words[0]=0,this.length=1;var l=0;for(u=this.length-1;u>=0&&(0!==l||u>=n);u--){var d=0|this.words[u];this.words[u]=l<<26-o|d>>>o,l=d&s}return h&&0!==l&&(h.words[h.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,i){return r(0===this.negative),this.iushrn(t,e,i)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){r("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26,n=1<<e;return!(this.length<=i)&&!!(this.words[i]&n)},o.prototype.imaskn=function(t){r("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=i)return this;if(0!==e&&i++,this.length=Math.min(i,this.length),0!==e){var n=67108863^67108863>>>e<<e;this.words[this.length-1]&=n}return this.strip()},o.prototype.maskn=function(t){return this.clone().imaskn(t)},o.prototype.iaddn=function(t){return r("number"==typeof t),r(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},o.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(r("number"==typeof t),r(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},o.prototype.addn=function(t){return this.clone().iaddn(t)},o.prototype.subn=function(t){return this.clone().isubn(t)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(t,e,i){var n,o,a=t.length+i;this._expand(a);var s=0;for(n=0;n<t.length;n++){o=(0|this.words[n+i])+s;var h=(0|t.words[n])*e;s=((o-=67108863&h)>>26)-(h/67108864|0),this.words[n+i]=67108863&o}for(;n<this.length-i;n++)s=(o=(0|this.words[n+i])+s)>>26,this.words[n+i]=67108863&o;if(0===s)return this.strip();for(r(-1===s),s=0,n=0;n<this.length;n++)s=(o=-(0|this.words[n])+s)>>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var i=(this.length,t.length),r=this.clone(),n=t,a=0|n.words[n.length-1];0!==(i=26-this._countBits(a))&&(n=n.ushln(i),r.iushln(i),a=0|n.words[n.length-1]);var s,h=r.length-n.length;if("mod"!==e){(s=new o(null)).length=h+1,s.words=new Array(s.length);for(var u=0;u<s.length;u++)s.words[u]=0}var l=r.clone()._ishlnsubmul(n,1,h);0===l.negative&&(r=l,s&&(s.words[h]=1));for(var d=h-1;d>=0;d--){var f=67108864*(0|r.words[n.length+d])+(0|r.words[n.length+d-1]);for(f=Math.min(f/a|0,67108863),r._ishlnsubmul(n,f,d);0!==r.negative;)f--,r.negative=0,r._ishlnsubmul(n,1,d),r.isZero()||(r.negative^=1);s&&(s.words[d]=f)}return s&&s.strip(),r.strip(),"div"!==e&&0!==i&&r.iushrn(i),{div:s||null,mod:r}},o.prototype.divmod=function(t,e,i){return r(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(a=s.mod.neg(),i&&0!==a.negative&&a.iadd(t)),{div:n,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),i&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var n,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var i=0!==e.div.negative?e.mod.isub(t):e.mod,r=t.ushrn(1),n=t.andln(1),o=i.cmp(r);return o<0||1===n&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){r(t<=67108863);for(var e=(1<<26)%t,i=0,n=this.length-1;n>=0;n--)i=(e*i+(0|this.words[n]))%t;return i},o.prototype.idivn=function(t){r(t<=67108863);for(var e=0,i=this.length-1;i>=0;i--){var n=(0|this.words[i])+67108864*e;this.words[i]=n/t|0,e=n%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){r(0===t.negative),r(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n=new o(1),a=new o(0),s=new o(0),h=new o(1),u=0;e.isEven()&&i.isEven();)e.iushrn(1),i.iushrn(1),++u;for(var l=i.clone(),d=e.clone();!e.isZero();){for(var f=0,c=1;0==(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(n.isOdd()||a.isOdd())&&(n.iadd(l),a.isub(d)),n.iushrn(1),a.iushrn(1);for(var p=0,m=1;0==(i.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(i.iushrn(p);p-- >0;)(s.isOdd()||h.isOdd())&&(s.iadd(l),h.isub(d)),s.iushrn(1),h.iushrn(1);e.cmp(i)>=0?(e.isub(i),n.isub(s),a.isub(h)):(i.isub(e),s.isub(n),h.isub(a))}return{a:s,b:h,gcd:i.iushln(u)}},o.prototype._invmp=function(t){r(0===t.negative),r(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n,a=new o(1),s=new o(0),h=i.clone();e.cmpn(1)>0&&i.cmpn(1)>0;){for(var u=0,l=1;0==(e.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(e.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(h),a.iushrn(1);for(var d=0,f=1;0==(i.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(i.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(h),s.iushrn(1);e.cmp(i)>=0?(e.isub(i),a.isub(s)):(i.isub(e),s.isub(a))}return(n=0===e.cmpn(1)?a:s).cmpn(0)<0&&n.iadd(t),n},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),i=t.clone();e.negative=0,i.negative=0;for(var r=0;e.isEven()&&i.isEven();r++)e.iushrn(1),i.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;i.isEven();)i.iushrn(1);var n=e.cmp(i);if(n<0){var o=e;e=i,i=o}else if(0===n||0===i.cmpn(1))break;e.isub(i)}return i.iushln(r)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){r("number"==typeof t);var e=t%26,i=(t-e)/26,n=1<<e;if(this.length<=i)return this._expand(i+1),this.words[i]|=n,this;for(var o=n,a=i;0!==o&&a<this.length;a++){var s=0|this.words[a];o=(s+=o)>>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,i=t<0;if(0!==this.negative&&!i)return-1;if(0===this.negative&&i)return 1;if(this.strip(),this.length>1)e=1;else{i&&(t=-t),r(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:n<t?-1:1}return 0!==this.negative?0|-e:e},o.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},o.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,i=this.length-1;i>=0;i--){var r=0|this.words[i],n=0|t.words[i];if(r!==n){r<n?e=-1:r>n&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new M(t)},o.prototype.toRed=function(t){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return r(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return r(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var v={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function A(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function M(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else r(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function E(t){M.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,i=t;do{this.split(i,this.tmp),e=(i=(i=this.imulK(i)).iadd(this.tmp)).bitLength()}while(e>this.n);var r=e<this.n?-1:i.ucmp(this.p);return 0===r?(i.words[0]=0,i.length=1):r>0?i.isub(this.p):void 0!==i.strip?i.strip():i._strip(),i},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},n(b,y),b.prototype.split=function(t,e){for(var i=4194303,r=Math.min(t.length,9),n=0;n<r;n++)e.words[n]=t.words[n];if(e.length=r,t.length<=9)return t.words[0]=0,void(t.length=1);var o=t.words[9];for(e.words[e.length++]=o&i,n=10;n<t.length;n++){var a=0|t.words[n];t.words[n-10]=(a&i)<<4|o>>>22,o=a}o>>>=22,t.words[n-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},b.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,i=0;i<t.length;i++){var r=0|t.words[i];e+=977*r,t.words[i]=67108863&e,e=64*r+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},n(_,y),n(w,y),n(A,y),A.prototype.imulK=function(t){for(var e=0,i=0;i<t.length;i++){var r=19*(0|t.words[i])+e,n=67108863&r;r>>>=26,t.words[i]=n,e=r}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(v[t])return v[t];var e;if("k256"===t)e=new b;else if("p224"===t)e=new _;else if("p192"===t)e=new w;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new A}return v[t]=e,e},M.prototype._verify1=function(t){r(0===t.negative,"red works only with positives"),r(t.red,"red works only with red numbers")},M.prototype._verify2=function(t,e){r(0==(t.negative|e.negative),"red works only with positives"),r(t.red&&t.red===e.red,"red works only with red numbers")},M.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},M.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},M.prototype.add=function(t,e){this._verify2(t,e);var i=t.add(e);return i.cmp(this.m)>=0&&i.isub(this.m),i._forceRed(this)},M.prototype.iadd=function(t,e){this._verify2(t,e);var i=t.iadd(e);return i.cmp(this.m)>=0&&i.isub(this.m),i},M.prototype.sub=function(t,e){this._verify2(t,e);var i=t.sub(e);return i.cmpn(0)<0&&i.iadd(this.m),i._forceRed(this)},M.prototype.isub=function(t,e){this._verify2(t,e);var i=t.isub(e);return i.cmpn(0)<0&&i.iadd(this.m),i},M.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},M.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},M.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},M.prototype.isqr=function(t){return this.imul(t,t.clone())},M.prototype.sqr=function(t){return this.mul(t,t)},M.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(r(e%2==1),3===e){var i=this.m.add(new o(1)).iushrn(2);return this.pow(t,i)}for(var n=this.m.subn(1),a=0;!n.isZero()&&0===n.andln(1);)a++,n.iushrn(1);r(!n.isZero());var s=new o(1).toRed(this),h=s.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(h);)l.redIAdd(h);for(var d=this.pow(l,n),f=this.pow(t,n.addn(1).iushrn(1)),c=this.pow(t,n),p=a;0!==c.cmp(s);){for(var m=c,g=0;0!==m.cmp(s);g++)m=m.redSqr();r(g<p);var v=this.pow(d,new o(1).iushln(p-g-1));f=f.redMul(v),d=v.redSqr(),c=c.redMul(d),p=g}return f},M.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},M.prototype.pow=function(t,e){if(e.isZero())return new o(1).toRed(this);if(0===e.cmpn(1))return t.clone();var i=new Array(16);i[0]=new o(1).toRed(this),i[1]=t;for(var r=2;r<i.length;r++)i[r]=this.mul(i[r-1],t);var n=i[0],a=0,s=0,h=e.bitLength()%26;for(0===h&&(h=26),r=e.length-1;r>=0;r--){for(var u=e.words[r],l=h-1;l>=0;l--){var d=u>>l&1;n!==i[0]&&(n=this.sqr(n)),0!==d||0!==a?(a<<=1,a|=d,(4===++s||0===r&&0===l)&&(n=this.mul(n,i[a]),s=0,a=0)):s=0}h=26}return n},M.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},M.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new E(t)},n(E,M),E.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},E.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},E.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var i=t.imul(e),r=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=i.isub(r).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},E.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var i=t.mul(e),r=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=i.isub(r).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},E.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t,this)}).call(this,i(20)(t))},function(t,e){},function(t,e){},function(t){t.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},function(t,e,i){(function(e){var r=i(108),n=new(i(109)),o=new r(24),a=new r(11),s=new r(10),h=new r(3),u=new r(7),l=i(107),d=i(25);function f(t,i){return i=i||"utf8",e.isBuffer(t)||(t=new e(t,i)),this._pub=new r(t),this}function c(t,i){return i=i||"utf8",e.isBuffer(t)||(t=new e(t,i)),this._priv=new r(t),this}t.exports=m;var p={};function m(t,e,i){this.setGenerator(e),this.__prime=new r(t),this._prime=r.mont(this.__prime),this._primeLen=t.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,i?(this.setPublicKey=f,this.setPrivateKey=c):this._primeCode=8}function g(t,i){var r=new e(t.toArray());return i?r.toString(i):r}Object.defineProperty(m.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(t,e){var i=e.toString("hex"),r=[i,t.toString(16)].join("_");if(r in p)return p[r];var d,f=0;if(t.isEven()||!l.simpleSieve||!l.fermatTest(t)||!n.test(t))return f+=1,f+="02"===i||"05"===i?8:4,p[r]=f,f;switch(n.test(t.shrn(1))||(f+=2),i){case"02":t.mod(o).cmp(a)&&(f+=8);break;case"05":(d=t.mod(s)).cmp(h)&&d.cmp(u)&&(f+=8);break;default:f+=4}return p[r]=f,f}(this.__prime,this.__gen)),this._primeCode}}),m.prototype.generateKeys=function(){return this._priv||(this._priv=new r(d(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},m.prototype.computeSecret=function(t){var i=(t=(t=new r(t)).toRed(this._prime)).redPow(this._priv).fromRed(),n=new e(i.toArray()),o=this.getPrime();if(n.length<o.length){var a=new e(o.length-n.length);a.fill(0),n=e.concat([a,n])}return n},m.prototype.getPublicKey=function(t){return g(this._pub,t)},m.prototype.getPrivateKey=function(t){return g(this._priv,t)},m.prototype.getPrime=function(t){return g(this.__prime,t)},m.prototype.getGenerator=function(t){return g(this._gen,t)},m.prototype.setGenerator=function(t,i){return i=i||"utf8",e.isBuffer(t)||(t=new e(t,i)),this.__gen=t,this._gen=new r(t),this}}).call(this,i(9).Buffer)},function(t,e,i){var r=i(4).Buffer,n=i(35),o=i(198),a=i(3),s=i(206),h=i(237),u=i(94);function l(t){o.Writable.call(this);var e=u[t];if(!e)throw new Error("Unknown message digest");this._hashType=e.hash,this._hash=n(e.hash),this._tag=e.id,this._signType=e.sign}function d(t){o.Writable.call(this);var e=u[t];if(!e)throw new Error("Unknown message digest");this._hash=n(e.hash),this._tag=e.id,this._signType=e.sign}function f(t){return new l(t)}function c(t){return new d(t)}Object.keys(u).forEach((function(t){u[t].id=r.from(u[t].id,"hex"),u[t.toLowerCase()]=u[t]})),a(l,o.Writable),l.prototype._write=function(t,e,i){this._hash.update(t),i()},l.prototype.update=function(t,e){return"string"==typeof t&&(t=r.from(t,e)),this._hash.update(t),this},l.prototype.sign=function(t,e){this.end();var i=this._hash.digest(),r=s(i,t,this._hashType,this._signType,this._tag);return e?r.toString(e):r},a(d,o.Writable),d.prototype._write=function(t,e,i){this._hash.update(t),i()},d.prototype.update=function(t,e){return"string"==typeof t&&(t=r.from(t,e)),this._hash.update(t),this},d.prototype.verify=function(t,e,i){"string"==typeof e&&(e=r.from(e,i)),this.end();var n=this._hash.digest();return h(e,n,t,this._signType,this._tag)},t.exports={Sign:f,Verify:c,createSign:f,createVerify:c}},function(t,e,i){(e=t.exports=i(110)).Stream=e,e.Readable=e,e.Writable=i(114),e.Duplex=i(30),e.Transform=i(115),e.PassThrough=i(204),e.finished=i(64),e.pipeline=i(205)},function(t,e){},function(t,e,i){"use strict";function r(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,r)}return i}function n(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function o(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var a=i(9).Buffer,s=i(201).inspect,h=s&&s.custom||"inspect";t.exports=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.head=null,this.tail=null,this.length=0}var e,i,u;return e=t,i=[{key:"push",value:function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(0===this.length)return"";for(var e=this.head,i=""+e.data;e=e.next;)i+=t+e.data;return i}},{key:"concat",value:function(t){if(0===this.length)return a.alloc(0);for(var e,i,r,n=a.allocUnsafe(t>>>0),o=this.head,s=0;o;)e=o.data,i=n,r=s,a.prototype.copy.call(e,i,r),s+=o.data.length,o=o.next;return n}},{key:"consume",value:function(t,e){var i;return t<this.head.data.length?(i=this.head.data.slice(0,t),this.head.data=this.head.data.slice(t)):i=t===this.head.data.length?this.shift():e?this._getString(t):this._getBuffer(t),i}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(t){var e=this.head,i=1,r=e.data;for(t-=r.length;e=e.next;){var n=e.data,o=t>n.length?n.length:t;if(o===n.length?r+=n:r+=n.slice(0,t),0==(t-=o)){o===n.length?(++i,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=n.slice(o));break}++i}return this.length-=i,r}},{key:"_getBuffer",value:function(t){var e=a.allocUnsafe(t),i=this.head,r=1;for(i.data.copy(e),t-=i.data.length;i=i.next;){var n=i.data,o=t>n.length?n.length:t;if(n.copy(e,e.length-t,0,o),0==(t-=o)){o===n.length?(++r,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=n.slice(o));break}++r}return this.length-=r,e}},{key:h,value:function(t,e){return s(this,function(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?r(Object(i),!0).forEach((function(e){n(t,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):r(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}))}return t}({},e,{depth:0,customInspect:!1}))}}],i&&o(e.prototype,i),u&&o(e,u),t}()},function(t,e){},function(t,e,i){"use strict";(function(e){var r;function n(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}var o=i(64),a=Symbol("lastResolve"),s=Symbol("lastReject"),h=Symbol("error"),u=Symbol("ended"),l=Symbol("lastPromise"),d=Symbol("handlePromise"),f=Symbol("stream");function c(t,e){return{value:t,done:e}}function p(t){var e=t[a];if(null!==e){var i=t[f].read();null!==i&&(t[l]=null,t[a]=null,t[s]=null,e(c(i,!1)))}}function m(t){e.nextTick(p,t)}var g=Object.getPrototypeOf((function(){})),v=Object.setPrototypeOf((n(r={get stream(){return this[f]},next:function(){var t=this,i=this[h];if(null!==i)return Promise.reject(i);if(this[u])return Promise.resolve(c(void 0,!0));if(this[f].destroyed)return new Promise((function(i,r){e.nextTick((function(){t[h]?r(t[h]):i(c(void 0,!0))}))}));var r,n=this[l];if(n)r=new Promise(function(t,e){return function(i,r){t.then((function(){e[u]?i(c(void 0,!0)):e[d](i,r)}),r)}}(n,this));else{var o=this[f].read();if(null!==o)return Promise.resolve(c(o,!1));r=new Promise(this[d])}return this[l]=r,r}},Symbol.asyncIterator,(function(){return this})),n(r,"return",(function(){var t=this;return new Promise((function(e,i){t[f].destroy(null,(function(t){t?i(t):e(c(void 0,!0))}))}))})),r),g);t.exports=function(t){var e,i=Object.create(v,(n(e={},f,{value:t,writable:!0}),n(e,a,{value:null,writable:!0}),n(e,s,{value:null,writable:!0}),n(e,h,{value:null,writable:!0}),n(e,u,{value:t._readableState.endEmitted,writable:!0}),n(e,d,{value:function(t,e){var r=i[f].read();r?(i[l]=null,i[a]=null,i[s]=null,t(c(r,!1))):(i[a]=t,i[s]=e)},writable:!0}),e));return i[l]=null,o(t,(function(t){if(t&&"ERR_STREAM_PREMATURE_CLOSE"!==t.code){var e=i[s];return null!==e&&(i[l]=null,i[a]=null,i[s]=null,e(t)),void(i[h]=t)}var r=i[a];null!==r&&(i[l]=null,i[a]=null,i[s]=null,r(c(void 0,!0))),i[u]=!0})),t.on("readable",m.bind(null,i)),i}}).call(this,i(8))},function(t,e){t.exports=function(){throw new Error("Readable.from is not available in the browser")}},function(t,e,i){"use strict";t.exports=n;var r=i(115);function n(t){if(!(this instanceof n))return new n(t);r.call(this,t)}i(3)(n,r),n.prototype._transform=function(t,e,i){i(null,t)}},function(t,e,i){"use strict";var r;var n=i(29).codes,o=n.ERR_MISSING_ARGS,a=n.ERR_STREAM_DESTROYED;function s(t){if(t)throw t}function h(t,e,n,o){o=function(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}(o);var s=!1;t.on("close",(function(){s=!0})),void 0===r&&(r=i(64)),r(t,{readable:e,writable:n},(function(t){if(t)return o(t);s=!0,o()}));var h=!1;return function(e){if(!s&&!h)return h=!0,function(t){return t.setHeader&&"function"==typeof t.abort}(t)?t.abort():"function"==typeof t.destroy?t.destroy():void o(e||new a("pipe"))}}function u(t){t()}function l(t,e){return t.pipe(e)}function d(t){return t.length?"function"!=typeof t[t.length-1]?s:t.pop():s}t.exports=function(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];var r,n=d(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new o("streams");var a=e.map((function(t,i){var o=i<e.length-1;return h(t,o,i>0,(function(t){r||(r=t),t&&a.forEach(u),o||(a.forEach(u),n(r))}))}));return e.reduce(l)}},function(t,e,i){var r=i(4).Buffer,n=i(92),o=i(65),a=i(67).ec,s=i(66),h=i(46),u=i(127);function l(t,e,i,o){if((t=r.from(t.toArray())).length<e.byteLength()){var a=r.alloc(e.byteLength()-t.length);t=r.concat([a,t])}var s=i.length,h=function(t,e){t=(t=d(t,e)).mod(e);var i=r.from(t.toArray());if(i.length<e.byteLength()){var n=r.alloc(e.byteLength()-i.length);i=r.concat([n,i])}return i}(i,e),u=r.alloc(s);u.fill(1);var l=r.alloc(s);return l=n(o,l).update(u).update(r.from([0])).update(t).update(h).digest(),u=n(o,l).update(u).digest(),{k:l=n(o,l).update(u).update(r.from([1])).update(t).update(h).digest(),v:u=n(o,l).update(u).digest()}}function d(t,e){var i=new s(t),r=(t.length<<3)-e.bitLength();return r>0&&i.ishrn(r),i}function f(t,e,i){var o,a;do{for(o=r.alloc(0);8*o.length<t.bitLength();)e.v=n(i,e.k).update(e.v).digest(),o=r.concat([o,e.v]);a=d(o,t),e.k=n(i,e.k).update(e.v).update(r.from([0])).digest(),e.v=n(i,e.k).update(e.v).digest()}while(-1!==a.cmp(t));return a}function c(t,e,i,r){return t.toRed(s.mont(i)).redPow(e).fromRed().mod(r)}t.exports=function(t,e,i,n,p){var m=h(e);if(m.curve){if("ecdsa"!==n&&"ecdsa/rsa"!==n)throw new Error("wrong private key type");return function(t,e){var i=u[e.curve.join(".")];if(!i)throw new Error("unknown curve "+e.curve.join("."));var n=new a(i).keyFromPrivate(e.privateKey).sign(t);return r.from(n.toDER())}(t,m)}if("dsa"===m.type){if("dsa"!==n)throw new Error("wrong private key type");return function(t,e,i){var n,o=e.params.priv_key,a=e.params.p,h=e.params.q,u=e.params.g,p=new s(0),m=d(t,h).mod(h),g=!1,v=l(o,h,t,i);for(;!1===g;)p=c(u,n=f(h,v,i),a,h),0===(g=n.invm(h).imul(m.add(o.mul(p))).mod(h)).cmpn(0)&&(g=!1,p=new s(0));return function(t,e){t=t.toArray(),e=e.toArray(),128&t[0]&&(t=[0].concat(t));128&e[0]&&(e=[0].concat(e));var i=[48,t.length+e.length+4,2,t.length];return i=i.concat(t,[2,e.length],e),r.from(i)}(p,g)}(t,m,i)}if("rsa"!==n&&"ecdsa/rsa"!==n)throw new Error("wrong private key type");t=r.concat([p,t]);for(var g=m.modulus.byteLength(),v=[0,1];t.length+v.length+1<g;)v.push(255);v.push(0);for(var y=-1;++y<t.length;)v.push(t[y]);return o(v,m)},t.exports.getKey=l,t.exports.makeKey=f},function(t,e){},function(t){t.exports=JSON.parse('{"_args":[["elliptic@6.5.4","G:\\\\yolin\\\\SkeyeWebPlayerSourceCode"]],"_from":"elliptic@6.5.4","_id":"elliptic@6.5.4","_inBundle":false,"_integrity":"sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==","_location":"/elliptic","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"elliptic@6.5.4","name":"elliptic","escapedName":"elliptic","rawSpec":"6.5.4","saveSpec":null,"fetchSpec":"6.5.4"},"_requiredBy":["/browserify-sign","/create-ecdh"],"_resolved":"https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz","_spec":"6.5.4","_where":"G:\\\\yolin\\\\SkeyeWebPlayerSourceCode","author":{"name":"Fedor Indutny","email":"fedor@indutny.com"},"bugs":{"url":"https://github.com/indutny/elliptic/issues"},"dependencies":{"bn.js":"^4.11.9","brorand":"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1","inherits":"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},"description":"EC cryptography","devDependencies":{"brfs":"^2.0.2","coveralls":"^3.1.0","eslint":"^7.6.0","grunt":"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.5","mocha":"^8.0.1"},"files":["lib"],"homepage":"https://github.com/indutny/elliptic","keywords":["EC","Elliptic","curve","Cryptography"],"license":"MIT","main":"lib/elliptic.js","name":"elliptic","repository":{"type":"git","url":"git+ssh://git@github.com/indutny/elliptic.git"},"scripts":{"lint":"eslint lib test","lint:fix":"npm run lint -- --fix","test":"npm run lint && npm run unit","unit":"istanbul test _mocha --reporter=spec test/index.js","version":"grunt dist && git add dist/"},"version":"6.5.4"}')},function(t,e){},function(t,e,i){"use strict";var r=i(14),n=i(16),o=i(3),a=i(45),s=r.assert;function h(t){a.call(this,"short",t),this.a=new n(t.a,16).toRed(this.red),this.b=new n(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function u(t,e,i,r){a.BasePoint.call(this,t,"affine"),null===e&&null===i?(this.x=null,this.y=null,this.inf=!0):(this.x=new n(e,16),this.y=new n(i,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function l(t,e,i,r){a.BasePoint.call(this,t,"jacobian"),null===e&&null===i&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new n(0)):(this.x=new n(e,16),this.y=new n(i,16),this.z=new n(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}o(h,a),t.exports=h,h.prototype._getEndomorphism=function(t){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var e,i;if(t.beta)e=new n(t.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);e=(e=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(t.lambda)i=new n(t.lambda,16);else{var o=this._getEndoRoots(this.n);0===this.g.mul(o[0]).x.cmp(this.g.x.redMul(e))?i=o[0]:(i=o[1],s(0===this.g.mul(i).x.cmp(this.g.x.redMul(e))))}return{beta:e,lambda:i,basis:t.basis?t.basis.map((function(t){return{a:new n(t.a,16),b:new n(t.b,16)}})):this._getEndoBasis(i)}}},h.prototype._getEndoRoots=function(t){var e=t===this.p?this.red:n.mont(t),i=new n(2).toRed(e).redInvm(),r=i.redNeg(),o=new n(3).toRed(e).redNeg().redSqrt().redMul(i);return[r.redAdd(o).fromRed(),r.redSub(o).fromRed()]},h.prototype._getEndoBasis=function(t){for(var e,i,r,o,a,s,h,u,l,d=this.n.ushrn(Math.floor(this.n.bitLength()/2)),f=t,c=this.n.clone(),p=new n(1),m=new n(0),g=new n(0),v=new n(1),y=0;0!==f.cmpn(0);){var b=c.div(f);u=c.sub(b.mul(f)),l=g.sub(b.mul(p));var _=v.sub(b.mul(m));if(!r&&u.cmp(d)<0)e=h.neg(),i=p,r=u.neg(),o=l;else if(r&&2==++y)break;h=u,c=f,f=u,g=p,p=l,v=m,m=_}a=u.neg(),s=l;var w=r.sqr().add(o.sqr());return a.sqr().add(s.sqr()).cmp(w)>=0&&(a=e,s=i),r.negative&&(r=r.neg(),o=o.neg()),a.negative&&(a=a.neg(),s=s.neg()),[{a:r,b:o},{a:a,b:s}]},h.prototype._endoSplit=function(t){var e=this.endo.basis,i=e[0],r=e[1],n=r.b.mul(t).divRound(this.n),o=i.b.neg().mul(t).divRound(this.n),a=n.mul(i.a),s=o.mul(r.a),h=n.mul(i.b),u=o.mul(r.b);return{k1:t.sub(a).sub(s),k2:h.add(u).neg()}},h.prototype.pointFromX=function(t,e){(t=new n(t,16)).red||(t=t.toRed(this.red));var i=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),r=i.redSqrt();if(0!==r.redSqr().redSub(i).cmp(this.zero))throw new Error("invalid point");var o=r.fromRed().isOdd();return(e&&!o||!e&&o)&&(r=r.redNeg()),this.point(t,r)},h.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,i=t.y,r=this.a.redMul(e),n=e.redSqr().redMul(e).redIAdd(r).redIAdd(this.b);return 0===i.redSqr().redISub(n).cmpn(0)},h.prototype._endoWnafMulAdd=function(t,e,i){for(var r=this._endoWnafT1,n=this._endoWnafT2,o=0;o<t.length;o++){var a=this._endoSplit(e[o]),s=t[o],h=s._getBeta();a.k1.negative&&(a.k1.ineg(),s=s.neg(!0)),a.k2.negative&&(a.k2.ineg(),h=h.neg(!0)),r[2*o]=s,r[2*o+1]=h,n[2*o]=a.k1,n[2*o+1]=a.k2}for(var u=this._wnafMulAdd(1,r,n,2*o,i),l=0;l<2*o;l++)r[l]=null,n[l]=null;return u},o(u,a.BasePoint),h.prototype.point=function(t,e,i){return new u(this,t,e,i)},h.prototype.pointFromJSON=function(t,e){return u.fromJSON(this,t,e)},u.prototype._getBeta=function(){if(this.curve.endo){var t=this.precomputed;if(t&&t.beta)return t.beta;var e=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(t){var i=this.curve,r=function(t){return i.point(t.x.redMul(i.endo.beta),t.y)};t.beta=e,e.precomputed={beta:null,naf:t.naf&&{wnd:t.naf.wnd,points:t.naf.points.map(r)},doubles:t.doubles&&{step:t.doubles.step,points:t.doubles.points.map(r)}}}return e}},u.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},u.fromJSON=function(t,e,i){"string"==typeof e&&(e=JSON.parse(e));var r=t.point(e[0],e[1],i);if(!e[2])return r;function n(e){return t.point(e[0],e[1],i)}var o=e[2];return r.precomputed={beta:null,doubles:o.doubles&&{step:o.doubles.step,points:[r].concat(o.doubles.points.map(n))},naf:o.naf&&{wnd:o.naf.wnd,points:[r].concat(o.naf.points.map(n))}},r},u.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},u.prototype.isInfinity=function(){return this.inf},u.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var i=e.redSqr().redISub(this.x).redISub(t.x),r=e.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,r)},u.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,i=this.x.redSqr(),r=t.redInvm(),n=i.redAdd(i).redIAdd(i).redIAdd(e).redMul(r),o=n.redSqr().redISub(this.x.redAdd(this.x)),a=n.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,a)},u.prototype.getX=function(){return this.x.fromRed()},u.prototype.getY=function(){return this.y.fromRed()},u.prototype.mul=function(t){return t=new n(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},u.prototype.mulAdd=function(t,e,i){var r=[this,e],n=[t,i];return this.curve.endo?this.curve._endoWnafMulAdd(r,n):this.curve._wnafMulAdd(1,r,n,2)},u.prototype.jmulAdd=function(t,e,i){var r=[this,e],n=[t,i];return this.curve.endo?this.curve._endoWnafMulAdd(r,n,!0):this.curve._wnafMulAdd(1,r,n,2,!0)},u.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},u.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var i=this.precomputed,r=function(t){return t.neg()};e.precomputed={naf:i.naf&&{wnd:i.naf.wnd,points:i.naf.points.map(r)},doubles:i.doubles&&{step:i.doubles.step,points:i.doubles.points.map(r)}}}return e},u.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},o(l,a.BasePoint),h.prototype.jpoint=function(t,e,i){return new l(this,t,e,i)},l.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),i=this.x.redMul(e),r=this.y.redMul(e).redMul(t);return this.curve.point(i,r)},l.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},l.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),i=this.z.redSqr(),r=this.x.redMul(e),n=t.x.redMul(i),o=this.y.redMul(e.redMul(t.z)),a=t.y.redMul(i.redMul(this.z)),s=r.redSub(n),h=o.redSub(a);if(0===s.cmpn(0))return 0!==h.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),l=u.redMul(s),d=r.redMul(u),f=h.redSqr().redIAdd(l).redISub(d).redISub(d),c=h.redMul(d.redISub(f)).redISub(o.redMul(l)),p=this.z.redMul(t.z).redMul(s);return this.curve.jpoint(f,c,p)},l.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),i=this.x,r=t.x.redMul(e),n=this.y,o=t.y.redMul(e).redMul(this.z),a=i.redSub(r),s=n.redSub(o);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var h=a.redSqr(),u=h.redMul(a),l=i.redMul(h),d=s.redSqr().redIAdd(u).redISub(l).redISub(l),f=s.redMul(l.redISub(d)).redISub(n.redMul(u)),c=this.z.redMul(a);return this.curve.jpoint(d,f,c)},l.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();var e;if(this.curve.zeroA||this.curve.threeA){var i=this;for(e=0;e<t;e++)i=i.dbl();return i}var r=this.curve.a,n=this.curve.tinv,o=this.x,a=this.y,s=this.z,h=s.redSqr().redSqr(),u=a.redAdd(a);for(e=0;e<t;e++){var l=o.redSqr(),d=u.redSqr(),f=d.redSqr(),c=l.redAdd(l).redIAdd(l).redIAdd(r.redMul(h)),p=o.redMul(d),m=c.redSqr().redISub(p.redAdd(p)),g=p.redISub(m),v=c.redMul(g);v=v.redIAdd(v).redISub(f);var y=u.redMul(s);e+1<t&&(h=h.redMul(f)),o=m,s=y,u=v}return this.curve.jpoint(o,u.redMul(n),s)},l.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},l.prototype._zeroDbl=function(){var t,e,i;if(this.zOne){var r=this.x.redSqr(),n=this.y.redSqr(),o=n.redSqr(),a=this.x.redAdd(n).redSqr().redISub(r).redISub(o);a=a.redIAdd(a);var s=r.redAdd(r).redIAdd(r),h=s.redSqr().redISub(a).redISub(a),u=o.redIAdd(o);u=(u=u.redIAdd(u)).redIAdd(u),t=h,e=s.redMul(a.redISub(h)).redISub(u),i=this.y.redAdd(this.y)}else{var l=this.x.redSqr(),d=this.y.redSqr(),f=d.redSqr(),c=this.x.redAdd(d).redSqr().redISub(l).redISub(f);c=c.redIAdd(c);var p=l.redAdd(l).redIAdd(l),m=p.redSqr(),g=f.redIAdd(f);g=(g=g.redIAdd(g)).redIAdd(g),t=m.redISub(c).redISub(c),e=p.redMul(c.redISub(t)).redISub(g),i=(i=this.y.redMul(this.z)).redIAdd(i)}return this.curve.jpoint(t,e,i)},l.prototype._threeDbl=function(){var t,e,i;if(this.zOne){var r=this.x.redSqr(),n=this.y.redSqr(),o=n.redSqr(),a=this.x.redAdd(n).redSqr().redISub(r).redISub(o);a=a.redIAdd(a);var s=r.redAdd(r).redIAdd(r).redIAdd(this.curve.a),h=s.redSqr().redISub(a).redISub(a);t=h;var u=o.redIAdd(o);u=(u=u.redIAdd(u)).redIAdd(u),e=s.redMul(a.redISub(h)).redISub(u),i=this.y.redAdd(this.y)}else{var l=this.z.redSqr(),d=this.y.redSqr(),f=this.x.redMul(d),c=this.x.redSub(l).redMul(this.x.redAdd(l));c=c.redAdd(c).redIAdd(c);var p=f.redIAdd(f),m=(p=p.redIAdd(p)).redAdd(p);t=c.redSqr().redISub(m),i=this.y.redAdd(this.z).redSqr().redISub(d).redISub(l);var g=d.redSqr();g=(g=(g=g.redIAdd(g)).redIAdd(g)).redIAdd(g),e=c.redMul(p.redISub(t)).redISub(g)}return this.curve.jpoint(t,e,i)},l.prototype._dbl=function(){var t=this.curve.a,e=this.x,i=this.y,r=this.z,n=r.redSqr().redSqr(),o=e.redSqr(),a=i.redSqr(),s=o.redAdd(o).redIAdd(o).redIAdd(t.redMul(n)),h=e.redAdd(e),u=(h=h.redIAdd(h)).redMul(a),l=s.redSqr().redISub(u.redAdd(u)),d=u.redISub(l),f=a.redSqr();f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var c=s.redMul(d).redISub(f),p=i.redAdd(i).redMul(r);return this.curve.jpoint(l,c,p)},l.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var t=this.x.redSqr(),e=this.y.redSqr(),i=this.z.redSqr(),r=e.redSqr(),n=t.redAdd(t).redIAdd(t),o=n.redSqr(),a=this.x.redAdd(e).redSqr().redISub(t).redISub(r),s=(a=(a=(a=a.redIAdd(a)).redAdd(a).redIAdd(a)).redISub(o)).redSqr(),h=r.redIAdd(r);h=(h=(h=h.redIAdd(h)).redIAdd(h)).redIAdd(h);var u=n.redIAdd(a).redSqr().redISub(o).redISub(s).redISub(h),l=e.redMul(u);l=(l=l.redIAdd(l)).redIAdd(l);var d=this.x.redMul(s).redISub(l);d=(d=d.redIAdd(d)).redIAdd(d);var f=this.y.redMul(u.redMul(h.redISub(u)).redISub(a.redMul(s)));f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var c=this.z.redAdd(a).redSqr().redISub(i).redISub(s);return this.curve.jpoint(d,f,c)},l.prototype.mul=function(t,e){return t=new n(t,e),this.curve._wnafMul(this,t)},l.prototype.eq=function(t){if("affine"===t.type)return this.eq(t.toJ());if(this===t)return!0;var e=this.z.redSqr(),i=t.z.redSqr();if(0!==this.x.redMul(i).redISub(t.x.redMul(e)).cmpn(0))return!1;var r=e.redMul(this.z),n=i.redMul(t.z);return 0===this.y.redMul(n).redISub(t.y.redMul(r)).cmpn(0)},l.prototype.eqXToP=function(t){var e=this.z.redSqr(),i=t.toRed(this.curve.red).redMul(e);if(0===this.x.cmp(i))return!0;for(var r=t.clone(),n=this.curve.redN.redMul(e);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(i.redIAdd(n),0===this.x.cmp(i))return!0}},l.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},l.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},function(t,e,i){"use strict";var r=i(16),n=i(3),o=i(45),a=i(14);function s(t){o.call(this,"mont",t),this.a=new r(t.a,16).toRed(this.red),this.b=new r(t.b,16).toRed(this.red),this.i4=new r(4).toRed(this.red).redInvm(),this.two=new r(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function h(t,e,i){o.BasePoint.call(this,t,"projective"),null===e&&null===i?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new r(e,16),this.z=new r(i,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}n(s,o),t.exports=s,s.prototype.validate=function(t){var e=t.normalize().x,i=e.redSqr(),r=i.redMul(e).redAdd(i.redMul(this.a)).redAdd(e);return 0===r.redSqrt().redSqr().cmp(r)},n(h,o.BasePoint),s.prototype.decodePoint=function(t,e){return this.point(a.toArray(t,e),1)},s.prototype.point=function(t,e){return new h(this,t,e)},s.prototype.pointFromJSON=function(t){return h.fromJSON(this,t)},h.prototype.precompute=function(){},h.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},h.fromJSON=function(t,e){return new h(t,e[0],e[1]||t.one)},h.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},h.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},h.prototype.dbl=function(){var t=this.x.redAdd(this.z).redSqr(),e=this.x.redSub(this.z).redSqr(),i=t.redSub(e),r=t.redMul(e),n=i.redMul(e.redAdd(this.curve.a24.redMul(i)));return this.curve.point(r,n)},h.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},h.prototype.diffAdd=function(t,e){var i=this.x.redAdd(this.z),r=this.x.redSub(this.z),n=t.x.redAdd(t.z),o=t.x.redSub(t.z).redMul(i),a=n.redMul(r),s=e.z.redMul(o.redAdd(a).redSqr()),h=e.x.redMul(o.redISub(a).redSqr());return this.curve.point(s,h)},h.prototype.mul=function(t){for(var e=t.clone(),i=this,r=this.curve.point(null,null),n=[];0!==e.cmpn(0);e.iushrn(1))n.push(e.andln(1));for(var o=n.length-1;o>=0;o--)0===n[o]?(i=i.diffAdd(r,this),r=r.dbl()):(r=i.diffAdd(r,this),i=i.dbl());return r},h.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},h.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},h.prototype.eq=function(t){return 0===this.getX().cmp(t.getX())},h.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},h.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},function(t,e,i){"use strict";var r=i(14),n=i(16),o=i(3),a=i(45),s=r.assert;function h(t){this.twisted=1!=(0|t.a),this.mOneA=this.twisted&&-1==(0|t.a),this.extended=this.mOneA,a.call(this,"edwards",t),this.a=new n(t.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new n(t.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new n(t.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),s(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|t.c)}function u(t,e,i,r,o){a.BasePoint.call(this,t,"projective"),null===e&&null===i&&null===r?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new n(e,16),this.y=new n(i,16),this.z=r?new n(r,16):this.curve.one,this.t=o&&new n(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(h,a),t.exports=h,h.prototype._mulA=function(t){return this.mOneA?t.redNeg():this.a.redMul(t)},h.prototype._mulC=function(t){return this.oneC?t:this.c.redMul(t)},h.prototype.jpoint=function(t,e,i,r){return this.point(t,e,i,r)},h.prototype.pointFromX=function(t,e){(t=new n(t,16)).red||(t=t.toRed(this.red));var i=t.redSqr(),r=this.c2.redSub(this.a.redMul(i)),o=this.one.redSub(this.c2.redMul(this.d).redMul(i)),a=r.redMul(o.redInvm()),s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");var h=s.fromRed().isOdd();return(e&&!h||!e&&h)&&(s=s.redNeg()),this.point(t,s)},h.prototype.pointFromY=function(t,e){(t=new n(t,16)).red||(t=t.toRed(this.red));var i=t.redSqr(),r=i.redSub(this.c2),o=i.redMul(this.d).redMul(this.c2).redSub(this.a),a=r.redMul(o.redInvm());if(0===a.cmp(this.zero)){if(e)throw new Error("invalid point");return this.point(this.zero,t)}var s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");return s.fromRed().isOdd()!==e&&(s=s.redNeg()),this.point(s,t)},h.prototype.validate=function(t){if(t.isInfinity())return!0;t.normalize();var e=t.x.redSqr(),i=t.y.redSqr(),r=e.redMul(this.a).redAdd(i),n=this.c2.redMul(this.one.redAdd(this.d.redMul(e).redMul(i)));return 0===r.cmp(n)},o(u,a.BasePoint),h.prototype.pointFromJSON=function(t){return u.fromJSON(this,t)},h.prototype.point=function(t,e,i,r){return new u(this,t,e,i,r)},u.fromJSON=function(t,e){return new u(t,e[0],e[1],e[2])},u.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},u.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},u.prototype._extDbl=function(){var t=this.x.redSqr(),e=this.y.redSqr(),i=this.z.redSqr();i=i.redIAdd(i);var r=this.curve._mulA(t),n=this.x.redAdd(this.y).redSqr().redISub(t).redISub(e),o=r.redAdd(e),a=o.redSub(i),s=r.redSub(e),h=n.redMul(a),u=o.redMul(s),l=n.redMul(s),d=a.redMul(o);return this.curve.point(h,u,d,l)},u.prototype._projDbl=function(){var t,e,i,r,n,o,a=this.x.redAdd(this.y).redSqr(),s=this.x.redSqr(),h=this.y.redSqr();if(this.curve.twisted){var u=(r=this.curve._mulA(s)).redAdd(h);this.zOne?(t=a.redSub(s).redSub(h).redMul(u.redSub(this.curve.two)),e=u.redMul(r.redSub(h)),i=u.redSqr().redSub(u).redSub(u)):(n=this.z.redSqr(),o=u.redSub(n).redISub(n),t=a.redSub(s).redISub(h).redMul(o),e=u.redMul(r.redSub(h)),i=u.redMul(o))}else r=s.redAdd(h),n=this.curve._mulC(this.z).redSqr(),o=r.redSub(n).redSub(n),t=this.curve._mulC(a.redISub(r)).redMul(o),e=this.curve._mulC(r).redMul(s.redISub(h)),i=r.redMul(o);return this.curve.point(t,e,i)},u.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},u.prototype._extAdd=function(t){var e=this.y.redSub(this.x).redMul(t.y.redSub(t.x)),i=this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)),r=this.t.redMul(this.curve.dd).redMul(t.t),n=this.z.redMul(t.z.redAdd(t.z)),o=i.redSub(e),a=n.redSub(r),s=n.redAdd(r),h=i.redAdd(e),u=o.redMul(a),l=s.redMul(h),d=o.redMul(h),f=a.redMul(s);return this.curve.point(u,l,f,d)},u.prototype._projAdd=function(t){var e,i,r=this.z.redMul(t.z),n=r.redSqr(),o=this.x.redMul(t.x),a=this.y.redMul(t.y),s=this.curve.d.redMul(o).redMul(a),h=n.redSub(s),u=n.redAdd(s),l=this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(o).redISub(a),d=r.redMul(h).redMul(l);return this.curve.twisted?(e=r.redMul(u).redMul(a.redSub(this.curve._mulA(o))),i=h.redMul(u)):(e=r.redMul(u).redMul(a.redSub(o)),i=this.curve._mulC(h).redMul(u)),this.curve.point(d,e,i)},u.prototype.add=function(t){return this.isInfinity()?t:t.isInfinity()?this:this.curve.extended?this._extAdd(t):this._projAdd(t)},u.prototype.mul=function(t){return this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve._wnafMul(this,t)},u.prototype.mulAdd=function(t,e,i){return this.curve._wnafMulAdd(1,[this,e],[t,i],2,!1)},u.prototype.jmulAdd=function(t,e,i){return this.curve._wnafMulAdd(1,[this,e],[t,i],2,!0)},u.prototype.normalize=function(){if(this.zOne)return this;var t=this.z.redInvm();return this.x=this.x.redMul(t),this.y=this.y.redMul(t),this.t&&(this.t=this.t.redMul(t)),this.z=this.curve.one,this.zOne=!0,this},u.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()},u.prototype.getY=function(){return this.normalize(),this.y.fromRed()},u.prototype.eq=function(t){return this===t||0===this.getX().cmp(t.getX())&&0===this.getY().cmp(t.getY())},u.prototype.eqXToP=function(t){var e=t.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(e))return!0;for(var i=t.clone(),r=this.curve.redN.redMul(this.z);;){if(i.iadd(this.curve.n),i.cmp(this.curve.p)>=0)return!1;if(e.redIAdd(r),0===this.x.cmp(e))return!0}},u.prototype.toP=u.prototype.normalize,u.prototype.mixedAdd=u.prototype.add},function(t,e,i){"use strict";e.sha1=i(214),e.sha224=i(215),e.sha256=i(119),e.sha384=i(216),e.sha512=i(120)},function(t,e,i){"use strict";var r=i(15),n=i(38),o=i(118),a=r.rotl32,s=r.sum32,h=r.sum32_5,u=o.ft_1,l=n.BlockHash,d=[1518500249,1859775393,2400959708,3395469782];function f(){if(!(this instanceof f))return new f;l.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(f,l),t.exports=f,f.blockSize=512,f.outSize=160,f.hmacStrength=80,f.padLength=64,f.prototype._update=function(t,e){for(var i=this.W,r=0;r<16;r++)i[r]=t[e+r];for(;r<i.length;r++)i[r]=a(i[r-3]^i[r-8]^i[r-14]^i[r-16],1);var n=this.h[0],o=this.h[1],l=this.h[2],f=this.h[3],c=this.h[4];for(r=0;r<i.length;r++){var p=~~(r/20),m=h(a(n,5),u(p,o,l,f),c,i[r],d[p]);c=f,f=l,l=a(o,30),o=n,n=m}this.h[0]=s(this.h[0],n),this.h[1]=s(this.h[1],o),this.h[2]=s(this.h[2],l),this.h[3]=s(this.h[3],f),this.h[4]=s(this.h[4],c)},f.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},function(t,e,i){"use strict";var r=i(15),n=i(119);function o(){if(!(this instanceof o))return new o;n.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}r.inherits(o,n),t.exports=o,o.blockSize=512,o.outSize=224,o.hmacStrength=192,o.padLength=64,o.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h.slice(0,7),"big"):r.split32(this.h.slice(0,7),"big")}},function(t,e,i){"use strict";var r=i(15),n=i(120);function o(){if(!(this instanceof o))return new o;n.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}r.inherits(o,n),t.exports=o,o.blockSize=1024,o.outSize=384,o.hmacStrength=192,o.padLength=128,o.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h.slice(0,12),"big"):r.split32(this.h.slice(0,12),"big")}},function(t,e,i){"use strict";var r=i(15),n=i(38),o=r.rotl32,a=r.sum32,s=r.sum32_3,h=r.sum32_4,u=n.BlockHash;function l(){if(!(this instanceof l))return new l;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function d(t,e,i,r){return t<=15?e^i^r:t<=31?e&i|~e&r:t<=47?(e|~i)^r:t<=63?e&r|i&~r:e^(i|~r)}function f(t){return t<=15?0:t<=31?1518500249:t<=47?1859775393:t<=63?2400959708:2840853838}function c(t){return t<=15?1352829926:t<=31?1548603684:t<=47?1836072691:t<=63?2053994217:0}r.inherits(l,u),e.ripemd160=l,l.blockSize=512,l.outSize=160,l.hmacStrength=192,l.padLength=64,l.prototype._update=function(t,e){for(var i=this.h[0],r=this.h[1],n=this.h[2],u=this.h[3],l=this.h[4],y=i,b=r,_=n,w=u,A=l,M=0;M<80;M++){var E=a(o(h(i,d(M,r,n,u),t[p[M]+e],f(M)),g[M]),l);i=l,l=u,u=o(n,10),n=r,r=E,E=a(o(h(y,d(79-M,b,_,w),t[m[M]+e],c(M)),v[M]),A),y=A,A=w,w=o(_,10),_=b,b=E}E=s(this.h[1],n,w),this.h[1]=s(this.h[2],u,A),this.h[2]=s(this.h[3],l,y),this.h[3]=s(this.h[4],i,b),this.h[4]=s(this.h[0],r,_),this.h[0]=E},l.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h,"little"):r.split32(this.h,"little")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],m=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],g=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],v=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},function(t,e,i){"use strict";var r=i(15),n=i(13);function o(t,e,i){if(!(this instanceof o))return new o(t,e,i);this.Hash=t,this.blockSize=t.blockSize/8,this.outSize=t.outSize/8,this.inner=null,this.outer=null,this._init(r.toArray(e,i))}t.exports=o,o.prototype._init=function(t){t.length>this.blockSize&&(t=(new this.Hash).update(t).digest()),n(t.length<=this.blockSize);for(var e=t.length;e<this.blockSize;e++)t.push(0);for(e=0;e<t.length;e++)t[e]^=54;for(this.inner=(new this.Hash).update(t),e=0;e<t.length;e++)t[e]^=106;this.outer=(new this.Hash).update(t)},o.prototype.update=function(t,e){return this.inner.update(t,e),this},o.prototype.digest=function(t){return this.outer.update(this.inner.digest()),this.outer.digest(t)}},function(t,e){t.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},function(t,e,i){"use strict";var r=i(16),n=i(221),o=i(14),a=i(68),s=i(63),h=o.assert,u=i(222),l=i(223);function d(t){if(!(this instanceof d))return new d(t);"string"==typeof t&&(h(Object.prototype.hasOwnProperty.call(a,t),"Unknown curve "+t),t=a[t]),t instanceof a.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}t.exports=d,d.prototype.keyPair=function(t){return new u(this,t)},d.prototype.keyFromPrivate=function(t,e){return u.fromPrivate(this,t,e)},d.prototype.keyFromPublic=function(t,e){return u.fromPublic(this,t,e)},d.prototype.genKeyPair=function(t){t||(t={});for(var e=new n({hash:this.hash,pers:t.pers,persEnc:t.persEnc||"utf8",entropy:t.entropy||s(this.hash.hmacStrength),entropyEnc:t.entropy&&t.entropyEnc||"utf8",nonce:this.n.toArray()}),i=this.n.byteLength(),o=this.n.sub(new r(2));;){var a=new r(e.generate(i));if(!(a.cmp(o)>0))return a.iaddn(1),this.keyFromPrivate(a)}},d.prototype._truncateToN=function(t,e){var i=8*t.byteLength()-this.n.bitLength();return i>0&&(t=t.ushrn(i)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},d.prototype.sign=function(t,e,i,o){"object"==typeof i&&(o=i,i=null),o||(o={}),e=this.keyFromPrivate(e,i),t=this._truncateToN(new r(t,16));for(var a=this.n.byteLength(),s=e.getPrivate().toArray("be",a),h=t.toArray("be",a),u=new n({hash:this.hash,entropy:s,nonce:h,pers:o.pers,persEnc:o.persEnc||"utf8"}),d=this.n.sub(new r(1)),f=0;;f++){var c=o.k?o.k(f):new r(u.generate(this.n.byteLength()));if(!((c=this._truncateToN(c,!0)).cmpn(1)<=0||c.cmp(d)>=0)){var p=this.g.mul(c);if(!p.isInfinity()){var m=p.getX(),g=m.umod(this.n);if(0!==g.cmpn(0)){var v=c.invm(this.n).mul(g.mul(e.getPrivate()).iadd(t));if(0!==(v=v.umod(this.n)).cmpn(0)){var y=(p.getY().isOdd()?1:0)|(0!==m.cmp(g)?2:0);return o.canonical&&v.cmp(this.nh)>0&&(v=this.n.sub(v),y^=1),new l({r:g,s:v,recoveryParam:y})}}}}}},d.prototype.verify=function(t,e,i,n){t=this._truncateToN(new r(t,16)),i=this.keyFromPublic(i,n);var o=(e=new l(e,"hex")).r,a=e.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var s,h=a.invm(this.n),u=h.mul(t).umod(this.n),d=h.mul(o).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(u,i.getPublic(),d)).isInfinity()&&s.eqXToP(o):!(s=this.g.mulAdd(u,i.getPublic(),d)).isInfinity()&&0===s.getX().umod(this.n).cmp(o)},d.prototype.recoverPubKey=function(t,e,i,n){h((3&i)===i,"The recovery param is more than two bits"),e=new l(e,n);var o=this.n,a=new r(t),s=e.r,u=e.s,d=1&i,f=i>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&f)throw new Error("Unable to find sencond key candinate");s=f?this.curve.pointFromX(s.add(this.curve.n),d):this.curve.pointFromX(s,d);var c=e.r.invm(o),p=o.sub(a).mul(c).umod(o),m=u.mul(c).umod(o);return this.g.mulAdd(p,s,m)},d.prototype.getKeyRecoveryParam=function(t,e,i,r){if(null!==(e=new l(e,r)).recoveryParam)return e.recoveryParam;for(var n=0;n<4;n++){var o;try{o=this.recoverPubKey(t,e,n)}catch(t){continue}if(o.eq(i))return n}throw new Error("Unable to find valid recovery factor")}},function(t,e,i){"use strict";var r=i(69),n=i(116),o=i(13);function a(t){if(!(this instanceof a))return new a(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=n.toArray(t.entropy,t.entropyEnc||"hex"),i=n.toArray(t.nonce,t.nonceEnc||"hex"),r=n.toArray(t.pers,t.persEnc||"hex");o(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,i,r)}t.exports=a,a.prototype._init=function(t,e,i){var r=t.concat(e).concat(i);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var n=0;n<this.V.length;n++)this.K[n]=0,this.V[n]=1;this._update(r),this._reseed=1,this.reseedInterval=281474976710656},a.prototype._hmac=function(){return new r.hmac(this.hash,this.K)},a.prototype._update=function(t){var e=this._hmac().update(this.V).update([0]);t&&(e=e.update(t)),this.K=e.digest(),this.V=this._hmac().update(this.V).digest(),t&&(this.K=this._hmac().update(this.V).update([1]).update(t).digest(),this.V=this._hmac().update(this.V).digest())},a.prototype.reseed=function(t,e,i,r){"string"!=typeof e&&(r=i,i=e,e=null),t=n.toArray(t,e),i=n.toArray(i,r),o(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(i||[])),this._reseed=1},a.prototype.generate=function(t,e,i,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof e&&(r=i,i=e,e=null),i&&(i=n.toArray(i,r||"hex"),this._update(i));for(var o=[];o.length<t;)this.V=this._hmac().update(this.V).digest(),o=o.concat(this.V);var a=o.slice(0,t);return this._update(i),this._reseed++,n.encode(a,e)}},function(t,e,i){"use strict";var r=i(16),n=i(14).assert;function o(t,e){this.ec=t,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}t.exports=o,o.fromPublic=function(t,e,i){return e instanceof o?e:new o(t,{pub:e,pubEnc:i})},o.fromPrivate=function(t,e,i){return e instanceof o?e:new o(t,{priv:e,privEnc:i})},o.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:"Invalid public key"}:t.validate()?t.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},o.prototype.getPublic=function(t,e){return"string"==typeof t&&(e=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,t):this.pub},o.prototype.getPrivate=function(t){return"hex"===t?this.priv.toString(16,2):this.priv},o.prototype._importPrivate=function(t,e){this.priv=new r(t,e||16),this.priv=this.priv.umod(this.ec.curve.n)},o.prototype._importPublic=function(t,e){if(t.x||t.y)return"mont"===this.ec.curve.type?n(t.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||n(t.x&&t.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(t.x,t.y));this.pub=this.ec.curve.decodePoint(t,e)},o.prototype.derive=function(t){return t.validate()||n(t.validate(),"public point not validated"),t.mul(this.priv).getX()},o.prototype.sign=function(t,e,i){return this.ec.sign(t,this,e,i)},o.prototype.verify=function(t,e){return this.ec.verify(t,e,this)},o.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"}},function(t,e,i){"use strict";var r=i(16),n=i(14),o=n.assert;function a(t,e){if(t instanceof a)return t;this._importDER(t,e)||(o(t.r&&t.s,"Signature without r or s"),this.r=new r(t.r,16),this.s=new r(t.s,16),void 0===t.recoveryParam?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}function s(){this.place=0}function h(t,e){var i=t[e.place++];if(!(128&i))return i;var r=15&i;if(0===r||r>4)return!1;for(var n=0,o=0,a=e.place;o<r;o++,a++)n<<=8,n|=t[a],n>>>=0;return!(n<=127)&&(e.place=a,n)}function u(t){for(var e=0,i=t.length-1;!t[e]&&!(128&t[e+1])&&e<i;)e++;return 0===e?t:t.slice(e)}function l(t,e){if(e<128)t.push(e);else{var i=1+(Math.log(e)/Math.LN2>>>3);for(t.push(128|i);--i;)t.push(e>>>(i<<3)&255);t.push(e)}}t.exports=a,a.prototype._importDER=function(t,e){t=n.toArray(t,e);var i=new s;if(48!==t[i.place++])return!1;var o=h(t,i);if(!1===o)return!1;if(o+i.place!==t.length)return!1;if(2!==t[i.place++])return!1;var a=h(t,i);if(!1===a)return!1;var u=t.slice(i.place,a+i.place);if(i.place+=a,2!==t[i.place++])return!1;var l=h(t,i);if(!1===l)return!1;if(t.length!==l+i.place)return!1;var d=t.slice(i.place,l+i.place);if(0===u[0]){if(!(128&u[1]))return!1;u=u.slice(1)}if(0===d[0]){if(!(128&d[1]))return!1;d=d.slice(1)}return this.r=new r(u),this.s=new r(d),this.recoveryParam=null,!0},a.prototype.toDER=function(t){var e=this.r.toArray(),i=this.s.toArray();for(128&e[0]&&(e=[0].concat(e)),128&i[0]&&(i=[0].concat(i)),e=u(e),i=u(i);!(i[0]||128&i[1]);)i=i.slice(1);var r=[2];l(r,e.length),(r=r.concat(e)).push(2),l(r,i.length);var o=r.concat(i),a=[48];return l(a,o.length),a=a.concat(o),n.encode(a,t)}},function(t,e,i){"use strict";var r=i(69),n=i(68),o=i(14),a=o.assert,s=o.parseBytes,h=i(225),u=i(226);function l(t){if(a("ed25519"===t,"only tested with ed25519 so far"),!(this instanceof l))return new l(t);t=n[t].curve,this.curve=t,this.g=t.g,this.g.precompute(t.n.bitLength()+1),this.pointClass=t.point().constructor,this.encodingLength=Math.ceil(t.n.bitLength()/8),this.hash=r.sha512}t.exports=l,l.prototype.sign=function(t,e){t=s(t);var i=this.keyFromSecret(e),r=this.hashInt(i.messagePrefix(),t),n=this.g.mul(r),o=this.encodePoint(n),a=this.hashInt(o,i.pubBytes(),t).mul(i.priv()),h=r.add(a).umod(this.curve.n);return this.makeSignature({R:n,S:h,Rencoded:o})},l.prototype.verify=function(t,e,i){t=s(t),e=this.makeSignature(e);var r=this.keyFromPublic(i),n=this.hashInt(e.Rencoded(),r.pubBytes(),t),o=this.g.mul(e.S());return e.R().add(r.pub().mul(n)).eq(o)},l.prototype.hashInt=function(){for(var t=this.hash(),e=0;e<arguments.length;e++)t.update(arguments[e]);return o.intFromLE(t.digest()).umod(this.curve.n)},l.prototype.keyFromPublic=function(t){return h.fromPublic(this,t)},l.prototype.keyFromSecret=function(t){return h.fromSecret(this,t)},l.prototype.makeSignature=function(t){return t instanceof u?t:new u(this,t)},l.prototype.encodePoint=function(t){var e=t.getY().toArray("le",this.encodingLength);return e[this.encodingLength-1]|=t.getX().isOdd()?128:0,e},l.prototype.decodePoint=function(t){var e=(t=o.parseBytes(t)).length-1,i=t.slice(0,e).concat(-129&t[e]),r=0!=(128&t[e]),n=o.intFromLE(i);return this.curve.pointFromY(n,r)},l.prototype.encodeInt=function(t){return t.toArray("le",this.encodingLength)},l.prototype.decodeInt=function(t){return o.intFromLE(t)},l.prototype.isPoint=function(t){return t instanceof this.pointClass}},function(t,e,i){"use strict";var r=i(14),n=r.assert,o=r.parseBytes,a=r.cachedProperty;function s(t,e){this.eddsa=t,this._secret=o(e.secret),t.isPoint(e.pub)?this._pub=e.pub:this._pubBytes=o(e.pub)}s.fromPublic=function(t,e){return e instanceof s?e:new s(t,{pub:e})},s.fromSecret=function(t,e){return e instanceof s?e:new s(t,{secret:e})},s.prototype.secret=function(){return this._secret},a(s,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),a(s,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),a(s,"privBytes",(function(){var t=this.eddsa,e=this.hash(),i=t.encodingLength-1,r=e.slice(0,t.encodingLength);return r[0]&=248,r[i]&=127,r[i]|=64,r})),a(s,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),a(s,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),a(s,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),s.prototype.sign=function(t){return n(this._secret,"KeyPair can only verify"),this.eddsa.sign(t,this)},s.prototype.verify=function(t,e){return this.eddsa.verify(t,e,this)},s.prototype.getSecret=function(t){return n(this._secret,"KeyPair is public only"),r.encode(this.secret(),t)},s.prototype.getPublic=function(t){return r.encode(this.pubBytes(),t)},t.exports=s},function(t,e,i){"use strict";var r=i(16),n=i(14),o=n.assert,a=n.cachedProperty,s=n.parseBytes;function h(t,e){this.eddsa=t,"object"!=typeof e&&(e=s(e)),Array.isArray(e)&&(e={R:e.slice(0,t.encodingLength),S:e.slice(t.encodingLength)}),o(e.R&&e.S,"Signature without R or S"),t.isPoint(e.R)&&(this._R=e.R),e.S instanceof r&&(this._S=e.S),this._Rencoded=Array.isArray(e.R)?e.R:e.Rencoded,this._Sencoded=Array.isArray(e.S)?e.S:e.Sencoded}a(h,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),a(h,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),a(h,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),a(h,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),h.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},h.prototype.toHex=function(){return n.encode(this.toBytes(),"hex").toUpperCase()},t.exports=h},function(t,e,i){"use strict";var r=i(121);e.certificate=i(234);var n=r.define("RSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())}));e.RSAPrivateKey=n;var o=r.define("RSAPublicKey",(function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())}));e.RSAPublicKey=o;var a=r.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(s),this.key("subjectPublicKey").bitstr())}));e.PublicKey=a;var s=r.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())})),h=r.define("PrivateKeyInfo",(function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(s),this.key("subjectPrivateKey").octstr())}));e.PrivateKey=h;var u=r.define("EncryptedPrivateKeyInfo",(function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())}));e.EncryptedPrivateKey=u;var l=r.define("DSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())}));e.DSAPrivateKey=l,e.DSAparam=r.define("DSAparam",(function(){this.int()}));var d=r.define("ECPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(f),this.key("publicKey").optional().explicit(1).bitstr())}));e.ECPrivateKey=d;var f=r.define("ECParameters",(function(){this.choice({namedCurve:this.objid()})}));e.signature=r.define("signature",(function(){this.seq().obj(this.key("r").int(),this.key("s").int())}))},function(t,e){},function(t,e,i){"use strict";var r=i(123),n=i(125),o=i(3);function a(t,e){this.name=t,this.body=e,this.decoders={},this.encoders={}}e.define=function(t,e){return new a(t,e)},a.prototype._createNamed=function(t){var e=this.name;function i(t){this._initNamed(t,e)}return o(i,t),i.prototype._initNamed=function(e,i){t.call(this,e,i)},new i(this)},a.prototype._getDecoder=function(t){return t=t||"der",this.decoders.hasOwnProperty(t)||(this.decoders[t]=this._createNamed(n[t])),this.decoders[t]},a.prototype.decode=function(t,e,i){return this._getDecoder(e).decode(t,i)},a.prototype._getEncoder=function(t){return t=t||"der",this.encoders.hasOwnProperty(t)||(this.encoders[t]=this._createNamed(r[t])),this.encoders[t]},a.prototype.encode=function(t,e,i){return this._getEncoder(e).encode(t,i)}},function(t,e,i){"use strict";var r=i(3),n=i(124);function o(t){n.call(this,t),this.enc="pem"}r(o,n),t.exports=o,o.prototype.encode=function(t,e){for(var i=n.prototype.encode.call(this,t).toString("base64"),r=["-----BEGIN "+e.label+"-----"],o=0;o<i.length;o+=64)r.push(i.slice(o,o+64));return r.push("-----END "+e.label+"-----"),r.join("\n")}},function(t,e,i){"use strict";var r=i(3),n=i(70).Buffer,o=i(126);function a(t){o.call(this,t),this.enc="pem"}r(a,o),t.exports=a,a.prototype.decode=function(t,e){for(var i=t.toString().split(/[\r\n]+/g),r=e.label.toUpperCase(),a=/^-----(BEGIN|END) ([^-]+)-----$/,s=-1,h=-1,u=0;u<i.length;u++){var l=i[u].match(a);if(null!==l&&l[2]===r){if(-1!==s){if("END"!==l[1])break;h=u;break}if("BEGIN"!==l[1])break;s=u}}if(-1===s||-1===h)throw new Error("PEM section not found for: "+r);var d=i.slice(s+1,h).join("");d.replace(/[^a-z0-9+/=]+/gi,"");var f=n.from(d,"base64");return o.prototype.decode.call(this,f,e)}},function(t,e,i){"use strict";var r=e;r.Reporter=i(72).Reporter,r.DecoderBuffer=i(39).DecoderBuffer,r.EncoderBuffer=i(39).EncoderBuffer,r.Node=i(71)},function(t,e,i){"use strict";var r=e;r._reverse=function(t){var e={};return Object.keys(t).forEach((function(i){(0|i)==i&&(i|=0);var r=t[i];e[r]=i})),e},r.der=i(73)},function(t,e,i){"use strict";var r=i(121),n=r.define("Time",(function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})})),o=r.define("AttributeTypeValue",(function(){this.seq().obj(this.key("type").objid(),this.key("value").any())})),a=r.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())})),s=r.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(a),this.key("subjectPublicKey").bitstr())})),h=r.define("RelativeDistinguishedName",(function(){this.setof(o)})),u=r.define("RDNSequence",(function(){this.seqof(h)})),l=r.define("Name",(function(){this.choice({rdnSequence:this.use(u)})})),d=r.define("Validity",(function(){this.seq().obj(this.key("notBefore").use(n),this.key("notAfter").use(n))})),f=r.define("Extension",(function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())})),c=r.define("TBSCertificate",(function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(a),this.key("issuer").use(l),this.key("validity").use(d),this.key("subject").use(l),this.key("subjectPublicKeyInfo").use(s),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(f).optional())})),p=r.define("X509Certificate",(function(){this.seq().obj(this.key("tbsCertificate").use(c),this.key("signatureAlgorithm").use(a),this.key("signatureValue").bitstr())}));t.exports=p},function(t){t.exports=JSON.parse('{"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}')},function(t,e,i){var r=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m,n=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,o=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m,a=i(44),s=i(61),h=i(4).Buffer;t.exports=function(t,e){var i,u=t.toString(),l=u.match(r);if(l){var d="aes"+l[1],f=h.from(l[2],"hex"),c=h.from(l[3].replace(/[\r\n]/g,""),"base64"),p=a(e,f.slice(0,8),parseInt(l[1],10)).key,m=[],g=s.createDecipheriv(d,p,f);m.push(g.update(c)),m.push(g.final()),i=h.concat(m)}else{var v=u.match(o);i=h.from(v[2].replace(/[\r\n]/g,""),"base64")}return{tag:u.match(n)[1],data:i}}},function(t,e,i){var r=i(4).Buffer,n=i(66),o=i(67).ec,a=i(46),s=i(127);function h(t,e){if(t.cmpn(0)<=0)throw new Error("invalid sig");if(t.cmp(e)>=e)throw new Error("invalid sig")}t.exports=function(t,e,i,u,l){var d=a(i);if("ec"===d.type){if("ecdsa"!==u&&"ecdsa/rsa"!==u)throw new Error("wrong public key type");return function(t,e,i){var r=s[i.data.algorithm.curve.join(".")];if(!r)throw new Error("unknown curve "+i.data.algorithm.curve.join("."));var n=new o(r),a=i.data.subjectPrivateKey.data;return n.verify(e,t,a)}(t,e,d)}if("dsa"===d.type){if("dsa"!==u)throw new Error("wrong public key type");return function(t,e,i){var r=i.data.p,o=i.data.q,s=i.data.g,u=i.data.pub_key,l=a.signature.decode(t,"der"),d=l.s,f=l.r;h(d,o),h(f,o);var c=n.mont(r),p=d.invm(o);return 0===s.toRed(c).redPow(new n(e).mul(p).mod(o)).fromRed().mul(u.toRed(c).redPow(f.mul(p).mod(o)).fromRed()).mod(r).mod(o).cmp(f)}(t,e,d)}if("rsa"!==u&&"ecdsa/rsa"!==u)throw new Error("wrong public key type");e=r.concat([l,e]);for(var f=d.modulus.byteLength(),c=[1],p=0;e.length+c.length+2<f;)c.push(255),p++;c.push(0);for(var m=-1;++m<e.length;)c.push(e[m]);c=r.from(c);var g=n.mont(d.modulus);t=(t=new n(t).toRed(g)).redPow(new n(d.publicExponent)),t=r.from(t.fromRed().toArray());var v=p<8?1:0;for(f=Math.min(t.length,c.length),t.length!==c.length&&(v=1),m=-1;++m<f;)v|=t[m]^c[m];return 0===v}},function(t,e,i){(function(e){var r=i(67),n=i(239);t.exports=function(t){return new a(t)};var o={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function a(t){this.curveType=o[t],this.curveType||(this.curveType={name:t}),this.curve=new r.ec(this.curveType.name),this.keys=void 0}function s(t,i,r){Array.isArray(t)||(t=t.toArray());var n=new e(t);if(r&&n.length<r){var o=new e(r-n.length);o.fill(0),n=e.concat([o,n])}return i?n.toString(i):n}o.p224=o.secp224r1,o.p256=o.secp256r1=o.prime256v1,o.p192=o.secp192r1=o.prime192v1,o.p384=o.secp384r1,o.p521=o.secp521r1,a.prototype.generateKeys=function(t,e){return this.keys=this.curve.genKeyPair(),this.getPublicKey(t,e)},a.prototype.computeSecret=function(t,i,r){return i=i||"utf8",e.isBuffer(t)||(t=new e(t,i)),s(this.curve.keyFromPublic(t).getPublic().mul(this.keys.getPrivate()).getX(),r,this.curveType.byteLength)},a.prototype.getPublicKey=function(t,e){var i=this.keys.getPublic("compressed"===e,!0);return"hybrid"===e&&(i[i.length-1]%2?i[0]=7:i[0]=6),s(i,t)},a.prototype.getPrivateKey=function(t){return s(this.keys.getPrivate(),t)},a.prototype.setPublicKey=function(t,i){return i=i||"utf8",e.isBuffer(t)||(t=new e(t,i)),this.keys._importPublic(t),this},a.prototype.setPrivateKey=function(t,i){i=i||"utf8",e.isBuffer(t)||(t=new e(t,i));var r=new n(t);return r=r.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(r),this}}).call(this,i(9).Buffer)},function(t,e,i){(function(t){!function(t,e){"use strict";function r(t,e){if(!t)throw new Error(e||"Assertion failed")}function n(t,e){t.super_=e;var i=function(){};i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t}function o(t,e,i){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(i=e,e=10),this._init(t||0,e||10,i||"be"))}var a;"object"==typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:i(240).Buffer}catch(t){}function s(t,e){var i=t.charCodeAt(e);return i>=65&&i<=70?i-55:i>=97&&i<=102?i-87:i-48&15}function h(t,e,i){var r=s(t,i);return i-1>=e&&(r|=s(t,i-1)<<4),r}function u(t,e,i,r){for(var n=0,o=Math.min(t.length,i),a=e;a<o;a++){var s=t.charCodeAt(a)-48;n*=r,n+=s>=49?s-49+10:s>=17?s-17+10:s}return n}o.isBN=function(t){return t instanceof o||null!==t&&"object"==typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,i){if("number"==typeof t)return this._initNumber(t,e,i);if("object"==typeof t)return this._initArray(t,e,i);"hex"===e&&(e=16),r(e===(0|e)&&e>=2&&e<=36);var n=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(n++,this.negative=1),n<t.length&&(16===e?this._parseHex(t,n,i):(this._parseBase(t,e,n),"le"===i&&this._initArray(this.toArray(),e,i)))},o.prototype._initNumber=function(t,e,i){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(r(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===i&&this._initArray(this.toArray(),e,i)},o.prototype._initArray=function(t,e,i){if(r("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var o,a,s=0;if("be"===i)for(n=t.length-1,o=0;n>=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===i)for(n=0,o=0;n<t.length;n+=3)a=t[n]|t[n+1]<<8|t[n+2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e,i){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var n,o=0,a=0;if("be"===i)for(r=t.length-1;r>=e;r-=2)n=h(t,e,r)<<o,this.words[a]|=67108863&n,o>=18?(o-=18,a+=1,this.words[a]|=n>>>26):o+=8;else for(r=(t.length-e)%2==0?e+1:e;r<t.length;r+=2)n=h(t,e,r)<<o,this.words[a]|=67108863&n,o>=18?(o-=18,a+=1,this.words[a]|=n>>>26):o+=8;this.strip()},o.prototype._parseBase=function(t,e,i){this.words=[0],this.length=1;for(var r=0,n=1;n<=67108863;n*=e)r++;r--,n=n/e|0;for(var o=t.length-i,a=o%r,s=Math.min(o,o-a)+i,h=0,l=i;l<s;l+=r)h=u(t,l,l+r,e),this.imuln(n),this.words[0]+h<67108864?this.words[0]+=h:this._iaddn(h);if(0!==a){var d=1;for(h=u(t,l,t.length,e),l=0;l<a;l++)d*=e;this.imuln(d),this.words[0]+h<67108864?this.words[0]+=h:this._iaddn(h)}this.strip()},o.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},o.prototype.clone=function(){var t=new o(null);return this.copy(t),t},o.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},o.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var l=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],d=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t,e,i){i.negative=e.negative^t.negative;var r=t.length+e.length|0;i.length=r,r=r-1|0;var n=0|t.words[0],o=0|e.words[0],a=n*o,s=67108863&a,h=a/67108864|0;i.words[0]=s;for(var u=1;u<r;u++){for(var l=h>>>26,d=67108863&h,f=Math.min(u,e.length-1),c=Math.max(0,u-t.length+1);c<=f;c++){var p=u-c|0;l+=(a=(n=0|t.words[p])*(o=0|e.words[c])+d)/67108864|0,d=67108863&a}i.words[u]=0|d,h=0|l}return 0!==h?i.words[u]=0|h:i.length--,i.strip()}o.prototype.toString=function(t,e){var i;if(e=0|e||1,16===(t=t||10)||"hex"===t){i="";for(var n=0,o=0,a=0;a<this.length;a++){var s=this.words[a],h=(16777215&(s<<n|o)).toString(16);i=0!==(o=s>>>24-n&16777215)||a!==this.length-1?l[6-h.length]+h+i:h+i,(n+=2)>=26&&(n-=26,a--)}for(0!==o&&(i=o.toString(16)+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}if(t===(0|t)&&t>=2&&t<=36){var u=d[t],c=f[t];i="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(c).toString(t);i=(p=p.idivn(c)).isZero()?m+i:l[u-m.length]+m+i}for(this.isZero()&&(i="0"+i);i.length%e!=0;)i="0"+i;return 0!==this.negative&&(i="-"+i),i}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return r(void 0!==a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,i){var n=this.byteLength(),o=i||Math.max(1,n);r(n<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0"),this.strip();var a,s,h="le"===e,u=new t(o),l=this.clone();if(h){for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[s]=a;for(;s<o;s++)u[s]=0}else{for(s=0;s<o-n;s++)u[s]=0;for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[o-s-1]=a}return u},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,i=0;return e>=4096&&(i+=13,e>>>=13),e>=64&&(i+=7,e>>>=7),e>=8&&(i+=4,e>>>=4),e>=2&&(i+=2,e>>>=2),i+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,i=0;return 0==(8191&e)&&(i+=13,e>>>=13),0==(127&e)&&(i+=7,e>>>=7),0==(15&e)&&(i+=4,e>>>=4),0==(3&e)&&(i+=2,e>>>=2),0==(1&e)&&i++,i},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var i=this._zeroBits(this.words[e]);if(t+=i,26!==i)break}return t},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},o.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},o.prototype.ior=function(t){return r(0==(this.negative|t.negative)),this.iuor(t)},o.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var i=0;i<e.length;i++)this.words[i]=this.words[i]&t.words[i];return this.length=e.length,this.strip()},o.prototype.iand=function(t){return r(0==(this.negative|t.negative)),this.iuand(t)},o.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,i;this.length>t.length?(e=this,i=t):(e=t,i=this);for(var r=0;r<i.length;r++)this.words[r]=e.words[r]^i.words[r];if(this!==e)for(;r<e.length;r++)this.words[r]=e.words[r];return this.length=e.length,this.strip()},o.prototype.ixor=function(t){return r(0==(this.negative|t.negative)),this.iuxor(t)},o.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){r("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),i=t%26;this._expand(e),i>0&&e--;for(var n=0;n<e;n++)this.words[n]=67108863&~this.words[n];return i>0&&(this.words[n]=~this.words[n]&67108863>>26-i),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){r("number"==typeof t&&t>=0);var i=t/26|0,n=t%26;return this._expand(i+1),this.words[i]=e?this.words[i]|1<<n:this.words[i]&~(1<<n),this.strip()},o.prototype.iadd=function(t){var e,i,r;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(i=this,r=t):(i=t,r=this);for(var n=0,o=0;o<r.length;o++)e=(0|i.words[o])+(0|r.words[o])+n,this.words[o]=67108863&e,n=e>>>26;for(;0!==n&&o<i.length;o++)e=(0|i.words[o])+n,this.words[o]=67108863&e,n=e>>>26;if(this.length=i.length,0!==n)this.words[this.length]=n,this.length++;else if(i!==this)for(;o<i.length;o++)this.words[o]=i.words[o];return this},o.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var i,r,n=this.cmp(t);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(i=this,r=t):(i=t,r=this);for(var o=0,a=0;a<r.length;a++)o=(e=(0|i.words[a])-(0|r.words[a])+o)>>26,this.words[a]=67108863&e;for(;0!==o&&a<i.length;a++)o=(e=(0|i.words[a])+o)>>26,this.words[a]=67108863&e;if(0===o&&a<i.length&&i!==this)for(;a<i.length;a++)this.words[a]=i.words[a];return this.length=Math.max(this.length,a),i!==this&&(this.negative=1),this.strip()},o.prototype.sub=function(t){return this.clone().isub(t)};var p=function(t,e,i){var r,n,o,a=t.words,s=e.words,h=i.words,u=0,l=0|a[0],d=8191&l,f=l>>>13,c=0|a[1],p=8191&c,m=c>>>13,g=0|a[2],v=8191&g,y=g>>>13,b=0|a[3],_=8191&b,w=b>>>13,A=0|a[4],M=8191&A,E=A>>>13,S=0|a[5],k=8191&S,T=S>>>13,R=0|a[6],I=8191&R,C=R>>>13,P=0|a[7],x=8191&P,D=P>>>13,O=0|a[8],B=8191&O,L=O>>>13,W=0|a[9],N=8191&W,F=W>>>13,U=0|s[0],j=8191&U,V=U>>>13,H=0|s[1],z=8191&H,G=H>>>13,q=0|s[2],X=8191&q,Z=q>>>13,K=0|s[3],Q=8191&K,Y=K>>>13,J=0|s[4],$=8191&J,tt=J>>>13,et=0|s[5],it=8191&et,rt=et>>>13,nt=0|s[6],ot=8191&nt,at=nt>>>13,st=0|s[7],ht=8191&st,ut=st>>>13,lt=0|s[8],dt=8191<,ft=lt>>>13,ct=0|s[9],pt=8191&ct,mt=ct>>>13;i.negative=t.negative^e.negative,i.length=19;var gt=(u+(r=Math.imul(d,j))|0)+((8191&(n=(n=Math.imul(d,V))+Math.imul(f,j)|0))<<13)|0;u=((o=Math.imul(f,V))+(n>>>13)|0)+(gt>>>26)|0,gt&=67108863,r=Math.imul(p,j),n=(n=Math.imul(p,V))+Math.imul(m,j)|0,o=Math.imul(m,V);var vt=(u+(r=r+Math.imul(d,z)|0)|0)+((8191&(n=(n=n+Math.imul(d,G)|0)+Math.imul(f,z)|0))<<13)|0;u=((o=o+Math.imul(f,G)|0)+(n>>>13)|0)+(vt>>>26)|0,vt&=67108863,r=Math.imul(v,j),n=(n=Math.imul(v,V))+Math.imul(y,j)|0,o=Math.imul(y,V),r=r+Math.imul(p,z)|0,n=(n=n+Math.imul(p,G)|0)+Math.imul(m,z)|0,o=o+Math.imul(m,G)|0;var yt=(u+(r=r+Math.imul(d,X)|0)|0)+((8191&(n=(n=n+Math.imul(d,Z)|0)+Math.imul(f,X)|0))<<13)|0;u=((o=o+Math.imul(f,Z)|0)+(n>>>13)|0)+(yt>>>26)|0,yt&=67108863,r=Math.imul(_,j),n=(n=Math.imul(_,V))+Math.imul(w,j)|0,o=Math.imul(w,V),r=r+Math.imul(v,z)|0,n=(n=n+Math.imul(v,G)|0)+Math.imul(y,z)|0,o=o+Math.imul(y,G)|0,r=r+Math.imul(p,X)|0,n=(n=n+Math.imul(p,Z)|0)+Math.imul(m,X)|0,o=o+Math.imul(m,Z)|0;var bt=(u+(r=r+Math.imul(d,Q)|0)|0)+((8191&(n=(n=n+Math.imul(d,Y)|0)+Math.imul(f,Q)|0))<<13)|0;u=((o=o+Math.imul(f,Y)|0)+(n>>>13)|0)+(bt>>>26)|0,bt&=67108863,r=Math.imul(M,j),n=(n=Math.imul(M,V))+Math.imul(E,j)|0,o=Math.imul(E,V),r=r+Math.imul(_,z)|0,n=(n=n+Math.imul(_,G)|0)+Math.imul(w,z)|0,o=o+Math.imul(w,G)|0,r=r+Math.imul(v,X)|0,n=(n=n+Math.imul(v,Z)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,Z)|0,r=r+Math.imul(p,Q)|0,n=(n=n+Math.imul(p,Y)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,Y)|0;var _t=(u+(r=r+Math.imul(d,$)|0)|0)+((8191&(n=(n=n+Math.imul(d,tt)|0)+Math.imul(f,$)|0))<<13)|0;u=((o=o+Math.imul(f,tt)|0)+(n>>>13)|0)+(_t>>>26)|0,_t&=67108863,r=Math.imul(k,j),n=(n=Math.imul(k,V))+Math.imul(T,j)|0,o=Math.imul(T,V),r=r+Math.imul(M,z)|0,n=(n=n+Math.imul(M,G)|0)+Math.imul(E,z)|0,o=o+Math.imul(E,G)|0,r=r+Math.imul(_,X)|0,n=(n=n+Math.imul(_,Z)|0)+Math.imul(w,X)|0,o=o+Math.imul(w,Z)|0,r=r+Math.imul(v,Q)|0,n=(n=n+Math.imul(v,Y)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,Y)|0,r=r+Math.imul(p,$)|0,n=(n=n+Math.imul(p,tt)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,tt)|0;var wt=(u+(r=r+Math.imul(d,it)|0)|0)+((8191&(n=(n=n+Math.imul(d,rt)|0)+Math.imul(f,it)|0))<<13)|0;u=((o=o+Math.imul(f,rt)|0)+(n>>>13)|0)+(wt>>>26)|0,wt&=67108863,r=Math.imul(I,j),n=(n=Math.imul(I,V))+Math.imul(C,j)|0,o=Math.imul(C,V),r=r+Math.imul(k,z)|0,n=(n=n+Math.imul(k,G)|0)+Math.imul(T,z)|0,o=o+Math.imul(T,G)|0,r=r+Math.imul(M,X)|0,n=(n=n+Math.imul(M,Z)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,Z)|0,r=r+Math.imul(_,Q)|0,n=(n=n+Math.imul(_,Y)|0)+Math.imul(w,Q)|0,o=o+Math.imul(w,Y)|0,r=r+Math.imul(v,$)|0,n=(n=n+Math.imul(v,tt)|0)+Math.imul(y,$)|0,o=o+Math.imul(y,tt)|0,r=r+Math.imul(p,it)|0,n=(n=n+Math.imul(p,rt)|0)+Math.imul(m,it)|0,o=o+Math.imul(m,rt)|0;var At=(u+(r=r+Math.imul(d,ot)|0)|0)+((8191&(n=(n=n+Math.imul(d,at)|0)+Math.imul(f,ot)|0))<<13)|0;u=((o=o+Math.imul(f,at)|0)+(n>>>13)|0)+(At>>>26)|0,At&=67108863,r=Math.imul(x,j),n=(n=Math.imul(x,V))+Math.imul(D,j)|0,o=Math.imul(D,V),r=r+Math.imul(I,z)|0,n=(n=n+Math.imul(I,G)|0)+Math.imul(C,z)|0,o=o+Math.imul(C,G)|0,r=r+Math.imul(k,X)|0,n=(n=n+Math.imul(k,Z)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,Z)|0,r=r+Math.imul(M,Q)|0,n=(n=n+Math.imul(M,Y)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,Y)|0,r=r+Math.imul(_,$)|0,n=(n=n+Math.imul(_,tt)|0)+Math.imul(w,$)|0,o=o+Math.imul(w,tt)|0,r=r+Math.imul(v,it)|0,n=(n=n+Math.imul(v,rt)|0)+Math.imul(y,it)|0,o=o+Math.imul(y,rt)|0,r=r+Math.imul(p,ot)|0,n=(n=n+Math.imul(p,at)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0;var Mt=(u+(r=r+Math.imul(d,ht)|0)|0)+((8191&(n=(n=n+Math.imul(d,ut)|0)+Math.imul(f,ht)|0))<<13)|0;u=((o=o+Math.imul(f,ut)|0)+(n>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,r=Math.imul(B,j),n=(n=Math.imul(B,V))+Math.imul(L,j)|0,o=Math.imul(L,V),r=r+Math.imul(x,z)|0,n=(n=n+Math.imul(x,G)|0)+Math.imul(D,z)|0,o=o+Math.imul(D,G)|0,r=r+Math.imul(I,X)|0,n=(n=n+Math.imul(I,Z)|0)+Math.imul(C,X)|0,o=o+Math.imul(C,Z)|0,r=r+Math.imul(k,Q)|0,n=(n=n+Math.imul(k,Y)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,Y)|0,r=r+Math.imul(M,$)|0,n=(n=n+Math.imul(M,tt)|0)+Math.imul(E,$)|0,o=o+Math.imul(E,tt)|0,r=r+Math.imul(_,it)|0,n=(n=n+Math.imul(_,rt)|0)+Math.imul(w,it)|0,o=o+Math.imul(w,rt)|0,r=r+Math.imul(v,ot)|0,n=(n=n+Math.imul(v,at)|0)+Math.imul(y,ot)|0,o=o+Math.imul(y,at)|0,r=r+Math.imul(p,ht)|0,n=(n=n+Math.imul(p,ut)|0)+Math.imul(m,ht)|0,o=o+Math.imul(m,ut)|0;var Et=(u+(r=r+Math.imul(d,dt)|0)|0)+((8191&(n=(n=n+Math.imul(d,ft)|0)+Math.imul(f,dt)|0))<<13)|0;u=((o=o+Math.imul(f,ft)|0)+(n>>>13)|0)+(Et>>>26)|0,Et&=67108863,r=Math.imul(N,j),n=(n=Math.imul(N,V))+Math.imul(F,j)|0,o=Math.imul(F,V),r=r+Math.imul(B,z)|0,n=(n=n+Math.imul(B,G)|0)+Math.imul(L,z)|0,o=o+Math.imul(L,G)|0,r=r+Math.imul(x,X)|0,n=(n=n+Math.imul(x,Z)|0)+Math.imul(D,X)|0,o=o+Math.imul(D,Z)|0,r=r+Math.imul(I,Q)|0,n=(n=n+Math.imul(I,Y)|0)+Math.imul(C,Q)|0,o=o+Math.imul(C,Y)|0,r=r+Math.imul(k,$)|0,n=(n=n+Math.imul(k,tt)|0)+Math.imul(T,$)|0,o=o+Math.imul(T,tt)|0,r=r+Math.imul(M,it)|0,n=(n=n+Math.imul(M,rt)|0)+Math.imul(E,it)|0,o=o+Math.imul(E,rt)|0,r=r+Math.imul(_,ot)|0,n=(n=n+Math.imul(_,at)|0)+Math.imul(w,ot)|0,o=o+Math.imul(w,at)|0,r=r+Math.imul(v,ht)|0,n=(n=n+Math.imul(v,ut)|0)+Math.imul(y,ht)|0,o=o+Math.imul(y,ut)|0,r=r+Math.imul(p,dt)|0,n=(n=n+Math.imul(p,ft)|0)+Math.imul(m,dt)|0,o=o+Math.imul(m,ft)|0;var St=(u+(r=r+Math.imul(d,pt)|0)|0)+((8191&(n=(n=n+Math.imul(d,mt)|0)+Math.imul(f,pt)|0))<<13)|0;u=((o=o+Math.imul(f,mt)|0)+(n>>>13)|0)+(St>>>26)|0,St&=67108863,r=Math.imul(N,z),n=(n=Math.imul(N,G))+Math.imul(F,z)|0,o=Math.imul(F,G),r=r+Math.imul(B,X)|0,n=(n=n+Math.imul(B,Z)|0)+Math.imul(L,X)|0,o=o+Math.imul(L,Z)|0,r=r+Math.imul(x,Q)|0,n=(n=n+Math.imul(x,Y)|0)+Math.imul(D,Q)|0,o=o+Math.imul(D,Y)|0,r=r+Math.imul(I,$)|0,n=(n=n+Math.imul(I,tt)|0)+Math.imul(C,$)|0,o=o+Math.imul(C,tt)|0,r=r+Math.imul(k,it)|0,n=(n=n+Math.imul(k,rt)|0)+Math.imul(T,it)|0,o=o+Math.imul(T,rt)|0,r=r+Math.imul(M,ot)|0,n=(n=n+Math.imul(M,at)|0)+Math.imul(E,ot)|0,o=o+Math.imul(E,at)|0,r=r+Math.imul(_,ht)|0,n=(n=n+Math.imul(_,ut)|0)+Math.imul(w,ht)|0,o=o+Math.imul(w,ut)|0,r=r+Math.imul(v,dt)|0,n=(n=n+Math.imul(v,ft)|0)+Math.imul(y,dt)|0,o=o+Math.imul(y,ft)|0;var kt=(u+(r=r+Math.imul(p,pt)|0)|0)+((8191&(n=(n=n+Math.imul(p,mt)|0)+Math.imul(m,pt)|0))<<13)|0;u=((o=o+Math.imul(m,mt)|0)+(n>>>13)|0)+(kt>>>26)|0,kt&=67108863,r=Math.imul(N,X),n=(n=Math.imul(N,Z))+Math.imul(F,X)|0,o=Math.imul(F,Z),r=r+Math.imul(B,Q)|0,n=(n=n+Math.imul(B,Y)|0)+Math.imul(L,Q)|0,o=o+Math.imul(L,Y)|0,r=r+Math.imul(x,$)|0,n=(n=n+Math.imul(x,tt)|0)+Math.imul(D,$)|0,o=o+Math.imul(D,tt)|0,r=r+Math.imul(I,it)|0,n=(n=n+Math.imul(I,rt)|0)+Math.imul(C,it)|0,o=o+Math.imul(C,rt)|0,r=r+Math.imul(k,ot)|0,n=(n=n+Math.imul(k,at)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,r=r+Math.imul(M,ht)|0,n=(n=n+Math.imul(M,ut)|0)+Math.imul(E,ht)|0,o=o+Math.imul(E,ut)|0,r=r+Math.imul(_,dt)|0,n=(n=n+Math.imul(_,ft)|0)+Math.imul(w,dt)|0,o=o+Math.imul(w,ft)|0;var Tt=(u+(r=r+Math.imul(v,pt)|0)|0)+((8191&(n=(n=n+Math.imul(v,mt)|0)+Math.imul(y,pt)|0))<<13)|0;u=((o=o+Math.imul(y,mt)|0)+(n>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,r=Math.imul(N,Q),n=(n=Math.imul(N,Y))+Math.imul(F,Q)|0,o=Math.imul(F,Y),r=r+Math.imul(B,$)|0,n=(n=n+Math.imul(B,tt)|0)+Math.imul(L,$)|0,o=o+Math.imul(L,tt)|0,r=r+Math.imul(x,it)|0,n=(n=n+Math.imul(x,rt)|0)+Math.imul(D,it)|0,o=o+Math.imul(D,rt)|0,r=r+Math.imul(I,ot)|0,n=(n=n+Math.imul(I,at)|0)+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,r=r+Math.imul(k,ht)|0,n=(n=n+Math.imul(k,ut)|0)+Math.imul(T,ht)|0,o=o+Math.imul(T,ut)|0,r=r+Math.imul(M,dt)|0,n=(n=n+Math.imul(M,ft)|0)+Math.imul(E,dt)|0,o=o+Math.imul(E,ft)|0;var Rt=(u+(r=r+Math.imul(_,pt)|0)|0)+((8191&(n=(n=n+Math.imul(_,mt)|0)+Math.imul(w,pt)|0))<<13)|0;u=((o=o+Math.imul(w,mt)|0)+(n>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,r=Math.imul(N,$),n=(n=Math.imul(N,tt))+Math.imul(F,$)|0,o=Math.imul(F,tt),r=r+Math.imul(B,it)|0,n=(n=n+Math.imul(B,rt)|0)+Math.imul(L,it)|0,o=o+Math.imul(L,rt)|0,r=r+Math.imul(x,ot)|0,n=(n=n+Math.imul(x,at)|0)+Math.imul(D,ot)|0,o=o+Math.imul(D,at)|0,r=r+Math.imul(I,ht)|0,n=(n=n+Math.imul(I,ut)|0)+Math.imul(C,ht)|0,o=o+Math.imul(C,ut)|0,r=r+Math.imul(k,dt)|0,n=(n=n+Math.imul(k,ft)|0)+Math.imul(T,dt)|0,o=o+Math.imul(T,ft)|0;var It=(u+(r=r+Math.imul(M,pt)|0)|0)+((8191&(n=(n=n+Math.imul(M,mt)|0)+Math.imul(E,pt)|0))<<13)|0;u=((o=o+Math.imul(E,mt)|0)+(n>>>13)|0)+(It>>>26)|0,It&=67108863,r=Math.imul(N,it),n=(n=Math.imul(N,rt))+Math.imul(F,it)|0,o=Math.imul(F,rt),r=r+Math.imul(B,ot)|0,n=(n=n+Math.imul(B,at)|0)+Math.imul(L,ot)|0,o=o+Math.imul(L,at)|0,r=r+Math.imul(x,ht)|0,n=(n=n+Math.imul(x,ut)|0)+Math.imul(D,ht)|0,o=o+Math.imul(D,ut)|0,r=r+Math.imul(I,dt)|0,n=(n=n+Math.imul(I,ft)|0)+Math.imul(C,dt)|0,o=o+Math.imul(C,ft)|0;var Ct=(u+(r=r+Math.imul(k,pt)|0)|0)+((8191&(n=(n=n+Math.imul(k,mt)|0)+Math.imul(T,pt)|0))<<13)|0;u=((o=o+Math.imul(T,mt)|0)+(n>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,r=Math.imul(N,ot),n=(n=Math.imul(N,at))+Math.imul(F,ot)|0,o=Math.imul(F,at),r=r+Math.imul(B,ht)|0,n=(n=n+Math.imul(B,ut)|0)+Math.imul(L,ht)|0,o=o+Math.imul(L,ut)|0,r=r+Math.imul(x,dt)|0,n=(n=n+Math.imul(x,ft)|0)+Math.imul(D,dt)|0,o=o+Math.imul(D,ft)|0;var Pt=(u+(r=r+Math.imul(I,pt)|0)|0)+((8191&(n=(n=n+Math.imul(I,mt)|0)+Math.imul(C,pt)|0))<<13)|0;u=((o=o+Math.imul(C,mt)|0)+(n>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,r=Math.imul(N,ht),n=(n=Math.imul(N,ut))+Math.imul(F,ht)|0,o=Math.imul(F,ut),r=r+Math.imul(B,dt)|0,n=(n=n+Math.imul(B,ft)|0)+Math.imul(L,dt)|0,o=o+Math.imul(L,ft)|0;var xt=(u+(r=r+Math.imul(x,pt)|0)|0)+((8191&(n=(n=n+Math.imul(x,mt)|0)+Math.imul(D,pt)|0))<<13)|0;u=((o=o+Math.imul(D,mt)|0)+(n>>>13)|0)+(xt>>>26)|0,xt&=67108863,r=Math.imul(N,dt),n=(n=Math.imul(N,ft))+Math.imul(F,dt)|0,o=Math.imul(F,ft);var Dt=(u+(r=r+Math.imul(B,pt)|0)|0)+((8191&(n=(n=n+Math.imul(B,mt)|0)+Math.imul(L,pt)|0))<<13)|0;u=((o=o+Math.imul(L,mt)|0)+(n>>>13)|0)+(Dt>>>26)|0,Dt&=67108863;var Ot=(u+(r=Math.imul(N,pt))|0)+((8191&(n=(n=Math.imul(N,mt))+Math.imul(F,pt)|0))<<13)|0;return u=((o=Math.imul(F,mt))+(n>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,h[0]=gt,h[1]=vt,h[2]=yt,h[3]=bt,h[4]=_t,h[5]=wt,h[6]=At,h[7]=Mt,h[8]=Et,h[9]=St,h[10]=kt,h[11]=Tt,h[12]=Rt,h[13]=It,h[14]=Ct,h[15]=Pt,h[16]=xt,h[17]=Dt,h[18]=Ot,0!==u&&(h[19]=u,i.length++),i};function m(t,e,i){return(new g).mulp(t,e,i)}function g(t,e){this.x=t,this.y=e}Math.imul||(p=c),o.prototype.mulTo=function(t,e){var i,r=this.length+t.length;return i=10===this.length&&10===t.length?p(this,t,e):r<63?c(this,t,e):r<1024?function(t,e,i){i.negative=e.negative^t.negative,i.length=t.length+e.length;for(var r=0,n=0,o=0;o<i.length-1;o++){var a=n;n=0;for(var s=67108863&r,h=Math.min(o,e.length-1),u=Math.max(0,o-t.length+1);u<=h;u++){var l=o-u,d=(0|t.words[l])*(0|e.words[u]),f=67108863&d;s=67108863&(f=f+s|0),n+=(a=(a=a+(d/67108864|0)|0)+(f>>>26)|0)>>>26,a&=67108863}i.words[o]=s,r=a,a=n}return 0!==r?i.words[o]=r:i.length--,i.strip()}(this,t,e):m(this,t,e),i},g.prototype.makeRBT=function(t){for(var e=new Array(t),i=o.prototype._countBits(t)-1,r=0;r<t;r++)e[r]=this.revBin(r,i,t);return e},g.prototype.revBin=function(t,e,i){if(0===t||t===i-1)return t;for(var r=0,n=0;n<e;n++)r|=(1&t)<<e-n-1,t>>=1;return r},g.prototype.permute=function(t,e,i,r,n,o){for(var a=0;a<o;a++)r[a]=e[t[a]],n[a]=i[t[a]]},g.prototype.transform=function(t,e,i,r,n,o){this.permute(o,t,e,i,r,n);for(var a=1;a<n;a<<=1)for(var s=a<<1,h=Math.cos(2*Math.PI/s),u=Math.sin(2*Math.PI/s),l=0;l<n;l+=s)for(var d=h,f=u,c=0;c<a;c++){var p=i[l+c],m=r[l+c],g=i[l+c+a],v=r[l+c+a],y=d*g-f*v;v=d*v+f*g,g=y,i[l+c]=p+g,r[l+c]=m+v,i[l+c+a]=p-g,r[l+c+a]=m-v,c!==s&&(y=h*d-u*f,f=h*f+u*d,d=y)}},g.prototype.guessLen13b=function(t,e){var i=1|Math.max(e,t),r=1&i,n=0;for(i=i/2|0;i;i>>>=1)n++;return 1<<n+1+r},g.prototype.conjugate=function(t,e,i){if(!(i<=1))for(var r=0;r<i/2;r++){var n=t[r];t[r]=t[i-r-1],t[i-r-1]=n,n=e[r],e[r]=-e[i-r-1],e[i-r-1]=-n}},g.prototype.normalize13b=function(t,e){for(var i=0,r=0;r<e/2;r++){var n=8192*Math.round(t[2*r+1]/e)+Math.round(t[2*r]/e)+i;t[r]=67108863&n,i=n<67108864?0:n/67108864|0}return t},g.prototype.convert13b=function(t,e,i,n){for(var o=0,a=0;a<e;a++)o+=0|t[a],i[2*a]=8191&o,o>>>=13,i[2*a+1]=8191&o,o>>>=13;for(a=2*e;a<n;++a)i[a]=0;r(0===o),r(0==(-8192&o))},g.prototype.stub=function(t){for(var e=new Array(t),i=0;i<t;i++)e[i]=0;return e},g.prototype.mulp=function(t,e,i){var r=2*this.guessLen13b(t.length,e.length),n=this.makeRBT(r),o=this.stub(r),a=new Array(r),s=new Array(r),h=new Array(r),u=new Array(r),l=new Array(r),d=new Array(r),f=i.words;f.length=r,this.convert13b(t.words,t.length,a,r),this.convert13b(e.words,e.length,u,r),this.transform(a,o,s,h,r,n),this.transform(u,o,l,d,r,n);for(var c=0;c<r;c++){var p=s[c]*l[c]-h[c]*d[c];h[c]=s[c]*d[c]+h[c]*l[c],s[c]=p}return this.conjugate(s,h,r),this.transform(s,h,f,o,r,n),this.conjugate(f,o,r),this.normalize13b(f,r),i.negative=t.negative^e.negative,i.length=t.length+e.length,i.strip()},o.prototype.mul=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},o.prototype.mulf=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),m(this,t,e)},o.prototype.imul=function(t){return this.clone().mulTo(t,this)},o.prototype.imuln=function(t){r("number"==typeof t),r(t<67108864);for(var e=0,i=0;i<this.length;i++){var n=(0|this.words[i])*t,o=(67108863&n)+(67108863&e);e>>=26,e+=n/67108864|0,e+=o>>>26,this.words[i]=67108863&o}return 0!==e&&(this.words[i]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),i=0;i<e.length;i++){var r=i/26|0,n=i%26;e[i]=(t.words[r]&1<<n)>>>n}return e}(t);if(0===e.length)return new o(1);for(var i=this,r=0;r<e.length&&0===e[r];r++,i=i.sqr());if(++r<e.length)for(var n=i.sqr();r<e.length;r++,n=n.sqr())0!==e[r]&&(i=i.mul(n));return i},o.prototype.iushln=function(t){r("number"==typeof t&&t>=0);var e,i=t%26,n=(t-i)/26,o=67108863>>>26-i<<26-i;if(0!==i){var a=0;for(e=0;e<this.length;e++){var s=this.words[e]&o,h=(0|this.words[e])-s<<i;this.words[e]=h|a,a=s>>>26-i}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e<n;e++)this.words[e]=0;this.length+=n}return this.strip()},o.prototype.ishln=function(t){return r(0===this.negative),this.iushln(t)},o.prototype.iushrn=function(t,e,i){var n;r("number"==typeof t&&t>=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<<o,h=i;if(n-=a,n=Math.max(0,n),h){for(var u=0;u<a;u++)h.words[u]=this.words[u];h.length=a}if(0===a);else if(this.length>a)for(this.length-=a,u=0;u<this.length;u++)this.words[u]=this.words[u+a];else this.words[0]=0,this.length=1;var l=0;for(u=this.length-1;u>=0&&(0!==l||u>=n);u--){var d=0|this.words[u];this.words[u]=l<<26-o|d>>>o,l=d&s}return h&&0!==l&&(h.words[h.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,i){return r(0===this.negative),this.iushrn(t,e,i)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){r("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26,n=1<<e;return!(this.length<=i)&&!!(this.words[i]&n)},o.prototype.imaskn=function(t){r("number"==typeof t&&t>=0);var e=t%26,i=(t-e)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=i)return this;if(0!==e&&i++,this.length=Math.min(i,this.length),0!==e){var n=67108863^67108863>>>e<<e;this.words[this.length-1]&=n}return this.strip()},o.prototype.maskn=function(t){return this.clone().imaskn(t)},o.prototype.iaddn=function(t){return r("number"==typeof t),r(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},o.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(r("number"==typeof t),r(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},o.prototype.addn=function(t){return this.clone().iaddn(t)},o.prototype.subn=function(t){return this.clone().isubn(t)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(t,e,i){var n,o,a=t.length+i;this._expand(a);var s=0;for(n=0;n<t.length;n++){o=(0|this.words[n+i])+s;var h=(0|t.words[n])*e;s=((o-=67108863&h)>>26)-(h/67108864|0),this.words[n+i]=67108863&o}for(;n<this.length-i;n++)s=(o=(0|this.words[n+i])+s)>>26,this.words[n+i]=67108863&o;if(0===s)return this.strip();for(r(-1===s),s=0,n=0;n<this.length;n++)s=(o=-(0|this.words[n])+s)>>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var i=(this.length,t.length),r=this.clone(),n=t,a=0|n.words[n.length-1];0!==(i=26-this._countBits(a))&&(n=n.ushln(i),r.iushln(i),a=0|n.words[n.length-1]);var s,h=r.length-n.length;if("mod"!==e){(s=new o(null)).length=h+1,s.words=new Array(s.length);for(var u=0;u<s.length;u++)s.words[u]=0}var l=r.clone()._ishlnsubmul(n,1,h);0===l.negative&&(r=l,s&&(s.words[h]=1));for(var d=h-1;d>=0;d--){var f=67108864*(0|r.words[n.length+d])+(0|r.words[n.length+d-1]);for(f=Math.min(f/a|0,67108863),r._ishlnsubmul(n,f,d);0!==r.negative;)f--,r.negative=0,r._ishlnsubmul(n,1,d),r.isZero()||(r.negative^=1);s&&(s.words[d]=f)}return s&&s.strip(),r.strip(),"div"!==e&&0!==i&&r.iushrn(i),{div:s||null,mod:r}},o.prototype.divmod=function(t,e,i){return r(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(a=s.mod.neg(),i&&0!==a.negative&&a.iadd(t)),{div:n,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),i&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var n,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var i=0!==e.div.negative?e.mod.isub(t):e.mod,r=t.ushrn(1),n=t.andln(1),o=i.cmp(r);return o<0||1===n&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){r(t<=67108863);for(var e=(1<<26)%t,i=0,n=this.length-1;n>=0;n--)i=(e*i+(0|this.words[n]))%t;return i},o.prototype.idivn=function(t){r(t<=67108863);for(var e=0,i=this.length-1;i>=0;i--){var n=(0|this.words[i])+67108864*e;this.words[i]=n/t|0,e=n%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){r(0===t.negative),r(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n=new o(1),a=new o(0),s=new o(0),h=new o(1),u=0;e.isEven()&&i.isEven();)e.iushrn(1),i.iushrn(1),++u;for(var l=i.clone(),d=e.clone();!e.isZero();){for(var f=0,c=1;0==(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(n.isOdd()||a.isOdd())&&(n.iadd(l),a.isub(d)),n.iushrn(1),a.iushrn(1);for(var p=0,m=1;0==(i.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(i.iushrn(p);p-- >0;)(s.isOdd()||h.isOdd())&&(s.iadd(l),h.isub(d)),s.iushrn(1),h.iushrn(1);e.cmp(i)>=0?(e.isub(i),n.isub(s),a.isub(h)):(i.isub(e),s.isub(n),h.isub(a))}return{a:s,b:h,gcd:i.iushln(u)}},o.prototype._invmp=function(t){r(0===t.negative),r(!t.isZero());var e=this,i=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n,a=new o(1),s=new o(0),h=i.clone();e.cmpn(1)>0&&i.cmpn(1)>0;){for(var u=0,l=1;0==(e.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(e.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(h),a.iushrn(1);for(var d=0,f=1;0==(i.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(i.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(h),s.iushrn(1);e.cmp(i)>=0?(e.isub(i),a.isub(s)):(i.isub(e),s.isub(a))}return(n=0===e.cmpn(1)?a:s).cmpn(0)<0&&n.iadd(t),n},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),i=t.clone();e.negative=0,i.negative=0;for(var r=0;e.isEven()&&i.isEven();r++)e.iushrn(1),i.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;i.isEven();)i.iushrn(1);var n=e.cmp(i);if(n<0){var o=e;e=i,i=o}else if(0===n||0===i.cmpn(1))break;e.isub(i)}return i.iushln(r)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){r("number"==typeof t);var e=t%26,i=(t-e)/26,n=1<<e;if(this.length<=i)return this._expand(i+1),this.words[i]|=n,this;for(var o=n,a=i;0!==o&&a<this.length;a++){var s=0|this.words[a];o=(s+=o)>>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,i=t<0;if(0!==this.negative&&!i)return-1;if(0===this.negative&&i)return 1;if(this.strip(),this.length>1)e=1;else{i&&(t=-t),r(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:n<t?-1:1}return 0!==this.negative?0|-e:e},o.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},o.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,i=this.length-1;i>=0;i--){var r=0|this.words[i],n=0|t.words[i];if(r!==n){r<n?e=-1:r>n&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new M(t)},o.prototype.toRed=function(t){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return r(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return r(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var v={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function A(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function M(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else r(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function E(t){M.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,i=t;do{this.split(i,this.tmp),e=(i=(i=this.imulK(i)).iadd(this.tmp)).bitLength()}while(e>this.n);var r=e<this.n?-1:i.ucmp(this.p);return 0===r?(i.words[0]=0,i.length=1):r>0?i.isub(this.p):void 0!==i.strip?i.strip():i._strip(),i},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},n(b,y),b.prototype.split=function(t,e){for(var i=4194303,r=Math.min(t.length,9),n=0;n<r;n++)e.words[n]=t.words[n];if(e.length=r,t.length<=9)return t.words[0]=0,void(t.length=1);var o=t.words[9];for(e.words[e.length++]=o&i,n=10;n<t.length;n++){var a=0|t.words[n];t.words[n-10]=(a&i)<<4|o>>>22,o=a}o>>>=22,t.words[n-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},b.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,i=0;i<t.length;i++){var r=0|t.words[i];e+=977*r,t.words[i]=67108863&e,e=64*r+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},n(_,y),n(w,y),n(A,y),A.prototype.imulK=function(t){for(var e=0,i=0;i<t.length;i++){var r=19*(0|t.words[i])+e,n=67108863&r;r>>>=26,t.words[i]=n,e=r}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(v[t])return v[t];var e;if("k256"===t)e=new b;else if("p224"===t)e=new _;else if("p192"===t)e=new w;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new A}return v[t]=e,e},M.prototype._verify1=function(t){r(0===t.negative,"red works only with positives"),r(t.red,"red works only with red numbers")},M.prototype._verify2=function(t,e){r(0==(t.negative|e.negative),"red works only with positives"),r(t.red&&t.red===e.red,"red works only with red numbers")},M.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},M.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},M.prototype.add=function(t,e){this._verify2(t,e);var i=t.add(e);return i.cmp(this.m)>=0&&i.isub(this.m),i._forceRed(this)},M.prototype.iadd=function(t,e){this._verify2(t,e);var i=t.iadd(e);return i.cmp(this.m)>=0&&i.isub(this.m),i},M.prototype.sub=function(t,e){this._verify2(t,e);var i=t.sub(e);return i.cmpn(0)<0&&i.iadd(this.m),i._forceRed(this)},M.prototype.isub=function(t,e){this._verify2(t,e);var i=t.isub(e);return i.cmpn(0)<0&&i.iadd(this.m),i},M.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},M.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},M.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},M.prototype.isqr=function(t){return this.imul(t,t.clone())},M.prototype.sqr=function(t){return this.mul(t,t)},M.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(r(e%2==1),3===e){var i=this.m.add(new o(1)).iushrn(2);return this.pow(t,i)}for(var n=this.m.subn(1),a=0;!n.isZero()&&0===n.andln(1);)a++,n.iushrn(1);r(!n.isZero());var s=new o(1).toRed(this),h=s.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(h);)l.redIAdd(h);for(var d=this.pow(l,n),f=this.pow(t,n.addn(1).iushrn(1)),c=this.pow(t,n),p=a;0!==c.cmp(s);){for(var m=c,g=0;0!==m.cmp(s);g++)m=m.redSqr();r(g<p);var v=this.pow(d,new o(1).iushln(p-g-1));f=f.redMul(v),d=v.redSqr(),c=c.redMul(d),p=g}return f},M.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},M.prototype.pow=function(t,e){if(e.isZero())return new o(1).toRed(this);if(0===e.cmpn(1))return t.clone();var i=new Array(16);i[0]=new o(1).toRed(this),i[1]=t;for(var r=2;r<i.length;r++)i[r]=this.mul(i[r-1],t);var n=i[0],a=0,s=0,h=e.bitLength()%26;for(0===h&&(h=26),r=e.length-1;r>=0;r--){for(var u=e.words[r],l=h-1;l>=0;l--){var d=u>>l&1;n!==i[0]&&(n=this.sqr(n)),0!==d||0!==a?(a<<=1,a|=d,(4===++s||0===r&&0===l)&&(n=this.mul(n,i[a]),s=0,a=0)):s=0}h=26}return n},M.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},M.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new E(t)},n(E,M),E.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},E.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},E.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var i=t.imul(e),r=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=i.isub(r).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},E.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var i=t.mul(e),r=i.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=i.isub(r).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},E.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t,this)}).call(this,i(20)(t))},function(t,e){},function(t,e,i){e.publicEncrypt=i(242),e.privateDecrypt=i(244),e.privateEncrypt=function(t,i){return e.publicEncrypt(t,i,!0)},e.publicDecrypt=function(t,i){return e.privateDecrypt(t,i,!0)}},function(t,e,i){var r=i(46),n=i(25),o=i(35),a=i(128),s=i(129),h=i(74),u=i(130),l=i(65),d=i(4).Buffer;t.exports=function(t,e,i){var f;f=t.padding?t.padding:i?1:4;var c,p=r(t);if(4===f)c=function(t,e){var i=t.modulus.byteLength(),r=e.length,u=o("sha1").update(d.alloc(0)).digest(),l=u.length,f=2*l;if(r>i-f-2)throw new Error("message too long");var c=d.alloc(i-r-f-2),p=i-l-1,m=n(l),g=s(d.concat([u,c,d.alloc(1,1),e],p),a(m,p)),v=s(m,a(g,l));return new h(d.concat([d.alloc(1),v,g],i))}(p,e);else if(1===f)c=function(t,e,i){var r,o=e.length,a=t.modulus.byteLength();if(o>a-11)throw new Error("message too long");r=i?d.alloc(a-o-3,255):function(t){var e,i=d.allocUnsafe(t),r=0,o=n(2*t),a=0;for(;r<t;)a===o.length&&(o=n(2*t),a=0),(e=o[a++])&&(i[r++]=e);return i}(a-o-3);return new h(d.concat([d.from([0,i?1:2]),r,d.alloc(1),e],a))}(p,e,i);else{if(3!==f)throw new Error("unknown padding");if((c=new h(e)).cmp(p.modulus)>=0)throw new Error("data too long for modulus")}return i?l(c,p):u(c,p)}},function(t,e){},function(t,e,i){var r=i(46),n=i(128),o=i(129),a=i(74),s=i(65),h=i(35),u=i(130),l=i(4).Buffer;t.exports=function(t,e,i){var d;d=t.padding?t.padding:i?1:4;var f,c=r(t),p=c.modulus.byteLength();if(e.length>p||new a(e).cmp(c.modulus)>=0)throw new Error("decryption error");f=i?u(new a(e),c):s(e,c);var m=l.alloc(p-f.length);if(f=l.concat([m,f],p),4===d)return function(t,e){var i=t.modulus.byteLength(),r=h("sha1").update(l.alloc(0)).digest(),a=r.length;if(0!==e[0])throw new Error("decryption error");var s=e.slice(1,a+1),u=e.slice(a+1),d=o(s,n(u,a)),f=o(u,n(d,i-a-1));if(function(t,e){t=l.from(t),e=l.from(e);var i=0,r=t.length;t.length!==e.length&&(i++,r=Math.min(t.length,e.length));var n=-1;for(;++n<r;)i+=t[n]^e[n];return i}(r,f.slice(0,a)))throw new Error("decryption error");var c=a;for(;0===f[c];)c++;if(1!==f[c++])throw new Error("decryption error");return f.slice(c)}(c,f);if(1===d)return function(t,e,i){var r=e.slice(0,2),n=2,o=0;for(;0!==e[n++];)if(n>=e.length){o++;break}var a=e.slice(2,n-1);("0002"!==r.toString("hex")&&!i||"0001"!==r.toString("hex")&&i)&&o++;a.length<8&&o++;if(o)throw new Error("decryption error");return e.slice(n)}(0,f,i);if(3===d)return f;throw new Error("unknown padding")}},function(t,e,i){"use strict";(function(t,r){function n(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var o=i(4),a=i(25),s=o.Buffer,h=o.kMaxLength,u=t.crypto||t.msCrypto,l=Math.pow(2,32)-1;function d(t,e){if("number"!=typeof t||t!=t)throw new TypeError("offset must be a number");if(t>l||t<0)throw new TypeError("offset must be a uint32");if(t>h||t>e)throw new RangeError("offset out of range")}function f(t,e,i){if("number"!=typeof t||t!=t)throw new TypeError("size must be a number");if(t>l||t<0)throw new TypeError("size must be a uint32");if(t+e>i||t>h)throw new RangeError("buffer too small")}function c(t,e,i,n){if(r.browser){var o=t.buffer,s=new Uint8Array(o,e,i);return u.getRandomValues(s),n?void r.nextTick((function(){n(null,t)})):t}if(!n)return a(i).copy(t,e),t;a(i,(function(i,r){if(i)return n(i);r.copy(t,e),n(null,t)}))}u&&u.getRandomValues||!r.browser?(e.randomFill=function(e,i,r,n){if(!(s.isBuffer(e)||e instanceof t.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof i)n=i,i=0,r=e.length;else if("function"==typeof r)n=r,r=e.length-i;else if("function"!=typeof n)throw new TypeError('"cb" argument must be a function');return d(i,e.length),f(r,i,e.length),c(e,i,r,n)},e.randomFillSync=function(e,i,r){void 0===i&&(i=0);if(!(s.isBuffer(e)||e instanceof t.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');d(i,e.length),void 0===r&&(r=e.length-i);return f(r,i,e.length),c(e,i,r)}):(e.randomFill=n,e.randomFillSync=n)}).call(this,i(10),i(8))},function(t,e,i){"use strict";i.r(e);var r=i(0),n=i(40);e.default=function(t){t._requestAbort=!1,t.soundPlayer=null,t.audioSampleQueue=[];t.addEventListener("message",(function(e){switch(e.data.cmd){case r.tOpenStream:!function(e,i,r){if(null==t.soundPlayer){var o="16bitInt";switch(e){case 0:o="8bitInt";break;case 1:o="16bitInt";break;case 2:o="32bitInt";break;case 3:o="32bitFloat";break;default:this.logger.logError("Unsupported audio sampleFmt "+e+"!")}t.soundPlayer=new n.a,t.soundPlayer.init({encoding:o,channels:i,sampleRate:r,flushingTime:5e3})}}(1,2,8e3);break;case r.tFrameData:break;case r.tCloseStream:t._requestAbort=!0}}))}},function(t,e,i){var r=i(47),n=i(248);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[t.i,n,""]]);var o={insert:"head",singleton:!1};r(n,o);t.exports=n.locals||{}},function(t,e,i){var r=i(48),n=i(249),o=i(250),a=i(251);e=r(!1);var s=n(o),h=n(a);e.push([t.i,'@font-face{font-family:"vssfont";src:url("data:application/x-font-woff2;charset=utf-8;base64,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") format("woff2"),url('+s+') format("woff"),url('+h+') format("truetype")}.vssfont{font-family:"vssfont" !important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.vss-video-ratio-1:before{content:"\\ea41"}.vss-fullscreen1:before{content:"\\e60a"}.vss-video-ratio:before{content:"\\e661"}.vss-video-fill:before{content:"\\e671"}.vss-video-fill-1:before{content:"\\e600"}.vss-mute:before{content:"\\e851"}.vss-pause:before{content:"\\ea8a"}.vss-play:before{content:"\\e653"}.vss-open-voice:before{content:"\\e753"}.vss-snapshot:before{content:"\\e604"}.vss-stop:before{content:"\\e611"}.vss-mode:before{content:"\\e61e"}.vss-cancel-fullscreen:before{content:"\\e61f"}.vss-fullscreen:before{content:"\\e620"}\n',""]),t.exports=e},function(t,e,i){"use strict";t.exports=function(t,e){return e||(e={}),"string"!=typeof(t=t&&t.__esModule?t.default:t)?t:(/^['"].*['"]$/.test(t)&&(t=t.slice(1,-1)),e.hash&&(t+=e.hash),/["'() \t\n]/.test(t)||e.needQuotes?'"'.concat(t.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):t)}},function(t,e,i){"use strict";i.r(e),e.default="data:font/woff;base64,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"},function(t,e,i){"use strict";i.r(e),e.default="data:font/ttf;base64,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"},function(t,e,i){var r=i(47),n=i(253);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[t.i,n,""]]);var o={insert:"head",singleton:!1};r(n,o);t.exports=n.locals||{}},function(t,e,i){(e=i(48)(!1)).push([t.i,".vss-loading{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;background-color:rgba(0,0,0,0.6);z-index:9}.vss-loading-center{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);display:flex;align-items:center;flex-direction:column;justify-content:center}.vss-loading-icon{display:block;margin-bottom:5px;border:3px solid #f3f3f3;border-radius:50%;border-top:3px solid #ad2605;width:25px;height:25px;animation:load .5s linear infinite}.vss-loading-img{margin-bottom:5px;width:40px;height:40px}.vss-loading-text{color:#ffffff;font-size:14px}.vss-canvas{width:100%;height:100%;position:absolute;top:0;left:0;background:#000000}.vss-big-play-button{position:absolute;z-index:100;top:0;bottom:0;left:0;right:0;width:50px;height:50px;display:flex;align-items:center;justify-content:center;margin:auto;color:#ffffff;border-radius:50%;background-color:rgba(255,255,255,0.4)}.vss-big-play-icon{font-size:24px;margin-left:3px}.vss-pointer{cursor:pointer}.vss-control-show .vss-control-bar{opacity:1;visibility:visible}.vss-control-bar{height:34px;position:absolute;bottom:0;width:100%;display:flex;align-items:center;justify-content:space-between;color:#ffffff;background-color:rgba(43,51,63,0.7);z-index:20;opacity:0;visibility:hidden;transition:all .2s ease-in-out}.vss-control-bar-right,.vss-control-bar-left{display:flex;align-items:center;flex-shrink:0}.vss-full-screen-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center}.vss-control-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center}.vss-item-box{height:34px;display:flex;align-items:center;justify-content:center;padding:0 5px}.vss-control-bar-conter{width:100%}.vss-time-box{display:flex;align-items:center;justify-content:space-between;color:#ffffff}.vss-time-left-text,.vss-time-right-text{flex-shrink:0;font-size:13px;margin:0 5px}.vss-time-schedule{width:100%;padding:0 5px}.vss-time-track-out{position:relative;width:100%;height:3px;vertical-align:middle}.vss-time-track{position:relative;width:100%;height:3px;background-color:#ffffff;vertical-align:middle;cursor:pointer;border-radius:3px}.vss-time-progress{position:absolute;left:0;top:0;height:100%;width:0;background-color:#00ABBE;border-top-left-radius:3px;border-bottom-left-radius:3px;user-select:none}.vss-time-button-wrapper{height:12px;width:12px;position:absolute;z-index:1001;top:-5px;transform:translateX(-50%);background-color:transparent;text-align:center;user-select:none;line-height:normal;cursor:pointer}.vss-time-button-wrapper:hover .vss-time-button-wrapper_tip:not(.vss-hide){display:block}.vss-time-button-wrapper_tip{display:none;position:absolute;top:-30px;background-color:rgba(0,0,0,0.5);border:1px solid rgba(0,0,0,0.6);padding:2px 5px;color:#ffffff;height:16px;z-index:10;border-radius:3px;transform:translateX(calc(-50% + 6px));white-space:nowrap}.vss-time-button-wrapper_tip:after{position:absolute;content:'';left:0;right:0;margin:0 auto;width:0;bottom:-6px;border-top:5px solid rgba(0,0,0,0.5);border-left:5px solid transparent;border-right:5px solid transparent}.vss-time-button-wrapper_button{width:12px;height:12px;border:1px solid #333;background-color:#fff;border-radius:50%;transition:.2s;user-select:none}.vss-time-button-wrapper_button:hover{transform:scale(1.2)}.vss-full-screen-btn span{font-size:18px}.vss-poster-box{width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.vss-poster-image{width:100%;height:100%}@keyframes load{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}\n",""]),t.exports=e},function(t,e,i){var r=i(47),n=i(255);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[t.i,n,""]]);var o={insert:"head",singleton:!1};r(n,o);t.exports=n.locals||{}},function(t,e,i){(e=i(48)(!1)).push([t.i,"input[type=range]{-webkit-appearance:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none}input[type=range]::-webkit-slider-runnable-track{height:15px;border-radius:10px}input[type=range]:focus{outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;height:15px;width:15px;margin-top:-2px;background:#ffffff;border-radius:50%}.conter{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%)}.Loding{margin:0 auto;margin-bottom:5px;border:3px solid #f3f3f3;border-radius:50%;border-top:3px solid #2e8e9a;width:25px;height:25px;animation:load .5s linear infinite}.LodingTitle{margin-top:20px;color:#fff;font-size:14px}@keyframes load{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.bigPlayBox{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);background-color:rgba(0,0,0,0.5);cursor:pointer;width:80px;height:80px;border-radius:40px;text-align:center;line-height:80px;font-size:36px;color:#fff;z-index:9}\n",""]),t.exports=e},function(t,e,i){var r=i(47),n=i(257);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[t.i,n,""]]);var o={insert:"head",singleton:!1};r(n,o);t.exports=n.locals||{}},function(t,e,i){(e=i(48)(!1)).push([t.i,".vss-player{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-khtml-user-select:none;-o-user-select:none;user-select:none;z-index:5}.vss-player:after{position:absolute;content:'';top:0;bottom:0;left:0;right:0;margin:auto;z-index:10}.vss-shade{box-shadow:0 0 5px rgba(0,0,0,0.5)}.vss-mask{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;background-color:rgba(0,0,0,0.6);z-index:9}.vss-mask-center{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);display:flex;align-items:center;flex-direction:column;justify-content:center}.vss-loading-logo-img{display:block;width:240px;margin-bottom:5px}.vss-loading-logo-text{letter-spacing:2px;text-align:center;font-size:18px;font-weight:600;background:linear-gradient(90deg, #833ab4 0%, #fd1d1d 33.3%, #fcb045 66.6%, #833ab4 100%);-webkit-background-clip:text;color:transparent;background-size:300% 100%;animation:logoText-animation 4s infinite linear}@keyframes logoText-animation{0%{background-position:0 0}100%{background-position:-150% 0}}.vss-show{display:block !important}.vss-hide{display:none !important}.no-copy{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-khtml-user-select:none;-o-user-select:none;user-select:none}.vss-contextm-menu{position:absolute;top:0;left:0;color:#333;background-color:#ffffff;padding:5px 0;opacity:0;visibility:hidden;margin:0;border-radius:2px;z-index:10005;list-style:none;box-shadow:0 1.5px 4px rgba(0,0,0,0.24),0 1.5px 6px rgba(0,0,0,0.12);font-family:Roboto-Medium, 'Noto Sans CJK DemiLight', 'Microsoft YaHei', Arial, Helvetica, sans-serif;box-sizing:initial}.vss-contextm-menu.vss-contextm-menu-show{opacity:1;visibility:visible}.vss-contextm-menu li{position:relative;max-width:360px;padding:5px 15px;text-align:left;white-space:nowrap;text-overflow:ellipsis;font-size:14px;color:#383838;transition:all .2s;user-select:none;cursor:pointer}.vss-contextm-menu li:hover{background-color:#c8c8c8}.vss-message-box{position:absolute;bottom:34px;left:0;z-index:10;max-height:200px;padding:0 15px;opacity:1;visibility:visible;transition:all .2s ease-in-out}.vss-message-box .vss-message-item{color:#c1c1c1;font-size:12px;text-shadow:1px 1px 2px #000000}.vss-message-box.vss-message-hide{opacity:0;visibility:hidden}.vss-export-message-box{position:absolute;bottom:34px;right:0;z-index:10;max-height:200px;max-width:200px;padding:0 15px;opacity:1;visibility:visible;transition:all .2s ease-in-out}.vss-export-message-box .vss-export-message-item{color:#c1c1c1;font-size:12px;text-shadow:1px 1px 2px #000000}.vss-export-message-box.vss-export-message-hide{opacity:0;visibility:hidden}.vss-osd-message-box{position:absolute;background-color:rgba(0,0,0,0.5);z-index:10;max-height:15em;max-width:30em;overflow:hidden;padding:1em;opacity:1;visibility:visible;height:fit-content;color:#c1c1c1}.vss-osd-message-box.pos_righttop{right:1em;top:1em}.vss-osd-message-box.pos_lefttop{left:1em;top:1em}.vss-osd-message-box.pos_rightbottom{right:1em;bottom:40px}.vss-osd-message-box.pos_leftbottom{left:1em;bottom:40px}.vss-osd-message-box.pos_center{left:50%;top:50%;transform:translate(-50%, -50%)}.vss-osd-message-box .vss-osd-message-item{font-size:12px}.vss-osd-message-box .vss-osd-message-item.vss-move-top{margin-top:-1em}.vss-osd-message-box.vss-osd-message-hide{opacity:0;visibility:hidden}\n",""]),t.exports=e},function(t,e){},function(t,e,i){var r;t.exports=(r=i(5),function(){if("function"==typeof ArrayBuffer){var t=r.lib.WordArray,e=t.init,i=t.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var i=t.byteLength,r=[],n=0;n<i;n++)r[n>>>2]|=t[n]<<24-n%4*8;e.call(this,r,i)}else e.apply(this,arguments)};i.prototype=t}}(),r.lib.WordArray)},function(t,e,i){var r;t.exports=(r=i(5),function(){var t=r,e=t.lib.WordArray,i=t.enc;function n(t){return t<<8&4278255360|t>>>8&16711935}i.Utf16=i.Utf16BE={stringify:function(t){for(var e=t.words,i=t.sigBytes,r=[],n=0;n<i;n+=2){var o=e[n>>>2]>>>16-n%4*8&65535;r.push(String.fromCharCode(o))}return r.join("")},parse:function(t){for(var i=t.length,r=[],n=0;n<i;n++)r[n>>>1]|=t.charCodeAt(n)<<16-n%2*16;return e.create(r,2*i)}},i.Utf16LE={stringify:function(t){for(var e=t.words,i=t.sigBytes,r=[],o=0;o<i;o+=2){var a=n(e[o>>>2]>>>16-o%4*8&65535);r.push(String.fromCharCode(a))}return r.join("")},parse:function(t){for(var i=t.length,r=[],o=0;o<i;o++)r[o>>>1]|=n(t.charCodeAt(o)<<16-o%2*16);return e.create(r,2*i)}}}(),r.enc.Utf16)},function(t,e,i){var r;t.exports=(r=i(5),function(){var t=r,e=t.lib.WordArray;function i(t,i,r){for(var n=[],o=0,a=0;a<i;a++)if(a%4){var s=r[t.charCodeAt(a-1)]<<a%4*2|r[t.charCodeAt(a)]>>>6-a%4*2;n[o>>>2]|=s<<24-o%4*8,o++}return e.create(n,o)}t.enc.Base64url={stringify:function(t,e){void 0===e&&(e=!0);var i=t.words,r=t.sigBytes,n=e?this._safe_map:this._map;t.clamp();for(var o=[],a=0;a<r;a+=3)for(var s=(i[a>>>2]>>>24-a%4*8&255)<<16|(i[a+1>>>2]>>>24-(a+1)%4*8&255)<<8|i[a+2>>>2]>>>24-(a+2)%4*8&255,h=0;h<4&&a+.75*h<r;h++)o.push(n.charAt(s>>>6*(3-h)&63));var u=n.charAt(64);if(u)for(;o.length%4;)o.push(u);return o.join("")},parse:function(t,e){void 0===e&&(e=!0);var r=t.length,n=e?this._safe_map:this._map,o=this._reverseMap;if(!o){o=this._reverseMap=[];for(var a=0;a<n.length;a++)o[n.charCodeAt(a)]=a}var s=n.charAt(64);if(s){var h=t.indexOf(s);-1!==h&&(r=h)}return i(t,r,o)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"}}(),r.enc.Base64url)},function(t,e,i){var r,n,o,a,s,h;t.exports=(h=i(5),i(131),n=(r=h).lib.WordArray,o=r.algo,a=o.SHA256,s=o.SHA224=a.extend({_doReset:function(){this._hash=new n.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var t=a._doFinalize.call(this);return t.sigBytes-=4,t}}),r.SHA224=a._createHelper(s),r.HmacSHA224=a._createHmacHelper(s),h.SHA224)},function(t,e,i){var r,n,o,a,s,h,u,l;t.exports=(l=i(5),i(49),i(132),n=(r=l).x64,o=n.Word,a=n.WordArray,s=r.algo,h=s.SHA512,u=s.SHA384=h.extend({_doReset:function(){this._hash=new a.init([new o.init(3418070365,3238371032),new o.init(1654270250,914150663),new o.init(2438529370,812702999),new o.init(355462360,4144912697),new o.init(1731405415,4290775857),new o.init(2394180231,1750603025),new o.init(3675008525,1694076839),new o.init(1203062813,3204075428)])},_doFinalize:function(){var t=h._doFinalize.call(this);return t.sigBytes-=16,t}}),r.SHA384=h._createHelper(u),r.HmacSHA384=h._createHmacHelper(u),l.SHA384)},function(t,e,i){var r;t.exports=(r=i(5),i(49),function(t){var e=r,i=e.lib,n=i.WordArray,o=i.Hasher,a=e.x64.Word,s=e.algo,h=[],u=[],l=[];!function(){for(var t=1,e=0,i=0;i<24;i++){h[t+5*e]=(i+1)*(i+2)/2%64;var r=(2*t+3*e)%5;t=e%5,e=r}for(t=0;t<5;t++)for(e=0;e<5;e++)u[t+5*e]=e+(2*t+3*e)%5*5;for(var n=1,o=0;o<24;o++){for(var s=0,d=0,f=0;f<7;f++){if(1&n){var c=(1<<f)-1;c<32?d^=1<<c:s^=1<<c-32}128&n?n=n<<1^113:n<<=1}l[o]=a.create(s,d)}}();var d=[];!function(){for(var t=0;t<25;t++)d[t]=a.create()}();var f=s.SHA3=o.extend({cfg:o.cfg.extend({outputLength:512}),_doReset:function(){for(var t=this._state=[],e=0;e<25;e++)t[e]=new a.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(t,e){for(var i=this._state,r=this.blockSize/2,n=0;n<r;n++){var o=t[e+2*n],a=t[e+2*n+1];o=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),(R=i[n]).high^=a,R.low^=o}for(var s=0;s<24;s++){for(var f=0;f<5;f++){for(var c=0,p=0,m=0;m<5;m++)c^=(R=i[f+5*m]).high,p^=R.low;var g=d[f];g.high=c,g.low=p}for(f=0;f<5;f++){var v=d[(f+4)%5],y=d[(f+1)%5],b=y.high,_=y.low;for(c=v.high^(b<<1|_>>>31),p=v.low^(_<<1|b>>>31),m=0;m<5;m++)(R=i[f+5*m]).high^=c,R.low^=p}for(var w=1;w<25;w++){var A=(R=i[w]).high,M=R.low,E=h[w];E<32?(c=A<<E|M>>>32-E,p=M<<E|A>>>32-E):(c=M<<E-32|A>>>64-E,p=A<<E-32|M>>>64-E);var S=d[u[w]];S.high=c,S.low=p}var k=d[0],T=i[0];for(k.high=T.high,k.low=T.low,f=0;f<5;f++)for(m=0;m<5;m++){var R=i[w=f+5*m],I=d[w],C=d[(f+1)%5+5*m],P=d[(f+2)%5+5*m];R.high=I.high^~C.high&P.high,R.low=I.low^~C.low&P.low}R=i[0];var x=l[s];R.high^=x.high,R.low^=x.low}},_doFinalize:function(){var e=this._data,i=e.words,r=(this._nDataBytes,8*e.sigBytes),o=32*this.blockSize;i[r>>>5]|=1<<24-r%32,i[(t.ceil((r+1)/o)*o>>>5)-1]|=128,e.sigBytes=4*i.length,this._process();for(var a=this._state,s=this.cfg.outputLength/8,h=s/8,u=[],l=0;l<h;l++){var d=a[l],f=d.high,c=d.low;f=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8),c=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),u.push(c),u.push(f)}return new n.init(u,s)},clone:function(){for(var t=o.clone.call(this),e=t._state=this._state.slice(0),i=0;i<25;i++)e[i]=e[i].clone();return t}});e.SHA3=o._createHelper(f),e.HmacSHA3=o._createHmacHelper(f)}(Math),r.SHA3)},function(t,e,i){var r;t.exports=(r=i(5),function(t){var e=r,i=e.lib,n=i.WordArray,o=i.Hasher,a=e.algo,s=n.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),h=n.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),u=n.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),l=n.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),d=n.create([0,1518500249,1859775393,2400959708,2840853838]),f=n.create([1352829926,1548603684,1836072691,2053994217,0]),c=a.RIPEMD160=o.extend({_doReset:function(){this._hash=n.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var i=0;i<16;i++){var r=e+i,n=t[r];t[r]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o,a,c,_,w,A,M,E,S,k,T,R=this._hash.words,I=d.words,C=f.words,P=s.words,x=h.words,D=u.words,O=l.words;for(A=o=R[0],M=a=R[1],E=c=R[2],S=_=R[3],k=w=R[4],i=0;i<80;i+=1)T=o+t[e+P[i]]|0,T+=i<16?p(a,c,_)+I[0]:i<32?m(a,c,_)+I[1]:i<48?g(a,c,_)+I[2]:i<64?v(a,c,_)+I[3]:y(a,c,_)+I[4],T=(T=b(T|=0,D[i]))+w|0,o=w,w=_,_=b(c,10),c=a,a=T,T=A+t[e+x[i]]|0,T+=i<16?y(M,E,S)+C[0]:i<32?v(M,E,S)+C[1]:i<48?g(M,E,S)+C[2]:i<64?m(M,E,S)+C[3]:p(M,E,S)+C[4],T=(T=b(T|=0,O[i]))+k|0,A=k,k=S,S=b(E,10),E=M,M=T;T=R[1]+c+S|0,R[1]=R[2]+_+k|0,R[2]=R[3]+w+A|0,R[3]=R[4]+o+M|0,R[4]=R[0]+a+E|0,R[0]=T},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,r=8*t.sigBytes;e[r>>>5]|=128<<24-r%32,e[14+(r+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),t.sigBytes=4*(e.length+1),this._process();for(var n=this._hash,o=n.words,a=0;a<5;a++){var s=o[a];o[a]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return n},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});function p(t,e,i){return t^e^i}function m(t,e,i){return t&e|~t&i}function g(t,e,i){return(t|~e)^i}function v(t,e,i){return t&i|e&~i}function y(t,e,i){return t^(e|~i)}function b(t,e){return t<<e|t>>>32-e}e.RIPEMD160=o._createHelper(c),e.HmacRIPEMD160=o._createHmacHelper(c)}(Math),r.RIPEMD160)},function(t,e,i){var r,n,o,a,s,h,u,l,d;t.exports=(d=i(5),i(75),i(76),n=(r=d).lib,o=n.Base,a=n.WordArray,s=r.algo,h=s.SHA1,u=s.HMAC,l=s.PBKDF2=o.extend({cfg:o.extend({keySize:4,hasher:h,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){for(var i=this.cfg,r=u.create(i.hasher,t),n=a.create(),o=a.create([1]),s=n.words,h=o.words,l=i.keySize,d=i.iterations;s.length<l;){var f=r.update(e).finalize(o);r.reset();for(var c=f.words,p=c.length,m=f,g=1;g<d;g++){m=r.finalize(m),r.reset();for(var v=m.words,y=0;y<p;y++)c[y]^=v[y]}n.concat(f),h[0]++}return n.sigBytes=4*l,n}}),r.PBKDF2=function(t,e,i){return l.create(i).compute(t,e)},d.PBKDF2)},function(t,e,i){var r;t.exports=(r=i(5),i(11),r.mode.CFB=function(){var t=r.lib.BlockCipherMode.extend();function e(t,e,i,r){var n,o=this._iv;o?(n=o.slice(0),this._iv=void 0):n=this._prevBlock,r.encryptBlock(n,0);for(var a=0;a<i;a++)t[e+a]^=n[a]}return t.Encryptor=t.extend({processBlock:function(t,i){var r=this._cipher,n=r.blockSize;e.call(this,t,i,n,r),this._prevBlock=t.slice(i,i+n)}}),t.Decryptor=t.extend({processBlock:function(t,i){var r=this._cipher,n=r.blockSize,o=t.slice(i,i+n);e.call(this,t,i,n,r),this._prevBlock=o}}),t}(),r.mode.CFB)},function(t,e,i){var r,n,o;t.exports=(o=i(5),i(11),o.mode.CTR=(r=o.lib.BlockCipherMode.extend(),n=r.Encryptor=r.extend({processBlock:function(t,e){var i=this._cipher,r=i.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var a=o.slice(0);i.encryptBlock(a,0),o[r-1]=o[r-1]+1|0;for(var s=0;s<r;s++)t[e+s]^=a[s]}}),r.Decryptor=n,r),o.mode.CTR)},function(t,e,i){var r;t.exports=(r=i(5),i(11),r.mode.CTRGladman=function(){var t=r.lib.BlockCipherMode.extend();function e(t){if(255==(t>>24&255)){var e=t>>16&255,i=t>>8&255,r=255&t;255===e?(e=0,255===i?(i=0,255===r?r=0:++r):++i):++e,t=0,t+=e<<16,t+=i<<8,t+=r}else t+=1<<24;return t}function i(t){return 0===(t[0]=e(t[0]))&&(t[1]=e(t[1])),t}var n=t.Encryptor=t.extend({processBlock:function(t,e){var r=this._cipher,n=r.blockSize,o=this._iv,a=this._counter;o&&(a=this._counter=o.slice(0),this._iv=void 0),i(a);var s=a.slice(0);r.encryptBlock(s,0);for(var h=0;h<n;h++)t[e+h]^=s[h]}});return t.Decryptor=n,t}(),r.mode.CTRGladman)},function(t,e,i){var r,n,o;t.exports=(o=i(5),i(11),o.mode.OFB=(r=o.lib.BlockCipherMode.extend(),n=r.Encryptor=r.extend({processBlock:function(t,e){var i=this._cipher,r=i.blockSize,n=this._iv,o=this._keystream;n&&(o=this._keystream=n.slice(0),this._iv=void 0),i.encryptBlock(o,0);for(var a=0;a<r;a++)t[e+a]^=o[a]}}),r.Decryptor=n,r),o.mode.OFB)},function(t,e,i){var r,n;t.exports=(n=i(5),i(11),n.mode.ECB=((r=n.lib.BlockCipherMode.extend()).Encryptor=r.extend({processBlock:function(t,e){this._cipher.encryptBlock(t,e)}}),r.Decryptor=r.extend({processBlock:function(t,e){this._cipher.decryptBlock(t,e)}}),r),n.mode.ECB)},function(t,e,i){var r;t.exports=(r=i(5),i(11),r.pad.AnsiX923={pad:function(t,e){var i=t.sigBytes,r=4*e,n=r-i%r,o=i+n-1;t.clamp(),t.words[o>>>2]|=n<<24-o%4*8,t.sigBytes+=n},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},r.pad.Ansix923)},function(t,e,i){var r;t.exports=(r=i(5),i(11),r.pad.Iso10126={pad:function(t,e){var i=4*e,n=i-t.sigBytes%i;t.concat(r.lib.WordArray.random(n-1)).concat(r.lib.WordArray.create([n<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},r.pad.Iso10126)},function(t,e,i){var r;t.exports=(r=i(5),i(11),r.pad.Iso97971={pad:function(t,e){t.concat(r.lib.WordArray.create([2147483648],1)),r.pad.ZeroPadding.pad(t,e)},unpad:function(t){r.pad.ZeroPadding.unpad(t),t.sigBytes--}},r.pad.Iso97971)},function(t,e,i){var r;t.exports=(r=i(5),i(11),r.pad.ZeroPadding={pad:function(t,e){var i=4*e;t.clamp(),t.sigBytes+=i-(t.sigBytes%i||i)},unpad:function(t){var e=t.words,i=t.sigBytes-1;for(i=t.sigBytes-1;i>=0;i--)if(e[i>>>2]>>>24-i%4*8&255){t.sigBytes=i+1;break}}},r.pad.ZeroPadding)},function(t,e,i){var r;t.exports=(r=i(5),i(11),r.pad.NoPadding={pad:function(){},unpad:function(){}},r.pad.NoPadding)},function(t,e,i){var r,n,o,a;t.exports=(a=i(5),i(11),n=(r=a).lib.CipherParams,o=r.enc.Hex,r.format.Hex={stringify:function(t){return t.ciphertext.toString(o)},parse:function(t){var e=o.parse(t);return n.create({ciphertext:e})}},a.format.Hex)},function(t,e,i){var r;t.exports=(r=i(5),i(31),i(32),i(21),i(11),function(){var t=r,e=t.lib.BlockCipher,i=t.algo,n=[],o=[],a=[],s=[],h=[],u=[],l=[],d=[],f=[],c=[];!function(){for(var t=[],e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;var i=0,r=0;for(e=0;e<256;e++){var p=r^r<<1^r<<2^r<<3^r<<4;p=p>>>8^255&p^99,n[i]=p,o[p]=i;var m=t[i],g=t[m],v=t[g],y=257*t[p]^16843008*p;a[i]=y<<24|y>>>8,s[i]=y<<16|y>>>16,h[i]=y<<8|y>>>24,u[i]=y,y=16843009*v^65537*g^257*m^16843008*i,l[p]=y<<24|y>>>8,d[p]=y<<16|y>>>16,f[p]=y<<8|y>>>24,c[p]=y,i?(i=m^t[t[t[v^m]]],r^=t[t[r]]):i=r=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],m=i.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,i=t.sigBytes/4,r=4*((this._nRounds=i+6)+1),o=this._keySchedule=[],a=0;a<r;a++)a<i?o[a]=e[a]:(u=o[a-1],a%i?i>6&&a%i==4&&(u=n[u>>>24]<<24|n[u>>>16&255]<<16|n[u>>>8&255]<<8|n[255&u]):(u=n[(u=u<<8|u>>>24)>>>24]<<24|n[u>>>16&255]<<16|n[u>>>8&255]<<8|n[255&u],u^=p[a/i|0]<<24),o[a]=o[a-i]^u);for(var s=this._invKeySchedule=[],h=0;h<r;h++){if(a=r-h,h%4)var u=o[a];else u=o[a-4];s[h]=h<4||a<=4?u:l[n[u>>>24]]^d[n[u>>>16&255]]^f[n[u>>>8&255]]^c[n[255&u]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,a,s,h,u,n)},decryptBlock:function(t,e){var i=t[e+1];t[e+1]=t[e+3],t[e+3]=i,this._doCryptBlock(t,e,this._invKeySchedule,l,d,f,c,o),i=t[e+1],t[e+1]=t[e+3],t[e+3]=i},_doCryptBlock:function(t,e,i,r,n,o,a,s){for(var h=this._nRounds,u=t[e]^i[0],l=t[e+1]^i[1],d=t[e+2]^i[2],f=t[e+3]^i[3],c=4,p=1;p<h;p++){var m=r[u>>>24]^n[l>>>16&255]^o[d>>>8&255]^a[255&f]^i[c++],g=r[l>>>24]^n[d>>>16&255]^o[f>>>8&255]^a[255&u]^i[c++],v=r[d>>>24]^n[f>>>16&255]^o[u>>>8&255]^a[255&l]^i[c++],y=r[f>>>24]^n[u>>>16&255]^o[l>>>8&255]^a[255&d]^i[c++];u=m,l=g,d=v,f=y}m=(s[u>>>24]<<24|s[l>>>16&255]<<16|s[d>>>8&255]<<8|s[255&f])^i[c++],g=(s[l>>>24]<<24|s[d>>>16&255]<<16|s[f>>>8&255]<<8|s[255&u])^i[c++],v=(s[d>>>24]<<24|s[f>>>16&255]<<16|s[u>>>8&255]<<8|s[255&l])^i[c++],y=(s[f>>>24]<<24|s[u>>>16&255]<<16|s[l>>>8&255]<<8|s[255&d])^i[c++],t[e]=m,t[e+1]=g,t[e+2]=v,t[e+3]=y},keySize:8});t.AES=e._createHelper(m)}(),r.AES)},function(t,e,i){var r;t.exports=(r=i(5),i(31),i(32),i(21),i(11),function(){var t=r,e=t.lib,i=e.WordArray,n=e.BlockCipher,o=t.algo,a=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],h=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],u=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],l=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],d=o.DES=n.extend({_doReset:function(){for(var t=this._key.words,e=[],i=0;i<56;i++){var r=a[i]-1;e[i]=t[r>>>5]>>>31-r%32&1}for(var n=this._subKeys=[],o=0;o<16;o++){var u=n[o]=[],l=h[o];for(i=0;i<24;i++)u[i/6|0]|=e[(s[i]-1+l)%28]<<31-i%6,u[4+(i/6|0)]|=e[28+(s[i+24]-1+l)%28]<<31-i%6;for(u[0]=u[0]<<1|u[0]>>>31,i=1;i<7;i++)u[i]=u[i]>>>4*(i-1)+3;u[7]=u[7]<<5|u[7]>>>27}var d=this._invSubKeys=[];for(i=0;i<16;i++)d[i]=n[15-i]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,i){this._lBlock=t[e],this._rBlock=t[e+1],f.call(this,4,252645135),f.call(this,16,65535),c.call(this,2,858993459),c.call(this,8,16711935),f.call(this,1,1431655765);for(var r=0;r<16;r++){for(var n=i[r],o=this._lBlock,a=this._rBlock,s=0,h=0;h<8;h++)s|=u[h][((a^n[h])&l[h])>>>0];this._lBlock=a,this._rBlock=o^s}var d=this._lBlock;this._lBlock=this._rBlock,this._rBlock=d,f.call(this,1,1431655765),c.call(this,8,16711935),c.call(this,2,858993459),f.call(this,16,65535),f.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function f(t,e){var i=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=i,this._lBlock^=i<<t}function c(t,e){var i=(this._rBlock>>>t^this._lBlock)&e;this._lBlock^=i,this._rBlock^=i<<t}t.DES=n._createHelper(d);var p=o.TripleDES=n.extend({_doReset:function(){var t=this._key.words;if(2!==t.length&&4!==t.length&&t.length<6)throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");var e=t.slice(0,2),r=t.length<4?t.slice(0,2):t.slice(2,4),n=t.length<6?t.slice(0,2):t.slice(4,6);this._des1=d.createEncryptor(i.create(e)),this._des2=d.createEncryptor(i.create(r)),this._des3=d.createEncryptor(i.create(n))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});t.TripleDES=n._createHelper(p)}(),r.TripleDES)},function(t,e,i){var r;t.exports=(r=i(5),i(31),i(32),i(21),i(11),function(){var t=r,e=t.lib.StreamCipher,i=t.algo,n=i.RC4=e.extend({_doReset:function(){for(var t=this._key,e=t.words,i=t.sigBytes,r=this._S=[],n=0;n<256;n++)r[n]=n;n=0;for(var o=0;n<256;n++){var a=n%i,s=e[a>>>2]>>>24-a%4*8&255;o=(o+r[n]+s)%256;var h=r[n];r[n]=r[o],r[o]=h}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=o.call(this)},keySize:8,ivSize:0});function o(){for(var t=this._S,e=this._i,i=this._j,r=0,n=0;n<4;n++){i=(i+t[e=(e+1)%256])%256;var o=t[e];t[e]=t[i],t[i]=o,r|=t[(t[e]+t[i])%256]<<24-8*n}return this._i=e,this._j=i,r}t.RC4=e._createHelper(n);var a=i.RC4Drop=n.extend({cfg:n.cfg.extend({drop:192}),_doReset:function(){n._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)o.call(this)}});t.RC4Drop=e._createHelper(a)}(),r.RC4)},function(t,e,i){var r;t.exports=(r=i(5),i(31),i(32),i(21),i(11),function(){var t=r,e=t.lib.StreamCipher,i=t.algo,n=[],o=[],a=[],s=i.Rabbit=e.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,i=0;i<4;i++)t[i]=16711935&(t[i]<<8|t[i]>>>24)|4278255360&(t[i]<<24|t[i]>>>8);var r=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];for(this._b=0,i=0;i<4;i++)h.call(this);for(i=0;i<8;i++)n[i]^=r[i+4&7];if(e){var o=e.words,a=o[0],s=o[1],u=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),d=u>>>16|4294901760&l,f=l<<16|65535&u;for(n[0]^=u,n[1]^=d,n[2]^=l,n[3]^=f,n[4]^=u,n[5]^=d,n[6]^=l,n[7]^=f,i=0;i<4;i++)h.call(this)}},_doProcessBlock:function(t,e){var i=this._X;h.call(this),n[0]=i[0]^i[5]>>>16^i[3]<<16,n[1]=i[2]^i[7]>>>16^i[5]<<16,n[2]=i[4]^i[1]>>>16^i[7]<<16,n[3]=i[6]^i[3]>>>16^i[1]<<16;for(var r=0;r<4;r++)n[r]=16711935&(n[r]<<8|n[r]>>>24)|4278255360&(n[r]<<24|n[r]>>>8),t[e+r]^=n[r]},blockSize:4,ivSize:2});function h(){for(var t=this._X,e=this._C,i=0;i<8;i++)o[i]=e[i];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0<o[0]>>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0<o[1]>>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0<o[2]>>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0<o[3]>>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0<o[4]>>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0<o[5]>>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0<o[6]>>>0?1:0)|0,this._b=e[7]>>>0<o[7]>>>0?1:0,i=0;i<8;i++){var r=t[i]+e[i],n=65535&r,s=r>>>16,h=((n*n>>>17)+n*s>>>15)+s*s,u=((4294901760&r)*r|0)+((65535&r)*r|0);a[i]=h^u}t[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,t[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,t[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,t[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,t[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,t[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,t[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,t[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}t.Rabbit=e._createHelper(s)}(),r.Rabbit)},function(t,e,i){var r;t.exports=(r=i(5),i(31),i(32),i(21),i(11),function(){var t=r,e=t.lib.StreamCipher,i=t.algo,n=[],o=[],a=[],s=i.RabbitLegacy=e.extend({_doReset:function(){var t=this._key.words,e=this.cfg.iv,i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],r=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var n=0;n<4;n++)h.call(this);for(n=0;n<8;n++)r[n]^=i[n+4&7];if(e){var o=e.words,a=o[0],s=o[1],u=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),d=u>>>16|4294901760&l,f=l<<16|65535&u;for(r[0]^=u,r[1]^=d,r[2]^=l,r[3]^=f,r[4]^=u,r[5]^=d,r[6]^=l,r[7]^=f,n=0;n<4;n++)h.call(this)}},_doProcessBlock:function(t,e){var i=this._X;h.call(this),n[0]=i[0]^i[5]>>>16^i[3]<<16,n[1]=i[2]^i[7]>>>16^i[5]<<16,n[2]=i[4]^i[1]>>>16^i[7]<<16,n[3]=i[6]^i[3]>>>16^i[1]<<16;for(var r=0;r<4;r++)n[r]=16711935&(n[r]<<8|n[r]>>>24)|4278255360&(n[r]<<24|n[r]>>>8),t[e+r]^=n[r]},blockSize:4,ivSize:2});function h(){for(var t=this._X,e=this._C,i=0;i<8;i++)o[i]=e[i];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0<o[0]>>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0<o[1]>>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0<o[2]>>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0<o[3]>>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0<o[4]>>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0<o[5]>>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0<o[6]>>>0?1:0)|0,this._b=e[7]>>>0<o[7]>>>0?1:0,i=0;i<8;i++){var r=t[i]+e[i],n=65535&r,s=r>>>16,h=((n*n>>>17)+n*s>>>15)+s*s,u=((4294901760&r)*r|0)+((65535&r)*r|0);a[i]=h^u}t[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,t[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,t[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,t[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,t[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,t[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,t[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,t[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}t.RabbitLegacy=e._createHelper(s)}(),r.RabbitLegacy)},function(t,e,i){"use strict";i.r(e),i.d(e,"default",(function(){return Re}));var r=i(0),n=i(34),o=i.n(n),a=i(133),s=i.n(a),h=function(){function t(t){this.enableTextTexture=0,this.canvas=t,this.yuv=s.a.attach(t,{webGL:!1}),this.format=null}var e=t.prototype;return e.destroy=function(){},e.renderFrame=function(t,e,i,r,n){this.format||(this.format=o.a.format({width:e,height:i,chromaWidth:e/2,chromaHeight:i/2}));var a=o.a.lumaPlane(this.format,new Uint8Array(t.subarray(0,r))),s=o.a.chromaPlane(this.format,new Uint8Array(t.subarray(r,r+n))),h=o.a.chromaPlane(this.format,new Uint8Array(t.subarray(r+n,t.length))),u=o.a.frame(this.format,a,s,h);this.yuv.drawFrame(u)},e.renderVideoFrame=function(t,e,i){if(t){var r=e*i,n=e/2*(i/2);this.renderFrame(t,e,i,r,n)}},t}(),u=i(22),l=i(40),d=i(6),f=i.n(d),c=i(1),p={};!function(){var t=self.navigator.userAgent.toLowerCase(),e=/(edge)\/([\w.]+)/.exec(t)||/(opr)[\/]([\w.]+)/.exec(t)||/(chrome)[ \/]([\w.]+)/.exec(t)||/(iemobile)[\/]([\w.]+)/.exec(t)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(t)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(t)||/(webkit)[ \/]([\w.]+)/.exec(t)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(t)||/(msie) ([\w.]+)/.exec(t)||t.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(t)||t.indexOf("compatible")<0&&/(firefox)[ \/]([\w.]+)/.exec(t)||[],i=/(ipad)/.exec(t)||/(ipod)/.exec(t)||/(windows phone)/.exec(t)||/(iphone)/.exec(t)||/(kindle)/.exec(t)||/(android)/.exec(t)||/(windows)/.exec(t)||/(mac)/.exec(t)||/(linux)/.exec(t)||/(cros)/.exec(t)||[],r={browser:e[5]||e[3]||e[1]||"",version:e[2]||e[4]||"0",majorVersion:e[4]||e[2]||"0",platform:i[0]||""},n={};if(r.browser){n[r.browser]=!0;var o=r.majorVersion.split(".");n.version={major:parseInt(r.majorVersion,10),string:r.version},o.length>1&&(n.version.minor=parseInt(o[1],10)),o.length>2&&(n.version.build=parseInt(o[2],10))}if(r.platform&&(n[r.platform]=!0),(n.chrome||n.opr||n.safari)&&(n.webkit=!0),n.rv||n.iemobile){n.rv&&delete n.rv;var a="msie";r.browser=a,n.msie=!0}if(n.edge){delete n.edge;var s="msedge";r.browser=s,n.msedge=!0}if(n.opr){var h="opera";r.browser=h,n.opera=!0}if(n.safari&&n.android){var u="android";r.browser=u,n.android=!0}for(var l in n.name=r.browser,n.platform=r.platform,p)p.hasOwnProperty(l)&&delete p[l];Object.assign(p,n)}();var m=p,g={ERROR:"error",LOADING_COMPLETE:"loading_complete",RECOVERED_EARLY_EOF:"recovered_early_eof",MEDIA_INFO:"media_info",METADATA_ARRIVED:"metadata_arrived",SCRIPTDATA_ARRIVED:"scriptdata_arrived",STATISTICS_INFO:"statistics_info"};function v(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var y=function(){function t(){}var e,i,r;return t.getConfig=function(){return{globalTag:c.a.GLOBAL_TAG,forceGlobalTag:c.a.FORCE_GLOBAL_TAG,enableVerbose:c.a.ENABLE_VERBOSE,enableDebug:c.a.ENABLE_DEBUG,enableInfo:c.a.ENABLE_INFO,enableWarn:c.a.ENABLE_WARN,enableError:c.a.ENABLE_ERROR,enableCallback:c.a.ENABLE_CALLBACK}},t.applyConfig=function(t){c.a.GLOBAL_TAG=t.globalTag,c.a.FORCE_GLOBAL_TAG=t.forceGlobalTag,c.a.ENABLE_VERBOSE=t.enableVerbose,c.a.ENABLE_DEBUG=t.enableDebug,c.a.ENABLE_INFO=t.enableInfo,c.a.ENABLE_WARN=t.enableWarn,c.a.ENABLE_ERROR=t.enableError,c.a.ENABLE_CALLBACK=t.enableCallback},t._notifyChange=function(){var e=t.emitter;if(e.listenerCount("change")>0){var i=t.getConfig();e.emit("change",i)}},t.registerListener=function(e){t.emitter.addListener("change",e)},t.removeListener=function(e){t.emitter.removeListener("change",e)},t.addLogListener=function(e){c.a.emitter.addListener("log",e),c.a.emitter.listenerCount("log")>0&&(c.a.ENABLE_CALLBACK=!0,t._notifyChange())},t.removeLogListener=function(e){c.a.emitter.removeListener("log",e),0===c.a.emitter.listenerCount("log")&&(c.a.ENABLE_CALLBACK=!1,t._notifyChange())},e=t,r=[{key:"forceGlobalTag",get:function(){return c.a.FORCE_GLOBAL_TAG},set:function(e){c.a.FORCE_GLOBAL_TAG=e,t._notifyChange()}},{key:"globalTag",get:function(){return c.a.GLOBAL_TAG},set:function(e){c.a.GLOBAL_TAG=e,t._notifyChange()}},{key:"enableAll",get:function(){return c.a.ENABLE_VERBOSE&&c.a.ENABLE_DEBUG&&c.a.ENABLE_INFO&&c.a.ENABLE_WARN&&c.a.ENABLE_ERROR},set:function(e){c.a.ENABLE_VERBOSE=e,c.a.ENABLE_DEBUG=e,c.a.ENABLE_INFO=e,c.a.ENABLE_WARN=e,c.a.ENABLE_ERROR=e,t._notifyChange()}},{key:"enableDebug",get:function(){return c.a.ENABLE_DEBUG},set:function(e){c.a.ENABLE_DEBUG=e,t._notifyChange()}},{key:"enableVerbose",get:function(){return c.a.ENABLE_VERBOSE},set:function(e){c.a.ENABLE_VERBOSE=e,t._notifyChange()}},{key:"enableInfo",get:function(){return c.a.ENABLE_INFO},set:function(e){c.a.ENABLE_INFO=e,t._notifyChange()}},{key:"enableWarn",get:function(){return c.a.ENABLE_WARN},set:function(e){c.a.ENABLE_WARN=e,t._notifyChange()}},{key:"enableError",get:function(){return c.a.ENABLE_ERROR},set:function(e){c.a.ENABLE_ERROR=e,t._notifyChange()}}],(i=null)&&v(e.prototype,i),r&&v(e,r),Object.defineProperty(e,"prototype",{writable:!1}),t}();y.emitter=new f.a;var b=y,_=i(12),w=i(50),A=function(){function t(){}return t.init=function(){for(var e in t.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[],".mp3":[]},t.types)t.types.hasOwnProperty(e)&&(t.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);var i=t.constants={};i.FTYP=new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]),i.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),i.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),i.STSC=i.STCO=i.STTS,i.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),i.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),i.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),i.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),i.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),i.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])},t.box=function(t){for(var e=8,i=null,r=Array.prototype.slice.call(arguments,1),n=r.length,o=0;o<n;o++)e+=r[o].byteLength;(i=new Uint8Array(e))[0]=e>>>24&255,i[1]=e>>>16&255,i[2]=e>>>8&255,i[3]=255&e,i.set(t,4);for(var a=8,s=0;s<n;s++)i.set(r[s],a),a+=r[s].byteLength;return i},t.generateInitSegment=function(e){var i=t.box(t.types.ftyp,t.constants.FTYP),r=t.moov(e),n=new Uint8Array(i.byteLength+r.byteLength);return n.set(i,0),n.set(r,i.byteLength),n},t.moov=function(e){var i=t.mvhd(e.timescale,e.duration),r=t.trak(e),n=t.mvex(e);return t.box(t.types.moov,i,r,n)},t.mvhd=function(e,i){return t.box(t.types.mvhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]))},t.trak=function(e){return t.box(t.types.trak,t.tkhd(e),t.mdia(e))},t.tkhd=function(e){var i=e.id,r=e.duration,n=e.presentWidth,o=e.presentHeight;return t.box(t.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,0,r>>>24&255,r>>>16&255,r>>>8&255,255&r,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,n>>>8&255,255&n,0,0,o>>>8&255,255&o,0,0]))},t.mdia=function(e){return t.box(t.types.mdia,t.mdhd(e),t.hdlr(e),t.minf(e))},t.mdhd=function(e){var i=e.timescale,r=e.duration;return t.box(t.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,r>>>24&255,r>>>16&255,r>>>8&255,255&r,85,196,0,0]))},t.hdlr=function(e){var i=null;return i="audio"===e.type?t.constants.HDLR_AUDIO:t.constants.HDLR_VIDEO,t.box(t.types.hdlr,i)},t.minf=function(e){var i=null;return i="audio"===e.type?t.box(t.types.smhd,t.constants.SMHD):t.box(t.types.vmhd,t.constants.VMHD),t.box(t.types.minf,i,t.dinf(),t.stbl(e))},t.dinf=function(){return t.box(t.types.dinf,t.box(t.types.dref,t.constants.DREF))},t.stbl=function(e){return t.box(t.types.stbl,t.stsd(e),t.box(t.types.stts,t.constants.STTS),t.box(t.types.stsc,t.constants.STSC),t.box(t.types.stsz,t.constants.STSZ),t.box(t.types.stco,t.constants.STCO))},t.stsd=function(e){return"audio"===e.type?"mp3"===e.codec?t.box(t.types.stsd,t.constants.STSD_PREFIX,t.mp3(e)):t.box(t.types.stsd,t.constants.STSD_PREFIX,t.mp4a(e)):t.box(t.types.stsd,t.constants.STSD_PREFIX,t.avc1(e))},t.mp3=function(e){var i=e.channelCount,r=e.audioSampleRate,n=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,i,0,16,0,0,0,0,r>>>8&255,255&r,0,0]);return t.box(t.types[".mp3"],n)},t.mp4a=function(e){var i=e.channelCount,r=e.audioSampleRate,n=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,i,0,16,0,0,0,0,r>>>8&255,255&r,0,0]);return t.box(t.types.mp4a,n,t.esds(e))},t.esds=function(e){var i=e.config||[],r=i.length,n=new Uint8Array([0,0,0,0,3,23+r,0,1,0,4,15+r,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([r]).concat(i).concat([6,1,2]));return t.box(t.types.esds,n)},t.avc1=function(e){var i=e.avcc,r=e.codecWidth,n=e.codecHeight,o=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,r>>>8&255,255&r,n>>>8&255,255&n,0,72,0,0,0,72,0,0,0,0,0,0,0,1,10,120,113,113,47,102,108,118,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return t.box(t.types.avc1,o,t.box(t.types.avcC,i))},t.mvex=function(e){return t.box(t.types.mvex,t.trex(e))},t.trex=function(e){var i=e.id,r=new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return t.box(t.types.trex,r)},t.moof=function(e,i){return t.box(t.types.moof,t.mfhd(e.sequenceNumber),t.traf(e,i))},t.mfhd=function(e){var i=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e]);return t.box(t.types.mfhd,i)},t.traf=function(e,i){var r=e.id,n=t.box(t.types.tfhd,new Uint8Array([0,0,0,0,r>>>24&255,r>>>16&255,r>>>8&255,255&r])),o=t.box(t.types.tfdt,new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i])),a=t.sdtp(e),s=t.trun(e,a.byteLength+16+16+8+16+8+8);return t.box(t.types.traf,n,o,s,a)},t.sdtp=function(e){for(var i=e.samples||[],r=i.length,n=new Uint8Array(4+r),o=0;o<r;o++){var a=i[o].flags;n[o+4]=a.isLeading<<6|a.dependsOn<<4|a.isDependedOn<<2|a.hasRedundancy}return t.box(t.types.sdtp,n)},t.trun=function(e,i){var r=e.samples||[],n=r.length,o=12+16*n,a=new Uint8Array(o);i+=8+o,a.set([0,0,15,1,n>>>24&255,n>>>16&255,n>>>8&255,255&n,i>>>24&255,i>>>16&255,i>>>8&255,255&i],0);for(var s=0;s<n;s++){var h=r[s].duration,u=r[s].size,l=r[s].flags,d=r[s].cts;a.set([h>>>24&255,h>>>16&255,h>>>8&255,255&h,u>>>24&255,u>>>16&255,u>>>8&255,255&u,l.isLeading<<2|l.dependsOn,l.isDependedOn<<6|l.hasRedundancy<<4|l.isNonSync,0,0,d>>>24&255,d>>>16&255,d>>>8&255,255&d],12+16*s)}return t.box(t.types.trun,a)},t.mdat=function(e){return t.box(t.types.mdat,e)},t}();A.init();var M=A,E=function(){function t(){}return t.getSilentFrame=function(t,e){if("mp4a.40.2"===t){if(1===e)return new Uint8Array([0,200,0,128,35,128]);if(2===e)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===e)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===e)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===e)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===e)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===e)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===e)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===e)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}return null},t}();function S(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var k=function(t,e,i,r,n){this.dts=t,this.pts=e,this.duration=i,this.originalDts=r,this.isSyncPoint=n,this.fileposition=null},T=function(){function t(){this.beginDts=0,this.endDts=0,this.beginPts=0,this.endPts=0,this.originalBeginDts=0,this.originalEndDts=0,this.syncPoints=[],this.firstSample=null,this.lastSample=null}return t.prototype.appendSyncPoint=function(t){t.isSyncPoint=!0,this.syncPoints.push(t)},t}(),R=function(){function t(){this._list=[]}var e=t.prototype;return e.clear=function(){this._list=[]},e.appendArray=function(t){var e=this._list;0!==t.length&&(e.length>0&&t[0].originalDts<e[e.length-1].originalDts&&this.clear(),Array.prototype.push.apply(e,t))},e.getLastSyncPointBeforeDts=function(t){if(0==this._list.length)return null;var e=this._list,i=0,r=e.length-1,n=0,o=0,a=r;for(t<e[0].dts&&(i=0,o=a+1);o<=a;){if((n=o+Math.floor((a-o)/2))===r||t>=e[n].dts&&t<e[n+1].dts){i=n;break}e[n].dts<t?o=n+1:a=n-1}return this._list[i]},t}(),I=function(){function t(t){this._type=t,this._list=[],this._lastAppendLocation=-1}var e,i,r,n=t.prototype;return n.isEmpty=function(){return 0===this._list.length},n.clear=function(){this._list=[],this._lastAppendLocation=-1},n._searchNearestSegmentBefore=function(t){var e=this._list;if(0===e.length)return-2;var i=e.length-1,r=0,n=0,o=i,a=0;if(t<e[0].originalBeginDts)return a=-1;for(;n<=o;){if((r=n+Math.floor((o-n)/2))===i||t>e[r].lastSample.originalDts&&t<e[r+1].originalBeginDts){a=r;break}e[r].originalBeginDts<t?n=r+1:o=r-1}return a},n._searchNearestSegmentAfter=function(t){return this._searchNearestSegmentBefore(t)+1},n.append=function(t){var e=this._list,i=t,r=this._lastAppendLocation,n=0;-1!==r&&r<e.length&&i.originalBeginDts>=e[r].lastSample.originalDts&&(r===e.length-1||r<e.length-1&&i.originalBeginDts<e[r+1].originalBeginDts)?n=r+1:e.length>0&&(n=this._searchNearestSegmentBefore(i.originalBeginDts)+1),this._lastAppendLocation=n,this._list.splice(n,0,i)},n.getLastSegmentBefore=function(t){var e=this._searchNearestSegmentBefore(t);return e>=0?this._list[e]:null},n.getLastSampleBefore=function(t){var e=this.getLastSegmentBefore(t);return null!=e?e.lastSample:null},n.getLastSyncPointBefore=function(t){for(var e=this._searchNearestSegmentBefore(t),i=this._list[e].syncPoints;0===i.length&&e>0;)e--,i=this._list[e].syncPoints;return i.length>0?i[i.length-1]:null},e=t,(i=[{key:"type",get:function(){return this._type}},{key:"length",get:function(){return this._list.length}}])&&S(e.prototype,i),r&&S(e,r),Object.defineProperty(e,"prototype",{writable:!1}),t}(),C=i(2);function P(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var x=function(){function t(t){this.TAG="MP4Remuxer",this._config=t,this._isLive=!0===t.isLive,this._dtsBase=-1,this._dtsBaseInited=!1,this._audioDtsBase=1/0,this._videoDtsBase=1/0,this._audioNextDts=void 0,this._videoNextDts=void 0,this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._audioMeta=null,this._videoMeta=null,this._adjustPts=0,this._lastAdjustVideoPts=0,this._lastVideoPts=0,this._audioSegmentInfoList=new I("audio"),this._videoSegmentInfoList=new I("video"),this._onInitSegment=null,this._onMediaSegment=null,this._forceFirstIDR=!(!m.chrome||!(m.version.major<50||50===m.version.major&&m.version.build<2661)),this._fillSilentAfterSeek=m.msedge||m.msie,this._mp3UseMpegAudio=!m.firefox,this._fillAudioTimestampGap=this._config.fixAudioTimestampGap}var e,i,r,n=t.prototype;return n.destroy=function(){this._dtsBase=-1,this._dtsBaseInited=!1,this._audioMeta=null,this._videoMeta=null,this._audioSegmentInfoList.clear(),this._audioSegmentInfoList=null,this._videoSegmentInfoList.clear(),this._videoSegmentInfoList=null,this._onInitSegment=null,this._onMediaSegment=null},n.bindDataSource=function(t){return t.onDataAvailable=this.remux.bind(this),t.onTrackMetadata=this._onTrackMetadataReceived.bind(this),this},n.insertDiscontinuity=function(){this._audioNextDts=this._videoNextDts=void 0},n.changeSpeed=function(t){this._adjustPts=t},n.seek=function(t){this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._videoSegmentInfoList.clear(),this._audioSegmentInfoList.clear(),this._dtsBase=-1,this._dtsBaseInited=!1,this._audioDtsBase=1/0,this._videoDtsBase=1/0,this._audioNextDts=void 0,this._videoNextDts=void 0,this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._adjustPts=0,this._lastAdjustVideoPts=0,this._lastVideoPts=0},n.remux=function(t,e){if(!this._onMediaSegment)throw new C.a("MP4Remuxer: onMediaSegment callback must be specificed!");if(!this._dtsBaseInited&&!this._calculateDtsBase(t,e))return e.samples=[],void(t.samples=[]);this._remuxVideo(e),this._remuxAudio(t)},n._onTrackMetadataReceived=function(t,e){var i=null,r="mp4",n=e.codec;if("audio"===t)this._audioMeta=e,"mp3"===e.codec&&this._mp3UseMpegAudio?(r="mpeg",n="",i=new Uint8Array):i=M.generateInitSegment(e);else{if("video"!==t)return;this._videoMeta=e,i=M.generateInitSegment(e)}if(!this._onInitSegment)throw new C.a("MP4Remuxer: onInitSegment callback must be specified!");this._onInitSegment(t,{type:t,data:i.buffer,codec:n,container:t+"/"+r,mediaDuration:e.duration})},n._calculateDtsBase=function(t,e){if(!this._dtsBaseInited)return t.samples&&t.samples.length&&(this._audioDtsBase=t.samples[0].dts),e.samples&&e.samples.length&&(this._videoDtsBase=e.samples[0].dts),this._dtsBase=Math.min(this._audioDtsBase,this._videoDtsBase),this._dtsBaseInited=!0,!(this._dtsBase<0)},n.flushStashedSamples=function(){var t=this._videoStashedLastSample,e=this._audioStashedLastSample,i={type:"video",id:1,sequenceNumber:0,samples:[],length:0};null!=t&&(i.samples.push(t),i.length=t.length);var r={type:"audio",id:2,sequenceNumber:0,samples:[],length:0};null!=e&&(r.samples.push(e),r.length=e.length),this._videoStashedLastSample=null,this._audioStashedLastSample=null,this._remuxVideo(i,!0),this._remuxAudio(r,!0)},n._remuxAudio=function(t,e){if(null!=this._audioMeta){var i,r=t,n=r.samples,o=void 0,a=-1,s=this._audioMeta.refSampleDuration,h="mp3"===this._audioMeta.codec&&this._mp3UseMpegAudio,u=this._dtsBaseInited&&void 0===this._audioNextDts,l=!1;if(n&&0!==n.length&&(1!==n.length||e)){var d=0,f=null,p=0;h?(d=0,p=r.length):(d=8,p=8+r.length);var g=null;if(n.length>1&&(p-=(g=n.pop()).length),null!=this._audioStashedLastSample){var v=this._audioStashedLastSample;this._audioStashedLastSample=null,n.unshift(v),p+=v.length}null!=g&&(this._audioStashedLastSample=g);var y=n[0].dts-this._dtsBase;if(this._audioNextDts)o=y-this._audioNextDts;else if(this._audioSegmentInfoList.isEmpty())o=0,this._fillSilentAfterSeek&&!this._videoSegmentInfoList.isEmpty()&&"mp3"!==this._audioMeta.originalCodec&&(l=!0);else{var b=this._audioSegmentInfoList.getLastSampleBefore(y);if(null!=b){var _=y-(b.originalDts+b.duration);_<=3&&(_=0),o=y-(b.dts+b.duration+_)}else o=0}if(l){var w=y-o,A=this._videoSegmentInfoList.getLastSegmentBefore(y);if(null!=A&&A.beginDts<w){var S=E.getSilentFrame(this._audioMeta.originalCodec,this._audioMeta.channelCount);if(S){var R=A.beginDts,I=w-A.beginDts;c.a.v(this.TAG,"InsertPrefixSilentAudio: dts: "+R+", duration: "+I),n.unshift({unit:S,dts:R,pts:R}),p+=S.byteLength}}else l=!1}for(var C=[],P=0;P<n.length;P++){var x=n[P],D=x.unit,O=x.dts-this._dtsBase,B=O-o;-1===a&&(a=B);var L=0;if(P!==n.length-1)L=n[P+1].dts-this._dtsBase-o-B;else if(null!=g)L=g.dts-this._dtsBase-o-B;else L=C.length>=1?C[C.length-1].duration:Math.floor(s);var W=!1,N=null;if(L>1.5*s&&"mp3"!==this._audioMeta.codec&&this._fillAudioTimestampGap&&!m.safari){W=!0;var F=Math.abs(L-s),U=Math.ceil(F/s),j=B+s;c.a.w(this.TAG,"Large audio timestamp gap detected, may cause AV sync to drift. Silent frames will be generated to avoid unsync.\ndts: "+(B+L)+" ms, expected: "+(B+Math.round(s))+" ms, delta: "+Math.round(F)+" ms, generate: "+U+" framessampleDuration: "+L+" ms, refSampleDuration: "+s);var V=E.getSilentFrame(this._audioMeta.originalCodec,this._audioMeta.channelCount);null==V&&(c.a.w(this.TAG,"Unable to generate silent frame for "+this._audioMeta.originalCodec+" with "+this._audioMeta.channelCount+" channels, repeat last frame"),V=D),N=[];for(var H=0;H<U;H++){var z=Math.round(j);if(N.length>0){var G=N[N.length-1];G.duration=z-G.dts}var q={dts:z,pts:z,cts:0,unit:V,size:V.byteLength,duration:0,originalDts:O,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}};N.push(q),p+=q.size,j+=s}var X=N[N.length-1];X.duration=B+L-X.dts,L=Math.round(s)}C.push({dts:B,pts:B,cts:0,unit:x.unit,size:x.unit.byteLength,duration:L,originalDts:O,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}}),W&&C.push.apply(C,N)}h?f=new Uint8Array(p):((f=new Uint8Array(p))[0]=p>>>24&255,f[1]=p>>>16&255,f[2]=p>>>8&255,f[3]=255&p,f.set(M.types.mdat,4));for(var Z=0;Z<C.length;Z++){var K=C[Z].unit;f.set(K,d),d+=K.byteLength}var Q=C[C.length-1];i=Q.dts+Q.duration,this._audioNextDts=i;var Y=new T;Y.beginDts=a,Y.endDts=i,Y.beginPts=a,Y.endPts=i,Y.originalBeginDts=C[0].originalDts,Y.originalEndDts=Q.originalDts+Q.duration,Y.firstSample=new k(C[0].dts,C[0].pts,C[0].duration,C[0].originalDts,!1),Y.lastSample=new k(Q.dts,Q.pts,Q.duration,Q.originalDts,!1),this._isLive||this._audioSegmentInfoList.append(Y),r.samples=C,r.sequenceNumber++;var J=null;J=h?new Uint8Array:M.moof(r,a),r.samples=[],r.length=0;var $={type:"audio",data:this._mergeBoxes(J,f).buffer,sampleCount:C.length,info:Y};h&&u&&($.timestampOffset=a),this._onMediaSegment("audio",$)}}},n._remuxVideo=function(t,e){if(null!=this._videoMeta){var i,r,n=t,o=n.samples,a=void 0,s=-1,h=-1;if(o&&0!==o.length){o.length;var u=8,l=null,d=8+t.length,f=null;if(o.length>0&&(d-=(f=o.pop()).length),null!=this._videoStashedLastSample){var c=this._videoStashedLastSample;this._videoStashedLastSample=null,o.unshift(c),d+=c.length}if(null!=f&&(this._videoStashedLastSample=f),!(o.length<1)){var p=o[0].dts-this._dtsBase;if(this._videoNextDts)a=p-this._videoNextDts;else if(this._videoSegmentInfoList.isEmpty())a=0;else{var m=this._videoSegmentInfoList.getLastSampleBefore(p);if(null!=m){var g=p-(m.originalDts+m.duration);g<=3&&(g=0),a=p-(m.dts+m.duration+g)}else a=0}var v=!1;this._adjustPts>0&&(a=10,v=!0);for(var y=new T,b=[],_=0;_<o.length;_++){var w=o[_],A=w.dts-this._dtsBase,E=w.isKeyframe,S=A-a,R=w.cts,I=S+R;-1===s&&(s=S,h=I);var C=0;if(_!==o.length-1)C=o[_+1].dts-this._dtsBase-a-S;else if(null!=f)C=f.dts-this._dtsBase-a-S;else C=b.length>=1?b[b.length-1].duration:Math.floor(this._videoMeta.refSampleDuration);if(E){var P=new k(S,I,C,w.dts,!0);P.fileposition=w.fileposition,y.appendSyncPoint(P)}v&&(C=Math.floor(.8*C)),b.push({dts:S,pts:I,cts:R,units:w.units,size:w.length,isKeyframe:E,duration:C,originalDts:A,flags:{isLeading:0,dependsOn:E?2:1,isDependedOn:E?1:0,hasRedundancy:0,isNonSync:E?0:1}})}(l=new Uint8Array(d))[0]=d>>>24&255,l[1]=d>>>16&255,l[2]=d>>>8&255,l[3]=255&d,l.set(M.types.mdat,4);for(var x=0;x<b.length;x++)for(var D=b[x].units;D.length;){var O=D.shift().data;l.set(O,u),u+=O.byteLength}var B=b[b.length-1];if(i=B.dts+B.duration,r=B.pts+B.duration,this._videoNextDts=i,y.beginDts=s,y.endDts=i,y.beginPts=h,y.endPts=r,y.originalBeginDts=b[0].originalDts,y.originalEndDts=B.originalDts+B.duration,y.firstSample=new k(b[0].dts,b[0].pts,b[0].duration,b[0].originalDts,b[0].isKeyframe),y.lastSample=new k(B.dts,B.pts,B.duration,B.originalDts,B.isKeyframe),this._isLive||this._videoSegmentInfoList.append(y),n.samples=b,n.sequenceNumber++,this._forceFirstIDR){var L=b[0].flags;L.dependsOn=2,L.isNonSync=0}var W=M.moof(n,s);n.samples=[],n.length=0,this._onMediaSegment("video",{type:"video",data:this._mergeBoxes(W,l).buffer,sampleCount:b.length,info:y})}}}},n._mergeBoxes=function(t,e){var i=new Uint8Array(t.byteLength+e.byteLength);return i.set(t,0),i.set(e,t.byteLength),i},e=t,(i=[{key:"onInitSegment",get:function(){return this._onInitSegment},set:function(t){this._onInitSegment=t}},{key:"onMediaSegment",get:function(){return this._onMediaSegment},set:function(t){this._onMediaSegment=t}}])&&P(e.prototype,i),r&&P(e,r),Object.defineProperty(e,"prototype",{writable:!1}),t}(),D=i(7);function O(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var B=function(){function t(){this._firstCheckpoint=0,this._lastCheckpoint=0,this._intervalBytes=0,this._totalBytes=0,this._lastSecondBytes=0,self.performance&&self.performance.now?this._now=self.performance.now.bind(self.performance):this._now=Date.now}var e,i,r,n=t.prototype;return n.reset=function(){this._firstCheckpoint=this._lastCheckpoint=0,this._totalBytes=this._intervalBytes=0,this._lastSecondBytes=0},n.addBytes=function(t){0===this._firstCheckpoint?(this._firstCheckpoint=this._now(),this._lastCheckpoint=this._firstCheckpoint,this._intervalBytes+=t,this._totalBytes+=t):this._now()-this._lastCheckpoint<1e3?(this._intervalBytes+=t,this._totalBytes+=t):(this._lastSecondBytes=this._intervalBytes,this._intervalBytes=t,this._totalBytes+=t,this._lastCheckpoint=this._now())},e=t,(i=[{key:"currentKBps",get:function(){this.addBytes(0);var t=(this._now()-this._lastCheckpoint)/1e3;return 0==t&&(t=1),this._intervalBytes/t/1024}},{key:"lastSecondKBps",get:function(){return this.addBytes(0),0!==this._lastSecondBytes?this._lastSecondBytes/1024:this._now()-this._lastCheckpoint>=500?this.currentKBps:0}},{key:"averageKBps",get:function(){var t=(this._now()-this._firstCheckpoint)/1e3;return this._totalBytes/t/1024}}])&&O(e.prototype,i),r&&O(e,r),Object.defineProperty(e,"prototype",{writable:!1}),t}();function L(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var W=0,N=1,F=2,U=3,j=4,V="Exception",H="HttpStatusCodeInvalid",z="EarlyEof",G="UnrecoverableEarlyEof",q=function(){function t(t){this._type=t||"undefined",this._status=W,this._needStash=!1,this._onContentLengthKnown=null,this._onURLRedirect=null,this._onDataArrival=null,this._onError=null,this._onComplete=null}var e,i,r,n=t.prototype;return n.destroy=function(){this._status=W,this._onContentLengthKnown=null,this._onURLRedirect=null,this._onDataArrival=null,this._onError=null,this._onComplete=null},n.isWorking=function(){return this._status===N||this._status===F},n.open=function(t,e){throw new C.c("Unimplemented abstract function!")},n.abort=function(){throw new C.c("Unimplemented abstract function!")},e=t,(i=[{key:"type",get:function(){return this._type}},{key:"status",get:function(){return this._status}},{key:"needStashBuffer",get:function(){return this._needStash}},{key:"onContentLengthKnown",get:function(){return this._onContentLengthKnown},set:function(t){this._onContentLengthKnown=t}},{key:"onURLRedirect",get:function(){return this._onURLRedirect},set:function(t){this._onURLRedirect=t}},{key:"onDataArrival",get:function(){return this._onDataArrival},set:function(t){this._onDataArrival=t}},{key:"onError",get:function(){return this._onError},set:function(t){this._onError=t}},{key:"onComplete",get:function(){return this._onComplete},set:function(t){this._onComplete=t}}])&&L(e.prototype,i),r&&L(e,r),Object.defineProperty(e,"prototype",{writable:!1}),t}();function X(t,e){return X=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},X(t,e)}var Z=function(t){var e,i;function n(e,i){var r;return(r=t.call(this,"fetch-stream-loader")||this).TAG="FetchStreamLoader",r._seekHandler=e,r._config=i,r._needStash=!0,r._requestAbort=!1,r._contentLength=null,r._receivedLength=0,r._retryConnectTimes=0,r._fetchUrl=null,r._fetchParam=null,r._triggerReconnectingNotify=!0,r._triggerReconnectSuccessNotify=!0,r}i=t,(e=n).prototype=Object.create(i.prototype),e.prototype.constructor=e,X(e,i),n.isSupported=function(){try{var t=m.msedge&&m.version.minor>=15048,e=!m.msedge||t;return self.fetch&&self.ReadableStream&&e}catch(t){return!1}};var o=n.prototype;return o.destroy=function(){this.isWorking()&&this.abort(),t.prototype.destroy.call(this)},o.fetchStream=function(){var t=this,e=this._fetchParam;this._retryConnectTimes++,this._triggerReconnectingNotify&&(this._triggerReconnectingNotify=!1,this._onDataArrival&&this._onDataArrival(null,-this._retryConnectTimes,0)),this._triggerReconnectSuccessNotify=!0,self.fetch(this._fetchUrl,e).then((function(e){if(t._requestAbort)return t._requestAbort=!1,void(t._status=W);if(e.ok&&e.status>=200&&e.status<=299){if(e.url!==t._fetchUrl&&t._onURLRedirect){var i=t._seekHandler.removeURLParameters(e.url);t._onURLRedirect(i)}var n=e.headers.get("Content-Length");return null!=n&&(t._contentLength=parseInt(n),0!==t._contentLength&&t._onContentLengthKnown&&t._onContentLengthKnown(t._contentLength)),t._triggerReconnectingNotify=!0,t._pump.call(t,e.body.getReader())}t._status=U,t._onError,r.MediaWorkerLog("fetch-stream: code:"+e.status+" msg:"+e.statusText);var o=t;r.sleep(3e3).then((function(){o.fetchStream()}))})).catch((function(e){if(t._status=U,!t._onError)throw e;t._onError(V,{code:-1,msg:e.message});var i=t;r.sleep(3e3).then((function(){i.fetchStream()}))}))},o.open=function(t,e){this._dataSource=t,this._range=e;var i=t.url;this._config.reuseRedirectedURL&&null!=t.redirectedURL&&(i=t.redirectedURL);var r=this._seekHandler.getConfig(i,e),n=new self.Headers;if("object"==typeof r.headers){var o=r.headers;for(var a in o)o.hasOwnProperty(a)&&n.append(a,o[a])}var s={method:"GET",headers:n,mode:"cors",cache:"default",referrerPolicy:"no-referrer-when-downgrade"};if("object"==typeof this._config.headers)for(var h in this._config.headers)n.append(h,this._config.headers[h]);!1===t.cors&&(s.mode="same-origin"),t.withCredentials&&(s.credentials="include"),t.referrerPolicy&&(s.referrerPolicy=t.referrerPolicy),this._status=N,this._fetchUrl=r.url,this._fetchParam=s,this.fetchStream()},o.abort=function(){this._requestAbort=!0},o._pump=function(t){var e=this;return t.read().then((function(i){if(i.done)if(null!==e._contentLength&&e._receivedLength<e._contentLength){e._status=U;var n=z,o={code:-1,msg:"Fetch stream meet Early-EOF"};if(!e._onError)throw new C.d(o.msg);e._onError(n,o),null!==e._contentLength&&e._receivedLength===e._contentLength&&e._receivedLength>0?(r.setLiveStreamType(!1),e._onComplete(e._range.from,e._range.from+e._receivedLength-1)):e._onComplete(-1,-1)}else e._status=j,e._onComplete&&(null!==e._contentLength&&e._receivedLength===e._contentLength&&e._receivedLength>0?(r.setLiveStreamType(!1),e._onComplete(e._range.from,e._range.from+e._receivedLength-1)):e._onComplete(-1,-1));else{if(!0===e._requestAbort)return e._requestAbort=!1,e._status=j,t.cancel();e._status=F;var a=i.value.buffer,s=e._range.from+e._receivedLength;e._receivedLength+=a.byteLength,e._onDataArrival&&e._onDataArrival(a,s,e._receivedLength),e._triggerReconnectSuccessNotify&&(e._triggerReconnectSuccessNotify=!1,e._onDataArrival&&(e._onDataArrival(null,e._retryConnectTimes,0),e._retryConnectTimes++)),e._pump(t)}})).catch((function(t){e._onComplete(-1,-1)}))},n}(q);function K(t,e){return K=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},K(t,e)}var Q=function(t){var e,i;function r(e,i){var r;return(r=t.call(this,"xhr-moz-chunked-loader")||this).TAG="MozChunkedLoader",r._seekHandler=e,r._config=i,r._needStash=!0,r._xhr=null,r._requestAbort=!1,r._contentLength=null,r._receivedLength=0,r}i=t,(e=r).prototype=Object.create(i.prototype),e.prototype.constructor=e,K(e,i),r.isSupported=function(){try{var t=new XMLHttpRequest;return t.open("GET","https://example.com",!0),t.responseType="moz-chunked-arraybuffer","moz-chunked-arraybuffer"===t.responseType}catch(t){return c.a.w("MozChunkedLoader",t.message),!1}};var n=r.prototype;return n.destroy=function(){this.isWorking()&&this.abort(),this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onloadend=null,this._xhr.onerror=null,this._xhr=null),t.prototype.destroy.call(this)},n.open=function(t,e){this._dataSource=t,this._range=e;var i=t.url;this._config.reuseRedirectedURL&&null!=t.redirectedURL&&(i=t.redirectedURL);var r=this._seekHandler.getConfig(i,e);this._requestURL=r.url;var n=this._xhr=new XMLHttpRequest;if(n.open("GET",r.url,!0),n.responseType="moz-chunked-arraybuffer",n.onreadystatechange=this._onReadyStateChange.bind(this),n.onprogress=this._onProgress.bind(this),n.onloadend=this._onLoadEnd.bind(this),n.onerror=this._onXhrError.bind(this),t.withCredentials&&(n.withCredentials=!0),"object"==typeof r.headers){var o=r.headers;for(var a in o)o.hasOwnProperty(a)&&n.setRequestHeader(a,o[a])}if("object"==typeof this._config.headers){var s=this._config.headers;for(var h in s)s.hasOwnProperty(h)&&n.setRequestHeader(h,s[h])}this._status=N,n.send()},n.abort=function(){this._requestAbort=!0,this._xhr&&this._xhr.abort(),this._status=j},n._onReadyStateChange=function(t){var e=t.target;if(2===e.readyState){if(null!=e.responseURL&&e.responseURL!==this._requestURL&&this._onURLRedirect){var i=this._seekHandler.removeURLParameters(e.responseURL);this._onURLRedirect(i)}if(0!==e.status&&(e.status<200||e.status>299)){if(this._status=U,!this._onError)throw new C.d("MozChunkedLoader: Http code invalid, "+e.status+" "+e.statusText);this._onError(H,{code:e.status,msg:e.statusText})}else this._status=F}},n._onProgress=function(t){if(this._status!==U){null===this._contentLength&&null!==t.total&&0!==t.total&&(this._contentLength=t.total,this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength));var e=t.target.response,i=this._range.from+this._receivedLength;this._receivedLength+=e.byteLength,this._onDataArrival&&this._onDataArrival(e,i,this._receivedLength)}},n._onLoadEnd=function(t){!0!==this._requestAbort?this._status!==U&&(this._status=j,this._onComplete&&this._onComplete(this._range.from,this._range.from+this._receivedLength-1)):this._requestAbort=!1},n._onXhrError=function(t){this._status=U;var e=0,i=null;if(this._contentLength&&t.loaded<this._contentLength?(e=z,i={code:-1,msg:"Moz-Chunked stream meet Early-Eof"}):(e=V,i={code:-1,msg:t.constructor.name+" "+t.type}),!this._onError)throw new C.d(i.msg);this._onError(e,i)},r}(q);function Y(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function J(t,e){return J=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},J(t,e)}var $=function(t){var e,i;function r(e,i){var r;return(r=t.call(this,"xhr-range-loader")||this).TAG="RangeLoader",r._seekHandler=e,r._config=i,r._needStash=!1,r._chunkSizeKBList=[128,256,384,512,768,1024,1536,2048,3072,4096,5120,6144,7168,8192],r._currentChunkSizeKB=384,r._currentSpeedNormalized=0,r._zeroSpeedChunkCount=0,r._xhr=null,r._speedSampler=new B,r._requestAbort=!1,r._waitForTotalLength=!1,r._totalLengthReceived=!1,r._currentRequestURL=null,r._currentRedirectedURL=null,r._currentRequestRange=null,r._totalLength=null,r._contentLength=null,r._receivedLength=0,r._lastTimeLoaded=0,r}i=t,(e=r).prototype=Object.create(i.prototype),e.prototype.constructor=e,J(e,i),r.isSupported=function(){try{var t=new XMLHttpRequest;return t.open("GET","https://example.com",!0),t.responseType="arraybuffer","arraybuffer"===t.responseType}catch(t){return c.a.w("RangeLoader",t.message),!1}};var n,o,a,s=r.prototype;return s.destroy=function(){this.isWorking()&&this.abort(),this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onload=null,this._xhr.onerror=null,this._xhr=null),t.prototype.destroy.call(this)},s.open=function(t,e){this._dataSource=t,this._range=e,this._status=N;var i=!1;null!=this._dataSource.filesize&&0!==this._dataSource.filesize&&(i=!0,this._totalLength=this._dataSource.filesize),this._totalLengthReceived||i?this._openSubRange():(this._waitForTotalLength=!0,this._internalOpen(this._dataSource,{from:0,to:-1}))},s._openSubRange=function(){var t=1024*this._currentChunkSizeKB,e=this._range.from+this._receivedLength,i=e+t;null!=this._contentLength&&i-this._range.from>=this._contentLength&&(i=this._range.from+this._contentLength-1),this._currentRequestRange={from:e,to:i},this._internalOpen(this._dataSource,this._currentRequestRange)},s._internalOpen=function(t,e){this._lastTimeLoaded=0;var i=t.url;this._config.reuseRedirectedURL&&(null!=this._currentRedirectedURL?i=this._currentRedirectedURL:null!=t.redirectedURL&&(i=t.redirectedURL));var r=this._seekHandler.getConfig(i,e);this._currentRequestURL=r.url;var n=this._xhr=new XMLHttpRequest;if(n.open("GET",r.url,!0),n.responseType="arraybuffer",n.onreadystatechange=this._onReadyStateChange.bind(this),n.onprogress=this._onProgress.bind(this),n.onload=this._onLoad.bind(this),n.onerror=this._onXhrError.bind(this),t.withCredentials&&(n.withCredentials=!0),"object"==typeof r.headers){var o=r.headers;for(var a in o)o.hasOwnProperty(a)&&n.setRequestHeader(a,o[a])}if("object"==typeof this._config.headers){var s=this._config.headers;for(var h in s)s.hasOwnProperty(h)&&n.setRequestHeader(h,s[h])}n.send()},s.abort=function(){this._requestAbort=!0,this._internalAbort(),this._status=j},s._internalAbort=function(){this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onload=null,this._xhr.onerror=null,this._xhr.abort(),this._xhr=null)},s._onReadyStateChange=function(t){var e=t.target;if(2===e.readyState){if(null!=e.responseURL){var i=this._seekHandler.removeURLParameters(e.responseURL);e.responseURL!==this._currentRequestURL&&i!==this._currentRedirectedURL&&(this._currentRedirectedURL=i,this._onURLRedirect&&this._onURLRedirect(i))}if(e.status>=200&&e.status<=299){if(this._waitForTotalLength)return;this._status=F}else{if(this._status=U,!this._onError)throw new C.d("RangeLoader: Http code invalid, "+e.status+" "+e.statusText);this._onError(H,{code:e.status,msg:e.statusText})}}},s._onProgress=function(t){if(this._status!==U){if(null===this._contentLength){var e=!1;if(this._waitForTotalLength){this._waitForTotalLength=!1,this._totalLengthReceived=!0,e=!0;var i=t.total;this._internalAbort(),null!=i&0!==i&&(this._totalLength=i)}if(-1===this._range.to?this._contentLength=this._totalLength-this._range.from:this._contentLength=this._range.to-this._range.from+1,e)return void this._openSubRange();this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength)}var r=t.loaded-this._lastTimeLoaded;this._lastTimeLoaded=t.loaded,this._speedSampler.addBytes(r)}},s._normalizeSpeed=function(t){var e=this._chunkSizeKBList,i=e.length-1,r=0,n=0,o=i;if(t<e[0])return e[0];for(;n<=o;){if((r=n+Math.floor((o-n)/2))===i||t>=e[r]&&t<e[r+1])return e[r];e[r]<t?n=r+1:o=r-1}},s._onLoad=function(t){if(this._status!==U)if(this._waitForTotalLength)this._waitForTotalLength=!1;else{this._lastTimeLoaded=0;var e=this._speedSampler.lastSecondKBps;if(0===e&&(this._zeroSpeedChunkCount++,this._zeroSpeedChunkCount>=3&&(e=this._speedSampler.currentKBps)),0!==e){var i=this._normalizeSpeed(e);this._currentSpeedNormalized!==i&&(this._currentSpeedNormalized=i,this._currentChunkSizeKB=i)}var r=t.target.response,n=this._range.from+this._receivedLength;this._receivedLength+=r.byteLength;var o=!1;null!=this._contentLength&&this._receivedLength<this._contentLength?this._openSubRange():o=!0,this._onDataArrival&&this._onDataArrival(r,n,this._receivedLength),o&&(this._status=j,this._onComplete&&this._onComplete(this._range.from,this._range.from+this._receivedLength-1))}},s._onXhrError=function(t){this._status=U;var e=0,i=null;if(this._contentLength&&this._receivedLength>0&&this._receivedLength<this._contentLength?(e=z,i={code:-1,msg:"RangeLoader meet Early-Eof"}):(e=V,i={code:-1,msg:t.constructor.name+" "+t.type}),!this._onError)throw new C.d(i.msg);this._onError(e,i)},n=r,(o=[{key:"currentSpeed",get:function(){return this._speedSampler.lastSecondKBps}}])&&Y(n.prototype,o),a&&Y(n,a),Object.defineProperty(n,"prototype",{writable:!1}),r}(q);function tt(t,e){return tt=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},tt(t,e)}var et=function(t){var e,i;function r(){var e;return(e=t.call(this,"websocket-loader")||this).TAG="WebSocketLoader",e._needStash=!0,e._ws=null,e._requestAbort=!1,e._receivedLength=0,e._retryConnectTimes=0,e._triggerReconnectingNotify=!0,e._triggerReconnectSuccessNotify=!0,e}i=t,(e=r).prototype=Object.create(i.prototype),e.prototype.constructor=e,tt(e,i),r.isSupported=function(){try{return void 0!==self.WebSocket}catch(t){return!1}};var n=r.prototype;return n.destroy=function(){this._ws&&this.abort(),t.prototype.destroy.call(this)},n.open=function(t){try{this._retryConnectTimes++,this._triggerReconnectingNotify&&(this._triggerReconnectingNotify=!1,this._onDataArrival&&this._onDataArrival(null,-this._retryConnectTimes,0)),this._triggerReconnectSuccessNotify=!0;var e=this._ws=new self.WebSocket(t.url);e.binaryType="arraybuffer",e.onopen=this._onWebSocketOpen.bind(this),e.onclose=this._onWebSocketClose.bind(this),e.onmessage=this._onWebSocketMessage.bind(this),e.onerror=this._onWebSocketError.bind(this),this._status=N}catch(t){this._status=U;var i={code:t.code,msg:t.message};if(!this._onError)throw new C.d(i.msg);this._onError(V,i)}},n.abort=function(){var t=this._ws;!t||0!==t.readyState&&1!==t.readyState||(this._requestAbort=!0,t.close()),this._ws=null,this._status=j},n._onWebSocketOpen=function(t){this._status=F},n._onWebSocketClose=function(t){!0!==this._requestAbort?(this._status=j,this._onComplete&&this._onComplete(-1,-1)):this._requestAbort=!1},n._onWebSocketMessage=function(t){var e=this;if(t.data instanceof ArrayBuffer)this._dispatchArrayBuffer(t.data);else if(t.data instanceof Blob){var i=new FileReader;i.onload=function(){e._dispatchArrayBuffer(i.result)},i.readAsArrayBuffer(t.data)}else{this._status=U;var r={code:-1,msg:"Unsupported WebSocket message type: "+t.data.constructor.name};if(!this._onError)throw new C.d(r.msg);this._onError(V,r)}},n._dispatchArrayBuffer=function(t){var e=t,i=this._receivedLength;this._receivedLength+=e.byteLength,this._onDataArrival&&this._onDataArrival(e,i,this._receivedLength),this._triggerReconnectSuccessNotify&&(this._triggerReconnectSuccessNotify=!1,this._onDataArrival&&(this._onDataArrival(null,this._retryConnectTimes,0),this._retryConnectTimes++))},n._onWebSocketError=function(t){this._status=U;var e={code:t.code,msg:t.message};if(!this._onError)throw new C.d(e.msg);this._onError(V,e)},r}(q),it=function(){function t(t){this._zeroStart=t||!1}var e=t.prototype;return e.getConfig=function(t,e){var i,r={};0!==e.from||-1!==e.to?(i=-1!==e.to?"bytes="+e.from.toString()+"-"+e.to.toString():"bytes="+e.from.toString()+"-",r.Range=i):this._zeroStart&&(r.Range="bytes=0-");return{url:t,headers:r}},e.removeURLParameters=function(t){return t},t}(),rt=function(){function t(t,e){this._startName=t,this._endName=e}var e=t.prototype;return e.getConfig=function(t,e){var i=t;if(0!==e.from||-1!==e.to){var r=!0;-1===i.indexOf("?")&&(i+="?",r=!1),r&&(i+="&"),i+=this._startName+"="+e.from.toString(),-1!==e.to&&(i+="&"+this._endName+"="+e.to.toString())}return{url:i,headers:{}}},e.removeURLParameters=function(t){var e=t.split("?")[0],i=void 0,r=t.indexOf("?");-1!==r&&(i=t.substring(r+1));var n="";if(null!=i&&i.length>0)for(var o=i.split("&"),a=0;a<o.length;a++){var s=o[a].split("="),h=a>0;s[0]!==this._startName&&s[0]!==this._endName&&(h&&(n+="&"),n+=o[a])}return 0===n.length?e:e+"?"+n},t}();function nt(t,e){return nt=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},nt(t,e)}var ot=function(t){var e,i;function n(){var e;return(e=t.call(this,"m3u8-loader")||this).TAG="M3U8Loader",e._needStash=!0,e.url="",e.startPlayTime=0,e._requestAbort=!1,e._receivedLength=0,e.getNextFileFlag=!0,e.pauseDisplay=!1,e.totalDuration=0,e.seeking=!1,e}i=t,(e=n).prototype=Object.create(i.prototype),e.prototype.constructor=e,nt(e,i),n.isSupported=function(){return!0};var o=n.prototype;return o.destroy=function(){this.abort(),t.prototype.destroy.call(this)},o.GetM3u8TotalDuration=function(){return this.totalDuration},o.createDownloadWorker=function(){var t;if(!this.downloadWorker&&"undefined"!=typeof Worker)try{t=this.downloadWorker=u(284),this.onwmsg=this.onWorkerMessage.bind(this);var e={cmd:r.tOpenStream,url:this.url,time:this.startPlayTime};t.postMessage(e),t.addEventListener("message",this.onwmsg),t.onerror=function(t){}}catch(t){this.downloadWorker=void 0}},o.setStartPlaySecs=function(t){this.startPlayTime=t},o.open=function(t){try{this.url=t.url,this.createDownloadWorker(),this._status=N}catch(t){this._status=U;var e={code:t.code,msg:t.message};if(!this._onError)throw new C.d(e.msg);this._onError(V,e)}},o.abort=function(){var t={cmd:r.tCloseStream};this.downloadWorker&&void 0!==this.downloadWorker&&this.downloadWorker.postMessage(t),this._status=j},o._onWebSocketOpen=function(t){this._status=F},o._onWebSocketClose=function(t){!0!==this._requestAbort?(this._status=j,this._onComplete&&this._onComplete(0,this._receivedLength-1)):this._requestAbort=!1},o.seek=function(t,e){this.pauseDisplay=!1;var i={cmd:r.tSeekStream,type:e,time:t};this.downloadWorker&&void 0!==this.downloadWorker&&(this.downloadWorker.postMessage(i),this.seeking=!0)},o.pause=function(){this.pauseDisplay=!0;var t={cmd:r.tPauseStream};this.downloadWorker&&void 0!==this.downloadWorker&&this.downloadWorker.postMessage(t)},o.resume=function(){this.pauseDisplay=!1;var t={cmd:r.tResumeStream};this.downloadWorker&&void 0!==this.downloadWorker&&this.downloadWorker.postMessage(t)},o.onWorkerMessage=function(t){var e=t.data;switch(e.cmd){case r.tOpenStream:var i={cmd:r.tGetTsStream,t:0};this.downloadWorker.postMessage(i);break;case r.tGetTsStreamRsp:this.getNextFileFlag=!0;break;case r.tGetTsComplete:this.playComplete=!0;break;case r.tDisconnect:i={cmd:r.tReOpenStream};this.downloadWorker.postMessage(i);break;case r.tCloseStream:e.workerId==r.DOWNLOAD_WORKER_ID?(this.downloadWorker.terminate(),this.downloadWorker=null):e.workerId==r.DECODE_WORKER_ID?(this.decodeWorker.terminate(),this.decodeWorker=null,this.soundPlayer&&(this.soundPlayer.destroy(),delete this.soundPlayer,this.soundPlayer=null),this.webGLPlayer&&this.webGLPlayer.renderVideoFrame(null,0,0)):e.workerId==r.RENDER_WORKER_ID&&(this.renderWorker.terminate(),this.renderWorker=null);break;case r.tFrameData:if(e.workerId==r.DOWNLOAD_WORKER_ID){var n=e.dat,o=this._receivedLength;this._receivedLength+=n.byteLength,this._onDataArrival&&this._onDataArrival(n,o,this._receivedLength);break}if(e.workerId==r.DECODE_WORKER_ID){if(this.pauseDisplay)break;1==e.mediaType?(this.canvas.width=e.width,this.canvas.height=e.height,this.webGLPlayer.renderVideoFrame(e.dat,e.width,e.height),this.OnUpdatePlayInfo(e.playTimeSec,e.frameNum)):2==e.mediaType&&(null==this.soundPlayer&&this.OpenAudioPlayer(e.fmt,e.ch,e.samplerate),null!=this.soundPlayer&&this.soundPlayer.play(e.dat))}break;case r.tMediaInfo:this.totalDuration=e.duration,r.setLiveStreamType(e.live);break;case r.tGetTsStream:this.pauseDisplay||this.getNextFileFlag&&(this.downloadWorker.postMessage(e),this.getNextFileFlag=!1);break;case r.tSeekStream:this.seeking=!1;break;case r.tResetMSE:this._onDataArrival&&(this._receivedLength=0,this._onDataArrival(null,e.fileSequence,0))}},o._dispatchArrayBuffer=function(t){var e=t,i=this._receivedLength;this._receivedLength+=e.byteLength,this._onDataArrival&&this._onDataArrival(e,i,this._receivedLength)},o._onWebSocketError=function(t){this._status=U;var e={code:t.code,msg:t.message};if(!this._onError)throw new C.d(e.msg);this._onError(V,e)},n}(q),at="SYNC RTSP CLIENT v2020.07.10",st=function(){function t(t,e,i,r,n){this.TAG="RtspHandler",this._ws=e,this.rtspUrl=t,this.rtspSeq=1,this.state=0,this.authType=1,this.username="",this.realm="",this.nonce="",this.authBasicStr="",this.authDigestStr="",this.videoTrack="",this.audioTrack="",this.metadataTrack="",this.contentBaseStr="",this.setupStreamNum=0,this.videoSessionId="",this.audioSessionId="",this.metadataSessionId="",this.mediaInfo={videoCodecId:0,audioCodecId:0},this.RTSP_VER_STR="RTSP/1.0",this.callbackPtr=i,this.userPtr=r,this.dataSource=n}var e=t.prototype;return e.destroy=function(){},e.getMediaInfo=function(){return this.mediaInfo},e.sendPacket=function(t){this._ws.send(t)},e.makeHeader=function(t,e){var i="";if(i=""==this.contentBaseStr?t+" "+this.rtspUrl:t+" "+this.contentBaseStr,e&&null!=e){var r=this.contentBaseStr.length;"/"!=this.contentBaseStr[r-1]?i+="/"+e:i+=e}return i+=" "+this.RTSP_VER_STR+"\r\n",i+="CSeq: "+this.rtspSeq+"\r\n",this.rtspSeq++,i},e.getLineString=function(t,e){var i=0,r="";for(i=0;i<t.length;i++){if("\r"==t[i]||"\n"==t[i]||e&&null!=e&&e==t[i]||i+1==t.length)return r;r+=t[i]}return r},e.FindStringByStr=function(t,e){var i=t.indexOf(e);return i>=0?t.substr(i):null},e.rtspParseDESCRIBE=function(t){var e="",i="",n="",o="",a="",s="",h=t.indexOf("RTSP/1.0 401 Unauthorized");if(h>=0){var u=t.indexOf("WWW-Authenticate: Digest");return u>0||(u=t.indexOf("WWW-Authenticate: Basic")),401}if((h=t.indexOf("RTSP/1.0 302"))>=0){var l="";if((h=t.indexOf("Location: "))>=0){var d=t.substring(h,t.length),f=d.indexOf("\r",0);l=d.substring(10,f)}return this.callbackPtr&&this.userPtr&&this.callbackPtr(this.userPtr,302,l,this.dataSource),302}if((h=t.indexOf("200 OK"))<0)return c.a.e(this.TAG,"DESCRIBE ERROR"),-1;var p=this.FindStringByStr(t,"m=video");if(p){if(g=this.FindStringByStr(p,"a=rtpmap")){if((b=this.getLineString(g).split(" ")).length>0){var m=b[0].substr(9);parseInt(m)}if(b.length>1)(_=b[1].split("/")).length>0&&(e=_[0])}if(v=this.FindStringByStr(p,"trackID="))c.a.w(this.TAG,"not process");else if(v=this.FindStringByStr(p,"a=control:"))(y=this.getLineString(v).split(":")).length>1&&(n=y[1])}if(p=this.FindStringByStr(t,"m=audio")){if(g=this.FindStringByStr(p,"a=rtpmap")){if((b=this.getLineString(g).split(" ")).length>0){m=b[0].substr(9);parseInt(m)}if(b.length>1)(_=b[1].split("/")).length>0&&(i=_[0])}if(v=this.FindStringByStr(p,"trackID="))c.a.w(this.TAG,"not process");else if(v=this.FindStringByStr(p,"a=control:"))(y=this.getLineString(v).split(":")).length>1&&(o=y[1])}if(p=this.FindStringByStr(t,"m=metadata")){var g,v,y;if(g=this.FindStringByStr(p,"a=rtpmap")){var b,_;if((b=this.getLineString(g).split(" ")).length>0){m=b[0].substr(9);parseInt(m)}if(b.length>1)(_=b[1].split("/")).length>0&&_[0]}if(v=this.FindStringByStr(p,"trackID="))c.a.w(this.TAG,"not process");else if(v=this.FindStringByStr(p,"a=control:"))(y=this.getLineString(v).split(":")).length>1&&(a=y[1])}(p=this.FindStringByStr(t,"Content-Base: "))&&(s=this.getLineString(p).substr(14));return"H264"==e?(this.mediaInfo.videoCodecId=7,r.setCodecTypeStr("H264")):"H265"==e&&(this.mediaInfo.videoCodecId=12,r.setCodecTypeStr("H265")),"MPEG4-GENERIC"==i?this.mediaInfo.audioCodecId=10:"PCMU"==i?this.mediaInfo.audioCodecId=1:"PCMA"==i&&(this.mediaInfo.audioCodecId=2),this.videoTrack=n,this.audioTrack=o,this.metadataTrack=a,this.contentBaseStr=s,0},e.rtspParseSETUP=function(t){var e="0",i=this.FindStringByStr(t,"Session:");if(i){var r=this.getLineString(i).split(";");if(r.length>0)e=r[0].substr(9);1==this.setupStreamNum?this.videoSessionId=e:2==this.setupStreamNum?this.audioSessionId=e:3==this.setupStreamNum&&(this.metadataSessionId=e)}},e.rtspParsePLAY=function(t){var e="0";if(t.indexOf("200 OK")<0)return c.a.e(this.TAG,"PLAY ERROR: "+t),-1;var i=this.FindStringByStr(t,"Session:");if(i){var r=this.getLineString(i).split(";");if(r.length>0)e=r[0].substr(9);this.videoSessionId=e}this.state=7},e.sendOptions=function(){var t=this.makeHeader("OPTIONS",null);1==this.authType?t+="WWW-Authorization: Basic "+this.authBasicStr+"\r\n":2==this.authType&&(t+="WWW-Authorization: Digest ",t+='username = "'+this.username+'",',t+='realm = "'+this.realm+'",',t+='nonce = "'+this.nonce+'",',t+='uri = "'+this.rtspUrl+'",',t+='response = "'+this.authDigestStr+'"\r\n'),t+="\r\n",this.sendPacket(t)},e.sendDescribe=function(){var t=this.makeHeader("DESCRIBE",null);1==this.authType?t+="WWW-Authorization: Basic "+this.authBasicStr+"\r\n":2==this.authType&&(t+="WWW-Authorization: Digest ",t+='username = "'+this.username+'",',t+='realm = "'+this.realm+'",',t+='nonce = "'+this.nonce+'",',t+='uri = "'+this.rtspUrl+'",',t+='response = "'+this.authDigestStr+'"\r\n'),t+="Accept: application/sdp\r\n",t+="User-Agent: "+at+"\r\n",t+="\r\n",this.sendPacket(t),this.state=2},e.sendSetup=function(t){var e=this.makeHeader("SETUP",t);""!=this.videoSessionId&&(e+="Session: "+this.videoSessionId+"\r\n"),e+="User-Agent: "+at+"\r\n",t==this.videoTrack?(e+="Transport: RTP/AVP/TCP;unicast;interleaved=0-1\r\n\r\n",this.audioTrack,this.setupStreamNum++):t==this.audioTrack?(e+="Transport: RTP/AVP/TCP;unicast;interleaved=2-3\r\n\r\n",this.setupStreamNum++):t==this.metadataTrack&&(e+="Transport: RTP/AVP/TCP;unicast;interleaved=4-5\r\n\r\n",this.setupStreamNum++),this.state=3,this.sendPacket(e)},e.sendPlay=function(){var t=this.makeHeader("PLAY",null);t+="Session: "+this.videoSessionId+"\r\n",1==this.authType?t+="WWW-Authorization: Basic "+this.authBasicStr+"\r\n":2==this.authType&&(t+="WWW-Authorization: Digest ",t+='username = "'+this.username+'",',t+='realm = "'+this.realm+'",',t+='nonce = "'+this.nonce+'",',t+='uri = "'+this.rtspUrl+'",',t+='response = "'+this.authDigestStr+'"\r\n'),t+="Range: npt=0.000-\r\n\r\n",this.state=4,this.sendPacket(t)},e.sendPause=function(){var t=this.makeHeader("PAUSE",null);t+="Session: "+this.videoSessionId+"\r\n",1==this.authType?t+="WWW-Authorization: Basic "+this.authBasicStr+"\r\n":2==this.authType&&(t+="WWW-Authorization: Digest ",t+='username = "'+this.username+'",',t+='realm = "'+this.realm+'",',t+='nonce = "'+this.nonce+'",',t+='uri = "'+this.rtspUrl+'",',t+='response = "'+this.authDigestStr+'"\r\n'),this.state=5,this.sendPacket(t)},e.sendScale=function(t){var e=this.makeHeader("PLAY",null);e+="Session: "+this.videoSessionId+"\r\n",1==this.authType?e+="WWW-Authorization: Basic "+this.authBasicStr+"\r\n":2==this.authType&&(e+="WWW-Authorization: Digest ",e+='username = "'+this.username+'",',e+='realm = "'+this.realm+'",',e+='nonce = "'+this.nonce+'",',e+='uri = "'+this.rtspUrl+'",',e+='response = "'+this.authDigestStr+'"\r\n'),e+="Scale: "+t+"\r\n",e+="Range: npt=0.000-\r\n\r\n",this.state=4,this.sendPacket(e)},e.abort=function(){var t=this._ws;!t||0!==t.readyState&&1!==t.readyState||(this._requestAbort=!0,t.close()),this._ws=null,this._status=LoaderStatus.kComplete},e._onWebSocketOpen=function(t){this._status=LoaderStatus.kBuffering,c.a.e(this.TAG,"_onWebSocketOpen: "+t.target.url)},e._onWebSocketClose=function(t){c.a.e(this.TAG,"onWebSocketClose"),!0!==this._requestAbort?(this._status=LoaderStatus.kComplete,this._onComplete&&this._onComplete(-1,-1)):this._requestAbort=!1},e._onWebSocketMessage=function(t){var e=this;if(t.data instanceof ArrayBuffer)this._dispatchArrayBuffer(t.data);else if(t.data instanceof Blob){var i=new FileReader;i.onload=function(){e._dispatchArrayBuffer(i.result)},i.readAsArrayBuffer(t.data)}else{this._status=LoaderStatus.kError;var r={code:-1,msg:"Unsupported WebSocket message type: "+t.data.constructor.name};if(!this._onError)throw new C.d(r.msg);this._onError(LoaderErrors.EXCEPTION,r)}},e._dispatchArrayBuffer=function(t){var e=t,i=this._receivedLength;this._receivedLength+=e.byteLength,this._onDataArrival&&this._onDataArrival(e,i,this._receivedLength),this._triggerReconnectSuccessNotify&&(this._triggerReconnectSuccessNotify=!1,this._onDataArrival&&(this._onDataArrival(null,this._retryConnectTimes,0),this._retryConnectTimes++))},e._onWebSocketError=function(t){c.a.e(this.TAG,"_onWebSocketError: "+t),this._status=LoaderStatus.kError;var e={code:t.code,msg:t.message};if(!this._onError)throw new C.d(e.msg);this._onError(LoaderErrors.EXCEPTION,e)},e.parseResponseStr=function(t){2==this.state?0==this.rtspParseDESCRIBE(t)&&this.sendSetup(this.videoTrack):3==this.state?(this.rtspParseSETUP(t),this.setupStreamNum<2&&""!=this.audioTrack?this.sendSetup(this.audioTrack):this.setupStreamNum<3&&""!=this.metadataTrack?this.sendSetup(this.metadataTrack):this.sendPlay()):4==this.state?this.rtspParsePLAY(t):7==this.state||this.state},t}();function ht(t,e){return ht=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},ht(t,e)}var ut=function(t){var e,i;function r(){var e;return(e=t.call(this,"RtspStream-loader")||this).TAG="RtspStreamLoader",e._needStash=!0,e._ws=null,e._RtspHandler=null,e._requestAbort=!1,e._receivedLength=0,e._retryConnectTimes=0,e._triggerReconnectingNotify=!0,e._triggerReconnectSuccessNotify=!0,e._procMediaInfo=!0,e._heartbeatTime=0,e}i=t,(e=r).prototype=Object.create(i.prototype),e.prototype.constructor=e,ht(e,i),r.isSupported=function(){try{return void 0!==self.WebSocket}catch(t){return!1}};var n=r.prototype;return n.destroy=function(){this._ws&&this.abort(),t.prototype.destroy.call(this)},n.rtspCallbackEvent=function(t,e,i,r){t.abort(),r.url=i,t.open(r)},n.open=function(t){try{this._retryConnectTimes++,this._triggerReconnectingNotify&&(this._triggerReconnectingNotify=!1,this._onDataArrival&&this._onDataArrival(null,-this._retryConnectTimes,0)),this._triggerReconnectSuccessNotify=!0;var e=t.url.replace("rtsp","ws"),i=this._ws=new self.WebSocket(e);this._RtspHandler=new st(t.url,i,this.rtspCallbackEvent,this,t),i.onopen=this._onWebSocketOpen.bind(this),i.onclose=this._onWebSocketClose.bind(this),i.onmessage=this._onWebSocketMessage.bind(this),i.onerror=this._onWebSocketError.bind(this),this._status=N}catch(t){this._status=U;var r={code:t.code,msg:t.message};if(!this._onError)throw new C.d(r.msg);this._onError(V,r)}},n.abort=function(){var t=this._ws;!t||0!==t.readyState&&1!==t.readyState||(this._requestAbort=!0,t.close()),this._ws=null,this._status=j},n.pause=function(){this._RtspHandler&&this._RtspHandler.sendPause()},n.resume=function(){this._RtspHandler&&this._RtspHandler.sendPlay()},n.scale=function(t){this._RtspHandler&&this._RtspHandler.sendScale(t)},n._onWebSocketOpen=function(t){this._status=F,this._RtspHandler.sendDescribe()},n._onWebSocketClose=function(t){c.a.e(this.TAG,"onWebSocketClose"),!0!==this._requestAbort?(this._status=j,this._onComplete&&this._onComplete(-1,-1)):this._requestAbort=!1},n._onWebSocketMessage=function(t){var e=this;if(t.data instanceof ArrayBuffer)this._dispatchArrayBuffer(t.data);else if(t.data instanceof Blob){var i=new FileReader;i.onload=function(){e._dispatchArrayBuffer(i.result)},i.readAsArrayBuffer(t.data)}else if(t.data instanceof String)c.a.d(this.TAG,"response:"+t.data);else if("message"==t.type)c.a.d(this.TAG,"response message:"+t.data),this._RtspHandler.parseResponseStr(t.data);else{this._status=U;var r={code:-1,msg:"Unsupported WebSocket message type: "+t.data.constructor.name};if(!this._onError)throw new C.d(r.msg);this._onError(V,r)}},n._dispatchArrayBuffer=function(t){var e=t,i=this._receivedLength;if(this._receivedLength+=e.byteLength,this._procMediaInfo){this._procMediaInfo=!1;var r=this._RtspHandler.getMediaInfo();this._onDataArrival&&this._onDataArrival(r,i,1)}this._heartbeatTime<1&&(this._heartbeatTime=Date.parse(new Date));var n=Date.parse(new Date);(n-this._heartbeatTime)/1e3>10&&(this._heartbeatTime=n),this._onDataArrival&&this._onDataArrival(e,i,this._receivedLength),this._triggerReconnectSuccessNotify&&(this._triggerReconnectSuccessNotify=!1,this._onDataArrival&&(this._onDataArrival(null,this._retryConnectTimes,0),this._retryConnectTimes++))},n._onWebSocketError=function(t){c.a.e(this.TAG,"_onWebSocketError: "+t),this._status=U;var e={code:t.code,msg:t.message};if(!this._onError)throw new C.d(e.msg);this._onError(V,e)},r}(q);function lt(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var dt=function(){function t(t,e,i,r){this.TAG="IOController",this._config=e,this._extraData=i,this._stashInitialSize=393216,null!=e.stashInitialSize&&e.stashInitialSize>0&&(this._stashInitialSize=e.stashInitialSize),this._stashUsed=0,this._stashSize=this._stashInitialSize,this._bufferSize=3145728,this._stashBuffer=new ArrayBuffer(this._bufferSize),this._stashByteStart=0,this._enableStash=!0,!1===e.enableStashBuffer&&(this._enableStash=!1),"soft"===e.decodeType&&(this._enableStash=!1),this._loader=null,this._loaderClass=null,this._seekHandler=null,this._dataSource=t,this._isWebSocketURL=/wss?:\/\/(.+?)/.test(t.url),this._refTotalLength=t.filesize?t.filesize:null,this._totalLength=this._refTotalLength,this._fullRequestFlag=!1,this._currentRange=null,this._redirectedURL=null,this._speedNormalized=0,this._speedSampler=new B,this._speedNormalizeList=[64,128,256,384,512,768,1024,1536,2048,3072,4096],this._isEarlyEofReconnecting=!1,this._paused=!1,this._resumeFrom=0,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._selectSeekHandler(),this._selectLoader(),this._createLoader(r)}var e,i,r,n=t.prototype;return n.destroy=function(){this._loader.isWorking()&&this._loader.abort(),this._stashBuffer&&(delete this._stashBuffer,this._stashBuffer=null),this._loader.destroy(),this._loader=null,this._loaderClass=null,this._dataSource=null,this._stashBuffer=null,this._stashUsed=this._stashSize=this._bufferSize=this._stashByteStart=0,this._currentRange=null,this._speedSampler=null,this._isEarlyEofReconnecting=!1,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._extraData=null},n.isWorking=function(){return this._loader&&this._loader.isWorking()&&!this._paused},n.isPaused=function(){return this._paused},n._selectSeekHandler=function(){var t=this._config;if("range"===t.seekType)this._seekHandler=new it(this._config.rangeLoadZeroStart);else if("param"===t.seekType){var e=t.seekParamStart||"bstart",i=t.seekParamEnd||"bend";this._seekHandler=new rt(e,i)}else{if("custom"!==t.seekType)throw new C.b("Invalid seekType in config: "+t.seekType);if("function"!=typeof t.customSeekHandler)throw new C.b("Custom seekType specified in config but invalid customSeekHandler!");this._seekHandler=new t.customSeekHandler}},n._selectLoader=function(){if(null!=this._config.customLoader)this._loaderClass=this._config.customLoader;else if("m3u8"===this._config.streamType)this._loaderClass=ot;else if("rtsp"===this._config.streamType)this._loaderClass=ut;else if(this._isWebSocketURL)this._loaderClass=et;else if(Z.isSupported())this._loaderClass=Z;else if(Q.isSupported())this._loaderClass=Q;else{if(!$.isSupported())throw new C.d("Your browser doesn't support xhr with arraybuffer responseType!");this._loaderClass=$}},n._IsM3u8Loader=function(){return this._loaderClass==ot},n._GetM3u8Loader=function(){return this._loaderClass==ot?this._loader:null},n._IsRtspLoader=function(){return this._loaderClass==ut},n._createLoader=function(t){this._loader=new this._loaderClass(this._seekHandler,this._config),!1===this._loader.needStashBuffer&&(this._enableStash=!1),this._loaderClass==ot&&this._loader.setStartPlaySecs(t),this._loader.onContentLengthKnown=this._onContentLengthKnown.bind(this),this._loader.onURLRedirect=this._onURLRedirect.bind(this),this._loader.onDataArrival=this._onLoaderChunkArrival.bind(this),this._loader.onComplete=this._onLoaderComplete.bind(this),this._loader.onError=this._onLoaderError.bind(this)},n.open=function(t){this._currentRange={from:0,to:-1},t&&(this._currentRange.from=t),this._speedSampler.reset(),t||(this._fullRequestFlag=!0),this._loader.open(this._dataSource,Object.assign({},this._currentRange))},n.abort=function(){this._loader.abort(),this._paused&&(this._paused=!1,this._resumeFrom=0)},n.pause=function(){this._IsRtspLoader()?this._loader&&this._loader.pause():this.isWorking()&&(this._loader.abort(),0!==this._stashUsed?(this._resumeFrom=this._stashByteStart,this._currentRange.to=this._stashByteStart-1):this._resumeFrom=this._currentRange.to+1,this._stashUsed=0,this._stashByteStart=0,this._paused=!0)},n.resume=function(){if(this._IsRtspLoader())this._loader&&this._loader.resume();else if(this._paused){this._paused=!1;var t=this._resumeFrom;this._resumeFrom=0,this._internalSeek(t,!0)}},n.rtspScale=function(t){this._IsRtspLoader()&&this._loader&&this._loader.scale(t)},n.seek=function(t){this._paused=!1,this._stashUsed=0,this._stashByteStart=0,this._internalSeek(t,!0)},n._internalSeek=function(t,e){this._loader.isWorking()&&this._loader.abort(),this._flushStashBuffer(e),this._loader.destroy(),this._loader=null;var i={from:t,to:-1};this._currentRange={from:i.from,to:-1},this._speedSampler.reset(),this._stashSize=this._stashInitialSize,this._createLoader(),this._loader.open(this._dataSource,i),this._onSeeked&&this._onSeeked()},n.updateUrl=function(t){if(!t||"string"!=typeof t||0===t.length)throw new C.b("Url must be a non-empty string!");this._dataSource.url=t},n._expandBuffer=function(t){for(var e=this._stashSize;e+1048576<t;)e*=2;if((e+=1048576)!==this._bufferSize){var i=new ArrayBuffer(e);if(this._stashUsed>0){var r=new Uint8Array(this._stashBuffer,0,this._stashUsed);new Uint8Array(i,0,e).set(r,0)}this._stashBuffer&&(delete this._stashBuffer,this._stashBuffer=null),this._stashBuffer=i,this._bufferSize=e}},n._normalizeSpeed=function(t){var e=this._speedNormalizeList,i=e.length-1,r=0,n=0,o=i;if(t<e[0])return e[0];for(;n<=o;){if((r=n+Math.floor((o-n)/2))===i||t>=e[r]&&t<e[r+1])return e[r];e[r]<t?n=r+1:o=r-1}},n._adjustStashSize=function(t){var e=0;(e=this._config.isLive||t<512?t:t>=512&&t<=1024?Math.floor(1.5*t):2*t)>8192&&(e=8192);var i=1024*e+1048576;this._bufferSize<i&&this._expandBuffer(i),this._stashSize=1024*e},n._dispatchChunks=function(t,e){return null===t?this._IsM3u8Loader()?void(e>1&&this._onComplete&&this._onComplete(-1)):this._onDataArrival(t,e):(this._currentRange.to=e+t.byteLength-1,this._onDataArrival(t,e))},n._onURLRedirect=function(t){this._redirectedURL=t,this._onRedirect&&this._onRedirect(t)},n._onContentLengthKnown=function(t){t&&this._fullRequestFlag&&(this._totalLength=t,this._fullRequestFlag=!1)},n._onLoaderChunkArrival=function(t,e,i){if(!this._onDataArrival)throw new C.a("IOController: No existing consumer (onDataArrival) callback!");if(!this._paused)if(this._isEarlyEofReconnecting&&(this._isEarlyEofReconnecting=!1,this._onRecoveredEarlyEof&&this._onRecoveredEarlyEof()),null===t&&i<1)this._dispatchChunks(t,e);else{this._speedSampler.addBytes(t.byteLength);var r=this._speedSampler.lastSecondKBps;if(0!==r){var n=this._normalizeSpeed(r);this._speedNormalized!==n&&(this._speedNormalized=n,this._adjustStashSize(n))}if(this._enableStash)if(0===this._stashUsed&&0===this._stashByteStart&&(this._stashByteStart=e),this._stashUsed+t.byteLength<=this._stashSize){new Uint8Array(this._stashBuffer,0,this._stashSize).set(new Uint8Array(t),this._stashUsed),this._stashUsed+=t.byteLength}else{var o=new Uint8Array(this._stashBuffer,0,this._bufferSize);if(this._stashUsed>0){var a=this._stashBuffer.slice(0,this._stashUsed),s=this._dispatchChunks(a,this._stashByteStart);if(s<a.byteLength){if(s>0){var h=new Uint8Array(a,s);o.set(h,0),this._stashUsed=h.byteLength,this._stashByteStart+=s}}else this._stashUsed=0,this._stashByteStart+=s;this._stashUsed+t.byteLength>this._bufferSize&&(this._expandBuffer(this._stashUsed+t.byteLength),o=new Uint8Array(this._stashBuffer,0,this._bufferSize)),o.set(new Uint8Array(t),this._stashUsed),this._stashUsed+=t.byteLength}else{var u=this._dispatchChunks(t,e);if(u<t.byteLength){var l=t.byteLength-u;l>this._bufferSize&&(this._expandBuffer(l),o=new Uint8Array(this._stashBuffer,0,this._bufferSize)),o.set(new Uint8Array(t,u),0),this._stashUsed+=l,this._stashByteStart=e+u}}}else if(0===this._stashUsed){var d=this._dispatchChunks(t,e);if(d<t.byteLength){var f=t.byteLength-d;f>this._bufferSize&&this._expandBuffer(f),new Uint8Array(this._stashBuffer,0,this._bufferSize).set(new Uint8Array(t,d),0),this._stashUsed+=f,this._stashByteStart=e+d}}else{this._stashUsed+t.byteLength>this._bufferSize&&(c.a.w(this.TAG,"_expandBuffer... "+(this._stashUsed+t.byteLength)),this._expandBuffer(this._stashUsed+t.byteLength));var p=new Uint8Array(this._stashBuffer,0,this._bufferSize);p.set(new Uint8Array(t),this._stashUsed),this._stashUsed+=t.byteLength;var m=this._dispatchChunks(this._stashBuffer.slice(0,this._stashUsed),this._stashByteStart);if(m<this._stashUsed&&m>0){var g=new Uint8Array(this._stashBuffer,m);p.set(g,0)}this._stashUsed-=m,this._stashByteStart+=m}}},n._flushStashBuffer=function(t){if(this._stashUsed>0){var e=this._stashBuffer.slice(0,this._stashUsed),i=this._dispatchChunks(e,this._stashByteStart),r=e.byteLength-i;if(i<e.byteLength){if(!t){if(i>0){var n=new Uint8Array(this._stashBuffer,0,this._bufferSize),o=new Uint8Array(e,i);n.set(o,0),this._stashUsed=o.byteLength,this._stashByteStart+=i}return 0}c.a.w(this.TAG,r+" bytes unconsumed data remain when flush buffer, dropped")}return this._stashUsed=0,this._stashByteStart=0,r}return 0},n._onLoaderComplete=function(t,e){this._flushStashBuffer(!0),t!=e||-1!=e?this._onComplete&&this._onComplete(this._extraData):this._onComplete&&this._onComplete(-1)},n._onLoaderError=function(t,e){if(c.a.e(this.TAG,"Loader error, code = "+e.code+", msg = "+e.msg),this._flushStashBuffer(!1),this._isEarlyEofReconnecting&&(this._isEarlyEofReconnecting=!1,t=G),t===z){if(!this._config.isLive&&this._totalLength){var i=this._currentRange.to+1;return void(i<this._totalLength&&(c.a.w(this.TAG,"Connection lost, trying reconnect..."),this._isEarlyEofReconnecting=!0,this._internalSeek(i,!1)))}t=G}if(!this._onError)throw new C.d("IOException: "+e.msg);this._onError(t,e)},e=t,(i=[{key:"status",get:function(){return this._loader.status}},{key:"extraData",get:function(){return this._extraData},set:function(t){this._extraData=t}},{key:"onDataArrival",get:function(){return this._onDataArrival},set:function(t){this._onDataArrival=t}},{key:"onSeeked",get:function(){return this._onSeeked},set:function(t){this._onSeeked=t}},{key:"onError",get:function(){return this._onError},set:function(t){this._onError=t}},{key:"onComplete",get:function(){return this._onComplete},set:function(t){this._onComplete=t}},{key:"onRedirect",get:function(){return this._onRedirect},set:function(t){this._onRedirect=t}},{key:"onRecoveredEarlyEof",get:function(){return this._onRecoveredEarlyEof},set:function(t){this._onRecoveredEarlyEof=t}},{key:"currentURL",get:function(){return this._dataSource.url}},{key:"hasRedirect",get:function(){return null!=this._redirectedURL||null!=this._dataSource.redirectedURL}},{key:"currentRedirectedURL",get:function(){return this._redirectedURL||this._dataSource.redirectedURL}},{key:"currentSpeed",get:function(){return this._loaderClass===$?this._loader.currentSpeed:this._speedSampler.lastSecondKBps}},{key:"loaderType",get:function(){return this._loader.type}}])&<(e.prototype,i),r&<(e,r),Object.defineProperty(e,"prototype",{writable:!1}),t}(),ft={IO_ERROR:"io_error",DEMUX_ERROR:"demux_error",INIT_SEGMENT:"init_segment",MEDIA_SEGMENT:"media_segment",LOADING_COMPLETE:"loading_complete",RECOVERED_EARLY_EOF:"recovered_early_eof",MEDIA_INFO:"media_info",METADATA_ARRIVED:"metadata_arrived",SCRIPTDATA_ARRIVED:"scriptdata_arrived",STATISTICS_INFO:"statistics_info",RECOMMEND_SEEKPOINT:"recommend_seekpoint",RECONNECT_ING:"reconnect_ing",RECONNECT_SUCCESS:"reconnect_success"},ct=i(77),pt=i(23);function mt(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function gt(t,e){return t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3]}var vt=function(){function t(t,e,i,r,n,o,a){var s;this.TAG="RTSPDemuxer",this._config=e,this._onError=null,this._onMediaInfo=null,this._onMetaDataArrived=null,this._onScriptDataArrived=null,this._onTrackMetadata=null,this._onDataAvailable=null,this._dataOffset=t.dataOffset,this._firstParse=!0,this._dispatch=!1,this._hasAudio=t.hasAudioTrack,this._hasVideo=t.hasVideoTrack,this._hasAudioFlagOverrided=!1,this._hasVideoFlagOverrided=!1,this._audioInitialMetadataDispatched=!1,this._videoInitialMetadataDispatched=!1,this._initVideoMetadata=!1,this._initAudioMetadata=!1,this._mediaInfo=new _.a,this._mediaInfo.hasAudio=this._hasAudio,this._mediaInfo.hasVideo=this._hasVideo,this._metadata=null,this._audioMetadata=null,this._videoMetadata=null,this._naluLengthSize=4,this._timestampBase=0,this._timescale=1e3,this._duration=0,this._durationOverrided=!1,this._referenceFrameRate={fixed:!0,fps:23.976,fps_num:23976,fps_den:1e3},this._flvSoundRateTable=[5500,11025,22050,44100,48e3],this._mpegSamplingRates=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],this._mpegAudioV10SampleRateTable=[44100,48e3,32e3,0],this._mpegAudioV20SampleRateTable=[22050,24e3,16e3,0],this._mpegAudioV25SampleRateTable=[11025,12e3,8e3,0],this._mpegAudioL1BitRateTable=[0,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1],this._mpegAudioL2BitRateTable=[0,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1],this._mpegAudioL3BitRateTable=[0,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],this._videoTrack={type:"video",id:1,sequenceNumber:0,samples:[],length:0},this._audioTrack={type:"audio",id:2,sequenceNumber:0,samples:[],length:0},this._littleEndian=(s=new ArrayBuffer(2),new DataView(s).setInt16(0,256,!0),256===new Int16Array(s)[0]),this.videoCodecId=t.videoCodecId,this.audioCodecId=t.audioCodecId,this._AVC_SPS=null,this._AVC_PPS=null,this._HEVC_VPS=null,this._HEVC_SPS=null,this._HEVC_PPS=null,this._StartCode=[0,0,0,1],this._SampleRate=8e3,this._ChannelNum=1,this._AVC_Config=null,this._pause=!1,this._callbackInitFlag=!1,this._callbackMediaDataFunc=i,this._callbackMediaDataUserPtr=r,this._callbackPlaybackTimePtr=n,this._callbackPlaybackTimeUserPtr=o,this.getVideoInfoCallbackFunc=a,this._debugProcCount=0,this.ptsInterval=40,this.packetData=null,this.packetPos=0,this.frameData=new Uint8Array(2097152),this.fullFrameData=null,this.fullFramePos=0,this.snapshotCount=0,this.framePos=0,this.lastTimestamp=0,this.currentIsKeyFrame=!1,this.reset=0,this.findKeyframe=!0,this.syncVideoPts=0,this.syncAudioPts=0,this.startVideoPts=0,this.startAudioPts=0,this.lastNALType=0,this._fileposition=0,this._DebugBuf=null,this._DebugBufPos=0}var e,i,r,n=t.prototype;return n.destroy=function(){this._mediaInfo=null,this._metadata=null,this._audioMetadata=null,this._videoMetadata=null,this._videoTrack=null,this._audioTrack=null,this._onError=null,this._onMediaInfo=null,this._onMetaDataArrived=null,this._onScriptDataArrived=null,this._onTrackMetadata=null,this._onDataAvailable=null,this.packetData&&(delete this.packetData,this.packetData=null),this.frameData&&(delete this.frameData,this.frameData=null),this.fullFrameData&&(delete this.fullFrameData,this.fullFrameData=null)},t.probe=function(t){if(t.videoCodecId>0)return{match:!0,consumed:0,dataOffset:0,hasAudioTrack:t.audioCodecId>0,hasVideoTrack:t.videoCodecId>0,videoCodecId:t.videoCodecId,audioCodecId:t.audioCodecId};var e=new Uint8Array(t),i={match:!1};if("$"!==e[0])return i;var r=(4&e[4])>>>2!=0,n=0!=(1&e[4]),o=gt(e,5);return o<9?i:{match:!0,consumed:o,dataOffset:o,hasAudioTrack:r,hasVideoTrack:n}},n.bindDataSource=function(t){return t.onDataArrival=this.parseChunks.bind(this),this},n.resetMediaInfo=function(){this._mediaInfo=new _.a},n.pause=function(){this._pause=!0},n.resume=function(){this._pause=!1},n._onDataAvailableToSoftwareDecodeVideo=function(t,e){var i=e.samples,r=-1;for(i.length>1&&(r=0);i.length;){for(var n=i.shift(),o=0,a=0;a<n.units.length;a++)o+=n.units[a].data.length;for(var s=0,h=new Uint8Array(o);n.units.length;){var u=n.units.shift();27==t&&(u.data[0]=0,u.data[1]=0,u.data[2]=0,u.data[3]=1),h.set(u.data,s),s+=u.data.length}this._callbackMediaDataFunc&&(r>=0&&r++,this._callbackMediaDataFunc(this._callbackMediaDataUserPtr,!0,1,t,n.isKeyframe,h,o,n.pts,0,0))}},n._onDataAvailableToSoftwareDecodeAudio=function(t,e){var i=e.samples,r=-1;for(i.length>1&&(r=0);i.length;){var n=i.shift();this._callbackMediaDataFunc&&(r>=0&&r++,this._callbackMediaDataFunc(this._callbackMediaDataUserPtr,!0,2,t,0,n.unit,n.length,this._SampleRate,this._ChannelNum,this._SampleRate>=44100?32:16))}},n._isInitialMetadataDispatched=function(){return this._hasAudio&&this._hasVideo?this._audioInitialMetadataDispatched&&this._videoInitialMetadataDispatched:this._hasAudio&&!this._hasVideo?this._audioInitialMetadataDispatched:!(this._hasAudio||!this._hasVideo)&&this._videoInitialMetadataDispatched},n.procH264Packet=function(t,e){var i=[0,0,0,1],r=0,n=!1,o=31&t[0];o>=1&&o<=23&&(5==o&&(n=!0),o=1);var a={length:0,keyframe:n,endBit:0};switch(o){case 0:default:break;case 1:this.frameData.set(i,this.framePos),this.framePos+=4,this.frameData.set(t,this.framePos),this.framePos+=t.length,a.length=4+t.length,this._AVC_SPS&&this._AVC_PPS&&a.length>this._AVC_SPS.length+this._AVC_PPS.length+8&&(a.endBit=1);break;case 24:r++;for(var s=0;s<2;s++){var h=this.framePos-r;do{t[r],t[r+1];r+=2,h-=2}while(h>2)}break;case 25:case 26:case 27:case 29:c.a.e(this.TAG,"Unhandled type("+o+") (See RFC for implementation details");break;case 28:var u=o,l=t[++r],d=l>>7,f=(64&l)>>6,p=31&l;o;var m=224&u|31&l;if(r++,5!=p&&6!=p||(a.keyframe=!0),1==f){var g=t.subarray(r);this.frameData.set(g,this.framePos),this.framePos+=g.length,a.endBit=1}else if(1==d){var v=224&t[0]|31&t[1];this._AVC_SPS&&this._AVC_PPS&&this._AVC_SPS[4]!=v&&5==m&&(this.frameData[4]!=this._AVC_SPS[4]||this.frameData[4]==this._AVC_SPS[4]&&this.framePos<1)&&(this.frameData.set(this._AVC_SPS,this._AVC_SPS.length),this.framePos+=this._AVC_SPS.length,this.frameData.set(this._AVC_PPS,this._AVC_PPS.length),this.framePos+=this._AVC_PPS.length),this.frameData.set(i,this.framePos),this.framePos+=4,this.frameData[this.framePos]=224&t[0]|31&t[1],this.framePos+=1;var y=t.subarray(2,t.length);this.frameData.set(y,this.framePos),this.framePos+=y.length}else{var b=t.subarray(2);this.frameData.set(b,this.framePos),this.framePos+=b.length}break;case 30:case 31:c.a.e(this.TAG,"Undefined type: "+o)}return a},n.procH264NALHeader=function(t){var e=31&t[0];if(this.lastNALType=e,(7==e||8==e||6==e||5==e)&&t.length<256){var i=[0,0,0,1];if(this.currentIsKeyFrame=!0,7==e){if(!this._initVideoMetadata){this._AVC_Config=pt.a.parseSPS(t);var r=this._AVC_Config,n="avc1.";if(r)for(var o=t.subarray(1,4),a=0;a<3;a++){var s=o[a].toString(16);s.length<2&&(s="0"+s),n+=s}null==this._AVC_SPS&&(this._AVC_SPS=new Uint8Array(t.length+4),this._AVC_SPS.set(i,0),this._AVC_SPS.set(t,4));var h=this._videoMetadata,u=this._videoTrack;if(h?void 0!==h.avcc&&c.a.w(this.TAG,"Found another AVCDecoderConfigurationRecord!"):(!1===this._hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=!0,this._mediaInfo.hasVideo=!0),(h=this._videoMetadata={}).type="video",h.id=u.id,h.timescale=this._timescale,h.duration=this._duration),h.codecWidth=r.codec_size.width,h.codecHeight=r.codec_size.height,h.presentWidth=r.present_size.width,h.presentHeight=r.present_size.height,this.getVideoInfoCallbackFunc&&null!=this.getVideoInfoCallbackFunc&&this.getVideoInfoCallbackFunc(this._callbackPlaybackTimeUserPtr,"H264",h.codecWidth,h.codecHeight),h.profile=r.profile_string,h.level=r.level_string,h.bitDepth=r.bit_depth,h.chromaFormat=r.chroma_format,h.sarRatio=r.sar_ratio,h.frameRate=r.frame_rate,!1!==r.frame_rate.fixed&&0!==r.frame_rate.fps_num&&0!==r.frame_rate.fps_den||(h.frameRate=this._referenceFrameRate),void 0!==h.frameRate){var l=h.frameRate.fps_den,d=h.frameRate.fps_num;h.refSampleDuration=h.timescale*(l/d)}h.codec=n;var f=this._mediaInfo;f.width=h.codecWidth,f.height=h.codecHeight,void 0!==h.frameRate&&(f.fps=h.frameRate.fps),f.profile=h.profile,f.level=h.level,f.refFrames=r.ref_frames,f.chromaFormat=r.chroma_format_string,f.sarNum=h.sarRatio.width,f.sarDen=h.sarRatio.height,f.videoCodec=n,f.hasAudio?null!=f.audioCodec&&(f.mimeType='video/x-flv; codecs="'+f.videoCodec+","+f.audioCodec+'"'):f.mimeType='video/x-flv; codecs="'+f.videoCodec+'"',f.isComplete()&&this._onMediaInfo(f)}}else if(8==e&&(null==this._AVC_PPS&&(this._AVC_PPS=new Uint8Array(t.length+4),this._AVC_PPS.set(i,0),this._AVC_PPS.set(t,4)),!this._initVideoMetadata)){var p=this._videoMetadata;if(null==p.avcc){var m=0,g=this._AVC_SPS.length-4+8+1+2+(this._AVC_PPS.length-4);p.avcc=new Uint8Array(g+1),p.avcc[0]=1,p.avcc[1]=this._AVC_SPS[5],p.avcc[2]=this._AVC_SPS[6],p.avcc[3]=this._AVC_SPS[7],p.avcc[4]=255,p.avcc[5]=225,m=6,p.avcc[m++]=this._AVC_SPS.length-4>>8,p.avcc[m++]=this._AVC_SPS.length-4&255;var v=this._AVC_SPS.subarray(4,this._AVC_SPS.length);p.avcc.set(v,m),m+=v.length,p.avcc[m++]=1,p.avcc[m++]=this._AVC_PPS.length-4>>8,p.avcc[m++]=this._AVC_PPS.length-4&255;var y=this._AVC_PPS.subarray(4,this._AVC_PPS.length);p.avcc.set(y,m),m+=y.length,p.avcc[g]=1}this._onTrackMetadata("video",p),this._initVideoMetadata=!0}}},n.procH265Packet=function(t,e,i){var r=[0,0,0,1],n=t[0]>>1&63,o={length:0,keyframe:!1,endBit:0};if(49==n){var a=t[2],s=128&a,h=64&a,u=(n=63&a)<<1;16!=n&&17!=n&&18!=n&&19!=n&&20!=n&&21!=n&&39!=n||(o.keyframe=!0);var l=3;0!=s&&(this.framePos=0,this.frameData.set(r,this.framePos),this.framePos+=4,t[1]=u,t[2]=1,l=1),0!=h&&(o.endBit=1);var d=t.subarray(l);this.frameData.set(d,this.framePos),this.framePos+=d.length,o.length=this.framePos,38==this.frameData[4]&&(o.keyframe=!0)}else if(48==n);else if(1==n||19==n||32==n||33==n||34==n||39==n){var f=!1;if(32==n)null==this._AVC_VPS&&(this._AVC_VPS=new Uint8Array(t.length+4)),this._AVC_VPS.set(r,0),this._AVC_VPS.set(t,4),f=!0;else if(33==n)null==this._AVC_SPS&&(this._AVC_SPS=new Uint8Array(t.length+4)),this._AVC_SPS.set(r,0),this._AVC_SPS.set(t,4),f=!0;else if(34==n)null==this._AVC_PPS&&(this._AVC_PPS=new Uint8Array(t.length+4)),this._AVC_PPS.set(r,0),this._AVC_PPS.set(t,4),f=!0;else if(39==n);else if(1==n){this.framePos=0,this.frameData.set(r,this.framePos),this.framePos+=4;var c=t.subarray(0);this.frameData.set(c,this.framePos),this.framePos+=c.length,o.length=this.framePos,o.endBit=1}f&&(o.length=4+t.length,o.keyframe=!0)}return o},n.uint8arrayToBase64=function(t){for(var e,i=0,r=t.length,n="";i<r;)e=t.subarray(i,Math.min(i+32768,r)),n+=String.fromCharCode.apply(null,e),i+=32768;return btoa(n)},n.parseVideoRTPPacket=function(t){var e=t.length,i=0,r=gt(t,i)>>>0,n=(8388608&r)>>23;gt(t,i+=4),gt(t,i+=4);i+=4;var o=r>>24&15;if(!(t.length<o)){if(268435456&r){if(t.length<4)return;var a=gt(t,i)>>>0;i+=4;var s=4*(65535&a);if(t.length<s)return;i+=s}if(536870912&r){if(t.length<1)return;var h=t[t.length-1];if(t.length<h)return;e-=h}var u=t.subarray(i,e),l=null;if(7==this.videoCodecId?(this.procH264NALHeader(u),l=this.procH264Packet(u,u.length)):12==this.videoCodecId&&(l=this.procH265Packet(u,u.length,n)),null!=l&&(1==n||1==l.endBit)){var d=[],f=0,c=0,p=1,m=!1;m=l.keyframe;var g=!0;if(7==this.videoCodecId?"auto"!==this._config.decodeType&&"hard"!==this._config.decodeType||(g=!1):12==this.videoCodecId&&(m=l.keyframe),m){if(this.findKeyframe=!1,this.fullFramePos=0,12==this.videoCodecId&&this._AVC_VPS){var v=new Uint8Array(this._AVC_VPS.length);g&&v.set(this._AVC_VPS,0);var y={type:7,data:v};d.push(y),c=f+=v.length,this.snapshotCount>0&&this.fullFrameData&&null!=this.fullFrameData&&(this.fullFrameData.set(this._AVC_VPS,0),this.fullFramePos=this._AVC_VPS.length),this._DebugBuf&&(this._DebugBuf.set(v,this._DebugBufPos),this._DebugBufPos+=v.length)}if(this._AVC_SPS){var b=new Uint8Array(this._AVC_SPS.length);if(g)b.set(this._AVC_SPS,0);else{var _=this._AVC_SPS.length-4;b.set(this._AVC_SPS,0),b[0]=_>>24&255,b[1]=_>>16&255,b[2]=_>>8&255,b[3]=255&_}this.snapshotCount>0&&this.fullFrameData&&null!=this.fullFrameData&&(this.fullFrameData.set(this._AVC_SPS,this.fullFramePos),this.fullFramePos+=this._AVC_SPS.length);var w={type:7,data:b};if(d.push(w),f+=b.length,c+=b.length,this._DebugBuf&&(this._DebugBuf.set(b,this._DebugBufPos),this._DebugBufPos+=b.length),this._AVC_PPS){var A=new Uint8Array(this._AVC_PPS.length);if(g)A.set(this._AVC_PPS,0);else{var M=this._AVC_PPS.length-4;A.set(this._AVC_PPS,0),A[0]=M>>24&255,A[1]=M>>16&255,A[2]=M>>8&255,A[3]=255&M}this.snapshotCount>0&&this.fullFrameData&&null!=this.fullFrameData&&(this.fullFrameData.set(this._AVC_PPS,this.fullFramePos),this.fullFramePos+=this._AVC_PPS.length);var E={type:8,data:A};d.push(E),f+=A.length,c+=A.length,this._DebugBuf&&(this._DebugBuf.set(A,this._DebugBufPos),this._DebugBufPos+=A.length)}}if(6==this.frameData[f+4])for(var S=0;S<f+32;S++){if(0==this.frameData[S+f+4]&&0==this.frameData[S+f+4+1]&&0==this.frameData[S+f+4+2]&&1==this.frameData[S+f+4+3]){f=f+S+4;break}if(0==this.frameData[S+f+4]&&0==this.frameData[S+f+4+1]&&1==this.frameData[S+f+4+2]){f=f+S+3;break}}p=5,this._videoInitialMetadataDispatched=!0}if(12==this.videoCodecId&&(f=0),0==l.endBit)return;var k=this.frameData.subarray(f,this.framePos),T=new Uint8Array(k);if(m&&this.snapshotCount>0&&this.fullFrameData&&null!=this.fullFrameData&&this.fullFramePos>0&&window.vssModuleInitialized){this.snapshotCount--,this.fullFrameData.set(T,this.fullFramePos),this.fullFramePos+=T.length;var R=window.vssPlayerModule,I=window.VssPlayerWasmKits;if(R&&null!=R&&I&&null!=I){var C=new Uint8Array(this.fullFrameData);if(C.length>0){var P=R._malloc(C.length);R.HEAP8.set(C,P);var x=I.convertFrame2Image(0,P,this.fullFramePos,I.yuvData,0);if(x<1);else{var D=R.HEAPU8.subarray(I.yuvData,I.yuvData+x),O=this.uint8arrayToBase64(D),B=document.createElement("a");document.body.append(B),B.href="data:image/jpeg;base64,"+O,B.download="snapshot.jpg",B.rel="noopener noreferrer",B.click(),document.body.removeChild(B)}R._free(P)}}this.fullFramePos=0}if(c+=T.length,g);else{var L=T.length-4;T[0]=L>>24&255,T[1]=L>>16&255,T[2]=L>>8&255,T[3]=255&L}if(this._DebugBuf){if(this._DebugBufPos+T.length<1048576&&(this._DebugBufPos>0||5==p||1==l.keyframe)&&(this._DebugBuf.set(T,this._DebugBufPos),this._DebugBufPos+=T.length),this._DebugBufPos>0)this._DebugBuf.subarray(0,this._DebugBufPos);this._DebugBufPos=0}var W={type:p,data:T};d.push(W),f+=T.length,this.findKeyframe;var N=this.startVideoPts;this.startVideoPts+=this.ptsInterval,this.startVideoPts>=2147483647&&(this.startVideoPts=0);var F=this._videoTrack,U={units:d,length:c,isKeyframe:m,dts:N,cts:0,pts:N,fileposition:this._fileposition};m&&(this._fileposition=0,U.fileposition=0),this._fileposition+=c,!this._callbackInitFlag&&this._callbackMediaDataFunc&&(this._callbackInitFlag=!0,12==this.videoCodecId?this._callbackMediaDataFunc(this._callbackMediaDataUserPtr,!0,1,0,0,null,0,0,0,0):"auto"===this._config.decodeType||"hard"===this._config.decodeType?this._callbackMediaDataFunc(this._callbackMediaDataUserPtr,!1,1,0,0,null,0,0,0,0):this._callbackMediaDataFunc(this._callbackMediaDataUserPtr,!0,1,0,0,null,0,0,0,0)),7==this.videoCodecId||0==this.videoCodecId?"auto"===this._config.decodeType||"hard"===this._config.decodeType?this._videoTrack.length>0&&(this._videoTrack.samples.length>=1&&!this.findKeyframe||m)&&this._onDataAvailable(this._audioTrack,this._videoTrack):(this._videoTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeVideo(27,this._videoTrack),this._audioTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeAudio(86018,this._audioTrack)):12==this.videoCodecId&&(this._videoTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeVideo(173,this._videoTrack),this._audioTrack.samples.length>0&&this._onDataAvailableToSoftwareDecodeAudio(10==this.audioCodecId?86018:0,this._audioTrack)),0!==this.reset||this.findKeyframe||(F.samples.push(U),F.length+=f),this.framePos=0,d.length>1&&(this.currentIsKeyFrame=!1)}}},n._parseAACAudioSpecificConfig=function(t){var e=t,i=null,r=0,n=null;if(r=2,5,!(5>=this._mpegSamplingRates.length)){0,5===r&&(n=(7&e[1])<<1|e[2]>>>7,(124&e[2])>>>2);var o=self.navigator.userAgent.toLowerCase();return-1!==o.indexOf("firefox")||-1!==o.indexOf("android")?(r=2,i=new Array(2),n=5):(r=5,n=5,i=new Array(4)),i[0]=r<<3,i[0]|=2,i[1]=640,i[1]|=16,5===r&&(i[1]|=(15&n)>>>1,i[2]=(1&n)<<7,i[2]|=8,i[3]=0),{config:i,samplingRate:32e3,channelCount:2,codec:"mp4a.40."+r,originalCodec:"mp4a.40.2"}}this._onError(D.a.FORMAT_ERROR,"Flv: AAC invalid sampling frequency index!")},n.procAACHeader=function(t,e,i){var r={};if(!this._initAudioMetadata){var n=this._audioMetadata,o=this._audioTrack;if(n||(!1===this._hasAudio&&!1===this._hasAudioFlagOverrided&&(this._hasAudio=!0,this._mediaInfo.hasAudio=!0),(n=this._audioMetadata={}).type="audio",n.id=o.id,n.timescale=this._timescale>0?this._timescale:1e3,n.duration=this._duration>0?this._duration:32,n.audioSampleRate=32e3,n.channelCount=2),r.data=this._parseAACAudioSpecificConfig(t,e+1,i-1),!this._initAudioMetadata&&this._initVideoMetadata){if(null==r.data)return 0;var a=r.data;n.audioSampleRate=a.samplingRate,n.channelCount=a.channelCount,n.codec=a.codec,n.originalCodec=a.originalCodec,n.config=a.config,n.refSampleDuration=1024/n.audioSampleRate*n.timescale,c.a.v(this.TAG,"Parsed AudioSpecificConfig"),this._SampleRate=a.samplingRate,this._ChannelNum=a.channelCount,this._duration=0,this._isInitialMetadataDispatched()?this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack):this._audioInitialMetadataDispatched=!0,this._dispatch=!1,this._onTrackMetadata("audio",n);var s=this._mediaInfo;s.audioCodec=n.originalCodec,s.audioSampleRate=n.audioSampleRate,s.audioChannelCount=n.channelCount,s.hasVideo?null!=s.videoCodec&&(s.mimeType='video/x-flv; codecs="'+s.videoCodec+","+s.audioCodec+'"'):s.mimeType='video/x-flv; codecs="'+s.audioCodec+'"',s.isComplete()&&(this._onMediaInfo(s),this._initAudioMetadata=!0),this._initAudioMetadata=!0}}},n.parseAudioRTPPacket=function(t){t.length;var e=0,i=gt(t,e)>>>0;gt(t,e+=4),gt(t,e+=4);e+=4;var r=i>>24&15;if(!(t.length<r)){if(268435456&i){if(t.length<4)return;var n=gt(t,e)>>>0;e+=4;var o=4*(65535&n);if(t.length<o)return;e+=o}if(536870912&i){if(t.length<1)return;var a=t[t.length-1];if(t.length<a)return;a}}},n.parseChunks=function(t,e){if(null===t)return 0;if(t.byteLength<1)return 0;var i=new Uint8Array(t),r=0;if(36!=i[r]){for(var n=0;n<i.length;n++){var o=i[n+2]<<8|i[n+3];if(36==i[n]&&0==i[n+1]&&o<=1460){r=n;break}}if(r<1)return 0}var a=i[r+1],s=i[r+2]<<8|i[r+3];if(i.length-r<s+4)return 0;if(0==a){var h=i.subarray(4,s+4);this.parseVideoRTPPacket(h)}else if(1==a);else if(2==a){var u=i.subarray(4,s+4);this.parseAudioRTPPacket(u)}else if(3==a);else if(4==a){var l=i.subarray(48,s+4+12+32);this._callbackPlaybackTimePtr&&this._callbackPlaybackTimePtr(this._callbackPlaybackTimeUserPtr,"rtspPlaybackTime",l)}return i.length,s+4},n._makeH265Header=function(t){var e=2;switch(t){case 78:case 80:case 64:case 66:case 32:case 34:case 36:case 38:case 40:case 42:e=1}return e},n.snapshot=function(){null==this.fullFrameData&&(this.fullFrameData=new Uint8Array(2097152)),this.snapshotCount++},n.changeSpeed=function(t){this.ptsInterval=t},e=t,(i=[{key:"onTrackMetadata",get:function(){return this._onTrackMetadata},set:function(t){this._onTrackMetadata=t}},{key:"onMediaInfo",get:function(){return this._onMediaInfo},set:function(t){this._onMediaInfo=t}},{key:"onMetaDataArrived",get:function(){return this._onMetaDataArrived},set:function(t){this._onMetaDataArrived=t}},{key:"onScriptDataArrived",get:function(){return this._onScriptDataArrived},set:function(t){this._onScriptDataArrived=t}},{key:"onError",get:function(){return this._onError},set:function(t){this._onError=t}},{key:"onDataAvailable",get:function(){return this._onDataAvailable},set:function(t){this._onDataAvailable=t}},{key:"timestampBase",get:function(){return this._timestampBase},set:function(t){this._timestampBase=t}},{key:"overridedDuration",get:function(){return this._duration},set:function(t){this._durationOverrided=!0,this._duration=t,this._mediaInfo.duration=t}},{key:"overridedHasAudio",set:function(t){this._hasAudioFlagOverrided=!0,this._hasAudio=t,this._mediaInfo.hasAudio=t}},{key:"overridedHasVideo",set:function(t){this._hasVideoFlagOverrided=!0,this._hasVideo=t,this._mediaInfo.hasVideo=t}}])&&mt(e.prototype,i),r&&mt(e,r),Object.defineProperty(e,"prototype",{writable:!1}),t}(),yt=function(){function t(t,e){this.TAG="TransmuxingController",this._emitter=new f.a,this._config=e,t.segments||(t.segments=[{duration:t.duration,filesize:t.filesize,url:t.url}]),"boolean"!=typeof t.cors&&(t.cors=!0),"boolean"!=typeof t.withCredentials&&(t.withCredentials=!1),this._mediaDataSource=t,this._currentSegmentIndex=0;var i=0;this._mediaDataSource.segments.forEach((function(r){r.timestampBase=i,i+=r.duration,r.cors=t.cors,r.withCredentials=t.withCredentials,e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy)})),isNaN(i)||this._mediaDataSource.duration===i||(this._mediaDataSource.duration=i),this._mediaInfo=null,this._demuxer=null,this._remuxer=null,this._ioctl=null,this._pendingSeekTime=null,this._pendingResolveSeekPoint=null,this._statisticsReporter=null,this._callbackMediaData=null,this._callbackUserPtr=null,this._callbackPlaybackTimePtr=null,this._callbackPlaybackTimeUserPtr=null,this.getVideoInfoCallbackFunc=null,this._isM3u8=!1,this._isRtsp=!1,this._reconnectTimes=0}var e=t.prototype;return e.destroy=function(){this._mediaInfo=null,this._mediaDataSource=null,this._statisticsReporter&&this._disableStatisticsReporter(),this._ioctl&&(this._ioctl.destroy(),this._ioctl=null),this._demuxer&&(this._demuxer.destroy(),this._demuxer=null),this._remuxer&&(this._remuxer.destroy(),this._remuxer=null),this._emitter.removeAllListeners(),this._emitter=null},e.on=function(t,e){this._emitter.addListener(t,e)},e.off=function(t,e){this._emitter.removeListener(t,e)},e.setMediaSourceCallback=function(t,e,i,r,n){this._callbackMediaData=t,this._callbackUserPtr=e,this._callbackPlaybackTimePtr=i,this._callbackPlaybackTimeUserPtr=r,this.getVideoInfoCallbackFunc=n},e.start=function(){this._loadSegment(0),this._enableStatisticsReporter()},e._loadSegment=function(t,e){if(this._currentSegmentIndex=t,null!=this._mediaDataSource.segments){var i=this._mediaDataSource.segments[t],r=this._ioctl=new dt(i,this._config,t,this._mediaDataSource.startPlaySecs);r.onError=this._onIOException.bind(this),r.onSeeked=this._onIOSeeked.bind(this),r.onComplete=this._onIOComplete.bind(this),r.onRedirect=this._onIORedirect.bind(this),r.onRecoveredEarlyEof=this._onIORecoveredEarlyEof.bind(this),e?this._demuxer.bindDataSource(this._ioctl):r.onDataArrival=this._onInitChunkArrival.bind(this),r.open(e),this._isM3u8=r._IsM3u8Loader(),this._isRtsp=r._IsRtspLoader()}},e.stop=function(){this._internalAbort(),this._disableStatisticsReporter()},e._internalAbort=function(){this._ioctl&&(this._ioctl.destroy(),this._ioctl=null)},e.pauseOrResume=function(t){null!=this._demuxer&&(this._isM3u8||(this._isRtsp&&(t?this._ioctl.pause():this._ioctl.resume()),t?this._demuxer.pause():(this._remuxer.seek(0),this._demuxer.resume())))},e.pause=function(){this._ioctl&&this._ioctl.isWorking()&&(this._ioctl.pause(),this._disableStatisticsReporter())},e.resume=function(){this._ioctl&&this._ioctl.isPaused()&&(this._ioctl.resume(),this._enableStatisticsReporter())},e.rtspScale=function(t,e){this._isRtsp&&(this._ioctl.rtspScale(t),this._demuxer&&null!=this._demuxer&&this._demuxer.changeSpeed(e))},e.changeSpeed=function(t){this._remuxer&&this._remuxer.changeSpeed(t)},e.seekToSecs=function(t,e){var i=this._ioctl._GetM3u8Loader();i&&(i.seek(t,e),this._demuxer&&this._demuxer.resetMediaPts(1)),this._remuxer&&this._remuxer.seek(0),i&&this._demuxer&&this._demuxer.resetMediaPts(0)},e.seek=function(t){if(null!=this._mediaInfo&&this._mediaInfo.isSeekable()){var e=this._searchSegmentIndexContains(t);if(e===this._currentSegmentIndex){var i=this._mediaInfo.segments[e];if(null==i)this._pendingSeekTime=t;else{var r=i.getNearestKeyframe(t);this._remuxer.seek(r.milliseconds),this._ioctl.seek(r.fileposition),this._pendingResolveSeekPoint=r.milliseconds}}else{var n=this._mediaInfo.segments[e];if(null==n)this._pendingSeekTime=t,this._internalAbort(),this._remuxer.seek(),this._remuxer.insertDiscontinuity(),this._loadSegment(e);else{var o=n.getNearestKeyframe(t);this._internalAbort(),this._remuxer.seek(t),this._remuxer.insertDiscontinuity(),this._demuxer.resetMediaInfo(),this._demuxer.timestampBase=this._mediaDataSource.segments[e].timestampBase,this._loadSegment(e,o.fileposition),this._pendingResolveSeekPoint=o.milliseconds,this._reportSegmentMediaInfo(e)}}this._enableStatisticsReporter()}},e._searchSegmentIndexContains=function(t){for(var e=this._mediaDataSource.segments,i=e.length-1,r=0;r<e.length;r++)if(t<e[r].timestampBase){i=r-1;break}return i},e._onInitChunkArrival=function(t,e){var i=this;if(this._isM3u8||this._isRtsp){if(this._isRtsp){var r=null,n=0;if(null==t&&e<0)return void this._emitter.emit(ft.RECONNECT_ING,e);if(null==t&&e>0)return;if(e>0)this._demuxer.bindDataSource(this._ioctl),this._demuxer.timestampBase=this._mediaDataSource.segments[this._currentSegmentIndex].timestampBase,n=this._demuxer.parseChunks(t,e);else if((r=vt.probe(t)).match){this._demuxer=new vt(r,this._config,this._callbackMediaData,this._callbackUserPtr,this._callbackPlaybackTimePtr,this._callbackPlaybackTimeUserPtr,this.getVideoInfoCallbackFunc),this._remuxer||(this._remuxer=new x(this._config));var o=this._mediaDataSource;null==o.duration||isNaN(o.duration)||(this._demuxer.overridedDuration=o.duration),"boolean"==typeof o.hasAudio&&(this._demuxer.overridedHasAudio=o.hasAudio),"boolean"==typeof o.hasVideo&&(this._demuxer.overridedHasVideo=o.hasVideo),this._demuxer.timestampBase=o.segments[this._currentSegmentIndex].timestampBase,this._demuxer.onError=this._onDemuxException.bind(this),this._demuxer.onMediaInfo=this._onMediaInfo.bind(this),this._demuxer.onMetaDataArrived=this._onMetaDataArrived.bind(this),this._demuxer.onScriptDataArrived=this._onScriptDataArrived.bind(this),this._remuxer.bindDataSource(this._demuxer.bindDataSource(this._ioctl)),this._remuxer.onInitSegment=this._onRemuxerInitSegmentArrival.bind(this),this._remuxer.onMediaSegment=this._onRemuxerMediaSegmentArrival.bind(this),this._reconnectTimes>0&&this._emitter.emit(ft.RECONNECT_SUCCESS,this._reconnectTimes),this._reconnectTimes++}else r=null,c.a.e(this.TAG,"Non-RTSP, Unsupported media type!"),Promise.resolve().then((function(){i._internalAbort()})),this._emitter.emit(ft.DEMUX_ERROR,D.a.FORMAT_UNSUPPORTED,"Non-RTSP, Unsupported media type"),n=0;return n}if(null==t&&e<0)return void this._emitter.emit(ft.RECONNECT_ING,e);if(null==t&&e>0)return;var a=0;if(e>0)this._demuxer.bindDataSource(this._ioctl),this._demuxer.timestampBase=this._mediaDataSource.segments[this._currentSegmentIndex].timestampBase,this._demuxer.append(t,e,0),a=t.length;else{this._demuxer=new ct.a(this._config,this._callbackMediaData,this._callbackUserPtr),this._remuxer||(this._remuxer=new x(this._config));var s=this._mediaDataSource;null==s.duration||isNaN(s.duration)||(this._demuxer.overridedDuration=s.duration),"boolean"==typeof s.hasAudio&&(this._demuxer.overridedHasAudio=s.hasAudio),"boolean"==typeof s.hasVideo&&(this._demuxer.overridedHasVideo=s.hasVideo),this._demuxer.timestampBase=s.segments[this._currentSegmentIndex].timestampBase,this._demuxer.onError=this._onDemuxException.bind(this),this._demuxer.onMediaInfo=this._onMediaInfo.bind(this),this._demuxer.onMetaDataArrived=this._onMetaDataArrived.bind(this),this._demuxer.onScriptDataArrived=this._onScriptDataArrived.bind(this),this._remuxer.bindDataSource(this._demuxer.bindDataSource(this._ioctl)),this._remuxer.onInitSegment=this._onRemuxerInitSegmentArrival.bind(this),this._remuxer.onMediaSegment=this._onRemuxerMediaSegmentArrival.bind(this),this._demuxer.append(t,e,0),a=t.length}return a}var h=null,u=0;if(null==t&&e<0)this._emitter.emit(ft.RECONNECT_ING,e);else if(!(null==t&&e>0)){if(e>0)this._demuxer.bindDataSource(this._ioctl),this._demuxer.timestampBase=this._mediaDataSource.segments[this._currentSegmentIndex].timestampBase,u=this._demuxer.parseChunks(t,e);else if((h=w.a.probe(t)).match){this._demuxer=new w.a(h,this._config,this._callbackMediaData,this._callbackUserPtr,this._callbackPlaybackTimeUserPtr,this.getVideoInfoCallbackFunc),this._remuxer||(this._remuxer=new x(this._config));var l=this._mediaDataSource;null==l.duration||isNaN(l.duration)||(this._demuxer.overridedDuration=l.duration),"boolean"==typeof l.hasAudio&&(this._demuxer.overridedHasAudio=l.hasAudio),"boolean"==typeof l.hasVideo&&(this._demuxer.overridedHasVideo=l.hasVideo),this._demuxer.timestampBase=l.segments[this._currentSegmentIndex].timestampBase,this._demuxer.onError=this._onDemuxException.bind(this),this._demuxer.onMediaInfo=this._onMediaInfo.bind(this),this._demuxer.onMetaDataArrived=this._onMetaDataArrived.bind(this),this._demuxer.onScriptDataArrived=this._onScriptDataArrived.bind(this),this._remuxer.bindDataSource(this._demuxer.bindDataSource(this._ioctl)),this._remuxer.onInitSegment=this._onRemuxerInitSegmentArrival.bind(this),this._remuxer.onMediaSegment=this._onRemuxerMediaSegmentArrival.bind(this),u=this._demuxer.parseChunks(t,e),this._reconnectTimes>0&&this._emitter.emit(ft.RECONNECT_SUCCESS,this._reconnectTimes),this._reconnectTimes++}else h=null,c.a.e(this.TAG,"Non-FLV, Unsupported media type!"),Promise.resolve().then((function(){i._internalAbort()})),this._emitter.emit(ft.DEMUX_ERROR,D.a.FORMAT_UNSUPPORTED,"Non-FLV, Unsupported media type"),u=0;return u}},e._GetM3u8Loader=function(){if(null==this._ioctl)return null;var t=this._ioctl._GetM3u8Loader();return t||null},e._GetM3u8TotalDuration=function(){if(null==this._ioctl)return 0;var t=this._ioctl._GetM3u8Loader();return t?t.GetM3u8TotalDuration():0},e._onMediaInfo=function(t){var e=this;null==this._mediaInfo&&(this._mediaInfo=Object.assign({},t),this._mediaInfo.keyframesIndex=null,this._mediaInfo.segments=[],this._mediaInfo.segmentCount=this._mediaDataSource.segments.length,Object.setPrototypeOf(this._mediaInfo,_.a.prototype));var i=Object.assign({},t);Object.setPrototypeOf(i,_.a.prototype),this._mediaInfo.segments[this._currentSegmentIndex]=i,this._reportSegmentMediaInfo(this._currentSegmentIndex),null!=this._pendingSeekTime&&Promise.resolve().then((function(){var t=e._pendingSeekTime;e._pendingSeekTime=null,e.seek(t)}))},e._onMetaDataArrived=function(t){this._emitter.emit(ft.METADATA_ARRIVED,t)},e._onScriptDataArrived=function(t){this._emitter.emit(ft.SCRIPTDATA_ARRIVED,t)},e._onIOSeeked=function(){this._remuxer.insertDiscontinuity()},e._onIOComplete=function(t){var e=t+1;if(this._ioctl&&this._ioctl._IsM3u8Loader()){this._ioctl._GetM3u8Loader();r.GetLiveStreamType()&&(this._emitter.emit(ft.RECONNECT_SUCCESS,2),this._demuxer&&(this._demuxer.destroy(),this._demuxer=null),this._remuxer&&(this._remuxer.destroy(),this._remuxer=null),this._ioctl&&(this._ioctl.destroy(),this._ioctl=null),this.start())}else if(e<this._mediaDataSource.segments.length){if(this._internalAbort(),this._remuxer&&this._remuxer.flushStashedSamples(),-1===t){this._demuxer&&(this._demuxer.destroy(),this._demuxer=null),this._remuxer&&(this._remuxer.destroy(),this._remuxer=null),this._ioctl&&(this._ioctl.destroy(),this._ioctl=null);var i=this;r.sleep(3e3).then((function(){i.start()}))}}else if(this._remuxer&&(this._remuxer.flushStashedSamples(),this._emitter.emit(ft.LOADING_COMPLETE),this._disableStatisticsReporter()),-1===t){this._demuxer&&(this._demuxer.destroy(),this._demuxer=null),this._remuxer&&(this._remuxer.destroy(),this._remuxer=null),this._ioctl&&(this._ioctl.destroy(),this._ioctl=null);var n=this;r.sleep(3e3).then((function(){n.start()}))}},e._onIORedirect=function(t){var e=this._ioctl.extraData;this._mediaDataSource.segments[e].redirectedURL=t},e._onIORecoveredEarlyEof=function(){this._emitter.emit(ft.RECOVERED_EARLY_EOF)},e._onIOException=function(t,e){c.a.e(this.TAG,"IOException: type = "+t+", code = "+e.code+", msg = "+e.msg),this._emitter.emit(ft.IO_ERROR,t,e),this._disableStatisticsReporter()},e._onDemuxException=function(t,e){c.a.e(this.TAG,"DemuxException: type = "+t+", info = "+e),this._emitter.emit(ft.DEMUX_ERROR,t,e)},e._onRemuxerInitSegmentArrival=function(t,e){this._emitter.emit(ft.INIT_SEGMENT,t,e)},e._onRemuxerMediaSegmentArrival=function(t,e){if(null==this._pendingSeekTime&&(this._emitter.emit(ft.MEDIA_SEGMENT,t,e),null!=this._pendingResolveSeekPoint&&"video"===t)){var i=e.info.syncPoints,r=this._pendingResolveSeekPoint;this._pendingResolveSeekPoint=null,m.safari&&i.length>0&&i[0].originalDts===r&&(r=i[0].pts),this._emitter.emit(ft.RECOMMEND_SEEKPOINT,r)}},e._enableStatisticsReporter=function(){null==this._statisticsReporter&&(this._statisticsReporter=self.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval))},e._disableStatisticsReporter=function(){this._statisticsReporter&&(self.clearInterval(this._statisticsReporter),this._statisticsReporter=null)},e._reportSegmentMediaInfo=function(t){var e=this._mediaInfo.segments[t],i=Object.assign({},e);i.duration=this._mediaInfo.duration,i.segmentCount=this._mediaInfo.segmentCount,delete i.segments,delete i.keyframesIndex,this._emitter.emit(ft.MEDIA_INFO,i)},e._reportStatisticsInfo=function(){var t={};null!=this._ioctl&&(t.url=this._ioctl.currentURL,t.hasRedirect=this._ioctl.hasRedirect,t.hasRedirect&&(t.redirectedURL=this._ioctl.currentRedirectedURL),t.speed=this._ioctl.currentSpeed,t.loaderType=this._ioctl.loaderType,t.currentSegmentIndex=this._currentSegmentIndex,t.totalSegmentCount=this._mediaDataSource.segments.length,this._emitter.emit(ft.STATISTICS_INFO,t))},e.snapshot=function(){this._demuxer&&null!=this._demuxer&&this._demuxer.snapshot()},t}(),bt=function(){function t(){}return t.install=function(){Object.setPrototypeOf=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},Object.assign=Object.assign||function(t){if(null==t)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),i=1;i<arguments.length;i++){var r=arguments[i];if(null!=r)for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n])}return e},"function"!=typeof self.Promise&&i(143).polyfill()},t}();bt.install();var _t=bt,wt=function(t){var e=null,i=function(e,i){t.postMessage({msg:"logcat_callback",data:{type:e,logcat:i}})}.bind(this);function r(e,i){var r={msg:ft.INIT_SEGMENT,data:{type:e,data:i}};t.postMessage(r,[i.data])}function n(e,i){var r={msg:ft.MEDIA_SEGMENT,data:{type:e,data:i}};t.postMessage(r,[i.data])}function o(){var e={msg:ft.LOADING_COMPLETE};t.postMessage(e)}function a(){var e={msg:ft.RECOVERED_EARLY_EOF};t.postMessage(e)}function s(e){var i={msg:ft.MEDIA_INFO,data:e};t.postMessage(i)}function h(e){var i={msg:ft.METADATA_ARRIVED,data:e};t.postMessage(i)}function u(e){var i={msg:ft.SCRIPTDATA_ARRIVED,data:e};t.postMessage(i)}function l(e){var i={msg:ft.STATISTICS_INFO,data:e};t.postMessage(i)}function d(e,i){t.postMessage({msg:ft.IO_ERROR,data:{type:e,info:i}})}function f(e,i){t.postMessage({msg:ft.DEMUX_ERROR,data:{type:e,info:i}})}function c(e){t.postMessage({msg:ft.RECOMMEND_SEEKPOINT,data:e})}_t.install(),t.addEventListener("message",(function(p){switch(p.data.cmd){case"init":(e=new yt(p.data.param[0],p.data.param[1])).on(ft.IO_ERROR,d.bind(this)),e.on(ft.DEMUX_ERROR,f.bind(this)),e.on(ft.INIT_SEGMENT,r.bind(this)),e.on(ft.MEDIA_SEGMENT,n.bind(this)),e.on(ft.LOADING_COMPLETE,o.bind(this)),e.on(ft.RECOVERED_EARLY_EOF,a.bind(this)),e.on(ft.MEDIA_INFO,s.bind(this)),e.on(ft.METADATA_ARRIVED,h.bind(this)),e.on(ft.SCRIPTDATA_ARRIVED,u.bind(this)),e.on(ft.STATISTICS_INFO,l.bind(this)),e.on(ft.RECOMMEND_SEEKPOINT,c.bind(this));break;case"destroy":e&&(e.destroy(),e=null),t.postMessage({msg:"destroyed"});break;case"start":e.start();break;case"stop":e.stop();break;case"seek":e.seek(p.data.param);break;case"pause":e.pause();break;case"resume":e.resume();break;case"logging_config":var m=p.data.param;b.applyConfig(m),!0===m.enableCallback?b.addLogListener(i):b.removeLogListener(i)}}))},At={ERROR:"error",SOURCE_OPEN:"source_open",UPDATE_END:"update_end",BUFFER_FULL:"buffer_full",CB_PLAY_INFO:"play_info",CHANGE_SPEED:"change_speed"},Mt=function(){function t(t,e,r,n,o,a,s,h){this.TAG="Transmuxer",this._emitter=new f.a,this._config=e,this.soundPlayer=null,this._webGLPlayer=null,this._mediaCanvas=r,this.pauseDisplay=!1,this.enableAudio=!1,this.audioFmt=0,this.audioSamplerate=0,this.audioChannelNum=2,this.initAudioPlayer=!1,this.totalDuration=0,this.initDuration=0,this.currentPlayTime=0,"m3u8"===t.type&&(this.currentPlayTime=t.startPlaySecs),this._callbackPlaybackTimePtr=a,this._callbackPlaybackTimeUserPtr=s,this.getVideoInfoCallbackFunc=h,this.getVideoInfoCB=!0;var u=navigator.userAgent;this.isAndroid=u.indexOf("Android")>-1||u.indexOf("Adr")>-1,this.isiOS=!!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),this.isiPad=!1;var l=navigator.userAgent;if(("iPad"==l.match(/iPad/i)||l.indexOf("Macintosh;")>-1&&l.indexOf("AppleWebKit/"))&&(this.isiPad=!0),this._callbackUserPtr=n,this._callbackWasmTypePtr=o,e.enableWorker&&"undefined"!=typeof Worker)try{var d=i(144);this._worker=d(wt),this._workerDestroying=!1,this._worker.addEventListener("message",this._onWorkerMessage.bind(this)),this._worker.postMessage({cmd:"init",param:[t,e]}),this.e={onLoggingConfigChanged:this._onLoggingConfigChanged.bind(this)},b.registerListener(this.e.onLoggingConfigChanged),this._worker.postMessage({cmd:"logging_config",param:b.getConfig()})}catch(i){c.a.e(this.TAG,"Error while initialize transmuxing worker, fallback to inline transmuxing"),this._worker=null,this._controller=new yt(t,e)}else this._controller=new yt(t,e);if(this._controller){var p=this._controller;p.on(ft.IO_ERROR,this._onIOError.bind(this)),p.on(ft.DEMUX_ERROR,this._onDemuxError.bind(this)),p.on(ft.INIT_SEGMENT,this._onInitSegment.bind(this)),p.on(ft.MEDIA_SEGMENT,this._onMediaSegment.bind(this)),p.on(ft.LOADING_COMPLETE,this._onLoadingComplete.bind(this)),p.on(ft.RECOVERED_EARLY_EOF,this._onRecoveredEarlyEof.bind(this)),p.on(ft.MEDIA_INFO,this._onMediaInfo.bind(this)),p.on(ft.METADATA_ARRIVED,this._onMetaDataArrived.bind(this)),p.on(ft.SCRIPTDATA_ARRIVED,this._onScriptDataArrived.bind(this)),p.on(ft.STATISTICS_INFO,this._onStatisticsInfo.bind(this)),p.on(ft.RECOMMEND_SEEKPOINT,this._onRecommendSeekpoint.bind(this)),p.on(ft.RECONNECT_ING,this._onReconnecting.bind(this)),p.on(ft.RECONNECT_SUCCESS,this._onReconnectSuccess.bind(this))}}var e=t.prototype;return e.destroy=function(){this._worker?this._workerDestroying||(this._workerDestroying=!0,this._worker.postMessage({cmd:"destroy"}),b.removeListener(this.e.onLoggingConfigChanged),this.e=null):(this._controller.destroy(),this._controller=null),this._emitter.removeAllListeners(),this._emitter=null,this.soundPlayer&&(this.soundPlayer.destroy(),delete this.soundPlayer,this.soundPlayer=null)},e.on=function(t,e){this._emitter.addListener(t,e)},e.off=function(t,e){this._emitter.removeListener(t,e)},e.hasWorker=function(){return null!=this._worker},e.OpenAudioPlayer=function(t,e,i){if(null==this.soundPlayer){1;var r="16bitInt";r="16bitInt",this.soundPlayer=new l.a,this.soundPlayer.init({encoding:r,channels:e,sampleRate:i,flushingTime:1e3}),this.initAudioPlayer=!0}},e.createDecodeWorker=function(){var t;if(this.decodeWorker=null,"undefined"!=typeof Worker)try{t=this.decodeWorker=u(41),this.onwmsg=this.onWorkerMessage.bind(this);var e={cmd:r.tOpenStream,url:r.getFullURL(),isFlv:!this._controller._isM3u8};t.postMessage(e),t.addEventListener("message",this.onwmsg),t.onerror=function(t){}}catch(t){this.w=void 0}else this.decodeWorker=null;this.decodeWorker&&null==this._webGLPlayer&&(this._webGLPlayer=new h(this._mediaCanvas))},e.getCurrentPlayTime=function(){return this.currentPlayTime},e.getTotalDuration=function(){return this._controller?this._controller._GetM3u8TotalDuration():this.totalDuration},e._onMediaDataCallback=function(t,e,i,n,o,a,s,h,u,l){if(!(n<1)||e||1!==s)if(e){null==t.decodeWorker&&(t.createDecodeWorker(),t._callbackWasmTypePtr&&t._callbackWasmTypePtr(t._callbackUserPtr,!0));var d=new Uint8Array(a);if(t.decodeWorker){var f={cmd:r.tFrameData,mediaType:i,codecId:n,frameType:o,samplerate:h,channelNum:u,bitPerSample:l,playTimeSec:h,dat:d};t.decodeWorker.postMessage(f,[f.dat.buffer])}}else t._callbackWasmTypePtr&&t._callbackWasmTypePtr(t._callbackUserPtr,!1)},e.onWorkerMessage=function(t){var e=t.data;switch(e.cmd){case r.tDisconnect:var i={cmd:r.tReOpenStream};this.downloadWorker.postMessage(i);break;case r.tCloseStream:e.workerId==r.DOWNLOAD_WORKER_ID?(this.downloadWorker.terminate(),this.downloadWorker=null):e.workerId==r.DECODE_WORKER_ID?(this.decodeWorker.terminate(),this.decodeWorker=null,this.soundPlayer&&(this.soundPlayer.destroy(),delete this.soundPlayer,this.soundPlayer=null),this._webGLPlayer&&this._webGLPlayer.renderVideoFrame(null,0,0)):e.workerId==r.RENDER_WORKER_ID&&(this.renderWorker.terminate(),this.renderWorker=null);break;case r.tDecoderWorkerStartup:this.enableAudio&&this.openAudio();break;case r.tFrameData:if(e.workerId==r.DOWNLOAD_WORKER_ID)this.decodeWorker;else if(e.workerId==r.DECODE_WORKER_ID){if(this.pauseDisplay)break;if(1==e.mediaType){if(this._mediaCanvas.width=e.width,this._mediaCanvas.height=e.height,this.getVideoInfoCB&&this.getVideoInfoCallbackFunc&&null!=this.getVideoInfoCallbackFunc&&(this.getVideoInfoCallbackFunc(this._callbackPlaybackTimeUserPtr,"H265",e.width,e.height),this.getVideoInfoCB=!1),e.playTimeSec>0){var n=Math.floor((e.playTimeSec+1e3)/1e3);this.currentPlayTime!==n&&(this.initDuration>0&&(this.currentPlayTime+=n-this.initDuration),this.initDuration!==n&&(this.initDuration=n,this._emitter&&this._emitter.emit(At.CB_PLAY_INFO)))}this._webGLPlayer&&this._webGLPlayer.renderVideoFrame(e.dat,e.width,e.height)}else 2==e.mediaType&&(null==this.soundPlayer&&(null!=this.soundPlayer||this.isiOS||this.isiPad?(this.audioFmt=e.fmt,this.audioSamplerate=e.samplerate,this.audioChannelNum=e.ch,44100==this.audioSamplerate&&(this.audioFmt=1)):this.OpenAudioPlayer(e.fmt,e.samplerate>=16e3?2:e.ch,e.samplerate)),this.enableAudio&&this.soundPlayer&&this.initAudioPlayer&&this.soundPlayer.play(e.dat))}break;case r.tDecode:this.avQueue.length>0&&this.pauseDisplay}},e.openAudio=function(){var t={cmd:r.tOpenAudio};if(this.decodeWorker&&void 0!==this.decodeWorker&&this.decodeWorker.postMessage(t),this.enableAudio=!0,null==this.soundPlayer&&(this.isiOS||this.isiPad)){if(!(this.audioSamplerate>0))return!1;this.OpenAudioPlayer(this.audioFmt,this.audioSamplerate>=16e3?2:this.audioChannelNum,this.audioSamplerate)}return!0},e.closeAudio=function(){var t={cmd:r.tCloseAudio};return this.decodeWorker&&void 0!==this.decodeWorker&&this.decodeWorker.postMessage(t),this.soundPlayer&&this.initAudioPlayer&&this.soundPlayer.clearAudioBuffer(),this.enableAudio=!1,!0},e.open=function(){this._worker?this._worker.postMessage({cmd:"start"}):(this._controller.setMediaSourceCallback(this._onMediaDataCallback,this,this._callbackPlaybackTimePtr,this._callbackPlaybackTimeUserPtr,this.getVideoInfoCallbackFunc),this._controller.start())},e.close=function(){var t={cmd:r.tCloseStream};this.decodeWorker&&void 0!==this.decodeWorker&&this.decodeWorker.postMessage(t),this._webGLPlayer&&(this._webGLPlayer.renderVideoFrame(null,0,0),this._webGLPlayer.destroy(),delete this._webGLPlayer,this._webGLPlayer=null),this._worker?this._worker.postMessage({cmd:"stop"}):this._controller.stop()},e.changeSpeed=function(t){this._controller&&this._controller.changeSpeed(t)},e.seekToSecs=function(t,e){var i={cmd:r.tSeekStream,type:e,time:t};this.decodeWorker&&void 0!==this.decodeWorker&&this.decodeWorker.postMessage(i),this._controller.seekToSecs(t,e)},e.seek=function(t){this._worker?this._worker.postMessage({cmd:"seek",param:t}):this._controller.seek(t)},e.isPaused=function(){return this.pauseDisplay},e.pause=function(){this.pauseDisplay=!0;var t={cmd:r.tPauseStream};if(this.decodeWorker&&void 0!==this.decodeWorker&&this.decodeWorker.postMessage(t),this._controller){var e=this._controller._GetM3u8Loader();e?e.pause():this._controller.pauseOrResume(!0)}this._worker&&this._worker.postMessage({cmd:"pause"})},e.resume=function(){this.pauseDisplay=!1;var t={cmd:r.tResumeStream};if(this.decodeWorker&&void 0!==this.decodeWorker&&this.decodeWorker.postMessage(t),this._controller){var e=this._controller._GetM3u8Loader();e?e.resume():this._controller.pauseOrResume(!1)}this._worker?this._worker.postMessage({cmd:"resume"}):this._controller.resume()},e.rtspScale=function(t,e){this._controller&&this._controller.rtspScale(t,e)},e._onReconnecting=function(t){var e=this;Promise.resolve().then((function(){e._emitter.emit(ft.RECONNECT_ING,t)}))},e._onReconnectSuccess=function(t){var e=this;Promise.resolve().then((function(){e._emitter.emit(ft.RECONNECT_SUCCESS,t)}))},e._onInitSegment=function(t,e){var i=this;Promise.resolve().then((function(){i._emitter.emit(ft.INIT_SEGMENT,t,e)}))},e._onMediaSegment=function(t,e){var i=this;Promise.resolve().then((function(){i._emitter.emit(ft.MEDIA_SEGMENT,t,e)}))},e._onLoadingComplete=function(){var t=this;Promise.resolve().then((function(){t._emitter.emit(ft.LOADING_COMPLETE)}))},e._onRecoveredEarlyEof=function(){var t=this;Promise.resolve().then((function(){t._emitter.emit(ft.RECOVERED_EARLY_EOF)}))},e._onMediaInfo=function(t){var e=this;Promise.resolve().then((function(){e._emitter.emit(ft.MEDIA_INFO,t)}))},e._onMetaDataArrived=function(t){var e=this;Promise.resolve().then((function(){e._emitter.emit(ft.METADATA_ARRIVED,t)}))},e._onScriptDataArrived=function(t){var e=this;Promise.resolve().then((function(){e._emitter.emit(ft.SCRIPTDATA_ARRIVED,t)}))},e._onStatisticsInfo=function(t){var e=this;Promise.resolve().then((function(){e._emitter.emit(ft.STATISTICS_INFO,t)}))},e._onIOError=function(t,e){var i=this;Promise.resolve().then((function(){i._emitter.emit(ft.IO_ERROR,t,e)}))},e._onDemuxError=function(t,e){var i=this;Promise.resolve().then((function(){i._emitter.emit(ft.DEMUX_ERROR,t,e)}))},e._onRecommendSeekpoint=function(t){var e=this;Promise.resolve().then((function(){e._emitter.emit(ft.RECOMMEND_SEEKPOINT,t)}))},e._onLoggingConfigChanged=function(t){this._worker&&this._worker.postMessage({cmd:"logging_config",param:t})},e._onWorkerMessage=function(t){var e=t.data,i=e.data;if("destroyed"===e.msg||this._workerDestroying)return this._workerDestroying=!1,this._worker.terminate(),void(this._worker=null);switch(e.msg){case ft.INIT_SEGMENT:case ft.MEDIA_SEGMENT:this._emitter.emit(e.msg,i.type,i.data);break;case ft.LOADING_COMPLETE:case ft.RECOVERED_EARLY_EOF:this._emitter.emit(e.msg);break;case ft.MEDIA_INFO:Object.setPrototypeOf(i,_.a.prototype),this._emitter.emit(e.msg,i);break;case ft.METADATA_ARRIVED:case ft.SCRIPTDATA_ARRIVED:case ft.STATISTICS_INFO:this._emitter.emit(e.msg,i);break;case ft.IO_ERROR:case ft.DEMUX_ERROR:this._emitter.emit(e.msg,i.type,i.info);break;case ft.RECOMMEND_SEEKPOINT:this._emitter.emit(e.msg,i);break;case"logcat_callback":c.a.emitter.emit("log",i.type,i.logcat)}},e.snapshot=function(){this._controller&&null!=this._controller&&this._controller.snapshot()},t}(),Et=function(){function t(t){this.TAG="MSEController",this._config=t,this._emitter=new f.a,this._currentPlayTime=0,this._hlsSeekTime=0,this._lastPlayTime=0,this._waitingData=!1,this._pause=!1,this._lastSpeed=0,this._config.isLive&&null==this._config.autoCleanupSourceBuffer&&(this._config.autoCleanupSourceBuffer=!0),this.e={onSourceOpen:this._onSourceOpen.bind(this),onSourceEnded:this._onSourceEnded.bind(this),onSourceClose:this._onSourceClose.bind(this),onSourceBufferError:this._onSourceBufferError.bind(this),onSourceBufferUpdateEnd:this._onSourceBufferUpdateEnd.bind(this)},this._mediaSource=null,this._mediaSourceObjectURL=null,this._mediaElement=null,this._isBufferFull=!1,this._hasPendingEos=!1,this._seek=!1,this._requireSetMediaDuration=!1,this._pendingMediaDuration=0,this._pendingSourceBufferInit=[],this._mimeTypes={video:null,audio:null},this._sourceBuffers={video:null,audio:null},this._lastInitSegments={video:null,audio:null},this._pendingSegments={video:[],audio:[]},this._pendingRemoveRanges={video:[],audio:[]},this._idrList=new R}var e=t.prototype;return e.destroy=function(){(this._mediaElement||this._mediaSource)&&this.detachMediaElement(),this.e=null,this._emitter.removeAllListeners(),this._emitter=null},e.on=function(t,e){this._emitter.addListener(t,e)},e.off=function(t,e){this._emitter.removeListener(t,e)},e.setSeekPlayTime=function(t){this._mediaElement&&(this._lastPlayTime=Math.floor(this._mediaElement.currentTime)),this._hlsSeekTime=t},e.pause=function(){this._pause=!0},e.resume=function(){this._pause=!1},e.attachMediaElement=function(t){if(this._mediaSource)throw new C.a("MediaSource has been attached to an HTMLMediaElement!");var e=this._mediaSource=new window.MediaSource;e.addEventListener("sourceopen",this.e.onSourceOpen),e.addEventListener("sourceended",this.e.onSourceEnded),e.addEventListener("sourceclose",this.e.onSourceClose),this._mediaElement=t,this._mediaSourceObjectURL=window.URL.createObjectURL(this._mediaSource),t.src=this._mediaSourceObjectURL;var i=this;t.addEventListener("timeupdate",(function(){var e=Math.floor(t.currentTime);i._hlsSeekTime>0&&(e=e-i._lastPlayTime+i._hlsSeekTime),i._currentPlayTime!=e&&(i._currentPlayTime=e,i._emitter&&i._emitter.emit(At.CB_PLAY_INFO))}),!1)},e.getCurrentPlayTime=function(){return this._currentPlayTime},e.getTotalDuration=function(){return this._mediaElement.duration},e.detachMediaElement=function(){if(this._mediaSource){var t=this._mediaSource;for(var e in this._sourceBuffers){var i=this._pendingSegments[e];i.splice(0,i.length),this._pendingSegments[e]=null,this._pendingRemoveRanges[e]=null,this._lastInitSegments[e]=null;var r=this._sourceBuffers[e];if(r){if("closed"!==t.readyState){try{t.removeSourceBuffer(r)}catch(t){c.a.e(this.TAG,t.message)}r.removeEventListener("error",this.e.onSourceBufferError),r.removeEventListener("updateend",this.e.onSourceBufferUpdateEnd)}this._mimeTypes[e]=null,this._sourceBuffers[e]=null}}if("open"===t.readyState)try{t.endOfStream()}catch(t){c.a.e(this.TAG,t.message)}t.removeEventListener("sourceopen",this.e.onSourceOpen),t.removeEventListener("sourceended",this.e.onSourceEnded),t.removeEventListener("sourceclose",this.e.onSourceClose),this._pendingSourceBufferInit=[],this._isBufferFull=!1,this._idrList.clear(),this._mediaSource=null}this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src"),this._mediaElement=null),this._mediaSourceObjectURL&&(window.URL.revokeObjectURL(this._mediaSourceObjectURL),this._mediaSourceObjectURL=null)},e.appendInitSegment=function(t,e){if(!this._mediaSource||"open"!==this._mediaSource.readyState)return this._pendingSourceBufferInit.push(t),void this._pendingSegments[t.type].push(t);var i=t,r=""+i.container;i.codec&&i.codec.length>0&&(r+=";codecs="+i.codec);var n=!1;if(this._lastInitSegments[i.type]=i,r!==this._mimeTypes[i.type]){if(this._mimeTypes[i.type])c.a.v(this.TAG,"Notice: "+i.type+" mimeType changed, origin: "+this._mimeTypes[i.type]+", target: "+r);else{n=!0;try{var o=this._sourceBuffers[i.type]=this._mediaSource.addSourceBuffer(r);o.addEventListener("error",this.e.onSourceBufferError),o.addEventListener("updateend",this.e.onSourceBufferUpdateEnd)}catch(t){return c.a.e(this.TAG,t.message),void this._emitter.emit(At.ERROR,{code:t.code,msg:t.message})}}this._mimeTypes[i.type]=r}e||this._pendingSegments[i.type].push(i),n||this._sourceBuffers[i.type]&&!this._sourceBuffers[i.type].updating&&this._doAppendSegments(),m.safari&&"audio/mpeg"===i.container&&i.mediaDuration>0&&(this._requireSetMediaDuration=!0,this._pendingMediaDuration=i.mediaDuration/1e3,this._updateMediaSourceDuration())},e.appendMediaSegment=function(t){var e=t;this._pendingSegments[e.type].push(e),(this._config.autoCleanupSourceBuffer&&this._needCleanupSourceBuffer()||this._seek)&&(this._doCleanupSourceBuffer(),this._seek=!1);var i=this._sourceBuffers[e.type];!i||i.updating||this._hasPendingRemoveRanges()||this._doAppendSegments()},e.reset=function(t){for(var e in this._sourceBuffers){var i=this._sourceBuffers[e];if(i){for(var r=i.buffered,n=!1,o=0;o<r.length;o++){var a=r.start(o),s=r.end(o);n=!0,this._pendingRemoveRanges[e].push({start:a,end:s})}n&&!i.updating&&this._doRemoveRanges()}}this._mediaElement.currentTime=1,t&&this._mediaElement.play()},e.seek=function(t){for(var e in this._sourceBuffers)if(this._sourceBuffers[e]){var i=this._sourceBuffers[e];if("open"===this._mediaSource.readyState)try{i.abort()}catch(t){c.a.e(this.TAG,t.message)}this._idrList.clear();var r=this._pendingSegments[e];if(r.splice(0,r.length),"closed"!==this._mediaSource.readyState){for(var n=0;n<i.buffered.length;n++){var o=i.buffered.start(n),a=i.buffered.end(n);this._pendingRemoveRanges[e].push({start:o,end:a})}if(i.updating||this._doRemoveRanges(),m.safari){var s=this._lastInitSegments[e];s&&(this._pendingSegments[e].push(s),i.updating||this._doAppendSegments())}}}},e.endOfStream=function(){var t=this._mediaSource,e=this._sourceBuffers;t&&"open"===t.readyState?e.video&&e.video.updating||e.audio&&e.audio.updating?this._hasPendingEos=!0:(this._hasPendingEos=!1,t.endOfStream()):t&&"closed"===t.readyState&&this._hasPendingSegments()&&(this._hasPendingEos=!0)},e.getNearestKeyframe=function(t){return this._idrList.getLastSyncPointBeforeDts(t)},e._needCleanupSourceBuffer=function(){if(!this._config.autoCleanupSourceBuffer)return!1;var t=this._mediaElement.currentTime;for(var e in this._sourceBuffers){var i=this._sourceBuffers[e];if(i){var r=i.buffered;if(r.length>=1&&t-r.start(0)>=this._config.autoCleanupMaxBackwardDuration)return!0}}return!1},e.GetSourceBufferStartTime=function(){for(var t in this._sourceBuffers){var e=this._sourceBuffers[t];if(e)for(var i=e.buffered,r=0;r<i.length;r++){var n=i.start(r);return n+(i.end(r)-n)/2}}},e._doCleanupSourceBuffer=function(){var t=this._mediaElement.currentTime;for(var e in this._sourceBuffers){var i=this._sourceBuffers[e];if(i){for(var r=i.buffered,n=!1,o=0;o<r.length;o++){var a=r.start(o),s=r.end(o);if(a<=t&&t<s+3){if(t-a>=this._config.autoCleanupMaxBackwardDuration){n=!0;var h=t-this._config.autoCleanupMinBackwardDuration;this._pendingRemoveRanges[e].push({start:a,end:h})}}else s<t&&(n=!0,this._pendingRemoveRanges[e].push({start:a,end:s}))}n&&!i.updating&&this._doRemoveRanges()}}},e.__ClearAllSourceBuffer=function(){for(var t in this._sourceBuffers){var e=this._sourceBuffers[t];if(e){for(var i=e.buffered,r=!1,n=0;n<i.length;n++){var o=i.start(n),a=i.end(n);r=!0,this._pendingRemoveRanges[t].push({start:o,end:a})}r&&!e.updating&&this._doRemoveRanges()}}},e._updateMediaSourceDuration=function(){var t=this._sourceBuffers;if(0!==this._mediaElement.readyState&&"open"===this._mediaSource.readyState&&!(t.video&&t.video.updating||t.audio&&t.audio.updating)){var e=this._mediaSource.duration,i=this._pendingMediaDuration;i>0&&(isNaN(e)||i>e)&&(c.a.v(this.TAG,"Update MediaSource duration from "+e+" to "+i),this._mediaSource.duration=i),this._requireSetMediaDuration=!1,this._pendingMediaDuration=0}},e._doRemoveRanges=function(){for(var t in this._pendingRemoveRanges)if(this._sourceBuffers[t]&&!this._sourceBuffers[t].updating)for(var e=this._sourceBuffers[t],i=this._pendingRemoveRanges[t];i.length&&!e.updating;){var r=i.shift();e.remove(r.start,r.end)}},e._doAppendSegments=function(){var t=this._pendingSegments;for(var e in t)if(this._sourceBuffers[e]&&!this._sourceBuffers[e].updating&&t[e].length>0){var i=t[e].shift();if(i.timestampOffset){var n=this._sourceBuffers[e].timestampOffset,o=i.timestampOffset/1e3;Math.abs(n-o)>.1&&(c.a.v(this.TAG,"Update MPEG audio timestampOffset from "+n+" to "+o),this._sourceBuffers[e].timestampOffset=o),delete i.timestampOffset}if(!i.data||0===i.data.byteLength)continue;try{this._sourceBuffers[e].appendBuffer(i.data),this._isBufferFull=!1,"video"===e&&i.hasOwnProperty("info")&&this._idrList.appendArray(i.info.syncPoints),r.ClearAppendBufferError()}catch(t){this._pendingSegments[e].unshift(i),r.SetAppendBufferError(e),this.__ClearAllSourceBuffer(),22===t.code?(this._isBufferFull||this._emitter.emit(At.BUFFER_FULL),this._isBufferFull=!0):(c.a.e(this.TAG,t.message),this._emitter.emit(At.ERROR,{code:t.code,msg:t.message}))}}},e._onSourceOpen=function(){if(this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._pendingSourceBufferInit.length>0)for(var t=this._pendingSourceBufferInit;t.length;){var e=t.shift();this.appendInitSegment(e,!0)}this._hasPendingSegments()&&this._doAppendSegments(),this._emitter.emit(At.SOURCE_OPEN)},e._onSourceEnded=function(){c.a.v(this.TAG,"MediaSource onSourceEnded")},e._onSourceClose=function(){c.a.v(this.TAG,"MediaSource onSourceClose"),this._mediaSource&&null!=this.e&&(this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._mediaSource.removeEventListener("sourceended",this.e.onSourceEnded),this._mediaSource.removeEventListener("sourceclose",this.e.onSourceClose))},e._hasPendingSegments=function(){var t=this._pendingSegments;return t.video.length>0||t.audio.length>0},e._hasPendingRemoveRanges=function(){var t=this._pendingRemoveRanges;return t.video.length>0||t.audio.length>0},e._onSourceBufferUpdateEnd=function(){this._requireSetMediaDuration?this._updateMediaSourceDuration():this._hasPendingRemoveRanges()?this._doRemoveRanges():this._hasPendingSegments()?this._doAppendSegments():this._hasPendingEos&&this.endOfStream(),this._emitter.emit(At.UPDATE_END)},e._onSourceBufferError=function(t){c.a.e(this.TAG,"SourceBuffer Error: "+t)},t}(),St="NetworkError",kt="MediaError",Tt=(D.a.FORMAT_ERROR,D.a.FORMAT_UNSUPPORTED,D.a.CODEC_UNSUPPORTED,{enableWorker:!1,enableStashBuffer:!0,stashInitialSize:void 0,isLive:!1,lazyLoad:!0,lazyLoadMaxDuration:180,lazyLoadRecoverDuration:30,deferLoadAfterSourceOpen:!0,autoCleanupMaxBackwardDuration:180,autoCleanupMinBackwardDuration:120,statisticsInfoReportInterval:600,fixAudioTimestampGap:!0,accurateSeek:!1,seekType:"range",seekParamStart:"bstart",seekParamEnd:"bend",rangeLoadZeroStart:!1,customSeekHandler:void 0,reuseRedirectedURL:!1,headers:void 0,customLoader:void 0});function Rt(){return Object.assign({},Tt)}function It(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var Ct=function(){function t(t,e){if(this.TAG="FlvPlayer",this._type="FlvPlayer",this._emitter=new f.a,this._IsWasm=!1,this.callbackFunc=null,this.callbackPlayTimeFunc=null,this.callbackConnectStatusFunc=null,this.callbackUserPtr=null,this.getVideoInfoCallbackFunc=null,this.needCallPlay=!1,this.waitingForData=!1,this.playTally=0,this._config=Rt(),"object"==typeof e&&Object.assign(this._config,e),"soft"===e.decodeType&&(this._IsWasm=!0),"flv"!==t.type.toLowerCase()&&"m3u8"!==t.type.toLowerCase()&&"rtsp"!==t.type.toLowerCase())throw new C.b("FlvPlayer requires an flv MediaDataSource input!");this.isFlv=!0,"m3u8"===t.type.toLowerCase()&&(this.isFlv=!1),!0===t.isLive&&(this._config.isLive=!0),this.e={onvLoadedMetadata:this._onvLoadedMetadata.bind(this),onvSeeking:this._onvSeeking.bind(this),onvCanPlay:this._onvCanPlay.bind(this),onvStalled:this._onvStalled.bind(this),onvProgress:this._onvProgress.bind(this),onvWaiting:this._onvWaiting.bind(this),onvPlaying:this._onvPlaying.bind(this)},self.performance&&self.performance.now?this._now=self.performance.now.bind(self.performance):this._now=Date.now,this._pendingSeekTime=null,this._requestSetTime=!1,this._seekpointRecord=null,this._progressChecker=null,this._mediaDataSource=t,this._mediaCanvas=null,this._mediaElement=null,this._msectl=null,this._transmuxer=null,this._initFlag=!1,this._msectlInitSegmentVideoParams=null,this._msectlInitSegmentAudioParams=null,this._msectlResetComplete=!0,this._mseSourceOpened=!1,this._hasPendingLoad=!1,this._receivedCanPlay=!1,this._mediaInfo=null,this._statisticsInfo=null;var i=m.chrome&&(m.version.major<50||50===m.version.major&&m.version.build<2661);this._alwaysSeekKeyframe=!!(i||m.msedge||m.msie),this._alwaysSeekKeyframe&&(this._config.accurateSeek=!1)}var e,i,n,o=t.prototype;return o.destroy=function(){null!=this._progressChecker&&(window.clearInterval(this._progressChecker),this._progressChecker=null),this._transmuxer&&this.unload(),this._mediaElement&&this.detachMediaElement(),this.e=null,this._mediaDataSource=null,this._emitter.removeAllListeners(),this._emitter=null},o.on=function(t,e){var i=this;t===g.MEDIA_INFO?null!=this._mediaInfo&&Promise.resolve().then((function(){i._emitter.emit(g.MEDIA_INFO,i.mediaInfo)})):t===g.STATISTICS_INFO&&null!=this._statisticsInfo&&Promise.resolve().then((function(){i._emitter.emit(g.STATISTICS_INFO,i.statisticsInfo)})),this._emitter.addListener(t,e)},o.off=function(t,e){this._emitter.removeListener(t,e)},o.attachMediaElement=function(t,e){var i=this;if(this._mediaCanvas=e,!this._IsWasm&&(this._mediaElement=t,t.addEventListener("loadedmetadata",this.e.onvLoadedMetadata),t.addEventListener("seeking",this.e.onvSeeking),t.addEventListener("canplay",this.e.onvCanPlay),t.addEventListener("stalled",this.e.onvStalled),t.addEventListener("progress",this.e.onvProgress),t.addEventListener("waiting",this.e.onvWaiting),t.addEventListener("playing",this.e.onvPlaying),this._msectl=new Et(this._config),this._msectl.setSeekPlayTime(this._mediaDataSource.startPlaySecs),this._msectl.on(At.CB_PLAY_INFO,this._onmseCbPlayInfo.bind(this)),this._msectl.on(At.UPDATE_END,this._onmseUpdateEnd.bind(this)),this._msectl.on(At.BUFFER_FULL,this._onmseBufferFull.bind(this)),this._msectl.on(At.SOURCE_OPEN,(function(){i._mseSourceOpened=!0,i._hasPendingLoad&&(i._hasPendingLoad=!1,i.load())})),this._msectl.on(At.ERROR,(function(t){i.ReCreateMSECtl()})),this._msectl.on(At.CHANGE_SPEED,(function(t){i._transmuxer&&i._transmuxer.changeSpeed(t.speed)})),this._msectl.attachMediaElement(t),null!=this._pendingSeekTime))try{t.currentTime=this._pendingSeekTime,this._pendingSeekTime=null}catch(t){}},o.detachMediaElement=function(){this._IsWasm||(this._mediaElement&&(this._msectl.detachMediaElement(),this._mediaElement.removeEventListener("loadedmetadata",this.e.onvLoadedMetadata),this._mediaElement.removeEventListener("seeking",this.e.onvSeeking),this._mediaElement.removeEventListener("canplay",this.e.onvCanPlay),this._mediaElement.removeEventListener("stalled",this.e.onvStalled),this._mediaElement.removeEventListener("progress",this.e.onvProgress),this._mediaElement=null),this._msectl&&(this._msectl.destroy(),this._msectl=null))},o.ReCreateMSECtl=function(){var t=this;this._msectlResetComplete=!1,this._msectl&&(this._mediaElement&&this._msectl.detachMediaElement(),this._msectl.destroy(),this._msectl=null),this._msectl=new Et(this._config),this._msectl.setSeekPlayTime(this._mediaDataSource.startPlaySecs),this._msectl.on(At.CB_PLAY_INFO,this._onmseCbPlayInfo.bind(this)),this._msectl.on(At.UPDATE_END,this._onmseUpdateEnd.bind(this)),this._msectl.on(At.BUFFER_FULL,this._onmseBufferFull.bind(this)),this._msectl.on(At.SOURCE_OPEN,(function(){t._mseSourceOpened=!0,t._msectlInitSegmentVideoParams&&t._msectl.appendInitSegment(t._msectlInitSegmentVideoParams),t._msectlInitSegmentAudioParams&&!r.GetAppendBufferError().audio?t._msectl.appendInitSegment(t._msectlInitSegmentAudioParams):t._msectlInitSegmentAudioParams&&r.GetAppendBufferError().audio&&r.SetEnableAudio(!1),r.ClearAppendBufferError(),t._msectlResetComplete=!0})),this._msectl.on(At.ERROR,(function(e){t.ReCreateMSECtl()})),this._msectl.on(At.CHANGE_SPEED,(function(e){t._transmuxer&&t._transmuxer.changeSpeed(e.speed)})),this._msectl.attachMediaElement(this._mediaElement),this._transmuxer&&this._transmuxer.seekToSecs(0,0)},o.callbackWasmType=function(t,e){t._IsWasm=e,t.callbackToParent(),t.needCallPlay&&(t.needCallPlay=!1,e||t.play())},o.callbackToParent=function(){this.callbackFunc&&this.callbackFunc(this.callbackUserPtr,this.isFlv?"flv":"m3u8",this._IsWasm)},o.setCallback=function(t,e,i,r,n){this.callbackFunc=t,this.callbackPlayTimeFunc=e,this.callbackConnectStatusFunc=i,this.callbackUserPtr=r,this.getVideoInfoCallbackFunc=n},o.load=function(){var t=this;if(!this._IsWasm){if(!this._mediaElement)throw new C.a("HTMLMediaElement must be attached before load()!");if(this._transmuxer)throw new C.a("FlvPlayer.load() has been called, please call unload() first!");if(this._hasPendingLoad)return;if(this._config.deferLoadAfterSourceOpen&&!1===this._mseSourceOpened)return void(this._hasPendingLoad=!0);this._mediaElement.readyState>0&&(this._requestSetTime=!0,this._mediaElement.currentTime=0)}this._transmuxer=new Mt(this._mediaDataSource,this._config,this._mediaCanvas,this,this.callbackWasmType,this.callbackPlayTimeFunc,this.callbackUserPtr,this.getVideoInfoCallbackFunc),this._transmuxer.on(ft.INIT_SEGMENT,(function(e,i){t._IsWasm||(t._initFlag=!0,t._msectl.appendInitSegment(i),"video"===e?t._msectlInitSegmentVideoParams=i:"audio"===e&&(t._msectlInitSegmentAudioParams=i))})),this._transmuxer.on(ft.MEDIA_SEGMENT,(function(e,i){if(t._IsWasm||t._msectlResetComplete&&t._msectl.appendMediaSegment(i),t._config.lazyLoad&&!t._config.isLive){var r=t._mediaElement.currentTime;i.info.endDts>=1e3*(r+t._config.lazyLoadMaxDuration)&&null==t._progressChecker&&(c.a.v(t.TAG,"Maximum buffering duration exceeded, suspend transmuxing task"),t._suspendTransmuxer())}})),this._transmuxer.on(ft.LOADING_COMPLETE,(function(){t._IsWasm||t._msectl.endOfStream(),t._emitter.emit(g.LOADING_COMPLETE)})),this._transmuxer.on(ft.RECOVERED_EARLY_EOF,(function(){t._emitter.emit(g.RECOVERED_EARLY_EOF)})),this._transmuxer.on(ft.IO_ERROR,(function(e,i){t._emitter.emit(g.ERROR,St,e,i)})),this._transmuxer.on(ft.DEMUX_ERROR,(function(e,i){t._emitter.emit(g.ERROR,kt,e,{code:-1,msg:i})})),this._transmuxer.on(ft.MEDIA_INFO,(function(e){t._mediaInfo=e,t._emitter.emit(g.MEDIA_INFO,Object.assign({},e))})),this._transmuxer.on(ft.METADATA_ARRIVED,(function(e){t._emitter.emit(g.METADATA_ARRIVED,e)})),this._transmuxer.on(ft.SCRIPTDATA_ARRIVED,(function(e){t._emitter.emit(g.SCRIPTDATA_ARRIVED,e)})),this._transmuxer.on(ft.STATISTICS_INFO,(function(e){t._statisticsInfo=t._fillStatisticsInfo(e),t._emitter.emit(g.STATISTICS_INFO,Object.assign({},t._statisticsInfo))})),this._transmuxer.on(ft.RECOMMEND_SEEKPOINT,(function(e){t._mediaElement&&!t._config.accurateSeek&&(t._requestSetTime=!0,t._mediaElement.currentTime=e/1e3)})),this._transmuxer.on(ft.RECONNECT_ING,(function(e){t.callbackConnectStatusFunc&&t.callbackConnectStatusFunc(t.callbackUserPtr,0)})),this._transmuxer.on(ft.RECONNECT_SUCCESS,(function(e){t._IsWasm||(e>1&&t._msectl&&(t._transmuxer.seekToSecs(0,0),t._msectl.reset(!0)),t._mediaElement),t.callbackConnectStatusFunc&&t.callbackConnectStatusFunc(t.callbackUserPtr,1)})),this._transmuxer.on(At.CB_PLAY_INFO,this._onmseCbPlayInfo.bind(this)),this._transmuxer.open()},o.unload=function(){this._IsWasm||(this._mediaElement&&this._mediaElement.pause(),this._msectl&&this._msectl.seek(0)),this._transmuxer&&(this._transmuxer.close(),this._transmuxer.destroy(),this._transmuxer=null),this._initFlag=!1},o.play=function(){return null==this._transmuxer?(this.needCallPlay=!0,this._mediaElement&&(this._mediaElement.volume=0),!1):this._mediaElement?(this.needCallPlay=!1,this._mediaElement.play()):void 0},o.pause=function(){this._transmuxer&&this._transmuxer.pause(),this._mediaElement&&this._mediaElement.pause(),this._msectl&&this._msectl.pause()},o.resume=function(){this._transmuxer&&this._transmuxer.resume(),this._msectl&&(r.GetLiveStreamType()&&this._msectl.reset(!1),this._msectl.resume()),this._mediaElement&&this._mediaElement.play()},o.rtspScale=function(t,e){this._transmuxer&&this._transmuxer.rtspScale(t,e)},o.openAudio=function(){if(this._IsWasm){if(this._transmuxer)return this._transmuxer.openAudio()}else if(this._mediaElement)return this._mediaElement.volume=1,!0;return!1},o.closeAudio=function(){if(this._IsWasm){if(this._transmuxer)return this._transmuxer.closeAudio()}else if(this._mediaElement)return this._mediaElement.volume=0,!0;return!1},o.seek=function(t,e){if(!this._IsWasm&&this.isFlv&&this._mediaElement&&this._mediaElement.duration>0){var i=Math.floor(t/100*this._mediaElement.duration);return this._mediaElement?this._internalSeek(i):this._pendingSeekTime=i,!0}if(this._transmuxer){var r=Math.floor(t/100*this._transmuxer.getTotalDuration());return this._msectl&&this._msectl.getCurrentPlayTime()==r||(this._transmuxer.seekToSecs(t,e),this._msectl&&(this._msectl.setSeekPlayTime(r),this._msectl.reset(!0)),this._mediaElement?(Math.floor(this._mediaElement.currentTime),Math.floor(r),this._progressChecker):this._pendingSeekTime=r),!0}},o._fillStatisticsInfo=function(t){if(t.playerType=this._type,!(this._mediaElement instanceof HTMLVideoElement))return t;var e=!0,i=0,r=0;if(this._mediaElement.getVideoPlaybackQuality){var n=this._mediaElement.getVideoPlaybackQuality();i=n.totalVideoFrames,r=n.droppedVideoFrames}else null!=this._mediaElement.webkitDecodedFrameCount?(i=this._mediaElement.webkitDecodedFrameCount,r=this._mediaElement.webkitDroppedFrameCount):e=!1;return e&&(t.decodedFrames=i,t.droppedFrames=r),t},o._onmseCbPlayInfo=function(){if(this._transmuxer){var t=0,e=0;!this._IsWasm&&this._msectl?(t=this._msectl.getCurrentPlayTime(),(e=this._msectl.getTotalDuration())!=1/0||r.GetLiveStreamType()||(e=this._transmuxer.getTotalDuration())):((t=this._transmuxer.getCurrentPlayTime())<0&&(t=0),e=this._transmuxer.getTotalDuration()),this.callbackPlayTimeFunc&&this.callbackPlayTimeFunc(this.callbackUserPtr,this.isFlv?"flv":"m3u8",t,e)}},o._onmseUpdateEnd=function(){if(this._config.lazyLoad&&!this._config.isLive){for(var t=this._mediaElement.buffered,e=this._mediaElement.currentTime,i=0,r=0;r<t.length;r++){var n=t.start(r),o=t.end(r);if(n<=e&&e<o){n,i=o;break}}i>=e+this._config.lazyLoadMaxDuration&&null==this._progressChecker&&(c.a.v(this.TAG,"onmseUpdateEnd::Maximum buffering duration exceeded, suspend transmuxing task"),this._suspendTransmuxer())}},o._onmseBufferFull=function(){c.a.v(this.TAG,"MSE SourceBuffer is full, suspend transmuxing task"),null==this._progressChecker&&this._suspendTransmuxer()},o._suspendTransmuxer=function(){this._transmuxer&&(this._transmuxer.pause(),null==this._progressChecker&&(this._progressChecker=window.setInterval(this._checkProgressAndResume.bind(this),1e3)))},o._checkProgressAndResume=function(){if(null!=this._mediaElement){for(var t=this._mediaElement.currentTime,e=this._mediaElement.buffered,i=!1,r=0;r<e.length;r++){var n=e.start(r),o=e.end(r);if(t>=n&&t<o){t>=o-this._config.lazyLoadRecoverDuration&&(i=!0);break}}i&&(window.clearInterval(this._progressChecker),this._progressChecker=null,i&&(c.a.v(this.TAG,"Continue loading from paused position"),this._transmuxer.resume()))}},o._isTimepointBuffered=function(t){for(var e=this._mediaElement.buffered,i=0;i<e.length;i++){var r=e.start(i),n=e.end(i);if(t>=r&&t<n)return!0}return!1},o._internalSeek=function(t){var e=this._isTimepointBuffered(t),i=!1,r=0;if(t<1&&this._mediaElement.buffered.length>0){var n=this._mediaElement.buffered.start(0);(n<1&&t<n||m.safari)&&(i=!0,r=m.safari?.1:n)}if(i)this._requestSetTime=!0,this._mediaElement.currentTime=r;else if(e){if(this._alwaysSeekKeyframe){var o=this._msectl.getNearestKeyframe(Math.floor(1e3*t));this._requestSetTime=!0,this._mediaElement.currentTime=null!=o?o.dts/1e3:t}else this._requestSetTime=!0,this._mediaElement.currentTime=t;null!=this._progressChecker&&this._checkProgressAndResume()}else null!=this._progressChecker&&(window.clearInterval(this._progressChecker),this._progressChecker=null),this._msectl.seek(t),this._transmuxer.seek(Math.floor(1e3*t)),this._config.accurateSeek&&(this._requestSetTime=!0,this._mediaElement.currentTime=t)},o._checkAndApplyUnbufferedSeekpoint=function(){},o._checkAndResumeStuckPlayback=function(t){},o._onvLoadedMetadata=function(t){null!=this._pendingSeekTime&&(this._mediaElement.currentTime=this._pendingSeekTime,this._pendingSeekTime=null)},o._onvSeeking=function(t){var e=this._mediaElement.currentTime,i=this._mediaElement.buffered;if(this._requestSetTime)this._requestSetTime=!1;else{if(e<1&&i.length>0){var r=i.start(0);if(r<1&&e<r||m.safari)return this._requestSetTime=!0,void(this._mediaElement.currentTime=m.safari?.1:r)}if(this._isTimepointBuffered(e)){if(this._alwaysSeekKeyframe){var n=this._msectl.getNearestKeyframe(Math.floor(1e3*e));null!=n&&(this._requestSetTime=!0,this._mediaElement.currentTime=n.dts/1e3)}null!=this._progressChecker&&this._checkProgressAndResume()}else this._seekpointRecord={seekPoint:e,recordTime:this._now()},window.setTimeout(this._checkAndApplyUnbufferedSeekpoint.bind(this),50)}},o._onvCanPlay=function(t){this._receivedCanPlay=!0,this._mediaElement.removeEventListener("canplay",this.e.onvCanPlay)},o._onvStalled=function(t){this._checkAndResumeStuckPlayback(!0)},o._onvProgress=function(t){this._checkAndResumeStuckPlayback()},o._onvWaiting=function(t){},o._onvPlaying=function(t){this.waitingForData=!1,this.playTally++},o.snapshot=function(){this._transmuxer&&null!=this._transmuxer&&this._transmuxer.snapshot()},e=t,(i=[{key:"type",get:function(){return this._type}},{key:"buffered",get:function(){return this._mediaElement.buffered}},{key:"duration",get:function(){return this._mediaElement.duration}},{key:"volume",get:function(){return this._mediaElement.volume},set:function(t){this._mediaElement.volume=t}},{key:"muted",get:function(){return this._mediaElement.muted},set:function(t){this._mediaElement.muted=t}},{key:"currentTime",get:function(){return this._mediaElement?this._mediaElement.currentTime:0},set:function(t){this._mediaElement?this._internalSeek(t):this._pendingSeekTime=t}},{key:"mediaInfo",get:function(){return Object.assign({},this._mediaInfo)}},{key:"statisticsInfo",get:function(){return null==this._statisticsInfo&&(this._statisticsInfo={}),this._statisticsInfo=this._fillStatisticsInfo(this._statisticsInfo),Object.assign({},this._statisticsInfo)}}])&&It(e.prototype,i),n&&It(e,n),Object.defineProperty(e,"prototype",{writable:!1}),t}();function Pt(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var xt=function(){function t(t,e,i,r,n,o,a,s,h){var u=this;this.url="",this.downloadWorker=null,this.decodeWorker=null,this.renderWorker=null,this.audioWorker=null,this.printStatInfo=!1,this.pauseDisplay=!1,this.enableLog=!1,this.streamType=t,this.h5Video=e,this.canvas=i,this.flvPlayer=null,this.decodeType=r,this.callbackFunc=n,this.callbackPlayTimeFunc=o,this.callbackConnectStatusFunc=a,this.callbackUserPtr=s,this.getVideoInfoCallbackFunc=h,this.avQueue=[],this.webGLPlayer=null,this.soundPlayer=null,this.fullScreenFlag=!1,this._statisticsInfo=null,this._mediaInfo=null,this._emitter=new f.a,this.skipTimer=null,this.h5Video.addEventListener("play",(function(t){u.manualFrameSkipping()})),this.h5Video.addEventListener("pause",(function(t){u.skipTimer&&(clearInterval(u.skipTimer),u.skipTimer=null)}))}var e,i,n,o=t.prototype;return o.manualFrameSkipping=function(){var t=this;if("m3u8"===this.streamType)return!1;this.skipTimer&&(clearInterval(this.skipTimer),this.skipTimer=null),this.skipTimer=setInterval((function(){t.flvPlayer&&t.flvPlayer.buffered.length&&(t.flvPlayer.buffered.end(0)-t.flvPlayer.currentTime>=.7?t.flvPlayer.currentTime=t.flvPlayer.buffered.end(0)-.3:t.flvPlayer.playbackRate=1)}),2e3)},o.destroy=function(){if(this.webGLPlayer&&this.webGLPlayer.renderVideoFrame(null,0,0),this.renderWorker){var t={cmd:r.tCloseStream};this.renderWorker.postMessage(t)}this.soundPlayer&&(this.soundPlayer.destroy(),delete this.soundPlayer,this.soundPlayer=null),this.webGLPlayer&&this.webGLPlayer.destroy(),this.flvPlayer&&(this.flvPlayer.destroy(),this.flvPlayer=null),this._emitter&&(this._emitter.removeAllListeners(),this._emitter=null),this.skipTimer&&(clearInterval(this.skipTimer),this.skipTimer=null)},o.on=function(t,e){var i=this;t===g.MEDIA_INFO?null!=this._mediaInfo&&Promise.resolve().then((function(){i._emitter.emit(g.MEDIA_INFO,i.mediaInfo)})):t===g.STATISTICS_INFO&&null!=this._statisticsInfo&&Promise.resolve().then((function(){i._emitter.emit(g.STATISTICS_INFO,i.statisticsInfo)})),this._emitter.addListener(t,e)},o.off=function(t,e){this._emitter.removeListener(t,e)},o.logD=function(t){this.enableLog},o.createDecodeWorker=function(){var t;if(this.logD("create decode worker..."),this.decodeWorker=void 0,"undefined"!=typeof Worker)try{t=this.decodeWorker=u(41),this.onwmsg=this.onWorkerMessage.bind(this);var e={cmd:r.tOpenStream,url:r.getFullURL(),isFlv:!0};t.postMessage(e),t.addEventListener("message",this.onwmsg),t.onerror=function(t){}}catch(t){this.w=void 0}},o.createAudioWorker=function(){var t;if(this.logD("create audio play worker..."),this.audioWorker=void 0,"undefined"!=typeof Worker)try{t=this.audioWorker=u(246),this.onwmsg=this.onWorkerMessage.bind(this);var e={cmd:r.tOpenStream};t.postMessage(e),t.addEventListener("message",this.onwmsg),t.onerror=function(t){}}catch(t){this.audioWorker=void 0}this.audioWorker},o.decodeAndDisplayLoop=function(){if(!(this.avQueue.length<1))for(;this.avQueue.length>0;){this.avQueue[0];this.avQueue.shift()}},o.play=function(t,e){var i=this;return this.pauseDisplay?this.resume():(this.url=t,null==this.flvPlayer&&(this.flvPlayer=new Ct({type:this.streamType,isLive:!0,url:t,startPlaySecs:e,hasAudio:!0,withCredentials:!1},{streamType:this.streamType,enableWorker:!1,lazyLoadMaxDuration:"flv"===this.streamType||"rtsp"===this.streamType?2:180,lazyLoadRecoverDuration:"flv"===this.streamType||"rtsp"===this.streamType?1:30,deferLoadAfterSourceOpen:!0,autoCleanupMaxBackwardDuration:"flv"===this.streamType||"rtsp"===this.streamType?5:180,autoCleanupMinBackwardDuration:"flv"===this.streamType||"rtsp"===this.streamType?3:120,seekType:"range",enableStashBuffer:!1,decodeType:this.decodeType}),"flv"!==this.streamType&&"rtsp"!==this.streamType||r.setLiveStreamType(!0)),this.flvPlayer.setCallback(this.callbackFunc,this.callbackPlayTimeFunc,this.callbackConnectStatusFunc,this.callbackUserPtr,this.getVideoInfoCallbackFunc),this.flvPlayer.attachMediaElement(this.h5Video,this.canvas),this.flvPlayer.load(),this.flvPlayer.play(),this.flvPlayer.on("statistics_info",(function(t){i._statisticsInfo=t,i._emitter.emit(g.STATISTICS_INFO,t)}))),!0},o.stop=function(){return this.pauseDisplay=!1,this.destroy(),!0},o.isPause=function(){return this.pauseDisplay},o.pause=function(){this.pauseDisplay=!0,this.flvPlayer&&this.flvPlayer.pause()},o.resume=function(){this.pauseDisplay=!1,this.flvPlayer&&this.flvPlayer.resume()},o.rtspScale=function(t,e){this.flvPlayer&&this.flvPlayer.rtspScale(t,e)},o.seek=function(t,e){this.pauseDisplay=!1,this.flvPlayer&&this.flvPlayer.seek(t,e)},o.setTrack=function(t,e){},o.openAudio=function(){return!!this.flvPlayer&&this.flvPlayer.openAudio()},o.closeAudio=function(){return!!this.flvPlayer&&this.flvPlayer.closeAudio()},o.openStatinfo=function(){return this.printStatInfo=!0,!0},o.closeStatinfo=function(){return this.printStatInfo=!1,!0},o.snapshot=function(){this.flvPlayer&&null!=this.flvPlayer&&this.flvPlayer.snapshot()},o.isFullScreen=function(){return this.fullScreenFlag},o.canvasFullscreen=function(){var t=this.canvas;t.RequestFullScreen?t.RequestFullScreen():t.webkitRequestFullScreen?t.webkitRequestFullScreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.msRequestFullscreen?t.msRequestFullscreen():r.MediaWorkerLog("This browser doesn't supporter fullscreen")},o.canvasExitFullscreen=function(){document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen?document.msExitFullscreen():r.MediaWorkerLog("Exit fullscreen doesn't work")},o.fullscreen=function(t){if(1==t){if(!this.fullScreenFlag)return this.canvasFullscreen(),this.fullScreenFlag=!0,!0}else if(this.fullScreenFlag)return this.canvasExitFullscreen(),this.fullScreenFlag=!1,!0;return!1},e=t,(i=[{key:"mediaInfo",get:function(){return Object.assign({},this._mediaInfo)}},{key:"statisticsInfo",get:function(){return Object.assign({},this._statisticsInfo)}}])&&Pt(e.prototype,i),n&&Pt(e,n),Object.defineProperty(e,"prototype",{writable:!1}),t}();function Dt(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var Ot=function(){function t(t,e,i,r,n){if(this.TAG="NativePlayer",this._type="NativePlayer",this._emitter=new f.a,this._config=Rt(),"object"==typeof n&&Object.assign(this._config,n),"flv"===t.type.toLowerCase())throw new C.b("NativePlayer does't support flv MediaDataSource input!");if(t.hasOwnProperty("segments"))throw new C.b("NativePlayer("+t.type+") doesn't support multipart playback!");this.e={onvLoadedMetadata:this._onvLoadedMetadata.bind(this)},this._pendingSeekTime=null,this._statisticsReporter=null,this._mediaDataSource=t,this._mediaElement=null,this.pauseDisplay=!1,this.h5Video=e,this.callbackPlayTimeFunc=i,this.callbackUserPtr=r}var e,i,r,n=t.prototype;return n.destroy=function(){this._mediaElement&&(this.unload(),this.detachMediaElement()),this.e=null,this._mediaDataSource=null,this._emitter.removeAllListeners(),this._emitter=null},n.on=function(t,e){var i=this;t===g.MEDIA_INFO?null!=this._mediaElement&&0!==this._mediaElement.readyState&&Promise.resolve().then((function(){i._emitter.emit(g.MEDIA_INFO,i.mediaInfo)})):t===g.STATISTICS_INFO&&null!=this._mediaElement&&0!==this._mediaElement.readyState&&Promise.resolve().then((function(){i._emitter.emit(g.STATISTICS_INFO,i.statisticsInfo)})),this._emitter.addListener(t,e)},n.off=function(t,e){this._emitter.removeListener(t,e)},n.attachMediaElement=function(t){if(this._mediaElement=t,t.addEventListener("loadedmetadata",this.e.onvLoadedMetadata),null!=this._pendingSeekTime)try{t.currentTime=this._pendingSeekTime,this._pendingSeekTime=null}catch(t){}},n.detachMediaElement=function(){this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src"),this._mediaElement.removeEventListener("loadedmetadata",this.e.onvLoadedMetadata),this._mediaElement=null),null!=this._statisticsReporter&&(window.clearInterval(this._statisticsReporter),this._statisticsReporter=null)},n.load=function(){if(!this._mediaElement)throw new C.a("HTMLMediaElement must be attached before load()!");this._mediaElement.src=this._mediaDataSource.url,this._mediaElement.readyState>0&&(this._mediaElement.currentTime=0),this._mediaElement.preload="auto",this._mediaElement.load(),this._statisticsReporter=window.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval)},n.unload=function(){this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src")),null!=this._statisticsReporter&&(window.clearInterval(this._statisticsReporter),this._statisticsReporter=null)},n.play=function(){return this.pauseDisplay||(this.attachMediaElement(this.h5Video),this.load()),this.pauseDisplay=!1,this._mediaElement.play()},n.stop=function(){this.unload(),this.detachMediaElement()},n.pause=function(){this._mediaElement.pause(),this.pauseDisplay=!0},n.isPause=function(){return this.pauseDisplay},n.openAudio=function(){return this._mediaElement.volume=1,!0},n.closeAudio=function(){return this._mediaElement.volume=0,!0},n.seek=function(t,e){var i=t;1==e&&(i=t/100*this._mediaElement.duration),this._mediaElement?this._mediaElement.currentTime=i:this._pendingSeekTime=i},n._onvLoadedMetadata=function(t){null!=this._pendingSeekTime&&(this._mediaElement.currentTime=this._pendingSeekTime,this._pendingSeekTime=null),this._emitter.emit(g.MEDIA_INFO,this.mediaInfo)},n._reportStatisticsInfo=function(){this._emitter.emit(g.STATISTICS_INFO,this.statisticsInfo)},e=t,(i=[{key:"type",get:function(){return this._type}},{key:"buffered",get:function(){return this._mediaElement.buffered}},{key:"duration",get:function(){return this._mediaElement.duration}},{key:"volume",get:function(){return this._mediaElement.volume},set:function(t){this._mediaElement.volume=t}},{key:"muted",get:function(){return this._mediaElement.muted},set:function(t){this._mediaElement.muted=t}},{key:"currentTime",get:function(){return this._mediaElement?this._mediaElement.currentTime:0},set:function(t){this._mediaElement?this._mediaElement.currentTime=t:this._pendingSeekTime=t}},{key:"mediaInfo",get:function(){var t={mimeType:(this._mediaElement instanceof HTMLAudioElement?"audio/":"video/")+this._mediaDataSource.type};if(this._mediaElement){t.duration=Math.floor(1e3*this._mediaElement.duration),this._mediaElement instanceof HTMLVideoElement&&(t.width=this._mediaElement.videoWidth,t.height=this._mediaElement.videoHeight),this.callbackPlayTimeFunc&&this.callbackPlayTimeFunc(this.callbackUserPtr,"mp4",this._mediaElement.currentTime,t.duration/1e3);var e=this,i=0,r=t.duration/1e3;this._mediaElement.addEventListener("timeupdate",(function(){if(e._mediaElement){var t=e._mediaElement.currentTime;if(null!=t){var n=Math.floor(t);i!=n&&(i=n,e.callbackPlayTimeFunc(e.callbackUserPtr,"mp4",i,r))}}}),!1)}return t}},{key:"statisticsInfo",get:function(){var t={playerType:this._type,url:this._mediaDataSource.url};if(!(this._mediaElement instanceof HTMLVideoElement))return t;var e=!0,i=0,r=0;if(this._mediaElement.getVideoPlaybackQuality){var n=this._mediaElement.getVideoPlaybackQuality();i=n.totalVideoFrames,r=n.droppedVideoFrames}else null!=this._mediaElement.webkitDecodedFrameCount?(i=this._mediaElement.webkitDecodedFrameCount,r=this._mediaElement.webkitDroppedFrameCount):e=!1;return e&&(t.decodedFrames=i,t.droppedFrames=r),t}}])&&Dt(e.prototype,i),r&&Dt(e,r),Object.defineProperty(e,"prototype",{writable:!1}),t}(),Bt=i(41);function Lt(t){return typeof t===Ft(214,"Fiv!")&&!isNaN(t)}function Wt(){var t=["WRBcPCkmtJHRW4mMWPpcI8o8ofi","sNNdOeVdSCkC","w1vfnmoInW","ithcJN09","WRCsWQifbq","WR4nWQeD","WP/dLCo3a0VdQgb0WRr0WR10","WPPAjmk2mMyIn8kyo8kn","W7ddR8kuASkZAa","w0ldSdCJWR/cI8kd","WQNdNCk7WOSqWRG+hvmmjXC","xqL2WQ0","khtdL8oCW6pdIstdLW","W6XZW67cMgbaWOlcJq","WP3dNCoZa0xcN258WOHYWOK","meFdLcldMCoxW71Dcuu3nW","mYxcLh/cKmkVW44","FbVcRNi","W6ldPSorfN44W7ubWRFcLCoRaq","W7BcJCoWW5O","WPldLSk5zd3cOKbl","BqKLWRBcPa","x8kJWOddTG","A8kwW6pcOmoLfgJdICkKWRZcUG9D","uSo2W5CWW6NdHq","c8k2WO9JWRJcN3G4xCkwW4al","WQhcPCkirIbNW6GT","eemwrW","WRi7WOnAW7ajW70","ySonE0LCb0C","mSoFW61+WQRdHtS","exrsj8oSed8","tCkQea","u2xcJem","AXWHWO7cTfZdVq","thJcL1dcMmo/","WROhWRmnfsXQ","kZ49W5ldMq3cQbW","W7BcTSkY","W6BdKSo1hehdTgRdUs8","gqasC8k5z0pdNCkWWR1VpWe","w1hdQYSIWR3cICkk","t1vqeSoOmH4","fc7cUXNcS8kDcCo4msNcRW","tSoRdwJdMJtdHSoOEexdIG","ef4avq","jYtcIKuTWRvZ","pbmjs8k8W6m","b2PgW50"];return(Wt=function(){return t})()}function Nt(t){if(!Lt(t))return 0;var e=parseInt(t/36e5),i=parseInt(t%36e5/6e4),r=parseInt(t%6e4/1e3);return(e<10?"0"+e:e)+":"+(i<10?"0"+i:i)+":"+(r<10?"0"+r:r)}function Ft(t,e){var i=Wt();return Ft=function(e,r){var n=i[e-=175];if(void 0===Ft.RuwVZq){var o=function(t){for(var e,i,r="",n="",o=0,a=0;i=t.charAt(a++);~i&&(e=o%4?64*e+i:i,o++%4)?r+=String.fromCharCode(255&e>>(-2*o&6)):0)i="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(i);for(var s=0,h=r.length;s<h;s++)n+="%"+("00"+r.charCodeAt(s).toString(16)).slice(-2);return decodeURIComponent(n)},a=function(t,e){var i,r,n=[],a=0,s="";for(t=o(t),r=0;r<256;r++)n[r]=r;for(r=0;r<256;r++)a=(a+n[r]+e.charCodeAt(r%e.length))%256,i=n[r],n[r]=n[a],n[a]=i;r=0,a=0;for(var h=0;h<t.length;h++)a=(a+n[r=(r+1)%256])%256,i=n[r],n[r]=n[a],n[a]=i,s+=String.fromCharCode(t.charCodeAt(h)^n[(n[r]+n[a])%256]);return s};Ft.wksTNG=a,t=arguments,Ft.RuwVZq=!0}var s=i[0],h=e+s,u=t[h];return u?n=u:(void 0===Ft.DqbBAI&&(Ft.DqbBAI=!0),n=Ft.wksTNG(n,r),t[h]=n),n},Ft(t,e)}function Ut(t){var e=Ft;return new Date(t||new Date)[e(191,"TOkq")]()}!function(t,e){for(var i=Ft,r=t();;)try{if(212490===parseInt(i(212,"r%hu"))/1+-parseInt(i(200,"dzzP"))/2*(parseInt(i(194,"SLqP"))/3)+parseInt(i(182,"Z1qM"))/4+parseInt(i(185,"^iAT"))/5*(-parseInt(i(175,"&vJN"))/6)+parseInt(i(180,"[OC1"))/7+parseInt(i(197,"R)EY"))/8*(parseInt(i(188,"R)EY"))/9)+parseInt(i(196,"cfLC"))/10*(-parseInt(i(201,"INWl"))/11))break;r.push(r.shift())}catch(t){r.push(r.shift())}}(Wt);var jt=function(){function t(){}return t.supportMSEH264Playback=function(){return window.MediaSource&&window.MediaSource.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"')},t.supportNetworkStreamIO=function(){var t=new dt({},Rt()),e=t.loaderType;return t.destroy(),"fetch-stream-loader"==e||"xhr-moz-chunked-loader"==e},t.getNetworkLoaderTypeName=function(){var t=new dt({},Rt()),e=t.loaderType;return t.destroy(),e},t.supportNativeMediaPlayback=function(e){null==t.videoElement&&(t.videoElement=window.document.createElement("video"));var i=t.videoElement.canPlayType(e);return"probably"===i||"maybe"==i},t.getFeatureList=function(){var e={mseFlvPlayback:!1,mseLiveFlvPlayback:!1,networkStreamIO:!1,networkLoaderName:"",nativeMP4H264Playback:!1,nativeWebmVP8Playback:!1,nativeWebmVP9Playback:!1};return e.mseFlvPlayback=t.supportMSEH264Playback(),e.networkStreamIO=t.supportNetworkStreamIO(),e.networkLoaderName=t.getNetworkLoaderTypeName(),e.mseLiveFlvPlayback=e.mseFlvPlayback&&e.networkStreamIO,e.nativeMP4H264Playback=t.supportNativeMediaPlayback('video/mp4; codecs="avc1.42001E, mp4a.40.2"'),e.nativeWebmVP8Playback=t.supportNativeMediaPlayback('video/webm; codecs="vp8.0, vorbis"'),e.nativeWebmVP9Playback=t.supportNativeMediaPlayback('video/webm; codecs="vp9"'),e},t}(),Vt=jt,Ht=(Object.prototype.toString,function(t){return qt(t)?Object.keys(t):[]});function zt(t,e){Ht(t).forEach((function(i){return e(t[i],i)}))}function Gt(t){for(var e=arguments.length,i=new Array(e>1?e-1:0),r=1;r<e;r++)i[r-1]=arguments[r];return Object.assign?Object.assign.apply(Object,[t].concat(i)):(i.forEach((function(e){e&&zt(e,(function(e,i){t[i]=e}))})),t)}function qt(t){return!!t&&"object"==typeof t}function Xt(t){return"function"==typeof t&&(t=t()),(Array.isArray(t)?t:[t]).map((function(t){return"function"==typeof t&&(t=t()),function(t){return qt(t)&&1===t.nodeType}(t)||function(t){return qt(t)&&3===t.nodeType}(t)?t:"string"==typeof t&&/\S/.test(t)?document.createTextNode(t):void 0})).filter((function(t){return t}))}function Zt(t,e,i,r){void 0===t&&(t="div"),void 0===e&&(e={}),void 0===i&&(i={});var n=document.createElement(t);return Object.getOwnPropertyNames(e).forEach((function(t){var i=e[t];-1!==t.indexOf("aria-")||"role"===t||"type"===t?n.setAttribute(t,i):"textContent"===t||n[t]===i&&"tabIndex"!==t||(n[t]=i)})),Object.getOwnPropertyNames(i).forEach((function(t){n.setAttribute(t,i[t])})),r&&function(t,e){Xt(e).forEach((function(e){return t.appendChild(e)}))}(n,r),n}var Kt=function(t,e){var i=this;this.boxDom=t.boxDom,this.isFill=t.showMode,this.fillModeBtnEl=Zt("div",{className:"vss-control-btn vss-control-fill-btn vss-pointer"},{}),this.fillModeIconEl=Zt("span",{className:"vssfont "+(t.showMode?"vss-video-ratio":"vss-video-fill")},{title:t.showMode?"按比例显示":"铺满窗口"}),this.fillModeBtnEl.appendChild(this.fillModeIconEl),e.appendChild(this.fillModeBtnEl),this.fillModeBtnEl.onclick=function(e){i.isFill?(i.isFill=!1,t.callbackFunc("ratio"),i.fillModeIconEl.title="铺满窗口",i.fillModeIconEl.classList.remove("vss-video-ratio"),i.fillModeIconEl.classList.add("vss-video-fill"),t.videoEl.style.objectFit=""):(i.isFill=!0,t.callbackFunc("fill"),i.fillModeIconEl.title="按比例显示",i.fillModeIconEl.classList.remove("vss-video-fill"),i.fillModeIconEl.classList.add("vss-video-ratio"),t.videoEl.style.objectFit="fill")}},Qt=function(){function t(t,e){var i=this;this.boxDom=t.boxDom,this.isFill=!1,this.fillModeBtnEl=Zt("div",{className:"vss-control-btn vss-control-snap-btn vss-pointer"},{}),this.fillModeIconEl=Zt("span",{className:"vssfont vss-snapshot"},{title:"快照"}),this.fillModeBtnEl.appendChild(this.fillModeIconEl),e.appendChild(this.fillModeBtnEl),this.fillModeBtnEl.onclick=function(e){i.snapshotDown(t)}}return t.prototype.snapshotDown=function(t){window.VssPlayerWasmKits?t.playerInstance&&t.playerInstance.snapshot():(t.InitWasmModule(),this.snapshotDown(t))},t}();function Yt(t,e){var i="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(i)return(i=i.call(t)).next.bind(i);if(Array.isArray(t)||(i=function(t,e){if(!t)return;if("string"==typeof t)return Jt(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);"Object"===i&&t.constructor&&(i=t.constructor.name);if("Map"===i||"Set"===i)return Array.from(t);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return Jt(t,e)}(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var r=0;return function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Jt(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,r=new Array(e);i<e;i++)r[i]=t[i];return r}var $t=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],te=function(){for(var t,e=$t[0],i={},r=Yt($t);!(t=r()).done;){var n=t.value;if((null==n?void 0:n[1])in document){for(var o,a=Yt(n.entries());!(o=a()).done;){var s=o.value,h=s[0],u=s[1];i[e[h]]=u}return i}}return!1}(),ee={change:te.fullscreenchange,error:te.fullscreenerror},ie={request:function(t,e){return void 0===t&&(t=document.documentElement),new Promise((function(i,r){var n=function t(){ie.off("change",t),i()};ie.on("change",n);var o=t[te.requestFullscreen](e);o instanceof Promise&&o.then(n).catch(r)}))},exit:function(){return new Promise((function(t,e){if(ie.isFullscreen){var i=function e(){ie.off("change",e),t()};ie.on("change",i);var r=document[te.exitFullscreen]();r instanceof Promise&&r.then(i).catch(e)}else t()}))},toggle:function(t,e){return ie.isFullscreen?ie.exit():ie.request(t,e)},onchange:function(t){ie.on("change",t)},onerror:function(t){ie.on("error",t)},on:function(t,e){var i=ee[t];i&&document.addEventListener(i,e,!1)},off:function(t,e){var i=ee[t];i&&document.removeEventListener(i,e,!1)},raw:te};Object.defineProperties(ie,{isFullscreen:{get:function(){return Boolean(document[te.fullscreenElement])}},element:{enumerable:!0,get:function(){var t;return null!=(t=document[te.fullscreenElement])?t:void 0}},isEnabled:{enumerable:!0,get:function(){return Boolean(document[te.fullscreenEnabled])}}}),te||(ie={isEnabled:!1});var re=ie,ne=function(){function t(t,e){var i=this;this.boxDom=t.boxDom,this.isFullScreen=!1,this.fullScreenBtnEl=Zt("div",{className:"vss-control-btn vss-control-full-btn vss-pointer"},{}),this.fullScreenIconEl=Zt("span",{className:"vssfont vss-fullscreen"},{title:"全屏"}),this.fullScreenBtnEl.appendChild(this.fullScreenIconEl),e.appendChild(this.fullScreenBtnEl),this.fullScreenBtnEl.onclick=function(t){i.isFullScreen?i.exitFullScreen():i.requestFullscreen()},re.isEnabled&&re.on("change",this.screenfullChange.bind(this))}var e=t.prototype;return e.requestFullscreen=function(){if(!re.isEnabled)return!1;re.request(this.boxDom)},e.exitFullScreen=function(){re.toggle()},e.screenfullChange=function(){this.isFullScreen=re.isFullscreen,this.isFullScreen?(this.fullScreenIconEl.title="取消全屏",this.fullScreenIconEl.classList.remove("vss-fullscreen"),this.fullScreenIconEl.classList.add("vss-cancel-fullscreen")):(this.fullScreenIconEl.title="全屏",this.fullScreenIconEl.classList.remove("vss-cancel-fullscreen"),this.fullScreenIconEl.classList.add("vss-fullscreen"))},t}(),oe=function(){function t(t,e){var i=this;this.boxDom=t.boxDom,this.isFill=!1,this.isPlaying=!1,this.fillModeBtnEl=Zt("div",{className:"vss-control-btn vss-control-play-btn vss-pointer"},{}),this.fillModeIconEl=Zt("span",{className:"vssfont vss-play"},{title:"播放"}),this.fillModeBtnEl.appendChild(this.fillModeIconEl),e.appendChild(this.fillModeBtnEl),this.fillModeBtnEl.onclick=function(e){t.url&&(i.isPlaying?(i.isPlaying=!1,i.fillModeIconEl.title="播放",i.fillModeIconEl.classList.remove("vss-pause"),i.fillModeIconEl.classList.add("vss-play"),i.pause(t)):(i.isPlaying=!0,i.fillModeIconEl.title="暂停",i.fillModeIconEl.classList.remove("vss-play"),i.fillModeIconEl.classList.add("vss-pause"),i.play(t)))},t.on("status",(function(t){100===t&&(i.isPlaying=!0,i.fillModeIconEl.title="暂停",i.fillModeIconEl.classList.remove("vss-play"),i.fillModeIconEl.classList.add("vss-pause"))}))}var e=t.prototype;return e.play=function(t){t.play(t.url,1,t.seekTimeSecs)},e.pause=function(t){t.pause()},t}(),ae=function(t,e){var i=this;this.boxDom=t.boxDom,this.isFill=!1,this.isPlaying=!1,this.fillModeBtnEl=Zt("div",{className:"vss-control-btn vss-control-stop-btn vss-pointer"},{}),this.fillModeIconEl=Zt("span",{className:"vssfont vss-stop"},{title:"停止"}),this.fillModeBtnEl.appendChild(this.fillModeIconEl),e.appendChild(this.fillModeBtnEl),this.fillModeBtnEl.onclick=function(e){i.isPlaying&&(i.isPlaying=!1,t.callbackFunc("stop"),t.stop())},t.on("status",(function(t){i.isPlaying=100===t}))},se=function(){function t(t,e){var i=this;this.boxDom=t.boxDom,this.isFill=!1,this.isPlaying=!1,this.fillModeBtnEl=Zt("div",{className:"vss-control-btn vss-control-audio-btn vss-pointer"},{}),this.fillModeIconEl=Zt("span",{className:"vssfont "+(t.enableAudio?"vss-open-voice":"vss-mute")},{title:t.enableAudio?"静音":"声音"}),this.fillModeBtnEl.appendChild(this.fillModeIconEl),e.appendChild(this.fillModeBtnEl),this.fillModeBtnEl.onclick=function(e){t.enableAudio?(i.fillModeIconEl.title="声音",i.fillModeIconEl.classList.remove("vss-open-voice"),i.fillModeIconEl.classList.add("vss-mute"),i.closeAudio(t)):(i.fillModeIconEl.title="静音",i.fillModeIconEl.classList.remove("vss-mute"),i.fillModeIconEl.classList.add("vss-open-voice"),i.openAudio(t))},t.on("audio",(function(t){t?(i.fillModeIconEl.title="静音",i.fillModeIconEl.classList.remove("vss-mute"),i.fillModeIconEl.classList.add("vss-open-voice")):(i.fillModeIconEl.title="声音",i.fillModeIconEl.classList.remove("vss-open-voice"),i.fillModeIconEl.classList.add("vss-mute"))}))}var e=t.prototype;return e.openAudio=function(t){t.openAudio()},e.closeAudio=function(t){t.closeAudio()},t}(),he=function(t,e){var i=this;this.boxDom=t.boxDom,this.isFill=!1,this.isPlaying=!1,this.fillModeBtnEl=Zt("div",{className:"vss-item-box"},{}),this.fillModeIconEl=Zt("span",{className:""},{},""),this.fillModeBtnEl.appendChild(this.fillModeIconEl),e.appendChild(this.fillModeBtnEl),t.on("resolutionRatio",(function(t){i.fillModeIconEl.innerText="LIVE ["+t.code+":"+t.width+"×"+t.height+"]"}))},ue=function(){function t(t,e){var i=this;this.boxDom=t.boxDom,this.isFill=!1,this.isPlaying=!1,this.duration=0,this.isMousedown=!1,this.isMousemove=!1,this.mousedownCursor=0,this.show=!1,this.timeBoxEl=Zt("div",{className:"vss-item-box vss-time-box vss-hide"},{}),this.timeScheduleEl=Zt("div",{className:"vss-time-schedule"},{}),this.leftTimeEl=Zt("div",{className:"vss-time-left-text"},{},"00:00:00"),this.rightTimeEl=Zt("div",{className:"vss-time-right-text"},{},"00:00:00"),this.timeBoxEl.appendChild(this.leftTimeEl),this.timeBoxEl.appendChild(this.timeScheduleEl),this.timeBoxEl.appendChild(this.rightTimeEl),this.timeTrackOutEl=Zt("div",{className:"vss-time-track-out"},{}),this.timeTrackEl=Zt("div",{className:"vss-time-track"},{}),this.timeProgressEl=Zt("div",{className:"vss-time-progress"},{}),this.timeProgressButtonBoxEl=Zt("div",{className:"vss-time-button-wrapper"},{}),this.timeProgressButtonEl=Zt("div",{className:"vss-time-button-wrapper_button"},{}),this.timeProgressTipEl=Zt("span",{className:"vss-time-button-wrapper_tip vss-hide"},{}),this.timeProgressButtonBoxEl.appendChild(this.timeProgressButtonEl),this.timeProgressButtonBoxEl.appendChild(this.timeProgressTipEl),this.timeTrackEl.appendChild(this.timeProgressEl),this.timeTrackOutEl.appendChild(this.timeTrackEl),this.timeTrackOutEl.appendChild(this.timeProgressButtonBoxEl),this.timeScheduleEl.appendChild(this.timeTrackOutEl),e.appendChild(this.timeBoxEl),this.timeTrackEl.onmousedown=function(e){if((e=e||window.event).stopPropagation(),0!==e.button)return!1;if(i.isPlaying){var r=e.layerX,n=i.timeTrackEl.offsetWidth,o=r/n*100;o<=0?o=0:o>=100&&(o=100);var a=parseInt(i.duration*(r/n)*1e3)/1e3;return i.leftTimeEl.innerText=Nt(1e3*a),i.timeProgressTipEl.innerText=Nt(1e3*a),i.isMousemove||(i.timeProgressEl.style.width=o+"%",i.timeProgressButtonBoxEl.style.left=o+"%"),document.onmouseup=function(e){return i.seekToPre(t,o),e.stopPropagation(),document.onmouseup=null,!1},!1}return!1},this.timeProgressButtonEl.onmousedown=function(e){if((e=e||window.event).stopPropagation(),0!==e.button)return!1;i.isMousedown=!0,i.mousedownCursor=i.getCursorPositionX(e);var r=i.timeTrackEl.offsetWidth,n=0,o=parseFloat(i.timeProgressButtonBoxEl.style.left||0);document.onmousemove=function(t,e,i){var r,n,o,a=0;i||(i={});var s=function(){var e=Ft;a=!1===i.leading?0:(new Date)[e(199,"R)EY")](),r=null,t[e(209,"UCj3")](n,o),r||(n=o=null)};return function(){var h=Ft,u=(new Date)[h(203,"UCj3")]();a||!1!==i[h(193,"yeBN")]||(a=u);var l=e-(u-a);n=this,o=arguments,l<=0||l>e?(r&&(clearTimeout(r),r=null),a=u,t[h(178,"TOkq")](n,o),r||(n=o=null)):!r&&!1!==i[h(183,"&vJN")]&&(r=setTimeout(s,l))}}((function(e){e.stopPropagation(),i.isMousemove=!0;var a=i.getCursorPositionX(e)-i.mousedownCursor,s=o/100*r;(s+=a)>=r?s=r:s<=0&&(s=0);var h=s/r;n=100*h;var u=parseInt(i.duration*h*1e3)/1e3;i.timeProgressEl.style.width=n+"%",i.leftTimeEl.innerText=Nt(1e3*u),i.timeProgressButtonBoxEl.style.left=n+"%",i.timeProgressTipEl.innerText=Nt(1e3*u),i.seekToPre(t,n)}),25),document.onmouseup=function(e){e.stopPropagation(),i.isMousedown=!1,i.isMousemove=!1;var r=parseFloat(i.timeProgressButtonBoxEl.style.left||0);return i.seekToPre(t,r),document.onmousemove=null,document.onmouseup=null,!1}},t.on("timeSchedule",(function(e){i.show||i.timeBoxEl.classList.remove("vss-hide"),t.emit("status",100),i.isPlaying=!0,i.duration=e.duration,i.timeProgressTipEl.classList.remove("vss-hide"),i.leftTimeEl.innerText=Nt(1e3*e.currentTime),i.rightTimeEl.innerText=Nt(1e3*e.duration),i.timeProgressTipEl.innerText=Nt(1e3*e.currentTime),i.isMousemove||(i.timeProgressEl.style.width=1e3*e.currentTime/(1e3*e.duration)*100+"%",i.timeProgressButtonBoxEl.style.left=1e3*e.currentTime/(1e3*e.duration)*100+"%")})),t.on("timeended",(function(t){i.isPlaying=!1,i.timeProgressTipEl.classList.add("vss-hide"),i.leftTimeEl.innerText=Nt(1e3*t.currentTime),i.rightTimeEl.innerText=Nt(1e3*t.duration),i.timeProgressTipEl.innerText=Nt(1e3*t.currentTime),i.isMousemove||(i.timeProgressEl.style.width=1e3*t.currentTime/(1e3*t.duration)*100+"%",i.timeProgressButtonBoxEl.style.left=1e3*t.currentTime/(1e3*t.duration)*100+"%")}))}var e=t.prototype;return e.getCursorPositionX=function(t){var e=0;return t||(t=window.event),t.pageX||t.pageY?e=t.pageX:(t.clientX||t.clientY)&&(e=t.clientX+document.body.scrollLeft+document.documentElement.scrollLeft),e},e.seekToPre=function(t,e){t.seekToPercent(e)},t}(),le=ue,de=function(){function t(t,e,i){var r=this,n=this.createEl("div",{className:"vss-control-bar"}),o=this.createEl("div",{className:"vss-control-bar-left"}),a=this.createEl("div",{className:"vss-control-bar-conter"}),s=this.createEl("div",{className:"vss-control-bar-right"});n.appendChild(o),n.appendChild(a),n.appendChild(s),e.appendChild(n),new oe(t,o),new ae(t,o),new se(t,o),new he(t,o),new le(t,a),new Kt(t,s),new Qt(t,s),new ne(t,s),this.Timer=null,e.onmousemove=function(){clearTimeout(r.Timer),e.classList.add("vss-control-show")},e.onmouseout=function(){clearTimeout(r.Timer),r.Timer=setTimeout((function(){e.classList.remove("vss-control-show"),clearTimeout(r.Timer)}),2e3)}}return t.prototype.createEl=function(t,e,i){return void 0===e&&(e={}),void 0===i&&(i={}),"div",Zt("div",e=Gt({},e),i)},t}(),fe=function(){function t(t,e){var i=this;this.loadingEl=this.createEl(),e.appendChild(this.loadingEl),t.on("status",(function(t){i.open(t)}))}var e=t.prototype;return e.createEl=function(t,e,i){void 0===e&&(e={}),void 0===i&&(i={});var r=Zt("div",e=Gt({className:this.buildCSSClass()},e),i=Gt({type:"loading"},i));return this.center=Zt("div",{className:"vss-loading-center"},{"aria-type":"center"}),this.loading=Zt("img",{className:"vss-loading-img"},{src:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MHB4IiBoZWlnaHQ9IjUwcHgiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCIKICAgICBjbGFzcz0idWlsLWRlZmF1bHQiPgogICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9Im5vbmUiIGNsYXNzPSJiayIvPgogICAgPHJlY3QgeD0iNDciIHk9IjQwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyMCIgcng9IjUiIHJ5PSI1IiBmaWxsPSIjZmZmZmZmIiB0cmFuc2Zvcm09InJvdGF0ZSgwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApIj4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiBmcm9tPSIxIiB0bz0iMCIgZHVyPSIxcyIgYmVnaW49Ii0xcyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICAgIDwvcmVjdD4KICAgIDxyZWN0IHg9IjQ3IiB5PSI0MCIgd2lkdGg9IjYiIGhlaWdodD0iMjAiIHJ4PSI1IiByeT0iNSIgZmlsbD0iI2ZmZmZmZiIKICAgICAgICAgIHRyYW5zZm9ybT0icm90YXRlKDMwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApIj4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiBmcm9tPSIxIiB0bz0iMCIgZHVyPSIxcyIgYmVnaW49Ii0wLjkxNjY2NjY2NjY2NjY2NjZzIgogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgICA8L3JlY3Q+CiAgICA8cmVjdCB4PSI0NyIgeT0iNDAiIHdpZHRoPSI2IiBoZWlnaHQ9IjIwIiByeD0iNSIgcnk9IjUiIGZpbGw9IiNmZmZmZmYiCiAgICAgICAgICB0cmFuc2Zvcm09InJvdGF0ZSg2MCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ib3BhY2l0eSIgZnJvbT0iMSIgdG89IjAiIGR1cj0iMXMiIGJlZ2luPSItMC44MzMzMzMzMzMzMzMzMzM0cyIKICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0iNDciIHk9IjQwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyMCIgcng9IjUiIHJ5PSI1IiBmaWxsPSIjZmZmZmZmIgogICAgICAgICAgdHJhbnNmb3JtPSJyb3RhdGUoOTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCkiPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGZyb209IjEiIHRvPSIwIiBkdXI9IjFzIiBiZWdpbj0iLTAuNzVzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0iNDciIHk9IjQwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyMCIgcng9IjUiIHJ5PSI1IiBmaWxsPSIjZmZmZmZmIgogICAgICAgICAgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApIj4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiBmcm9tPSIxIiB0bz0iMCIgZHVyPSIxcyIgYmVnaW49Ii0wLjY2NjY2NjY2NjY2NjY2NjZzIgogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgICA8L3JlY3Q+CiAgICA8cmVjdCB4PSI0NyIgeT0iNDAiIHdpZHRoPSI2IiBoZWlnaHQ9IjIwIiByeD0iNSIgcnk9IjUiIGZpbGw9IiNmZmZmZmYiCiAgICAgICAgICB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCkiPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGZyb209IjEiIHRvPSIwIiBkdXI9IjFzIiBiZWdpbj0iLTAuNTgzMzMzMzMzMzMzMzMzNHMiCiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICAgIDwvcmVjdD4KICAgIDxyZWN0IHg9IjQ3IiB5PSI0MCIgd2lkdGg9IjYiIGhlaWdodD0iMjAiIHJ4PSI1IiByeT0iNSIgZmlsbD0iI2ZmZmZmZiIKICAgICAgICAgIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ib3BhY2l0eSIgZnJvbT0iMSIgdG89IjAiIGR1cj0iMXMiIGJlZ2luPSItMC41cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICAgIDwvcmVjdD4KICAgIDxyZWN0IHg9IjQ3IiB5PSI0MCIgd2lkdGg9IjYiIGhlaWdodD0iMjAiIHJ4PSI1IiByeT0iNSIgZmlsbD0iI2ZmZmZmZiIKICAgICAgICAgIHRyYW5zZm9ybT0icm90YXRlKDIxMCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ib3BhY2l0eSIgZnJvbT0iMSIgdG89IjAiIGR1cj0iMXMiIGJlZ2luPSItMC40MTY2NjY2NjY2NjY2NjY3cyIKICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0iNDciIHk9IjQwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyMCIgcng9IjUiIHJ5PSI1IiBmaWxsPSIjZmZmZmZmIgogICAgICAgICAgdHJhbnNmb3JtPSJyb3RhdGUoMjQwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApIj4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiBmcm9tPSIxIiB0bz0iMCIgZHVyPSIxcyIgYmVnaW49Ii0wLjMzMzMzMzMzMzMzMzMzMzNzIgogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgICA8L3JlY3Q+CiAgICA8cmVjdCB4PSI0NyIgeT0iNDAiIHdpZHRoPSI2IiBoZWlnaHQ9IjIwIiByeD0iNSIgcnk9IjUiIGZpbGw9IiNmZmZmZmYiCiAgICAgICAgICB0cmFuc2Zvcm09InJvdGF0ZSgyNzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCkiPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGZyb209IjEiIHRvPSIwIiBkdXI9IjFzIiBiZWdpbj0iLTAuMjVzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0iNDciIHk9IjQwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyMCIgcng9IjUiIHJ5PSI1IiBmaWxsPSIjZmZmZmZmIgogICAgICAgICAgdHJhbnNmb3JtPSJyb3RhdGUoMzAwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApIj4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiBmcm9tPSIxIiB0bz0iMCIgZHVyPSIxcyIgYmVnaW49Ii0wLjE2NjY2NjY2NjY2NjY2NjY2cyIKICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0iNDciIHk9IjQwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyMCIgcng9IjUiIHJ5PSI1IiBmaWxsPSIjZmZmZmZmIgogICAgICAgICAgdHJhbnNmb3JtPSJyb3RhdGUoMzMwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApIj4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiBmcm9tPSIxIiB0bz0iMCIgZHVyPSIxcyIgYmVnaW49Ii0wLjA4MzMzMzMzMzMzMzMzMzMzcyIKICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9yZWN0Pgo8L3N2Zz4K"}),this.loadingText=Zt("span",{className:"vss-loading-text"},{},"视频加载中..."),this.center.appendChild(this.loading),r.appendChild(this.center),r},e.buildCSSClass=function(){return"vss-loading vss-hide"},e.open=function(t){this.loadingEl&&(100===t?(this.loadingText.innerHTML="播放中...",this.hide()):99===t?(this.hide(),this.loadingText.innerHTML="已停止"):0===t?(this.loadingText.innerHTML="连接中...",this.show()):1===t?(this.loadingText.innerHTML="视频加载中...",this.hide()):2===t?(this.loadingText.innerHTML="状态为2",this.show()):(this.loadingText.innerHTML="未知状态:"+t,this.show()))},e.show=function(){this.loadingEl.classList.remove("vss-hide"),this.loadingEl.classList.add("vss-show")},e.hide=function(){this.loadingEl.classList.remove("vss-show"),this.loadingEl.classList.add("vss-hide")},t}(),ce=function(){function t(t,e){this.canvas=this.createEl(),e.appendChild(this.canvas)}return t.prototype.createEl=function(t,e,i){return void 0===e&&(e={}),void 0===i&&(i={}),"canvas",Zt("canvas",e=Gt({className:"vss-canvas"},e),i)},t}(),pe=function(t,e){var i=this;this.Timer=null,this.messageBoxDom=Zt("div",{className:"vss-message-box"}),e.appendChild(this.messageBoxDom),t.on("message",(function(t){r.setMessage(t),i.messageBoxDom.appendChild(Zt("div",{className:"vss-message-item"},{},"[播放器]:"+t.name))})),t.on("play",(function(t){i.Timer=setTimeout((function(){i.messageBoxDom.classList.add("vss-message-hide"),clearTimeout(i.Timer)}),5e3)}))},me=function(){function t(t,e){var i=this;this.Timer=null,this.exportMessageDom=Zt("div",{className:"vss-export-message-box"}),e.appendChild(this.exportMessageDom),this.messageLists=[],this.index=0,t.on("exportMessage",(function(t){i.messageLists[i.index]=Zt("div",{className:"vss-export-message-item"},{},""+t.message),i.exportMessageDom.appendChild(i.messageLists[i.index]),t.duration>0&&i.removeChildDom(i.index,t.duration),t.callback(i.index),i.index++})),t.on("clearMessage",(function(t){t>=0?i.messageLists[t]&&(i.exportMessageDom.removeChild(i.messageLists[t]),i.messageLists.splice(t,1)):(i.exportMessageDom.innerHTML="",i.messageLists=[])}))}return t.prototype.removeChildDom=function(t,e){var i=this;setTimeout((function(){i.messageLists[t]&&(i.exportMessageDom.removeChild(i.messageLists[t]),i.messageLists.splice(t,1))}),e)},t}(),ge=function(){function t(t,e){var i=this;this.Timer=null,this.osdMessageDom=Zt("div",{className:"vss-osd-message-box vss-osd-message-hide"}),e.appendChild(this.osdMessageDom),this.messageLists=[],this.index=0,t.on("osdMessage",(function(t,e,r){return t instanceof Array&&(!!t.length&&(e=e||"lefttop",i.osdMessageDom.innerHTML="",i.osdMessageDom.classList.remove("pos_lefttop"),i.osdMessageDom.classList.remove("pos_leftbottom"),i.osdMessageDom.classList.remove("pos_righttop"),i.osdMessageDom.classList.remove("pos_rightbottom"),i.osdMessageDom.classList.remove("pos_center"),t.forEach((function(t,e){i.osdMessageDom.appendChild(Zt("div",{className:"vss-osd-message-item"},{"data-index":e},t.name+":"+t.value))})),i.osdMessageDom.classList.add("pos_"+e),void i.osdMessageDom.classList.remove("vss-osd-message-hide")))}))}return t.prototype.removeChildDom=function(t){var e=this;setTimeout((function(){e.osdMessageDom.classList.add("vss-osd-message-hide"),setTimeout((function(){e.osdMessageDom.innerHTML=""}),200)}),t)},t}(),ve=function(){function t(t,e,i){var r=this,n=i.height,o=i.isFill;if(!e)return"";n?(e.style.position="relative",e.style.backgroundColor="#000000",e.style.overflow="hidden",e.style.paddingTop="56.25%"):(e.style.position="relative",e.style.backgroundColor="#000000",e.style.width="100%",e.style.height="100%",e.style.overflow="hidden"),e.classList.add("vss-shade"),e.classList.add("vss-player"),this.elDom=e,this.isFill=o,this.videoEl=null,this.videoEl=document.createElement("video"),this.videoEl.style.width="100%",this.videoEl.style.height="100%",this.videoEl.style.position="absolute",this.videoEl.style.top="0",this.videoEl.style.left="0",this.videoEl.style.background="#000000",this.elDom.appendChild(this.videoEl),this.fill(),this.InitMessage=new pe(t,e),this.ExportMessage=new me(t,e),this.OsdMessage=new ge(t,e),t.on("play",(function(){})),t.on("setfill",(function(){r.isFill=!0,r.fill()}))}return t.prototype.fill=function(){this.videoEl&&this.isFill?this.videoEl.style.objectFit="fill":this.videoEl.style.objectFit=""},t}(),ye=function(){function t(t,e,i){var r=this;return this.isBigButton=i,i?(this.bigPlayBox=this.createEl("div"),e.appendChild(this.bigPlayBox),this.bigPlayBox.onclick=function(){t.play("",!0),r.hide()},this.bigPlayBox):null}var e=t.prototype;return e.createEl=function(t,e,i){void 0===e&&(e={}),void 0===i&&(i={});var r=Zt("div",e=Gt({className:"vss-big-play-button vss-pointer"},e),i=Gt({type:"button"},i));return this.iconEl=Zt("span",{className:"vss-big-play-icon vssfont vss-play"}),r.appendChild(this.iconEl),r},e.show=function(){this.isBigButton&&(this.bigPlayBox.classList.remove("vss-hide"),this.bigPlayBox.classList.add("vss-show"))},e.hide=function(){this.isBigButton&&(this.bigPlayBox.classList.remove("vss-show"),this.bigPlayBox.classList.add("vss-hide"))},t}(),be=function(){function t(t,e){var i=this;this.loadingLogoDom=this.createEl(),e.appendChild(this.loadingLogoDom),this.boxDom=e,t.on("status",(function(t){i.open(t)}))}var e=t.prototype;return e.createEl=function(){var t=Zt("div",{className:"vss-mask vss-show"});return this.center=Zt("div",{className:"vss-mask-center"}),this.loadingLogoImg=Zt("img",{className:"vss-loading-logo-img"},{src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANkAAAAnCAMAAAC1+B0tAAAC7lBMVEUAAAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////jtXoAAAA+XRSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkZOUlpeYmZqbnJ2foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f5tOzRcAAAIn0lEQVRo3u2YeVwTVx7AXyYhQDgEFBAEuW/kWKlFQEpFyoqKrVJFVKxXPdp61IUt7iJoW6toPQpS03q0dgVawS6ggiIqSy1bEKhHrUEiR4LVcBOTzPy3781MMpMQwqeWP9Z++P01M++9ee/7fud7AIzLuIzLuIyRWC7c/+9r1y/lr3HG/lRcISdkOEHJs4pEwe8aO/GlxIQQ6//P/Zh0pI9giao0lKfdgffyP0vr798t3RNuqjPUZs0Vcmz/tY1TOFotgqjd565fPbXRc1RmY9cZPia6HzHH+W/EzWBJyET9o7kBSa9HsTtOY9oC6lSEtnQksQmwhMpBtUIvxLFbjJPrFOoxeN0ilq75c8sHqO/ST721kS3ClqSuoiQ1dgL84HYUL/dl3CJ2S+ocOyBIfqy9JnEyALb77hd7qDtaHxA1bQDAPFdn8c2aXwXfJQ2xaf/iqIiEnTVD6OXJMgbAYo8UZ8b1pNsyLVkd7F+2bbBUt5hvFTEmUJ1gxFLyugalpulRmrEumcOublycbqafjDfjTm8erV7TFf3PymwMkbneIjX2WLhsMrIbLLIMsUnijen2Ccd6tAb27lCbhSC7U/ufDfNpKzZ5T8T+XjOPq1n43l7m++BJF6BNxvEVylXNy+FvTBa2yQpSWZLkhnZsdV9bCuUg0++r7oejVXyEP9nJ7phIT2VyWrOFQ8XRaHNN07ugjv7jR/kH9kEXpavqgssSsqs0mba6lLvkvh+ePdk+Yvdd2KbYN4Vqmf8DaZ8dtfUy9KA8E6iebX0rfm9PfAwl4VR3how3sxxX3IhD1stPeNiZMdyrHISKm95oCxyLiKebSd3txMVB+hxwYT+0l0PWztGbSvpwRaEP3F3s/SfwW7YV2T6dVGnPfjcIOiG9FdnltTAS2v28HMKcDaX0EXwOqvq7UPLZ/ij8KfEwfTLg+B3rRnb6Lm1CXkK84U3dkKIhM01sIAZKgilH1U/GDb3Vlw89xSJNMfi1uSEy8wq48Cv2cJd4PMcPpbhoDh8AIxQrf5mOlszZ9xSuTLaO8iDOgibYfWibDXrZ1ALVctqPDg9GWVKCqJhJPr96FY7pfJeceOpnMJIoj7tRvWZVDBx1ACOQWW9sJ2T5TsAQGRCk9HSsAPzXpMpGf2CIbBbc0r4YyOBd9ZMH5vHtUOtsaJHe/1USqs1oZY4VUDF4jr06TG5qhYu+gIzL6nPofw1zaM8yW/szVOc3VMRd/yvsdJJ2nXm18OViFPUSc6XnwKQRyKbs6SE6sicAw2TALldR5+9ZTUhXAoNku2HULoEIdtXKSicOMDvSfysAcn4Mgc+hzQ1DgbMlRhPcHIuh0Yn+ChXrUwnV96kzsJ+Xmrr1SCMKO907SAvG3m+H27WLJvD6GrbULaArgkLVd0F6yTgBJ+T4Lxs1eW1EMm5gXf8Xtr5/CeIbJONfgctbCfc9Y7AGeRKwKZPvtgAgvAUnfp4GEV8Xw3Wdd2Vy28cwGHe/BbtE/gitdL0FiPlBk9GKQqi5MmHQ+W0HnQIcDsNk+NNCOubv6pEddtFDFjjrEq68mcgFLDJZWa6QkYPhdIvpYplkNTMaknUdY/UTfkRN24QTsnAMTKzppZNObGe9Owe41CoICXK5t1DG+sSO+dFmaI7yd6BuYuthblguYMjw0kjuaGQg6hKhartxmZSyo4mWNFl1RiMhL3+ZvecJDyWnilmp49EyTUrc33HZi03W8R47990mP3s8wIkWXwz4iW7TVZDDDUmsEbD8fojoXgBNYy0i+7sNM+NaGDeUW62G66xzrwcd9AyRGc2tYhI1MVQWzSHJng0RfV95A22yzux5rfrITJcqJQvYZOKXsnBdMq8WimyauNGVCnI2lY/j+Tpk26yYGdOgDw28bUn7WY4TIlNIGs+sd9UEc0NkAExeXXxbRIq4h1BeDEdkcI6uA3ZAlyxDf6U4nEyPn7ncw4lHgRhwapDOpEzJ/969IC6wLpfrJzPJhxGxa6lANzZqzWyQjFWP+uf1dx+yIslE2+1j/5G5zm3MyGx+xAn5bC7AhPIvrElrOdBXAAtDn0Yl8QhVJLpkobVQU3ei0S68/QD61glfznOTwfReiF8IRtbYvNIICylQDX7rM1Zk4F9woVkwUoSKlMenYsA6p1cSB18TJXA1XhyarEpT4Fvmo5LiDOm/7iWoBjkTwn1+sokf9N+cq85nWHCBaqDQc6zINsB81uAAEZI68Z7a67/hfe9ASzP9Bq4mDxX1JBkxcDqMzB6TDj9BNTFdkSxByRnWja/a8p6TzDZzqDZeU4NgwWcZtD9M5ifGCdVWtOxFbXCdisrZ6DnuIU70LzLRkMFAfz1r8eLs5mfouSyQskCTv7XqHCDkOc6/h4wTXaUs9mXqRiykSIP2h8mwXBiE28lEFF6vVJREoqzmfBUSXHXnsMhYIl2iPmGapYu1my5GcEYj49u5qsVnRbWqI8OYVeuTaEWkrcPzGa5UsKRlqX4yeD7D2f0UDXRDEFJVM3lkmXTwKa5qOpQcUQzX0ptCrn84mWw7c2znJVTJ2cl0lelo1mi8WuvkNnjaXet8hgVDtAJ3imz4yXMEshFOnttQxdeWRFYgnjnt6ouDY1R6Icnqpcx1gniVJVvnVimlmrsh+T6nUf1sZhkrp+Jtn0xFO7osd4um5A4uVPUjNH6EsOBkHkv2zlDPaRT2WU4wc2OxpujscXbHXZoMlYeuMhTnY8li1GxLOzl1BV1QUFHfc1MNeROi+vWg/7AEZhUyfzl5q/GGM2c0MuPItEyNpL/pMjxlYO6bM9PieWNyc2X+OXVL0/H9l8LCB1TtU+VPx3J1PuPYh70SE+lp8mJdNgo+7NW2VMWpqepSiSTbbvXCXqRGsstU4s4KM6YAfsHJAO81IX31NlC61ILV8MKToUQTkJS6KiVMoO3UfwYy/TJONk42TjYu+uR/jc0F3eSHi7IAAAAASUVORK5CYII="}),this.loadingLogoText=Zt("span",{className:"vss-loading-logo-text"},{},"成都视开信息科技"),this.center.appendChild(this.loadingLogoImg),this.center.appendChild(this.loadingLogoText),t.appendChild(this.center),t},e.open=function(t){this.loadingLogoDom&&99===t&&this.hide()},e.show=function(){this.loadingLogoDom.classList.remove("vss-hide"),this.loadingLogoDom.classList.add("vss-show")},e.hide=function(){this.loadingLogoDom.classList.remove("vss-show"),this.loadingLogoDom.classList.add("vss-hide")},t}(),_e=function(){function t(){}var e=t.prototype;return e.on=function(t,e,i){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:i}),this},e.once=function(t,e,i){var r=this;function n(){r.off(t,n);for(var o=arguments.length,a=new Array(o),s=0;s<o;s++)a[s]=arguments[s];e.apply(i,a)}return n._=e,this.on(t,n,i)},e.emit=function(t){for(var e=((this.e||(this.e={}))[t]||[]).slice(),i=arguments.length,r=new Array(i>1?i-1:0),n=1;n<i;n++)r[n-1]=arguments[n];for(var o=0;o<e.length;o+=1)e[o].fn.apply(e[o].ctx,r);return this},e.off=function(t,e){var i=this.e||(this.e={}),r=i[t],n=[];if(r&&e)for(var o=0,a=r.length;o<a;o+=1)r[o].fn!==e&&r[o].fn._!==e&&n.push(r[o]);return n.length?i[t]=n:delete i[t],this},t}();i(247),i(252),i(254),i(256);function we(t,e){for(var i=0;i<e.length;i++){var r=e[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var Ae=function(){function t(t,e){if(this.TAG="WebRtcPlayer",this._type="WebRtcPlayer",this._emitter=new f.a,this.pc=null,this._mediaElement=null,this.url=t,this.autoplay=!!e.autoplay||!1,this.typeCallback=e.typeCallback,this.statusCallback=e.statusCallback,!t.match(/^webrtc?:\/\/||^webrtcs?:\/\//))throw"JSWebrtc just work with webrtc";this.timer=null,this.sendChannel=null,this._mediaInfo=null,this._statisticsInfo=null,this.isPlaying=!1,this._isLoad=!1,this._isDestroy=!1,this.e={onvLoadedMetadata:this._onvLoadedMetadata.bind(this),onvSeeking:this._onvSeeking.bind(this),onvCanPlay:this._onvCanPlay.bind(this),onvPlay:this._onvPlay.bind(this),onvStalled:this._onvStalled.bind(this),onvProgress:this._onvProgress.bind(this),onvWaiting:this._onvWaiting.bind(this),onvPlaying:this._onvPlaying.bind(this)},this.attachMediaElement(e.mediaElement,t)}var e,i,n,o=t.prototype;return o.on=function(t,e){var i=this;t===g.MEDIA_INFO?null!=this._mediaInfo&&Promise.resolve().then((function(){i._emitter.emit(g.MEDIA_INFO,i.mediaInfo)})):t===g.STATISTICS_INFO&&null!=this._statisticsInfo&&Promise.resolve().then((function(){i._emitter.emit(g.STATISTICS_INFO,i.statisticsInfo)})),this._emitter.addListener(t,e)},o.off=function(t,e){this._emitter.removeListener(t,e)},o.attachMediaElement=function(t,e){this._mediaElement=t,this._mediaElement=t,t.addEventListener("loadedmetadata",this.e.onvLoadedMetadata),t.addEventListener("seeking",this.e.onvSeeking),t.addEventListener("canplay",this.e.onvCanPlay),t.addEventListener("play",this.e.onvPlay),t.addEventListener("stalled",this.e.onvStalled),t.addEventListener("progress",this.e.onvProgress),t.addEventListener("waiting",this.e.onvWaiting),t.addEventListener("playing",this.e.onvPlaying),this.typeCallback(!0),this.load(e)},o.load=function(t){var e=this;this.statusCallback(0),this.pc&&this.pc.close(),this.pc=new RTCPeerConnection(null),this.pc.ontrack=function(t){e._mediaElement.srcObject=t.streams[0]},this.pc.addTransceiver("audio",{direction:"recvonly"}),this.pc.addTransceiver("video",{direction:"recvonly"}),this.sendChannel=this.pc.createDataChannel("keepalive"),this.sendChannel.onclose=this.onChannelClose.bind(this),this.sendChannel.onopen=this.onChannelOpen.bind(this),this.sendChannel.onmessage=this.onChannelMessage.bind(this),this.pc.createOffer({offerToReceiveVideo:!0,offerToReceiveAudio:!0}).then((function(t){return e.pc.setLocalDescription(t).then((function(){return t}))})).then((function(i){return new Promise((function(r,n){e.HttpPost(t,window.btoa(i.sdp)).then((function(t){r(t)}),(function(t){n(t)}))}))})).then((function(t){return e.pc.setRemoteDescription(new RTCSessionDescription({type:"answer",sdp:window.atob(t)}))})).then((function(){e._isLoad=!0})).catch((function(t){throw t}))},o.onChannelClose=function(){var t=this;clearInterval(this.timer),this._isDestroy||r.sleep(3e3).then((function(){t.load(t.url)}))},o.onChannelOpen=function(){var t=this;this.timer=setInterval((function(){t.sendChannel&&t.sendChannel.send("ping")}),3e3)},o.onChannelMessage=function(){},o.HttpPost=function(t,e){return new Promise((function(i,r){var n=new XMLHttpRequest;n.onreadystatechange=function(){if(4===n.readyState&&n.status>=200&&n.status<300){var t=n.responseText;n.onreadystatechange=new Function,n=null,i(t)}},n.open("POST",t.replace("webrtc","http"),!0),n.send(e)}))},o._onvLoadedMetadata=function(){},o._onvSeeking=function(){},o._onvCanPlay=function(){this.autoplay&&this._mediaElement.play()},o._onvPlay=function(){this.isPlaying=!0,this.statusCallback(100)},o._onvStalled=function(){},o._onvProgress=function(){},o._onvWaiting=function(){},o._onvPlaying=function(){},o.unload=function(){},o.play=function(){this.isPlaying||(this._mediaElement.play(),this.isPlaying=!0)},o.pause=function(){this.isPlaying&&(this._mediaElement.pause(),this.isPlaying=!1)},o.resume=function(){},o.openAudio=function(){},o.closeAudio=function(){},o.seek=function(){},o.stop=function(){this.destroy()},o.destroy=function(){this._isDestroy=!0,this.pc&&(this.pc.close(),this.pc=null),this._mediaElement&&(this._mediaElement=null),this.sendChannel&&(this.sendChannel=null),this.autoplay=null,this.typeCallback=null,this.statusCallback=null,this.isPlaying=!1,this._isLoad=!1,clearInterval(this.timer)},e=t,(i=[{key:"isLoad",get:function(){return this._isLoad}}])&&we(e.prototype,i),n&&we(e,n),Object.defineProperty(e,"prototype",{writable:!1}),t}(),Me=i(24),Ee=i.n(Me);function Se(t){if(void 0===t)throw new ReferenceError(Te(765,"n[BW"));return t}function ke(t,e){return(ke=Object[Te(550,"e54v")]||function(t,e){return t.__proto__=e,t})(t,e)}function Te(t,e){var i=Ie();return Te=function(e,r){var n=i[e-=469];if(void 0===Te.ILWeBe){var o=function(t){for(var e,i,r="",n="",o=0,a=0;i=t.charAt(a++);~i&&(e=o%4?64*e+i:i,o++%4)?r+=String.fromCharCode(255&e>>(-2*o&6)):0)i="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(i);for(var s=0,h=r.length;s<h;s++)n+="%"+("00"+r.charCodeAt(s).toString(16)).slice(-2);return decodeURIComponent(n)},a=function(t,e){var i,r,n=[],a=0,s="";for(t=o(t),r=0;r<256;r++)n[r]=r;for(r=0;r<256;r++)a=(a+n[r]+e.charCodeAt(r%e.length))%256,i=n[r],n[r]=n[a],n[a]=i;r=0,a=0;for(var h=0;h<t.length;h++)a=(a+n[r=(r+1)%256])%256,i=n[r],n[r]=n[a],n[a]=i,s+=String.fromCharCode(t.charCodeAt(h)^n[(n[r]+n[a])%256]);return s};Te.yLFdNq=a,t=arguments,Te.ILWeBe=!0}var s=i[0],h=e+s,u=t[h];return u?n=u:(void 0===Te.CeQIkv&&(Te.CeQIkv=!0),n=Te.yLFdNq(n,r),t[h]=n),n},Te(t,e)}!function(t,e){for(var i=Te,r=t();;)try{if(264984===-parseInt(i(485,"GV(q"))/1+parseInt(i(634,"m23]"))/2*(-parseInt(i(666,"4V[I"))/3)+parseInt(i(817,"n[BW"))/4*(parseInt(i(783,"gN$k"))/5)+parseInt(i(891,"GV(q"))/6*(-parseInt(i(846,"WqFg"))/7)+-parseInt(i(874,"n[BW"))/8*(-parseInt(i(596,"e^)J"))/9)+-parseInt(i(728,"C)3J"))/10*(-parseInt(i(885,"e54v"))/11)+parseInt(i(628,"4V[I"))/12)break;r.push(r.shift())}catch(t){r.push(r.shift())}}(Ie);var Re=function(t){var e,i,n,o=Te;function a(e,i,r,n){var o,a=Te;void 0===n&&(n={}),o=t[a(518,"JAzB")](this)||this;var s=n,h=s.cbUserPtr,u=s[a(780,"0R(A")],l=s[a(679,"5n5*")],d=s[a(770,"JAzB")],f=void 0!==d&&d,c=s[a(695,"c#1J")],p=void 0!==c&&c,m=s[a(827,"1i%J")],g=void 0!==m&&m,v=s[a(700,"4V[I")],y=void 0!==v&&v,b=s.playbackRecord,_=void 0!==b&&b;if(o[a(743,"e54v")]=null,o[a(590,"FHP5")]=e,o[a(580,"gN$k")]=r,o[a(696,"63En")]=h,o[a(534,"e^)J")]=p,o[a(630,"9D1T")]=f,o[a(514,"cdCG")]=y,o[a(655,"Wnj0")]=a(642,"nsHP"),o[a(512,"7So$")]="2.0.1",(u===a(832,"HW@j")||u===a(825,"uC!F"))&&(o[a(494,"cdCG")]=u),!Vt.supportMSEH264Playback()&&(o[a(654,"[uf*")]=a(482,"#8CZ")),o.internalTriggerPlay=!0,o[a(620,"FHP5")]=g,o[a(681,"4V[I")]=_,o[a(470,"5PPf")]="",o[a(551,"GV(q")]=0,o[a(740,"ML(c")]=0,o[a(549,"#oec")]=!1,o[a(513,"HW@j")]=!1,o[a(801,"4V[I")]=!1,o[a(646,"c#1J")]=!1,o[a(849,"4fK)")]=!1,o[a(592,"e%y]")]=0,o[a(829,"HW@j")]=!1,!i)return Se(o);if(o[a(480,"8@RW")]=!!l,o.enableAudio=!!l,o[a(838,"eoN(")]=document[a(548,"UstW")](i),!o[a(723,"c#1J")])return Se(o);var w={};w[a(671,"wo*4")]=p,w.isFill=g,o[a(823,"m23]")]=new ve(Se(o),o[a(673,"4V[I")],w);var A={};A[a(747,"c#1J")]=a(577,"l7ku")+"2.0.1",o[a(562,"reFT")](a(627,"7So$"),A);var M={};M[a(532,"lmfv")]=a(875,"o6Lm"),o[a(861,"o6Lm")]("message",M),o.h5Video=o[a(867,"HW@j")]=o[a(877,"4fK)")][a(776,"RgFV")],o.bigPlayButton=new ye(Se(o),o[a(673,"4V[I")],f),o.Loading=new fe(Se(o),o[a(766,"gN$k")]),o[a(501,"#oec")]=new ce(Se(o),o[a(503,"n%B4")]),o[a(744,"63En")]=new de(Se(o),o.boxDom),o[a(662,"7So$")]=new be(Se(o),o[a(503,"n%B4")]);var E={};return E[a(835,"RgFV")]=a(537,"m23]"),o[a(697,"8@RW")](a(578,"&XMC"),E),o}i=t,(e=a)[(n=Te)(736,"0R(A")]=Object.create(i[n(892,"5PPf")]),e[n(644,"e54v")][n(576,"n%B4")]=e,ke(e,i);var s=a.prototype;return s[o(657,"n%B4")]=function(){},s[o(839,"9D1T")]=function(){},s[o(535,"HkRl")]=function(t){},s[o(860,"ML(c")]=function(t){for(var e=o,i=t[e(896,"5n5*")].length-1;i>=0;i--)this[e(616,"UstW")](t[e(515,"Wnj0")][i]),t.removeChild(t[e(541,"y(@t")][i])},s.destroy=function(){var t=o;this[t(553,"0R(A")](),this[t(638,"C)3J")]&&this[t(886,"L!7]")](this[t(601,"5n5*")]),this.playerInstance&&(this[t(597,"5n5*")].stop(),this[t(565,"uC!F")].destroy(),delete this.playerInstance,this[t(483,"#8CZ")]=null)},s[o(588,"0R(A")]=function(t){var e=o;if(this.initH5Flag){if(t===this.currentH5Status)return}else this[e(852,"#oec")]=!0;this[e(847,"GV(q")]=t,t?this[e(649,"HW@j")][e(581,"5n5*")]&&this[e(572,"#8CZ")][e(496,"y(@t")](this[e(582,"l7ku")].canvas):this[e(865,"c#1J")]&&this.boxDom[e(676,"lmfv")](this[e(502,"e54v")])},s[o(641,"RgFV")]=function(t,e){t[o(697,"8@RW")]("status",e)},s[o(499,"4fK)")]=function(t){this.emit("status",t)},s[o(612,"HkRl")]=function(t,e,i){var r=o;t[r(772,"gN$k")](!i),r(831,"8@RW")},s[o(883,"nsHP")]=function(t,e,i,r){var n=o;t.VideoCodec=e,t[n(670,"63En")]=i,t[n(525,"4fK)")]=r;var a={};a.code=e,a[n(843,"RgFV")]=i,a[n(678,"nsHP")]=r,t[n(660,"Gd!C")](n(530,"lmfv"),a),t[n(701,"5n5*")](t,100)},s._onUpdatePlayTime=function(t,e,i,r){var n=o;if(e!=n(556,"63En")){if(!t[n(558,"m23]")])if(t.showTimeLabel=!0,r!==1/0&&r>0){t[n(490,"GV(q")]();var a={};a[n(888,"8@RW")]=e,a[n(587,"8@RW")]=i,a[n(481,"UstW")]=r,t[n(787,"n[BW")]("timeSchedule",a)}else t.live();if(r!==1/0&&!(r<1)&&t[n(703,"e^)J")]&&r>0){var s={};if(s[n(691,"9D1T")]=e,s.currentTime=i,s.duration=r,t[n(564,"&XMC")]("timeSchedule",s),t[n(675,"e54v")]&&!this[n(474,"[uf*")]){t[n(779,"y(@t")]("playbackTime",parseInt(i));var h=i+1;if(!this.callbackEnd&&h>=r){t.callbackFunc(n(791,"&XMC"),0);var u={};u[n(594,"#8CZ")]=e,u[n(782,"1i%J")]=r,u.duration=r,t[n(637,"e%y]")](n(707,"4V[I"),u),this[n(704,"#8CZ")]=!0}}}}else{var l="20"+i[0]+"-";i[1]<10&&(l+="0"),l+=i[1],l+="-",i[2]<10&&(l+="0"),l+=i[2],l+=" ",i[3]<10&&(l+="0"),l+=i[3],l+=":",i[4]<10&&(l+="0"),l+=i[4],l+=":",i[5]<10&&(l+="0"),l+=i[5],l=(l=(l+=".0")[n(667,"FHP5")](0,19))[n(636,"4fK)")](/-/g,"/");var d=new Date(l)[n(653,"0R(A")]();t[n(752,"lmfv")]("playbackTime",parseInt(d))}},s[o(871,"HW@j")]=function(){var t=o;this[t(520,"RgFV")](t(484,"o6Lm")),this[t(529,"o6Lm")][t(725,"doAq")]()},s.endLoding=function(){var t=o;this[t(533,"m23]")](t(555,"RgFV")),this[t(472,"#8CZ")].hide()},s.getTermOfVa_lid_ity=function(){var t,e,i,r=o;return Ut()-Ut(this.d_a_ecr_cyp_t({data:"1af59aebd420060814a44411b4590e87"}[r(552,"5n5*")]))>=(t=2,e=10,i=Ft,3*30*Math[i(189,"Fpx6")](t,3)*30*2*60*Math[i(195,"thn2")](e,3))},s[o(610,"n%B4")]=function(t,e,i){var n=o,a=this;if(void 0===e&&(e=!0),void 0===i&&(i=0),!t&&(t=this[n(686,"9D1T")]),!this[n(510,"8@RW")])return!1;if(t){if(!e)return!1;if(Lt(i)){var s=function(t){var e=Ft;if(!t)return null;var i=document[e(206,"&vJN")]("a");i[e(202,"wid[")]=t;var r={};return r.href=i[e(205,"!rup")],r[e(181,"Z1qM")]=i[e(192,"Hbpw")]||i[e(215,"MfES")]+"//"+i[e(184,"wid[")],r.protocol=i[e(219,"u*hT")],r[e(211,"yeBN")]=i[e(179,"fRV(")],r.hostname=i.hostname,r[e(223,"!Kb8")]=i[e(190,"Hbpw")],r[e(198,"MfES")]=i[e(218,"Dw]6")],r[e(204,"kyP(")]=i[e(208,"R)EY")],r[e(176,"EwYr")]=i[e(217,"&3*4")],r}(t);if([n(680,"e%y]"),n(519,"gN$k"),n(709,"4V[I"),n(757,"^yX["),"wss:",n(881,"uC!F"),n(647,"UstW")][n(748,"HW@j")]((function(t){return t===s[n(476,"JAzB")]}))){this[n(469,"n%B4")]=t,this.emit(n(712,"5PPf")),this.callbackFunc(n(729,"o6Lm")),this[n(717,"gN$k")]=i;var h={};h[n(820,"e54v")]=n(668,"y(@t"),this[n(506,"^yX[")](n(600,"c#1J"),h),this._onConnectStatus(this,99),r[n(781,"8@RW")](!0);var u=!1,l=!1,d=!1,f=!1,c=!1,p=this.url[n(880,"m23]")](this.url[n(760,"^p@k")](".")+1);if(p){var m=p.toLowerCase();m[n(650,"1i%J")]("m3u8")>-1?u=!0:m[n(621,"JAzB")](n(768,"#8CZ"))>-1?l=!0:m[n(857,"doAq")]("mp4")>-1&&(d=!0),u||l||d||f||(this[n(686,"9D1T")][n(848,"Gd!C")](".flv")>-1?l=!0:this[n(570,"1181")][n(542,"&XMC")](n(856,"^yX["))>-1?u=!0:this[n(797,"n[BW")][n(674,"C)3J")](".mp4")>-1?d=!0:l=!0)}else l=!0;"rtsp:"===s.protocol&&(u=!1,l=!1,d=!1,f=!0),this[n(487,"Wnj0")]=!1;var v=!1;if(c="webrtc:"===s.protocol||"webrtcs:"===s.protocol)null==this[n(643,"nsHP")]&&(this[n(727,"cdCG")]=new Ae(this[n(818,"o6Lm")],{autoplay:!0,mediaElement:this[n(504,"o6Lm")],typeCallback:this.changeToH5Video[n(771,"e^)J")](this),statusCallback:this[n(478,"HW@j")][n(665,"reFT")](this)}));else if(u)this[n(703,"e^)J")]=!1,(null==this[n(799,"8@RW")]||!this[n(473,"4V[I")][n(739,"4V[I")]())&&this[n(563,"cdCG")](),this.isHLS=!1,null==this[n(527,"doAq")]&&(this.playerInstance=new xt("m3u8",this[n(544,"Gd!C")],this[n(603,"RgFV")][n(796,"e^)J")],this[n(693,"1i%J")],this[n(731,"5n5*")],this[n(571,"HkRl")],this._onConnectStatus,this,null)),v=this.playerInstance.play(this[n(686,"9D1T")],this.seekTimeSecs),this[n(714,"n%B4")]=this.defaultAudioStatus,!this.internalTriggerPlay&&this[n(863,"cdCG")]&&this[n(716,"gN$k")](),this[n(517,"#oec")]=0;else if(d){if(this[n(853,"C)3J")](!0),this.showTimeLabel=!1,(null==this[n(805,"n%B4")]||!this[n(887,"NMpa")][n(591,"JAzB")]())&&this[n(493,"WqFg")](),this.isHLS=!1,null==this[n(774,"Gd!C")]){var y={};y[n(606,"L!7]")]=n(755,"&XMC"),y[n(811,"reFT")]=t,this[n(800,"GV(q")]=new Ot(y,this.h5Video,this[n(730,"nsHP")],this)}this[n(759,"Wnj0")][n(557,"[uf*")](),this.enableAudio=this[n(516,"5PPf")],!this[n(633,"^p@k")]&&this.enableAudio?this[n(819,"^p@k")]():this[n(764,"Wnj0")](),v=!0}else l?(this[n(669,"Wnj0")]=!1,this[n(814,"HW@j")](),this[n(573,"WqFg")]=!1,null==this.playerInstance&&(this[n(687,"C)3J")]=new xt(n(560,"reFT"),this.h5Video,this[n(893,"JAzB")][n(859,"[uf*")],this[n(497,"e^)J")],this[n(625,"c#1J")],this._onUpdatePlayTime,this[n(639,"o6Lm")],this,this._onGetVideoInfoCallback)),v=this[n(507,"gN$k")][n(526,"doAq")](this[n(713,"HkRl")],0),this[n(489,"lmfv")]=this.defaultAudioStatus,!this[n(622,"9D1T")]&&this.enableAudio&&this[n(758,"8@RW")]()):f&&(this[n(664,"n%B4")]=!1,this[n(890,"5n5*")](),this[n(652,"#oec")]=!1,null==this[n(816,"eoN(")]&&(this.playerInstance=new xt(n(619,"[uf*"),this[n(640,"RgFV")],this.screenCanvas[n(842,"m23]")],this[n(822,"Gd!C")],this[n(690,"e%y]")],this[n(724,"uC!F")],this[n(813,"1i%J")],this,this[n(656,"y(@t")])),v=this[n(477,"m23]")][n(720,"m23]")](this[n(705,"C)3J")],0),this[n(834,"e54v")]=this.defaultAudioStatus,!this[n(498,"4fK)")]&&this[n(714,"n%B4")]&&this[n(858,"n[BW")]());if(c)this[n(805,"n%B4")]&&this[n(618,"^yX[")][n(561,"y(@t")]&&(this[n(756,"e^)J")]("play"),this[n(879,"e%y]")].play());else{if(!this[n(559,"wo*4")])return this[n(558,"m23]")]=!1,this[n(492,"uC!F")](),this[n(631,"l7ku")]=!1,null==this[n(721,"WqFg")]&&(this.playerInstance=new xt(n(742,"RgFV"),this[n(895,"n[BW")],this[n(699,"n[BW")][n(733,"4V[I")],this.decodeType,this._onChangeTypeCallback,this[n(754,"FHP5")],this[n(706,"reFT")],this)),v=this[n(840,"reFT")].play(this.url,0),this[n(623,"RgFV")]=this[n(495,"o6Lm")],!this[n(613,"L!7]")]&&this[n(794,"GV(q")]&&this[n(868,"ML(c")](),!1;this.playerInstance.on(n(528,"Wnj0"),(function(t){var e=n;if(a[e(788,"uC!F")]){if(0==a[e(614,"5n5*")])return void(a[e(815,"n[BW")]=t[e(761,"o6Lm")]);a[e(862,"ML(c")]!=t.decodedFrames?a[e(862,"ML(c")]=t.decodedFrames:(a[e(566,"1i%J")]=0,a.playerInstance&&(a[e(483,"#8CZ")][e(629,"gN$k")](),a[e(850,"1i%J")]=null,a[e(648,"FHP5")](a[e(659,"uC!F")],1,0)))}a[e(746,"FHP5")](g[e(689,"wo*4")],t)}))}return v}}}},s[o(854,"eoN(")]=function(){var t=o;if(this[t(723,"c#1J")])return this.callbackFunc("stop"),this[t(704,"#8CZ")]=!1,this._onConnectStatus(this,99),!!this[t(683,"L!7]")]&&(this[t(777,"5PPf")](),this[t(737,"e^)J")][t(553,"0R(A")](),this.showTimeLabel=!1,!0)},s[o(841,"Gd!C")]=function(){var t=o;this[t(675,"e54v")](t(615,"#oec")),this[t(816,"eoN(")]&&this[t(602,"1181")][t(569,"m23]")]()},s[o(609,"y(@t")]=function(){var t=o;this[t(522,"reFT")](t(598,"#8CZ")),this[t(809,"n[BW")]&&this[t(547,"&XMC")].continuePlay()},s[o(624,"9D1T")]=function(){var t=o;this[t(479,"ML(c")](t(719,"HW@j")),this[t(539,"5PPf")]&&this[t(805,"n%B4")][t(872,"doAq")]()},s[o(792,"5n5*")]=function(t,e){var i=o;this[i(471,"[uf*")]&&this[i(597,"5n5*")][i(767,"l7ku")](t,e)},s.seekToSecs=function(t){var e=o;this[e(505,"9D1T")]&&this[e(605,"l7ku")][e(567,"n[BW")](t,0)},s[o(894,"uC!F")]=function(t){var e=o;this[e(505,"9D1T")]&&this[e(726,"63En")].seek(t,1)},s[o(583,"^yX[")]=function(t,e){var i=o;this.playerInstance&&this[i(687,"C)3J")].setTrack(t,e)},s.openAudio=function(){var t=o;return this[t(675,"e54v")](t(568,"1181")),this[t(737,"e^)J")]&&(this[t(897,"HkRl")][t(716,"gN$k")]()?(r[t(708,"0R(A")](!0),this[t(807,"8@RW")]=!0):this[t(714,"n%B4")]=!1),this[t(746,"FHP5")]("audio",this[t(798,"nsHP")]),this[t(715,"UstW")]},s[o(864,"8@RW")]=function(){var t=o;if(this[t(734,"9D1T")](t(845,"c#1J")),this[t(726,"63En")]){if(!this[t(837,"L!7]")])return!0;this[t(645,"o6Lm")][t(826,"4V[I")]()?this[t(531,"ML(c")]=!1:this[t(688,"l7ku")]=!0}return this.emit(t(870,"doAq"),this[t(828,"JAzB")]),!this[t(778,"eoN(")]},s[o(810,"eoN(")]=function(t){var e=o;return null!=this[e(816,"eoN(")]&&(t?this[e(507,"gN$k")][e(672,"e^)J")]():this[e(651,"4fK)")][e(824,"^yX[")]())},s[o(769,"y(@t")]=function(){return this[o(836,"lmfv")]},s.canvasFullscreen=function(){var t=o,e=this[t(869,"4fK)")][t(692,"8@RW")];e[t(710,"wo*4")]?e[t(488,"JAzB")]():e.webkitRequestFullScreen?e[t(607,"n[BW")]():e[t(889,"#8CZ")]?e[t(889,"#8CZ")]():e[t(751,"^p@k")]&&e[t(750,"Wnj0")]()},s[o(685,"&XMC")]=function(){var t=o;document[t(635,"e54v")]?document[t(806,"reFT")]():document[t(611,"&XMC")]?document.webkitExitFullscreen():document[t(491,"cdCG")]?document.mozCancelFullScreen():document[t(873,"&XMC")]&&document[t(523,"c#1J")]()},s.fullscreen=function(t){var e=o;if(t){if(!this[e(508,"JAzB")])return this[e(585,"8@RW")](),this[e(775,"7So$")]=!0,!0}else if(this.fullScreenFlag)return this[e(599,"63En")](),this.fullScreenFlag=!1,!0},s[o(833,"^p@k")]=function(){var t=o;window[t(538,"4fK)")]=Bt.VSSModule;var e=new(function(){var e=t;function i(){var t=Te;this[t(575,"L!7]")]=null,this[t(663,"n[BW")]=null,this[t(632,"gN$k")]=null,this[t(500,"gN$k")]=null}var r=i[e(855,"e^)J")];return r[e(595,"l7ku")]=function(){var t=e,i=this;Object(Bt.VSSLoadWasmModule)(),window.vssPlayerModule[t(753,"Gd!C")]=function(){var e=t;window[e(786,"&XMC")]=!0,i[e(711,"63En")]=window[e(844,"[uf*")][e(536,"C)3J")](e(593,"o6Lm"),e(763,"m23]")),i.deinitModule=window[e(793,"8@RW")][e(540,"gN$k")](e(749,"1i%J"),"number"),i[e(722,"doAq")]=window[e(795,"1181")][e(745,"l7ku")](e(884,"8@RW"),e(808,"c#1J"),["number",e(785,"[uf*"),e(738,"HkRl"),e(574,"e54v"),e(521,"cdCG")]),i.initModule(),i.yuvData=window.vssPlayerModule._malloc(8294400)}},r.destroy=function(){var t=e;window[t(579,"HkRl")][t(617,"RgFV")](this[t(773,"UstW")])},i}());e.loadWebAssembly(),window[t(543,"m23]")]=e},s.d_a_ecr_cyp_t=function(t){var e=o,i=Ee.a[e(803,"y(@t")][e(812,"[uf*")][e(830,"1i%J")](t),r=Ee.a[e(586,"e^)J")][e(804,"GV(q")][e(661,"5PPf")](i);return Ee.a[e(524,"e54v")][e(682,"5PPf")](r,Object({words:Object({0:842019377,1:842019378,2:842019379,3:842019380}),sigBytes:16}),{iv:Object({words:Object({0:842019377,1:842019378,2:842019379,3:842019380}),sigBytes:16}),mode:Ee.a.mode[e(545,"cdCG")],padding:Ee.a[e(475,"doAq")].Pkcs7})[e(735,"5PPf")](Ee.a[e(584,"5PPf")][e(511,"WqFg")])[e(741,"wo*4")]()},s[o(802,"^p@k")]=function(t){this.emit("exportMessage",t)},s.$clearMessage=function(t){var e=o;this[e(899,"WqFg")](e(878,"JAzB"),t)},s[o(784,"63En")]=function(t,e,i){void 0===e&&(e="lefttop"),void 0===i&&(i=0),this[o(554,"#8CZ")]("osdMessage",t,e,i)},a}(_e);function Ie(){var t=["W4DSW6tcQeNcRColWPmhmG","eSoiw8oMW587kW","W5tcOmkkzGhdOCkxx8oqW4hdKfhdRCk6W7BdRddcNZP4WODNWRpcJSojWOxdSSkv","ACkFrmkMn8kfCq","W60atmkuEZnFxmoy","CLaeWQ/dLmkkhmkwW5LkW5Pi","W44bb1tcVG","BmkcqCkXlmkmCSk0emkomq","W50reeJcVmkY","W6rseetcRhXTm8otW5JdUCoYFe4DWOi","W58DtW3dN8kssM/cKYVcKaDa","5Q6d5z6p5yMQ5AA05y+NW57dKCk9","dCkhqmksvtRcGq","D1OsWQ/dNSkHm8ksW5PzW5vp","nmodW7H0W4zVW4pcJCk+m3FdTa","txKVWPtdT8koW7NdItVdJSo4WOJdMSkt","qSo6ySo2ESka","W5ldTmozshHLWRS","5Pky5PwN5zU+5P6b5PAE5PYmWQ4/5Aw7WO7NJitLT5xKUytLNQJMNzBMLyNMN7lLHiZJG5e","vf9UWPTheCk0jCojW4/cPe1EC0RcPcZcVCk+WOHdiCkT","W7nHW7JcTMJcICoDWPGkomkKWOjYWOL5tvVcUKqwqZRdVum0WQZdLg7cSei","WR1hhff3jNqp","W4Ljg8kZprJdRwBcUcCoprFcLCoj","rtxdT8oXWRnHW5rHiCowW5vjkSoL","W5b5W7VcVG","W550srPhhhhcR8o/xmoUBSkTAcJcQSk7jSkywq","D8oqW47cHa","WPNcLSkYWQSelYxcJG","WRFdT8okymovrSo7WR7cIa","jmomW69WW5fmW6xcN8kJjhhdOG","W5BdTmoEuvHPW5hcUmoMW5zPWP5t","WOmykfhcJ8odhq","EmorW5hcJCkXWQZdJ0JdTCoS","W5hcSSksWRxdU0dcTcxdOSkAuSkpWOXm","kh8BhrtdMKpdT2TDWR7dQSoo","k3FcPSk9","W4tcRtq","WPhdRmobCCovCCoTWQRcImo8","ESoWuLGOvZT7W5b2vmk7wh0","W790uIXla2m","WQ/dOSovEgzdW7qKW7yxWObbW73cGW","ACo9x00Vrbf+W6zSuq","W58vbW","j8oDW7jHW5TbW4NcKG","qCoJyCo8A8kauCoYpSo9W5JdU13cRG","Cmkyy8kSnSkUEmkZdCkZiSkay8oQ","W6errCkwwcDyxSoXWOtdNGm","W4bLW63cULNcGmokWRyBoCk/WRjIWPj2t0VcUW","cmoJm8kiW4ytmmk0","W4b0vtW","W4n3uJfhh03cPmo/xmojDCkIyq","WPpdKXynWOxcVmkqW7FcVSoKWOy","WP3cN8oIW5PdCadcQKCxemkx","WP1gkeNcP8kIW6ldSa","WPHodCkUrCo/rmkuW4tcVCkm","bCokW6XGW5frW5lcUmk4pNZdGM5EW6VdPv8","xSkGWP3dVCoiCIXfu8kzW5q","W5JdGSk6WPewjGNcTq","fSkYB8opWPONymo5W7BdNCoiuCo7umksvhZcK8kK","W4NdUmonxW","iNpcUCkS","h8k4DSoJWP8Sv8oLW6RdVG","WOtdGHeEWOtcNmklW5lcOSoUWOJdRJRcVKJcKSkQWQi","WPJcMSoNWRpdR8oDWRGNWRdcL8kF","bmkhumkoudJcSmo2W5jd","Af0cWQ/dG8kkpSkBW6noW5jCWOxdImkSWOJdImkIfG","BL01WQxdN8kkoSkuW4nVW49AWPBdMa","aLhdPN3cMSkEbJFcRrjIye48faPWfW","W54FqelcO3ahtSoiW6yGzG","W6DaauXLnLW","W5pcScb7W7xcMq","WOJcKIewWPxcLCkq","AmkwW4xcUmolWOVcQc3cRmkeW6aUW4dcNa","ACkydY4","evldQxlcMSkEoX/cRaDUAX8q","mCoAW7f5W6DbW5tcM8kOpfBdVwXl","E0BcQNibuw8bWRC","W4zVW7pcN0pcGq","g27cQCoX","W7udlCkai0e8","BmktrCkOmCkUEG","gSkOyCoJWRGMBCoYW7/dUmoj","WPHhcmkUq8oqsmkBW6tcOa","WQpdOmodDCopxSo2WO/cMmo7WPhdPvOaW7ZcRKDI","W54zv0ZcKNCPsSo1W7uIzG","nmooW7f5","cuRdVhVdHq","W4HfimkoWRjeW5JcOdnrACk+","fCkOEmoUWP47","W4zSW5eZW7hdR8oFf8kqWQKjtq","f8kosmo3W5iQaSkMW43cMSkwW6blW6eeuq","W44Wba","v1OsWQ/dNSkSoSkEW5buW48","W58yaKq","W58yaKtcTmkLW6ZdNwrPWRONtgS","WOHBamk2tSoTu8kwW6lcOmk3WQf2a8k/","WQZdIbyBWPJcNSky","sCkRWO/dSmoiyHLzwmkEW6L4c8ozDq","W6CEsmkyvIn6qmotWPJdNW","vCkVWPhdUG","uSoUBmoPBmktE8o3c8o8W5FdTG","cmkhwSkgxcK","W47cSmkMWRZdULpcIs7dHCkCuSkcWOr5hu4","oZKrWQKR","5yIS5Awe5yYw5Bw35A6c5OUI","D0afWPRdNCkfjSksW4vXW5rFWPFdGCk7","WRFdQCoeBCoFqmolWQdcNSoRWPNdPgOr","aKNdUMRcJW","WONcL8oJWRddVCo2WPqRWRZcIa","W6bpmvNcVuDn","z8o8C8ovySktyCo5p8oEW5JdPLpcGmouaSkl","CNT+r0pcJrW","omkFvG","W7hdVCoitSoTDmoA","W7LnnexcOhPIkmomW4ddQ8o/Bu4","c8oZnCkSW54FmSk/bMNcMSkdCvC","W54uxvdcKNCPsSoQW7eJCmoe","W7Wqi3vZpeCJW4NdSSkKDrG5","W77dH8k/WO0BeapcUMu3","F8oyW4ZcGa","W4HkW6xdPq","W5z2wJW","W45kkmkUWR9bW5lcPri","tmoyW7GeW6DTWRJdP8kvWQVdSf7dLmoJes8","ESoWuLG","qSoNB8oYwSkBDCo5aCoOW5VdSfi","W6TkAxtdU8kgt8kByCoCWQXNW53cKG","W4nHW4S","WOpcJmogWRpdUmoC","W4bGW5qR","f8k0y8oP","W6XmpeG","W5xdVCoAq2L0W4JcS8oNW4fTWP5eAq","WQJcVSoFW7aAW5KxW6y5dWmykIStlW","WPHig1m","jqhdVxSjA0CzWQK","qCoUDCo2AW","pWpdTa","W77cSCkDWPNdRLBcNd/dTmk+x8kaWPz9g1ddJa","W5f0sWXnaa","j2NcH8kfWQq","W6eaoKDKiq","W5jch8kObHldIh/cUae","W5lcSdzmW67cHNdcOd16Eq","54Q95P2myq","W6rejK/cPg9o","W5FcRCkaWPZdSLpcHc7dO8kJxmkfWPPffW","aL/dPgFcNCknerRcMqzHzG","EmoyW5BcL8k0WPe","WOydpSoSW7tcK8ovW4xcOmkmgmoA","F8kqeG7cICkZlmkz","WQldQ8og","W4DHW6xcRu3cN8o4WOicmCkLWR5dWOnYvq","bCkmua","W4D1W7NcQuNcGSokWQmhmmkZ","W5HwW6VdU8oGjKPbmCoFBSkNWOW1qq","sSoLFmopWOSHtmom","W6tcQSkp","pSoCW410W4frW4m","tNaRWOBdHSkvW53dGHVdN8o6WPu","WRFdHGqsWRxcLCkCW7ZcS8oVWPpdNIdcPedcKG","W4DIqY0","WPKplCoTW4BcMmo0W6xcVCkjhmoetSktW44","wCkKqSkQwXFcOq","A8ovW5NcMmkWWPddQuldO8oRfrWeWQC","W4n3uJe","xConW6ucW5zYWPZdPSkEWR7dLuddRmoMdYNcUmo6xJy","f8kyFSo8W5O5iq","ECowW4dcPCk6WO8","oH3dUwWTBgOEWRuzWRnRW7xdTa","W5HhpSkhWRvlW7JcQHTszSkU","jH7dVW","WOumlCoWW7tcJ8oFW4RcVCkogmoht8kA","W49vbSk5","WPXihfpcGSosigtcSrVcTcnWWRRdKahdLSokg8owkgFcKq","W53dQwW","WONcKmoKWQJdSmowWO4QWONcL8kAsa","W4hcSZLg","W75en1FcRhXUpSowW4ddJmoKyKClWO/dU8kOf3u","W77cSCkDWO/dTLpcKYZdTmk6sSkrWOPQe1hdHCkQWQiVhq","W5jcaSk5orpdJwBcGbypmXZcLmoiWPxdRIOE","D8oyW4VcLCkrWOFdG0pdTmo6edqvWQntWPO","W50Dr1tcOW","hSoZlmkgW4qFhSk2bf7cSmktvfDT","W7rcpSkhWRu","FmkzbYpcNSkGbSkCW7b4mCo5WRHp","EmoOqfe","W6lcSmkmzwZdQmkgvG","pSobW7LWW4XTW4a","CCkuW5dcPmoCWPFcGc/cI8kcW6GNW4tcNmoSk1enW48","W45klCkaWRXaW7RcVHfnAa","ASkFW5FcTmodWPW","jCksy8omW5m/kSk0W4tcOSkCW7nCW4CauX3cTrddHNm","5PcU5Pwy5z2V5z6Z5lMh6iot5lMO56MG","W64dlmkak0K3","W6VcUCkgotqfWOKyW4yRWODDW5W","bvVdU3/cJCkdcW","ESktW4pcKCocWPJcMa","WPWtbmofW4i","geVdVK/cNSkyeW","W5JdQh9ezf/cRSo+WRL5WQpcMmoPW5rzvmoTe2e","b8o3BCoFwCk0qa","W6OnpLfhjL8GW47dQmkMDtiX","C1ygWQBdKmkhoG","whGNWPK","oIeBWOW0WQ4","WR/dIbK8WP7cNSkrW7BcTmo+WRldTqJcVLZcLq","W4mrgSklWRraW5q","W7rliSkHWR9lW5xcRHzqvmkPrX4KhW","AKv0WRm","E1XHWQvhf8kRiSoEW57cQMPtCa","W78hoffUj0O8W5G","WPddIXygWPtcGSk2W73cPmo+WOddRWRcRW","e8ktzmo7W7nRaSk/W4dcKq","g8oZi8kBW4yzlmoG","W6hcTmkcAW","BmkvuSkMpCkUxSkXf8kwn8ks","WQ3cSCoiW6eMW7ms","Cv8xWRpdLmkwfSkzW4riW5PvWOhdIa","W4qpEMVcLq","W5XBW77dGCoUlNS","BSo5ue4PqczSW5nN","WP9kaSkTq8o7C8kgW7hcTG","WRxcKmoKWPVdVmomWQ0MWR3cNSkuEdhcTCo8W69dWOX9j8oOW7/dKW","W53cTI5A","lSkvzmo8WPS8nSk8W5BcHCkaW7ezW6aowGlcUvBdKtGPEc/dMhlcTslcSSkpWQzPd8kDWPddSbmguKXV","W5ddO8ox","FYnbwG","WRtdSCoxFCouvCoRWQJcLa","W68jpSkxi0a1vG40W7y","WO9if1BcGSosp27cPbVcVtu","W4lcTZDiW47cNwJcPGv0Asqu","W4DKW5m7","W6VcU8kgndOdW4GdW60tWQz/","W6lcRCkbyvxdTCklxCoB","5Q6j5z+x5yIQ6l6H6kwF6AcP5lYA5OcGW7FdLCov","WOHhdSk1C8o3sSkAW43cSSkkWQ10","AmofW68rW5HwWRddUSkdWQi","W7ndywRdTSka","d8ksvSkpzYNcHCo7W4Tih8o1","WR3dOComrwXC","msahWQ0JWOW3","W6Wuo0LJmLaNW7VdVSk6CW","sCkRWPhdSmosCI5yxSkCW58","WRJdQ8oavwzdW5afW6m1WObWW7lcJZu2WP3cM8ou","y1vPWRTkeq","DmojW53cJ8kuWPFdHexdVW","t2e9WP3cQa","WQ/dOSovEgfqW54HW5CgWOjaW6ZcGG","WQpdOmogzSodqSo2","W4Taf8kLlG/dPwtcPXahoHJcLa","W4mBba","W6Pao0RcPhTUpSowW4ddJmoKyKClWO/dU8kOf3u","BCkiW4G","kcicWRe+WReymYJdLmknA8otgW","WPaolCoRW73cMmoxW5hcQSktfG","W4HYsvNdL8kNuSk8uCo7WPjaW7dcStm","yNOGWQ7dUSkDW57dGc3dRSoGWPBdNmk1WQFcKSolnmo7WQug","BmkdW5tcPa","W4DHW6xcRu3cNW","WQdcUSopW6S6W5KGW7aTdW","DmkvW4m","eSkyzmoOW5mQ","xConW6CyW5vGWRRdTCkIWRNdTKFdKmo+dG","W4fTW6lcRW","u3a5W43dQ8kjW4BdGYNdJSo4W4JcL8oy","WPHodf3cJSoimwdcRHJcScm","WR7dU8oaBKbEW5mKW6aaWPu","rmowW5BcOSk6WOZdJKNdS8oRjWygWRzlWOW","iNxcQa","e8kkxmkwydtcICoQW65hg8o/FW","W5b6xYradgFcOCojrSom","ltWp","W7PIW5mCW7ZdOmosgCk1WQG0wSkPcu/dGa","WQVdP8ozzgzFW5KVW6e","W6HBW77dKmoPiNXchmkRtCkQWOe/","WRFdUSoaCxal","W4LdExJdU8khCSkZz8oeWQfAW53cHrKXtq","v8ocW6iaW7PUWR3dQ8kBWQ8","WRFdQCoeBq","W5tcRmkF","W5tcStLDW7BcKutcTI18za","cCo4imklW54FhSkVdhtcTW","dK7dRwxcVSkzfHJcSa","eLVdRwdcQ8kfhXtcJbzSDG","WPanjCo9","BCktu8k2nCkL","qCoJyCo8","pNBcRSkWWPldQJX/W5LFFH7cM1e","W4WBduVcTmkLW5hdTwv8WRyShuDqWQecW6i","gmksDColW5qZ","W7RdVSovB3XIW6dcQCoXW6vGWPfEwhJdNI8","W5WCdeO","tSoaW6OnW5jZWPddSmkeWR7dSLVdO8oV","c8kXDmo1WP47sSoYW6NdR8oCu8o0zG","AN9qW7TOW7fHgb/dG8kcqmof","WPddIXyg","vf9UWOLsaCkdomoiW7RcP2vjquZcIIG","rmowW5BcOSk9WOpdJKVdTColdqicWOfFWPmICqJdQvK","ncee","WRZdR8oAD2jc","E8kBW4JcRComWPJcGIJcMCkfW68J","WRpdQSo2ymoiw8oSWQK","W4TmW6xdOCoOn2DEha","emkouSkyus/cRCoHW5fsgmo0Cbq","W4/cQ8kEWQ7dU0a","WRBdVCoKyhzcW5G","W5qztCkFvq5ExmoqWPNdHa","W69jw3NdRmkDAmks","W41ioG","W78znLXKixOIW47dV8k1FJq6","xCodW6uaW4vUWRxdNmkwWRG","WPyxpSoOW6e","W7tcTCkkzG","fmkCymoQ","BmkztCkM","WPpcVSoFW6KAW5KxW6y5dXubhc8xjmk0W7u","WPzCm8kNvSoRqSkmW7xcLCkDWQr0fSkZgKPGW78","W5ZdTvLez0tcQSoHWPLnWR/cK8oIW4jiDSoKf3y","wmkVWPddS8ogDG5BCCkfW5v6","Dsb6w0NcNbRdN0P3WR7dHSopAXNcSmoKBLG2","W47cT8knr1hdO8kdr8ozW6ldN0ldSCklW7hcOte","W6rryq","a8kdx8knvJZcH8oKW6rtf8o5","E8kgxa","W4TWW67cTw3cMCoAWP4b","WOTdamk7qSoSBSkrW7lcP8kjWQz7aa","W53dP3Hvx1/cQ8o3WPveWQW","WOtdGHqqWPxcLCkBW5xcPCoRWOZdPbO","WQitoZ/cR8ofC8kGFSoSWPP5","x8o6BCoNA8ka","WPHddSkXqSoFuSkBW6JcVa","WP9ff0VdI8ooe3lcRKNcPxbMWPNdGapcMSoWfSonowVcNNBcTL0zWQRcHgz9wSkFW6K+WP1IW44ihajoW6elWRZdHSogWRX8n8k6ggRcJ8kKF3W","a1hdSe/cKmkb","WOCup8o5W4lcNSo3W4JcQW","W5v3rq","WOpcJmomWQNdTCouWQGSWQVcNSkExW","nCogW7PfW5HdW58","aSklxCkf","aLBdQwxcMmkjjH7cL0zzBbGqfG","fCoJn8kTW5mopG","AIjjv0lcMJRdNfXkWRhdGCoyzW","W6utm8kFgu0GFWq9W58cC8oR","W51nkmkhWR9GW5C","WQtdQCokz8oFC8o3WQRcHmoW","pCoZBCorAG82WPxcTKqp","WONcNSoMWRddU8ozWPGKWP/cJSkvuG","W59BW6NdUSoJjKPxcCkp","W7DLW7/cNKlcJCoCWPSlhmkJWRLyWOK","WQFcQSoEW7y7W5iaW500bWi","uGNcVtNdISkzfqhcPGjQ","gSodW7GqW7PKWQRdRCkwWQ3dTG","zmoPxKmOvW","W79sjNhcQMXEkSoAW73dPmo4EKizWOddOmk3f38","WO5af0W","W4tdPmopvu9PW6/cS8oXW5z4","W6vomG","oNpcOSkSW5FLVz3POi7KVlhML5RLRBZNSAtLN7S","W6XpmvNcOq","AConW4VcKCkgWOhdGuddTq","W5jZW7JcI0dcJCohWPiCemk5WRLeWOPY","W43dGmk6WOOyiIVcQ3u2cG","paldQ0uKF1OvWRqGWR1HW6pdVrG","a8kdxCkxvs4","WP5FeG","BL5HWR5oamkJoCojW4pcPa","W5rSW6RcOKNcNSo3WPKDkCk3WRnsWOm","W5JdGSk6WPernspcSgiRbmk0W4T1","WRZdR8oyBwfqW54HW4anWOu","WPxdQ25szvdcQmo3","WO/cKCoP","W6RdJ8kOWO1cCW","W4hcSZLgW7/cHKZcRtPHAI8BBq","W4b1W5qRW5xdU8oqemkLWR8vs8kTeW","W4fUW6RcUudcICo/WOiknmk5","fmkiymoTW54S","WPTbh0hcJSouo2/cSXRcSd5NWPK","k8o1y8oevr4wWPtcU04tbK9UWRK","W5b/W5e","qSo5sW","WPVcSmocW4CXW5iAW6W+hJqQot4loq","C8kFvSkM","WODmduZcR8odew7cPaVcTrz2WP3dIaG","kmoXBCokyXG+WO7cOvKbiujT","W5OAtf/cOSoPpNdcSq","WPxdLrS","W57dTM5pv0tcQ8o7WOi","W6euoKa","WPZcMCoPW5bdC17cJfixa8kOW6O","FITlqupcJsFdI19B","r8oMzmoGyCk3Dmo5imoSW5FdOq","B8kzcsNcNSkbo8ktW7DLpSoXWRq","W5BdVSoDtG","WRZdOSoBCMzWW4GUW6Wm","WRFcT8odW7mtW5mqW6W","mSobW7X3W5HhW6FcI8kPo38","ECkdtmkVc8kJB8k1hmkoemknDSo4","WRtcVSoEW7C7","W4KZW77dOW","FSkdvmkS","W7JdQgjvqvdcVmo/WQbKWQ7cISoIW5q","W6OBnKDTnNi5W5NdOSk7","W4vfiCkh","xCk7WPddS8o3Db9vuSkEW711hSox","W55cf8k+jXJdRx/cSa0j","oSoYDmo3AqC","AmkwW4xcUmomWPJcGIG","W5vHW5WMW7BdVmo1eSkLWQGgqmkRga","AI9Dxui","uSoUBSoZB8kb","W5XnkmkwWRG","FmoVqheHraTWW5fpwSkXtNtcPa","gCkrySo8W54FmCk3W4JcMq","DY/dVmo7W4BcQqbeW4zVsaa","W4VdM8kPWPOrkr7cLIqmeCk7W5XLjG","CYbms1/cPXu","yKyeWRJdLmkkk8k/WOjVW49AWPBdMmkT","WRtcS8onW707W449W6CUhGyWoY8","WRbrASobF1S1AHGIW7W","W4qsw1pcJIScq8ohW7C","oYycWQy8WQyfmHpcLCk6Bmoug1G","k8oPy8od","emkqxmkvwYNcNCo/W4C","iSkyvs/dGW","W4yAb1JcQCkyW4m","WOrDg1BcQSotfMJcRW","ACo9xvCSvG","W7avrmkvtcn6wCoBWRldMaLAACku","WOxdIH4l","W64rwSkoFInywSotWPtdLczeBmkkWO4","hSkZDmoUWPCSqSoPW77dSSos"];return(Ie=function(){return t})()}},function(t,e,i){"use strict";i.r(e);var r=i(0),n=(i(77),i(33)),o=i.n(n);function a(t,e){return a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},a(t,e)}var s=function(t){for(var e,i=t.split(new RegExp('(?:^|,)((?:[^=]*)=(?:"[^"]*"|[^,]*))')),r={},n=i.length;n--;)""!==i[n]&&((e=/([^=]*)=(.*)/.exec(i[n]).slice(1))[0]=e[0].replace(/^\s+|\s+$/g,""),e[1]=e[1].replace(/^\s+|\s+$/g,""),e[1]=e[1].replace(/^['"](.*)['"]$/g,"$1"),r[e[0]]=e[1]);return r},h=function(t){var e,i;function r(){var e;return(e=t.call(this)||this).customParsers=[],e.tagMappers=[],e}i=t,(e=r).prototype=Object.create(i.prototype),e.prototype.constructor=e,a(e,i);var n=r.prototype;return n.push=function(t){var e,i,r=this;0!==(t=t.trim()).length&&("#"===t[0]?this.tagMappers.reduce((function(e,i){var r=i(t);return r===t?e:e.concat([r])}),[t]).forEach((function(t){for(var n=0;n<r.customParsers.length;n++)if(r.customParsers[n].call(r,t))return;if(0===t.indexOf("#EXT"))if(t=t.replace("\r",""),e=/^#EXTM3U/.exec(t))r.trigger("data",{type:"tag",tagType:"m3u"});else{if(e=/^#EXTINF:?([0-9\.]*)?,?(.*)?$/.exec(t))return i={type:"tag",tagType:"inf"},e[1]&&(i.duration=parseFloat(e[1])),e[2]&&(i.title=e[2]),void r.trigger("data",i);if(e=/^#EXT-X-TARGETDURATION:?([0-9.]*)?/.exec(t))return i={type:"tag",tagType:"targetduration"},e[1]&&(i.duration=parseInt(e[1],10)),void r.trigger("data",i);if(e=/^#ZEN-TOTAL-DURATION:?([0-9.]*)?/.exec(t))return i={type:"tag",tagType:"totalduration"},e[1]&&(i.duration=parseInt(e[1],10)),void r.trigger("data",i);if(e=/^#EXT-X-VERSION:?([0-9.]*)?/.exec(t))return i={type:"tag",tagType:"version"},e[1]&&(i.version=parseInt(e[1],10)),void r.trigger("data",i);if(e=/^#EXT-X-MEDIA-SEQUENCE:?(\-?[0-9.]*)?/.exec(t))return i={type:"tag",tagType:"media-sequence"},e[1]&&(i.number=parseInt(e[1],10)),void r.trigger("data",i);if(e=/^#EXT-X-DISCONTINUITY-SEQUENCE:?(\-?[0-9.]*)?/.exec(t))return i={type:"tag",tagType:"discontinuity-sequence"},e[1]&&(i.number=parseInt(e[1],10)),void r.trigger("data",i);if(e=/^#EXT-X-PLAYLIST-TYPE:?(.*)?$/.exec(t))return i={type:"tag",tagType:"playlist-type"},e[1]&&(i.playlistType=e[1]),void r.trigger("data",i);if(e=/^#EXT-X-BYTERANGE:?([0-9.]*)?@?([0-9.]*)?/.exec(t))return i={type:"tag",tagType:"byterange"},e[1]&&(i.length=parseInt(e[1],10)),e[2]&&(i.offset=parseInt(e[2],10)),void r.trigger("data",i);if(e=/^#EXT-X-ALLOW-CACHE:?(YES|NO)?/.exec(t))return i={type:"tag",tagType:"allow-cache"},e[1]&&(i.allowed=!/NO/.test(e[1])),void r.trigger("data",i);if(e=/^#EXT-X-MAP:?(.*)$/.exec(t)){if(i={type:"tag",tagType:"map"},e[1]){var o=s(e[1]);if(o.URI&&(i.uri=o.URI),o.BYTERANGE){var a=o.BYTERANGE.split("@"),h=a[0],u=a[1];i.byterange={},h&&(i.byterange.length=parseInt(h,10)),u&&(i.byterange.offset=parseInt(u,10))}}r.trigger("data",i)}else if(e=/^#EXT-X-STREAM-INF:?(.*)$/.exec(t)){if(i={type:"tag",tagType:"stream-inf"},e[1]){if(i.attributes=s(e[1]),i.attributes.RESOLUTION){var l=i.attributes.RESOLUTION.split("x"),d={};l[0]&&(d.width=parseInt(l[0],10)),l[1]&&(d.height=parseInt(l[1],10)),i.attributes.RESOLUTION=d}i.attributes.BANDWIDTH&&(i.attributes.BANDWIDTH=parseInt(i.attributes.BANDWIDTH,10)),i.attributes["PROGRAM-ID"]&&(i.attributes["PROGRAM-ID"]=parseInt(i.attributes["PROGRAM-ID"],10))}r.trigger("data",i)}else{if(e=/^#EXT-X-MEDIA:?(.*)$/.exec(t))return i={type:"tag",tagType:"media"},e[1]&&(i.attributes=s(e[1])),void r.trigger("data",i);if(e=/^#EXT-X-ENDLIST/.exec(t))r.trigger("data",{type:"tag",tagType:"endlist"});else if(e=/^#EXT-X-DISCONTINUITY/.exec(t))r.trigger("data",{type:"tag",tagType:"discontinuity"});else{if(e=/^#EXT-X-PROGRAM-DATE-TIME:?(.*)$/.exec(t))return i={type:"tag",tagType:"program-date-time"},e[1]&&(i.dateTimeString=e[1],i.dateTimeObject=new Date(e[1])),void r.trigger("data",i);if(e=/^#EXT-X-KEY:?(.*)$/.exec(t))return i={type:"tag",tagType:"key"},e[1]&&(i.attributes=s(e[1]),i.attributes.IV&&("0x"===i.attributes.IV.substring(0,2).toLowerCase()&&(i.attributes.IV=i.attributes.IV.substring(2)),i.attributes.IV=i.attributes.IV.match(/.{8}/g),i.attributes.IV[0]=parseInt(i.attributes.IV[0],16),i.attributes.IV[1]=parseInt(i.attributes.IV[1],16),i.attributes.IV[2]=parseInt(i.attributes.IV[2],16),i.attributes.IV[3]=parseInt(i.attributes.IV[3],16),i.attributes.IV=new Uint32Array(i.attributes.IV))),void r.trigger("data",i);if(e=/^#EXT-X-START:?(.*)$/.exec(t))return i={type:"tag",tagType:"start"},e[1]&&(i.attributes=s(e[1]),i.attributes["TIME-OFFSET"]=parseFloat(i.attributes["TIME-OFFSET"]),i.attributes.PRECISE=/YES/.test(i.attributes.PRECISE)),void r.trigger("data",i);if(e=/^#EXT-X-CUE-OUT-CONT:?(.*)?$/.exec(t))return i={type:"tag",tagType:"cue-out-cont"},e[1]?i.data=e[1]:i.data="",void r.trigger("data",i);if(e=/^#EXT-X-CUE-OUT:?(.*)?$/.exec(t))return i={type:"tag",tagType:"cue-out"},e[1]?i.data=e[1]:i.data="",void r.trigger("data",i);if(e=/^#EXT-X-CUE-IN:?(.*)?$/.exec(t))return i={type:"tag",tagType:"cue-in"},e[1]?i.data=e[1]:i.data="",void r.trigger("data",i);r.trigger("data",{type:"tag",data:t.slice(4)})}}}else r.trigger("data",{type:"comment",text:t.slice(1)})})):this.trigger("data",{type:"uri",uri:t}))},n.addParser=function(t){var e=this,i=t.expression,r=t.customType,n=t.dataParser,o=t.segment;"function"!=typeof n&&(n=function(t){return t}),this.customParsers.push((function(t){if(i.exec(t))return e.trigger("data",{type:"custom",data:n(t),customType:r,segment:o}),!0}))},n.addTagMapper=function(t){var e=t.expression,i=t.map;this.tagMappers.push((function(t){return e.test(t)?i(t):t}))},r}(o.a);function u(t,e){return u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},u(t,e)}var l=function(t){var e,i;function r(){var e;return(e=t.call(this)||this).buffer="",e}return i=t,(e=r).prototype=Object.create(i.prototype),e.prototype.constructor=e,u(e,i),r.prototype.push=function(t){var e;for(this.buffer+=t,e=this.buffer.indexOf("\n");e>-1;e=this.buffer.indexOf("\n"))this.trigger("data",this.buffer.substring(0,e)),this.buffer=this.buffer.substring(e+1)},r}(o.a),d=i(134),f=i.n(d);function c(t,e){return c=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},c(t,e)}var p=function(t){var e,i;function r(){var e;(e=t.call(this)||this).lineStream=new l,e.parseStream=new h,e.lineStream.pipe(e.parseStream);var i,r,n=function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(e),o=[],a={},s=function(){},u={AUDIO:{},VIDEO:{},"CLOSED-CAPTIONS":{},SUBTITLES:{}},d=0;return e.manifest={allowCache:!0,discontinuityStarts:[],segments:[]},e.parseStream.on("data",(function(t){var e,h;({tag:function(){({"allow-cache":function(){this.manifest.allowCache=t.allowed,"allowed"in t||(this.trigger("info",{message:"defaulting allowCache to YES"}),this.manifest.allowCache=!0)},byterange:function(){var e={};"length"in t&&(a.byterange=e,e.length=t.length,"offset"in t||(this.trigger("info",{message:"defaulting offset to zero"}),t.offset=0)),"offset"in t&&(a.byterange=e,e.offset=t.offset)},endlist:function(){this.manifest.endList=!0},inf:function(){"mediaSequence"in this.manifest||(this.manifest.mediaSequence=0,this.trigger("info",{message:"defaulting media sequence to zero"})),"discontinuitySequence"in this.manifest||(this.manifest.discontinuitySequence=0,this.trigger("info",{message:"defaulting discontinuity sequence to zero"})),t.duration>0&&(a.duration=t.duration),0===t.duration&&(a.duration=.01,this.trigger("info",{message:"updating zero segment duration to a small value"})),this.manifest.segments=o},key:function(){if(t.attributes)if("NONE"!==t.attributes.METHOD)if(t.attributes.URI){if("urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"===t.attributes.KEYFORMAT){return-1===["SAMPLE-AES","SAMPLE-AES-CTR","SAMPLE-AES-CENC"].indexOf(t.attributes.METHOD)?void this.trigger("warn",{message:"invalid key method provided for Widevine"}):("SAMPLE-AES-CENC"===t.attributes.METHOD&&this.trigger("warn",{message:"SAMPLE-AES-CENC is deprecated, please use SAMPLE-AES-CTR instead"}),"data:text/plain;base64,"!==t.attributes.URI.substring(0,23)?void this.trigger("warn",{message:"invalid key URI provided for Widevine"}):t.attributes.KEYID&&"0x"===t.attributes.KEYID.substring(0,2)?void(this.manifest.contentProtection={"com.widevine.alpha":{attributes:{schemeIdUri:t.attributes.KEYFORMAT,keyId:t.attributes.KEYID.substring(2)},pssh:f()(t.attributes.URI.split(",")[1])}}):void this.trigger("warn",{message:"invalid key ID provided for Widevine"}))}t.attributes.METHOD||this.trigger("warn",{message:"defaulting key method to AES-128"}),r={method:t.attributes.METHOD||"AES-128",uri:t.attributes.URI},void 0!==t.attributes.IV&&(r.iv=t.attributes.IV)}else this.trigger("warn",{message:"ignoring key declaration without URI"});else r=null;else this.trigger("warn",{message:"ignoring key declaration without attribute list"})},"media-sequence":function(){isFinite(t.number)?this.manifest.mediaSequence=t.number:this.trigger("warn",{message:"ignoring invalid media sequence: "+t.number})},"discontinuity-sequence":function(){isFinite(t.number)?(this.manifest.discontinuitySequence=t.number,d=t.number):this.trigger("warn",{message:"ignoring invalid discontinuity sequence: "+t.number})},"playlist-type":function(){/VOD|EVENT/.test(t.playlistType)?this.manifest.playlistType=t.playlistType:this.trigger("warn",{message:"ignoring unknown playlist type: "+t.playlist})},map:function(){i={},t.uri&&(i.uri=t.uri),t.byterange&&(i.byterange=t.byterange)},"stream-inf":function(){this.manifest.playlists=o,this.manifest.mediaGroups=this.manifest.mediaGroups||u,t.attributes?(a.attributes||(a.attributes={}),Object.assign(a.attributes,t.attributes)):this.trigger("warn",{message:"ignoring empty stream-inf attributes"})},media:function(){if(this.manifest.mediaGroups=this.manifest.mediaGroups||u,t.attributes&&t.attributes.TYPE&&t.attributes["GROUP-ID"]&&t.attributes.NAME){var i=this.manifest.mediaGroups[t.attributes.TYPE];i[t.attributes["GROUP-ID"]]=i[t.attributes["GROUP-ID"]]||{},e=i[t.attributes["GROUP-ID"]],(h={default:/yes/i.test(t.attributes.DEFAULT)}).default?h.autoselect=!0:h.autoselect=/yes/i.test(t.attributes.AUTOSELECT),t.attributes.LANGUAGE&&(h.language=t.attributes.LANGUAGE),t.attributes.URI&&(h.uri=t.attributes.URI),t.attributes["INSTREAM-ID"]&&(h.instreamId=t.attributes["INSTREAM-ID"]),t.attributes.CHARACTERISTICS&&(h.characteristics=t.attributes.CHARACTERISTICS),t.attributes.FORCED&&(h.forced=/yes/i.test(t.attributes.FORCED)),e[t.attributes.NAME]=h}else this.trigger("warn",{message:"ignoring incomplete or missing media group"})},discontinuity:function(){d+=1,a.discontinuity=!0,this.manifest.discontinuityStarts.push(o.length)},"program-date-time":function(){void 0===this.manifest.dateTimeString&&(this.manifest.dateTimeString=t.dateTimeString,this.manifest.dateTimeObject=t.dateTimeObject),a.dateTimeString=t.dateTimeString,a.dateTimeObject=t.dateTimeObject},targetduration:function(){!isFinite(t.duration)||t.duration<0?this.trigger("warn",{message:"ignoring invalid target duration: "+t.duration}):this.manifest.targetDuration=t.duration},totalduration:function(){!isFinite(t.duration)||t.duration<0?this.trigger("warn",{message:"ignoring invalid total duration: "+t.duration}):this.manifest.totalDuration=t.duration},start:function(){t.attributes&&!isNaN(t.attributes["TIME-OFFSET"])?this.manifest.start={timeOffset:t.attributes["TIME-OFFSET"],precise:t.attributes.PRECISE}:this.trigger("warn",{message:"ignoring start declaration without appropriate attribute list"})},"cue-out":function(){a.cueOut=t.data},"cue-out-cont":function(){a.cueOutCont=t.data},"cue-in":function(){a.cueIn=t.data}}[t.tagType]||s).call(n)},uri:function(){a.uri=t.uri,o.push(a),this.manifest.targetDuration&&!("duration"in a)&&(this.trigger("warn",{message:"defaulting segment duration to the target duration"}),a.duration=this.manifest.targetDuration),r&&(a.key=r),a.timeline=d,i&&(a.map=i),a={}},comment:function(){},custom:function(){t.segment?(a.custom=a.custom||{},a.custom[t.customType]=t.data):(this.manifest.custom=this.manifest.custom||{},this.manifest.custom[t.customType]=t.data)}})[t.type].call(n)})),e}i=t,(e=r).prototype=Object.create(i.prototype),e.prototype.constructor=e,c(e,i);var n=r.prototype;return n.push=function(t){this.lineStream.push(t)},n.end=function(){this.lineStream.push("\n")},n.addParser=function(t){this.parseStream.addParser(t)},n.addTagMapper=function(t){this.parseStream.addTagMapper(t)},r}(o.a),m=new WebAssembly.Memory({initial:256,maximum:256});new WebAssembly.Table({initial:0,maximum:0,element:"anyfunc"}),m.buffer.byteLength,e.default=function(t){t.url="",t.canvas=null,t.webGLPlayer=null,t.videoSampleQueue=[],t.audioSampleQueue=[],t.videoInterval=40,t.lastRenderTime=0,t.intervalVal=0,t.renderFrameCount=0,t.requestAbort=!1,t.pause=!1,t.cbStreamData=!0,t.reConnect=!0,t.isLiveStream=!0,t.seekTime=0,t.totalDuration=0,t.playDuration=0,t.startVideoPts=0,t.startAudioPts=0,t.tsFileList=[],t.getFileIndex=0,t.lastTsFile="",t.isFirstFile=!0,t.lastTsFileSequence=0,t.sequenceExceptNum=0,t.hlsTsPlaybackFileNo=-1,t.tsDemuxer=null,t.getFileCount=100,t.intervalHandle=-1,t.intervalValue=40,t.startDownloadTimeSecs=0;var e=function(t,e){if(t.indexOf("http")>=0)return t;for(var i=e,r=0,n=0;n>=0;)(n=i.indexOf("/"))>=0?(i=i.substring(n+1),r+=n+1):i=e.substring(0,r);return""!==t?i+t:i},i=function(){var e={cmd:r.tCloseStream,workerId:r.DOWNLOAD_WORKER_ID};t.postMessage(e),t.getFileIndex=0,t.hlsTsPlaybackFileNo=-1},n=function n(o,a){if(t.url=o,1!=t._requestAbort){if(!t.pause&&(!(t.totalDuration>0)||t.isLiveStream)){var s=new XMLHttpRequest;s.open("get",o,!0),s.responseType="text",s.onreadystatechange=function(){if(4==s.readyState&&(200==s.status||304==s.status)){var i=new p;i.push(s.responseText),i.end();var o=i.manifest;if("undefined"!==i.manifest.endList&&1==i.manifest.endList?t.isLiveStream=!1:t.isLiveStream=!0,o.segments.length<1){var h=t;return void r.sleep(3e3).then((function(){n(h.url,1)}))}var u=0,l=0;if(t.isLiveStream)if(""==t.lastTsFile){for(u=0;u<o.segments.length;u++){g={filename:c=e(o.segments[u].uri,t.url),duration:o.segments[u].duration};t.tsFileList.push(g)}var d=0;o.segments.length>2&&(d=o.segments.length-1-1),t.getFileIndex=d,t.lastTsFile=o.segments[d].uri}else{d=-1;var f=!1;for(u=0;u<o.segments.length;u++){c=e(o.segments[u].uri,t.url);if(o.segments[u].uri!==t.lastTsFile)if(d>=0){g={filename:c,duration:o.segments[u].duration};t.totalDuration+=o.segments[u].duration,t.tsFileList.push(g),f||(t.lastTsFile=o.segments[u].uri,f=!0)}else;else d=u,t.tsFileList.length=0,t.tsFileList=[],t.getFileIndex=0}if(d<0)for(t.tsFileList.length=0,t.tsFileList=[],t.getFileIndex=0,u=0;u<o.segments.length;u++){g={filename:c=e(o.segments[u].uri,t.url),duration:o.segments[u].duration};t.totalDuration+=o.segments[u].duration,t.tsFileList.push(g),t.lastTsFile=o.segments[u].uri}if(1===a)return}else{for(t.seekTime>0&&(t.getFileIndex=-1),u=0;u<o.segments.length;u++){var c=e(o.segments[u].uri,t.url),m=0;for(l=0;l<t.tsFileList.length;l++)if(t.tsFileList[l].filename===c){m=1;break}if(0==m){t.seekTime>0&&t.totalDuration>=t.seekTime&&t.getFileIndex<0&&(t.getFileIndex=u);var g={filename:c,duration:o.segments[u].duration};t.totalDuration+=o.segments[u].duration,t.tsFileList.push(g)}}t.getFileIndex<0&&(t.getFileIndex=0);var v={cmd:r.tMediaInfo,duration:t.totalDuration,live:t.isLiveStream,workerId:r.DOWNLOAD_WORKER_ID};t.postMessage(v)}if(t.tsFileList.length>0&&1==a){v={cmd:r.tOpenStream,workerId:r.DOWNLOAD_WORKER_ID};t.postMessage(v)}}},s.send()}}else i()},o=function e(){if(!(t.getFileCount++<1)){var o=!1;if(!t.pause)if(1!=t._requestAbort){if(t.isLiveStream){if(t.getFileCount=0,t.getFileIndex>=t.tsFileList.length||3==t.getFileCount)return void n(t.url,1);o=!0}else if(t.getFileIndex>=t.tsFileList.length){t.getFileIndex++;var a={cmd:r.tGetTsComplete,workerId:r.DOWNLOAD_WORKER_ID};return void t.postMessage(a)}var s=t.tsFileList[t.getFileIndex].filename;if(t.isLiveStream){var h=function(t){var e=t.split("-"),i=e.length;if(i>0){var r=e[i-1].split(".");if(r.length>0)return r[0]}return""}(s),u=parseInt(h);if(u>0&&u>t.lastTsFileSequence+1){t.sequenceExceptNum++;a={cmd:r.tResetMSE,workerId:r.DOWNLOAD_WORKER_ID,fileSequence:t.sequenceExceptNum};t.postMessage(a)}t.lastTsFileSequence=u}else if(t.hlsTsPlaybackFileNo==t.getFileIndex)return;var l=new XMLHttpRequest;l.open("get",s,!0),l.responseType="arraybuffer",l.onreadystatechange=function(){if(404==l.status)return r.MediaWorkerLog("current file not found. refresh list..."),void n(t.url,1);if(4==l.readyState&&(200==l.status||304==l.status)){var i=new Uint8Array(l.response),a=0;for(a=0;a<t.getFileIndex;a++)t.tsFileList[a].duration;var s={cmd:r.tFrameData,workerId:r.DOWNLOAD_WORKER_ID,mediaType:1,codecId:27,flag:0,pts:0,playTimeSec:0,dat:i};if(t.postMessage(s,[s.dat.buffer]),t.intervalHandle>=0&&(clearInterval(t.intervalHandle),t.intervalHandle=-1),!t.pause){var h=t.getFileIndex;h>=0&&h<t.tsFileList.length?t.intervalValue=1e3*t.tsFileList[h].duration-600:t.intervalValue=2e3,t.isFirstFile&&(t.isFirstFile=!1,t.intervalValue>900&&(t.intervalValue-=900)),t.intervalHandle=setInterval(e,t.intervalValue)}t.getFileCount=100,t.getFileIndex++,t.getFileIndex>=0&&(t.getFileIndex,t.tsFileList.length);s={cmd:r.tGetTsStreamRsp,workerId:r.DOWNLOAD_WORKER_ID};if(t.postMessage(s),o)return void n(t.url,0)}},l.send(),t.hlsTsPlaybackFileNo=t.getFileIndex}else i()}};t.addEventListener("message",(function(e){var a=e.data;e.data;switch(a.cmd){case r.tOpenStream:t.url=a.url,t.seekTime=a.time,n(a.url,1);break;case r.tGetTsStream:0==a.t&&o();break;case r.tReOpenStream:n(t.url,1);break;case r.tSeekStream:var s=a.time;1==a.type&&(s=a.time/100*t.totalDuration);var h=!1,u=0,l=0;for(l=0;l<t.tsFileList.length;l++)if((u+=t.tsFileList[l].duration)>s){t.getFileIndex=l,o();var d={cmd:r.tSeekStream,type:a.type,time:s};t.postMessage(d),h=!0;break}if(!h){d={cmd:r.tSeekStream,type:a.type,time:s};t.postMessage(d)}break;case r.tPauseStream:t.pause=!0;break;case r.tResumeStream:t.pause=!1,n(t.url,1);break;case r.tCloseStream:t._requestAbort=!0,t.seekTime=0,i()}}))}}]).default})); | ||
| 0 | \ No newline at end of file | 3 | \ No newline at end of file |
src/main/resources/static/pages/video/static/SkeyeWebPlayer/SkeyeWebPlayer.js
0 → 100644
| 1 | +(function webpackUniversalModuleDefinition(root, factory) { | ||
| 2 | + if(typeof exports === 'object' && typeof module === 'object') | ||
| 3 | + module.exports = factory(); | ||
| 4 | + else if(typeof define === 'function' && define.amd) | ||
| 5 | + define([], factory); | ||
| 6 | + else if(typeof exports === 'object') | ||
| 7 | + exports["WebMediaPlayer"] = factory(); | ||
| 8 | + else | ||
| 9 | + root["WebMediaPlayer"] = factory(); | ||
| 10 | +})(this, function() { | ||
| 11 | +return /******/ (function(modules) { // webpackBootstrap | ||
| 12 | +/******/ // The module cache | ||
| 13 | +/******/ var installedModules = {}; | ||
| 14 | +/******/ | ||
| 15 | +/******/ // The require function | ||
| 16 | +/******/ function __webpack_require__(moduleId) { | ||
| 17 | +/******/ | ||
| 18 | +/******/ // Check if module is in cache | ||
| 19 | +/******/ if(installedModules[moduleId]) { | ||
| 20 | +/******/ return installedModules[moduleId].exports; | ||
| 21 | +/******/ } | ||
| 22 | +/******/ // Create a new module (and put it into the cache) | ||
| 23 | +/******/ var module = installedModules[moduleId] = { | ||
| 24 | +/******/ i: moduleId, | ||
| 25 | +/******/ l: false, | ||
| 26 | +/******/ exports: {} | ||
| 27 | +/******/ }; | ||
| 28 | +/******/ | ||
| 29 | +/******/ // Execute the module function | ||
| 30 | +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); | ||
| 31 | +/******/ | ||
| 32 | +/******/ // Flag the module as loaded | ||
| 33 | +/******/ module.l = true; | ||
| 34 | +/******/ | ||
| 35 | +/******/ // Return the exports of the module | ||
| 36 | +/******/ return module.exports; | ||
| 37 | +/******/ } | ||
| 38 | +/******/ | ||
| 39 | +/******/ | ||
| 40 | +/******/ // expose the modules object (__webpack_modules__) | ||
| 41 | +/******/ __webpack_require__.m = modules; | ||
| 42 | +/******/ | ||
| 43 | +/******/ // expose the module cache | ||
| 44 | +/******/ __webpack_require__.c = installedModules; | ||
| 45 | +/******/ | ||
| 46 | +/******/ // define getter function for harmony exports | ||
| 47 | +/******/ __webpack_require__.d = function(exports, name, getter) { | ||
| 48 | +/******/ if(!__webpack_require__.o(exports, name)) { | ||
| 49 | +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); | ||
| 50 | +/******/ } | ||
| 51 | +/******/ }; | ||
| 52 | +/******/ | ||
| 53 | +/******/ // define __esModule on exports | ||
| 54 | +/******/ __webpack_require__.r = function(exports) { | ||
| 55 | +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { | ||
| 56 | +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); | ||
| 57 | +/******/ } | ||
| 58 | +/******/ Object.defineProperty(exports, '__esModule', { value: true }); | ||
| 59 | +/******/ }; | ||
| 60 | +/******/ | ||
| 61 | +/******/ // create a fake namespace object | ||
| 62 | +/******/ // mode & 1: value is a module id, require it | ||
| 63 | +/******/ // mode & 2: merge all properties of value into the ns | ||
| 64 | +/******/ // mode & 4: return value when already ns object | ||
| 65 | +/******/ // mode & 8|1: behave like require | ||
| 66 | +/******/ __webpack_require__.t = function(value, mode) { | ||
| 67 | +/******/ if(mode & 1) value = __webpack_require__(value); | ||
| 68 | +/******/ if(mode & 8) return value; | ||
| 69 | +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; | ||
| 70 | +/******/ var ns = Object.create(null); | ||
| 71 | +/******/ __webpack_require__.r(ns); | ||
| 72 | +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); | ||
| 73 | +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); | ||
| 74 | +/******/ return ns; | ||
| 75 | +/******/ }; | ||
| 76 | +/******/ | ||
| 77 | +/******/ // getDefaultExport function for compatibility with non-harmony modules | ||
| 78 | +/******/ __webpack_require__.n = function(module) { | ||
| 79 | +/******/ var getter = module && module.__esModule ? | ||
| 80 | +/******/ function getDefault() { return module['default']; } : | ||
| 81 | +/******/ function getModuleExports() { return module; }; | ||
| 82 | +/******/ __webpack_require__.d(getter, 'a', getter); | ||
| 83 | +/******/ return getter; | ||
| 84 | +/******/ }; | ||
| 85 | +/******/ | ||
| 86 | +/******/ // Object.prototype.hasOwnProperty.call | ||
| 87 | +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; | ||
| 88 | +/******/ | ||
| 89 | +/******/ // __webpack_public_path__ | ||
| 90 | +/******/ __webpack_require__.p = ""; | ||
| 91 | +/******/ | ||
| 92 | +/******/ | ||
| 93 | +/******/ // Load entry module and return exports | ||
| 94 | +/******/ return __webpack_require__(__webpack_require__.s = "./src/index.js"); | ||
| 95 | +/******/ }) | ||
| 96 | +/************************************************************************/ | ||
| 97 | +/******/ ({ | ||
| 98 | + | ||
| 99 | +/***/ "./node_modules/@videojs/vhs-utils/dist/decode-b64-to-uint8-array.js": | ||
| 100 | +/*!***************************************************************************!*\ | ||
| 101 | + !*** ./node_modules/@videojs/vhs-utils/dist/decode-b64-to-uint8-array.js ***! | ||
| 102 | + \***************************************************************************/ | ||
| 103 | +/*! no static exports found */ | ||
| 104 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 105 | + | ||
| 106 | +"use strict"; | ||
| 107 | +eval("/* WEBPACK VAR INJECTION */(function(Buffer) {/*! @name @videojs/vhs-utils @version 1.3.0 @license MIT */\n\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar window = _interopDefault(__webpack_require__(/*! global/window */ \"./node_modules/global/window.js\"));\n\nvar atob = function atob(s) {\n return window.atob ? window.atob(s) : Buffer.from(s, 'base64').toString('binary');\n};\n\nfunction decodeB64ToUint8Array(b64Text) {\n var decodedString = atob(b64Text);\n var array = new Uint8Array(decodedString.length);\n\n for (var i = 0; i < decodedString.length; i++) {\n array[i] = decodedString.charCodeAt(i);\n }\n\n return array;\n}\n\nmodule.exports = decodeB64ToUint8Array;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/@videojs/vhs-utils/dist/decode-b64-to-uint8-array.js?"); | ||
| 108 | + | ||
| 109 | +/***/ }), | ||
| 110 | + | ||
| 111 | +/***/ "./node_modules/@videojs/vhs-utils/dist/stream.js": | ||
| 112 | +/*!********************************************************!*\ | ||
| 113 | + !*** ./node_modules/@videojs/vhs-utils/dist/stream.js ***! | ||
| 114 | + \********************************************************/ | ||
| 115 | +/*! no static exports found */ | ||
| 116 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 117 | + | ||
| 118 | +"use strict"; | ||
| 119 | +eval("/*! @name @videojs/vhs-utils @version 1.3.0 @license MIT */\n\n/**\n * @file stream.js\n */\n\n/**\n * A lightweight readable stream implemention that handles event dispatching.\n *\n * @class Stream\n */\n\nvar Stream = /*#__PURE__*/function () {\n function Stream() {\n this.listeners = {};\n }\n /**\n * Add a listener for a specified event type.\n *\n * @param {string} type the event name\n * @param {Function} listener the callback to be invoked when an event of\n * the specified type occurs\n */\n\n\n var _proto = Stream.prototype;\n\n _proto.on = function on(type, listener) {\n if (!this.listeners[type]) {\n this.listeners[type] = [];\n }\n\n this.listeners[type].push(listener);\n }\n /**\n * Remove a listener for a specified event type.\n *\n * @param {string} type the event name\n * @param {Function} listener a function previously registered for this\n * type of event through `on`\n * @return {boolean} if we could turn it off or not\n */\n ;\n\n _proto.off = function off(type, listener) {\n if (!this.listeners[type]) {\n return false;\n }\n\n var index = this.listeners[type].indexOf(listener); // TODO: which is better?\n // In Video.js we slice listener functions\n // on trigger so that it does not mess up the order\n // while we loop through.\n //\n // Here we slice on off so that the loop in trigger\n // can continue using it's old reference to loop without\n // messing up the order.\n\n this.listeners[type] = this.listeners[type].slice(0);\n this.listeners[type].splice(index, 1);\n return index > -1;\n }\n /**\n * Trigger an event of the specified type on this stream. Any additional\n * arguments to this function are passed as parameters to event listeners.\n *\n * @param {string} type the event name\n */\n ;\n\n _proto.trigger = function trigger(type) {\n var callbacks = this.listeners[type];\n\n if (!callbacks) {\n return;\n } // Slicing the arguments on every invocation of this method\n // can add a significant amount of overhead. Avoid the\n // intermediate object creation for the common case of a\n // single callback argument\n\n\n if (arguments.length === 2) {\n var length = callbacks.length;\n\n for (var i = 0; i < length; ++i) {\n callbacks[i].call(this, arguments[1]);\n }\n } else {\n var args = Array.prototype.slice.call(arguments, 1);\n var _length = callbacks.length;\n\n for (var _i = 0; _i < _length; ++_i) {\n callbacks[_i].apply(this, args);\n }\n }\n }\n /**\n * Destroys the stream and cleans up.\n */\n ;\n\n _proto.dispose = function dispose() {\n this.listeners = {};\n }\n /**\n * Forwards all `data` events on this stream to the destination stream. The\n * destination stream should provide a method `push` to receive the data\n * events as they arrive.\n *\n * @param {Stream} destination the stream that will receive all `data` events\n * @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options\n */\n ;\n\n _proto.pipe = function pipe(destination) {\n this.on('data', function (data) {\n destination.push(data);\n });\n };\n\n return Stream;\n}();\n\nmodule.exports = Stream;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/@videojs/vhs-utils/dist/stream.js?"); | ||
| 120 | + | ||
| 121 | +/***/ }), | ||
| 122 | + | ||
| 123 | +/***/ "./node_modules/asn1.js/lib/asn1.js": | ||
| 124 | +/*!******************************************!*\ | ||
| 125 | + !*** ./node_modules/asn1.js/lib/asn1.js ***! | ||
| 126 | + \******************************************/ | ||
| 127 | +/*! no static exports found */ | ||
| 128 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 129 | + | ||
| 130 | +"use strict"; | ||
| 131 | +eval("\n\nvar asn1 = exports;\nasn1.bignum = __webpack_require__(/*! bn.js */ \"./node_modules/asn1.js/node_modules/bn.js/lib/bn.js\");\nasn1.define = __webpack_require__(/*! ./asn1/api */ \"./node_modules/asn1.js/lib/asn1/api.js\").define;\nasn1.base = __webpack_require__(/*! ./asn1/base */ \"./node_modules/asn1.js/lib/asn1/base/index.js\");\nasn1.constants = __webpack_require__(/*! ./asn1/constants */ \"./node_modules/asn1.js/lib/asn1/constants/index.js\");\nasn1.decoders = __webpack_require__(/*! ./asn1/decoders */ \"./node_modules/asn1.js/lib/asn1/decoders/index.js\");\nasn1.encoders = __webpack_require__(/*! ./asn1/encoders */ \"./node_modules/asn1.js/lib/asn1/encoders/index.js\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/asn1.js/lib/asn1.js?"); | ||
| 132 | + | ||
| 133 | +/***/ }), | ||
| 134 | + | ||
| 135 | +/***/ "./node_modules/asn1.js/lib/asn1/api.js": | ||
| 136 | +/*!**********************************************!*\ | ||
| 137 | + !*** ./node_modules/asn1.js/lib/asn1/api.js ***! | ||
| 138 | + \**********************************************/ | ||
| 139 | +/*! no static exports found */ | ||
| 140 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 141 | + | ||
| 142 | +"use strict"; | ||
| 143 | +eval("\n\nvar encoders = __webpack_require__(/*! ./encoders */ \"./node_modules/asn1.js/lib/asn1/encoders/index.js\");\n\nvar decoders = __webpack_require__(/*! ./decoders */ \"./node_modules/asn1.js/lib/asn1/decoders/index.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n this.decoders = {};\n this.encoders = {};\n}\n\nEntity.prototype._createNamed = function createNamed(Base) {\n var name = this.name;\n\n function Generated(entity) {\n this._initNamed(entity, name);\n }\n\n inherits(Generated, Base);\n\n Generated.prototype._initNamed = function _initNamed(entity, name) {\n Base.call(this, entity, name);\n };\n\n return new Generated(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der'; // Lazily create decoder\n\n if (!this.decoders.hasOwnProperty(enc)) this.decoders[enc] = this._createNamed(decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der'; // Lazily create encoder\n\n if (!this.encoders.hasOwnProperty(enc)) this.encoders[enc] = this._createNamed(encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc,\n/* internal */\nreporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/asn1.js/lib/asn1/api.js?"); | ||
| 144 | + | ||
| 145 | +/***/ }), | ||
| 146 | + | ||
| 147 | +/***/ "./node_modules/asn1.js/lib/asn1/base/buffer.js": | ||
| 148 | +/*!******************************************************!*\ | ||
| 149 | + !*** ./node_modules/asn1.js/lib/asn1/base/buffer.js ***! | ||
| 150 | + \******************************************************/ | ||
| 151 | +/*! no static exports found */ | ||
| 152 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 153 | + | ||
| 154 | +"use strict"; | ||
| 155 | +eval("\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Reporter = __webpack_require__(/*! ../base/reporter */ \"./node_modules/asn1.js/lib/asn1/base/reporter.js\").Reporter;\n\nvar Buffer = __webpack_require__(/*! safer-buffer */ \"./node_modules/safer-buffer/safer.js\").Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\n\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {\n if (data instanceof DecoderBuffer) {\n return true;\n } // Or accept compatible API\n\n\n var isCompatible = typeof data === 'object' && Buffer.isBuffer(data.base) && data.constructor.name === 'DecoderBuffer' && typeof data.offset === 'number' && typeof data.length === 'number' && typeof data.save === 'function' && typeof data.restore === 'function' && typeof data.isEmpty === 'function' && typeof data.readUInt8 === 'function' && typeof data.skip === 'function' && typeof data.raw === 'function';\n return isCompatible;\n};\n\nDecoderBuffer.prototype.save = function save() {\n return {\n offset: this.offset,\n reporter: Reporter.prototype.save.call(this)\n };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length) return this.base.readUInt8(this.offset++, true);else return this.error(fail || 'DecoderBuffer overrun');\n};\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length)) return this.error(fail || 'DecoderBuffer overrun');\n var res = new DecoderBuffer(this.base); // Share reporter state\n\n res._reporterState = this._reporterState;\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n};\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n};\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function (item) {\n if (!EncoderBuffer.isEncoderBuffer(item)) item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff)) return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\n\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {\n if (data instanceof EncoderBuffer) {\n return true;\n } // Or accept compatible API\n\n\n var isCompatible = typeof data === 'object' && data.constructor.name === 'EncoderBuffer' && typeof data.length === 'number' && typeof data.join === 'function';\n return isCompatible;\n};\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out) out = Buffer.alloc(this.length);\n if (!offset) offset = 0;\n if (this.length === 0) return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function (item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number') out[offset] = this.value;else if (typeof this.value === 'string') out.write(this.value, offset);else if (Buffer.isBuffer(this.value)) this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/asn1.js/lib/asn1/base/buffer.js?"); | ||
| 156 | + | ||
| 157 | +/***/ }), | ||
| 158 | + | ||
| 159 | +/***/ "./node_modules/asn1.js/lib/asn1/base/index.js": | ||
| 160 | +/*!*****************************************************!*\ | ||
| 161 | + !*** ./node_modules/asn1.js/lib/asn1/base/index.js ***! | ||
| 162 | + \*****************************************************/ | ||
| 163 | +/*! no static exports found */ | ||
| 164 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 165 | + | ||
| 166 | +"use strict"; | ||
| 167 | +eval("\n\nvar base = exports;\nbase.Reporter = __webpack_require__(/*! ./reporter */ \"./node_modules/asn1.js/lib/asn1/base/reporter.js\").Reporter;\nbase.DecoderBuffer = __webpack_require__(/*! ./buffer */ \"./node_modules/asn1.js/lib/asn1/base/buffer.js\").DecoderBuffer;\nbase.EncoderBuffer = __webpack_require__(/*! ./buffer */ \"./node_modules/asn1.js/lib/asn1/base/buffer.js\").EncoderBuffer;\nbase.Node = __webpack_require__(/*! ./node */ \"./node_modules/asn1.js/lib/asn1/base/node.js\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/asn1.js/lib/asn1/base/index.js?"); | ||
| 168 | + | ||
| 169 | +/***/ }), | ||
| 170 | + | ||
| 171 | +/***/ "./node_modules/asn1.js/lib/asn1/base/node.js": | ||
| 172 | +/*!****************************************************!*\ | ||
| 173 | + !*** ./node_modules/asn1.js/lib/asn1/base/node.js ***! | ||
| 174 | + \****************************************************/ | ||
| 175 | +/*! no static exports found */ | ||
| 176 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 177 | + | ||
| 178 | +"use strict"; | ||
| 179 | +eval("\n\nvar Reporter = __webpack_require__(/*! ../base/reporter */ \"./node_modules/asn1.js/lib/asn1/base/reporter.js\").Reporter;\n\nvar EncoderBuffer = __webpack_require__(/*! ../base/buffer */ \"./node_modules/asn1.js/lib/asn1/base/buffer.js\").EncoderBuffer;\n\nvar DecoderBuffer = __webpack_require__(/*! ../base/buffer */ \"./node_modules/asn1.js/lib/asn1/base/buffer.js\").DecoderBuffer;\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\"); // Supported tags\n\n\nvar tags = ['seq', 'seqof', 'set', 'setof', 'objid', 'bool', 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc', 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str', 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr']; // Public methods list\n\nvar methods = ['key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice', 'any', 'contains'].concat(tags); // Overrided methods list\n\nvar overrided = ['_peekTag', '_decodeTag', '_use', '_decodeStr', '_decodeObjid', '_decodeTime', '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList', '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime', '_encodeNull', '_encodeInt', '_encodeBool'];\n\nfunction Node(enc, parent, name) {\n var state = {};\n this._baseState = state;\n state.name = name;\n state.enc = enc;\n state.parent = parent || null;\n state.children = null; // State\n\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null; // Should create new instance on each method\n\n if (!state.parent) {\n state.children = [];\n\n this._wrap();\n }\n}\n\nmodule.exports = Node;\nvar stateProps = ['enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice', 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit', 'implicit', 'contains'];\n\nNode.prototype.clone = function clone() {\n var state = this._baseState;\n var cstate = {};\n stateProps.forEach(function (prop) {\n cstate[prop] = state[prop];\n });\n var res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n var state = this._baseState;\n methods.forEach(function (method) {\n this[method] = function _wrappedMethod() {\n var clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n var state = this._baseState;\n assert(state.parent === null);\n body.call(this); // Filter children\n\n state.children = state.children.filter(function (child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n var state = this._baseState; // Filter children and args\n\n var children = args.filter(function (arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function (arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children; // Replace parent to maintain backward link\n\n children.forEach(function (child) {\n child._baseState.parent = this;\n }, this);\n }\n\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function (arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object) return arg;\n var res = {};\n Object.keys(arg).forEach(function (key) {\n if (key == (key | 0)) key |= 0;\n var value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n}; //\n// Overrided methods\n//\n\n\noverrided.forEach(function (method) {\n Node.prototype[method] = function _overrided() {\n var state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n}); //\n// Public methods\n//\n\ntags.forEach(function (tag) {\n Node.prototype[tag] = function _tagMethod() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n var state = this._baseState;\n assert(state.use === null);\n state.use = item;\n return this;\n};\n\nNode.prototype.optional = function optional() {\n var state = this._baseState;\n state.optional = true;\n return this;\n};\n\nNode.prototype.def = function def(val) {\n var state = this._baseState;\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n var state = this._baseState;\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n var state = this._baseState;\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n return this;\n};\n\nNode.prototype.obj = function obj() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n state.obj = true;\n if (args.length !== 0) this._useArgs(args);\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n var state = this._baseState;\n assert(state.key === null);\n state.key = newKey;\n return this;\n};\n\nNode.prototype.any = function any() {\n var state = this._baseState;\n state.any = true;\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n var state = this._baseState;\n assert(state.choice === null);\n state.choice = obj;\n\n this._useArgs(Object.keys(obj).map(function (key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n var state = this._baseState;\n assert(state.use === null);\n state.contains = item;\n return this;\n}; //\n// Decoding\n//\n\n\nNode.prototype._decode = function decode(input, options) {\n var state = this._baseState; // Decode root node\n\n if (state.parent === null) return input.wrapResult(state.children[0]._decode(input, options));\n var result = state['default'];\n var present = true;\n var prevKey = null;\n if (state.key !== null) prevKey = input.enterKey(state.key); // Check if tag is there\n\n if (state.optional) {\n var tag = null;\n if (state.explicit !== null) tag = state.explicit;else if (state.implicit !== null) tag = state.implicit;else if (state.tag !== null) tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n var save = input.save();\n\n try {\n if (state.choice === null) this._decodeGeneric(state.tag, input, options);else this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n if (input.isError(present)) return present;\n }\n } // Push object on stack\n\n\n var prevObj;\n if (state.obj && present) prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n var explicit = this._decodeTag(input, state.explicit);\n\n if (input.isError(explicit)) return explicit;\n input = explicit;\n }\n\n var start = input.offset; // Unwrap implicit and normal values\n\n if (state.use === null && state.choice === null) {\n var _save;\n\n if (state.any) _save = input.save();\n\n var body = this._decodeTag(input, state.implicit !== null ? state.implicit : state.tag, state.any);\n\n if (input.isError(body)) return body;\n if (state.any) result = input.raw(_save);else input = body;\n }\n\n if (options && options.track && state.tag !== null) options.track(input.path(), start, input.length, 'tagged');\n if (options && options.track && state.tag !== null) options.track(input.path(), input.offset, input.length, 'content'); // Select proper method for tag\n\n if (state.any) {// no-op\n } else if (state.choice === null) {\n result = this._decodeGeneric(state.tag, input, options);\n } else {\n result = this._decodeChoice(input, options);\n }\n\n if (input.isError(result)) return result; // Decode children\n\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n } // Decode contained/encoded by schema, only in bit or octet strings\n\n\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n var data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)._decode(data, options);\n }\n } // Pop object\n\n\n if (state.obj && present) result = input.leaveObject(prevObj); // Set key\n\n if (state.key !== null && (result !== null || present === true)) input.leaveKey(prevKey, state.key, result);else if (prevKey !== null) input.exitKey(prevKey);\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n var state = this._baseState;\n if (tag === 'seq' || tag === 'set') return null;\n if (tag === 'seqof' || tag === 'setof') return this._decodeList(input, tag, state.args[0], options);else if (/str$/.test(tag)) return this._decodeStr(input, tag, options);else if (tag === 'objid' && state.args) return this._decodeObjid(input, state.args[0], state.args[1], options);else if (tag === 'objid') return this._decodeObjid(input, null, null, options);else if (tag === 'gentime' || tag === 'utctime') return this._decodeTime(input, tag, options);else if (tag === 'null_') return this._decodeNull(input, options);else if (tag === 'bool') return this._decodeBool(input, options);else if (tag === 'objDesc') return this._decodeStr(input, tag, options);else if (tag === 'int' || tag === 'enum') return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n var state = this._baseState; // Create altered use decoder if implicit is set\n\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n var state = this._baseState;\n var result = null;\n var match = false;\n Object.keys(state.choice).some(function (key) {\n var save = input.save();\n var node = state.choice[key];\n\n try {\n var value = node._decode(input, options);\n\n if (input.isError(value)) return false;\n result = {\n type: key,\n value: value\n };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n\n return true;\n }, this);\n if (!match) return input.error('Choice not matched');\n return result;\n}; //\n// Encoding\n//\n\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n var state = this._baseState;\n if (state['default'] !== null && state['default'] === data) return;\n\n var result = this._encodeValue(data, reporter, parent);\n\n if (result === undefined) return;\n if (this._skipDefault(result, reporter, parent)) return;\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n var state = this._baseState; // Decode root node\n\n if (state.parent === null) return state.children[0]._encode(data, reporter || new Reporter());\n var result = null; // Set reporter to share it with a child class\n\n this.reporter = reporter; // Check if data is there\n\n if (state.optional && data === undefined) {\n if (state['default'] !== null) data = state['default'];else return;\n } // Encode children first\n\n\n var content = null;\n var primitive = false;\n\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function (child) {\n if (child._baseState.tag === 'null_') return child._encode(null, reporter, data);\n if (child._baseState.key === null) return reporter.error('Child should have a key');\n var prevKey = reporter.enterKey(child._baseState.key);\n if (typeof data !== 'object') return reporter.error('Child expected, but input is not object');\n\n var res = child._encode(data[child._baseState.key], reporter, data);\n\n reporter.leaveKey(prevKey);\n return res;\n }, this).filter(function (child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1)) return reporter.error('Too many args for : ' + state.tag);\n if (!Array.isArray(data)) return reporter.error('seqof/setof, but data is not Array');\n var child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function (item) {\n var state = this._baseState;\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n } // Encode data itself\n\n\n if (!state.any && state.choice === null) {\n var tag = state.implicit !== null ? state.implicit : state.tag;\n var cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null) reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null) result = this._encodeComposite(tag, primitive, cls, content);\n }\n } // Wrap in explicit\n\n\n if (state.explicit !== null) result = this._encodeComposite(state.explicit, false, 'context', result);\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n var state = this._baseState;\n var node = state.choice[data.type];\n\n if (!node) {\n assert(false, data.type + ' not found in ' + JSON.stringify(Object.keys(state.choice)));\n }\n\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n var state = this._baseState;\n if (/str$/.test(tag)) return this._encodeStr(data, tag);else if (tag === 'objid' && state.args) return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);else if (tag === 'objid') return this._encodeObjid(data, null, null);else if (tag === 'gentime' || tag === 'utctime') return this._encodeTime(data, tag);else if (tag === 'null_') return this._encodeNull();else if (tag === 'int' || tag === 'enum') return this._encodeInt(data, state.args && state.reverseArgs[0]);else if (tag === 'bool') return this._encodeBool(data);else if (tag === 'objDesc') return this._encodeStr(data, tag);else throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/asn1.js/lib/asn1/base/node.js?"); | ||
| 180 | + | ||
| 181 | +/***/ }), | ||
| 182 | + | ||
| 183 | +/***/ "./node_modules/asn1.js/lib/asn1/base/reporter.js": | ||
| 184 | +/*!********************************************************!*\ | ||
| 185 | + !*** ./node_modules/asn1.js/lib/asn1/base/reporter.js ***! | ||
| 186 | + \********************************************************/ | ||
| 187 | +/*! no static exports found */ | ||
| 188 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 189 | + | ||
| 190 | +"use strict"; | ||
| 191 | +eval("\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\n\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n var state = this._reporterState;\n return {\n obj: state.obj,\n pathLen: state.path.length\n };\n};\n\nReporter.prototype.restore = function restore(data) {\n var state = this._reporterState;\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n var state = this._reporterState;\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n var state = this._reporterState;\n this.exitKey(index);\n if (state.obj !== null) state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n var state = this._reporterState;\n var prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n var state = this._reporterState;\n var now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n var err;\n var state = this._reporterState;\n var inherited = msg instanceof ReporterError;\n\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function (elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial) throw err;\n if (!inherited) state.errors.push(err);\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n var state = this._reporterState;\n if (!state.options.partial) return result;\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n}\n\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace) Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n\n return this;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/asn1.js/lib/asn1/base/reporter.js?"); | ||
| 192 | + | ||
| 193 | +/***/ }), | ||
| 194 | + | ||
| 195 | +/***/ "./node_modules/asn1.js/lib/asn1/constants/der.js": | ||
| 196 | +/*!********************************************************!*\ | ||
| 197 | + !*** ./node_modules/asn1.js/lib/asn1/constants/der.js ***! | ||
| 198 | + \********************************************************/ | ||
| 199 | +/*! no static exports found */ | ||
| 200 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 201 | + | ||
| 202 | +"use strict"; | ||
| 203 | +eval(" // Helper\n\nfunction reverse(map) {\n var res = {};\n Object.keys(map).forEach(function (key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key) key = key | 0;\n var value = map[key];\n res[value] = key;\n });\n return res;\n}\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = reverse(exports.tagClass);\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = reverse(exports.tag);\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/asn1.js/lib/asn1/constants/der.js?"); | ||
| 204 | + | ||
| 205 | +/***/ }), | ||
| 206 | + | ||
| 207 | +/***/ "./node_modules/asn1.js/lib/asn1/constants/index.js": | ||
| 208 | +/*!**********************************************************!*\ | ||
| 209 | + !*** ./node_modules/asn1.js/lib/asn1/constants/index.js ***! | ||
| 210 | + \**********************************************************/ | ||
| 211 | +/*! no static exports found */ | ||
| 212 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 213 | + | ||
| 214 | +"use strict"; | ||
| 215 | +eval("\n\nvar constants = exports; // Helper\n\nconstants._reverse = function reverse(map) {\n var res = {};\n Object.keys(map).forEach(function (key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key) key = key | 0;\n var value = map[key];\n res[value] = key;\n });\n return res;\n};\n\nconstants.der = __webpack_require__(/*! ./der */ \"./node_modules/asn1.js/lib/asn1/constants/der.js\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/asn1.js/lib/asn1/constants/index.js?"); | ||
| 216 | + | ||
| 217 | +/***/ }), | ||
| 218 | + | ||
| 219 | +/***/ "./node_modules/asn1.js/lib/asn1/decoders/der.js": | ||
| 220 | +/*!*******************************************************!*\ | ||
| 221 | + !*** ./node_modules/asn1.js/lib/asn1/decoders/der.js ***! | ||
| 222 | + \*******************************************************/ | ||
| 223 | +/*! no static exports found */ | ||
| 224 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 225 | + | ||
| 226 | +"use strict"; | ||
| 227 | +eval("\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar bignum = __webpack_require__(/*! bn.js */ \"./node_modules/asn1.js/node_modules/bn.js/lib/bn.js\");\n\nvar DecoderBuffer = __webpack_require__(/*! ../base/buffer */ \"./node_modules/asn1.js/lib/asn1/base/buffer.js\").DecoderBuffer;\n\nvar Node = __webpack_require__(/*! ../base/node */ \"./node_modules/asn1.js/lib/asn1/base/node.js\"); // Import DER constants\n\n\nvar der = __webpack_require__(/*! ../constants/der */ \"./node_modules/asn1.js/lib/asn1/constants/der.js\");\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity; // Construct base tree\n\n this.tree = new DERNode();\n\n this.tree._init(entity.body);\n}\n\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!DecoderBuffer.isDecoderBuffer(data)) {\n data = new DecoderBuffer(data, options);\n }\n\n return this.tree._decode(data, options);\n}; // Tree methods\n\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\n\ninherits(DERNode, Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty()) return false;\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag)) return decodedTag;\n buffer.restore(state);\n return decodedTag.tag === tag || decodedTag.tagStr === tag || decodedTag.tagStr + 'of' === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer, 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag)) return decodedTag;\n var len = derDecodeLen(buffer, decodedTag.primitive, 'Failed to get length of \"' + tag + '\"'); // Failure\n\n if (buffer.isError(len)) return len;\n\n if (!any && decodedTag.tag !== tag && decodedTag.tagStr !== tag && decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null) return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"'); // Indefinite length... find END tag\n\n var state = buffer.save();\n\n var res = this._skipUntilEnd(buffer, 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n\n if (buffer.isError(res)) return res;\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n for (;;) {\n var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag)) return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len)) return len;\n var res = void 0;\n if (tag.primitive || len !== null) res = buffer.skip(len);else res = this._skipUntilEnd(buffer, fail); // Failure\n\n if (buffer.isError(res)) return res;\n if (tag.tagStr === 'end') break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder, options) {\n var result = [];\n\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n\n if (buffer.isError(possibleEnd)) return possibleEnd;\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd) break;\n result.push(res);\n }\n\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused)) return unused;\n return {\n unused: unused,\n data: buffer.raw()\n };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1) return buffer.error('Decoding of string type: bmpstr length mismatch');\n var str = '';\n\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' + 'numstr unsupported characters');\n }\n\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n var printstr = buffer.raw().toString('ascii');\n\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' + 'printstr unsupported characters');\n }\n\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n var result;\n var identifiers = [];\n var ident = 0;\n var subident = 0;\n\n while (!buffer.isEmpty()) {\n subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n\n if (subident & 0x80) identifiers.push(ident);\n var first = identifiers[0] / 40 | 0;\n var second = identifiers[0] % 40;\n if (relative) result = identifiers;else result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined) tmp = values[result.join('.')];\n if (tmp !== undefined) result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n var year;\n var mon;\n var day;\n var hour;\n var min;\n var sec;\n\n if (tag === 'gentime') {\n year = str.slice(0, 4) | 0;\n mon = str.slice(4, 6) | 0;\n day = str.slice(6, 8) | 0;\n hour = str.slice(8, 10) | 0;\n min = str.slice(10, 12) | 0;\n sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n year = str.slice(0, 2) | 0;\n mon = str.slice(2, 4) | 0;\n day = str.slice(4, 6) | 0;\n hour = str.slice(6, 8) | 0;\n min = str.slice(8, 10) | 0;\n sec = str.slice(10, 12) | 0;\n if (year < 70) year = 2000 + year;else year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull() {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n var res = buffer.readUInt8();\n if (buffer.isError(res)) return res;else return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n if (values) res = values[res.toString(10)] || res;\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function') entity = entity(obj);\n return entity._getDecoder('der').tree;\n}; // Utility methods\n\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag)) return tag;\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0; // Multi-octet tag - load\n\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct)) return oct;\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n\n var tagStr = der.tag[tag];\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len)) return len; // Indefinite form\n\n if (!primitive && len === 0x80) return null; // Definite form\n\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n } // Long form\n\n\n var num = len & 0x7f;\n if (num > 4) return buf.error('length octect is too long');\n len = 0;\n\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j)) return j;\n len |= j;\n }\n\n return len;\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/asn1.js/lib/asn1/decoders/der.js?"); | ||
| 228 | + | ||
| 229 | +/***/ }), | ||
| 230 | + | ||
| 231 | +/***/ "./node_modules/asn1.js/lib/asn1/decoders/index.js": | ||
| 232 | +/*!*********************************************************!*\ | ||
| 233 | + !*** ./node_modules/asn1.js/lib/asn1/decoders/index.js ***! | ||
| 234 | + \*********************************************************/ | ||
| 235 | +/*! no static exports found */ | ||
| 236 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 237 | + | ||
| 238 | +"use strict"; | ||
| 239 | +eval("\n\nvar decoders = exports;\ndecoders.der = __webpack_require__(/*! ./der */ \"./node_modules/asn1.js/lib/asn1/decoders/der.js\");\ndecoders.pem = __webpack_require__(/*! ./pem */ \"./node_modules/asn1.js/lib/asn1/decoders/pem.js\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/asn1.js/lib/asn1/decoders/index.js?"); | ||
| 240 | + | ||
| 241 | +/***/ }), | ||
| 242 | + | ||
| 243 | +/***/ "./node_modules/asn1.js/lib/asn1/decoders/pem.js": | ||
| 244 | +/*!*******************************************************!*\ | ||
| 245 | + !*** ./node_modules/asn1.js/lib/asn1/decoders/pem.js ***! | ||
| 246 | + \*******************************************************/ | ||
| 247 | +/*! no static exports found */ | ||
| 248 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 249 | + | ||
| 250 | +"use strict"; | ||
| 251 | +eval("\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Buffer = __webpack_require__(/*! safer-buffer */ \"./node_modules/safer-buffer/safer.js\").Buffer;\n\nvar DERDecoder = __webpack_require__(/*! ./der */ \"./node_modules/asn1.js/lib/asn1/decoders/der.js\");\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n}\n\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n var lines = data.toString().split(/[\\r\\n]+/g);\n var label = options.label.toUpperCase();\n var re = /^-----(BEGIN|END) ([^-]+)-----$/;\n var start = -1;\n var end = -1;\n\n for (var i = 0; i < lines.length; i++) {\n var match = lines[i].match(re);\n if (match === null) continue;\n if (match[2] !== label) continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN') break;\n start = i;\n } else {\n if (match[1] !== 'END') break;\n end = i;\n break;\n }\n }\n\n if (start === -1 || end === -1) throw new Error('PEM section not found for: ' + label);\n var base64 = lines.slice(start + 1, end).join(''); // Remove excessive symbols\n\n base64.replace(/[^a-z0-9+/=]+/gi, '');\n var input = Buffer.from(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/asn1.js/lib/asn1/decoders/pem.js?"); | ||
| 252 | + | ||
| 253 | +/***/ }), | ||
| 254 | + | ||
| 255 | +/***/ "./node_modules/asn1.js/lib/asn1/encoders/der.js": | ||
| 256 | +/*!*******************************************************!*\ | ||
| 257 | + !*** ./node_modules/asn1.js/lib/asn1/encoders/der.js ***! | ||
| 258 | + \*******************************************************/ | ||
| 259 | +/*! no static exports found */ | ||
| 260 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 261 | + | ||
| 262 | +"use strict"; | ||
| 263 | +eval("\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Buffer = __webpack_require__(/*! safer-buffer */ \"./node_modules/safer-buffer/safer.js\").Buffer;\n\nvar Node = __webpack_require__(/*! ../base/node */ \"./node_modules/asn1.js/lib/asn1/base/node.js\"); // Import DER constants\n\n\nvar der = __webpack_require__(/*! ../constants/der */ \"./node_modules/asn1.js/lib/asn1/constants/der.js\");\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity; // Construct base tree\n\n this.tree = new DERNode();\n\n this.tree._init(entity.body);\n}\n\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n}; // Tree methods\n\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\n\ninherits(DERNode, Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag, primitive, cls, content) {\n var encodedTag = encodeTag(tag, primitive, cls, this.reporter); // Short form\n\n if (content.length < 0x80) {\n var _header = Buffer.alloc(2);\n\n _header[0] = encodedTag;\n _header[1] = content.length;\n return this._createEncoderBuffer([_header, content]);\n } // Long form\n // Count octets required to store length\n\n\n var lenOctets = 1;\n\n for (var i = content.length; i >= 0x100; i >>= 8) {\n lenOctets++;\n }\n\n var header = Buffer.alloc(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (var _i = 1 + lenOctets, j = content.length; j > 0; _i--, j >>= 8) {\n header[_i] = j & 0xff;\n }\n\n return this._createEncoderBuffer([header, content]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([str.unused | 0, str.data]);\n } else if (tag === 'bmpstr') {\n var buf = Buffer.alloc(str.length * 2);\n\n for (var i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' + 'only digits and space');\n }\n\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' + 'only latin upper and lower case letters, ' + 'digits, space, apostrophe, left and rigth ' + 'parenthesis, plus sign, comma, hyphen, ' + 'dot, slash, colon, equal sign, ' + 'question mark');\n }\n\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values) return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id)) return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s.]+/g);\n\n for (var i = 0; i < id.length; i++) {\n id[i] |= 0;\n }\n } else if (Array.isArray(id)) {\n id = id.slice();\n\n for (var _i2 = 0; _i2 < id.length; _i2++) {\n id[_i2] |= 0;\n }\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' + 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40) return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n } // Count number of octets\n\n\n var size = 0;\n\n for (var _i3 = 0; _i3 < id.length; _i3++) {\n var ident = id[_i3];\n\n for (size++; ident >= 0x80; ident >>= 7) {\n size++;\n }\n }\n\n var objid = Buffer.alloc(size);\n var offset = objid.length - 1;\n\n for (var _i4 = id.length - 1; _i4 >= 0; _i4--) {\n var _ident = id[_i4];\n objid[offset--] = _ident & 0x7f;\n\n while ((_ident >>= 7) > 0) {\n objid[offset--] = 0x80 | _ident & 0x7f;\n }\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10) return '0' + num;else return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n var str;\n var date = new Date(time);\n\n if (tag === 'gentime') {\n str = [two(date.getUTCFullYear()), two(date.getUTCMonth() + 1), two(date.getUTCDate()), two(date.getUTCHours()), two(date.getUTCMinutes()), two(date.getUTCSeconds()), 'Z'].join('');\n } else if (tag === 'utctime') {\n str = [two(date.getUTCFullYear() % 100), two(date.getUTCMonth() + 1), two(date.getUTCDate()), two(date.getUTCHours()), two(date.getUTCMinutes()), two(date.getUTCSeconds()), 'Z'].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values) return this.reporter.error('String int or enum given, but no values map');\n\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' + JSON.stringify(num));\n }\n\n num = values[num];\n } // Bignum, assume big endian\n\n\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n var numArray = num.toArray();\n\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n\n num = Buffer.from(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n var _size = num.length;\n if (num.length === 0) _size++;\n\n var _out = Buffer.alloc(_size);\n\n num.copy(_out);\n if (num.length === 0) _out[0] = 0;\n return this._createEncoderBuffer(_out);\n }\n\n if (num < 0x80) return this._createEncoderBuffer(num);\n if (num < 0x100) return this._createEncoderBuffer([0, num]);\n var size = 1;\n\n for (var i = num; i >= 0x100; i >>= 8) {\n size++;\n }\n\n var out = new Array(size);\n\n for (var _i5 = out.length - 1; _i5 >= 0; _i5--) {\n out[_i5] = num & 0xff;\n num >>= 8;\n }\n\n if (out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(Buffer.from(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function') entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n var state = this._baseState;\n var i;\n if (state['default'] === null) return false;\n var data = dataBuffer.join();\n if (state.defaultBuffer === undefined) state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n if (data.length !== state.defaultBuffer.length) return false;\n\n for (i = 0; i < data.length; i++) {\n if (data[i] !== state.defaultBuffer[i]) return false;\n }\n\n return true;\n}; // Utility methods\n\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n var res;\n if (tag === 'seqof') tag = 'seq';else if (tag === 'setof') tag = 'set';\n if (der.tagByName.hasOwnProperty(tag)) res = der.tagByName[tag];else if (typeof tag === 'number' && (tag | 0) === tag) res = tag;else return reporter.error('Unknown tag: ' + tag);\n if (res >= 0x1f) return reporter.error('Multi-octet tag encoding unsupported');\n if (!primitive) res |= 0x20;\n res |= der.tagClassByName[cls || 'universal'] << 6;\n return res;\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/asn1.js/lib/asn1/encoders/der.js?"); | ||
| 264 | + | ||
| 265 | +/***/ }), | ||
| 266 | + | ||
| 267 | +/***/ "./node_modules/asn1.js/lib/asn1/encoders/index.js": | ||
| 268 | +/*!*********************************************************!*\ | ||
| 269 | + !*** ./node_modules/asn1.js/lib/asn1/encoders/index.js ***! | ||
| 270 | + \*********************************************************/ | ||
| 271 | +/*! no static exports found */ | ||
| 272 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 273 | + | ||
| 274 | +"use strict"; | ||
| 275 | +eval("\n\nvar encoders = exports;\nencoders.der = __webpack_require__(/*! ./der */ \"./node_modules/asn1.js/lib/asn1/encoders/der.js\");\nencoders.pem = __webpack_require__(/*! ./pem */ \"./node_modules/asn1.js/lib/asn1/encoders/pem.js\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/asn1.js/lib/asn1/encoders/index.js?"); | ||
| 276 | + | ||
| 277 | +/***/ }), | ||
| 278 | + | ||
| 279 | +/***/ "./node_modules/asn1.js/lib/asn1/encoders/pem.js": | ||
| 280 | +/*!*******************************************************!*\ | ||
| 281 | + !*** ./node_modules/asn1.js/lib/asn1/encoders/pem.js ***! | ||
| 282 | + \*******************************************************/ | ||
| 283 | +/*! no static exports found */ | ||
| 284 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 285 | + | ||
| 286 | +"use strict"; | ||
| 287 | +eval("\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar DEREncoder = __webpack_require__(/*! ./der */ \"./node_modules/asn1.js/lib/asn1/encoders/der.js\");\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n}\n\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n var buf = DEREncoder.prototype.encode.call(this, data);\n var p = buf.toString('base64');\n var out = ['-----BEGIN ' + options.label + '-----'];\n\n for (var i = 0; i < p.length; i += 64) {\n out.push(p.slice(i, i + 64));\n }\n\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/asn1.js/lib/asn1/encoders/pem.js?"); | ||
| 288 | + | ||
| 289 | +/***/ }), | ||
| 290 | + | ||
| 291 | +/***/ "./node_modules/asn1.js/node_modules/bn.js/lib/bn.js": | ||
| 292 | +/*!***********************************************************!*\ | ||
| 293 | + !*** ./node_modules/asn1.js/node_modules/bn.js/lib/bn.js ***! | ||
| 294 | + \***********************************************************/ | ||
| 295 | +/*! no static exports found */ | ||
| 296 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 297 | + | ||
| 298 | +eval("/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {\n 'use strict'; // Utils\n\n function assert(val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n } // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n\n\n function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n } // BN\n\n\n function BN(number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0; // Reduction context\n\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n var Buffer;\n\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = __webpack_require__(/*! buffer */ 11).Buffer;\n }\n } catch (e) {}\n\n BN.isBN = function isBN(num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max(left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min(left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init(number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n\n assert(base === (base | 0) && base >= 2 && base <= 36);\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber(number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n this.length = 3;\n }\n\n if (endian !== 'le') return; // Reverse the bytes\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray(number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;\n this.words[j] |= w << off & 0x3ffffff;\n this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n off += 24;\n\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;\n this.words[j] |= w << off & 0x3ffffff;\n this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n off += 24;\n\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n\n return this.strip();\n };\n\n function parseHex4Bits(string, index) {\n var c = string.charCodeAt(index); // 'A' - 'F'\n\n if (c >= 65 && c <= 70) {\n return c - 55; // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87; // '0' - '9'\n } else {\n return c - 48 & 0xf;\n }\n }\n\n function parseHexByte(string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex(number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n } // 24-bits chunks\n\n\n var off = 0;\n var j = 0;\n var w;\n\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase(str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n r *= mul; // 'a'\n\n if (c >= 49) {\n r += c - 49 + 0xa; // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa; // '0' - '9'\n } else {\n r += c;\n }\n }\n\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase(number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1; // Find length of limb in base\n\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n\n limbLen--;\n limbPow = limbPow / base | 0;\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n var word = 0;\n\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n this.imuln(limbPow);\n\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy(dest) {\n dest.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone() {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand(size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n\n return this;\n }; // Remove leading `0` from `this`\n\n\n BN.prototype.strip = function strip() {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign() {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n\n return this;\n };\n\n BN.prototype.inspect = function inspect() {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n };\n /*\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n */\n\n\n var zeros = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n BN.prototype.toString = function toString(base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n var out;\n\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = ((w << off | carry) & 0xffffff).toString(16);\n carry = w >>> 24 - off & 0xffffff;\n\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n\n off += 2;\n\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\n\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base]; // var groupBase = Math.pow(base, groupSize);\n\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n\n if (this.isZero()) {\n out = '0' + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\n\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber() {\n var ret = this.words[0];\n\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + this.words[1] * 0x4000000;\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n\n return this.negative !== 0 ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON() {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer(endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray(endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n var b, i;\n var q = this.clone();\n\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits(w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits(w) {\n var t = w;\n var r = 0;\n\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits(w) {\n // Short-cut\n if (w === 0) return 26;\n var t = w;\n var r = 0;\n\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n\n if ((t & 0x1) === 0) {\n r++;\n }\n\n return r;\n }; // Return number of used bits in a BN\n\n\n BN.prototype.bitLength = function bitLength() {\n var w = this.words[this.length - 1];\n\n var hi = this._countBits(w);\n\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray(num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n w[bit] = (num.words[off] & 1 << wbit) >>> wbit;\n }\n\n return w;\n } // Number of trailing zero bits\n\n\n BN.prototype.zeroBits = function zeroBits() {\n if (this.isZero()) return 0;\n var r = 0;\n\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n\n r += b;\n if (b !== 26) break;\n }\n\n return r;\n };\n\n BN.prototype.byteLength = function byteLength() {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos(width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos(width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg() {\n return this.negative !== 0;\n }; // Return negative clone of `this`\n\n\n BN.prototype.neg = function neg() {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg() {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n }; // Or `num` with `this` in-place\n\n\n BN.prototype.iuor = function iuor(num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n }; // Or `num` with `this`\n\n\n BN.prototype.or = function or(num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor(num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n }; // And `num` with `this` in-place\n\n\n BN.prototype.iuand = function iuand(num) {\n // b = min-length(num, this)\n var b;\n\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n return this.strip();\n };\n\n BN.prototype.iand = function iand(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n }; // And `num` with `this`\n\n\n BN.prototype.and = function and(num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand(num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n }; // Xor `num` with `this` in-place\n\n\n BN.prototype.iuxor = function iuxor(num) {\n // a.length > b.length\n var a;\n var b;\n\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n }; // Xor `num` with `this`\n\n\n BN.prototype.xor = function xor(num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor(num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n }; // Not ``this`` with ``width`` bitwidth\n\n\n BN.prototype.inotn = function inotn(width) {\n assert(typeof width === 'number' && width >= 0);\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n } // Handle complete words\n\n\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n } // Handle the residue\n\n\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n } // And remove leading zeroes\n\n\n return this.strip();\n };\n\n BN.prototype.notn = function notn(width) {\n return this.clone().inotn(width);\n }; // Set `bit` of `this`\n\n\n BN.prototype.setn = function setn(bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | 1 << wbit;\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n }; // Add `num` to `this` in-place\n\n\n BN.prototype.iadd = function iadd(num) {\n var r; // negative + positive\n\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign(); // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n } // a.length > b.length\n\n\n var a, b;\n\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++; // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n }; // Add `num` to `this`\n\n\n BN.prototype.add = function add(num) {\n var res;\n\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n return num.clone().iadd(this);\n }; // Subtract `num` from `this` in-place\n\n\n BN.prototype.isub = function isub(num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign(); // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n } // At this point both numbers are positive\n\n\n var cmp = this.cmp(num); // Optimization - zeroify\n\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n } // a > b\n\n\n var a, b;\n\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n } // Copy rest of the words\n\n\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n }; // Subtract `num` from `this`\n\n\n BN.prototype.sub = function sub(num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo(self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = self.length + num.length | 0;\n out.length = len;\n len = len - 1 | 0; // Peel one iteration (compiler can't do it, because of code complexity)\n\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n var lo = r & 0x3ffffff;\n var carry = r / 0x4000000 | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += r / 0x4000000 | 0;\n rword = r & 0x3ffffff;\n }\n\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n } // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n\n\n var comb10MulTo = function comb10MulTo(self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = mid + Math.imul(ah0, bl0) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = mid + Math.imul(ah1, bl0) | 0;\n hi = Math.imul(ah1, bh0);\n lo = lo + Math.imul(al0, bl1) | 0;\n mid = mid + Math.imul(al0, bh1) | 0;\n mid = mid + Math.imul(ah0, bl1) | 0;\n hi = hi + Math.imul(ah0, bh1) | 0;\n var w1 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = mid + Math.imul(ah2, bl0) | 0;\n hi = Math.imul(ah2, bh0);\n lo = lo + Math.imul(al1, bl1) | 0;\n mid = mid + Math.imul(al1, bh1) | 0;\n mid = mid + Math.imul(ah1, bl1) | 0;\n hi = hi + Math.imul(ah1, bh1) | 0;\n lo = lo + Math.imul(al0, bl2) | 0;\n mid = mid + Math.imul(al0, bh2) | 0;\n mid = mid + Math.imul(ah0, bl2) | 0;\n hi = hi + Math.imul(ah0, bh2) | 0;\n var w2 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = mid + Math.imul(ah3, bl0) | 0;\n hi = Math.imul(ah3, bh0);\n lo = lo + Math.imul(al2, bl1) | 0;\n mid = mid + Math.imul(al2, bh1) | 0;\n mid = mid + Math.imul(ah2, bl1) | 0;\n hi = hi + Math.imul(ah2, bh1) | 0;\n lo = lo + Math.imul(al1, bl2) | 0;\n mid = mid + Math.imul(al1, bh2) | 0;\n mid = mid + Math.imul(ah1, bl2) | 0;\n hi = hi + Math.imul(ah1, bh2) | 0;\n lo = lo + Math.imul(al0, bl3) | 0;\n mid = mid + Math.imul(al0, bh3) | 0;\n mid = mid + Math.imul(ah0, bl3) | 0;\n hi = hi + Math.imul(ah0, bh3) | 0;\n var w3 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = mid + Math.imul(ah4, bl0) | 0;\n hi = Math.imul(ah4, bh0);\n lo = lo + Math.imul(al3, bl1) | 0;\n mid = mid + Math.imul(al3, bh1) | 0;\n mid = mid + Math.imul(ah3, bl1) | 0;\n hi = hi + Math.imul(ah3, bh1) | 0;\n lo = lo + Math.imul(al2, bl2) | 0;\n mid = mid + Math.imul(al2, bh2) | 0;\n mid = mid + Math.imul(ah2, bl2) | 0;\n hi = hi + Math.imul(ah2, bh2) | 0;\n lo = lo + Math.imul(al1, bl3) | 0;\n mid = mid + Math.imul(al1, bh3) | 0;\n mid = mid + Math.imul(ah1, bl3) | 0;\n hi = hi + Math.imul(ah1, bh3) | 0;\n lo = lo + Math.imul(al0, bl4) | 0;\n mid = mid + Math.imul(al0, bh4) | 0;\n mid = mid + Math.imul(ah0, bl4) | 0;\n hi = hi + Math.imul(ah0, bh4) | 0;\n var w4 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = mid + Math.imul(ah5, bl0) | 0;\n hi = Math.imul(ah5, bh0);\n lo = lo + Math.imul(al4, bl1) | 0;\n mid = mid + Math.imul(al4, bh1) | 0;\n mid = mid + Math.imul(ah4, bl1) | 0;\n hi = hi + Math.imul(ah4, bh1) | 0;\n lo = lo + Math.imul(al3, bl2) | 0;\n mid = mid + Math.imul(al3, bh2) | 0;\n mid = mid + Math.imul(ah3, bl2) | 0;\n hi = hi + Math.imul(ah3, bh2) | 0;\n lo = lo + Math.imul(al2, bl3) | 0;\n mid = mid + Math.imul(al2, bh3) | 0;\n mid = mid + Math.imul(ah2, bl3) | 0;\n hi = hi + Math.imul(ah2, bh3) | 0;\n lo = lo + Math.imul(al1, bl4) | 0;\n mid = mid + Math.imul(al1, bh4) | 0;\n mid = mid + Math.imul(ah1, bl4) | 0;\n hi = hi + Math.imul(ah1, bh4) | 0;\n lo = lo + Math.imul(al0, bl5) | 0;\n mid = mid + Math.imul(al0, bh5) | 0;\n mid = mid + Math.imul(ah0, bl5) | 0;\n hi = hi + Math.imul(ah0, bh5) | 0;\n var w5 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = mid + Math.imul(ah6, bl0) | 0;\n hi = Math.imul(ah6, bh0);\n lo = lo + Math.imul(al5, bl1) | 0;\n mid = mid + Math.imul(al5, bh1) | 0;\n mid = mid + Math.imul(ah5, bl1) | 0;\n hi = hi + Math.imul(ah5, bh1) | 0;\n lo = lo + Math.imul(al4, bl2) | 0;\n mid = mid + Math.imul(al4, bh2) | 0;\n mid = mid + Math.imul(ah4, bl2) | 0;\n hi = hi + Math.imul(ah4, bh2) | 0;\n lo = lo + Math.imul(al3, bl3) | 0;\n mid = mid + Math.imul(al3, bh3) | 0;\n mid = mid + Math.imul(ah3, bl3) | 0;\n hi = hi + Math.imul(ah3, bh3) | 0;\n lo = lo + Math.imul(al2, bl4) | 0;\n mid = mid + Math.imul(al2, bh4) | 0;\n mid = mid + Math.imul(ah2, bl4) | 0;\n hi = hi + Math.imul(ah2, bh4) | 0;\n lo = lo + Math.imul(al1, bl5) | 0;\n mid = mid + Math.imul(al1, bh5) | 0;\n mid = mid + Math.imul(ah1, bl5) | 0;\n hi = hi + Math.imul(ah1, bh5) | 0;\n lo = lo + Math.imul(al0, bl6) | 0;\n mid = mid + Math.imul(al0, bh6) | 0;\n mid = mid + Math.imul(ah0, bl6) | 0;\n hi = hi + Math.imul(ah0, bh6) | 0;\n var w6 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = mid + Math.imul(ah7, bl0) | 0;\n hi = Math.imul(ah7, bh0);\n lo = lo + Math.imul(al6, bl1) | 0;\n mid = mid + Math.imul(al6, bh1) | 0;\n mid = mid + Math.imul(ah6, bl1) | 0;\n hi = hi + Math.imul(ah6, bh1) | 0;\n lo = lo + Math.imul(al5, bl2) | 0;\n mid = mid + Math.imul(al5, bh2) | 0;\n mid = mid + Math.imul(ah5, bl2) | 0;\n hi = hi + Math.imul(ah5, bh2) | 0;\n lo = lo + Math.imul(al4, bl3) | 0;\n mid = mid + Math.imul(al4, bh3) | 0;\n mid = mid + Math.imul(ah4, bl3) | 0;\n hi = hi + Math.imul(ah4, bh3) | 0;\n lo = lo + Math.imul(al3, bl4) | 0;\n mid = mid + Math.imul(al3, bh4) | 0;\n mid = mid + Math.imul(ah3, bl4) | 0;\n hi = hi + Math.imul(ah3, bh4) | 0;\n lo = lo + Math.imul(al2, bl5) | 0;\n mid = mid + Math.imul(al2, bh5) | 0;\n mid = mid + Math.imul(ah2, bl5) | 0;\n hi = hi + Math.imul(ah2, bh5) | 0;\n lo = lo + Math.imul(al1, bl6) | 0;\n mid = mid + Math.imul(al1, bh6) | 0;\n mid = mid + Math.imul(ah1, bl6) | 0;\n hi = hi + Math.imul(ah1, bh6) | 0;\n lo = lo + Math.imul(al0, bl7) | 0;\n mid = mid + Math.imul(al0, bh7) | 0;\n mid = mid + Math.imul(ah0, bl7) | 0;\n hi = hi + Math.imul(ah0, bh7) | 0;\n var w7 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = mid + Math.imul(ah8, bl0) | 0;\n hi = Math.imul(ah8, bh0);\n lo = lo + Math.imul(al7, bl1) | 0;\n mid = mid + Math.imul(al7, bh1) | 0;\n mid = mid + Math.imul(ah7, bl1) | 0;\n hi = hi + Math.imul(ah7, bh1) | 0;\n lo = lo + Math.imul(al6, bl2) | 0;\n mid = mid + Math.imul(al6, bh2) | 0;\n mid = mid + Math.imul(ah6, bl2) | 0;\n hi = hi + Math.imul(ah6, bh2) | 0;\n lo = lo + Math.imul(al5, bl3) | 0;\n mid = mid + Math.imul(al5, bh3) | 0;\n mid = mid + Math.imul(ah5, bl3) | 0;\n hi = hi + Math.imul(ah5, bh3) | 0;\n lo = lo + Math.imul(al4, bl4) | 0;\n mid = mid + Math.imul(al4, bh4) | 0;\n mid = mid + Math.imul(ah4, bl4) | 0;\n hi = hi + Math.imul(ah4, bh4) | 0;\n lo = lo + Math.imul(al3, bl5) | 0;\n mid = mid + Math.imul(al3, bh5) | 0;\n mid = mid + Math.imul(ah3, bl5) | 0;\n hi = hi + Math.imul(ah3, bh5) | 0;\n lo = lo + Math.imul(al2, bl6) | 0;\n mid = mid + Math.imul(al2, bh6) | 0;\n mid = mid + Math.imul(ah2, bl6) | 0;\n hi = hi + Math.imul(ah2, bh6) | 0;\n lo = lo + Math.imul(al1, bl7) | 0;\n mid = mid + Math.imul(al1, bh7) | 0;\n mid = mid + Math.imul(ah1, bl7) | 0;\n hi = hi + Math.imul(ah1, bh7) | 0;\n lo = lo + Math.imul(al0, bl8) | 0;\n mid = mid + Math.imul(al0, bh8) | 0;\n mid = mid + Math.imul(ah0, bl8) | 0;\n hi = hi + Math.imul(ah0, bh8) | 0;\n var w8 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = mid + Math.imul(ah9, bl0) | 0;\n hi = Math.imul(ah9, bh0);\n lo = lo + Math.imul(al8, bl1) | 0;\n mid = mid + Math.imul(al8, bh1) | 0;\n mid = mid + Math.imul(ah8, bl1) | 0;\n hi = hi + Math.imul(ah8, bh1) | 0;\n lo = lo + Math.imul(al7, bl2) | 0;\n mid = mid + Math.imul(al7, bh2) | 0;\n mid = mid + Math.imul(ah7, bl2) | 0;\n hi = hi + Math.imul(ah7, bh2) | 0;\n lo = lo + Math.imul(al6, bl3) | 0;\n mid = mid + Math.imul(al6, bh3) | 0;\n mid = mid + Math.imul(ah6, bl3) | 0;\n hi = hi + Math.imul(ah6, bh3) | 0;\n lo = lo + Math.imul(al5, bl4) | 0;\n mid = mid + Math.imul(al5, bh4) | 0;\n mid = mid + Math.imul(ah5, bl4) | 0;\n hi = hi + Math.imul(ah5, bh4) | 0;\n lo = lo + Math.imul(al4, bl5) | 0;\n mid = mid + Math.imul(al4, bh5) | 0;\n mid = mid + Math.imul(ah4, bl5) | 0;\n hi = hi + Math.imul(ah4, bh5) | 0;\n lo = lo + Math.imul(al3, bl6) | 0;\n mid = mid + Math.imul(al3, bh6) | 0;\n mid = mid + Math.imul(ah3, bl6) | 0;\n hi = hi + Math.imul(ah3, bh6) | 0;\n lo = lo + Math.imul(al2, bl7) | 0;\n mid = mid + Math.imul(al2, bh7) | 0;\n mid = mid + Math.imul(ah2, bl7) | 0;\n hi = hi + Math.imul(ah2, bh7) | 0;\n lo = lo + Math.imul(al1, bl8) | 0;\n mid = mid + Math.imul(al1, bh8) | 0;\n mid = mid + Math.imul(ah1, bl8) | 0;\n hi = hi + Math.imul(ah1, bh8) | 0;\n lo = lo + Math.imul(al0, bl9) | 0;\n mid = mid + Math.imul(al0, bh9) | 0;\n mid = mid + Math.imul(ah0, bl9) | 0;\n hi = hi + Math.imul(ah0, bh9) | 0;\n var w9 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = mid + Math.imul(ah9, bl1) | 0;\n hi = Math.imul(ah9, bh1);\n lo = lo + Math.imul(al8, bl2) | 0;\n mid = mid + Math.imul(al8, bh2) | 0;\n mid = mid + Math.imul(ah8, bl2) | 0;\n hi = hi + Math.imul(ah8, bh2) | 0;\n lo = lo + Math.imul(al7, bl3) | 0;\n mid = mid + Math.imul(al7, bh3) | 0;\n mid = mid + Math.imul(ah7, bl3) | 0;\n hi = hi + Math.imul(ah7, bh3) | 0;\n lo = lo + Math.imul(al6, bl4) | 0;\n mid = mid + Math.imul(al6, bh4) | 0;\n mid = mid + Math.imul(ah6, bl4) | 0;\n hi = hi + Math.imul(ah6, bh4) | 0;\n lo = lo + Math.imul(al5, bl5) | 0;\n mid = mid + Math.imul(al5, bh5) | 0;\n mid = mid + Math.imul(ah5, bl5) | 0;\n hi = hi + Math.imul(ah5, bh5) | 0;\n lo = lo + Math.imul(al4, bl6) | 0;\n mid = mid + Math.imul(al4, bh6) | 0;\n mid = mid + Math.imul(ah4, bl6) | 0;\n hi = hi + Math.imul(ah4, bh6) | 0;\n lo = lo + Math.imul(al3, bl7) | 0;\n mid = mid + Math.imul(al3, bh7) | 0;\n mid = mid + Math.imul(ah3, bl7) | 0;\n hi = hi + Math.imul(ah3, bh7) | 0;\n lo = lo + Math.imul(al2, bl8) | 0;\n mid = mid + Math.imul(al2, bh8) | 0;\n mid = mid + Math.imul(ah2, bl8) | 0;\n hi = hi + Math.imul(ah2, bh8) | 0;\n lo = lo + Math.imul(al1, bl9) | 0;\n mid = mid + Math.imul(al1, bh9) | 0;\n mid = mid + Math.imul(ah1, bl9) | 0;\n hi = hi + Math.imul(ah1, bh9) | 0;\n var w10 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = mid + Math.imul(ah9, bl2) | 0;\n hi = Math.imul(ah9, bh2);\n lo = lo + Math.imul(al8, bl3) | 0;\n mid = mid + Math.imul(al8, bh3) | 0;\n mid = mid + Math.imul(ah8, bl3) | 0;\n hi = hi + Math.imul(ah8, bh3) | 0;\n lo = lo + Math.imul(al7, bl4) | 0;\n mid = mid + Math.imul(al7, bh4) | 0;\n mid = mid + Math.imul(ah7, bl4) | 0;\n hi = hi + Math.imul(ah7, bh4) | 0;\n lo = lo + Math.imul(al6, bl5) | 0;\n mid = mid + Math.imul(al6, bh5) | 0;\n mid = mid + Math.imul(ah6, bl5) | 0;\n hi = hi + Math.imul(ah6, bh5) | 0;\n lo = lo + Math.imul(al5, bl6) | 0;\n mid = mid + Math.imul(al5, bh6) | 0;\n mid = mid + Math.imul(ah5, bl6) | 0;\n hi = hi + Math.imul(ah5, bh6) | 0;\n lo = lo + Math.imul(al4, bl7) | 0;\n mid = mid + Math.imul(al4, bh7) | 0;\n mid = mid + Math.imul(ah4, bl7) | 0;\n hi = hi + Math.imul(ah4, bh7) | 0;\n lo = lo + Math.imul(al3, bl8) | 0;\n mid = mid + Math.imul(al3, bh8) | 0;\n mid = mid + Math.imul(ah3, bl8) | 0;\n hi = hi + Math.imul(ah3, bh8) | 0;\n lo = lo + Math.imul(al2, bl9) | 0;\n mid = mid + Math.imul(al2, bh9) | 0;\n mid = mid + Math.imul(ah2, bl9) | 0;\n hi = hi + Math.imul(ah2, bh9) | 0;\n var w11 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = mid + Math.imul(ah9, bl3) | 0;\n hi = Math.imul(ah9, bh3);\n lo = lo + Math.imul(al8, bl4) | 0;\n mid = mid + Math.imul(al8, bh4) | 0;\n mid = mid + Math.imul(ah8, bl4) | 0;\n hi = hi + Math.imul(ah8, bh4) | 0;\n lo = lo + Math.imul(al7, bl5) | 0;\n mid = mid + Math.imul(al7, bh5) | 0;\n mid = mid + Math.imul(ah7, bl5) | 0;\n hi = hi + Math.imul(ah7, bh5) | 0;\n lo = lo + Math.imul(al6, bl6) | 0;\n mid = mid + Math.imul(al6, bh6) | 0;\n mid = mid + Math.imul(ah6, bl6) | 0;\n hi = hi + Math.imul(ah6, bh6) | 0;\n lo = lo + Math.imul(al5, bl7) | 0;\n mid = mid + Math.imul(al5, bh7) | 0;\n mid = mid + Math.imul(ah5, bl7) | 0;\n hi = hi + Math.imul(ah5, bh7) | 0;\n lo = lo + Math.imul(al4, bl8) | 0;\n mid = mid + Math.imul(al4, bh8) | 0;\n mid = mid + Math.imul(ah4, bl8) | 0;\n hi = hi + Math.imul(ah4, bh8) | 0;\n lo = lo + Math.imul(al3, bl9) | 0;\n mid = mid + Math.imul(al3, bh9) | 0;\n mid = mid + Math.imul(ah3, bl9) | 0;\n hi = hi + Math.imul(ah3, bh9) | 0;\n var w12 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = mid + Math.imul(ah9, bl4) | 0;\n hi = Math.imul(ah9, bh4);\n lo = lo + Math.imul(al8, bl5) | 0;\n mid = mid + Math.imul(al8, bh5) | 0;\n mid = mid + Math.imul(ah8, bl5) | 0;\n hi = hi + Math.imul(ah8, bh5) | 0;\n lo = lo + Math.imul(al7, bl6) | 0;\n mid = mid + Math.imul(al7, bh6) | 0;\n mid = mid + Math.imul(ah7, bl6) | 0;\n hi = hi + Math.imul(ah7, bh6) | 0;\n lo = lo + Math.imul(al6, bl7) | 0;\n mid = mid + Math.imul(al6, bh7) | 0;\n mid = mid + Math.imul(ah6, bl7) | 0;\n hi = hi + Math.imul(ah6, bh7) | 0;\n lo = lo + Math.imul(al5, bl8) | 0;\n mid = mid + Math.imul(al5, bh8) | 0;\n mid = mid + Math.imul(ah5, bl8) | 0;\n hi = hi + Math.imul(ah5, bh8) | 0;\n lo = lo + Math.imul(al4, bl9) | 0;\n mid = mid + Math.imul(al4, bh9) | 0;\n mid = mid + Math.imul(ah4, bl9) | 0;\n hi = hi + Math.imul(ah4, bh9) | 0;\n var w13 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = mid + Math.imul(ah9, bl5) | 0;\n hi = Math.imul(ah9, bh5);\n lo = lo + Math.imul(al8, bl6) | 0;\n mid = mid + Math.imul(al8, bh6) | 0;\n mid = mid + Math.imul(ah8, bl6) | 0;\n hi = hi + Math.imul(ah8, bh6) | 0;\n lo = lo + Math.imul(al7, bl7) | 0;\n mid = mid + Math.imul(al7, bh7) | 0;\n mid = mid + Math.imul(ah7, bl7) | 0;\n hi = hi + Math.imul(ah7, bh7) | 0;\n lo = lo + Math.imul(al6, bl8) | 0;\n mid = mid + Math.imul(al6, bh8) | 0;\n mid = mid + Math.imul(ah6, bl8) | 0;\n hi = hi + Math.imul(ah6, bh8) | 0;\n lo = lo + Math.imul(al5, bl9) | 0;\n mid = mid + Math.imul(al5, bh9) | 0;\n mid = mid + Math.imul(ah5, bl9) | 0;\n hi = hi + Math.imul(ah5, bh9) | 0;\n var w14 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = mid + Math.imul(ah9, bl6) | 0;\n hi = Math.imul(ah9, bh6);\n lo = lo + Math.imul(al8, bl7) | 0;\n mid = mid + Math.imul(al8, bh7) | 0;\n mid = mid + Math.imul(ah8, bl7) | 0;\n hi = hi + Math.imul(ah8, bh7) | 0;\n lo = lo + Math.imul(al7, bl8) | 0;\n mid = mid + Math.imul(al7, bh8) | 0;\n mid = mid + Math.imul(ah7, bl8) | 0;\n hi = hi + Math.imul(ah7, bh8) | 0;\n lo = lo + Math.imul(al6, bl9) | 0;\n mid = mid + Math.imul(al6, bh9) | 0;\n mid = mid + Math.imul(ah6, bl9) | 0;\n hi = hi + Math.imul(ah6, bh9) | 0;\n var w15 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = mid + Math.imul(ah9, bl7) | 0;\n hi = Math.imul(ah9, bh7);\n lo = lo + Math.imul(al8, bl8) | 0;\n mid = mid + Math.imul(al8, bh8) | 0;\n mid = mid + Math.imul(ah8, bl8) | 0;\n hi = hi + Math.imul(ah8, bh8) | 0;\n lo = lo + Math.imul(al7, bl9) | 0;\n mid = mid + Math.imul(al7, bh9) | 0;\n mid = mid + Math.imul(ah7, bl9) | 0;\n hi = hi + Math.imul(ah7, bh9) | 0;\n var w16 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = mid + Math.imul(ah9, bl8) | 0;\n hi = Math.imul(ah9, bh8);\n lo = lo + Math.imul(al8, bl9) | 0;\n mid = mid + Math.imul(al8, bh9) | 0;\n mid = mid + Math.imul(ah8, bl9) | 0;\n hi = hi + Math.imul(ah8, bh9) | 0;\n var w17 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = mid + Math.imul(ah9, bl9) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n\n return out;\n }; // Polyfill comb\n\n\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo(self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n var carry = 0;\n var hncarry = 0;\n\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n var lo = r & 0x3ffffff;\n ncarry = ncarry + (r / 0x4000000 | 0) | 0;\n lo = lo + rword | 0;\n rword = lo & 0x3ffffff;\n ncarry = ncarry + (lo >>> 26) | 0;\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo(self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo(num, out) {\n var res;\n var len = this.length + num.length;\n\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n }; // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n\n function FFTM(x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT(N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n }; // Returns binary-reversed representation of `x`\n\n\n FFTM.prototype.revBin = function revBin(x, l, N) {\n if (x === 0 || x === N - 1) return x;\n var rb = 0;\n\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << l - i - 1;\n x >>= 1;\n }\n\n return rb;\n }; // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n\n\n FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n var rx = rtwdf_ * ro - itwdf_ * io;\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n /* jshint maxdepth : false */\n\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b(n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate(rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n t = iws[i];\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b(ws, N) {\n var carry = 0;\n\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry;\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {\n var carry = 0;\n\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n rws[2 * i] = carry & 0x1fff;\n carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff;\n carry = carry >>> 13;\n } // Pad with zeroes\n\n\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub(N) {\n var ph = new Array(N);\n\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp(x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n var rmws = out.words;\n rmws.length = N;\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n }; // Multiply `this` by `num`\n\n\n BN.prototype.mul = function mul(num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n }; // Multiply employing FFT\n\n\n BN.prototype.mulf = function mulf(num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n }; // In-place Multiplication\n\n\n BN.prototype.imul = function imul(num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000); // Carry\n\n var carry = 0;\n\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += w / 0x4000000 | 0; // NOTE: lo is 27bit maximum\n\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln(num) {\n return this.clone().imuln(num);\n }; // `this` * `this`\n\n\n BN.prototype.sqr = function sqr() {\n return this.mul(this);\n }; // `this` * `this` in-place\n\n\n BN.prototype.isqr = function isqr() {\n return this.imul(this.clone());\n }; // Math.pow(`this`, `num`)\n\n\n BN.prototype.pow = function pow(num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n var res = this;\n\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n res = res.mul(q);\n }\n }\n\n return res;\n }; // Shift-left in-place\n\n\n BN.prototype.iushln = function iushln(bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = 0x3ffffff >>> 26 - r << 26 - r;\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = (this.words[i] | 0) - newCarry << r;\n this.words[i] = c | carry;\n carry = newCarry >>> 26 - r;\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln(bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n }; // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n\n\n BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n\n if (hint) {\n h = (hint - hint % 26) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n var maskedWords = extended;\n h -= s;\n h = Math.max(0, h); // Extended mode, copy masked part\n\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n\n maskedWords.length = s;\n }\n\n if (s === 0) {// No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = carry << 26 - r | word >>> r;\n carry = word & mask;\n } // Push carried bits as a mask\n\n\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn(bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n }; // Shift-left\n\n\n BN.prototype.shln = function shln(bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln(bits) {\n return this.clone().iushln(bits);\n }; // Shift-right\n\n\n BN.prototype.shrn = function shrn(bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn(bits) {\n return this.clone().iushrn(bits);\n }; // Test if n bit is set\n\n\n BN.prototype.testn = function testn(bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) return false; // Check bit and return\n\n var w = this.words[s];\n return !!(w & q);\n }; // Return only lowers bits of number (in-place)\n\n\n BN.prototype.imaskn = function imaskn(bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n }; // Return only lowers bits of number\n\n\n BN.prototype.maskn = function maskn(bits) {\n return this.clone().imaskn(bits);\n }; // Add plain number `num` to `this`\n\n\n BN.prototype.iaddn = function iaddn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num); // Possible sign change\n\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n } // Add without checks\n\n\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn(num) {\n this.words[0] += num; // Carry\n\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n\n this.length = Math.max(this.length, i + 1);\n return this;\n }; // Subtract plain number `num` from `this`\n\n\n BN.prototype.isubn = function isubn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn(num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn(num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs() {\n this.negative = 0;\n return this;\n };\n\n BN.prototype.abs = function abs() {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - (right / 0x4000000 | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip(); // Subtraction overflow\n\n assert(carry === -1);\n carry = 0;\n\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n\n this.negative = 1;\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv(num, mode) {\n var shift = this.length - num.length;\n var a = this.clone();\n var b = num; // Normalize\n\n var bhi = b.words[b.length - 1] | 0;\n\n var bhiBits = this._countBits(bhi);\n\n shift = 26 - bhiBits;\n\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n } // Initialize quotient\n\n\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n\n if (diff.negative === 0) {\n a = diff;\n\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n\n qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n\n a._ishlnsubmul(b, 1, j);\n\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n\n if (q) {\n q.words[j] = qj;\n }\n }\n\n if (q) {\n q.strip();\n }\n\n a.strip(); // Denormalize\n\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n }; // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n\n\n BN.prototype.divmod = function divmod(num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n } // Both numbers are positive at this point\n // Strip both numbers to approximate shift value\n\n\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n } // Very short reduction\n\n\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n }; // Find `this` / `num`\n\n\n BN.prototype.div = function div(num) {\n return this.divmod(num, 'div', false).div;\n }; // Find `this` % `num`\n\n\n BN.prototype.mod = function mod(num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod(num) {\n return this.divmod(num, 'mod', true).mod;\n }; // Find Round(`this` / `num`)\n\n\n BN.prototype.divRound = function divRound(num) {\n var dm = this.divmod(num); // Fast case - exact division\n\n if (dm.mod.isZero()) return dm.div;\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half); // Round down\n\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn(num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n var acc = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n }; // In-place division by number\n\n\n BN.prototype.idivn = function idivn(num) {\n assert(num <= 0x3ffffff);\n var carry = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = w / num | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn(num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n } // A * x + B * y = x\n\n\n var A = new BN(1);\n var B = new BN(0); // C * x + D * y = y\n\n var C = new BN(0);\n var D = new BN(1);\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {\n ;\n }\n\n if (i > 0) {\n x.iushrn(i);\n\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {\n ;\n }\n\n if (j > 0) {\n y.iushrn(j);\n\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n }; // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n\n\n BN.prototype._invmp = function _invmp(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {\n ;\n }\n\n if (i > 0) {\n a.iushrn(i);\n\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {\n ;\n }\n\n if (j > 0) {\n b.iushrn(j);\n\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd(num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0; // Remove common factor of two\n\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n }; // Invert number in the field F(num)\n\n\n BN.prototype.invm = function invm(num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven() {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd() {\n return (this.words[0] & 1) === 1;\n }; // And first word and num\n\n\n BN.prototype.andln = function andln(num) {\n return this.words[0] & num;\n }; // Increment at the bit position in-line\n\n\n BN.prototype.bincn = function bincn(bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) {\n this._expand(s + 1);\n\n this.words[s] |= q;\n return this;\n } // Add bit and propagate, if needed\n\n\n var carry = q;\n\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.isZero = function isZero() {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn(num) {\n var negative = num < 0;\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n this.strip();\n var res;\n\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n\n\n BN.prototype.cmp = function cmp(num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Unsigned comparison\n\n\n BN.prototype.ucmp = function ucmp(num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n var res = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n if (a === b) continue;\n\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n\n break;\n }\n\n return res;\n };\n\n BN.prototype.gtn = function gtn(num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt(num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten(num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte(num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn(num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt(num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten(num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte(num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn(num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq(num) {\n return this.cmp(num) === 0;\n }; //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n\n\n BN.red = function red(num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed(ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed() {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed(ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed(ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd(num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd(num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub(num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub(num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl(num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul(num) {\n assert(this.red, 'redMul works only with red numbers');\n\n this.red._verify2(this, num);\n\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul(num) {\n assert(this.red, 'redMul works only with red numbers');\n\n this.red._verify2(this, num);\n\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr() {\n assert(this.red, 'redSqr works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr() {\n assert(this.red, 'redISqr works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.isqr(this);\n }; // Square root over p\n\n\n BN.prototype.redSqrt = function redSqrt() {\n assert(this.red, 'redSqrt works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm() {\n assert(this.red, 'redInvm works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.invm(this);\n }; // Return negative clone of `this` % `red modulo`\n\n\n BN.prototype.redNeg = function redNeg() {\n assert(this.red, 'redNeg works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow(num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n\n this.red._verify1(this);\n\n return this.red.pow(this, num);\n }; // Prime numbers with efficient reduction\n\n\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n }; // Pseudo-Mersenne prime\n\n function MPrime(name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp() {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce(num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split(input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK(num) {\n return num.imul(this.k);\n };\n\n function K256() {\n MPrime.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n\n inherits(K256, MPrime);\n\n K256.prototype.split = function split(input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n var outLen = Math.min(input.length, 9);\n\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n } // Shift by 9 limbs\n\n\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = (next & mask) << 4 | prev >>> 22;\n prev = next;\n }\n\n prev >>>= 22;\n input.words[i - 10] = prev;\n\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK(num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n var lo = 0;\n\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + (lo / 0x4000000 | 0);\n } // Fast length reduction\n\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n\n return num;\n };\n\n function P224() {\n MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n\n inherits(P224, MPrime);\n\n function P192() {\n MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n\n inherits(P192, MPrime);\n\n function P25519() {\n // 2 ^ 255 - 19\n MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK(num) {\n // K = 0x13\n var carry = 0;\n\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n num.words[i] = lo;\n carry = hi;\n }\n\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n\n return num;\n }; // Exported mostly for testing purposes, use plain name instead\n\n\n BN._prime = function prime(name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n var prime;\n\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n\n primes[name] = prime;\n return prime;\n }; //\n // Base reduction engine\n //\n\n\n function Red(m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1(a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2(a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red, 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod(a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg(a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add(a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd(a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n\n return res;\n };\n\n Red.prototype.sub = function sub(a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub(a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res;\n };\n\n Red.prototype.shl = function shl(a, num) {\n this._verify1(a);\n\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr(a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr(a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt(a) {\n if (a.isZero()) return a.clone();\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1); // Fast case\n\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n var q = this.m.subn(1);\n var s = 0;\n\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n\n assert(!q.isZero());\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg(); // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n\n while (t.cmp(one) !== 0) {\n var tmp = t;\n\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm(a) {\n var inv = a._invmp(this.m);\n\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow(a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n\n for (var j = start - 1; j >= 0; j--) {\n var bit = word >> j & 1;\n\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo(num) {\n var r = num.umod(this.m);\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom(num) {\n var res = num.clone();\n res.red = null;\n return res;\n }; //\n // Montgomery method engine\n //\n\n\n BN.mont = function mont(num) {\n return new Mont(num);\n };\n\n function Mont(m) {\n Red.call(this, m);\n this.shift = this.m.bitLength();\n\n if (this.shift % 26 !== 0) {\n this.shift += 26 - this.shift % 26;\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo(num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom(num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul(a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul(a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm(a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})( false || module, this);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/asn1.js/node_modules/bn.js/lib/bn.js?"); | ||
| 299 | + | ||
| 300 | +/***/ }), | ||
| 301 | + | ||
| 302 | +/***/ "./node_modules/base64-js/index.js": | ||
| 303 | +/*!*****************************************!*\ | ||
| 304 | + !*** ./node_modules/base64-js/index.js ***! | ||
| 305 | + \*****************************************/ | ||
| 306 | +/*! no static exports found */ | ||
| 307 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 308 | + | ||
| 309 | +"use strict"; | ||
| 310 | +eval("\n\nexports.byteLength = byteLength;\nexports.toByteArray = toByteArray;\nexports.fromByteArray = fromByteArray;\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n} // Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\n\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens(b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4');\n } // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n\n\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n} // base64 is 4/3 + up to two characters of the original data\n\n\nfunction byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0; // if there are placeholders, only get up to the last complete 4 chars\n\n var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i;\n\n for (i = 0; i < len; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = tmp >> 16 & 0xFF;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n return arr;\n}\n\nfunction tripletToBase64(num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n}\n\nfunction encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n\n return output.join('');\n}\n\nfunction fromByteArray(uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n // go through the array every three bytes, we'll deal with trailing stuff later\n\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '==');\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '=');\n }\n\n return parts.join('');\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/base64-js/index.js?"); | ||
| 311 | + | ||
| 312 | +/***/ }), | ||
| 313 | + | ||
| 314 | +/***/ "./node_modules/bn.js/lib/bn.js": | ||
| 315 | +/*!**************************************!*\ | ||
| 316 | + !*** ./node_modules/bn.js/lib/bn.js ***! | ||
| 317 | + \**************************************/ | ||
| 318 | +/*! no static exports found */ | ||
| 319 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 320 | + | ||
| 321 | +eval("/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {\n 'use strict'; // Utils\n\n function assert(val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n } // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n\n\n function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n } // BN\n\n\n function BN(number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0; // Reduction context\n\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n var Buffer;\n\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = __webpack_require__(/*! buffer */ 9).Buffer;\n }\n } catch (e) {}\n\n BN.isBN = function isBN(num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max(left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min(left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init(number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n\n assert(base === (base | 0) && base >= 2 && base <= 36);\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber(number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n this.length = 3;\n }\n\n if (endian !== 'le') return; // Reverse the bytes\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray(number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;\n this.words[j] |= w << off & 0x3ffffff;\n this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n off += 24;\n\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;\n this.words[j] |= w << off & 0x3ffffff;\n this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n off += 24;\n\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n\n return this._strip();\n };\n\n function parseHex4Bits(string, index) {\n var c = string.charCodeAt(index); // '0' - '9'\n\n if (c >= 48 && c <= 57) {\n return c - 48; // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55; // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte(string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex(number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n } // 24-bits chunks\n\n\n var off = 0;\n var j = 0;\n var w;\n\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase(str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n r *= mul; // 'a'\n\n if (c >= 49) {\n b = c - 49 + 0xa; // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa; // '0' - '9'\n } else {\n b = c;\n }\n\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase(number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1; // Find length of limb in base\n\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n\n limbLen--;\n limbPow = limbPow / base | 0;\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n var word = 0;\n\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n this.imuln(limbPow);\n\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy(dest) {\n dest.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move(dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move(dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone() {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand(size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n\n return this;\n }; // Remove leading `0` from `this`\n\n\n BN.prototype._strip = function strip() {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign() {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n\n return this;\n }; // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n\n\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect() {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n }\n /*\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n */\n\n\n var zeros = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n BN.prototype.toString = function toString(base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n var out;\n\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = ((w << off | carry) & 0xffffff).toString(16);\n carry = w >>> 24 - off & 0xffffff;\n\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n\n off += 2;\n\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\n\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base]; // var groupBase = Math.pow(base, groupSize);\n\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n\n if (this.isZero()) {\n out = '0' + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\n\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber() {\n var ret = this.words[0];\n\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + this.words[1] * 0x4000000;\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n\n return this.negative !== 0 ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON() {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer(endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray(endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate(ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE(res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = this.words[i] << shift | carry;\n res[position++] = word & 0xff;\n\n if (position < res.length) {\n res[position++] = word >> 8 & 0xff;\n }\n\n if (position < res.length) {\n res[position++] = word >> 16 & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = word >> 24 & 0xff;\n }\n\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE(res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = this.words[i] << shift | carry;\n res[position--] = word & 0xff;\n\n if (position >= 0) {\n res[position--] = word >> 8 & 0xff;\n }\n\n if (position >= 0) {\n res[position--] = word >> 16 & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = word >> 24 & 0xff;\n }\n\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits(w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits(w) {\n var t = w;\n var r = 0;\n\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits(w) {\n // Short-cut\n if (w === 0) return 26;\n var t = w;\n var r = 0;\n\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n\n if ((t & 0x1) === 0) {\n r++;\n }\n\n return r;\n }; // Return number of used bits in a BN\n\n\n BN.prototype.bitLength = function bitLength() {\n var w = this.words[this.length - 1];\n\n var hi = this._countBits(w);\n\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray(num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n w[bit] = num.words[off] >>> wbit & 0x01;\n }\n\n return w;\n } // Number of trailing zero bits\n\n\n BN.prototype.zeroBits = function zeroBits() {\n if (this.isZero()) return 0;\n var r = 0;\n\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n\n r += b;\n if (b !== 26) break;\n }\n\n return r;\n };\n\n BN.prototype.byteLength = function byteLength() {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos(width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos(width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg() {\n return this.negative !== 0;\n }; // Return negative clone of `this`\n\n\n BN.prototype.neg = function neg() {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg() {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n }; // Or `num` with `this` in-place\n\n\n BN.prototype.iuor = function iuor(num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n }; // Or `num` with `this`\n\n\n BN.prototype.or = function or(num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor(num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n }; // And `num` with `this` in-place\n\n\n BN.prototype.iuand = function iuand(num) {\n // b = min-length(num, this)\n var b;\n\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n return this._strip();\n };\n\n BN.prototype.iand = function iand(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n }; // And `num` with `this`\n\n\n BN.prototype.and = function and(num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand(num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n }; // Xor `num` with `this` in-place\n\n\n BN.prototype.iuxor = function iuxor(num) {\n // a.length > b.length\n var a;\n var b;\n\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n }; // Xor `num` with `this`\n\n\n BN.prototype.xor = function xor(num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor(num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n }; // Not ``this`` with ``width`` bitwidth\n\n\n BN.prototype.inotn = function inotn(width) {\n assert(typeof width === 'number' && width >= 0);\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n } // Handle complete words\n\n\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n } // Handle the residue\n\n\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n } // And remove leading zeroes\n\n\n return this._strip();\n };\n\n BN.prototype.notn = function notn(width) {\n return this.clone().inotn(width);\n }; // Set `bit` of `this`\n\n\n BN.prototype.setn = function setn(bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | 1 << wbit;\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n }; // Add `num` to `this` in-place\n\n\n BN.prototype.iadd = function iadd(num) {\n var r; // negative + positive\n\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign(); // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n } // a.length > b.length\n\n\n var a, b;\n\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++; // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n }; // Add `num` to `this`\n\n\n BN.prototype.add = function add(num) {\n var res;\n\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n return num.clone().iadd(this);\n }; // Subtract `num` from `this` in-place\n\n\n BN.prototype.isub = function isub(num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign(); // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n } // At this point both numbers are positive\n\n\n var cmp = this.cmp(num); // Optimization - zeroify\n\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n } // a > b\n\n\n var a, b;\n\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n } // Copy rest of the words\n\n\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n }; // Subtract `num` from `this`\n\n\n BN.prototype.sub = function sub(num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo(self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = self.length + num.length | 0;\n out.length = len;\n len = len - 1 | 0; // Peel one iteration (compiler can't do it, because of code complexity)\n\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n var lo = r & 0x3ffffff;\n var carry = r / 0x4000000 | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += r / 0x4000000 | 0;\n rword = r & 0x3ffffff;\n }\n\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n } // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n\n\n var comb10MulTo = function comb10MulTo(self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = mid + Math.imul(ah0, bl0) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = mid + Math.imul(ah1, bl0) | 0;\n hi = Math.imul(ah1, bh0);\n lo = lo + Math.imul(al0, bl1) | 0;\n mid = mid + Math.imul(al0, bh1) | 0;\n mid = mid + Math.imul(ah0, bl1) | 0;\n hi = hi + Math.imul(ah0, bh1) | 0;\n var w1 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = mid + Math.imul(ah2, bl0) | 0;\n hi = Math.imul(ah2, bh0);\n lo = lo + Math.imul(al1, bl1) | 0;\n mid = mid + Math.imul(al1, bh1) | 0;\n mid = mid + Math.imul(ah1, bl1) | 0;\n hi = hi + Math.imul(ah1, bh1) | 0;\n lo = lo + Math.imul(al0, bl2) | 0;\n mid = mid + Math.imul(al0, bh2) | 0;\n mid = mid + Math.imul(ah0, bl2) | 0;\n hi = hi + Math.imul(ah0, bh2) | 0;\n var w2 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = mid + Math.imul(ah3, bl0) | 0;\n hi = Math.imul(ah3, bh0);\n lo = lo + Math.imul(al2, bl1) | 0;\n mid = mid + Math.imul(al2, bh1) | 0;\n mid = mid + Math.imul(ah2, bl1) | 0;\n hi = hi + Math.imul(ah2, bh1) | 0;\n lo = lo + Math.imul(al1, bl2) | 0;\n mid = mid + Math.imul(al1, bh2) | 0;\n mid = mid + Math.imul(ah1, bl2) | 0;\n hi = hi + Math.imul(ah1, bh2) | 0;\n lo = lo + Math.imul(al0, bl3) | 0;\n mid = mid + Math.imul(al0, bh3) | 0;\n mid = mid + Math.imul(ah0, bl3) | 0;\n hi = hi + Math.imul(ah0, bh3) | 0;\n var w3 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = mid + Math.imul(ah4, bl0) | 0;\n hi = Math.imul(ah4, bh0);\n lo = lo + Math.imul(al3, bl1) | 0;\n mid = mid + Math.imul(al3, bh1) | 0;\n mid = mid + Math.imul(ah3, bl1) | 0;\n hi = hi + Math.imul(ah3, bh1) | 0;\n lo = lo + Math.imul(al2, bl2) | 0;\n mid = mid + Math.imul(al2, bh2) | 0;\n mid = mid + Math.imul(ah2, bl2) | 0;\n hi = hi + Math.imul(ah2, bh2) | 0;\n lo = lo + Math.imul(al1, bl3) | 0;\n mid = mid + Math.imul(al1, bh3) | 0;\n mid = mid + Math.imul(ah1, bl3) | 0;\n hi = hi + Math.imul(ah1, bh3) | 0;\n lo = lo + Math.imul(al0, bl4) | 0;\n mid = mid + Math.imul(al0, bh4) | 0;\n mid = mid + Math.imul(ah0, bl4) | 0;\n hi = hi + Math.imul(ah0, bh4) | 0;\n var w4 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = mid + Math.imul(ah5, bl0) | 0;\n hi = Math.imul(ah5, bh0);\n lo = lo + Math.imul(al4, bl1) | 0;\n mid = mid + Math.imul(al4, bh1) | 0;\n mid = mid + Math.imul(ah4, bl1) | 0;\n hi = hi + Math.imul(ah4, bh1) | 0;\n lo = lo + Math.imul(al3, bl2) | 0;\n mid = mid + Math.imul(al3, bh2) | 0;\n mid = mid + Math.imul(ah3, bl2) | 0;\n hi = hi + Math.imul(ah3, bh2) | 0;\n lo = lo + Math.imul(al2, bl3) | 0;\n mid = mid + Math.imul(al2, bh3) | 0;\n mid = mid + Math.imul(ah2, bl3) | 0;\n hi = hi + Math.imul(ah2, bh3) | 0;\n lo = lo + Math.imul(al1, bl4) | 0;\n mid = mid + Math.imul(al1, bh4) | 0;\n mid = mid + Math.imul(ah1, bl4) | 0;\n hi = hi + Math.imul(ah1, bh4) | 0;\n lo = lo + Math.imul(al0, bl5) | 0;\n mid = mid + Math.imul(al0, bh5) | 0;\n mid = mid + Math.imul(ah0, bl5) | 0;\n hi = hi + Math.imul(ah0, bh5) | 0;\n var w5 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = mid + Math.imul(ah6, bl0) | 0;\n hi = Math.imul(ah6, bh0);\n lo = lo + Math.imul(al5, bl1) | 0;\n mid = mid + Math.imul(al5, bh1) | 0;\n mid = mid + Math.imul(ah5, bl1) | 0;\n hi = hi + Math.imul(ah5, bh1) | 0;\n lo = lo + Math.imul(al4, bl2) | 0;\n mid = mid + Math.imul(al4, bh2) | 0;\n mid = mid + Math.imul(ah4, bl2) | 0;\n hi = hi + Math.imul(ah4, bh2) | 0;\n lo = lo + Math.imul(al3, bl3) | 0;\n mid = mid + Math.imul(al3, bh3) | 0;\n mid = mid + Math.imul(ah3, bl3) | 0;\n hi = hi + Math.imul(ah3, bh3) | 0;\n lo = lo + Math.imul(al2, bl4) | 0;\n mid = mid + Math.imul(al2, bh4) | 0;\n mid = mid + Math.imul(ah2, bl4) | 0;\n hi = hi + Math.imul(ah2, bh4) | 0;\n lo = lo + Math.imul(al1, bl5) | 0;\n mid = mid + Math.imul(al1, bh5) | 0;\n mid = mid + Math.imul(ah1, bl5) | 0;\n hi = hi + Math.imul(ah1, bh5) | 0;\n lo = lo + Math.imul(al0, bl6) | 0;\n mid = mid + Math.imul(al0, bh6) | 0;\n mid = mid + Math.imul(ah0, bl6) | 0;\n hi = hi + Math.imul(ah0, bh6) | 0;\n var w6 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = mid + Math.imul(ah7, bl0) | 0;\n hi = Math.imul(ah7, bh0);\n lo = lo + Math.imul(al6, bl1) | 0;\n mid = mid + Math.imul(al6, bh1) | 0;\n mid = mid + Math.imul(ah6, bl1) | 0;\n hi = hi + Math.imul(ah6, bh1) | 0;\n lo = lo + Math.imul(al5, bl2) | 0;\n mid = mid + Math.imul(al5, bh2) | 0;\n mid = mid + Math.imul(ah5, bl2) | 0;\n hi = hi + Math.imul(ah5, bh2) | 0;\n lo = lo + Math.imul(al4, bl3) | 0;\n mid = mid + Math.imul(al4, bh3) | 0;\n mid = mid + Math.imul(ah4, bl3) | 0;\n hi = hi + Math.imul(ah4, bh3) | 0;\n lo = lo + Math.imul(al3, bl4) | 0;\n mid = mid + Math.imul(al3, bh4) | 0;\n mid = mid + Math.imul(ah3, bl4) | 0;\n hi = hi + Math.imul(ah3, bh4) | 0;\n lo = lo + Math.imul(al2, bl5) | 0;\n mid = mid + Math.imul(al2, bh5) | 0;\n mid = mid + Math.imul(ah2, bl5) | 0;\n hi = hi + Math.imul(ah2, bh5) | 0;\n lo = lo + Math.imul(al1, bl6) | 0;\n mid = mid + Math.imul(al1, bh6) | 0;\n mid = mid + Math.imul(ah1, bl6) | 0;\n hi = hi + Math.imul(ah1, bh6) | 0;\n lo = lo + Math.imul(al0, bl7) | 0;\n mid = mid + Math.imul(al0, bh7) | 0;\n mid = mid + Math.imul(ah0, bl7) | 0;\n hi = hi + Math.imul(ah0, bh7) | 0;\n var w7 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = mid + Math.imul(ah8, bl0) | 0;\n hi = Math.imul(ah8, bh0);\n lo = lo + Math.imul(al7, bl1) | 0;\n mid = mid + Math.imul(al7, bh1) | 0;\n mid = mid + Math.imul(ah7, bl1) | 0;\n hi = hi + Math.imul(ah7, bh1) | 0;\n lo = lo + Math.imul(al6, bl2) | 0;\n mid = mid + Math.imul(al6, bh2) | 0;\n mid = mid + Math.imul(ah6, bl2) | 0;\n hi = hi + Math.imul(ah6, bh2) | 0;\n lo = lo + Math.imul(al5, bl3) | 0;\n mid = mid + Math.imul(al5, bh3) | 0;\n mid = mid + Math.imul(ah5, bl3) | 0;\n hi = hi + Math.imul(ah5, bh3) | 0;\n lo = lo + Math.imul(al4, bl4) | 0;\n mid = mid + Math.imul(al4, bh4) | 0;\n mid = mid + Math.imul(ah4, bl4) | 0;\n hi = hi + Math.imul(ah4, bh4) | 0;\n lo = lo + Math.imul(al3, bl5) | 0;\n mid = mid + Math.imul(al3, bh5) | 0;\n mid = mid + Math.imul(ah3, bl5) | 0;\n hi = hi + Math.imul(ah3, bh5) | 0;\n lo = lo + Math.imul(al2, bl6) | 0;\n mid = mid + Math.imul(al2, bh6) | 0;\n mid = mid + Math.imul(ah2, bl6) | 0;\n hi = hi + Math.imul(ah2, bh6) | 0;\n lo = lo + Math.imul(al1, bl7) | 0;\n mid = mid + Math.imul(al1, bh7) | 0;\n mid = mid + Math.imul(ah1, bl7) | 0;\n hi = hi + Math.imul(ah1, bh7) | 0;\n lo = lo + Math.imul(al0, bl8) | 0;\n mid = mid + Math.imul(al0, bh8) | 0;\n mid = mid + Math.imul(ah0, bl8) | 0;\n hi = hi + Math.imul(ah0, bh8) | 0;\n var w8 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = mid + Math.imul(ah9, bl0) | 0;\n hi = Math.imul(ah9, bh0);\n lo = lo + Math.imul(al8, bl1) | 0;\n mid = mid + Math.imul(al8, bh1) | 0;\n mid = mid + Math.imul(ah8, bl1) | 0;\n hi = hi + Math.imul(ah8, bh1) | 0;\n lo = lo + Math.imul(al7, bl2) | 0;\n mid = mid + Math.imul(al7, bh2) | 0;\n mid = mid + Math.imul(ah7, bl2) | 0;\n hi = hi + Math.imul(ah7, bh2) | 0;\n lo = lo + Math.imul(al6, bl3) | 0;\n mid = mid + Math.imul(al6, bh3) | 0;\n mid = mid + Math.imul(ah6, bl3) | 0;\n hi = hi + Math.imul(ah6, bh3) | 0;\n lo = lo + Math.imul(al5, bl4) | 0;\n mid = mid + Math.imul(al5, bh4) | 0;\n mid = mid + Math.imul(ah5, bl4) | 0;\n hi = hi + Math.imul(ah5, bh4) | 0;\n lo = lo + Math.imul(al4, bl5) | 0;\n mid = mid + Math.imul(al4, bh5) | 0;\n mid = mid + Math.imul(ah4, bl5) | 0;\n hi = hi + Math.imul(ah4, bh5) | 0;\n lo = lo + Math.imul(al3, bl6) | 0;\n mid = mid + Math.imul(al3, bh6) | 0;\n mid = mid + Math.imul(ah3, bl6) | 0;\n hi = hi + Math.imul(ah3, bh6) | 0;\n lo = lo + Math.imul(al2, bl7) | 0;\n mid = mid + Math.imul(al2, bh7) | 0;\n mid = mid + Math.imul(ah2, bl7) | 0;\n hi = hi + Math.imul(ah2, bh7) | 0;\n lo = lo + Math.imul(al1, bl8) | 0;\n mid = mid + Math.imul(al1, bh8) | 0;\n mid = mid + Math.imul(ah1, bl8) | 0;\n hi = hi + Math.imul(ah1, bh8) | 0;\n lo = lo + Math.imul(al0, bl9) | 0;\n mid = mid + Math.imul(al0, bh9) | 0;\n mid = mid + Math.imul(ah0, bl9) | 0;\n hi = hi + Math.imul(ah0, bh9) | 0;\n var w9 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = mid + Math.imul(ah9, bl1) | 0;\n hi = Math.imul(ah9, bh1);\n lo = lo + Math.imul(al8, bl2) | 0;\n mid = mid + Math.imul(al8, bh2) | 0;\n mid = mid + Math.imul(ah8, bl2) | 0;\n hi = hi + Math.imul(ah8, bh2) | 0;\n lo = lo + Math.imul(al7, bl3) | 0;\n mid = mid + Math.imul(al7, bh3) | 0;\n mid = mid + Math.imul(ah7, bl3) | 0;\n hi = hi + Math.imul(ah7, bh3) | 0;\n lo = lo + Math.imul(al6, bl4) | 0;\n mid = mid + Math.imul(al6, bh4) | 0;\n mid = mid + Math.imul(ah6, bl4) | 0;\n hi = hi + Math.imul(ah6, bh4) | 0;\n lo = lo + Math.imul(al5, bl5) | 0;\n mid = mid + Math.imul(al5, bh5) | 0;\n mid = mid + Math.imul(ah5, bl5) | 0;\n hi = hi + Math.imul(ah5, bh5) | 0;\n lo = lo + Math.imul(al4, bl6) | 0;\n mid = mid + Math.imul(al4, bh6) | 0;\n mid = mid + Math.imul(ah4, bl6) | 0;\n hi = hi + Math.imul(ah4, bh6) | 0;\n lo = lo + Math.imul(al3, bl7) | 0;\n mid = mid + Math.imul(al3, bh7) | 0;\n mid = mid + Math.imul(ah3, bl7) | 0;\n hi = hi + Math.imul(ah3, bh7) | 0;\n lo = lo + Math.imul(al2, bl8) | 0;\n mid = mid + Math.imul(al2, bh8) | 0;\n mid = mid + Math.imul(ah2, bl8) | 0;\n hi = hi + Math.imul(ah2, bh8) | 0;\n lo = lo + Math.imul(al1, bl9) | 0;\n mid = mid + Math.imul(al1, bh9) | 0;\n mid = mid + Math.imul(ah1, bl9) | 0;\n hi = hi + Math.imul(ah1, bh9) | 0;\n var w10 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = mid + Math.imul(ah9, bl2) | 0;\n hi = Math.imul(ah9, bh2);\n lo = lo + Math.imul(al8, bl3) | 0;\n mid = mid + Math.imul(al8, bh3) | 0;\n mid = mid + Math.imul(ah8, bl3) | 0;\n hi = hi + Math.imul(ah8, bh3) | 0;\n lo = lo + Math.imul(al7, bl4) | 0;\n mid = mid + Math.imul(al7, bh4) | 0;\n mid = mid + Math.imul(ah7, bl4) | 0;\n hi = hi + Math.imul(ah7, bh4) | 0;\n lo = lo + Math.imul(al6, bl5) | 0;\n mid = mid + Math.imul(al6, bh5) | 0;\n mid = mid + Math.imul(ah6, bl5) | 0;\n hi = hi + Math.imul(ah6, bh5) | 0;\n lo = lo + Math.imul(al5, bl6) | 0;\n mid = mid + Math.imul(al5, bh6) | 0;\n mid = mid + Math.imul(ah5, bl6) | 0;\n hi = hi + Math.imul(ah5, bh6) | 0;\n lo = lo + Math.imul(al4, bl7) | 0;\n mid = mid + Math.imul(al4, bh7) | 0;\n mid = mid + Math.imul(ah4, bl7) | 0;\n hi = hi + Math.imul(ah4, bh7) | 0;\n lo = lo + Math.imul(al3, bl8) | 0;\n mid = mid + Math.imul(al3, bh8) | 0;\n mid = mid + Math.imul(ah3, bl8) | 0;\n hi = hi + Math.imul(ah3, bh8) | 0;\n lo = lo + Math.imul(al2, bl9) | 0;\n mid = mid + Math.imul(al2, bh9) | 0;\n mid = mid + Math.imul(ah2, bl9) | 0;\n hi = hi + Math.imul(ah2, bh9) | 0;\n var w11 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = mid + Math.imul(ah9, bl3) | 0;\n hi = Math.imul(ah9, bh3);\n lo = lo + Math.imul(al8, bl4) | 0;\n mid = mid + Math.imul(al8, bh4) | 0;\n mid = mid + Math.imul(ah8, bl4) | 0;\n hi = hi + Math.imul(ah8, bh4) | 0;\n lo = lo + Math.imul(al7, bl5) | 0;\n mid = mid + Math.imul(al7, bh5) | 0;\n mid = mid + Math.imul(ah7, bl5) | 0;\n hi = hi + Math.imul(ah7, bh5) | 0;\n lo = lo + Math.imul(al6, bl6) | 0;\n mid = mid + Math.imul(al6, bh6) | 0;\n mid = mid + Math.imul(ah6, bl6) | 0;\n hi = hi + Math.imul(ah6, bh6) | 0;\n lo = lo + Math.imul(al5, bl7) | 0;\n mid = mid + Math.imul(al5, bh7) | 0;\n mid = mid + Math.imul(ah5, bl7) | 0;\n hi = hi + Math.imul(ah5, bh7) | 0;\n lo = lo + Math.imul(al4, bl8) | 0;\n mid = mid + Math.imul(al4, bh8) | 0;\n mid = mid + Math.imul(ah4, bl8) | 0;\n hi = hi + Math.imul(ah4, bh8) | 0;\n lo = lo + Math.imul(al3, bl9) | 0;\n mid = mid + Math.imul(al3, bh9) | 0;\n mid = mid + Math.imul(ah3, bl9) | 0;\n hi = hi + Math.imul(ah3, bh9) | 0;\n var w12 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = mid + Math.imul(ah9, bl4) | 0;\n hi = Math.imul(ah9, bh4);\n lo = lo + Math.imul(al8, bl5) | 0;\n mid = mid + Math.imul(al8, bh5) | 0;\n mid = mid + Math.imul(ah8, bl5) | 0;\n hi = hi + Math.imul(ah8, bh5) | 0;\n lo = lo + Math.imul(al7, bl6) | 0;\n mid = mid + Math.imul(al7, bh6) | 0;\n mid = mid + Math.imul(ah7, bl6) | 0;\n hi = hi + Math.imul(ah7, bh6) | 0;\n lo = lo + Math.imul(al6, bl7) | 0;\n mid = mid + Math.imul(al6, bh7) | 0;\n mid = mid + Math.imul(ah6, bl7) | 0;\n hi = hi + Math.imul(ah6, bh7) | 0;\n lo = lo + Math.imul(al5, bl8) | 0;\n mid = mid + Math.imul(al5, bh8) | 0;\n mid = mid + Math.imul(ah5, bl8) | 0;\n hi = hi + Math.imul(ah5, bh8) | 0;\n lo = lo + Math.imul(al4, bl9) | 0;\n mid = mid + Math.imul(al4, bh9) | 0;\n mid = mid + Math.imul(ah4, bl9) | 0;\n hi = hi + Math.imul(ah4, bh9) | 0;\n var w13 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = mid + Math.imul(ah9, bl5) | 0;\n hi = Math.imul(ah9, bh5);\n lo = lo + Math.imul(al8, bl6) | 0;\n mid = mid + Math.imul(al8, bh6) | 0;\n mid = mid + Math.imul(ah8, bl6) | 0;\n hi = hi + Math.imul(ah8, bh6) | 0;\n lo = lo + Math.imul(al7, bl7) | 0;\n mid = mid + Math.imul(al7, bh7) | 0;\n mid = mid + Math.imul(ah7, bl7) | 0;\n hi = hi + Math.imul(ah7, bh7) | 0;\n lo = lo + Math.imul(al6, bl8) | 0;\n mid = mid + Math.imul(al6, bh8) | 0;\n mid = mid + Math.imul(ah6, bl8) | 0;\n hi = hi + Math.imul(ah6, bh8) | 0;\n lo = lo + Math.imul(al5, bl9) | 0;\n mid = mid + Math.imul(al5, bh9) | 0;\n mid = mid + Math.imul(ah5, bl9) | 0;\n hi = hi + Math.imul(ah5, bh9) | 0;\n var w14 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = mid + Math.imul(ah9, bl6) | 0;\n hi = Math.imul(ah9, bh6);\n lo = lo + Math.imul(al8, bl7) | 0;\n mid = mid + Math.imul(al8, bh7) | 0;\n mid = mid + Math.imul(ah8, bl7) | 0;\n hi = hi + Math.imul(ah8, bh7) | 0;\n lo = lo + Math.imul(al7, bl8) | 0;\n mid = mid + Math.imul(al7, bh8) | 0;\n mid = mid + Math.imul(ah7, bl8) | 0;\n hi = hi + Math.imul(ah7, bh8) | 0;\n lo = lo + Math.imul(al6, bl9) | 0;\n mid = mid + Math.imul(al6, bh9) | 0;\n mid = mid + Math.imul(ah6, bl9) | 0;\n hi = hi + Math.imul(ah6, bh9) | 0;\n var w15 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = mid + Math.imul(ah9, bl7) | 0;\n hi = Math.imul(ah9, bh7);\n lo = lo + Math.imul(al8, bl8) | 0;\n mid = mid + Math.imul(al8, bh8) | 0;\n mid = mid + Math.imul(ah8, bl8) | 0;\n hi = hi + Math.imul(ah8, bh8) | 0;\n lo = lo + Math.imul(al7, bl9) | 0;\n mid = mid + Math.imul(al7, bh9) | 0;\n mid = mid + Math.imul(ah7, bl9) | 0;\n hi = hi + Math.imul(ah7, bh9) | 0;\n var w16 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = mid + Math.imul(ah9, bl8) | 0;\n hi = Math.imul(ah9, bh8);\n lo = lo + Math.imul(al8, bl9) | 0;\n mid = mid + Math.imul(al8, bh9) | 0;\n mid = mid + Math.imul(ah8, bl9) | 0;\n hi = hi + Math.imul(ah8, bh9) | 0;\n var w17 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = mid + Math.imul(ah9, bl9) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n\n return out;\n }; // Polyfill comb\n\n\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo(self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n var carry = 0;\n var hncarry = 0;\n\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n var lo = r & 0x3ffffff;\n ncarry = ncarry + (r / 0x4000000 | 0) | 0;\n lo = lo + rword | 0;\n rword = lo & 0x3ffffff;\n ncarry = ncarry + (lo >>> 26) | 0;\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo(self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo(num, out) {\n var res;\n var len = this.length + num.length;\n\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n }; // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n\n function FFTM(x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT(N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n }; // Returns binary-reversed representation of `x`\n\n\n FFTM.prototype.revBin = function revBin(x, l, N) {\n if (x === 0 || x === N - 1) return x;\n var rb = 0;\n\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << l - i - 1;\n x >>= 1;\n }\n\n return rb;\n }; // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n\n\n FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n var rx = rtwdf_ * ro - itwdf_ * io;\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n /* jshint maxdepth : false */\n\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b(n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate(rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n t = iws[i];\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b(ws, N) {\n var carry = 0;\n\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry;\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {\n var carry = 0;\n\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n rws[2 * i] = carry & 0x1fff;\n carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff;\n carry = carry >>> 13;\n } // Pad with zeroes\n\n\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub(N) {\n var ph = new Array(N);\n\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp(x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n var rmws = out.words;\n rmws.length = N;\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n }; // Multiply `this` by `num`\n\n\n BN.prototype.mul = function mul(num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n }; // Multiply employing FFT\n\n\n BN.prototype.mulf = function mulf(num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n }; // In-place Multiplication\n\n\n BN.prototype.imul = function imul(num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln(num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n assert(typeof num === 'number');\n assert(num < 0x4000000); // Carry\n\n var carry = 0;\n\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += w / 0x4000000 | 0; // NOTE: lo is 27bit maximum\n\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln(num) {\n return this.clone().imuln(num);\n }; // `this` * `this`\n\n\n BN.prototype.sqr = function sqr() {\n return this.mul(this);\n }; // `this` * `this` in-place\n\n\n BN.prototype.isqr = function isqr() {\n return this.imul(this.clone());\n }; // Math.pow(`this`, `num`)\n\n\n BN.prototype.pow = function pow(num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n var res = this;\n\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n res = res.mul(q);\n }\n }\n\n return res;\n }; // Shift-left in-place\n\n\n BN.prototype.iushln = function iushln(bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = 0x3ffffff >>> 26 - r << 26 - r;\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = (this.words[i] | 0) - newCarry << r;\n this.words[i] = c | carry;\n carry = newCarry >>> 26 - r;\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln(bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n }; // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n\n\n BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n\n if (hint) {\n h = (hint - hint % 26) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n var maskedWords = extended;\n h -= s;\n h = Math.max(0, h); // Extended mode, copy masked part\n\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n\n maskedWords.length = s;\n }\n\n if (s === 0) {// No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = carry << 26 - r | word >>> r;\n carry = word & mask;\n } // Push carried bits as a mask\n\n\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn(bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n }; // Shift-left\n\n\n BN.prototype.shln = function shln(bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln(bits) {\n return this.clone().iushln(bits);\n }; // Shift-right\n\n\n BN.prototype.shrn = function shrn(bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn(bits) {\n return this.clone().iushrn(bits);\n }; // Test if n bit is set\n\n\n BN.prototype.testn = function testn(bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) return false; // Check bit and return\n\n var w = this.words[s];\n return !!(w & q);\n }; // Return only lowers bits of number (in-place)\n\n\n BN.prototype.imaskn = function imaskn(bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n }; // Return only lowers bits of number\n\n\n BN.prototype.maskn = function maskn(bits) {\n return this.clone().imaskn(bits);\n }; // Add plain number `num` to `this`\n\n\n BN.prototype.iaddn = function iaddn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num); // Possible sign change\n\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n } // Add without checks\n\n\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn(num) {\n this.words[0] += num; // Carry\n\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n\n this.length = Math.max(this.length, i + 1);\n return this;\n }; // Subtract plain number `num` from `this`\n\n\n BN.prototype.isubn = function isubn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn(num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn(num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs() {\n this.negative = 0;\n return this;\n };\n\n BN.prototype.abs = function abs() {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - (right / 0x4000000 | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip(); // Subtraction overflow\n\n assert(carry === -1);\n carry = 0;\n\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n\n this.negative = 1;\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv(num, mode) {\n var shift = this.length - num.length;\n var a = this.clone();\n var b = num; // Normalize\n\n var bhi = b.words[b.length - 1] | 0;\n\n var bhiBits = this._countBits(bhi);\n\n shift = 26 - bhiBits;\n\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n } // Initialize quotient\n\n\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n\n if (diff.negative === 0) {\n a = diff;\n\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n\n qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n\n a._ishlnsubmul(b, 1, j);\n\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n\n if (q) {\n q.words[j] = qj;\n }\n }\n\n if (q) {\n q._strip();\n }\n\n a._strip(); // Denormalize\n\n\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n }; // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n\n\n BN.prototype.divmod = function divmod(num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n } // Both numbers are positive at this point\n // Strip both numbers to approximate shift value\n\n\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n } // Very short reduction\n\n\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n }; // Find `this` / `num`\n\n\n BN.prototype.div = function div(num) {\n return this.divmod(num, 'div', false).div;\n }; // Find `this` % `num`\n\n\n BN.prototype.mod = function mod(num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod(num) {\n return this.divmod(num, 'mod', true).mod;\n }; // Find Round(`this` / `num`)\n\n\n BN.prototype.divRound = function divRound(num) {\n var dm = this.divmod(num); // Fast case - exact division\n\n if (dm.mod.isZero()) return dm.div;\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half); // Round down\n\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn(num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n var acc = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n }; // WARNING: DEPRECATED\n\n\n BN.prototype.modn = function modn(num) {\n return this.modrn(num);\n }; // In-place division by number\n\n\n BN.prototype.idivn = function idivn(num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n assert(num <= 0x3ffffff);\n var carry = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = w / num | 0;\n carry = w % num;\n }\n\n this._strip();\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn(num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n } // A * x + B * y = x\n\n\n var A = new BN(1);\n var B = new BN(0); // C * x + D * y = y\n\n var C = new BN(0);\n var D = new BN(1);\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {\n ;\n }\n\n if (i > 0) {\n x.iushrn(i);\n\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {\n ;\n }\n\n if (j > 0) {\n y.iushrn(j);\n\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n }; // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n\n\n BN.prototype._invmp = function _invmp(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {\n ;\n }\n\n if (i > 0) {\n a.iushrn(i);\n\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {\n ;\n }\n\n if (j > 0) {\n b.iushrn(j);\n\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd(num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0; // Remove common factor of two\n\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n }; // Invert number in the field F(num)\n\n\n BN.prototype.invm = function invm(num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven() {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd() {\n return (this.words[0] & 1) === 1;\n }; // And first word and num\n\n\n BN.prototype.andln = function andln(num) {\n return this.words[0] & num;\n }; // Increment at the bit position in-line\n\n\n BN.prototype.bincn = function bincn(bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) {\n this._expand(s + 1);\n\n this.words[s] |= q;\n return this;\n } // Add bit and propagate, if needed\n\n\n var carry = q;\n\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.isZero = function isZero() {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn(num) {\n var negative = num < 0;\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n\n\n BN.prototype.cmp = function cmp(num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Unsigned comparison\n\n\n BN.prototype.ucmp = function ucmp(num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n var res = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n if (a === b) continue;\n\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n\n break;\n }\n\n return res;\n };\n\n BN.prototype.gtn = function gtn(num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt(num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten(num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte(num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn(num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt(num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten(num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte(num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn(num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq(num) {\n return this.cmp(num) === 0;\n }; //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n\n\n BN.red = function red(num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed(ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed() {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed(ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed(ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd(num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd(num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub(num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub(num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl(num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul(num) {\n assert(this.red, 'redMul works only with red numbers');\n\n this.red._verify2(this, num);\n\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul(num) {\n assert(this.red, 'redMul works only with red numbers');\n\n this.red._verify2(this, num);\n\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr() {\n assert(this.red, 'redSqr works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr() {\n assert(this.red, 'redISqr works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.isqr(this);\n }; // Square root over p\n\n\n BN.prototype.redSqrt = function redSqrt() {\n assert(this.red, 'redSqrt works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm() {\n assert(this.red, 'redInvm works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.invm(this);\n }; // Return negative clone of `this` % `red modulo`\n\n\n BN.prototype.redNeg = function redNeg() {\n assert(this.red, 'redNeg works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow(num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n\n this.red._verify1(this);\n\n return this.red.pow(this, num);\n }; // Prime numbers with efficient reduction\n\n\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n }; // Pseudo-Mersenne prime\n\n function MPrime(name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp() {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce(num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split(input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK(num) {\n return num.imul(this.k);\n };\n\n function K256() {\n MPrime.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n\n inherits(K256, MPrime);\n\n K256.prototype.split = function split(input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n var outLen = Math.min(input.length, 9);\n\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n } // Shift by 9 limbs\n\n\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = (next & mask) << 4 | prev >>> 22;\n prev = next;\n }\n\n prev >>>= 22;\n input.words[i - 10] = prev;\n\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK(num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n var lo = 0;\n\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + (lo / 0x4000000 | 0);\n } // Fast length reduction\n\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n\n return num;\n };\n\n function P224() {\n MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n\n inherits(P224, MPrime);\n\n function P192() {\n MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n\n inherits(P192, MPrime);\n\n function P25519() {\n // 2 ^ 255 - 19\n MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK(num) {\n // K = 0x13\n var carry = 0;\n\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n num.words[i] = lo;\n carry = hi;\n }\n\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n\n return num;\n }; // Exported mostly for testing purposes, use plain name instead\n\n\n BN._prime = function prime(name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n var prime;\n\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n\n primes[name] = prime;\n return prime;\n }; //\n // Base reduction engine\n //\n\n\n function Red(m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1(a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2(a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red, 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod(a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg(a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add(a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd(a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n\n return res;\n };\n\n Red.prototype.sub = function sub(a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub(a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res;\n };\n\n Red.prototype.shl = function shl(a, num) {\n this._verify1(a);\n\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr(a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr(a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt(a) {\n if (a.isZero()) return a.clone();\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1); // Fast case\n\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n var q = this.m.subn(1);\n var s = 0;\n\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n\n assert(!q.isZero());\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg(); // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n\n while (t.cmp(one) !== 0) {\n var tmp = t;\n\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm(a) {\n var inv = a._invmp(this.m);\n\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow(a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n\n for (var j = start - 1; j >= 0; j--) {\n var bit = word >> j & 1;\n\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo(num) {\n var r = num.umod(this.m);\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom(num) {\n var res = num.clone();\n res.red = null;\n return res;\n }; //\n // Montgomery method engine\n //\n\n\n BN.mont = function mont(num) {\n return new Mont(num);\n };\n\n function Mont(m) {\n Red.call(this, m);\n this.shift = this.m.bitLength();\n\n if (this.shift % 26 !== 0) {\n this.shift += 26 - this.shift % 26;\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo(num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom(num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul(a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul(a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm(a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})( false || module, this);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/bn.js/lib/bn.js?"); | ||
| 322 | + | ||
| 323 | +/***/ }), | ||
| 324 | + | ||
| 325 | +/***/ "./node_modules/brorand/index.js": | ||
| 326 | +/*!***************************************!*\ | ||
| 327 | + !*** ./node_modules/brorand/index.js ***! | ||
| 328 | + \***************************************/ | ||
| 329 | +/*! no static exports found */ | ||
| 330 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 331 | + | ||
| 332 | +eval("var r;\n\nmodule.exports = function rand(len) {\n if (!r) r = new Rand(null);\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\n\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n}; // Emulate crypto API using randy\n\n\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes) return this.rand.getBytes(n);\n var res = new Uint8Array(n);\n\n for (var i = 0; i < res.length; i++) {\n res[i] = this.rand.getByte();\n }\n\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n }; // Safari's WebWorkers do not have `crypto`\n\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function () {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = __webpack_require__(/*! crypto */ 6);\n\n if (typeof crypto.randomBytes !== 'function') throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {}\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/brorand/index.js?"); | ||
| 333 | + | ||
| 334 | +/***/ }), | ||
| 335 | + | ||
| 336 | +/***/ "./node_modules/browserify-aes/aes.js": | ||
| 337 | +/*!********************************************!*\ | ||
| 338 | + !*** ./node_modules/browserify-aes/aes.js ***! | ||
| 339 | + \********************************************/ | ||
| 340 | +/*! no static exports found */ | ||
| 341 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 342 | + | ||
| 343 | +eval("// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nfunction asUInt32Array(buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n var len = buf.length / 4 | 0;\n var out = new Array(len);\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4);\n }\n\n return out;\n}\n\nfunction scrubVec(v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0;\n }\n}\n\nfunction cryptBlock(M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0];\n var SUB_MIX1 = SUB_MIX[1];\n var SUB_MIX2 = SUB_MIX[2];\n var SUB_MIX3 = SUB_MIX[3];\n var s0 = M[0] ^ keySchedule[0];\n var s1 = M[1] ^ keySchedule[1];\n var s2 = M[2] ^ keySchedule[2];\n var s3 = M[3] ^ keySchedule[3];\n var t0, t1, t2, t3;\n var ksRow = 4;\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[s1 >>> 16 & 0xff] ^ SUB_MIX2[s2 >>> 8 & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++];\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[s2 >>> 16 & 0xff] ^ SUB_MIX2[s3 >>> 8 & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++];\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[s3 >>> 16 & 0xff] ^ SUB_MIX2[s0 >>> 8 & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++];\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[s0 >>> 16 & 0xff] ^ SUB_MIX2[s1 >>> 8 & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++];\n s0 = t0;\n s1 = t1;\n s2 = t2;\n s3 = t3;\n }\n\n t0 = (SBOX[s0 >>> 24] << 24 | SBOX[s1 >>> 16 & 0xff] << 16 | SBOX[s2 >>> 8 & 0xff] << 8 | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n t1 = (SBOX[s1 >>> 24] << 24 | SBOX[s2 >>> 16 & 0xff] << 16 | SBOX[s3 >>> 8 & 0xff] << 8 | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n t2 = (SBOX[s2 >>> 24] << 24 | SBOX[s3 >>> 16 & 0xff] << 16 | SBOX[s0 >>> 8 & 0xff] << 8 | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n t3 = (SBOX[s3 >>> 24] << 24 | SBOX[s0 >>> 16 & 0xff] << 16 | SBOX[s1 >>> 8 & 0xff] << 8 | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n t0 = t0 >>> 0;\n t1 = t1 >>> 0;\n t2 = t2 >>> 0;\n t3 = t3 >>> 0;\n return [t0, t1, t2, t3];\n} // AES constants\n\n\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\nvar G = function () {\n // Compute double table\n var d = new Array(256);\n\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1;\n } else {\n d[j] = j << 1 ^ 0x11b;\n }\n }\n\n var SBOX = [];\n var INV_SBOX = [];\n var SUB_MIX = [[], [], [], []];\n var INV_SUB_MIX = [[], [], [], []]; // Walk GF(2^8)\n\n var x = 0;\n var xi = 0;\n\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4;\n sx = sx >>> 8 ^ sx & 0xff ^ 0x63;\n SBOX[x] = sx;\n INV_SBOX[sx] = x; // Compute multiplication\n\n var x2 = d[x];\n var x4 = d[x2];\n var x8 = d[x4]; // Compute sub bytes, mix columns tables\n\n var t = d[sx] * 0x101 ^ sx * 0x1010100;\n SUB_MIX[0][x] = t << 24 | t >>> 8;\n SUB_MIX[1][x] = t << 16 | t >>> 16;\n SUB_MIX[2][x] = t << 8 | t >>> 24;\n SUB_MIX[3][x] = t; // Compute inv sub bytes, inv mix columns tables\n\n t = x8 * 0x1010101 ^ x4 * 0x10001 ^ x2 * 0x101 ^ x * 0x1010100;\n INV_SUB_MIX[0][sx] = t << 24 | t >>> 8;\n INV_SUB_MIX[1][sx] = t << 16 | t >>> 16;\n INV_SUB_MIX[2][sx] = t << 8 | t >>> 24;\n INV_SUB_MIX[3][sx] = t;\n\n if (x === 0) {\n x = xi = 1;\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]];\n xi ^= d[d[xi]];\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n };\n}();\n\nfunction AES(key) {\n this._key = asUInt32Array(key);\n\n this._reset();\n}\n\nAES.blockSize = 4 * 4;\nAES.keySize = 256 / 8;\nAES.prototype.blockSize = AES.blockSize;\nAES.prototype.keySize = AES.keySize;\n\nAES.prototype._reset = function () {\n var keyWords = this._key;\n var keySize = keyWords.length;\n var nRounds = keySize + 6;\n var ksRows = (nRounds + 1) * 4;\n var keySchedule = [];\n\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k];\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1];\n\n if (k % keySize === 0) {\n t = t << 8 | t >>> 24;\n t = G.SBOX[t >>> 24] << 24 | G.SBOX[t >>> 16 & 0xff] << 16 | G.SBOX[t >>> 8 & 0xff] << 8 | G.SBOX[t & 0xff];\n t ^= RCON[k / keySize | 0] << 24;\n } else if (keySize > 6 && k % keySize === 4) {\n t = G.SBOX[t >>> 24] << 24 | G.SBOX[t >>> 16 & 0xff] << 16 | G.SBOX[t >>> 8 & 0xff] << 8 | G.SBOX[t & 0xff];\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t;\n }\n\n var invKeySchedule = [];\n\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik;\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)];\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt;\n } else {\n invKeySchedule[ik] = G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^ G.INV_SUB_MIX[1][G.SBOX[tt >>> 16 & 0xff]] ^ G.INV_SUB_MIX[2][G.SBOX[tt >>> 8 & 0xff]] ^ G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]];\n }\n }\n\n this._nRounds = nRounds;\n this._keySchedule = keySchedule;\n this._invKeySchedule = invKeySchedule;\n};\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M);\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds);\n};\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M);\n var buf = Buffer.allocUnsafe(16);\n buf.writeUInt32BE(out[0], 0);\n buf.writeUInt32BE(out[1], 4);\n buf.writeUInt32BE(out[2], 8);\n buf.writeUInt32BE(out[3], 12);\n return buf;\n};\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M); // swap\n\n var m1 = M[1];\n M[1] = M[3];\n M[3] = m1;\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds);\n var buf = Buffer.allocUnsafe(16);\n buf.writeUInt32BE(out[0], 0);\n buf.writeUInt32BE(out[3], 4);\n buf.writeUInt32BE(out[2], 8);\n buf.writeUInt32BE(out[1], 12);\n return buf;\n};\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule);\n scrubVec(this._invKeySchedule);\n scrubVec(this._key);\n};\n\nmodule.exports.AES = AES;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-aes/aes.js?"); | ||
| 344 | + | ||
| 345 | +/***/ }), | ||
| 346 | + | ||
| 347 | +/***/ "./node_modules/browserify-aes/authCipher.js": | ||
| 348 | +/*!***************************************************!*\ | ||
| 349 | + !*** ./node_modules/browserify-aes/authCipher.js ***! | ||
| 350 | + \***************************************************/ | ||
| 351 | +/*! no static exports found */ | ||
| 352 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 353 | + | ||
| 354 | +eval("var aes = __webpack_require__(/*! ./aes */ \"./node_modules/browserify-aes/aes.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar Transform = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar GHASH = __webpack_require__(/*! ./ghash */ \"./node_modules/browserify-aes/ghash.js\");\n\nvar xor = __webpack_require__(/*! buffer-xor */ \"./node_modules/buffer-xor/index.js\");\n\nvar incr32 = __webpack_require__(/*! ./incr32 */ \"./node_modules/browserify-aes/incr32.js\");\n\nfunction xorTest(a, b) {\n var out = 0;\n if (a.length !== b.length) out++;\n var len = Math.min(a.length, b.length);\n\n for (var i = 0; i < len; ++i) {\n out += a[i] ^ b[i];\n }\n\n return out;\n}\n\nfunction calcIv(self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])]);\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])]);\n }\n\n var ghash = new GHASH(ck);\n var len = iv.length;\n var toPad = len % 16;\n ghash.update(iv);\n\n if (toPad) {\n toPad = 16 - toPad;\n ghash.update(Buffer.alloc(toPad, 0));\n }\n\n ghash.update(Buffer.alloc(8, 0));\n var ivBits = len * 8;\n var tail = Buffer.alloc(8);\n tail.writeUIntBE(ivBits, 0, 8);\n ghash.update(tail);\n self._finID = ghash.state;\n var out = Buffer.from(self._finID);\n incr32(out);\n return out;\n}\n\nfunction StreamCipher(mode, key, iv, decrypt) {\n Transform.call(this);\n var h = Buffer.alloc(4, 0);\n this._cipher = new aes.AES(key);\n\n var ck = this._cipher.encryptBlock(h);\n\n this._ghash = new GHASH(ck);\n iv = calcIv(this, iv, ck);\n this._prev = Buffer.from(iv);\n this._cache = Buffer.allocUnsafe(0);\n this._secCache = Buffer.allocUnsafe(0);\n this._decrypt = decrypt;\n this._alen = 0;\n this._len = 0;\n this._mode = mode;\n this._authTag = null;\n this._called = false;\n}\n\ninherits(StreamCipher, Transform);\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - this._alen % 16;\n\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0);\n\n this._ghash.update(rump);\n }\n }\n\n this._called = true;\n\n var out = this._mode.encrypt(this, chunk);\n\n if (this._decrypt) {\n this._ghash.update(chunk);\n } else {\n this._ghash.update(out);\n }\n\n this._len += chunk.length;\n return out;\n};\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data');\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID));\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data');\n this._authTag = tag;\n\n this._cipher.scrub();\n};\n\nStreamCipher.prototype.getAuthTag = function getAuthTag() {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state');\n return this._authTag;\n};\n\nStreamCipher.prototype.setAuthTag = function setAuthTag(tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state');\n this._authTag = tag;\n};\n\nStreamCipher.prototype.setAAD = function setAAD(buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state');\n\n this._ghash.update(buf);\n\n this._alen += buf.length;\n};\n\nmodule.exports = StreamCipher;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-aes/authCipher.js?"); | ||
| 355 | + | ||
| 356 | +/***/ }), | ||
| 357 | + | ||
| 358 | +/***/ "./node_modules/browserify-aes/browser.js": | ||
| 359 | +/*!************************************************!*\ | ||
| 360 | + !*** ./node_modules/browserify-aes/browser.js ***! | ||
| 361 | + \************************************************/ | ||
| 362 | +/*! no static exports found */ | ||
| 363 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 364 | + | ||
| 365 | +eval("var ciphers = __webpack_require__(/*! ./encrypter */ \"./node_modules/browserify-aes/encrypter.js\");\n\nvar deciphers = __webpack_require__(/*! ./decrypter */ \"./node_modules/browserify-aes/decrypter.js\");\n\nvar modes = __webpack_require__(/*! ./modes/list.json */ \"./node_modules/browserify-aes/modes/list.json\");\n\nfunction getCiphers() {\n return Object.keys(modes);\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher;\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv;\nexports.createDecipher = exports.Decipher = deciphers.createDecipher;\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv;\nexports.listCiphers = exports.getCiphers = getCiphers;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-aes/browser.js?"); | ||
| 366 | + | ||
| 367 | +/***/ }), | ||
| 368 | + | ||
| 369 | +/***/ "./node_modules/browserify-aes/decrypter.js": | ||
| 370 | +/*!**************************************************!*\ | ||
| 371 | + !*** ./node_modules/browserify-aes/decrypter.js ***! | ||
| 372 | + \**************************************************/ | ||
| 373 | +/*! no static exports found */ | ||
| 374 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 375 | + | ||
| 376 | +eval("var AuthCipher = __webpack_require__(/*! ./authCipher */ \"./node_modules/browserify-aes/authCipher.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar MODES = __webpack_require__(/*! ./modes */ \"./node_modules/browserify-aes/modes/index.js\");\n\nvar StreamCipher = __webpack_require__(/*! ./streamCipher */ \"./node_modules/browserify-aes/streamCipher.js\");\n\nvar Transform = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\");\n\nvar aes = __webpack_require__(/*! ./aes */ \"./node_modules/browserify-aes/aes.js\");\n\nvar ebtk = __webpack_require__(/*! evp_bytestokey */ \"./node_modules/evp_bytestokey/index.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nfunction Decipher(mode, key, iv) {\n Transform.call(this);\n this._cache = new Splitter();\n this._last = void 0;\n this._cipher = new aes.AES(key);\n this._prev = Buffer.from(iv);\n this._mode = mode;\n this._autopadding = true;\n}\n\ninherits(Decipher, Transform);\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data);\n\n var chunk;\n var thing;\n var out = [];\n\n while (chunk = this._cache.get(this._autopadding)) {\n thing = this._mode.decrypt(this, chunk);\n out.push(thing);\n }\n\n return Buffer.concat(out);\n};\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush();\n\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk));\n } else if (chunk) {\n throw new Error('data not multiple of block length');\n }\n};\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo;\n return this;\n};\n\nfunction Splitter() {\n this.cache = Buffer.allocUnsafe(0);\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data]);\n};\n\nSplitter.prototype.get = function (autoPadding) {\n var out;\n\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16);\n this.cache = this.cache.slice(16);\n return out;\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16);\n this.cache = this.cache.slice(16);\n return out;\n }\n }\n\n return null;\n};\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache;\n};\n\nfunction unpad(last) {\n var padded = last[15];\n\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data');\n }\n\n var i = -1;\n\n while (++i < padded) {\n if (last[i + (16 - padded)] !== padded) {\n throw new Error('unable to decrypt data');\n }\n }\n\n if (padded === 16) return;\n return last.slice(0, 16 - padded);\n}\n\nfunction createDecipheriv(suite, password, iv) {\n var config = MODES[suite.toLowerCase()];\n if (!config) throw new TypeError('invalid suite type');\n if (typeof iv === 'string') iv = Buffer.from(iv);\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length);\n if (typeof password === 'string') password = Buffer.from(password);\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length);\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true);\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true);\n }\n\n return new Decipher(config.module, password, iv);\n}\n\nfunction createDecipher(suite, password) {\n var config = MODES[suite.toLowerCase()];\n if (!config) throw new TypeError('invalid suite type');\n var keys = ebtk(password, false, config.key, config.iv);\n return createDecipheriv(suite, keys.key, keys.iv);\n}\n\nexports.createDecipher = createDecipher;\nexports.createDecipheriv = createDecipheriv;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-aes/decrypter.js?"); | ||
| 377 | + | ||
| 378 | +/***/ }), | ||
| 379 | + | ||
| 380 | +/***/ "./node_modules/browserify-aes/encrypter.js": | ||
| 381 | +/*!**************************************************!*\ | ||
| 382 | + !*** ./node_modules/browserify-aes/encrypter.js ***! | ||
| 383 | + \**************************************************/ | ||
| 384 | +/*! no static exports found */ | ||
| 385 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 386 | + | ||
| 387 | +eval("var MODES = __webpack_require__(/*! ./modes */ \"./node_modules/browserify-aes/modes/index.js\");\n\nvar AuthCipher = __webpack_require__(/*! ./authCipher */ \"./node_modules/browserify-aes/authCipher.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar StreamCipher = __webpack_require__(/*! ./streamCipher */ \"./node_modules/browserify-aes/streamCipher.js\");\n\nvar Transform = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\");\n\nvar aes = __webpack_require__(/*! ./aes */ \"./node_modules/browserify-aes/aes.js\");\n\nvar ebtk = __webpack_require__(/*! evp_bytestokey */ \"./node_modules/evp_bytestokey/index.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nfunction Cipher(mode, key, iv) {\n Transform.call(this);\n this._cache = new Splitter();\n this._cipher = new aes.AES(key);\n this._prev = Buffer.from(iv);\n this._mode = mode;\n this._autopadding = true;\n}\n\ninherits(Cipher, Transform);\n\nCipher.prototype._update = function (data) {\n this._cache.add(data);\n\n var chunk;\n var thing;\n var out = [];\n\n while (chunk = this._cache.get()) {\n thing = this._mode.encrypt(this, chunk);\n out.push(thing);\n }\n\n return Buffer.concat(out);\n};\n\nvar PADDING = Buffer.alloc(16, 0x10);\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush();\n\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk);\n\n this._cipher.scrub();\n\n return chunk;\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub();\n\n throw new Error('data not multiple of block length');\n }\n};\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo;\n return this;\n};\n\nfunction Splitter() {\n this.cache = Buffer.allocUnsafe(0);\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data]);\n};\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16);\n this.cache = this.cache.slice(16);\n return out;\n }\n\n return null;\n};\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length;\n var padBuff = Buffer.allocUnsafe(len);\n var i = -1;\n\n while (++i < len) {\n padBuff.writeUInt8(len, i);\n }\n\n return Buffer.concat([this.cache, padBuff]);\n};\n\nfunction createCipheriv(suite, password, iv) {\n var config = MODES[suite.toLowerCase()];\n if (!config) throw new TypeError('invalid suite type');\n if (typeof password === 'string') password = Buffer.from(password);\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length);\n if (typeof iv === 'string') iv = Buffer.from(iv);\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length);\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv);\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv);\n }\n\n return new Cipher(config.module, password, iv);\n}\n\nfunction createCipher(suite, password) {\n var config = MODES[suite.toLowerCase()];\n if (!config) throw new TypeError('invalid suite type');\n var keys = ebtk(password, false, config.key, config.iv);\n return createCipheriv(suite, keys.key, keys.iv);\n}\n\nexports.createCipheriv = createCipheriv;\nexports.createCipher = createCipher;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-aes/encrypter.js?"); | ||
| 388 | + | ||
| 389 | +/***/ }), | ||
| 390 | + | ||
| 391 | +/***/ "./node_modules/browserify-aes/ghash.js": | ||
| 392 | +/*!**********************************************!*\ | ||
| 393 | + !*** ./node_modules/browserify-aes/ghash.js ***! | ||
| 394 | + \**********************************************/ | ||
| 395 | +/*! no static exports found */ | ||
| 396 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 397 | + | ||
| 398 | +eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar ZEROES = Buffer.alloc(16, 0);\n\nfunction toArray(buf) {\n return [buf.readUInt32BE(0), buf.readUInt32BE(4), buf.readUInt32BE(8), buf.readUInt32BE(12)];\n}\n\nfunction fromArray(out) {\n var buf = Buffer.allocUnsafe(16);\n buf.writeUInt32BE(out[0] >>> 0, 0);\n buf.writeUInt32BE(out[1] >>> 0, 4);\n buf.writeUInt32BE(out[2] >>> 0, 8);\n buf.writeUInt32BE(out[3] >>> 0, 12);\n return buf;\n}\n\nfunction GHASH(key) {\n this.h = key;\n this.state = Buffer.alloc(16, 0);\n this.cache = Buffer.allocUnsafe(0);\n} // from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\n\n\nGHASH.prototype.ghash = function (block) {\n var i = -1;\n\n while (++i < block.length) {\n this.state[i] ^= block[i];\n }\n\n this._multiply();\n};\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h);\n var Zi = [0, 0, 0, 0];\n var j, xi, lsbVi;\n var i = -1;\n\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & 1 << 7 - i % 8) !== 0;\n\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0];\n Zi[1] ^= Vi[1];\n Zi[2] ^= Vi[2];\n Zi[3] ^= Vi[3];\n } // Store the value of LSB(V_i)\n\n\n lsbVi = (Vi[3] & 1) !== 0; // V_i+1 = V_i >> 1\n\n for (j = 3; j > 0; j--) {\n Vi[j] = Vi[j] >>> 1 | (Vi[j - 1] & 1) << 31;\n }\n\n Vi[0] = Vi[0] >>> 1; // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n\n if (lsbVi) {\n Vi[0] = Vi[0] ^ 0xe1 << 24;\n }\n }\n\n this.state = fromArray(Zi);\n};\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf]);\n var chunk;\n\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16);\n this.cache = this.cache.slice(16);\n this.ghash(chunk);\n }\n};\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16));\n }\n\n this.ghash(fromArray([0, abl, 0, bl]));\n return this.state;\n};\n\nmodule.exports = GHASH;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-aes/ghash.js?"); | ||
| 399 | + | ||
| 400 | +/***/ }), | ||
| 401 | + | ||
| 402 | +/***/ "./node_modules/browserify-aes/incr32.js": | ||
| 403 | +/*!***********************************************!*\ | ||
| 404 | + !*** ./node_modules/browserify-aes/incr32.js ***! | ||
| 405 | + \***********************************************/ | ||
| 406 | +/*! no static exports found */ | ||
| 407 | +/***/ (function(module, exports) { | ||
| 408 | + | ||
| 409 | +eval("function incr32(iv) {\n var len = iv.length;\n var item;\n\n while (len--) {\n item = iv.readUInt8(len);\n\n if (item === 255) {\n iv.writeUInt8(0, len);\n } else {\n item++;\n iv.writeUInt8(item, len);\n break;\n }\n }\n}\n\nmodule.exports = incr32;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-aes/incr32.js?"); | ||
| 410 | + | ||
| 411 | +/***/ }), | ||
| 412 | + | ||
| 413 | +/***/ "./node_modules/browserify-aes/modes/cbc.js": | ||
| 414 | +/*!**************************************************!*\ | ||
| 415 | + !*** ./node_modules/browserify-aes/modes/cbc.js ***! | ||
| 416 | + \**************************************************/ | ||
| 417 | +/*! no static exports found */ | ||
| 418 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 419 | + | ||
| 420 | +eval("var xor = __webpack_require__(/*! buffer-xor */ \"./node_modules/buffer-xor/index.js\");\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev);\n self._prev = self._cipher.encryptBlock(data);\n return self._prev;\n};\n\nexports.decrypt = function (self, block) {\n var pad = self._prev;\n self._prev = block;\n\n var out = self._cipher.decryptBlock(block);\n\n return xor(out, pad);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-aes/modes/cbc.js?"); | ||
| 421 | + | ||
| 422 | +/***/ }), | ||
| 423 | + | ||
| 424 | +/***/ "./node_modules/browserify-aes/modes/cfb.js": | ||
| 425 | +/*!**************************************************!*\ | ||
| 426 | + !*** ./node_modules/browserify-aes/modes/cfb.js ***! | ||
| 427 | + \**************************************************/ | ||
| 428 | +/*! no static exports found */ | ||
| 429 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 430 | + | ||
| 431 | +eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar xor = __webpack_require__(/*! buffer-xor */ \"./node_modules/buffer-xor/index.js\");\n\nfunction encryptStart(self, data, decrypt) {\n var len = data.length;\n var out = xor(data, self._cache);\n self._cache = self._cache.slice(len);\n self._prev = Buffer.concat([self._prev, decrypt ? data : out]);\n return out;\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0);\n var len;\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev);\n self._prev = Buffer.allocUnsafe(0);\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length;\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)]);\n data = data.slice(len);\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)]);\n break;\n }\n }\n\n return out;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-aes/modes/cfb.js?"); | ||
| 432 | + | ||
| 433 | +/***/ }), | ||
| 434 | + | ||
| 435 | +/***/ "./node_modules/browserify-aes/modes/cfb1.js": | ||
| 436 | +/*!***************************************************!*\ | ||
| 437 | + !*** ./node_modules/browserify-aes/modes/cfb1.js ***! | ||
| 438 | + \***************************************************/ | ||
| 439 | +/*! no static exports found */ | ||
| 440 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 441 | + | ||
| 442 | +eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nfunction encryptByte(self, byteParam, decrypt) {\n var pad;\n var i = -1;\n var len = 8;\n var out = 0;\n var bit, value;\n\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev);\n bit = byteParam & 1 << 7 - i ? 0x80 : 0;\n value = pad[0] ^ bit;\n out += (value & 0x80) >> i % 8;\n self._prev = shiftIn(self._prev, decrypt ? bit : value);\n }\n\n return out;\n}\n\nfunction shiftIn(buffer, value) {\n var len = buffer.length;\n var i = -1;\n var out = Buffer.allocUnsafe(buffer.length);\n buffer = Buffer.concat([buffer, Buffer.from([value])]);\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> 7;\n }\n\n return out;\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length;\n var out = Buffer.allocUnsafe(len);\n var i = -1;\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt);\n }\n\n return out;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-aes/modes/cfb1.js?"); | ||
| 443 | + | ||
| 444 | +/***/ }), | ||
| 445 | + | ||
| 446 | +/***/ "./node_modules/browserify-aes/modes/cfb8.js": | ||
| 447 | +/*!***************************************************!*\ | ||
| 448 | + !*** ./node_modules/browserify-aes/modes/cfb8.js ***! | ||
| 449 | + \***************************************************/ | ||
| 450 | +/*! no static exports found */ | ||
| 451 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 452 | + | ||
| 453 | +eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nfunction encryptByte(self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev);\n\n var out = pad[0] ^ byteParam;\n self._prev = Buffer.concat([self._prev.slice(1), Buffer.from([decrypt ? byteParam : out])]);\n return out;\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length;\n var out = Buffer.allocUnsafe(len);\n var i = -1;\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt);\n }\n\n return out;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-aes/modes/cfb8.js?"); | ||
| 454 | + | ||
| 455 | +/***/ }), | ||
| 456 | + | ||
| 457 | +/***/ "./node_modules/browserify-aes/modes/ctr.js": | ||
| 458 | +/*!**************************************************!*\ | ||
| 459 | + !*** ./node_modules/browserify-aes/modes/ctr.js ***! | ||
| 460 | + \**************************************************/ | ||
| 461 | +/*! no static exports found */ | ||
| 462 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 463 | + | ||
| 464 | +eval("var xor = __webpack_require__(/*! buffer-xor */ \"./node_modules/buffer-xor/index.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar incr32 = __webpack_require__(/*! ../incr32 */ \"./node_modules/browserify-aes/incr32.js\");\n\nfunction getBlock(self) {\n var out = self._cipher.encryptBlockRaw(self._prev);\n\n incr32(self._prev);\n return out;\n}\n\nvar blockSize = 16;\n\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize);\n var start = self._cache.length;\n self._cache = Buffer.concat([self._cache, Buffer.allocUnsafe(chunkNum * blockSize)]);\n\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self);\n var offset = start + i * blockSize;\n\n self._cache.writeUInt32BE(out[0], offset + 0);\n\n self._cache.writeUInt32BE(out[1], offset + 4);\n\n self._cache.writeUInt32BE(out[2], offset + 8);\n\n self._cache.writeUInt32BE(out[3], offset + 12);\n }\n\n var pad = self._cache.slice(0, chunk.length);\n\n self._cache = self._cache.slice(chunk.length);\n return xor(chunk, pad);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-aes/modes/ctr.js?"); | ||
| 465 | + | ||
| 466 | +/***/ }), | ||
| 467 | + | ||
| 468 | +/***/ "./node_modules/browserify-aes/modes/ecb.js": | ||
| 469 | +/*!**************************************************!*\ | ||
| 470 | + !*** ./node_modules/browserify-aes/modes/ecb.js ***! | ||
| 471 | + \**************************************************/ | ||
| 472 | +/*! no static exports found */ | ||
| 473 | +/***/ (function(module, exports) { | ||
| 474 | + | ||
| 475 | +eval("exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block);\n};\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-aes/modes/ecb.js?"); | ||
| 476 | + | ||
| 477 | +/***/ }), | ||
| 478 | + | ||
| 479 | +/***/ "./node_modules/browserify-aes/modes/index.js": | ||
| 480 | +/*!****************************************************!*\ | ||
| 481 | + !*** ./node_modules/browserify-aes/modes/index.js ***! | ||
| 482 | + \****************************************************/ | ||
| 483 | +/*! no static exports found */ | ||
| 484 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 485 | + | ||
| 486 | +eval("var modeModules = {\n ECB: __webpack_require__(/*! ./ecb */ \"./node_modules/browserify-aes/modes/ecb.js\"),\n CBC: __webpack_require__(/*! ./cbc */ \"./node_modules/browserify-aes/modes/cbc.js\"),\n CFB: __webpack_require__(/*! ./cfb */ \"./node_modules/browserify-aes/modes/cfb.js\"),\n CFB8: __webpack_require__(/*! ./cfb8 */ \"./node_modules/browserify-aes/modes/cfb8.js\"),\n CFB1: __webpack_require__(/*! ./cfb1 */ \"./node_modules/browserify-aes/modes/cfb1.js\"),\n OFB: __webpack_require__(/*! ./ofb */ \"./node_modules/browserify-aes/modes/ofb.js\"),\n CTR: __webpack_require__(/*! ./ctr */ \"./node_modules/browserify-aes/modes/ctr.js\"),\n GCM: __webpack_require__(/*! ./ctr */ \"./node_modules/browserify-aes/modes/ctr.js\")\n};\n\nvar modes = __webpack_require__(/*! ./list.json */ \"./node_modules/browserify-aes/modes/list.json\");\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode];\n}\n\nmodule.exports = modes;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-aes/modes/index.js?"); | ||
| 487 | + | ||
| 488 | +/***/ }), | ||
| 489 | + | ||
| 490 | +/***/ "./node_modules/browserify-aes/modes/list.json": | ||
| 491 | +/*!*****************************************************!*\ | ||
| 492 | + !*** ./node_modules/browserify-aes/modes/list.json ***! | ||
| 493 | + \*****************************************************/ | ||
| 494 | +/*! exports provided: aes-128-ecb, aes-192-ecb, aes-256-ecb, aes-128-cbc, aes-192-cbc, aes-256-cbc, aes128, aes192, aes256, aes-128-cfb, aes-192-cfb, aes-256-cfb, aes-128-cfb8, aes-192-cfb8, aes-256-cfb8, aes-128-cfb1, aes-192-cfb1, aes-256-cfb1, aes-128-ofb, aes-192-ofb, aes-256-ofb, aes-128-ctr, aes-192-ctr, aes-256-ctr, aes-128-gcm, aes-192-gcm, aes-256-gcm, default */ | ||
| 495 | +/***/ (function(module) { | ||
| 496 | + | ||
| 497 | +eval("module.exports = JSON.parse(\"{\\\"aes-128-ecb\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":128,\\\"iv\\\":0,\\\"mode\\\":\\\"ECB\\\",\\\"type\\\":\\\"block\\\"},\\\"aes-192-ecb\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":192,\\\"iv\\\":0,\\\"mode\\\":\\\"ECB\\\",\\\"type\\\":\\\"block\\\"},\\\"aes-256-ecb\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":256,\\\"iv\\\":0,\\\"mode\\\":\\\"ECB\\\",\\\"type\\\":\\\"block\\\"},\\\"aes-128-cbc\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":128,\\\"iv\\\":16,\\\"mode\\\":\\\"CBC\\\",\\\"type\\\":\\\"block\\\"},\\\"aes-192-cbc\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":192,\\\"iv\\\":16,\\\"mode\\\":\\\"CBC\\\",\\\"type\\\":\\\"block\\\"},\\\"aes-256-cbc\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":256,\\\"iv\\\":16,\\\"mode\\\":\\\"CBC\\\",\\\"type\\\":\\\"block\\\"},\\\"aes128\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":128,\\\"iv\\\":16,\\\"mode\\\":\\\"CBC\\\",\\\"type\\\":\\\"block\\\"},\\\"aes192\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":192,\\\"iv\\\":16,\\\"mode\\\":\\\"CBC\\\",\\\"type\\\":\\\"block\\\"},\\\"aes256\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":256,\\\"iv\\\":16,\\\"mode\\\":\\\"CBC\\\",\\\"type\\\":\\\"block\\\"},\\\"aes-128-cfb\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":128,\\\"iv\\\":16,\\\"mode\\\":\\\"CFB\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-192-cfb\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":192,\\\"iv\\\":16,\\\"mode\\\":\\\"CFB\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-256-cfb\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":256,\\\"iv\\\":16,\\\"mode\\\":\\\"CFB\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-128-cfb8\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":128,\\\"iv\\\":16,\\\"mode\\\":\\\"CFB8\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-192-cfb8\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":192,\\\"iv\\\":16,\\\"mode\\\":\\\"CFB8\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-256-cfb8\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":256,\\\"iv\\\":16,\\\"mode\\\":\\\"CFB8\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-128-cfb1\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":128,\\\"iv\\\":16,\\\"mode\\\":\\\"CFB1\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-192-cfb1\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":192,\\\"iv\\\":16,\\\"mode\\\":\\\"CFB1\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-256-cfb1\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":256,\\\"iv\\\":16,\\\"mode\\\":\\\"CFB1\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-128-ofb\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":128,\\\"iv\\\":16,\\\"mode\\\":\\\"OFB\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-192-ofb\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":192,\\\"iv\\\":16,\\\"mode\\\":\\\"OFB\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-256-ofb\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":256,\\\"iv\\\":16,\\\"mode\\\":\\\"OFB\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-128-ctr\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":128,\\\"iv\\\":16,\\\"mode\\\":\\\"CTR\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-192-ctr\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":192,\\\"iv\\\":16,\\\"mode\\\":\\\"CTR\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-256-ctr\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":256,\\\"iv\\\":16,\\\"mode\\\":\\\"CTR\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-128-gcm\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":128,\\\"iv\\\":12,\\\"mode\\\":\\\"GCM\\\",\\\"type\\\":\\\"auth\\\"},\\\"aes-192-gcm\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":192,\\\"iv\\\":12,\\\"mode\\\":\\\"GCM\\\",\\\"type\\\":\\\"auth\\\"},\\\"aes-256-gcm\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":256,\\\"iv\\\":12,\\\"mode\\\":\\\"GCM\\\",\\\"type\\\":\\\"auth\\\"}}\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-aes/modes/list.json?"); | ||
| 498 | + | ||
| 499 | +/***/ }), | ||
| 500 | + | ||
| 501 | +/***/ "./node_modules/browserify-aes/modes/ofb.js": | ||
| 502 | +/*!**************************************************!*\ | ||
| 503 | + !*** ./node_modules/browserify-aes/modes/ofb.js ***! | ||
| 504 | + \**************************************************/ | ||
| 505 | +/*! no static exports found */ | ||
| 506 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 507 | + | ||
| 508 | +eval("/* WEBPACK VAR INJECTION */(function(Buffer) {var xor = __webpack_require__(/*! buffer-xor */ \"./node_modules/buffer-xor/index.js\");\n\nfunction getBlock(self) {\n self._prev = self._cipher.encryptBlock(self._prev);\n return self._prev;\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)]);\n }\n\n var pad = self._cache.slice(0, chunk.length);\n\n self._cache = self._cache.slice(chunk.length);\n return xor(chunk, pad);\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-aes/modes/ofb.js?"); | ||
| 509 | + | ||
| 510 | +/***/ }), | ||
| 511 | + | ||
| 512 | +/***/ "./node_modules/browserify-aes/streamCipher.js": | ||
| 513 | +/*!*****************************************************!*\ | ||
| 514 | + !*** ./node_modules/browserify-aes/streamCipher.js ***! | ||
| 515 | + \*****************************************************/ | ||
| 516 | +/*! no static exports found */ | ||
| 517 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 518 | + | ||
| 519 | +eval("var aes = __webpack_require__(/*! ./aes */ \"./node_modules/browserify-aes/aes.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar Transform = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nfunction StreamCipher(mode, key, iv, decrypt) {\n Transform.call(this);\n this._cipher = new aes.AES(key);\n this._prev = Buffer.from(iv);\n this._cache = Buffer.allocUnsafe(0);\n this._secCache = Buffer.allocUnsafe(0);\n this._decrypt = decrypt;\n this._mode = mode;\n}\n\ninherits(StreamCipher, Transform);\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt);\n};\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub();\n};\n\nmodule.exports = StreamCipher;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-aes/streamCipher.js?"); | ||
| 520 | + | ||
| 521 | +/***/ }), | ||
| 522 | + | ||
| 523 | +/***/ "./node_modules/browserify-cipher/browser.js": | ||
| 524 | +/*!***************************************************!*\ | ||
| 525 | + !*** ./node_modules/browserify-cipher/browser.js ***! | ||
| 526 | + \***************************************************/ | ||
| 527 | +/*! no static exports found */ | ||
| 528 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 529 | + | ||
| 530 | +eval("var DES = __webpack_require__(/*! browserify-des */ \"./node_modules/browserify-des/index.js\");\n\nvar aes = __webpack_require__(/*! browserify-aes/browser */ \"./node_modules/browserify-aes/browser.js\");\n\nvar aesModes = __webpack_require__(/*! browserify-aes/modes */ \"./node_modules/browserify-aes/modes/index.js\");\n\nvar desModes = __webpack_require__(/*! browserify-des/modes */ \"./node_modules/browserify-des/modes.js\");\n\nvar ebtk = __webpack_require__(/*! evp_bytestokey */ \"./node_modules/evp_bytestokey/index.js\");\n\nfunction createCipher(suite, password) {\n suite = suite.toLowerCase();\n var keyLen, ivLen;\n\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key;\n ivLen = aesModes[suite].iv;\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8;\n ivLen = desModes[suite].iv;\n } else {\n throw new TypeError('invalid suite type');\n }\n\n var keys = ebtk(password, false, keyLen, ivLen);\n return createCipheriv(suite, keys.key, keys.iv);\n}\n\nfunction createDecipher(suite, password) {\n suite = suite.toLowerCase();\n var keyLen, ivLen;\n\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key;\n ivLen = aesModes[suite].iv;\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8;\n ivLen = desModes[suite].iv;\n } else {\n throw new TypeError('invalid suite type');\n }\n\n var keys = ebtk(password, false, keyLen, ivLen);\n return createDecipheriv(suite, keys.key, keys.iv);\n}\n\nfunction createCipheriv(suite, key, iv) {\n suite = suite.toLowerCase();\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv);\n if (desModes[suite]) return new DES({\n key: key,\n iv: iv,\n mode: suite\n });\n throw new TypeError('invalid suite type');\n}\n\nfunction createDecipheriv(suite, key, iv) {\n suite = suite.toLowerCase();\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv);\n if (desModes[suite]) return new DES({\n key: key,\n iv: iv,\n mode: suite,\n decrypt: true\n });\n throw new TypeError('invalid suite type');\n}\n\nfunction getCiphers() {\n return Object.keys(desModes).concat(aes.getCiphers());\n}\n\nexports.createCipher = exports.Cipher = createCipher;\nexports.createCipheriv = exports.Cipheriv = createCipheriv;\nexports.createDecipher = exports.Decipher = createDecipher;\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv;\nexports.listCiphers = exports.getCiphers = getCiphers;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-cipher/browser.js?"); | ||
| 531 | + | ||
| 532 | +/***/ }), | ||
| 533 | + | ||
| 534 | +/***/ "./node_modules/browserify-des/index.js": | ||
| 535 | +/*!**********************************************!*\ | ||
| 536 | + !*** ./node_modules/browserify-des/index.js ***! | ||
| 537 | + \**********************************************/ | ||
| 538 | +/*! no static exports found */ | ||
| 539 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 540 | + | ||
| 541 | +eval("var CipherBase = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\");\n\nvar des = __webpack_require__(/*! des.js */ \"./node_modules/des.js/lib/des.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n};\nmodes.des = modes['des-cbc'];\nmodes.des3 = modes['des-ede3-cbc'];\nmodule.exports = DES;\ninherits(DES, CipherBase);\n\nfunction DES(opts) {\n CipherBase.call(this);\n var modeName = opts.mode.toLowerCase();\n var mode = modes[modeName];\n var type;\n\n if (opts.decrypt) {\n type = 'decrypt';\n } else {\n type = 'encrypt';\n }\n\n var key = opts.key;\n\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key);\n }\n\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)]);\n }\n\n var iv = opts.iv;\n\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv);\n }\n\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n });\n}\n\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data));\n};\n\nDES.prototype._final = function () {\n return Buffer.from(this._des.final());\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-des/index.js?"); | ||
| 542 | + | ||
| 543 | +/***/ }), | ||
| 544 | + | ||
| 545 | +/***/ "./node_modules/browserify-des/modes.js": | ||
| 546 | +/*!**********************************************!*\ | ||
| 547 | + !*** ./node_modules/browserify-des/modes.js ***! | ||
| 548 | + \**********************************************/ | ||
| 549 | +/*! no static exports found */ | ||
| 550 | +/***/ (function(module, exports) { | ||
| 551 | + | ||
| 552 | +eval("exports['des-ecb'] = {\n key: 8,\n iv: 0\n};\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n};\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n};\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n};\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n};\nexports['des-ede'] = {\n key: 16,\n iv: 0\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-des/modes.js?"); | ||
| 553 | + | ||
| 554 | +/***/ }), | ||
| 555 | + | ||
| 556 | +/***/ "./node_modules/browserify-rsa/index.js": | ||
| 557 | +/*!**********************************************!*\ | ||
| 558 | + !*** ./node_modules/browserify-rsa/index.js ***! | ||
| 559 | + \**********************************************/ | ||
| 560 | +/*! no static exports found */ | ||
| 561 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 562 | + | ||
| 563 | +eval("/* WEBPACK VAR INJECTION */(function(Buffer) {var BN = __webpack_require__(/*! bn.js */ \"./node_modules/bn.js/lib/bn.js\");\n\nvar randomBytes = __webpack_require__(/*! randombytes */ \"./node_modules/randombytes/browser.js\");\n\nfunction blind(priv) {\n var r = getr(priv);\n var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed();\n return {\n blinder: blinder,\n unblinder: r.invm(priv.modulus)\n };\n}\n\nfunction getr(priv) {\n var len = priv.modulus.byteLength();\n var r;\n\n do {\n r = new BN(randomBytes(len));\n } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2));\n\n return r;\n}\n\nfunction crt(msg, priv) {\n var blinds = blind(priv);\n var len = priv.modulus.byteLength();\n var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus);\n var c1 = blinded.toRed(BN.mont(priv.prime1));\n var c2 = blinded.toRed(BN.mont(priv.prime2));\n var qinv = priv.coefficient;\n var p = priv.prime1;\n var q = priv.prime2;\n var m1 = c1.redPow(priv.exponent1).fromRed();\n var m2 = c2.redPow(priv.exponent2).fromRed();\n var h = m1.isub(m2).imul(qinv).umod(p).imul(q);\n return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len);\n}\n\ncrt.getr = getr;\nmodule.exports = crt;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-rsa/index.js?"); | ||
| 564 | + | ||
| 565 | +/***/ }), | ||
| 566 | + | ||
| 567 | +/***/ "./node_modules/browserify-sign/algos.js": | ||
| 568 | +/*!***********************************************!*\ | ||
| 569 | + !*** ./node_modules/browserify-sign/algos.js ***! | ||
| 570 | + \***********************************************/ | ||
| 571 | +/*! no static exports found */ | ||
| 572 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 573 | + | ||
| 574 | +eval("module.exports = __webpack_require__(/*! ./browser/algorithms.json */ \"./node_modules/browserify-sign/browser/algorithms.json\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/algos.js?"); | ||
| 575 | + | ||
| 576 | +/***/ }), | ||
| 577 | + | ||
| 578 | +/***/ "./node_modules/browserify-sign/browser/algorithms.json": | ||
| 579 | +/*!**************************************************************!*\ | ||
| 580 | + !*** ./node_modules/browserify-sign/browser/algorithms.json ***! | ||
| 581 | + \**************************************************************/ | ||
| 582 | +/*! exports provided: sha224WithRSAEncryption, RSA-SHA224, sha256WithRSAEncryption, RSA-SHA256, sha384WithRSAEncryption, RSA-SHA384, sha512WithRSAEncryption, RSA-SHA512, RSA-SHA1, ecdsa-with-SHA1, sha256, sha224, sha384, sha512, DSA-SHA, DSA-SHA1, DSA, DSA-WITH-SHA224, DSA-SHA224, DSA-WITH-SHA256, DSA-SHA256, DSA-WITH-SHA384, DSA-SHA384, DSA-WITH-SHA512, DSA-SHA512, DSA-RIPEMD160, ripemd160WithRSA, RSA-RIPEMD160, md5WithRSAEncryption, RSA-MD5, default */ | ||
| 583 | +/***/ (function(module) { | ||
| 584 | + | ||
| 585 | +eval("module.exports = JSON.parse(\"{\\\"sha224WithRSAEncryption\\\":{\\\"sign\\\":\\\"rsa\\\",\\\"hash\\\":\\\"sha224\\\",\\\"id\\\":\\\"302d300d06096086480165030402040500041c\\\"},\\\"RSA-SHA224\\\":{\\\"sign\\\":\\\"ecdsa/rsa\\\",\\\"hash\\\":\\\"sha224\\\",\\\"id\\\":\\\"302d300d06096086480165030402040500041c\\\"},\\\"sha256WithRSAEncryption\\\":{\\\"sign\\\":\\\"rsa\\\",\\\"hash\\\":\\\"sha256\\\",\\\"id\\\":\\\"3031300d060960864801650304020105000420\\\"},\\\"RSA-SHA256\\\":{\\\"sign\\\":\\\"ecdsa/rsa\\\",\\\"hash\\\":\\\"sha256\\\",\\\"id\\\":\\\"3031300d060960864801650304020105000420\\\"},\\\"sha384WithRSAEncryption\\\":{\\\"sign\\\":\\\"rsa\\\",\\\"hash\\\":\\\"sha384\\\",\\\"id\\\":\\\"3041300d060960864801650304020205000430\\\"},\\\"RSA-SHA384\\\":{\\\"sign\\\":\\\"ecdsa/rsa\\\",\\\"hash\\\":\\\"sha384\\\",\\\"id\\\":\\\"3041300d060960864801650304020205000430\\\"},\\\"sha512WithRSAEncryption\\\":{\\\"sign\\\":\\\"rsa\\\",\\\"hash\\\":\\\"sha512\\\",\\\"id\\\":\\\"3051300d060960864801650304020305000440\\\"},\\\"RSA-SHA512\\\":{\\\"sign\\\":\\\"ecdsa/rsa\\\",\\\"hash\\\":\\\"sha512\\\",\\\"id\\\":\\\"3051300d060960864801650304020305000440\\\"},\\\"RSA-SHA1\\\":{\\\"sign\\\":\\\"rsa\\\",\\\"hash\\\":\\\"sha1\\\",\\\"id\\\":\\\"3021300906052b0e03021a05000414\\\"},\\\"ecdsa-with-SHA1\\\":{\\\"sign\\\":\\\"ecdsa\\\",\\\"hash\\\":\\\"sha1\\\",\\\"id\\\":\\\"\\\"},\\\"sha256\\\":{\\\"sign\\\":\\\"ecdsa\\\",\\\"hash\\\":\\\"sha256\\\",\\\"id\\\":\\\"\\\"},\\\"sha224\\\":{\\\"sign\\\":\\\"ecdsa\\\",\\\"hash\\\":\\\"sha224\\\",\\\"id\\\":\\\"\\\"},\\\"sha384\\\":{\\\"sign\\\":\\\"ecdsa\\\",\\\"hash\\\":\\\"sha384\\\",\\\"id\\\":\\\"\\\"},\\\"sha512\\\":{\\\"sign\\\":\\\"ecdsa\\\",\\\"hash\\\":\\\"sha512\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-SHA\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha1\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-SHA1\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha1\\\",\\\"id\\\":\\\"\\\"},\\\"DSA\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha1\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-WITH-SHA224\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha224\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-SHA224\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha224\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-WITH-SHA256\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha256\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-SHA256\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha256\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-WITH-SHA384\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha384\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-SHA384\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha384\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-WITH-SHA512\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha512\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-SHA512\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha512\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-RIPEMD160\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"rmd160\\\",\\\"id\\\":\\\"\\\"},\\\"ripemd160WithRSA\\\":{\\\"sign\\\":\\\"rsa\\\",\\\"hash\\\":\\\"rmd160\\\",\\\"id\\\":\\\"3021300906052b2403020105000414\\\"},\\\"RSA-RIPEMD160\\\":{\\\"sign\\\":\\\"rsa\\\",\\\"hash\\\":\\\"rmd160\\\",\\\"id\\\":\\\"3021300906052b2403020105000414\\\"},\\\"md5WithRSAEncryption\\\":{\\\"sign\\\":\\\"rsa\\\",\\\"hash\\\":\\\"md5\\\",\\\"id\\\":\\\"3020300c06082a864886f70d020505000410\\\"},\\\"RSA-MD5\\\":{\\\"sign\\\":\\\"rsa\\\",\\\"hash\\\":\\\"md5\\\",\\\"id\\\":\\\"3020300c06082a864886f70d020505000410\\\"}}\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/browser/algorithms.json?"); | ||
| 586 | + | ||
| 587 | +/***/ }), | ||
| 588 | + | ||
| 589 | +/***/ "./node_modules/browserify-sign/browser/curves.json": | ||
| 590 | +/*!**********************************************************!*\ | ||
| 591 | + !*** ./node_modules/browserify-sign/browser/curves.json ***! | ||
| 592 | + \**********************************************************/ | ||
| 593 | +/*! exports provided: 1.3.132.0.10, 1.3.132.0.33, 1.2.840.10045.3.1.1, 1.2.840.10045.3.1.7, 1.3.132.0.34, 1.3.132.0.35, default */ | ||
| 594 | +/***/ (function(module) { | ||
| 595 | + | ||
| 596 | +eval("module.exports = JSON.parse(\"{\\\"1.3.132.0.10\\\":\\\"secp256k1\\\",\\\"1.3.132.0.33\\\":\\\"p224\\\",\\\"1.2.840.10045.3.1.1\\\":\\\"p192\\\",\\\"1.2.840.10045.3.1.7\\\":\\\"p256\\\",\\\"1.3.132.0.34\\\":\\\"p384\\\",\\\"1.3.132.0.35\\\":\\\"p521\\\"}\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/browser/curves.json?"); | ||
| 597 | + | ||
| 598 | +/***/ }), | ||
| 599 | + | ||
| 600 | +/***/ "./node_modules/browserify-sign/browser/index.js": | ||
| 601 | +/*!*******************************************************!*\ | ||
| 602 | + !*** ./node_modules/browserify-sign/browser/index.js ***! | ||
| 603 | + \*******************************************************/ | ||
| 604 | +/*! no static exports found */ | ||
| 605 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 606 | + | ||
| 607 | +eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar createHash = __webpack_require__(/*! create-hash */ \"./node_modules/create-hash/browser.js\");\n\nvar stream = __webpack_require__(/*! readable-stream */ \"./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar sign = __webpack_require__(/*! ./sign */ \"./node_modules/browserify-sign/browser/sign.js\");\n\nvar verify = __webpack_require__(/*! ./verify */ \"./node_modules/browserify-sign/browser/verify.js\");\n\nvar algorithms = __webpack_require__(/*! ./algorithms.json */ \"./node_modules/browserify-sign/browser/algorithms.json\");\n\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex');\n algorithms[key.toLowerCase()] = algorithms[key];\n});\n\nfunction Sign(algorithm) {\n stream.Writable.call(this);\n var data = algorithms[algorithm];\n if (!data) throw new Error('Unknown message digest');\n this._hashType = data.hash;\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\n\ninherits(Sign, stream.Writable);\n\nSign.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n\n done();\n};\n\nSign.prototype.update = function update(data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc);\n\n this._hash.update(data);\n\n return this;\n};\n\nSign.prototype.sign = function signMethod(key, enc) {\n this.end();\n\n var hash = this._hash.digest();\n\n var sig = sign(hash, key, this._hashType, this._signType, this._tag);\n return enc ? sig.toString(enc) : sig;\n};\n\nfunction Verify(algorithm) {\n stream.Writable.call(this);\n var data = algorithms[algorithm];\n if (!data) throw new Error('Unknown message digest');\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\n\ninherits(Verify, stream.Writable);\n\nVerify.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n\n done();\n};\n\nVerify.prototype.update = function update(data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc);\n\n this._hash.update(data);\n\n return this;\n};\n\nVerify.prototype.verify = function verifyMethod(key, sig, enc) {\n if (typeof sig === 'string') sig = Buffer.from(sig, enc);\n this.end();\n\n var hash = this._hash.digest();\n\n return verify(sig, hash, key, this._signType, this._tag);\n};\n\nfunction createSign(algorithm) {\n return new Sign(algorithm);\n}\n\nfunction createVerify(algorithm) {\n return new Verify(algorithm);\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/browser/index.js?"); | ||
| 608 | + | ||
| 609 | +/***/ }), | ||
| 610 | + | ||
| 611 | +/***/ "./node_modules/browserify-sign/browser/sign.js": | ||
| 612 | +/*!******************************************************!*\ | ||
| 613 | + !*** ./node_modules/browserify-sign/browser/sign.js ***! | ||
| 614 | + \******************************************************/ | ||
| 615 | +/*! no static exports found */ | ||
| 616 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 617 | + | ||
| 618 | +eval("// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar createHmac = __webpack_require__(/*! create-hmac */ \"./node_modules/create-hmac/browser.js\");\n\nvar crt = __webpack_require__(/*! browserify-rsa */ \"./node_modules/browserify-rsa/index.js\");\n\nvar EC = __webpack_require__(/*! elliptic */ \"./node_modules/elliptic/lib/elliptic.js\").ec;\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/bn.js/lib/bn.js\");\n\nvar parseKeys = __webpack_require__(/*! parse-asn1 */ \"./node_modules/parse-asn1/index.js\");\n\nvar curves = __webpack_require__(/*! ./curves.json */ \"./node_modules/browserify-sign/browser/curves.json\");\n\nfunction sign(hash, key, hashType, signType, tag) {\n var priv = parseKeys(key);\n\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type');\n return ecSign(hash, priv);\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong private key type');\n return dsaSign(hash, priv, hashType);\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type');\n }\n\n hash = Buffer.concat([tag, hash]);\n var len = priv.modulus.byteLength();\n var pad = [0, 1];\n\n while (hash.length + pad.length + 1 < len) {\n pad.push(0xff);\n }\n\n pad.push(0x00);\n var i = -1;\n\n while (++i < hash.length) {\n pad.push(hash[i]);\n }\n\n var out = crt(pad, priv);\n return out;\n}\n\nfunction ecSign(hash, priv) {\n var curveId = curves[priv.curve.join('.')];\n if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'));\n var curve = new EC(curveId);\n var key = curve.keyFromPrivate(priv.privateKey);\n var out = key.sign(hash);\n return Buffer.from(out.toDER());\n}\n\nfunction dsaSign(hash, priv, algo) {\n var x = priv.params.priv_key;\n var p = priv.params.p;\n var q = priv.params.q;\n var g = priv.params.g;\n var r = new BN(0);\n var k;\n var H = bits2int(hash, q).mod(q);\n var s = false;\n var kv = getKey(x, q, hash, algo);\n\n while (s === false) {\n k = makeKey(q, kv, algo);\n r = makeR(g, k, p, q);\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q);\n\n if (s.cmpn(0) === 0) {\n s = false;\n r = new BN(0);\n }\n }\n\n return toDER(r, s);\n}\n\nfunction toDER(r, s) {\n r = r.toArray();\n s = s.toArray(); // Pad values\n\n if (r[0] & 0x80) r = [0].concat(r);\n if (s[0] & 0x80) s = [0].concat(s);\n var total = r.length + s.length + 4;\n var res = [0x30, total, 0x02, r.length];\n res = res.concat(r, [0x02, s.length], s);\n return Buffer.from(res);\n}\n\nfunction getKey(x, q, hash, algo) {\n x = Buffer.from(x.toArray());\n\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length);\n x = Buffer.concat([zeros, x]);\n }\n\n var hlen = hash.length;\n var hbits = bits2octets(hash, q);\n var v = Buffer.alloc(hlen);\n v.fill(1);\n var k = Buffer.alloc(hlen);\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n return {\n k: k,\n v: v\n };\n}\n\nfunction bits2int(obits, q) {\n var bits = new BN(obits);\n var shift = (obits.length << 3) - q.bitLength();\n if (shift > 0) bits.ishrn(shift);\n return bits;\n}\n\nfunction bits2octets(bits, q) {\n bits = bits2int(bits, q);\n bits = bits.mod(q);\n var out = Buffer.from(bits.toArray());\n\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length);\n out = Buffer.concat([zeros, out]);\n }\n\n return out;\n}\n\nfunction makeKey(q, kv, algo) {\n var t;\n var k;\n\n do {\n t = Buffer.alloc(0);\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n t = Buffer.concat([t, kv.v]);\n }\n\n k = bits2int(t, q);\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest();\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n } while (k.cmp(q) !== -1);\n\n return k;\n}\n\nfunction makeR(g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q);\n}\n\nmodule.exports = sign;\nmodule.exports.getKey = getKey;\nmodule.exports.makeKey = makeKey;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/browser/sign.js?"); | ||
| 619 | + | ||
| 620 | +/***/ }), | ||
| 621 | + | ||
| 622 | +/***/ "./node_modules/browserify-sign/browser/verify.js": | ||
| 623 | +/*!********************************************************!*\ | ||
| 624 | + !*** ./node_modules/browserify-sign/browser/verify.js ***! | ||
| 625 | + \********************************************************/ | ||
| 626 | +/*! no static exports found */ | ||
| 627 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 628 | + | ||
| 629 | +eval("// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/bn.js/lib/bn.js\");\n\nvar EC = __webpack_require__(/*! elliptic */ \"./node_modules/elliptic/lib/elliptic.js\").ec;\n\nvar parseKeys = __webpack_require__(/*! parse-asn1 */ \"./node_modules/parse-asn1/index.js\");\n\nvar curves = __webpack_require__(/*! ./curves.json */ \"./node_modules/browserify-sign/browser/curves.json\");\n\nfunction verify(sig, hash, key, signType, tag) {\n var pub = parseKeys(key);\n\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type');\n return ecVerify(sig, hash, pub);\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong public key type');\n return dsaVerify(sig, hash, pub);\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type');\n }\n\n hash = Buffer.concat([tag, hash]);\n var len = pub.modulus.byteLength();\n var pad = [1];\n var padNum = 0;\n\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff);\n padNum++;\n }\n\n pad.push(0x00);\n var i = -1;\n\n while (++i < hash.length) {\n pad.push(hash[i]);\n }\n\n pad = Buffer.from(pad);\n var red = BN.mont(pub.modulus);\n sig = new BN(sig).toRed(red);\n sig = sig.redPow(new BN(pub.publicExponent));\n sig = Buffer.from(sig.fromRed().toArray());\n var out = padNum < 8 ? 1 : 0;\n len = Math.min(sig.length, pad.length);\n if (sig.length !== pad.length) out = 1;\n i = -1;\n\n while (++i < len) {\n out |= sig[i] ^ pad[i];\n }\n\n return out === 0;\n}\n\nfunction ecVerify(sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')];\n if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'));\n var curve = new EC(curveId);\n var pubkey = pub.data.subjectPrivateKey.data;\n return curve.verify(hash, sig, pubkey);\n}\n\nfunction dsaVerify(sig, hash, pub) {\n var p = pub.data.p;\n var q = pub.data.q;\n var g = pub.data.g;\n var y = pub.data.pub_key;\n var unpacked = parseKeys.signature.decode(sig, 'der');\n var s = unpacked.s;\n var r = unpacked.r;\n checkValue(s, q);\n checkValue(r, q);\n var montp = BN.mont(p);\n var w = s.invm(q);\n var v = g.toRed(montp).redPow(new BN(hash).mul(w).mod(q)).fromRed().mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed()).mod(p).mod(q);\n return v.cmp(r) === 0;\n}\n\nfunction checkValue(b, q) {\n if (b.cmpn(0) <= 0) throw new Error('invalid sig');\n if (b.cmp(q) >= q) throw new Error('invalid sig');\n}\n\nmodule.exports = verify;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/browser/verify.js?"); | ||
| 630 | + | ||
| 631 | +/***/ }), | ||
| 632 | + | ||
| 633 | +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js": | ||
| 634 | +/*!*************************************************************************************!*\ | ||
| 635 | + !*** ./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js ***! | ||
| 636 | + \*************************************************************************************/ | ||
| 637 | +/*! no static exports found */ | ||
| 638 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 639 | + | ||
| 640 | +"use strict"; | ||
| 641 | +eval("\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError = /*#__PURE__*/function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js?"); | ||
| 642 | + | ||
| 643 | +/***/ }), | ||
| 644 | + | ||
| 645 | +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js": | ||
| 646 | +/*!*****************************************************************************************!*\ | ||
| 647 | + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js ***! | ||
| 648 | + \*****************************************************************************************/ | ||
| 649 | +/*! no static exports found */ | ||
| 650 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 651 | + | ||
| 652 | +"use strict"; | ||
| 653 | +eval("/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n/*<replacement>*/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/*</replacement>*/\n\n\nmodule.exports = Duplex;\n\nvar Readable = __webpack_require__(/*! ./_stream_readable */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js\");\n\nvar Writable = __webpack_require__(/*! ./_stream_writable */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js\");\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js?"); | ||
| 654 | + | ||
| 655 | +/***/ }), | ||
| 656 | + | ||
| 657 | +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js": | ||
| 658 | +/*!**********************************************************************************************!*\ | ||
| 659 | + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js ***! | ||
| 660 | + \**********************************************************************************************/ | ||
| 661 | +/*! no static exports found */ | ||
| 662 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 663 | + | ||
| 664 | +"use strict"; | ||
| 665 | +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n\nmodule.exports = PassThrough;\n\nvar Transform = __webpack_require__(/*! ./_stream_transform */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js\");\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js?"); | ||
| 666 | + | ||
| 667 | +/***/ }), | ||
| 668 | + | ||
| 669 | +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js": | ||
| 670 | +/*!*******************************************************************************************!*\ | ||
| 671 | + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js ***! | ||
| 672 | + \*******************************************************************************************/ | ||
| 673 | +/*! no static exports found */ | ||
| 674 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 675 | + | ||
| 676 | +"use strict"; | ||
| 677 | +eval("/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nmodule.exports = Readable;\n/*<replacement>*/\n\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n/*<replacement>*/\n\nvar EE = __webpack_require__(/*! events */ \"./node_modules/node-libs-browser/node_modules/events/events.js\").EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/*</replacement>*/\n\n\nvar Buffer = __webpack_require__(/*! buffer */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/*<replacement>*/\n\n\nvar debugUtil = __webpack_require__(/*! util */ 7);\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/*</replacement>*/\n\n\nvar BufferList = __webpack_require__(/*! ./internal/streams/buffer_list */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js\");\n\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js\");\n\nvar _require = __webpack_require__(/*! ./internal/streams/state */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js\"),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js\").codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js\");\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js\");\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = __webpack_require__(/*! ./internal/streams/async_iterator */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js\");\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = __webpack_require__(/*! ./internal/streams/from */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js\");\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js?"); | ||
| 678 | + | ||
| 679 | +/***/ }), | ||
| 680 | + | ||
| 681 | +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js": | ||
| 682 | +/*!********************************************************************************************!*\ | ||
| 683 | + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js ***! | ||
| 684 | + \********************************************************************************************/ | ||
| 685 | +/*! no static exports found */ | ||
| 686 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 687 | + | ||
| 688 | +"use strict"; | ||
| 689 | +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\nmodule.exports = Transform;\n\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js\").codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js\");\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js?"); | ||
| 690 | + | ||
| 691 | +/***/ }), | ||
| 692 | + | ||
| 693 | +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js": | ||
| 694 | +/*!*******************************************************************************************!*\ | ||
| 695 | + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js ***! | ||
| 696 | + \*******************************************************************************************/ | ||
| 697 | +/*! no static exports found */ | ||
| 698 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 699 | + | ||
| 700 | +"use strict"; | ||
| 701 | +eval("/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n\nmodule.exports = Writable;\n/* <replacement> */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* </replacement> */\n\n/*<replacement>*/\n\n\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n/*<replacement>*/\n\nvar internalUtil = {\n deprecate: __webpack_require__(/*! util-deprecate */ \"./node_modules/util-deprecate/browser.js\")\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/*</replacement>*/\n\n\nvar Buffer = __webpack_require__(/*! buffer */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js\");\n\nvar _require = __webpack_require__(/*! ./internal/streams/state */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js\"),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js\").codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js\");\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js\"); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js?"); | ||
| 702 | + | ||
| 703 | +/***/ }), | ||
| 704 | + | ||
| 705 | +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js": | ||
| 706 | +/*!**********************************************************************************************************!*\ | ||
| 707 | + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js ***! | ||
| 708 | + \**********************************************************************************************************/ | ||
| 709 | +/*! no static exports found */ | ||
| 710 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 711 | + | ||
| 712 | +"use strict"; | ||
| 713 | +eval("/* WEBPACK VAR INJECTION */(function(process) {\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar finished = __webpack_require__(/*! ./end-of-stream */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this; // if we have detected an error in the meanwhile\n // reject straight away\n\n\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this; // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n\n\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js?"); | ||
| 714 | + | ||
| 715 | +/***/ }), | ||
| 716 | + | ||
| 717 | +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js": | ||
| 718 | +/*!*******************************************************************************************************!*\ | ||
| 719 | + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js ***! | ||
| 720 | + \*******************************************************************************************************/ | ||
| 721 | +/*! no static exports found */ | ||
| 722 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 723 | + | ||
| 724 | +"use strict"; | ||
| 725 | +eval("\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nvar _require = __webpack_require__(/*! buffer */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\"),\n Buffer = _require.Buffer;\n\nvar _require2 = __webpack_require__(/*! util */ 8),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js?"); | ||
| 726 | + | ||
| 727 | +/***/ }), | ||
| 728 | + | ||
| 729 | +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js": | ||
| 730 | +/*!***************************************************************************************************!*\ | ||
| 731 | + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js ***! | ||
| 732 | + \***************************************************************************************************/ | ||
| 733 | +/*! no static exports found */ | ||
| 734 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 735 | + | ||
| 736 | +"use strict"; | ||
| 737 | +eval("/* WEBPACK VAR INJECTION */(function(process) { // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js?"); | ||
| 738 | + | ||
| 739 | +/***/ }), | ||
| 740 | + | ||
| 741 | +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js": | ||
| 742 | +/*!*********************************************************************************************************!*\ | ||
| 743 | + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***! | ||
| 744 | + \*********************************************************************************************************/ | ||
| 745 | +/*! no static exports found */ | ||
| 746 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 747 | + | ||
| 748 | +"use strict"; | ||
| 749 | +eval("// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n\nvar ERR_STREAM_PREMATURE_CLOSE = __webpack_require__(/*! ../../../errors */ \"./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js\").codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js?"); | ||
| 750 | + | ||
| 751 | +/***/ }), | ||
| 752 | + | ||
| 753 | +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js": | ||
| 754 | +/*!********************************************************************************************************!*\ | ||
| 755 | + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js ***! | ||
| 756 | + \********************************************************************************************************/ | ||
| 757 | +/*! no static exports found */ | ||
| 758 | +/***/ (function(module, exports) { | ||
| 759 | + | ||
| 760 | +eval("module.exports = function () {\n throw new Error('Readable.from is not available in the browser');\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js?"); | ||
| 761 | + | ||
| 762 | +/***/ }), | ||
| 763 | + | ||
| 764 | +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js": | ||
| 765 | +/*!****************************************************************************************************!*\ | ||
| 766 | + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js ***! | ||
| 767 | + \****************************************************************************************************/ | ||
| 768 | +/*! no static exports found */ | ||
| 769 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 770 | + | ||
| 771 | +"use strict"; | ||
| 772 | +eval("// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = __webpack_require__(/*! ../../../errors */ \"./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js\").codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = __webpack_require__(/*! ./end-of-stream */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js?"); | ||
| 773 | + | ||
| 774 | +/***/ }), | ||
| 775 | + | ||
| 776 | +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js": | ||
| 777 | +/*!*************************************************************************************************!*\ | ||
| 778 | + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js ***! | ||
| 779 | + \*************************************************************************************************/ | ||
| 780 | +/*! no static exports found */ | ||
| 781 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 782 | + | ||
| 783 | +"use strict"; | ||
| 784 | +eval("\n\nvar ERR_INVALID_OPT_VALUE = __webpack_require__(/*! ../../../errors */ \"./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js\").codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js?"); | ||
| 785 | + | ||
| 786 | +/***/ }), | ||
| 787 | + | ||
| 788 | +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js": | ||
| 789 | +/*!**********************************************************************************************************!*\ | ||
| 790 | + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js ***! | ||
| 791 | + \**********************************************************************************************************/ | ||
| 792 | +/*! no static exports found */ | ||
| 793 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 794 | + | ||
| 795 | +eval("module.exports = __webpack_require__(/*! events */ \"./node_modules/node-libs-browser/node_modules/events/events.js\").EventEmitter;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js?"); | ||
| 796 | + | ||
| 797 | +/***/ }), | ||
| 798 | + | ||
| 799 | +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js": | ||
| 800 | +/*!***************************************************************************************!*\ | ||
| 801 | + !*** ./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js ***! | ||
| 802 | + \***************************************************************************************/ | ||
| 803 | +/*! no static exports found */ | ||
| 804 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 805 | + | ||
| 806 | +eval("exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js\");\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js\");\nexports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js\");\nexports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js\");\nexports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js\");\nexports.finished = __webpack_require__(/*! ./lib/internal/streams/end-of-stream.js */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\nexports.pipeline = __webpack_require__(/*! ./lib/internal/streams/pipeline.js */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js?"); | ||
| 807 | + | ||
| 808 | +/***/ }), | ||
| 809 | + | ||
| 810 | +/***/ "./node_modules/buffer-xor/index.js": | ||
| 811 | +/*!******************************************!*\ | ||
| 812 | + !*** ./node_modules/buffer-xor/index.js ***! | ||
| 813 | + \******************************************/ | ||
| 814 | +/*! no static exports found */ | ||
| 815 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 816 | + | ||
| 817 | +eval("/* WEBPACK VAR INJECTION */(function(Buffer) {module.exports = function xor(a, b) {\n var length = Math.min(a.length, b.length);\n var buffer = new Buffer(length);\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i];\n }\n\n return buffer;\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/buffer-xor/index.js?"); | ||
| 818 | + | ||
| 819 | +/***/ }), | ||
| 820 | + | ||
| 821 | +/***/ "./node_modules/cipher-base/index.js": | ||
| 822 | +/*!*******************************************!*\ | ||
| 823 | + !*** ./node_modules/cipher-base/index.js ***! | ||
| 824 | + \*******************************************/ | ||
| 825 | +/*! no static exports found */ | ||
| 826 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 827 | + | ||
| 828 | +eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar Transform = __webpack_require__(/*! stream */ \"./node_modules/stream-browserify/index.js\").Transform;\n\nvar StringDecoder = __webpack_require__(/*! string_decoder */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nfunction CipherBase(hashMode) {\n Transform.call(this);\n this.hashMode = typeof hashMode === 'string';\n\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest;\n } else {\n this.final = this._finalOrDigest;\n }\n\n if (this._final) {\n this.__final = this._final;\n this._final = null;\n }\n\n this._decoder = null;\n this._encoding = null;\n}\n\ninherits(CipherBase, Transform);\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc);\n }\n\n var outData = this._update(data);\n\n if (this.hashMode) return this;\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc);\n }\n\n return outData;\n};\n\nCipherBase.prototype.setAutoPadding = function () {};\n\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state');\n};\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err;\n\n try {\n if (this.hashMode) {\n this._update(data);\n } else {\n this.push(this._update(data));\n }\n } catch (e) {\n err = e;\n } finally {\n next(err);\n }\n};\n\nCipherBase.prototype._flush = function (done) {\n var err;\n\n try {\n this.push(this.__final());\n } catch (e) {\n err = e;\n }\n\n done(err);\n};\n\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0);\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true);\n }\n\n return outData;\n};\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc);\n this._encoding = enc;\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings');\n\n var out = this._decoder.write(value);\n\n if (fin) {\n out += this._decoder.end();\n }\n\n return out;\n};\n\nmodule.exports = CipherBase;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/cipher-base/index.js?"); | ||
| 829 | + | ||
| 830 | +/***/ }), | ||
| 831 | + | ||
| 832 | +/***/ "./node_modules/core-util-is/lib/util.js": | ||
| 833 | +/*!***********************************************!*\ | ||
| 834 | + !*** ./node_modules/core-util-is/lib/util.js ***! | ||
| 835 | + \***********************************************/ | ||
| 836 | +/*! no static exports found */ | ||
| 837 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 838 | + | ||
| 839 | +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n\n return objectToString(arg) === '[object Array]';\n}\n\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\n\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\n\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\n\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\n\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\n\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\n\nexports.isDate = isDate;\n\nfunction isError(e) {\n return objectToString(e) === '[object Error]' || e instanceof Error;\n}\n\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nexports.isPrimitive = isPrimitive;\nexports.isBuffer = __webpack_require__(/*! buffer */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/core-util-is/lib/util.js?"); | ||
| 840 | + | ||
| 841 | +/***/ }), | ||
| 842 | + | ||
| 843 | +/***/ "./node_modules/create-ecdh/browser.js": | ||
| 844 | +/*!*********************************************!*\ | ||
| 845 | + !*** ./node_modules/create-ecdh/browser.js ***! | ||
| 846 | + \*********************************************/ | ||
| 847 | +/*! no static exports found */ | ||
| 848 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 849 | + | ||
| 850 | +eval("/* WEBPACK VAR INJECTION */(function(Buffer) {var elliptic = __webpack_require__(/*! elliptic */ \"./node_modules/elliptic/lib/elliptic.js\");\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/create-ecdh/node_modules/bn.js/lib/bn.js\");\n\nmodule.exports = function createECDH(curve) {\n return new ECDH(curve);\n};\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n};\naliases.p224 = aliases.secp224r1;\naliases.p256 = aliases.secp256r1 = aliases.prime256v1;\naliases.p192 = aliases.secp192r1 = aliases.prime192v1;\naliases.p384 = aliases.secp384r1;\naliases.p521 = aliases.secp521r1;\n\nfunction ECDH(curve) {\n this.curveType = aliases[curve];\n\n if (!this.curveType) {\n this.curveType = {\n name: curve\n };\n }\n\n this.curve = new elliptic.ec(this.curveType.name); // eslint-disable-line new-cap\n\n this.keys = void 0;\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair();\n return this.getPublicKey(enc, format);\n};\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8';\n\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc);\n }\n\n var otherPub = this.curve.keyFromPublic(other).getPublic();\n var out = otherPub.mul(this.keys.getPrivate()).getX();\n return formatReturnValue(out, enc, this.curveType.byteLength);\n};\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true);\n\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7;\n } else {\n key[0] = 6;\n }\n }\n\n return formatReturnValue(key, enc);\n};\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc);\n};\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8';\n\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n\n this.keys._importPublic(pub);\n\n return this;\n};\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8';\n\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n\n var _priv = new BN(priv);\n\n _priv = _priv.toString(16);\n this.keys = this.curve.genKeyPair();\n\n this.keys._importPrivate(_priv);\n\n return this;\n};\n\nfunction formatReturnValue(bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray();\n }\n\n var buf = new Buffer(bn);\n\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length);\n zeros.fill(0);\n buf = Buffer.concat([zeros, buf]);\n }\n\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/create-ecdh/browser.js?"); | ||
| 851 | + | ||
| 852 | +/***/ }), | ||
| 853 | + | ||
| 854 | +/***/ "./node_modules/create-ecdh/node_modules/bn.js/lib/bn.js": | ||
| 855 | +/*!***************************************************************!*\ | ||
| 856 | + !*** ./node_modules/create-ecdh/node_modules/bn.js/lib/bn.js ***! | ||
| 857 | + \***************************************************************/ | ||
| 858 | +/*! no static exports found */ | ||
| 859 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 860 | + | ||
| 861 | +eval("/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {\n 'use strict'; // Utils\n\n function assert(val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n } // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n\n\n function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n } // BN\n\n\n function BN(number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0; // Reduction context\n\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n var Buffer;\n\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = __webpack_require__(/*! buffer */ 12).Buffer;\n }\n } catch (e) {}\n\n BN.isBN = function isBN(num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max(left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min(left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init(number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n\n assert(base === (base | 0) && base >= 2 && base <= 36);\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber(number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n this.length = 3;\n }\n\n if (endian !== 'le') return; // Reverse the bytes\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray(number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;\n this.words[j] |= w << off & 0x3ffffff;\n this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n off += 24;\n\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;\n this.words[j] |= w << off & 0x3ffffff;\n this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n off += 24;\n\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n\n return this.strip();\n };\n\n function parseHex4Bits(string, index) {\n var c = string.charCodeAt(index); // 'A' - 'F'\n\n if (c >= 65 && c <= 70) {\n return c - 55; // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87; // '0' - '9'\n } else {\n return c - 48 & 0xf;\n }\n }\n\n function parseHexByte(string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex(number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n } // 24-bits chunks\n\n\n var off = 0;\n var j = 0;\n var w;\n\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase(str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n r *= mul; // 'a'\n\n if (c >= 49) {\n r += c - 49 + 0xa; // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa; // '0' - '9'\n } else {\n r += c;\n }\n }\n\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase(number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1; // Find length of limb in base\n\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n\n limbLen--;\n limbPow = limbPow / base | 0;\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n var word = 0;\n\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n this.imuln(limbPow);\n\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy(dest) {\n dest.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone() {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand(size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n\n return this;\n }; // Remove leading `0` from `this`\n\n\n BN.prototype.strip = function strip() {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign() {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n\n return this;\n };\n\n BN.prototype.inspect = function inspect() {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n };\n /*\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n */\n\n\n var zeros = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n BN.prototype.toString = function toString(base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n var out;\n\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = ((w << off | carry) & 0xffffff).toString(16);\n carry = w >>> 24 - off & 0xffffff;\n\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n\n off += 2;\n\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\n\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base]; // var groupBase = Math.pow(base, groupSize);\n\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n\n if (this.isZero()) {\n out = '0' + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\n\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber() {\n var ret = this.words[0];\n\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + this.words[1] * 0x4000000;\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n\n return this.negative !== 0 ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON() {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer(endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray(endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n var b, i;\n var q = this.clone();\n\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits(w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits(w) {\n var t = w;\n var r = 0;\n\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits(w) {\n // Short-cut\n if (w === 0) return 26;\n var t = w;\n var r = 0;\n\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n\n if ((t & 0x1) === 0) {\n r++;\n }\n\n return r;\n }; // Return number of used bits in a BN\n\n\n BN.prototype.bitLength = function bitLength() {\n var w = this.words[this.length - 1];\n\n var hi = this._countBits(w);\n\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray(num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n w[bit] = (num.words[off] & 1 << wbit) >>> wbit;\n }\n\n return w;\n } // Number of trailing zero bits\n\n\n BN.prototype.zeroBits = function zeroBits() {\n if (this.isZero()) return 0;\n var r = 0;\n\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n\n r += b;\n if (b !== 26) break;\n }\n\n return r;\n };\n\n BN.prototype.byteLength = function byteLength() {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos(width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos(width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg() {\n return this.negative !== 0;\n }; // Return negative clone of `this`\n\n\n BN.prototype.neg = function neg() {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg() {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n }; // Or `num` with `this` in-place\n\n\n BN.prototype.iuor = function iuor(num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n }; // Or `num` with `this`\n\n\n BN.prototype.or = function or(num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor(num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n }; // And `num` with `this` in-place\n\n\n BN.prototype.iuand = function iuand(num) {\n // b = min-length(num, this)\n var b;\n\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n return this.strip();\n };\n\n BN.prototype.iand = function iand(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n }; // And `num` with `this`\n\n\n BN.prototype.and = function and(num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand(num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n }; // Xor `num` with `this` in-place\n\n\n BN.prototype.iuxor = function iuxor(num) {\n // a.length > b.length\n var a;\n var b;\n\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n }; // Xor `num` with `this`\n\n\n BN.prototype.xor = function xor(num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor(num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n }; // Not ``this`` with ``width`` bitwidth\n\n\n BN.prototype.inotn = function inotn(width) {\n assert(typeof width === 'number' && width >= 0);\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n } // Handle complete words\n\n\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n } // Handle the residue\n\n\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n } // And remove leading zeroes\n\n\n return this.strip();\n };\n\n BN.prototype.notn = function notn(width) {\n return this.clone().inotn(width);\n }; // Set `bit` of `this`\n\n\n BN.prototype.setn = function setn(bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | 1 << wbit;\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n }; // Add `num` to `this` in-place\n\n\n BN.prototype.iadd = function iadd(num) {\n var r; // negative + positive\n\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign(); // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n } // a.length > b.length\n\n\n var a, b;\n\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++; // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n }; // Add `num` to `this`\n\n\n BN.prototype.add = function add(num) {\n var res;\n\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n return num.clone().iadd(this);\n }; // Subtract `num` from `this` in-place\n\n\n BN.prototype.isub = function isub(num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign(); // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n } // At this point both numbers are positive\n\n\n var cmp = this.cmp(num); // Optimization - zeroify\n\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n } // a > b\n\n\n var a, b;\n\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n } // Copy rest of the words\n\n\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n }; // Subtract `num` from `this`\n\n\n BN.prototype.sub = function sub(num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo(self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = self.length + num.length | 0;\n out.length = len;\n len = len - 1 | 0; // Peel one iteration (compiler can't do it, because of code complexity)\n\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n var lo = r & 0x3ffffff;\n var carry = r / 0x4000000 | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += r / 0x4000000 | 0;\n rword = r & 0x3ffffff;\n }\n\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n } // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n\n\n var comb10MulTo = function comb10MulTo(self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = mid + Math.imul(ah0, bl0) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = mid + Math.imul(ah1, bl0) | 0;\n hi = Math.imul(ah1, bh0);\n lo = lo + Math.imul(al0, bl1) | 0;\n mid = mid + Math.imul(al0, bh1) | 0;\n mid = mid + Math.imul(ah0, bl1) | 0;\n hi = hi + Math.imul(ah0, bh1) | 0;\n var w1 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = mid + Math.imul(ah2, bl0) | 0;\n hi = Math.imul(ah2, bh0);\n lo = lo + Math.imul(al1, bl1) | 0;\n mid = mid + Math.imul(al1, bh1) | 0;\n mid = mid + Math.imul(ah1, bl1) | 0;\n hi = hi + Math.imul(ah1, bh1) | 0;\n lo = lo + Math.imul(al0, bl2) | 0;\n mid = mid + Math.imul(al0, bh2) | 0;\n mid = mid + Math.imul(ah0, bl2) | 0;\n hi = hi + Math.imul(ah0, bh2) | 0;\n var w2 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = mid + Math.imul(ah3, bl0) | 0;\n hi = Math.imul(ah3, bh0);\n lo = lo + Math.imul(al2, bl1) | 0;\n mid = mid + Math.imul(al2, bh1) | 0;\n mid = mid + Math.imul(ah2, bl1) | 0;\n hi = hi + Math.imul(ah2, bh1) | 0;\n lo = lo + Math.imul(al1, bl2) | 0;\n mid = mid + Math.imul(al1, bh2) | 0;\n mid = mid + Math.imul(ah1, bl2) | 0;\n hi = hi + Math.imul(ah1, bh2) | 0;\n lo = lo + Math.imul(al0, bl3) | 0;\n mid = mid + Math.imul(al0, bh3) | 0;\n mid = mid + Math.imul(ah0, bl3) | 0;\n hi = hi + Math.imul(ah0, bh3) | 0;\n var w3 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = mid + Math.imul(ah4, bl0) | 0;\n hi = Math.imul(ah4, bh0);\n lo = lo + Math.imul(al3, bl1) | 0;\n mid = mid + Math.imul(al3, bh1) | 0;\n mid = mid + Math.imul(ah3, bl1) | 0;\n hi = hi + Math.imul(ah3, bh1) | 0;\n lo = lo + Math.imul(al2, bl2) | 0;\n mid = mid + Math.imul(al2, bh2) | 0;\n mid = mid + Math.imul(ah2, bl2) | 0;\n hi = hi + Math.imul(ah2, bh2) | 0;\n lo = lo + Math.imul(al1, bl3) | 0;\n mid = mid + Math.imul(al1, bh3) | 0;\n mid = mid + Math.imul(ah1, bl3) | 0;\n hi = hi + Math.imul(ah1, bh3) | 0;\n lo = lo + Math.imul(al0, bl4) | 0;\n mid = mid + Math.imul(al0, bh4) | 0;\n mid = mid + Math.imul(ah0, bl4) | 0;\n hi = hi + Math.imul(ah0, bh4) | 0;\n var w4 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = mid + Math.imul(ah5, bl0) | 0;\n hi = Math.imul(ah5, bh0);\n lo = lo + Math.imul(al4, bl1) | 0;\n mid = mid + Math.imul(al4, bh1) | 0;\n mid = mid + Math.imul(ah4, bl1) | 0;\n hi = hi + Math.imul(ah4, bh1) | 0;\n lo = lo + Math.imul(al3, bl2) | 0;\n mid = mid + Math.imul(al3, bh2) | 0;\n mid = mid + Math.imul(ah3, bl2) | 0;\n hi = hi + Math.imul(ah3, bh2) | 0;\n lo = lo + Math.imul(al2, bl3) | 0;\n mid = mid + Math.imul(al2, bh3) | 0;\n mid = mid + Math.imul(ah2, bl3) | 0;\n hi = hi + Math.imul(ah2, bh3) | 0;\n lo = lo + Math.imul(al1, bl4) | 0;\n mid = mid + Math.imul(al1, bh4) | 0;\n mid = mid + Math.imul(ah1, bl4) | 0;\n hi = hi + Math.imul(ah1, bh4) | 0;\n lo = lo + Math.imul(al0, bl5) | 0;\n mid = mid + Math.imul(al0, bh5) | 0;\n mid = mid + Math.imul(ah0, bl5) | 0;\n hi = hi + Math.imul(ah0, bh5) | 0;\n var w5 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = mid + Math.imul(ah6, bl0) | 0;\n hi = Math.imul(ah6, bh0);\n lo = lo + Math.imul(al5, bl1) | 0;\n mid = mid + Math.imul(al5, bh1) | 0;\n mid = mid + Math.imul(ah5, bl1) | 0;\n hi = hi + Math.imul(ah5, bh1) | 0;\n lo = lo + Math.imul(al4, bl2) | 0;\n mid = mid + Math.imul(al4, bh2) | 0;\n mid = mid + Math.imul(ah4, bl2) | 0;\n hi = hi + Math.imul(ah4, bh2) | 0;\n lo = lo + Math.imul(al3, bl3) | 0;\n mid = mid + Math.imul(al3, bh3) | 0;\n mid = mid + Math.imul(ah3, bl3) | 0;\n hi = hi + Math.imul(ah3, bh3) | 0;\n lo = lo + Math.imul(al2, bl4) | 0;\n mid = mid + Math.imul(al2, bh4) | 0;\n mid = mid + Math.imul(ah2, bl4) | 0;\n hi = hi + Math.imul(ah2, bh4) | 0;\n lo = lo + Math.imul(al1, bl5) | 0;\n mid = mid + Math.imul(al1, bh5) | 0;\n mid = mid + Math.imul(ah1, bl5) | 0;\n hi = hi + Math.imul(ah1, bh5) | 0;\n lo = lo + Math.imul(al0, bl6) | 0;\n mid = mid + Math.imul(al0, bh6) | 0;\n mid = mid + Math.imul(ah0, bl6) | 0;\n hi = hi + Math.imul(ah0, bh6) | 0;\n var w6 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = mid + Math.imul(ah7, bl0) | 0;\n hi = Math.imul(ah7, bh0);\n lo = lo + Math.imul(al6, bl1) | 0;\n mid = mid + Math.imul(al6, bh1) | 0;\n mid = mid + Math.imul(ah6, bl1) | 0;\n hi = hi + Math.imul(ah6, bh1) | 0;\n lo = lo + Math.imul(al5, bl2) | 0;\n mid = mid + Math.imul(al5, bh2) | 0;\n mid = mid + Math.imul(ah5, bl2) | 0;\n hi = hi + Math.imul(ah5, bh2) | 0;\n lo = lo + Math.imul(al4, bl3) | 0;\n mid = mid + Math.imul(al4, bh3) | 0;\n mid = mid + Math.imul(ah4, bl3) | 0;\n hi = hi + Math.imul(ah4, bh3) | 0;\n lo = lo + Math.imul(al3, bl4) | 0;\n mid = mid + Math.imul(al3, bh4) | 0;\n mid = mid + Math.imul(ah3, bl4) | 0;\n hi = hi + Math.imul(ah3, bh4) | 0;\n lo = lo + Math.imul(al2, bl5) | 0;\n mid = mid + Math.imul(al2, bh5) | 0;\n mid = mid + Math.imul(ah2, bl5) | 0;\n hi = hi + Math.imul(ah2, bh5) | 0;\n lo = lo + Math.imul(al1, bl6) | 0;\n mid = mid + Math.imul(al1, bh6) | 0;\n mid = mid + Math.imul(ah1, bl6) | 0;\n hi = hi + Math.imul(ah1, bh6) | 0;\n lo = lo + Math.imul(al0, bl7) | 0;\n mid = mid + Math.imul(al0, bh7) | 0;\n mid = mid + Math.imul(ah0, bl7) | 0;\n hi = hi + Math.imul(ah0, bh7) | 0;\n var w7 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = mid + Math.imul(ah8, bl0) | 0;\n hi = Math.imul(ah8, bh0);\n lo = lo + Math.imul(al7, bl1) | 0;\n mid = mid + Math.imul(al7, bh1) | 0;\n mid = mid + Math.imul(ah7, bl1) | 0;\n hi = hi + Math.imul(ah7, bh1) | 0;\n lo = lo + Math.imul(al6, bl2) | 0;\n mid = mid + Math.imul(al6, bh2) | 0;\n mid = mid + Math.imul(ah6, bl2) | 0;\n hi = hi + Math.imul(ah6, bh2) | 0;\n lo = lo + Math.imul(al5, bl3) | 0;\n mid = mid + Math.imul(al5, bh3) | 0;\n mid = mid + Math.imul(ah5, bl3) | 0;\n hi = hi + Math.imul(ah5, bh3) | 0;\n lo = lo + Math.imul(al4, bl4) | 0;\n mid = mid + Math.imul(al4, bh4) | 0;\n mid = mid + Math.imul(ah4, bl4) | 0;\n hi = hi + Math.imul(ah4, bh4) | 0;\n lo = lo + Math.imul(al3, bl5) | 0;\n mid = mid + Math.imul(al3, bh5) | 0;\n mid = mid + Math.imul(ah3, bl5) | 0;\n hi = hi + Math.imul(ah3, bh5) | 0;\n lo = lo + Math.imul(al2, bl6) | 0;\n mid = mid + Math.imul(al2, bh6) | 0;\n mid = mid + Math.imul(ah2, bl6) | 0;\n hi = hi + Math.imul(ah2, bh6) | 0;\n lo = lo + Math.imul(al1, bl7) | 0;\n mid = mid + Math.imul(al1, bh7) | 0;\n mid = mid + Math.imul(ah1, bl7) | 0;\n hi = hi + Math.imul(ah1, bh7) | 0;\n lo = lo + Math.imul(al0, bl8) | 0;\n mid = mid + Math.imul(al0, bh8) | 0;\n mid = mid + Math.imul(ah0, bl8) | 0;\n hi = hi + Math.imul(ah0, bh8) | 0;\n var w8 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = mid + Math.imul(ah9, bl0) | 0;\n hi = Math.imul(ah9, bh0);\n lo = lo + Math.imul(al8, bl1) | 0;\n mid = mid + Math.imul(al8, bh1) | 0;\n mid = mid + Math.imul(ah8, bl1) | 0;\n hi = hi + Math.imul(ah8, bh1) | 0;\n lo = lo + Math.imul(al7, bl2) | 0;\n mid = mid + Math.imul(al7, bh2) | 0;\n mid = mid + Math.imul(ah7, bl2) | 0;\n hi = hi + Math.imul(ah7, bh2) | 0;\n lo = lo + Math.imul(al6, bl3) | 0;\n mid = mid + Math.imul(al6, bh3) | 0;\n mid = mid + Math.imul(ah6, bl3) | 0;\n hi = hi + Math.imul(ah6, bh3) | 0;\n lo = lo + Math.imul(al5, bl4) | 0;\n mid = mid + Math.imul(al5, bh4) | 0;\n mid = mid + Math.imul(ah5, bl4) | 0;\n hi = hi + Math.imul(ah5, bh4) | 0;\n lo = lo + Math.imul(al4, bl5) | 0;\n mid = mid + Math.imul(al4, bh5) | 0;\n mid = mid + Math.imul(ah4, bl5) | 0;\n hi = hi + Math.imul(ah4, bh5) | 0;\n lo = lo + Math.imul(al3, bl6) | 0;\n mid = mid + Math.imul(al3, bh6) | 0;\n mid = mid + Math.imul(ah3, bl6) | 0;\n hi = hi + Math.imul(ah3, bh6) | 0;\n lo = lo + Math.imul(al2, bl7) | 0;\n mid = mid + Math.imul(al2, bh7) | 0;\n mid = mid + Math.imul(ah2, bl7) | 0;\n hi = hi + Math.imul(ah2, bh7) | 0;\n lo = lo + Math.imul(al1, bl8) | 0;\n mid = mid + Math.imul(al1, bh8) | 0;\n mid = mid + Math.imul(ah1, bl8) | 0;\n hi = hi + Math.imul(ah1, bh8) | 0;\n lo = lo + Math.imul(al0, bl9) | 0;\n mid = mid + Math.imul(al0, bh9) | 0;\n mid = mid + Math.imul(ah0, bl9) | 0;\n hi = hi + Math.imul(ah0, bh9) | 0;\n var w9 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = mid + Math.imul(ah9, bl1) | 0;\n hi = Math.imul(ah9, bh1);\n lo = lo + Math.imul(al8, bl2) | 0;\n mid = mid + Math.imul(al8, bh2) | 0;\n mid = mid + Math.imul(ah8, bl2) | 0;\n hi = hi + Math.imul(ah8, bh2) | 0;\n lo = lo + Math.imul(al7, bl3) | 0;\n mid = mid + Math.imul(al7, bh3) | 0;\n mid = mid + Math.imul(ah7, bl3) | 0;\n hi = hi + Math.imul(ah7, bh3) | 0;\n lo = lo + Math.imul(al6, bl4) | 0;\n mid = mid + Math.imul(al6, bh4) | 0;\n mid = mid + Math.imul(ah6, bl4) | 0;\n hi = hi + Math.imul(ah6, bh4) | 0;\n lo = lo + Math.imul(al5, bl5) | 0;\n mid = mid + Math.imul(al5, bh5) | 0;\n mid = mid + Math.imul(ah5, bl5) | 0;\n hi = hi + Math.imul(ah5, bh5) | 0;\n lo = lo + Math.imul(al4, bl6) | 0;\n mid = mid + Math.imul(al4, bh6) | 0;\n mid = mid + Math.imul(ah4, bl6) | 0;\n hi = hi + Math.imul(ah4, bh6) | 0;\n lo = lo + Math.imul(al3, bl7) | 0;\n mid = mid + Math.imul(al3, bh7) | 0;\n mid = mid + Math.imul(ah3, bl7) | 0;\n hi = hi + Math.imul(ah3, bh7) | 0;\n lo = lo + Math.imul(al2, bl8) | 0;\n mid = mid + Math.imul(al2, bh8) | 0;\n mid = mid + Math.imul(ah2, bl8) | 0;\n hi = hi + Math.imul(ah2, bh8) | 0;\n lo = lo + Math.imul(al1, bl9) | 0;\n mid = mid + Math.imul(al1, bh9) | 0;\n mid = mid + Math.imul(ah1, bl9) | 0;\n hi = hi + Math.imul(ah1, bh9) | 0;\n var w10 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = mid + Math.imul(ah9, bl2) | 0;\n hi = Math.imul(ah9, bh2);\n lo = lo + Math.imul(al8, bl3) | 0;\n mid = mid + Math.imul(al8, bh3) | 0;\n mid = mid + Math.imul(ah8, bl3) | 0;\n hi = hi + Math.imul(ah8, bh3) | 0;\n lo = lo + Math.imul(al7, bl4) | 0;\n mid = mid + Math.imul(al7, bh4) | 0;\n mid = mid + Math.imul(ah7, bl4) | 0;\n hi = hi + Math.imul(ah7, bh4) | 0;\n lo = lo + Math.imul(al6, bl5) | 0;\n mid = mid + Math.imul(al6, bh5) | 0;\n mid = mid + Math.imul(ah6, bl5) | 0;\n hi = hi + Math.imul(ah6, bh5) | 0;\n lo = lo + Math.imul(al5, bl6) | 0;\n mid = mid + Math.imul(al5, bh6) | 0;\n mid = mid + Math.imul(ah5, bl6) | 0;\n hi = hi + Math.imul(ah5, bh6) | 0;\n lo = lo + Math.imul(al4, bl7) | 0;\n mid = mid + Math.imul(al4, bh7) | 0;\n mid = mid + Math.imul(ah4, bl7) | 0;\n hi = hi + Math.imul(ah4, bh7) | 0;\n lo = lo + Math.imul(al3, bl8) | 0;\n mid = mid + Math.imul(al3, bh8) | 0;\n mid = mid + Math.imul(ah3, bl8) | 0;\n hi = hi + Math.imul(ah3, bh8) | 0;\n lo = lo + Math.imul(al2, bl9) | 0;\n mid = mid + Math.imul(al2, bh9) | 0;\n mid = mid + Math.imul(ah2, bl9) | 0;\n hi = hi + Math.imul(ah2, bh9) | 0;\n var w11 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = mid + Math.imul(ah9, bl3) | 0;\n hi = Math.imul(ah9, bh3);\n lo = lo + Math.imul(al8, bl4) | 0;\n mid = mid + Math.imul(al8, bh4) | 0;\n mid = mid + Math.imul(ah8, bl4) | 0;\n hi = hi + Math.imul(ah8, bh4) | 0;\n lo = lo + Math.imul(al7, bl5) | 0;\n mid = mid + Math.imul(al7, bh5) | 0;\n mid = mid + Math.imul(ah7, bl5) | 0;\n hi = hi + Math.imul(ah7, bh5) | 0;\n lo = lo + Math.imul(al6, bl6) | 0;\n mid = mid + Math.imul(al6, bh6) | 0;\n mid = mid + Math.imul(ah6, bl6) | 0;\n hi = hi + Math.imul(ah6, bh6) | 0;\n lo = lo + Math.imul(al5, bl7) | 0;\n mid = mid + Math.imul(al5, bh7) | 0;\n mid = mid + Math.imul(ah5, bl7) | 0;\n hi = hi + Math.imul(ah5, bh7) | 0;\n lo = lo + Math.imul(al4, bl8) | 0;\n mid = mid + Math.imul(al4, bh8) | 0;\n mid = mid + Math.imul(ah4, bl8) | 0;\n hi = hi + Math.imul(ah4, bh8) | 0;\n lo = lo + Math.imul(al3, bl9) | 0;\n mid = mid + Math.imul(al3, bh9) | 0;\n mid = mid + Math.imul(ah3, bl9) | 0;\n hi = hi + Math.imul(ah3, bh9) | 0;\n var w12 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = mid + Math.imul(ah9, bl4) | 0;\n hi = Math.imul(ah9, bh4);\n lo = lo + Math.imul(al8, bl5) | 0;\n mid = mid + Math.imul(al8, bh5) | 0;\n mid = mid + Math.imul(ah8, bl5) | 0;\n hi = hi + Math.imul(ah8, bh5) | 0;\n lo = lo + Math.imul(al7, bl6) | 0;\n mid = mid + Math.imul(al7, bh6) | 0;\n mid = mid + Math.imul(ah7, bl6) | 0;\n hi = hi + Math.imul(ah7, bh6) | 0;\n lo = lo + Math.imul(al6, bl7) | 0;\n mid = mid + Math.imul(al6, bh7) | 0;\n mid = mid + Math.imul(ah6, bl7) | 0;\n hi = hi + Math.imul(ah6, bh7) | 0;\n lo = lo + Math.imul(al5, bl8) | 0;\n mid = mid + Math.imul(al5, bh8) | 0;\n mid = mid + Math.imul(ah5, bl8) | 0;\n hi = hi + Math.imul(ah5, bh8) | 0;\n lo = lo + Math.imul(al4, bl9) | 0;\n mid = mid + Math.imul(al4, bh9) | 0;\n mid = mid + Math.imul(ah4, bl9) | 0;\n hi = hi + Math.imul(ah4, bh9) | 0;\n var w13 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = mid + Math.imul(ah9, bl5) | 0;\n hi = Math.imul(ah9, bh5);\n lo = lo + Math.imul(al8, bl6) | 0;\n mid = mid + Math.imul(al8, bh6) | 0;\n mid = mid + Math.imul(ah8, bl6) | 0;\n hi = hi + Math.imul(ah8, bh6) | 0;\n lo = lo + Math.imul(al7, bl7) | 0;\n mid = mid + Math.imul(al7, bh7) | 0;\n mid = mid + Math.imul(ah7, bl7) | 0;\n hi = hi + Math.imul(ah7, bh7) | 0;\n lo = lo + Math.imul(al6, bl8) | 0;\n mid = mid + Math.imul(al6, bh8) | 0;\n mid = mid + Math.imul(ah6, bl8) | 0;\n hi = hi + Math.imul(ah6, bh8) | 0;\n lo = lo + Math.imul(al5, bl9) | 0;\n mid = mid + Math.imul(al5, bh9) | 0;\n mid = mid + Math.imul(ah5, bl9) | 0;\n hi = hi + Math.imul(ah5, bh9) | 0;\n var w14 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = mid + Math.imul(ah9, bl6) | 0;\n hi = Math.imul(ah9, bh6);\n lo = lo + Math.imul(al8, bl7) | 0;\n mid = mid + Math.imul(al8, bh7) | 0;\n mid = mid + Math.imul(ah8, bl7) | 0;\n hi = hi + Math.imul(ah8, bh7) | 0;\n lo = lo + Math.imul(al7, bl8) | 0;\n mid = mid + Math.imul(al7, bh8) | 0;\n mid = mid + Math.imul(ah7, bl8) | 0;\n hi = hi + Math.imul(ah7, bh8) | 0;\n lo = lo + Math.imul(al6, bl9) | 0;\n mid = mid + Math.imul(al6, bh9) | 0;\n mid = mid + Math.imul(ah6, bl9) | 0;\n hi = hi + Math.imul(ah6, bh9) | 0;\n var w15 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = mid + Math.imul(ah9, bl7) | 0;\n hi = Math.imul(ah9, bh7);\n lo = lo + Math.imul(al8, bl8) | 0;\n mid = mid + Math.imul(al8, bh8) | 0;\n mid = mid + Math.imul(ah8, bl8) | 0;\n hi = hi + Math.imul(ah8, bh8) | 0;\n lo = lo + Math.imul(al7, bl9) | 0;\n mid = mid + Math.imul(al7, bh9) | 0;\n mid = mid + Math.imul(ah7, bl9) | 0;\n hi = hi + Math.imul(ah7, bh9) | 0;\n var w16 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = mid + Math.imul(ah9, bl8) | 0;\n hi = Math.imul(ah9, bh8);\n lo = lo + Math.imul(al8, bl9) | 0;\n mid = mid + Math.imul(al8, bh9) | 0;\n mid = mid + Math.imul(ah8, bl9) | 0;\n hi = hi + Math.imul(ah8, bh9) | 0;\n var w17 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = mid + Math.imul(ah9, bl9) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n\n return out;\n }; // Polyfill comb\n\n\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo(self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n var carry = 0;\n var hncarry = 0;\n\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n var lo = r & 0x3ffffff;\n ncarry = ncarry + (r / 0x4000000 | 0) | 0;\n lo = lo + rword | 0;\n rword = lo & 0x3ffffff;\n ncarry = ncarry + (lo >>> 26) | 0;\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo(self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo(num, out) {\n var res;\n var len = this.length + num.length;\n\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n }; // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n\n function FFTM(x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT(N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n }; // Returns binary-reversed representation of `x`\n\n\n FFTM.prototype.revBin = function revBin(x, l, N) {\n if (x === 0 || x === N - 1) return x;\n var rb = 0;\n\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << l - i - 1;\n x >>= 1;\n }\n\n return rb;\n }; // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n\n\n FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n var rx = rtwdf_ * ro - itwdf_ * io;\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n /* jshint maxdepth : false */\n\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b(n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate(rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n t = iws[i];\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b(ws, N) {\n var carry = 0;\n\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry;\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {\n var carry = 0;\n\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n rws[2 * i] = carry & 0x1fff;\n carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff;\n carry = carry >>> 13;\n } // Pad with zeroes\n\n\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub(N) {\n var ph = new Array(N);\n\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp(x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n var rmws = out.words;\n rmws.length = N;\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n }; // Multiply `this` by `num`\n\n\n BN.prototype.mul = function mul(num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n }; // Multiply employing FFT\n\n\n BN.prototype.mulf = function mulf(num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n }; // In-place Multiplication\n\n\n BN.prototype.imul = function imul(num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000); // Carry\n\n var carry = 0;\n\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += w / 0x4000000 | 0; // NOTE: lo is 27bit maximum\n\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln(num) {\n return this.clone().imuln(num);\n }; // `this` * `this`\n\n\n BN.prototype.sqr = function sqr() {\n return this.mul(this);\n }; // `this` * `this` in-place\n\n\n BN.prototype.isqr = function isqr() {\n return this.imul(this.clone());\n }; // Math.pow(`this`, `num`)\n\n\n BN.prototype.pow = function pow(num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n var res = this;\n\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n res = res.mul(q);\n }\n }\n\n return res;\n }; // Shift-left in-place\n\n\n BN.prototype.iushln = function iushln(bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = 0x3ffffff >>> 26 - r << 26 - r;\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = (this.words[i] | 0) - newCarry << r;\n this.words[i] = c | carry;\n carry = newCarry >>> 26 - r;\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln(bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n }; // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n\n\n BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n\n if (hint) {\n h = (hint - hint % 26) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n var maskedWords = extended;\n h -= s;\n h = Math.max(0, h); // Extended mode, copy masked part\n\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n\n maskedWords.length = s;\n }\n\n if (s === 0) {// No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = carry << 26 - r | word >>> r;\n carry = word & mask;\n } // Push carried bits as a mask\n\n\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn(bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n }; // Shift-left\n\n\n BN.prototype.shln = function shln(bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln(bits) {\n return this.clone().iushln(bits);\n }; // Shift-right\n\n\n BN.prototype.shrn = function shrn(bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn(bits) {\n return this.clone().iushrn(bits);\n }; // Test if n bit is set\n\n\n BN.prototype.testn = function testn(bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) return false; // Check bit and return\n\n var w = this.words[s];\n return !!(w & q);\n }; // Return only lowers bits of number (in-place)\n\n\n BN.prototype.imaskn = function imaskn(bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n }; // Return only lowers bits of number\n\n\n BN.prototype.maskn = function maskn(bits) {\n return this.clone().imaskn(bits);\n }; // Add plain number `num` to `this`\n\n\n BN.prototype.iaddn = function iaddn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num); // Possible sign change\n\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n } // Add without checks\n\n\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn(num) {\n this.words[0] += num; // Carry\n\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n\n this.length = Math.max(this.length, i + 1);\n return this;\n }; // Subtract plain number `num` from `this`\n\n\n BN.prototype.isubn = function isubn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn(num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn(num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs() {\n this.negative = 0;\n return this;\n };\n\n BN.prototype.abs = function abs() {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - (right / 0x4000000 | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip(); // Subtraction overflow\n\n assert(carry === -1);\n carry = 0;\n\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n\n this.negative = 1;\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv(num, mode) {\n var shift = this.length - num.length;\n var a = this.clone();\n var b = num; // Normalize\n\n var bhi = b.words[b.length - 1] | 0;\n\n var bhiBits = this._countBits(bhi);\n\n shift = 26 - bhiBits;\n\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n } // Initialize quotient\n\n\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n\n if (diff.negative === 0) {\n a = diff;\n\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n\n qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n\n a._ishlnsubmul(b, 1, j);\n\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n\n if (q) {\n q.words[j] = qj;\n }\n }\n\n if (q) {\n q.strip();\n }\n\n a.strip(); // Denormalize\n\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n }; // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n\n\n BN.prototype.divmod = function divmod(num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n } // Both numbers are positive at this point\n // Strip both numbers to approximate shift value\n\n\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n } // Very short reduction\n\n\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n }; // Find `this` / `num`\n\n\n BN.prototype.div = function div(num) {\n return this.divmod(num, 'div', false).div;\n }; // Find `this` % `num`\n\n\n BN.prototype.mod = function mod(num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod(num) {\n return this.divmod(num, 'mod', true).mod;\n }; // Find Round(`this` / `num`)\n\n\n BN.prototype.divRound = function divRound(num) {\n var dm = this.divmod(num); // Fast case - exact division\n\n if (dm.mod.isZero()) return dm.div;\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half); // Round down\n\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn(num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n var acc = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n }; // In-place division by number\n\n\n BN.prototype.idivn = function idivn(num) {\n assert(num <= 0x3ffffff);\n var carry = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = w / num | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn(num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n } // A * x + B * y = x\n\n\n var A = new BN(1);\n var B = new BN(0); // C * x + D * y = y\n\n var C = new BN(0);\n var D = new BN(1);\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {\n ;\n }\n\n if (i > 0) {\n x.iushrn(i);\n\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {\n ;\n }\n\n if (j > 0) {\n y.iushrn(j);\n\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n }; // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n\n\n BN.prototype._invmp = function _invmp(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {\n ;\n }\n\n if (i > 0) {\n a.iushrn(i);\n\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {\n ;\n }\n\n if (j > 0) {\n b.iushrn(j);\n\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd(num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0; // Remove common factor of two\n\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n }; // Invert number in the field F(num)\n\n\n BN.prototype.invm = function invm(num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven() {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd() {\n return (this.words[0] & 1) === 1;\n }; // And first word and num\n\n\n BN.prototype.andln = function andln(num) {\n return this.words[0] & num;\n }; // Increment at the bit position in-line\n\n\n BN.prototype.bincn = function bincn(bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) {\n this._expand(s + 1);\n\n this.words[s] |= q;\n return this;\n } // Add bit and propagate, if needed\n\n\n var carry = q;\n\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.isZero = function isZero() {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn(num) {\n var negative = num < 0;\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n this.strip();\n var res;\n\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n\n\n BN.prototype.cmp = function cmp(num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Unsigned comparison\n\n\n BN.prototype.ucmp = function ucmp(num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n var res = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n if (a === b) continue;\n\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n\n break;\n }\n\n return res;\n };\n\n BN.prototype.gtn = function gtn(num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt(num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten(num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte(num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn(num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt(num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten(num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte(num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn(num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq(num) {\n return this.cmp(num) === 0;\n }; //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n\n\n BN.red = function red(num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed(ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed() {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed(ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed(ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd(num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd(num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub(num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub(num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl(num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul(num) {\n assert(this.red, 'redMul works only with red numbers');\n\n this.red._verify2(this, num);\n\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul(num) {\n assert(this.red, 'redMul works only with red numbers');\n\n this.red._verify2(this, num);\n\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr() {\n assert(this.red, 'redSqr works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr() {\n assert(this.red, 'redISqr works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.isqr(this);\n }; // Square root over p\n\n\n BN.prototype.redSqrt = function redSqrt() {\n assert(this.red, 'redSqrt works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm() {\n assert(this.red, 'redInvm works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.invm(this);\n }; // Return negative clone of `this` % `red modulo`\n\n\n BN.prototype.redNeg = function redNeg() {\n assert(this.red, 'redNeg works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow(num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n\n this.red._verify1(this);\n\n return this.red.pow(this, num);\n }; // Prime numbers with efficient reduction\n\n\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n }; // Pseudo-Mersenne prime\n\n function MPrime(name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp() {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce(num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split(input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK(num) {\n return num.imul(this.k);\n };\n\n function K256() {\n MPrime.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n\n inherits(K256, MPrime);\n\n K256.prototype.split = function split(input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n var outLen = Math.min(input.length, 9);\n\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n } // Shift by 9 limbs\n\n\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = (next & mask) << 4 | prev >>> 22;\n prev = next;\n }\n\n prev >>>= 22;\n input.words[i - 10] = prev;\n\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK(num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n var lo = 0;\n\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + (lo / 0x4000000 | 0);\n } // Fast length reduction\n\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n\n return num;\n };\n\n function P224() {\n MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n\n inherits(P224, MPrime);\n\n function P192() {\n MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n\n inherits(P192, MPrime);\n\n function P25519() {\n // 2 ^ 255 - 19\n MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK(num) {\n // K = 0x13\n var carry = 0;\n\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n num.words[i] = lo;\n carry = hi;\n }\n\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n\n return num;\n }; // Exported mostly for testing purposes, use plain name instead\n\n\n BN._prime = function prime(name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n var prime;\n\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n\n primes[name] = prime;\n return prime;\n }; //\n // Base reduction engine\n //\n\n\n function Red(m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1(a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2(a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red, 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod(a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg(a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add(a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd(a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n\n return res;\n };\n\n Red.prototype.sub = function sub(a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub(a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res;\n };\n\n Red.prototype.shl = function shl(a, num) {\n this._verify1(a);\n\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr(a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr(a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt(a) {\n if (a.isZero()) return a.clone();\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1); // Fast case\n\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n var q = this.m.subn(1);\n var s = 0;\n\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n\n assert(!q.isZero());\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg(); // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n\n while (t.cmp(one) !== 0) {\n var tmp = t;\n\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm(a) {\n var inv = a._invmp(this.m);\n\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow(a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n\n for (var j = start - 1; j >= 0; j--) {\n var bit = word >> j & 1;\n\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo(num) {\n var r = num.umod(this.m);\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom(num) {\n var res = num.clone();\n res.red = null;\n return res;\n }; //\n // Montgomery method engine\n //\n\n\n BN.mont = function mont(num) {\n return new Mont(num);\n };\n\n function Mont(m) {\n Red.call(this, m);\n this.shift = this.m.bitLength();\n\n if (this.shift % 26 !== 0) {\n this.shift += 26 - this.shift % 26;\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo(num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom(num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul(a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul(a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm(a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})( false || module, this);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/create-ecdh/node_modules/bn.js/lib/bn.js?"); | ||
| 862 | + | ||
| 863 | +/***/ }), | ||
| 864 | + | ||
| 865 | +/***/ "./node_modules/create-hash/browser.js": | ||
| 866 | +/*!*********************************************!*\ | ||
| 867 | + !*** ./node_modules/create-hash/browser.js ***! | ||
| 868 | + \*********************************************/ | ||
| 869 | +/*! no static exports found */ | ||
| 870 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 871 | + | ||
| 872 | +"use strict"; | ||
| 873 | +eval("\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar MD5 = __webpack_require__(/*! md5.js */ \"./node_modules/md5.js/index.js\");\n\nvar RIPEMD160 = __webpack_require__(/*! ripemd160 */ \"./node_modules/ripemd160/index.js\");\n\nvar sha = __webpack_require__(/*! sha.js */ \"./node_modules/sha.js/index.js\");\n\nvar Base = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\");\n\nfunction Hash(hash) {\n Base.call(this, 'digest');\n this._hash = hash;\n}\n\ninherits(Hash, Base);\n\nHash.prototype._update = function (data) {\n this._hash.update(data);\n};\n\nHash.prototype._final = function () {\n return this._hash.digest();\n};\n\nmodule.exports = function createHash(alg) {\n alg = alg.toLowerCase();\n if (alg === 'md5') return new MD5();\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160();\n return new Hash(sha(alg));\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/create-hash/browser.js?"); | ||
| 874 | + | ||
| 875 | +/***/ }), | ||
| 876 | + | ||
| 877 | +/***/ "./node_modules/create-hash/md5.js": | ||
| 878 | +/*!*****************************************!*\ | ||
| 879 | + !*** ./node_modules/create-hash/md5.js ***! | ||
| 880 | + \*****************************************/ | ||
| 881 | +/*! no static exports found */ | ||
| 882 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 883 | + | ||
| 884 | +eval("var MD5 = __webpack_require__(/*! md5.js */ \"./node_modules/md5.js/index.js\");\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest();\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/create-hash/md5.js?"); | ||
| 885 | + | ||
| 886 | +/***/ }), | ||
| 887 | + | ||
| 888 | +/***/ "./node_modules/create-hmac/browser.js": | ||
| 889 | +/*!*********************************************!*\ | ||
| 890 | + !*** ./node_modules/create-hmac/browser.js ***! | ||
| 891 | + \*********************************************/ | ||
| 892 | +/*! no static exports found */ | ||
| 893 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 894 | + | ||
| 895 | +"use strict"; | ||
| 896 | +eval("\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Legacy = __webpack_require__(/*! ./legacy */ \"./node_modules/create-hmac/legacy.js\");\n\nvar Base = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar md5 = __webpack_require__(/*! create-hash/md5 */ \"./node_modules/create-hash/md5.js\");\n\nvar RIPEMD160 = __webpack_require__(/*! ripemd160 */ \"./node_modules/ripemd160/index.js\");\n\nvar sha = __webpack_require__(/*! sha.js */ \"./node_modules/sha.js/index.js\");\n\nvar ZEROS = Buffer.alloc(128);\n\nfunction Hmac(alg, key) {\n Base.call(this, 'digest');\n\n if (typeof key === 'string') {\n key = Buffer.from(key);\n }\n\n var blocksize = alg === 'sha512' || alg === 'sha384' ? 128 : 64;\n this._alg = alg;\n this._key = key;\n\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg);\n key = hash.update(key).digest();\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize);\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize);\n var opad = this._opad = Buffer.allocUnsafe(blocksize);\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36;\n opad[i] = key[i] ^ 0x5C;\n }\n\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg);\n\n this._hash.update(ipad);\n}\n\ninherits(Hmac, Base);\n\nHmac.prototype._update = function (data) {\n this._hash.update(data);\n};\n\nHmac.prototype._final = function () {\n var h = this._hash.digest();\n\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg);\n return hash.update(this._opad).update(h).digest();\n};\n\nmodule.exports = function createHmac(alg, key) {\n alg = alg.toLowerCase();\n\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key);\n }\n\n if (alg === 'md5') {\n return new Legacy(md5, key);\n }\n\n return new Hmac(alg, key);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/create-hmac/browser.js?"); | ||
| 897 | + | ||
| 898 | +/***/ }), | ||
| 899 | + | ||
| 900 | +/***/ "./node_modules/create-hmac/legacy.js": | ||
| 901 | +/*!********************************************!*\ | ||
| 902 | + !*** ./node_modules/create-hmac/legacy.js ***! | ||
| 903 | + \********************************************/ | ||
| 904 | +/*! no static exports found */ | ||
| 905 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 906 | + | ||
| 907 | +"use strict"; | ||
| 908 | +eval("\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar Base = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\");\n\nvar ZEROS = Buffer.alloc(128);\nvar blocksize = 64;\n\nfunction Hmac(alg, key) {\n Base.call(this, 'digest');\n\n if (typeof key === 'string') {\n key = Buffer.from(key);\n }\n\n this._alg = alg;\n this._key = key;\n\n if (key.length > blocksize) {\n key = alg(key);\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize);\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize);\n var opad = this._opad = Buffer.allocUnsafe(blocksize);\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36;\n opad[i] = key[i] ^ 0x5C;\n }\n\n this._hash = [ipad];\n}\n\ninherits(Hmac, Base);\n\nHmac.prototype._update = function (data) {\n this._hash.push(data);\n};\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash));\n\n return this._alg(Buffer.concat([this._opad, h]));\n};\n\nmodule.exports = Hmac;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/create-hmac/legacy.js?"); | ||
| 909 | + | ||
| 910 | +/***/ }), | ||
| 911 | + | ||
| 912 | +/***/ "./node_modules/crypto-browserify/index.js": | ||
| 913 | +/*!*************************************************!*\ | ||
| 914 | + !*** ./node_modules/crypto-browserify/index.js ***! | ||
| 915 | + \*************************************************/ | ||
| 916 | +/*! no static exports found */ | ||
| 917 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 918 | + | ||
| 919 | +"use strict"; | ||
| 920 | +eval("\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = __webpack_require__(/*! randombytes */ \"./node_modules/randombytes/browser.js\");\nexports.createHash = exports.Hash = __webpack_require__(/*! create-hash */ \"./node_modules/create-hash/browser.js\");\nexports.createHmac = exports.Hmac = __webpack_require__(/*! create-hmac */ \"./node_modules/create-hmac/browser.js\");\n\nvar algos = __webpack_require__(/*! browserify-sign/algos */ \"./node_modules/browserify-sign/algos.js\");\n\nvar algoKeys = Object.keys(algos);\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys);\n\nexports.getHashes = function () {\n return hashes;\n};\n\nvar p = __webpack_require__(/*! pbkdf2 */ \"./node_modules/pbkdf2/browser.js\");\n\nexports.pbkdf2 = p.pbkdf2;\nexports.pbkdf2Sync = p.pbkdf2Sync;\n\nvar aes = __webpack_require__(/*! browserify-cipher */ \"./node_modules/browserify-cipher/browser.js\");\n\nexports.Cipher = aes.Cipher;\nexports.createCipher = aes.createCipher;\nexports.Cipheriv = aes.Cipheriv;\nexports.createCipheriv = aes.createCipheriv;\nexports.Decipher = aes.Decipher;\nexports.createDecipher = aes.createDecipher;\nexports.Decipheriv = aes.Decipheriv;\nexports.createDecipheriv = aes.createDecipheriv;\nexports.getCiphers = aes.getCiphers;\nexports.listCiphers = aes.listCiphers;\n\nvar dh = __webpack_require__(/*! diffie-hellman */ \"./node_modules/diffie-hellman/browser.js\");\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup;\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup;\nexports.getDiffieHellman = dh.getDiffieHellman;\nexports.createDiffieHellman = dh.createDiffieHellman;\nexports.DiffieHellman = dh.DiffieHellman;\n\nvar sign = __webpack_require__(/*! browserify-sign */ \"./node_modules/browserify-sign/browser/index.js\");\n\nexports.createSign = sign.createSign;\nexports.Sign = sign.Sign;\nexports.createVerify = sign.createVerify;\nexports.Verify = sign.Verify;\nexports.createECDH = __webpack_require__(/*! create-ecdh */ \"./node_modules/create-ecdh/browser.js\");\n\nvar publicEncrypt = __webpack_require__(/*! public-encrypt */ \"./node_modules/public-encrypt/browser.js\");\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt;\nexports.privateEncrypt = publicEncrypt.privateEncrypt;\nexports.publicDecrypt = publicEncrypt.publicDecrypt;\nexports.privateDecrypt = publicEncrypt.privateDecrypt; // the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = __webpack_require__(/*! randomfill */ \"./node_modules/randomfill/browser.js\");\n\nexports.randomFill = rf.randomFill;\nexports.randomFillSync = rf.randomFillSync;\n\nexports.createCredentials = function () {\n throw new Error(['sorry, createCredentials is not implemented yet', 'we accept pull requests', 'https://github.com/crypto-browserify/crypto-browserify'].join('\\n'));\n};\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-browserify/index.js?"); | ||
| 921 | + | ||
| 922 | +/***/ }), | ||
| 923 | + | ||
| 924 | +/***/ "./node_modules/crypto-js/aes.js": | ||
| 925 | +/*!***************************************!*\ | ||
| 926 | + !*** ./node_modules/crypto-js/aes.js ***! | ||
| 927 | + \***************************************/ | ||
| 928 | +/*! no static exports found */ | ||
| 929 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 930 | + | ||
| 931 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./enc-base64 */ \"./node_modules/crypto-js/enc-base64.js\"), __webpack_require__(/*! ./md5 */ \"./node_modules/crypto-js/md5.js\"), __webpack_require__(/*! ./evpkdf */ \"./node_modules/crypto-js/evpkdf.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var BlockCipher = C_lib.BlockCipher;\n var C_algo = C.algo; // Lookup tables\n\n var SBOX = [];\n var INV_SBOX = [];\n var SUB_MIX_0 = [];\n var SUB_MIX_1 = [];\n var SUB_MIX_2 = [];\n var SUB_MIX_3 = [];\n var INV_SUB_MIX_0 = [];\n var INV_SUB_MIX_1 = [];\n var INV_SUB_MIX_2 = [];\n var INV_SUB_MIX_3 = []; // Compute lookup tables\n\n (function () {\n // Compute double table\n var d = [];\n\n for (var i = 0; i < 256; i++) {\n if (i < 128) {\n d[i] = i << 1;\n } else {\n d[i] = i << 1 ^ 0x11b;\n }\n } // Walk GF(2^8)\n\n\n var x = 0;\n var xi = 0;\n\n for (var i = 0; i < 256; i++) {\n // Compute sbox\n var sx = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4;\n sx = sx >>> 8 ^ sx & 0xff ^ 0x63;\n SBOX[x] = sx;\n INV_SBOX[sx] = x; // Compute multiplication\n\n var x2 = d[x];\n var x4 = d[x2];\n var x8 = d[x4]; // Compute sub bytes, mix columns tables\n\n var t = d[sx] * 0x101 ^ sx * 0x1010100;\n SUB_MIX_0[x] = t << 24 | t >>> 8;\n SUB_MIX_1[x] = t << 16 | t >>> 16;\n SUB_MIX_2[x] = t << 8 | t >>> 24;\n SUB_MIX_3[x] = t; // Compute inv sub bytes, inv mix columns tables\n\n var t = x8 * 0x1010101 ^ x4 * 0x10001 ^ x2 * 0x101 ^ x * 0x1010100;\n INV_SUB_MIX_0[sx] = t << 24 | t >>> 8;\n INV_SUB_MIX_1[sx] = t << 16 | t >>> 16;\n INV_SUB_MIX_2[sx] = t << 8 | t >>> 24;\n INV_SUB_MIX_3[sx] = t; // Compute next counter\n\n if (!x) {\n x = xi = 1;\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]];\n xi ^= d[d[xi]];\n }\n }\n })(); // Precomputed Rcon lookup\n\n\n var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n /**\n * AES block cipher algorithm.\n */\n\n var AES = C_algo.AES = BlockCipher.extend({\n _doReset: function _doReset() {\n var t; // Skip reset of nRounds has been set before and key did not change\n\n if (this._nRounds && this._keyPriorReset === this._key) {\n return;\n } // Shortcuts\n\n\n var key = this._keyPriorReset = this._key;\n var keyWords = key.words;\n var keySize = key.sigBytes / 4; // Compute number of rounds\n\n var nRounds = this._nRounds = keySize + 6; // Compute number of key schedule rows\n\n var ksRows = (nRounds + 1) * 4; // Compute key schedule\n\n var keySchedule = this._keySchedule = [];\n\n for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n if (ksRow < keySize) {\n keySchedule[ksRow] = keyWords[ksRow];\n } else {\n t = keySchedule[ksRow - 1];\n\n if (!(ksRow % keySize)) {\n // Rot word\n t = t << 8 | t >>> 24; // Sub word\n\n t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 0xff] << 16 | SBOX[t >>> 8 & 0xff] << 8 | SBOX[t & 0xff]; // Mix Rcon\n\n t ^= RCON[ksRow / keySize | 0] << 24;\n } else if (keySize > 6 && ksRow % keySize == 4) {\n // Sub word\n t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 0xff] << 16 | SBOX[t >>> 8 & 0xff] << 8 | SBOX[t & 0xff];\n }\n\n keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n }\n } // Compute inv key schedule\n\n\n var invKeySchedule = this._invKeySchedule = [];\n\n for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n var ksRow = ksRows - invKsRow;\n\n if (invKsRow % 4) {\n var t = keySchedule[ksRow];\n } else {\n var t = keySchedule[ksRow - 4];\n }\n\n if (invKsRow < 4 || ksRow <= 4) {\n invKeySchedule[invKsRow] = t;\n } else {\n invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[t >>> 16 & 0xff]] ^ INV_SUB_MIX_2[SBOX[t >>> 8 & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n }\n }\n },\n encryptBlock: function encryptBlock(M, offset) {\n this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n },\n decryptBlock: function decryptBlock(M, offset) {\n // Swap 2nd and 4th rows\n var t = M[offset + 1];\n M[offset + 1] = M[offset + 3];\n M[offset + 3] = t;\n\n this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX); // Inv swap 2nd and 4th rows\n\n\n var t = M[offset + 1];\n M[offset + 1] = M[offset + 3];\n M[offset + 3] = t;\n },\n _doCryptBlock: function _doCryptBlock(M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n // Shortcut\n var nRounds = this._nRounds; // Get input, add round key\n\n var s0 = M[offset] ^ keySchedule[0];\n var s1 = M[offset + 1] ^ keySchedule[1];\n var s2 = M[offset + 2] ^ keySchedule[2];\n var s3 = M[offset + 3] ^ keySchedule[3]; // Key schedule row counter\n\n var ksRow = 4; // Rounds\n\n for (var round = 1; round < nRounds; round++) {\n // Shift rows, sub bytes, mix columns, add round key\n var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[s1 >>> 16 & 0xff] ^ SUB_MIX_2[s2 >>> 8 & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[s2 >>> 16 & 0xff] ^ SUB_MIX_2[s3 >>> 8 & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[s3 >>> 16 & 0xff] ^ SUB_MIX_2[s0 >>> 8 & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[s0 >>> 16 & 0xff] ^ SUB_MIX_2[s1 >>> 8 & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++]; // Update state\n\n s0 = t0;\n s1 = t1;\n s2 = t2;\n s3 = t3;\n } // Shift rows, sub bytes, add round key\n\n\n var t0 = (SBOX[s0 >>> 24] << 24 | SBOX[s1 >>> 16 & 0xff] << 16 | SBOX[s2 >>> 8 & 0xff] << 8 | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n var t1 = (SBOX[s1 >>> 24] << 24 | SBOX[s2 >>> 16 & 0xff] << 16 | SBOX[s3 >>> 8 & 0xff] << 8 | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n var t2 = (SBOX[s2 >>> 24] << 24 | SBOX[s3 >>> 16 & 0xff] << 16 | SBOX[s0 >>> 8 & 0xff] << 8 | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n var t3 = (SBOX[s3 >>> 24] << 24 | SBOX[s0 >>> 16 & 0xff] << 16 | SBOX[s1 >>> 8 & 0xff] << 8 | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]; // Set output\n\n M[offset] = t0;\n M[offset + 1] = t1;\n M[offset + 2] = t2;\n M[offset + 3] = t3;\n },\n keySize: 256 / 32\n });\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n */\n\n C.AES = BlockCipher._createHelper(AES);\n })();\n\n return CryptoJS.AES;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/aes.js?"); | ||
| 932 | + | ||
| 933 | +/***/ }), | ||
| 934 | + | ||
| 935 | +/***/ "./node_modules/crypto-js/cipher-core.js": | ||
| 936 | +/*!***********************************************!*\ | ||
| 937 | + !*** ./node_modules/crypto-js/cipher-core.js ***! | ||
| 938 | + \***********************************************/ | ||
| 939 | +/*! no static exports found */ | ||
| 940 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 941 | + | ||
| 942 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./evpkdf */ \"./node_modules/crypto-js/evpkdf.js\"));\n } else {}\n})(this, function (CryptoJS) {\n /**\n * Cipher core components.\n */\n CryptoJS.lib.Cipher || function (undefined) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n var C_enc = C.enc;\n var Utf8 = C_enc.Utf8;\n var Base64 = C_enc.Base64;\n var C_algo = C.algo;\n var EvpKDF = C_algo.EvpKDF;\n /**\n * Abstract base cipher template.\n *\n * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n */\n\n var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n /**\n * Configuration options.\n *\n * @property {WordArray} iv The IV to use for this operation.\n */\n cfg: Base.extend(),\n\n /**\n * Creates this cipher in encryption mode.\n *\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {Cipher} A cipher instance.\n *\n * @static\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n */\n createEncryptor: function createEncryptor(key, cfg) {\n return this.create(this._ENC_XFORM_MODE, key, cfg);\n },\n\n /**\n * Creates this cipher in decryption mode.\n *\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {Cipher} A cipher instance.\n *\n * @static\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n */\n createDecryptor: function createDecryptor(key, cfg) {\n return this.create(this._DEC_XFORM_MODE, key, cfg);\n },\n\n /**\n * Initializes a newly created cipher.\n *\n * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n */\n init: function init(xformMode, key, cfg) {\n // Apply config defaults\n this.cfg = this.cfg.extend(cfg); // Store transform mode and key\n\n this._xformMode = xformMode;\n this._key = key; // Set initial values\n\n this.reset();\n },\n\n /**\n * Resets this cipher to its initial state.\n *\n * @example\n *\n * cipher.reset();\n */\n reset: function reset() {\n // Reset data buffer\n BufferedBlockAlgorithm.reset.call(this); // Perform concrete-cipher logic\n\n this._doReset();\n },\n\n /**\n * Adds data to be encrypted or decrypted.\n *\n * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n *\n * @return {WordArray} The data after processing.\n *\n * @example\n *\n * var encrypted = cipher.process('data');\n * var encrypted = cipher.process(wordArray);\n */\n process: function process(dataUpdate) {\n // Append\n this._append(dataUpdate); // Process available blocks\n\n\n return this._process();\n },\n\n /**\n * Finalizes the encryption or decryption process.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n *\n * @return {WordArray} The data after final processing.\n *\n * @example\n *\n * var encrypted = cipher.finalize();\n * var encrypted = cipher.finalize('data');\n * var encrypted = cipher.finalize(wordArray);\n */\n finalize: function finalize(dataUpdate) {\n // Final data update\n if (dataUpdate) {\n this._append(dataUpdate);\n } // Perform concrete-cipher logic\n\n\n var finalProcessedData = this._doFinalize();\n\n return finalProcessedData;\n },\n keySize: 128 / 32,\n ivSize: 128 / 32,\n _ENC_XFORM_MODE: 1,\n _DEC_XFORM_MODE: 2,\n\n /**\n * Creates shortcut functions to a cipher's object interface.\n *\n * @param {Cipher} cipher The cipher to create a helper for.\n *\n * @return {Object} An object with encrypt and decrypt shortcut functions.\n *\n * @static\n *\n * @example\n *\n * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n */\n _createHelper: function () {\n function selectCipherStrategy(key) {\n if (typeof key == 'string') {\n return PasswordBasedCipher;\n } else {\n return SerializableCipher;\n }\n }\n\n return function (cipher) {\n return {\n encrypt: function encrypt(message, key, cfg) {\n return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n },\n decrypt: function decrypt(ciphertext, key, cfg) {\n return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n }\n };\n };\n }()\n });\n /**\n * Abstract base stream cipher template.\n *\n * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n */\n\n var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n _doFinalize: function _doFinalize() {\n // Process partial blocks\n var finalProcessedBlocks = this._process(!!'flush');\n\n return finalProcessedBlocks;\n },\n blockSize: 1\n });\n /**\n * Mode namespace.\n */\n\n var C_mode = C.mode = {};\n /**\n * Abstract base block cipher mode template.\n */\n\n var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n /**\n * Creates this mode for encryption.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @static\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n */\n createEncryptor: function createEncryptor(cipher, iv) {\n return this.Encryptor.create(cipher, iv);\n },\n\n /**\n * Creates this mode for decryption.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @static\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n */\n createDecryptor: function createDecryptor(cipher, iv) {\n return this.Decryptor.create(cipher, iv);\n },\n\n /**\n * Initializes a newly created mode.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n */\n init: function init(cipher, iv) {\n this._cipher = cipher;\n this._iv = iv;\n }\n });\n /**\n * Cipher Block Chaining mode.\n */\n\n var CBC = C_mode.CBC = function () {\n /**\n * Abstract base CBC mode.\n */\n var CBC = BlockCipherMode.extend();\n /**\n * CBC encryptor.\n */\n\n CBC.Encryptor = CBC.extend({\n /**\n * Processes the data block at offset.\n *\n * @param {Array} words The data words to operate on.\n * @param {number} offset The offset where the block starts.\n *\n * @example\n *\n * mode.processBlock(data.words, offset);\n */\n processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize; // XOR and encrypt\n\n xorBlock.call(this, words, offset, blockSize);\n cipher.encryptBlock(words, offset); // Remember this block to use with next block\n\n this._prevBlock = words.slice(offset, offset + blockSize);\n }\n });\n /**\n * CBC decryptor.\n */\n\n CBC.Decryptor = CBC.extend({\n /**\n * Processes the data block at offset.\n *\n * @param {Array} words The data words to operate on.\n * @param {number} offset The offset where the block starts.\n *\n * @example\n *\n * mode.processBlock(data.words, offset);\n */\n processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize; // Remember this block to use with next block\n\n var thisBlock = words.slice(offset, offset + blockSize); // Decrypt and XOR\n\n cipher.decryptBlock(words, offset);\n xorBlock.call(this, words, offset, blockSize); // This block becomes the previous block\n\n this._prevBlock = thisBlock;\n }\n });\n\n function xorBlock(words, offset, blockSize) {\n var block; // Shortcut\n\n var iv = this._iv; // Choose mixing block\n\n if (iv) {\n block = iv; // Remove IV for subsequent blocks\n\n this._iv = undefined;\n } else {\n block = this._prevBlock;\n } // XOR blocks\n\n\n for (var i = 0; i < blockSize; i++) {\n words[offset + i] ^= block[i];\n }\n }\n\n return CBC;\n }();\n /**\n * Padding namespace.\n */\n\n\n var C_pad = C.pad = {};\n /**\n * PKCS #5/7 padding strategy.\n */\n\n var Pkcs7 = C_pad.Pkcs7 = {\n /**\n * Pads data using the algorithm defined in PKCS #5/7.\n *\n * @param {WordArray} data The data to pad.\n * @param {number} blockSize The multiple that the data should be padded to.\n *\n * @static\n *\n * @example\n *\n * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n */\n pad: function pad(data, blockSize) {\n // Shortcut\n var blockSizeBytes = blockSize * 4; // Count padding bytes\n\n var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; // Create padding word\n\n var paddingWord = nPaddingBytes << 24 | nPaddingBytes << 16 | nPaddingBytes << 8 | nPaddingBytes; // Create padding\n\n var paddingWords = [];\n\n for (var i = 0; i < nPaddingBytes; i += 4) {\n paddingWords.push(paddingWord);\n }\n\n var padding = WordArray.create(paddingWords, nPaddingBytes); // Add padding\n\n data.concat(padding);\n },\n\n /**\n * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n *\n * @param {WordArray} data The data to unpad.\n *\n * @static\n *\n * @example\n *\n * CryptoJS.pad.Pkcs7.unpad(wordArray);\n */\n unpad: function unpad(data) {\n // Get number of padding bytes from last byte\n var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 0xff; // Remove padding\n\n data.sigBytes -= nPaddingBytes;\n }\n };\n /**\n * Abstract base block cipher template.\n *\n * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n */\n\n var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n /**\n * Configuration options.\n *\n * @property {Mode} mode The block mode to use. Default: CBC\n * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n */\n cfg: Cipher.cfg.extend({\n mode: CBC,\n padding: Pkcs7\n }),\n reset: function reset() {\n var modeCreator; // Reset cipher\n\n Cipher.reset.call(this); // Shortcuts\n\n var cfg = this.cfg;\n var iv = cfg.iv;\n var mode = cfg.mode; // Reset block mode\n\n if (this._xformMode == this._ENC_XFORM_MODE) {\n modeCreator = mode.createEncryptor;\n } else\n /* if (this._xformMode == this._DEC_XFORM_MODE) */\n {\n modeCreator = mode.createDecryptor; // Keep at least one block in the buffer for unpadding\n\n this._minBufferSize = 1;\n }\n\n if (this._mode && this._mode.__creator == modeCreator) {\n this._mode.init(this, iv && iv.words);\n } else {\n this._mode = modeCreator.call(mode, this, iv && iv.words);\n this._mode.__creator = modeCreator;\n }\n },\n _doProcessBlock: function _doProcessBlock(words, offset) {\n this._mode.processBlock(words, offset);\n },\n _doFinalize: function _doFinalize() {\n var finalProcessedBlocks; // Shortcut\n\n var padding = this.cfg.padding; // Finalize\n\n if (this._xformMode == this._ENC_XFORM_MODE) {\n // Pad data\n padding.pad(this._data, this.blockSize); // Process final blocks\n\n finalProcessedBlocks = this._process(!!'flush');\n } else\n /* if (this._xformMode == this._DEC_XFORM_MODE) */\n {\n // Process final blocks\n finalProcessedBlocks = this._process(!!'flush'); // Unpad data\n\n padding.unpad(finalProcessedBlocks);\n }\n\n return finalProcessedBlocks;\n },\n blockSize: 128 / 32\n });\n /**\n * A collection of cipher parameters.\n *\n * @property {WordArray} ciphertext The raw ciphertext.\n * @property {WordArray} key The key to this ciphertext.\n * @property {WordArray} iv The IV used in the ciphering operation.\n * @property {WordArray} salt The salt used with a key derivation function.\n * @property {Cipher} algorithm The cipher algorithm.\n * @property {Mode} mode The block mode used in the ciphering operation.\n * @property {Padding} padding The padding scheme used in the ciphering operation.\n * @property {number} blockSize The block size of the cipher.\n * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n */\n\n var CipherParams = C_lib.CipherParams = Base.extend({\n /**\n * Initializes a newly created cipher params object.\n *\n * @param {Object} cipherParams An object with any of the possible cipher parameters.\n *\n * @example\n *\n * var cipherParams = CryptoJS.lib.CipherParams.create({\n * ciphertext: ciphertextWordArray,\n * key: keyWordArray,\n * iv: ivWordArray,\n * salt: saltWordArray,\n * algorithm: CryptoJS.algo.AES,\n * mode: CryptoJS.mode.CBC,\n * padding: CryptoJS.pad.PKCS7,\n * blockSize: 4,\n * formatter: CryptoJS.format.OpenSSL\n * });\n */\n init: function init(cipherParams) {\n this.mixIn(cipherParams);\n },\n\n /**\n * Converts this cipher params object to a string.\n *\n * @param {Format} formatter (Optional) The formatting strategy to use.\n *\n * @return {string} The stringified cipher params.\n *\n * @throws Error If neither the formatter nor the default formatter is set.\n *\n * @example\n *\n * var string = cipherParams + '';\n * var string = cipherParams.toString();\n * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n */\n toString: function toString(formatter) {\n return (formatter || this.formatter).stringify(this);\n }\n });\n /**\n * Format namespace.\n */\n\n var C_format = C.format = {};\n /**\n * OpenSSL formatting strategy.\n */\n\n var OpenSSLFormatter = C_format.OpenSSL = {\n /**\n * Converts a cipher params object to an OpenSSL-compatible string.\n *\n * @param {CipherParams} cipherParams The cipher params object.\n *\n * @return {string} The OpenSSL-compatible string.\n *\n * @static\n *\n * @example\n *\n * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n */\n stringify: function stringify(cipherParams) {\n var wordArray; // Shortcuts\n\n var ciphertext = cipherParams.ciphertext;\n var salt = cipherParams.salt; // Format\n\n if (salt) {\n wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n } else {\n wordArray = ciphertext;\n }\n\n return wordArray.toString(Base64);\n },\n\n /**\n * Converts an OpenSSL-compatible string to a cipher params object.\n *\n * @param {string} openSSLStr The OpenSSL-compatible string.\n *\n * @return {CipherParams} The cipher params object.\n *\n * @static\n *\n * @example\n *\n * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n */\n parse: function parse(openSSLStr) {\n var salt; // Parse base64\n\n var ciphertext = Base64.parse(openSSLStr); // Shortcut\n\n var ciphertextWords = ciphertext.words; // Test for salt\n\n if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n // Extract salt\n salt = WordArray.create(ciphertextWords.slice(2, 4)); // Remove salt from ciphertext\n\n ciphertextWords.splice(0, 4);\n ciphertext.sigBytes -= 16;\n }\n\n return CipherParams.create({\n ciphertext: ciphertext,\n salt: salt\n });\n }\n };\n /**\n * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n */\n\n var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n /**\n * Configuration options.\n *\n * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n */\n cfg: Base.extend({\n format: OpenSSLFormatter\n }),\n\n /**\n * Encrypts a message.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {WordArray|string} message The message to encrypt.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {CipherParams} A cipher params object.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n */\n encrypt: function encrypt(cipher, message, key, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg); // Encrypt\n\n var encryptor = cipher.createEncryptor(key, cfg);\n var ciphertext = encryptor.finalize(message); // Shortcut\n\n var cipherCfg = encryptor.cfg; // Create and return serializable cipher params\n\n return CipherParams.create({\n ciphertext: ciphertext,\n key: key,\n iv: cipherCfg.iv,\n algorithm: cipher,\n mode: cipherCfg.mode,\n padding: cipherCfg.padding,\n blockSize: cipher.blockSize,\n formatter: cfg.format\n });\n },\n\n /**\n * Decrypts serialized ciphertext.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {WordArray} The plaintext.\n *\n * @static\n *\n * @example\n *\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n */\n decrypt: function decrypt(cipher, ciphertext, key, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg); // Convert string to CipherParams\n\n ciphertext = this._parse(ciphertext, cfg.format); // Decrypt\n\n var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n return plaintext;\n },\n\n /**\n * Converts serialized ciphertext to CipherParams,\n * else assumed CipherParams already and returns ciphertext unchanged.\n *\n * @param {CipherParams|string} ciphertext The ciphertext.\n * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n *\n * @return {CipherParams} The unserialized ciphertext.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n */\n _parse: function _parse(ciphertext, format) {\n if (typeof ciphertext == 'string') {\n return format.parse(ciphertext, this);\n } else {\n return ciphertext;\n }\n }\n });\n /**\n * Key derivation function namespace.\n */\n\n var C_kdf = C.kdf = {};\n /**\n * OpenSSL key derivation function.\n */\n\n var OpenSSLKdf = C_kdf.OpenSSL = {\n /**\n * Derives a key and IV from a password.\n *\n * @param {string} password The password to derive from.\n * @param {number} keySize The size in words of the key to generate.\n * @param {number} ivSize The size in words of the IV to generate.\n * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n *\n * @return {CipherParams} A cipher params object with the key, IV, and salt.\n *\n * @static\n *\n * @example\n *\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n */\n execute: function execute(password, keySize, ivSize, salt) {\n // Generate random salt\n if (!salt) {\n salt = WordArray.random(64 / 8);\n } // Derive key and IV\n\n\n var key = EvpKDF.create({\n keySize: keySize + ivSize\n }).compute(password, salt); // Separate key and IV\n\n var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n key.sigBytes = keySize * 4; // Return params\n\n return CipherParams.create({\n key: key,\n iv: iv,\n salt: salt\n });\n }\n };\n /**\n * A serializable cipher wrapper that derives the key from a password,\n * and returns ciphertext as a serializable cipher params object.\n */\n\n var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n /**\n * Configuration options.\n *\n * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n */\n cfg: SerializableCipher.cfg.extend({\n kdf: OpenSSLKdf\n }),\n\n /**\n * Encrypts a message using a password.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {WordArray|string} message The message to encrypt.\n * @param {string} password The password.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {CipherParams} A cipher params object.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n */\n encrypt: function encrypt(cipher, message, password, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg); // Derive key and other params\n\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize); // Add IV to config\n\n cfg.iv = derivedParams.iv; // Encrypt\n\n var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg); // Mix in derived params\n\n ciphertext.mixIn(derivedParams);\n return ciphertext;\n },\n\n /**\n * Decrypts serialized ciphertext using a password.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n * @param {string} password The password.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {WordArray} The plaintext.\n *\n * @static\n *\n * @example\n *\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n */\n decrypt: function decrypt(cipher, ciphertext, password, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg); // Convert string to CipherParams\n\n ciphertext = this._parse(ciphertext, cfg.format); // Derive key and other params\n\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt); // Add IV to config\n\n cfg.iv = derivedParams.iv; // Decrypt\n\n var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n return plaintext;\n }\n });\n }();\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/cipher-core.js?"); | ||
| 943 | + | ||
| 944 | +/***/ }), | ||
| 945 | + | ||
| 946 | +/***/ "./node_modules/crypto-js/core.js": | ||
| 947 | +/*!****************************************!*\ | ||
| 948 | + !*** ./node_modules/crypto-js/core.js ***! | ||
| 949 | + \****************************************/ | ||
| 950 | +/*! no static exports found */ | ||
| 951 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 952 | + | ||
| 953 | +eval("/* WEBPACK VAR INJECTION */(function(global) {;\n\n(function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory();\n } else {}\n})(this, function () {\n /*globals window, global, require*/\n\n /**\n * CryptoJS core components.\n */\n var CryptoJS = CryptoJS || function (Math, undefined) {\n var crypto; // Native crypto from window (Browser)\n\n if (typeof window !== 'undefined' && window.crypto) {\n crypto = window.crypto;\n } // Native crypto in web worker (Browser)\n\n\n if (typeof self !== 'undefined' && self.crypto) {\n crypto = self.crypto;\n } // Native crypto from worker\n\n\n if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n crypto = globalThis.crypto;\n } // Native (experimental IE 11) crypto from window (Browser)\n\n\n if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n crypto = window.msCrypto;\n } // Native crypto from global (NodeJS)\n\n\n if (!crypto && typeof global !== 'undefined' && global.crypto) {\n crypto = global.crypto;\n } // Native crypto import via require (NodeJS)\n\n\n if (!crypto && \"function\" === 'function') {\n try {\n crypto = __webpack_require__(/*! crypto */ 14);\n } catch (err) {}\n }\n /*\n * Cryptographically secure pseudorandom number generator\n *\n * As Math.random() is cryptographically not safe to use\n */\n\n\n var cryptoSecureRandomInt = function cryptoSecureRandomInt() {\n if (crypto) {\n // Use getRandomValues method (Browser)\n if (typeof crypto.getRandomValues === 'function') {\n try {\n return crypto.getRandomValues(new Uint32Array(1))[0];\n } catch (err) {}\n } // Use randomBytes method (NodeJS)\n\n\n if (typeof crypto.randomBytes === 'function') {\n try {\n return crypto.randomBytes(4).readInt32LE();\n } catch (err) {}\n }\n }\n\n throw new Error('Native crypto module could not be used to get secure random number.');\n };\n /*\n * Local polyfill of Object.create\n */\n\n\n var create = Object.create || function () {\n function F() {}\n\n return function (obj) {\n var subtype;\n F.prototype = obj;\n subtype = new F();\n F.prototype = null;\n return subtype;\n };\n }();\n /**\n * CryptoJS namespace.\n */\n\n\n var C = {};\n /**\n * Library namespace.\n */\n\n var C_lib = C.lib = {};\n /**\n * Base object for prototypal inheritance.\n */\n\n var Base = C_lib.Base = function () {\n return {\n /**\n * Creates a new object that inherits from this object.\n *\n * @param {Object} overrides Properties to copy into the new object.\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * field: 'value',\n *\n * method: function () {\n * }\n * });\n */\n extend: function extend(overrides) {\n // Spawn\n var subtype = create(this); // Augment\n\n if (overrides) {\n subtype.mixIn(overrides);\n } // Create default initializer\n\n\n if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n subtype.init = function () {\n subtype.$super.init.apply(this, arguments);\n };\n } // Initializer's prototype is the subtype object\n\n\n subtype.init.prototype = subtype; // Reference supertype\n\n subtype.$super = this;\n return subtype;\n },\n\n /**\n * Extends this object and runs the init method.\n * Arguments to create() will be passed to init().\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var instance = MyType.create();\n */\n create: function create() {\n var instance = this.extend();\n instance.init.apply(instance, arguments);\n return instance;\n },\n\n /**\n * Initializes a newly created object.\n * Override this method to add some logic when your objects are created.\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * init: function () {\n * // ...\n * }\n * });\n */\n init: function init() {},\n\n /**\n * Copies properties into this object.\n *\n * @param {Object} properties The properties to mix in.\n *\n * @example\n *\n * MyType.mixIn({\n * field: 'value'\n * });\n */\n mixIn: function mixIn(properties) {\n for (var propertyName in properties) {\n if (properties.hasOwnProperty(propertyName)) {\n this[propertyName] = properties[propertyName];\n }\n } // IE won't copy toString using the loop above\n\n\n if (properties.hasOwnProperty('toString')) {\n this.toString = properties.toString;\n }\n },\n\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = instance.clone();\n */\n clone: function clone() {\n return this.init.prototype.extend(this);\n }\n };\n }();\n /**\n * An array of 32-bit words.\n *\n * @property {Array} words The array of 32-bit words.\n * @property {number} sigBytes The number of significant bytes in this word array.\n */\n\n\n var WordArray = C_lib.WordArray = Base.extend({\n /**\n * Initializes a newly created word array.\n *\n * @param {Array} words (Optional) An array of 32-bit words.\n * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.create();\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n */\n init: function init(words, sigBytes) {\n words = this.words = words || [];\n\n if (sigBytes != undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 4;\n }\n },\n\n /**\n * Converts this word array to a string.\n *\n * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n *\n * @return {string} The stringified word array.\n *\n * @example\n *\n * var string = wordArray + '';\n * var string = wordArray.toString();\n * var string = wordArray.toString(CryptoJS.enc.Utf8);\n */\n toString: function toString(encoder) {\n return (encoder || Hex).stringify(this);\n },\n\n /**\n * Concatenates a word array to this word array.\n *\n * @param {WordArray} wordArray The word array to append.\n *\n * @return {WordArray} This word array.\n *\n * @example\n *\n * wordArray1.concat(wordArray2);\n */\n concat: function concat(wordArray) {\n // Shortcuts\n var thisWords = this.words;\n var thatWords = wordArray.words;\n var thisSigBytes = this.sigBytes;\n var thatSigBytes = wordArray.sigBytes; // Clamp excess bits\n\n this.clamp(); // Concat\n\n if (thisSigBytes % 4) {\n // Copy one byte at a time\n for (var i = 0; i < thatSigBytes; i++) {\n var thatByte = thatWords[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n thisWords[thisSigBytes + i >>> 2] |= thatByte << 24 - (thisSigBytes + i) % 4 * 8;\n }\n } else {\n // Copy one word at a time\n for (var j = 0; j < thatSigBytes; j += 4) {\n thisWords[thisSigBytes + j >>> 2] = thatWords[j >>> 2];\n }\n }\n\n this.sigBytes += thatSigBytes; // Chainable\n\n return this;\n },\n\n /**\n * Removes insignificant bits.\n *\n * @example\n *\n * wordArray.clamp();\n */\n clamp: function clamp() {\n // Shortcuts\n var words = this.words;\n var sigBytes = this.sigBytes; // Clamp\n\n words[sigBytes >>> 2] &= 0xffffffff << 32 - sigBytes % 4 * 8;\n words.length = Math.ceil(sigBytes / 4);\n },\n\n /**\n * Creates a copy of this word array.\n *\n * @return {WordArray} The clone.\n *\n * @example\n *\n * var clone = wordArray.clone();\n */\n clone: function clone() {\n var clone = Base.clone.call(this);\n clone.words = this.words.slice(0);\n return clone;\n },\n\n /**\n * Creates a word array filled with random bytes.\n *\n * @param {number} nBytes The number of random bytes to generate.\n *\n * @return {WordArray} The random word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.random(16);\n */\n random: function random(nBytes) {\n var words = [];\n\n for (var i = 0; i < nBytes; i += 4) {\n words.push(cryptoSecureRandomInt());\n }\n\n return new WordArray.init(words, nBytes);\n }\n });\n /**\n * Encoder namespace.\n */\n\n var C_enc = C.enc = {};\n /**\n * Hex encoding strategy.\n */\n\n var Hex = C_enc.Hex = {\n /**\n * Converts a word array to a hex string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The hex string.\n *\n * @static\n *\n * @example\n *\n * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes; // Convert\n\n var hexChars = [];\n\n for (var i = 0; i < sigBytes; i++) {\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n hexChars.push((bite >>> 4).toString(16));\n hexChars.push((bite & 0x0f).toString(16));\n }\n\n return hexChars.join('');\n },\n\n /**\n * Converts a hex string to a word array.\n *\n * @param {string} hexStr The hex string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n */\n parse: function parse(hexStr) {\n // Shortcut\n var hexStrLength = hexStr.length; // Convert\n\n var words = [];\n\n for (var i = 0; i < hexStrLength; i += 2) {\n words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << 24 - i % 8 * 4;\n }\n\n return new WordArray.init(words, hexStrLength / 2);\n }\n };\n /**\n * Latin1 encoding strategy.\n */\n\n var Latin1 = C_enc.Latin1 = {\n /**\n * Converts a word array to a Latin1 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Latin1 string.\n *\n * @static\n *\n * @example\n *\n * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes; // Convert\n\n var latin1Chars = [];\n\n for (var i = 0; i < sigBytes; i++) {\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n latin1Chars.push(String.fromCharCode(bite));\n }\n\n return latin1Chars.join('');\n },\n\n /**\n * Converts a Latin1 string to a word array.\n *\n * @param {string} latin1Str The Latin1 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n */\n parse: function parse(latin1Str) {\n // Shortcut\n var latin1StrLength = latin1Str.length; // Convert\n\n var words = [];\n\n for (var i = 0; i < latin1StrLength; i++) {\n words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << 24 - i % 4 * 8;\n }\n\n return new WordArray.init(words, latin1StrLength);\n }\n };\n /**\n * UTF-8 encoding strategy.\n */\n\n var Utf8 = C_enc.Utf8 = {\n /**\n * Converts a word array to a UTF-8 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The UTF-8 string.\n *\n * @static\n *\n * @example\n *\n * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n try {\n return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n } catch (e) {\n throw new Error('Malformed UTF-8 data');\n }\n },\n\n /**\n * Converts a UTF-8 string to a word array.\n *\n * @param {string} utf8Str The UTF-8 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n */\n parse: function parse(utf8Str) {\n return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n }\n };\n /**\n * Abstract buffered block algorithm template.\n *\n * The property blockSize must be implemented in a concrete subtype.\n *\n * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n */\n\n var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n /**\n * Resets this block algorithm's data buffer to its initial state.\n *\n * @example\n *\n * bufferedBlockAlgorithm.reset();\n */\n reset: function reset() {\n // Initial values\n this._data = new WordArray.init();\n this._nDataBytes = 0;\n },\n\n /**\n * Adds new data to this block algorithm's buffer.\n *\n * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n *\n * @example\n *\n * bufferedBlockAlgorithm._append('data');\n * bufferedBlockAlgorithm._append(wordArray);\n */\n _append: function _append(data) {\n // Convert string to WordArray, else assume WordArray already\n if (typeof data == 'string') {\n data = Utf8.parse(data);\n } // Append\n\n\n this._data.concat(data);\n\n this._nDataBytes += data.sigBytes;\n },\n\n /**\n * Processes available data blocks.\n *\n * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n *\n * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n *\n * @return {WordArray} The processed data.\n *\n * @example\n *\n * var processedData = bufferedBlockAlgorithm._process();\n * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n */\n _process: function _process(doFlush) {\n var processedWords; // Shortcuts\n\n var data = this._data;\n var dataWords = data.words;\n var dataSigBytes = data.sigBytes;\n var blockSize = this.blockSize;\n var blockSizeBytes = blockSize * 4; // Count blocks ready\n\n var nBlocksReady = dataSigBytes / blockSizeBytes;\n\n if (doFlush) {\n // Round up to include partial blocks\n nBlocksReady = Math.ceil(nBlocksReady);\n } else {\n // Round down to include only full blocks,\n // less the number of blocks that must remain in the buffer\n nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n } // Count words ready\n\n\n var nWordsReady = nBlocksReady * blockSize; // Count bytes ready\n\n var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); // Process blocks\n\n if (nWordsReady) {\n for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n // Perform concrete-algorithm logic\n this._doProcessBlock(dataWords, offset);\n } // Remove processed words\n\n\n processedWords = dataWords.splice(0, nWordsReady);\n data.sigBytes -= nBytesReady;\n } // Return processed words\n\n\n return new WordArray.init(processedWords, nBytesReady);\n },\n\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = bufferedBlockAlgorithm.clone();\n */\n clone: function clone() {\n var clone = Base.clone.call(this);\n clone._data = this._data.clone();\n return clone;\n },\n _minBufferSize: 0\n });\n /**\n * Abstract hasher template.\n *\n * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n */\n\n var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n /**\n * Configuration options.\n */\n cfg: Base.extend(),\n\n /**\n * Initializes a newly created hasher.\n *\n * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n *\n * @example\n *\n * var hasher = CryptoJS.algo.SHA256.create();\n */\n init: function init(cfg) {\n // Apply config defaults\n this.cfg = this.cfg.extend(cfg); // Set initial values\n\n this.reset();\n },\n\n /**\n * Resets this hasher to its initial state.\n *\n * @example\n *\n * hasher.reset();\n */\n reset: function reset() {\n // Reset data buffer\n BufferedBlockAlgorithm.reset.call(this); // Perform concrete-hasher logic\n\n this._doReset();\n },\n\n /**\n * Updates this hasher with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {Hasher} This hasher.\n *\n * @example\n *\n * hasher.update('message');\n * hasher.update(wordArray);\n */\n update: function update(messageUpdate) {\n // Append\n this._append(messageUpdate); // Update the hash\n\n\n this._process(); // Chainable\n\n\n return this;\n },\n\n /**\n * Finalizes the hash computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The hash.\n *\n * @example\n *\n * var hash = hasher.finalize();\n * var hash = hasher.finalize('message');\n * var hash = hasher.finalize(wordArray);\n */\n finalize: function finalize(messageUpdate) {\n // Final message update\n if (messageUpdate) {\n this._append(messageUpdate);\n } // Perform concrete-hasher logic\n\n\n var hash = this._doFinalize();\n\n return hash;\n },\n blockSize: 512 / 32,\n\n /**\n * Creates a shortcut function to a hasher's object interface.\n *\n * @param {Hasher} hasher The hasher to create a helper for.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n */\n _createHelper: function _createHelper(hasher) {\n return function (message, cfg) {\n return new hasher.init(cfg).finalize(message);\n };\n },\n\n /**\n * Creates a shortcut function to the HMAC's object interface.\n *\n * @param {Hasher} hasher The hasher to use in this HMAC helper.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n */\n _createHmacHelper: function _createHmacHelper(hasher) {\n return function (message, key) {\n return new C_algo.HMAC.init(hasher, key).finalize(message);\n };\n }\n });\n /**\n * Algorithm namespace.\n */\n\n var C_algo = C.algo = {};\n return C;\n }(Math);\n\n return CryptoJS;\n});\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/core.js?"); | ||
| 954 | + | ||
| 955 | +/***/ }), | ||
| 956 | + | ||
| 957 | +/***/ "./node_modules/crypto-js/enc-base64.js": | ||
| 958 | +/*!**********************************************!*\ | ||
| 959 | + !*** ./node_modules/crypto-js/enc-base64.js ***! | ||
| 960 | + \**********************************************/ | ||
| 961 | +/*! no static exports found */ | ||
| 962 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 963 | + | ||
| 964 | +eval(";\n\n(function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_enc = C.enc;\n /**\n * Base64 encoding strategy.\n */\n\n var Base64 = C_enc.Base64 = {\n /**\n * Converts a word array to a Base64 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Base64 string.\n *\n * @static\n *\n * @example\n *\n * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var map = this._map; // Clamp excess bits\n\n wordArray.clamp(); // Convert\n\n var base64Chars = [];\n\n for (var i = 0; i < sigBytes; i += 3) {\n var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 0xff;\n var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 0xff;\n var triplet = byte1 << 16 | byte2 << 8 | byte3;\n\n for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) {\n base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 0x3f));\n }\n } // Add padding\n\n\n var paddingChar = map.charAt(64);\n\n if (paddingChar) {\n while (base64Chars.length % 4) {\n base64Chars.push(paddingChar);\n }\n }\n\n return base64Chars.join('');\n },\n\n /**\n * Converts a Base64 string to a word array.\n *\n * @param {string} base64Str The Base64 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n */\n parse: function parse(base64Str) {\n // Shortcuts\n var base64StrLength = base64Str.length;\n var map = this._map;\n var reverseMap = this._reverseMap;\n\n if (!reverseMap) {\n reverseMap = this._reverseMap = [];\n\n for (var j = 0; j < map.length; j++) {\n reverseMap[map.charCodeAt(j)] = j;\n }\n } // Ignore padding\n\n\n var paddingChar = map.charAt(64);\n\n if (paddingChar) {\n var paddingIndex = base64Str.indexOf(paddingChar);\n\n if (paddingIndex !== -1) {\n base64StrLength = paddingIndex;\n }\n } // Convert\n\n\n return parseLoop(base64Str, base64StrLength, reverseMap);\n },\n _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n };\n\n function parseLoop(base64Str, base64StrLength, reverseMap) {\n var words = [];\n var nBytes = 0;\n\n for (var i = 0; i < base64StrLength; i++) {\n if (i % 4) {\n var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << i % 4 * 2;\n var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> 6 - i % 4 * 2;\n var bitsCombined = bits1 | bits2;\n words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8;\n nBytes++;\n }\n }\n\n return WordArray.create(words, nBytes);\n }\n })();\n\n return CryptoJS.enc.Base64;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/enc-base64.js?"); | ||
| 965 | + | ||
| 966 | +/***/ }), | ||
| 967 | + | ||
| 968 | +/***/ "./node_modules/crypto-js/enc-base64url.js": | ||
| 969 | +/*!*************************************************!*\ | ||
| 970 | + !*** ./node_modules/crypto-js/enc-base64url.js ***! | ||
| 971 | + \*************************************************/ | ||
| 972 | +/*! no static exports found */ | ||
| 973 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 974 | + | ||
| 975 | +eval(";\n\n(function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_enc = C.enc;\n /**\n * Base64url encoding strategy.\n */\n\n var Base64url = C_enc.Base64url = {\n /**\n * Converts a word array to a Base64url string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @param {boolean} urlSafe Whether to use url safe\n *\n * @return {string} The Base64url string.\n *\n * @static\n *\n * @example\n *\n * var base64String = CryptoJS.enc.Base64url.stringify(wordArray);\n */\n stringify: function stringify(wordArray, urlSafe) {\n if (urlSafe === void 0) {\n urlSafe = true;\n }\n\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var map = urlSafe ? this._safe_map : this._map; // Clamp excess bits\n\n wordArray.clamp(); // Convert\n\n var base64Chars = [];\n\n for (var i = 0; i < sigBytes; i += 3) {\n var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 0xff;\n var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 0xff;\n var triplet = byte1 << 16 | byte2 << 8 | byte3;\n\n for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) {\n base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 0x3f));\n }\n } // Add padding\n\n\n var paddingChar = map.charAt(64);\n\n if (paddingChar) {\n while (base64Chars.length % 4) {\n base64Chars.push(paddingChar);\n }\n }\n\n return base64Chars.join('');\n },\n\n /**\n * Converts a Base64url string to a word array.\n *\n * @param {string} base64Str The Base64url string.\n *\n * @param {boolean} urlSafe Whether to use url safe\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Base64url.parse(base64String);\n */\n parse: function parse(base64Str, urlSafe) {\n if (urlSafe === void 0) {\n urlSafe = true;\n }\n\n // Shortcuts\n var base64StrLength = base64Str.length;\n var map = urlSafe ? this._safe_map : this._map;\n var reverseMap = this._reverseMap;\n\n if (!reverseMap) {\n reverseMap = this._reverseMap = [];\n\n for (var j = 0; j < map.length; j++) {\n reverseMap[map.charCodeAt(j)] = j;\n }\n } // Ignore padding\n\n\n var paddingChar = map.charAt(64);\n\n if (paddingChar) {\n var paddingIndex = base64Str.indexOf(paddingChar);\n\n if (paddingIndex !== -1) {\n base64StrLength = paddingIndex;\n }\n } // Convert\n\n\n return parseLoop(base64Str, base64StrLength, reverseMap);\n },\n _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'\n };\n\n function parseLoop(base64Str, base64StrLength, reverseMap) {\n var words = [];\n var nBytes = 0;\n\n for (var i = 0; i < base64StrLength; i++) {\n if (i % 4) {\n var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << i % 4 * 2;\n var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> 6 - i % 4 * 2;\n var bitsCombined = bits1 | bits2;\n words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8;\n nBytes++;\n }\n }\n\n return WordArray.create(words, nBytes);\n }\n })();\n\n return CryptoJS.enc.Base64url;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/enc-base64url.js?"); | ||
| 976 | + | ||
| 977 | +/***/ }), | ||
| 978 | + | ||
| 979 | +/***/ "./node_modules/crypto-js/enc-utf16.js": | ||
| 980 | +/*!*********************************************!*\ | ||
| 981 | + !*** ./node_modules/crypto-js/enc-utf16.js ***! | ||
| 982 | + \*********************************************/ | ||
| 983 | +/*! no static exports found */ | ||
| 984 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 985 | + | ||
| 986 | +eval(";\n\n(function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_enc = C.enc;\n /**\n * UTF-16 BE encoding strategy.\n */\n\n var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\n /**\n * Converts a word array to a UTF-16 BE string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The UTF-16 BE string.\n *\n * @static\n *\n * @example\n *\n * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes; // Convert\n\n var utf16Chars = [];\n\n for (var i = 0; i < sigBytes; i += 2) {\n var codePoint = words[i >>> 2] >>> 16 - i % 4 * 8 & 0xffff;\n utf16Chars.push(String.fromCharCode(codePoint));\n }\n\n return utf16Chars.join('');\n },\n\n /**\n * Converts a UTF-16 BE string to a word array.\n *\n * @param {string} utf16Str The UTF-16 BE string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n */\n parse: function parse(utf16Str) {\n // Shortcut\n var utf16StrLength = utf16Str.length; // Convert\n\n var words = [];\n\n for (var i = 0; i < utf16StrLength; i++) {\n words[i >>> 1] |= utf16Str.charCodeAt(i) << 16 - i % 2 * 16;\n }\n\n return WordArray.create(words, utf16StrLength * 2);\n }\n };\n /**\n * UTF-16 LE encoding strategy.\n */\n\n C_enc.Utf16LE = {\n /**\n * Converts a word array to a UTF-16 LE string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The UTF-16 LE string.\n *\n * @static\n *\n * @example\n *\n * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes; // Convert\n\n var utf16Chars = [];\n\n for (var i = 0; i < sigBytes; i += 2) {\n var codePoint = swapEndian(words[i >>> 2] >>> 16 - i % 4 * 8 & 0xffff);\n utf16Chars.push(String.fromCharCode(codePoint));\n }\n\n return utf16Chars.join('');\n },\n\n /**\n * Converts a UTF-16 LE string to a word array.\n *\n * @param {string} utf16Str The UTF-16 LE string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n */\n parse: function parse(utf16Str) {\n // Shortcut\n var utf16StrLength = utf16Str.length; // Convert\n\n var words = [];\n\n for (var i = 0; i < utf16StrLength; i++) {\n words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << 16 - i % 2 * 16);\n }\n\n return WordArray.create(words, utf16StrLength * 2);\n }\n };\n\n function swapEndian(word) {\n return word << 8 & 0xff00ff00 | word >>> 8 & 0x00ff00ff;\n }\n })();\n\n return CryptoJS.enc.Utf16;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/enc-utf16.js?"); | ||
| 987 | + | ||
| 988 | +/***/ }), | ||
| 989 | + | ||
| 990 | +/***/ "./node_modules/crypto-js/evpkdf.js": | ||
| 991 | +/*!******************************************!*\ | ||
| 992 | + !*** ./node_modules/crypto-js/evpkdf.js ***! | ||
| 993 | + \******************************************/ | ||
| 994 | +/*! no static exports found */ | ||
| 995 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 996 | + | ||
| 997 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./sha1 */ \"./node_modules/crypto-js/sha1.js\"), __webpack_require__(/*! ./hmac */ \"./node_modules/crypto-js/hmac.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var C_algo = C.algo;\n var MD5 = C_algo.MD5;\n /**\n * This key derivation function is meant to conform with EVP_BytesToKey.\n * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n */\n\n var EvpKDF = C_algo.EvpKDF = Base.extend({\n /**\n * Configuration options.\n *\n * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n * @property {number} iterations The number of iterations to perform. Default: 1\n */\n cfg: Base.extend({\n keySize: 128 / 32,\n hasher: MD5,\n iterations: 1\n }),\n\n /**\n * Initializes a newly created key derivation function.\n *\n * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n *\n * @example\n *\n * var kdf = CryptoJS.algo.EvpKDF.create();\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n */\n init: function init(cfg) {\n this.cfg = this.cfg.extend(cfg);\n },\n\n /**\n * Derives a key from a password.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n *\n * @return {WordArray} The derived key.\n *\n * @example\n *\n * var key = kdf.compute(password, salt);\n */\n compute: function compute(password, salt) {\n var block; // Shortcut\n\n var cfg = this.cfg; // Init hasher\n\n var hasher = cfg.hasher.create(); // Initial values\n\n var derivedKey = WordArray.create(); // Shortcuts\n\n var derivedKeyWords = derivedKey.words;\n var keySize = cfg.keySize;\n var iterations = cfg.iterations; // Generate key\n\n while (derivedKeyWords.length < keySize) {\n if (block) {\n hasher.update(block);\n }\n\n block = hasher.update(password).finalize(salt);\n hasher.reset(); // Iterations\n\n for (var i = 1; i < iterations; i++) {\n block = hasher.finalize(block);\n hasher.reset();\n }\n\n derivedKey.concat(block);\n }\n\n derivedKey.sigBytes = keySize * 4;\n return derivedKey;\n }\n });\n /**\n * Derives a key from a password.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n * @param {Object} cfg (Optional) The configuration options to use for this computation.\n *\n * @return {WordArray} The derived key.\n *\n * @static\n *\n * @example\n *\n * var key = CryptoJS.EvpKDF(password, salt);\n * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n */\n\n C.EvpKDF = function (password, salt, cfg) {\n return EvpKDF.create(cfg).compute(password, salt);\n };\n })();\n\n return CryptoJS.EvpKDF;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/evpkdf.js?"); | ||
| 998 | + | ||
| 999 | +/***/ }), | ||
| 1000 | + | ||
| 1001 | +/***/ "./node_modules/crypto-js/format-hex.js": | ||
| 1002 | +/*!**********************************************!*\ | ||
| 1003 | + !*** ./node_modules/crypto-js/format-hex.js ***! | ||
| 1004 | + \**********************************************/ | ||
| 1005 | +/*! no static exports found */ | ||
| 1006 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1007 | + | ||
| 1008 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function (undefined) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var CipherParams = C_lib.CipherParams;\n var C_enc = C.enc;\n var Hex = C_enc.Hex;\n var C_format = C.format;\n var HexFormatter = C_format.Hex = {\n /**\n * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n *\n * @param {CipherParams} cipherParams The cipher params object.\n *\n * @return {string} The hexadecimally encoded string.\n *\n * @static\n *\n * @example\n *\n * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n */\n stringify: function stringify(cipherParams) {\n return cipherParams.ciphertext.toString(Hex);\n },\n\n /**\n * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n *\n * @param {string} input The hexadecimally encoded string.\n *\n * @return {CipherParams} The cipher params object.\n *\n * @static\n *\n * @example\n *\n * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n */\n parse: function parse(input) {\n var ciphertext = Hex.parse(input);\n return CipherParams.create({\n ciphertext: ciphertext\n });\n }\n };\n })();\n\n return CryptoJS.format.Hex;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/format-hex.js?"); | ||
| 1009 | + | ||
| 1010 | +/***/ }), | ||
| 1011 | + | ||
| 1012 | +/***/ "./node_modules/crypto-js/hmac.js": | ||
| 1013 | +/*!****************************************!*\ | ||
| 1014 | + !*** ./node_modules/crypto-js/hmac.js ***! | ||
| 1015 | + \****************************************/ | ||
| 1016 | +/*! no static exports found */ | ||
| 1017 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1018 | + | ||
| 1019 | +eval(";\n\n(function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var C_enc = C.enc;\n var Utf8 = C_enc.Utf8;\n var C_algo = C.algo;\n /**\n * HMAC algorithm.\n */\n\n var HMAC = C_algo.HMAC = Base.extend({\n /**\n * Initializes a newly created HMAC.\n *\n * @param {Hasher} hasher The hash algorithm to use.\n * @param {WordArray|string} key The secret key.\n *\n * @example\n *\n * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n */\n init: function init(hasher, key) {\n // Init hasher\n hasher = this._hasher = new hasher.init(); // Convert string to WordArray, else assume WordArray already\n\n if (typeof key == 'string') {\n key = Utf8.parse(key);\n } // Shortcuts\n\n\n var hasherBlockSize = hasher.blockSize;\n var hasherBlockSizeBytes = hasherBlockSize * 4; // Allow arbitrary length keys\n\n if (key.sigBytes > hasherBlockSizeBytes) {\n key = hasher.finalize(key);\n } // Clamp excess bits\n\n\n key.clamp(); // Clone key for inner and outer pads\n\n var oKey = this._oKey = key.clone();\n var iKey = this._iKey = key.clone(); // Shortcuts\n\n var oKeyWords = oKey.words;\n var iKeyWords = iKey.words; // XOR keys with pad constants\n\n for (var i = 0; i < hasherBlockSize; i++) {\n oKeyWords[i] ^= 0x5c5c5c5c;\n iKeyWords[i] ^= 0x36363636;\n }\n\n oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; // Set initial values\n\n this.reset();\n },\n\n /**\n * Resets this HMAC to its initial state.\n *\n * @example\n *\n * hmacHasher.reset();\n */\n reset: function reset() {\n // Shortcut\n var hasher = this._hasher; // Reset\n\n hasher.reset();\n hasher.update(this._iKey);\n },\n\n /**\n * Updates this HMAC with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {HMAC} This HMAC instance.\n *\n * @example\n *\n * hmacHasher.update('message');\n * hmacHasher.update(wordArray);\n */\n update: function update(messageUpdate) {\n this._hasher.update(messageUpdate); // Chainable\n\n\n return this;\n },\n\n /**\n * Finalizes the HMAC computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The HMAC.\n *\n * @example\n *\n * var hmac = hmacHasher.finalize();\n * var hmac = hmacHasher.finalize('message');\n * var hmac = hmacHasher.finalize(wordArray);\n */\n finalize: function finalize(messageUpdate) {\n // Shortcut\n var hasher = this._hasher; // Compute HMAC\n\n var innerHash = hasher.finalize(messageUpdate);\n hasher.reset();\n var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n return hmac;\n }\n });\n })();\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/hmac.js?"); | ||
| 1020 | + | ||
| 1021 | +/***/ }), | ||
| 1022 | + | ||
| 1023 | +/***/ "./node_modules/crypto-js/index.js": | ||
| 1024 | +/*!*****************************************!*\ | ||
| 1025 | + !*** ./node_modules/crypto-js/index.js ***! | ||
| 1026 | + \*****************************************/ | ||
| 1027 | +/*! no static exports found */ | ||
| 1028 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1029 | + | ||
| 1030 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./x64-core */ \"./node_modules/crypto-js/x64-core.js\"), __webpack_require__(/*! ./lib-typedarrays */ \"./node_modules/crypto-js/lib-typedarrays.js\"), __webpack_require__(/*! ./enc-utf16 */ \"./node_modules/crypto-js/enc-utf16.js\"), __webpack_require__(/*! ./enc-base64 */ \"./node_modules/crypto-js/enc-base64.js\"), __webpack_require__(/*! ./enc-base64url */ \"./node_modules/crypto-js/enc-base64url.js\"), __webpack_require__(/*! ./md5 */ \"./node_modules/crypto-js/md5.js\"), __webpack_require__(/*! ./sha1 */ \"./node_modules/crypto-js/sha1.js\"), __webpack_require__(/*! ./sha256 */ \"./node_modules/crypto-js/sha256.js\"), __webpack_require__(/*! ./sha224 */ \"./node_modules/crypto-js/sha224.js\"), __webpack_require__(/*! ./sha512 */ \"./node_modules/crypto-js/sha512.js\"), __webpack_require__(/*! ./sha384 */ \"./node_modules/crypto-js/sha384.js\"), __webpack_require__(/*! ./sha3 */ \"./node_modules/crypto-js/sha3.js\"), __webpack_require__(/*! ./ripemd160 */ \"./node_modules/crypto-js/ripemd160.js\"), __webpack_require__(/*! ./hmac */ \"./node_modules/crypto-js/hmac.js\"), __webpack_require__(/*! ./pbkdf2 */ \"./node_modules/crypto-js/pbkdf2.js\"), __webpack_require__(/*! ./evpkdf */ \"./node_modules/crypto-js/evpkdf.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"), __webpack_require__(/*! ./mode-cfb */ \"./node_modules/crypto-js/mode-cfb.js\"), __webpack_require__(/*! ./mode-ctr */ \"./node_modules/crypto-js/mode-ctr.js\"), __webpack_require__(/*! ./mode-ctr-gladman */ \"./node_modules/crypto-js/mode-ctr-gladman.js\"), __webpack_require__(/*! ./mode-ofb */ \"./node_modules/crypto-js/mode-ofb.js\"), __webpack_require__(/*! ./mode-ecb */ \"./node_modules/crypto-js/mode-ecb.js\"), __webpack_require__(/*! ./pad-ansix923 */ \"./node_modules/crypto-js/pad-ansix923.js\"), __webpack_require__(/*! ./pad-iso10126 */ \"./node_modules/crypto-js/pad-iso10126.js\"), __webpack_require__(/*! ./pad-iso97971 */ \"./node_modules/crypto-js/pad-iso97971.js\"), __webpack_require__(/*! ./pad-zeropadding */ \"./node_modules/crypto-js/pad-zeropadding.js\"), __webpack_require__(/*! ./pad-nopadding */ \"./node_modules/crypto-js/pad-nopadding.js\"), __webpack_require__(/*! ./format-hex */ \"./node_modules/crypto-js/format-hex.js\"), __webpack_require__(/*! ./aes */ \"./node_modules/crypto-js/aes.js\"), __webpack_require__(/*! ./tripledes */ \"./node_modules/crypto-js/tripledes.js\"), __webpack_require__(/*! ./rc4 */ \"./node_modules/crypto-js/rc4.js\"), __webpack_require__(/*! ./rabbit */ \"./node_modules/crypto-js/rabbit.js\"), __webpack_require__(/*! ./rabbit-legacy */ \"./node_modules/crypto-js/rabbit-legacy.js\"));\n } else {}\n})(this, function (CryptoJS) {\n return CryptoJS;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/index.js?"); | ||
| 1031 | + | ||
| 1032 | +/***/ }), | ||
| 1033 | + | ||
| 1034 | +/***/ "./node_modules/crypto-js/lib-typedarrays.js": | ||
| 1035 | +/*!***************************************************!*\ | ||
| 1036 | + !*** ./node_modules/crypto-js/lib-typedarrays.js ***! | ||
| 1037 | + \***************************************************/ | ||
| 1038 | +/*! no static exports found */ | ||
| 1039 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1040 | + | ||
| 1041 | +eval(";\n\n(function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function () {\n // Check if typed arrays are supported\n if (typeof ArrayBuffer != 'function') {\n return;\n } // Shortcuts\n\n\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray; // Reference original init\n\n var superInit = WordArray.init; // Augment WordArray.init to handle typed arrays\n\n var subInit = WordArray.init = function (typedArray) {\n // Convert buffers to uint8\n if (typedArray instanceof ArrayBuffer) {\n typedArray = new Uint8Array(typedArray);\n } // Convert other array views to uint8\n\n\n if (typedArray instanceof Int8Array || typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray || typedArray instanceof Int16Array || typedArray instanceof Uint16Array || typedArray instanceof Int32Array || typedArray instanceof Uint32Array || typedArray instanceof Float32Array || typedArray instanceof Float64Array) {\n typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n } // Handle Uint8Array\n\n\n if (typedArray instanceof Uint8Array) {\n // Shortcut\n var typedArrayByteLength = typedArray.byteLength; // Extract bytes\n\n var words = [];\n\n for (var i = 0; i < typedArrayByteLength; i++) {\n words[i >>> 2] |= typedArray[i] << 24 - i % 4 * 8;\n } // Initialize this word array\n\n\n superInit.call(this, words, typedArrayByteLength);\n } else {\n // Else call normal init\n superInit.apply(this, arguments);\n }\n };\n\n subInit.prototype = WordArray;\n })();\n\n return CryptoJS.lib.WordArray;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/lib-typedarrays.js?"); | ||
| 1042 | + | ||
| 1043 | +/***/ }), | ||
| 1044 | + | ||
| 1045 | +/***/ "./node_modules/crypto-js/md5.js": | ||
| 1046 | +/*!***************************************!*\ | ||
| 1047 | + !*** ./node_modules/crypto-js/md5.js ***! | ||
| 1048 | + \***************************************/ | ||
| 1049 | +/*! no static exports found */ | ||
| 1050 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1051 | + | ||
| 1052 | +eval(";\n\n(function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function (Math) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo; // Constants table\n\n var T = []; // Compute constants\n\n (function () {\n for (var i = 0; i < 64; i++) {\n T[i] = Math.abs(Math.sin(i + 1)) * 0x100000000 | 0;\n }\n })();\n /**\n * MD5 hash algorithm.\n */\n\n\n var MD5 = C_algo.MD5 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = new WordArray.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476]);\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Swap endian\n for (var i = 0; i < 16; i++) {\n // Shortcuts\n var offset_i = offset + i;\n var M_offset_i = M[offset_i];\n M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 0x00ff00ff | (M_offset_i << 24 | M_offset_i >>> 8) & 0xff00ff00;\n } // Shortcuts\n\n\n var H = this._hash.words;\n var M_offset_0 = M[offset + 0];\n var M_offset_1 = M[offset + 1];\n var M_offset_2 = M[offset + 2];\n var M_offset_3 = M[offset + 3];\n var M_offset_4 = M[offset + 4];\n var M_offset_5 = M[offset + 5];\n var M_offset_6 = M[offset + 6];\n var M_offset_7 = M[offset + 7];\n var M_offset_8 = M[offset + 8];\n var M_offset_9 = M[offset + 9];\n var M_offset_10 = M[offset + 10];\n var M_offset_11 = M[offset + 11];\n var M_offset_12 = M[offset + 12];\n var M_offset_13 = M[offset + 13];\n var M_offset_14 = M[offset + 14];\n var M_offset_15 = M[offset + 15]; // Working varialbes\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3]; // Computation\n\n a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n a = II(a, b, c, d, M_offset_0, 6, T[48]);\n d = II(d, a, b, c, M_offset_7, 10, T[49]);\n c = II(c, d, a, b, M_offset_14, 15, T[50]);\n b = II(b, c, d, a, M_offset_5, 21, T[51]);\n a = II(a, b, c, d, M_offset_12, 6, T[52]);\n d = II(d, a, b, c, M_offset_3, 10, T[53]);\n c = II(c, d, a, b, M_offset_10, 15, T[54]);\n b = II(b, c, d, a, M_offset_1, 21, T[55]);\n a = II(a, b, c, d, M_offset_8, 6, T[56]);\n d = II(d, a, b, c, M_offset_15, 10, T[57]);\n c = II(c, d, a, b, M_offset_6, 15, T[58]);\n b = II(b, c, d, a, M_offset_13, 21, T[59]);\n a = II(a, b, c, d, M_offset_4, 6, T[60]);\n d = II(d, a, b, c, M_offset_11, 10, T[61]);\n c = II(c, d, a, b, M_offset_2, 15, T[62]);\n b = II(b, c, d, a, M_offset_9, 21, T[63]); // Intermediate hash value\n\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8; // Add padding\n\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n var nBitsTotalL = nBitsTotal;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = (nBitsTotalH << 8 | nBitsTotalH >>> 24) & 0x00ff00ff | (nBitsTotalH << 24 | nBitsTotalH >>> 8) & 0xff00ff00;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotalL << 8 | nBitsTotalL >>> 24) & 0x00ff00ff | (nBitsTotalL << 24 | nBitsTotalL >>> 8) & 0xff00ff00;\n data.sigBytes = (dataWords.length + 1) * 4; // Hash final blocks\n\n this._process(); // Shortcuts\n\n\n var hash = this._hash;\n var H = hash.words; // Swap endian\n\n for (var i = 0; i < 4; i++) {\n // Shortcut\n var H_i = H[i];\n H[i] = (H_i << 8 | H_i >>> 24) & 0x00ff00ff | (H_i << 24 | H_i >>> 8) & 0xff00ff00;\n } // Return final computed hash\n\n\n return hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n\n function FF(a, b, c, d, x, s, t) {\n var n = a + (b & c | ~b & d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n\n function GG(a, b, c, d, x, s, t) {\n var n = a + (b & d | c & ~d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n\n function HH(a, b, c, d, x, s, t) {\n var n = a + (b ^ c ^ d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n\n function II(a, b, c, d, x, s, t) {\n var n = a + (c ^ (b | ~d)) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.MD5('message');\n * var hash = CryptoJS.MD5(wordArray);\n */\n\n\n C.MD5 = Hasher._createHelper(MD5);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacMD5(message, key);\n */\n\n C.HmacMD5 = Hasher._createHmacHelper(MD5);\n })(Math);\n\n return CryptoJS.MD5;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/md5.js?"); | ||
| 1053 | + | ||
| 1054 | +/***/ }), | ||
| 1055 | + | ||
| 1056 | +/***/ "./node_modules/crypto-js/mode-cfb.js": | ||
| 1057 | +/*!********************************************!*\ | ||
| 1058 | + !*** ./node_modules/crypto-js/mode-cfb.js ***! | ||
| 1059 | + \********************************************/ | ||
| 1060 | +/*! no static exports found */ | ||
| 1061 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1062 | + | ||
| 1063 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n /**\n * Cipher Feedback block mode.\n */\n CryptoJS.mode.CFB = function () {\n var CFB = CryptoJS.lib.BlockCipherMode.extend();\n CFB.Encryptor = CFB.extend({\n processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); // Remember this block to use with next block\n\n this._prevBlock = words.slice(offset, offset + blockSize);\n }\n });\n CFB.Decryptor = CFB.extend({\n processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize; // Remember this block to use with next block\n\n var thisBlock = words.slice(offset, offset + blockSize);\n generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); // This block becomes the previous block\n\n this._prevBlock = thisBlock;\n }\n });\n\n function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\n var keystream; // Shortcut\n\n var iv = this._iv; // Generate keystream\n\n if (iv) {\n keystream = iv.slice(0); // Remove IV for subsequent blocks\n\n this._iv = undefined;\n } else {\n keystream = this._prevBlock;\n }\n\n cipher.encryptBlock(keystream, 0); // Encrypt\n\n for (var i = 0; i < blockSize; i++) {\n words[offset + i] ^= keystream[i];\n }\n }\n\n return CFB;\n }();\n\n return CryptoJS.mode.CFB;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/mode-cfb.js?"); | ||
| 1064 | + | ||
| 1065 | +/***/ }), | ||
| 1066 | + | ||
| 1067 | +/***/ "./node_modules/crypto-js/mode-ctr-gladman.js": | ||
| 1068 | +/*!****************************************************!*\ | ||
| 1069 | + !*** ./node_modules/crypto-js/mode-ctr-gladman.js ***! | ||
| 1070 | + \****************************************************/ | ||
| 1071 | +/*! no static exports found */ | ||
| 1072 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1073 | + | ||
| 1074 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n /** @preserve\n * Counter block mode compatible with Dr Brian Gladman fileenc.c\n * derived from CryptoJS.mode.CTR\n * Jan Hruby jhruby.web@gmail.com\n */\n CryptoJS.mode.CTRGladman = function () {\n var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();\n\n function incWord(word) {\n if ((word >> 24 & 0xff) === 0xff) {\n //overflow\n var b1 = word >> 16 & 0xff;\n var b2 = word >> 8 & 0xff;\n var b3 = word & 0xff;\n\n if (b1 === 0xff) // overflow b1\n {\n b1 = 0;\n\n if (b2 === 0xff) {\n b2 = 0;\n\n if (b3 === 0xff) {\n b3 = 0;\n } else {\n ++b3;\n }\n } else {\n ++b2;\n }\n } else {\n ++b1;\n }\n\n word = 0;\n word += b1 << 16;\n word += b2 << 8;\n word += b3;\n } else {\n word += 0x01 << 24;\n }\n\n return word;\n }\n\n function incCounter(counter) {\n if ((counter[0] = incWord(counter[0])) === 0) {\n // encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\n counter[1] = incWord(counter[1]);\n }\n\n return counter;\n }\n\n var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\n processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n var iv = this._iv;\n var counter = this._counter; // Generate keystream\n\n if (iv) {\n counter = this._counter = iv.slice(0); // Remove IV for subsequent blocks\n\n this._iv = undefined;\n }\n\n incCounter(counter);\n var keystream = counter.slice(0);\n cipher.encryptBlock(keystream, 0); // Encrypt\n\n for (var i = 0; i < blockSize; i++) {\n words[offset + i] ^= keystream[i];\n }\n }\n });\n CTRGladman.Decryptor = Encryptor;\n return CTRGladman;\n }();\n\n return CryptoJS.mode.CTRGladman;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/mode-ctr-gladman.js?"); | ||
| 1075 | + | ||
| 1076 | +/***/ }), | ||
| 1077 | + | ||
| 1078 | +/***/ "./node_modules/crypto-js/mode-ctr.js": | ||
| 1079 | +/*!********************************************!*\ | ||
| 1080 | + !*** ./node_modules/crypto-js/mode-ctr.js ***! | ||
| 1081 | + \********************************************/ | ||
| 1082 | +/*! no static exports found */ | ||
| 1083 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1084 | + | ||
| 1085 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n /**\n * Counter block mode.\n */\n CryptoJS.mode.CTR = function () {\n var CTR = CryptoJS.lib.BlockCipherMode.extend();\n var Encryptor = CTR.Encryptor = CTR.extend({\n processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n var iv = this._iv;\n var counter = this._counter; // Generate keystream\n\n if (iv) {\n counter = this._counter = iv.slice(0); // Remove IV for subsequent blocks\n\n this._iv = undefined;\n }\n\n var keystream = counter.slice(0);\n cipher.encryptBlock(keystream, 0); // Increment counter\n\n counter[blockSize - 1] = counter[blockSize - 1] + 1 | 0; // Encrypt\n\n for (var i = 0; i < blockSize; i++) {\n words[offset + i] ^= keystream[i];\n }\n }\n });\n CTR.Decryptor = Encryptor;\n return CTR;\n }();\n\n return CryptoJS.mode.CTR;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/mode-ctr.js?"); | ||
| 1086 | + | ||
| 1087 | +/***/ }), | ||
| 1088 | + | ||
| 1089 | +/***/ "./node_modules/crypto-js/mode-ecb.js": | ||
| 1090 | +/*!********************************************!*\ | ||
| 1091 | + !*** ./node_modules/crypto-js/mode-ecb.js ***! | ||
| 1092 | + \********************************************/ | ||
| 1093 | +/*! no static exports found */ | ||
| 1094 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1095 | + | ||
| 1096 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n /**\n * Electronic Codebook block mode.\n */\n CryptoJS.mode.ECB = function () {\n var ECB = CryptoJS.lib.BlockCipherMode.extend();\n ECB.Encryptor = ECB.extend({\n processBlock: function processBlock(words, offset) {\n this._cipher.encryptBlock(words, offset);\n }\n });\n ECB.Decryptor = ECB.extend({\n processBlock: function processBlock(words, offset) {\n this._cipher.decryptBlock(words, offset);\n }\n });\n return ECB;\n }();\n\n return CryptoJS.mode.ECB;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/mode-ecb.js?"); | ||
| 1097 | + | ||
| 1098 | +/***/ }), | ||
| 1099 | + | ||
| 1100 | +/***/ "./node_modules/crypto-js/mode-ofb.js": | ||
| 1101 | +/*!********************************************!*\ | ||
| 1102 | + !*** ./node_modules/crypto-js/mode-ofb.js ***! | ||
| 1103 | + \********************************************/ | ||
| 1104 | +/*! no static exports found */ | ||
| 1105 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1106 | + | ||
| 1107 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n /**\n * Output Feedback block mode.\n */\n CryptoJS.mode.OFB = function () {\n var OFB = CryptoJS.lib.BlockCipherMode.extend();\n var Encryptor = OFB.Encryptor = OFB.extend({\n processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n var iv = this._iv;\n var keystream = this._keystream; // Generate keystream\n\n if (iv) {\n keystream = this._keystream = iv.slice(0); // Remove IV for subsequent blocks\n\n this._iv = undefined;\n }\n\n cipher.encryptBlock(keystream, 0); // Encrypt\n\n for (var i = 0; i < blockSize; i++) {\n words[offset + i] ^= keystream[i];\n }\n }\n });\n OFB.Decryptor = Encryptor;\n return OFB;\n }();\n\n return CryptoJS.mode.OFB;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/mode-ofb.js?"); | ||
| 1108 | + | ||
| 1109 | +/***/ }), | ||
| 1110 | + | ||
| 1111 | +/***/ "./node_modules/crypto-js/pad-ansix923.js": | ||
| 1112 | +/*!************************************************!*\ | ||
| 1113 | + !*** ./node_modules/crypto-js/pad-ansix923.js ***! | ||
| 1114 | + \************************************************/ | ||
| 1115 | +/*! no static exports found */ | ||
| 1116 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1117 | + | ||
| 1118 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n /**\n * ANSI X.923 padding strategy.\n */\n CryptoJS.pad.AnsiX923 = {\n pad: function pad(data, blockSize) {\n // Shortcuts\n var dataSigBytes = data.sigBytes;\n var blockSizeBytes = blockSize * 4; // Count padding bytes\n\n var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes; // Compute last byte position\n\n var lastBytePos = dataSigBytes + nPaddingBytes - 1; // Pad\n\n data.clamp();\n data.words[lastBytePos >>> 2] |= nPaddingBytes << 24 - lastBytePos % 4 * 8;\n data.sigBytes += nPaddingBytes;\n },\n unpad: function unpad(data) {\n // Get number of padding bytes from last byte\n var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 0xff; // Remove padding\n\n data.sigBytes -= nPaddingBytes;\n }\n };\n return CryptoJS.pad.Ansix923;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/pad-ansix923.js?"); | ||
| 1119 | + | ||
| 1120 | +/***/ }), | ||
| 1121 | + | ||
| 1122 | +/***/ "./node_modules/crypto-js/pad-iso10126.js": | ||
| 1123 | +/*!************************************************!*\ | ||
| 1124 | + !*** ./node_modules/crypto-js/pad-iso10126.js ***! | ||
| 1125 | + \************************************************/ | ||
| 1126 | +/*! no static exports found */ | ||
| 1127 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1128 | + | ||
| 1129 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n /**\n * ISO 10126 padding strategy.\n */\n CryptoJS.pad.Iso10126 = {\n pad: function pad(data, blockSize) {\n // Shortcut\n var blockSizeBytes = blockSize * 4; // Count padding bytes\n\n var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; // Pad\n\n data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));\n },\n unpad: function unpad(data) {\n // Get number of padding bytes from last byte\n var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 0xff; // Remove padding\n\n data.sigBytes -= nPaddingBytes;\n }\n };\n return CryptoJS.pad.Iso10126;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/pad-iso10126.js?"); | ||
| 1130 | + | ||
| 1131 | +/***/ }), | ||
| 1132 | + | ||
| 1133 | +/***/ "./node_modules/crypto-js/pad-iso97971.js": | ||
| 1134 | +/*!************************************************!*\ | ||
| 1135 | + !*** ./node_modules/crypto-js/pad-iso97971.js ***! | ||
| 1136 | + \************************************************/ | ||
| 1137 | +/*! no static exports found */ | ||
| 1138 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1139 | + | ||
| 1140 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n /**\n * ISO/IEC 9797-1 Padding Method 2.\n */\n CryptoJS.pad.Iso97971 = {\n pad: function pad(data, blockSize) {\n // Add 0x80 byte\n data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1)); // Zero pad the rest\n\n CryptoJS.pad.ZeroPadding.pad(data, blockSize);\n },\n unpad: function unpad(data) {\n // Remove zero padding\n CryptoJS.pad.ZeroPadding.unpad(data); // Remove one more byte -- the 0x80 byte\n\n data.sigBytes--;\n }\n };\n return CryptoJS.pad.Iso97971;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/pad-iso97971.js?"); | ||
| 1141 | + | ||
| 1142 | +/***/ }), | ||
| 1143 | + | ||
| 1144 | +/***/ "./node_modules/crypto-js/pad-nopadding.js": | ||
| 1145 | +/*!*************************************************!*\ | ||
| 1146 | + !*** ./node_modules/crypto-js/pad-nopadding.js ***! | ||
| 1147 | + \*************************************************/ | ||
| 1148 | +/*! no static exports found */ | ||
| 1149 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1150 | + | ||
| 1151 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n /**\n * A noop padding strategy.\n */\n CryptoJS.pad.NoPadding = {\n pad: function pad() {},\n unpad: function unpad() {}\n };\n return CryptoJS.pad.NoPadding;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/pad-nopadding.js?"); | ||
| 1152 | + | ||
| 1153 | +/***/ }), | ||
| 1154 | + | ||
| 1155 | +/***/ "./node_modules/crypto-js/pad-zeropadding.js": | ||
| 1156 | +/*!***************************************************!*\ | ||
| 1157 | + !*** ./node_modules/crypto-js/pad-zeropadding.js ***! | ||
| 1158 | + \***************************************************/ | ||
| 1159 | +/*! no static exports found */ | ||
| 1160 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1161 | + | ||
| 1162 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n /**\n * Zero padding strategy.\n */\n CryptoJS.pad.ZeroPadding = {\n pad: function pad(data, blockSize) {\n // Shortcut\n var blockSizeBytes = blockSize * 4; // Pad\n\n data.clamp();\n data.sigBytes += blockSizeBytes - (data.sigBytes % blockSizeBytes || blockSizeBytes);\n },\n unpad: function unpad(data) {\n // Shortcut\n var dataWords = data.words; // Unpad\n\n var i = data.sigBytes - 1;\n\n for (var i = data.sigBytes - 1; i >= 0; i--) {\n if (dataWords[i >>> 2] >>> 24 - i % 4 * 8 & 0xff) {\n data.sigBytes = i + 1;\n break;\n }\n }\n }\n };\n return CryptoJS.pad.ZeroPadding;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/pad-zeropadding.js?"); | ||
| 1163 | + | ||
| 1164 | +/***/ }), | ||
| 1165 | + | ||
| 1166 | +/***/ "./node_modules/crypto-js/pbkdf2.js": | ||
| 1167 | +/*!******************************************!*\ | ||
| 1168 | + !*** ./node_modules/crypto-js/pbkdf2.js ***! | ||
| 1169 | + \******************************************/ | ||
| 1170 | +/*! no static exports found */ | ||
| 1171 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1172 | + | ||
| 1173 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./sha1 */ \"./node_modules/crypto-js/sha1.js\"), __webpack_require__(/*! ./hmac */ \"./node_modules/crypto-js/hmac.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var C_algo = C.algo;\n var SHA1 = C_algo.SHA1;\n var HMAC = C_algo.HMAC;\n /**\n * Password-Based Key Derivation Function 2 algorithm.\n */\n\n var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n /**\n * Configuration options.\n *\n * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n * @property {Hasher} hasher The hasher to use. Default: SHA1\n * @property {number} iterations The number of iterations to perform. Default: 1\n */\n cfg: Base.extend({\n keySize: 128 / 32,\n hasher: SHA1,\n iterations: 1\n }),\n\n /**\n * Initializes a newly created key derivation function.\n *\n * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n *\n * @example\n *\n * var kdf = CryptoJS.algo.PBKDF2.create();\n * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n */\n init: function init(cfg) {\n this.cfg = this.cfg.extend(cfg);\n },\n\n /**\n * Computes the Password-Based Key Derivation Function 2.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n *\n * @return {WordArray} The derived key.\n *\n * @example\n *\n * var key = kdf.compute(password, salt);\n */\n compute: function compute(password, salt) {\n // Shortcut\n var cfg = this.cfg; // Init HMAC\n\n var hmac = HMAC.create(cfg.hasher, password); // Initial values\n\n var derivedKey = WordArray.create();\n var blockIndex = WordArray.create([0x00000001]); // Shortcuts\n\n var derivedKeyWords = derivedKey.words;\n var blockIndexWords = blockIndex.words;\n var keySize = cfg.keySize;\n var iterations = cfg.iterations; // Generate key\n\n while (derivedKeyWords.length < keySize) {\n var block = hmac.update(salt).finalize(blockIndex);\n hmac.reset(); // Shortcuts\n\n var blockWords = block.words;\n var blockWordsLength = blockWords.length; // Iterations\n\n var intermediate = block;\n\n for (var i = 1; i < iterations; i++) {\n intermediate = hmac.finalize(intermediate);\n hmac.reset(); // Shortcut\n\n var intermediateWords = intermediate.words; // XOR intermediate with block\n\n for (var j = 0; j < blockWordsLength; j++) {\n blockWords[j] ^= intermediateWords[j];\n }\n }\n\n derivedKey.concat(block);\n blockIndexWords[0]++;\n }\n\n derivedKey.sigBytes = keySize * 4;\n return derivedKey;\n }\n });\n /**\n * Computes the Password-Based Key Derivation Function 2.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n * @param {Object} cfg (Optional) The configuration options to use for this computation.\n *\n * @return {WordArray} The derived key.\n *\n * @static\n *\n * @example\n *\n * var key = CryptoJS.PBKDF2(password, salt);\n * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n */\n\n C.PBKDF2 = function (password, salt, cfg) {\n return PBKDF2.create(cfg).compute(password, salt);\n };\n })();\n\n return CryptoJS.PBKDF2;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/pbkdf2.js?"); | ||
| 1174 | + | ||
| 1175 | +/***/ }), | ||
| 1176 | + | ||
| 1177 | +/***/ "./node_modules/crypto-js/rabbit-legacy.js": | ||
| 1178 | +/*!*************************************************!*\ | ||
| 1179 | + !*** ./node_modules/crypto-js/rabbit-legacy.js ***! | ||
| 1180 | + \*************************************************/ | ||
| 1181 | +/*! no static exports found */ | ||
| 1182 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1183 | + | ||
| 1184 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./enc-base64 */ \"./node_modules/crypto-js/enc-base64.js\"), __webpack_require__(/*! ./md5 */ \"./node_modules/crypto-js/md5.js\"), __webpack_require__(/*! ./evpkdf */ \"./node_modules/crypto-js/evpkdf.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var StreamCipher = C_lib.StreamCipher;\n var C_algo = C.algo; // Reusable objects\n\n var S = [];\n var C_ = [];\n var G = [];\n /**\n * Rabbit stream cipher algorithm.\n *\n * This is a legacy version that neglected to convert the key to little-endian.\n * This error doesn't affect the cipher's security,\n * but it does affect its compatibility with other implementations.\n */\n\n var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\n _doReset: function _doReset() {\n // Shortcuts\n var K = this._key.words;\n var iv = this.cfg.iv; // Generate initial state values\n\n var X = this._X = [K[0], K[3] << 16 | K[2] >>> 16, K[1], K[0] << 16 | K[3] >>> 16, K[2], K[1] << 16 | K[0] >>> 16, K[3], K[2] << 16 | K[1] >>> 16]; // Generate initial counter values\n\n var C = this._C = [K[2] << 16 | K[2] >>> 16, K[0] & 0xffff0000 | K[1] & 0x0000ffff, K[3] << 16 | K[3] >>> 16, K[1] & 0xffff0000 | K[2] & 0x0000ffff, K[0] << 16 | K[0] >>> 16, K[2] & 0xffff0000 | K[3] & 0x0000ffff, K[1] << 16 | K[1] >>> 16, K[3] & 0xffff0000 | K[0] & 0x0000ffff]; // Carry bit\n\n this._b = 0; // Iterate the system four times\n\n for (var i = 0; i < 4; i++) {\n nextState.call(this);\n } // Modify the counters\n\n\n for (var i = 0; i < 8; i++) {\n C[i] ^= X[i + 4 & 7];\n } // IV setup\n\n\n if (iv) {\n // Shortcuts\n var IV = iv.words;\n var IV_0 = IV[0];\n var IV_1 = IV[1]; // Generate four subvectors\n\n var i0 = (IV_0 << 8 | IV_0 >>> 24) & 0x00ff00ff | (IV_0 << 24 | IV_0 >>> 8) & 0xff00ff00;\n var i2 = (IV_1 << 8 | IV_1 >>> 24) & 0x00ff00ff | (IV_1 << 24 | IV_1 >>> 8) & 0xff00ff00;\n var i1 = i0 >>> 16 | i2 & 0xffff0000;\n var i3 = i2 << 16 | i0 & 0x0000ffff; // Modify counter values\n\n C[0] ^= i0;\n C[1] ^= i1;\n C[2] ^= i2;\n C[3] ^= i3;\n C[4] ^= i0;\n C[5] ^= i1;\n C[6] ^= i2;\n C[7] ^= i3; // Iterate the system four times\n\n for (var i = 0; i < 4; i++) {\n nextState.call(this);\n }\n }\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcut\n var X = this._X; // Iterate the system\n\n nextState.call(this); // Generate four keystream words\n\n S[0] = X[0] ^ X[5] >>> 16 ^ X[3] << 16;\n S[1] = X[2] ^ X[7] >>> 16 ^ X[5] << 16;\n S[2] = X[4] ^ X[1] >>> 16 ^ X[7] << 16;\n S[3] = X[6] ^ X[3] >>> 16 ^ X[1] << 16;\n\n for (var i = 0; i < 4; i++) {\n // Swap endian\n S[i] = (S[i] << 8 | S[i] >>> 24) & 0x00ff00ff | (S[i] << 24 | S[i] >>> 8) & 0xff00ff00; // Encrypt\n\n M[offset + i] ^= S[i];\n }\n },\n blockSize: 128 / 32,\n ivSize: 64 / 32\n });\n\n function nextState() {\n // Shortcuts\n var X = this._X;\n var C = this._C; // Save old counter values\n\n for (var i = 0; i < 8; i++) {\n C_[i] = C[i];\n } // Calculate new counter values\n\n\n C[0] = C[0] + 0x4d34d34d + this._b | 0;\n C[1] = C[1] + 0xd34d34d3 + (C[0] >>> 0 < C_[0] >>> 0 ? 1 : 0) | 0;\n C[2] = C[2] + 0x34d34d34 + (C[1] >>> 0 < C_[1] >>> 0 ? 1 : 0) | 0;\n C[3] = C[3] + 0x4d34d34d + (C[2] >>> 0 < C_[2] >>> 0 ? 1 : 0) | 0;\n C[4] = C[4] + 0xd34d34d3 + (C[3] >>> 0 < C_[3] >>> 0 ? 1 : 0) | 0;\n C[5] = C[5] + 0x34d34d34 + (C[4] >>> 0 < C_[4] >>> 0 ? 1 : 0) | 0;\n C[6] = C[6] + 0x4d34d34d + (C[5] >>> 0 < C_[5] >>> 0 ? 1 : 0) | 0;\n C[7] = C[7] + 0xd34d34d3 + (C[6] >>> 0 < C_[6] >>> 0 ? 1 : 0) | 0;\n this._b = C[7] >>> 0 < C_[7] >>> 0 ? 1 : 0; // Calculate the g-values\n\n for (var i = 0; i < 8; i++) {\n var gx = X[i] + C[i]; // Construct high and low argument for squaring\n\n var ga = gx & 0xffff;\n var gb = gx >>> 16; // Calculate high and low result of squaring\n\n var gh = ((ga * ga >>> 17) + ga * gb >>> 15) + gb * gb;\n var gl = ((gx & 0xffff0000) * gx | 0) + ((gx & 0x0000ffff) * gx | 0); // High XOR low\n\n G[i] = gh ^ gl;\n } // Calculate new state values\n\n\n X[0] = G[0] + (G[7] << 16 | G[7] >>> 16) + (G[6] << 16 | G[6] >>> 16) | 0;\n X[1] = G[1] + (G[0] << 8 | G[0] >>> 24) + G[7] | 0;\n X[2] = G[2] + (G[1] << 16 | G[1] >>> 16) + (G[0] << 16 | G[0] >>> 16) | 0;\n X[3] = G[3] + (G[2] << 8 | G[2] >>> 24) + G[1] | 0;\n X[4] = G[4] + (G[3] << 16 | G[3] >>> 16) + (G[2] << 16 | G[2] >>> 16) | 0;\n X[5] = G[5] + (G[4] << 8 | G[4] >>> 24) + G[3] | 0;\n X[6] = G[6] + (G[5] << 16 | G[5] >>> 16) + (G[4] << 16 | G[4] >>> 16) | 0;\n X[7] = G[7] + (G[6] << 8 | G[6] >>> 24) + G[5] | 0;\n }\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\n */\n\n\n C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\n })();\n\n return CryptoJS.RabbitLegacy;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/rabbit-legacy.js?"); | ||
| 1185 | + | ||
| 1186 | +/***/ }), | ||
| 1187 | + | ||
| 1188 | +/***/ "./node_modules/crypto-js/rabbit.js": | ||
| 1189 | +/*!******************************************!*\ | ||
| 1190 | + !*** ./node_modules/crypto-js/rabbit.js ***! | ||
| 1191 | + \******************************************/ | ||
| 1192 | +/*! no static exports found */ | ||
| 1193 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1194 | + | ||
| 1195 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./enc-base64 */ \"./node_modules/crypto-js/enc-base64.js\"), __webpack_require__(/*! ./md5 */ \"./node_modules/crypto-js/md5.js\"), __webpack_require__(/*! ./evpkdf */ \"./node_modules/crypto-js/evpkdf.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var StreamCipher = C_lib.StreamCipher;\n var C_algo = C.algo; // Reusable objects\n\n var S = [];\n var C_ = [];\n var G = [];\n /**\n * Rabbit stream cipher algorithm\n */\n\n var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n _doReset: function _doReset() {\n // Shortcuts\n var K = this._key.words;\n var iv = this.cfg.iv; // Swap endian\n\n for (var i = 0; i < 4; i++) {\n K[i] = (K[i] << 8 | K[i] >>> 24) & 0x00ff00ff | (K[i] << 24 | K[i] >>> 8) & 0xff00ff00;\n } // Generate initial state values\n\n\n var X = this._X = [K[0], K[3] << 16 | K[2] >>> 16, K[1], K[0] << 16 | K[3] >>> 16, K[2], K[1] << 16 | K[0] >>> 16, K[3], K[2] << 16 | K[1] >>> 16]; // Generate initial counter values\n\n var C = this._C = [K[2] << 16 | K[2] >>> 16, K[0] & 0xffff0000 | K[1] & 0x0000ffff, K[3] << 16 | K[3] >>> 16, K[1] & 0xffff0000 | K[2] & 0x0000ffff, K[0] << 16 | K[0] >>> 16, K[2] & 0xffff0000 | K[3] & 0x0000ffff, K[1] << 16 | K[1] >>> 16, K[3] & 0xffff0000 | K[0] & 0x0000ffff]; // Carry bit\n\n this._b = 0; // Iterate the system four times\n\n for (var i = 0; i < 4; i++) {\n nextState.call(this);\n } // Modify the counters\n\n\n for (var i = 0; i < 8; i++) {\n C[i] ^= X[i + 4 & 7];\n } // IV setup\n\n\n if (iv) {\n // Shortcuts\n var IV = iv.words;\n var IV_0 = IV[0];\n var IV_1 = IV[1]; // Generate four subvectors\n\n var i0 = (IV_0 << 8 | IV_0 >>> 24) & 0x00ff00ff | (IV_0 << 24 | IV_0 >>> 8) & 0xff00ff00;\n var i2 = (IV_1 << 8 | IV_1 >>> 24) & 0x00ff00ff | (IV_1 << 24 | IV_1 >>> 8) & 0xff00ff00;\n var i1 = i0 >>> 16 | i2 & 0xffff0000;\n var i3 = i2 << 16 | i0 & 0x0000ffff; // Modify counter values\n\n C[0] ^= i0;\n C[1] ^= i1;\n C[2] ^= i2;\n C[3] ^= i3;\n C[4] ^= i0;\n C[5] ^= i1;\n C[6] ^= i2;\n C[7] ^= i3; // Iterate the system four times\n\n for (var i = 0; i < 4; i++) {\n nextState.call(this);\n }\n }\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcut\n var X = this._X; // Iterate the system\n\n nextState.call(this); // Generate four keystream words\n\n S[0] = X[0] ^ X[5] >>> 16 ^ X[3] << 16;\n S[1] = X[2] ^ X[7] >>> 16 ^ X[5] << 16;\n S[2] = X[4] ^ X[1] >>> 16 ^ X[7] << 16;\n S[3] = X[6] ^ X[3] >>> 16 ^ X[1] << 16;\n\n for (var i = 0; i < 4; i++) {\n // Swap endian\n S[i] = (S[i] << 8 | S[i] >>> 24) & 0x00ff00ff | (S[i] << 24 | S[i] >>> 8) & 0xff00ff00; // Encrypt\n\n M[offset + i] ^= S[i];\n }\n },\n blockSize: 128 / 32,\n ivSize: 64 / 32\n });\n\n function nextState() {\n // Shortcuts\n var X = this._X;\n var C = this._C; // Save old counter values\n\n for (var i = 0; i < 8; i++) {\n C_[i] = C[i];\n } // Calculate new counter values\n\n\n C[0] = C[0] + 0x4d34d34d + this._b | 0;\n C[1] = C[1] + 0xd34d34d3 + (C[0] >>> 0 < C_[0] >>> 0 ? 1 : 0) | 0;\n C[2] = C[2] + 0x34d34d34 + (C[1] >>> 0 < C_[1] >>> 0 ? 1 : 0) | 0;\n C[3] = C[3] + 0x4d34d34d + (C[2] >>> 0 < C_[2] >>> 0 ? 1 : 0) | 0;\n C[4] = C[4] + 0xd34d34d3 + (C[3] >>> 0 < C_[3] >>> 0 ? 1 : 0) | 0;\n C[5] = C[5] + 0x34d34d34 + (C[4] >>> 0 < C_[4] >>> 0 ? 1 : 0) | 0;\n C[6] = C[6] + 0x4d34d34d + (C[5] >>> 0 < C_[5] >>> 0 ? 1 : 0) | 0;\n C[7] = C[7] + 0xd34d34d3 + (C[6] >>> 0 < C_[6] >>> 0 ? 1 : 0) | 0;\n this._b = C[7] >>> 0 < C_[7] >>> 0 ? 1 : 0; // Calculate the g-values\n\n for (var i = 0; i < 8; i++) {\n var gx = X[i] + C[i]; // Construct high and low argument for squaring\n\n var ga = gx & 0xffff;\n var gb = gx >>> 16; // Calculate high and low result of squaring\n\n var gh = ((ga * ga >>> 17) + ga * gb >>> 15) + gb * gb;\n var gl = ((gx & 0xffff0000) * gx | 0) + ((gx & 0x0000ffff) * gx | 0); // High XOR low\n\n G[i] = gh ^ gl;\n } // Calculate new state values\n\n\n X[0] = G[0] + (G[7] << 16 | G[7] >>> 16) + (G[6] << 16 | G[6] >>> 16) | 0;\n X[1] = G[1] + (G[0] << 8 | G[0] >>> 24) + G[7] | 0;\n X[2] = G[2] + (G[1] << 16 | G[1] >>> 16) + (G[0] << 16 | G[0] >>> 16) | 0;\n X[3] = G[3] + (G[2] << 8 | G[2] >>> 24) + G[1] | 0;\n X[4] = G[4] + (G[3] << 16 | G[3] >>> 16) + (G[2] << 16 | G[2] >>> 16) | 0;\n X[5] = G[5] + (G[4] << 8 | G[4] >>> 24) + G[3] | 0;\n X[6] = G[6] + (G[5] << 16 | G[5] >>> 16) + (G[4] << 16 | G[4] >>> 16) | 0;\n X[7] = G[7] + (G[6] << 8 | G[6] >>> 24) + G[5] | 0;\n }\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n */\n\n\n C.Rabbit = StreamCipher._createHelper(Rabbit);\n })();\n\n return CryptoJS.Rabbit;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/rabbit.js?"); | ||
| 1196 | + | ||
| 1197 | +/***/ }), | ||
| 1198 | + | ||
| 1199 | +/***/ "./node_modules/crypto-js/rc4.js": | ||
| 1200 | +/*!***************************************!*\ | ||
| 1201 | + !*** ./node_modules/crypto-js/rc4.js ***! | ||
| 1202 | + \***************************************/ | ||
| 1203 | +/*! no static exports found */ | ||
| 1204 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1205 | + | ||
| 1206 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./enc-base64 */ \"./node_modules/crypto-js/enc-base64.js\"), __webpack_require__(/*! ./md5 */ \"./node_modules/crypto-js/md5.js\"), __webpack_require__(/*! ./evpkdf */ \"./node_modules/crypto-js/evpkdf.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var StreamCipher = C_lib.StreamCipher;\n var C_algo = C.algo;\n /**\n * RC4 stream cipher algorithm.\n */\n\n var RC4 = C_algo.RC4 = StreamCipher.extend({\n _doReset: function _doReset() {\n // Shortcuts\n var key = this._key;\n var keyWords = key.words;\n var keySigBytes = key.sigBytes; // Init sbox\n\n var S = this._S = [];\n\n for (var i = 0; i < 256; i++) {\n S[i] = i;\n } // Key setup\n\n\n for (var i = 0, j = 0; i < 256; i++) {\n var keyByteIndex = i % keySigBytes;\n var keyByte = keyWords[keyByteIndex >>> 2] >>> 24 - keyByteIndex % 4 * 8 & 0xff;\n j = (j + S[i] + keyByte) % 256; // Swap\n\n var t = S[i];\n S[i] = S[j];\n S[j] = t;\n } // Counters\n\n\n this._i = this._j = 0;\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n M[offset] ^= generateKeystreamWord.call(this);\n },\n keySize: 256 / 32,\n ivSize: 0\n });\n\n function generateKeystreamWord() {\n // Shortcuts\n var S = this._S;\n var i = this._i;\n var j = this._j; // Generate keystream word\n\n var keystreamWord = 0;\n\n for (var n = 0; n < 4; n++) {\n i = (i + 1) % 256;\n j = (j + S[i]) % 256; // Swap\n\n var t = S[i];\n S[i] = S[j];\n S[j] = t;\n keystreamWord |= S[(S[i] + S[j]) % 256] << 24 - n * 8;\n } // Update counters\n\n\n this._i = i;\n this._j = j;\n return keystreamWord;\n }\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n */\n\n\n C.RC4 = StreamCipher._createHelper(RC4);\n /**\n * Modified RC4 stream cipher algorithm.\n */\n\n var RC4Drop = C_algo.RC4Drop = RC4.extend({\n /**\n * Configuration options.\n *\n * @property {number} drop The number of keystream words to drop. Default 192\n */\n cfg: RC4.cfg.extend({\n drop: 192\n }),\n _doReset: function _doReset() {\n RC4._doReset.call(this); // Drop\n\n\n for (var i = this.cfg.drop; i > 0; i--) {\n generateKeystreamWord.call(this);\n }\n }\n });\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n */\n\n C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n })();\n\n return CryptoJS.RC4;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/rc4.js?"); | ||
| 1207 | + | ||
| 1208 | +/***/ }), | ||
| 1209 | + | ||
| 1210 | +/***/ "./node_modules/crypto-js/ripemd160.js": | ||
| 1211 | +/*!*********************************************!*\ | ||
| 1212 | + !*** ./node_modules/crypto-js/ripemd160.js ***! | ||
| 1213 | + \*********************************************/ | ||
| 1214 | +/*! no static exports found */ | ||
| 1215 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1216 | + | ||
| 1217 | +eval(";\n\n(function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n /** @preserve\n (c) 2012 by Cédric Mesnil. All rights reserved.\n \tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n \t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n \tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n (function (Math) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo; // Constants table\n\n var _zl = WordArray.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);\n\n var _zr = WordArray.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);\n\n var _sl = WordArray.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]);\n\n var _sr = WordArray.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]);\n\n var _hl = WordArray.create([0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\n\n var _hr = WordArray.create([0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\n /**\n * RIPEMD160 hash algorithm.\n */\n\n\n var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Swap endian\n for (var i = 0; i < 16; i++) {\n // Shortcuts\n var offset_i = offset + i;\n var M_offset_i = M[offset_i]; // Swap\n\n M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 0x00ff00ff | (M_offset_i << 24 | M_offset_i >>> 8) & 0xff00ff00;\n } // Shortcut\n\n\n var H = this._hash.words;\n var hl = _hl.words;\n var hr = _hr.words;\n var zl = _zl.words;\n var zr = _zr.words;\n var sl = _sl.words;\n var sr = _sr.words; // Working variables\n\n var al, bl, cl, dl, el;\n var ar, br, cr, dr, er;\n ar = al = H[0];\n br = bl = H[1];\n cr = cl = H[2];\n dr = dl = H[3];\n er = el = H[4]; // Computation\n\n var t;\n\n for (var i = 0; i < 80; i += 1) {\n t = al + M[offset + zl[i]] | 0;\n\n if (i < 16) {\n t += f1(bl, cl, dl) + hl[0];\n } else if (i < 32) {\n t += f2(bl, cl, dl) + hl[1];\n } else if (i < 48) {\n t += f3(bl, cl, dl) + hl[2];\n } else if (i < 64) {\n t += f4(bl, cl, dl) + hl[3];\n } else {\n // if (i<80) {\n t += f5(bl, cl, dl) + hl[4];\n }\n\n t = t | 0;\n t = rotl(t, sl[i]);\n t = t + el | 0;\n al = el;\n el = dl;\n dl = rotl(cl, 10);\n cl = bl;\n bl = t;\n t = ar + M[offset + zr[i]] | 0;\n\n if (i < 16) {\n t += f5(br, cr, dr) + hr[0];\n } else if (i < 32) {\n t += f4(br, cr, dr) + hr[1];\n } else if (i < 48) {\n t += f3(br, cr, dr) + hr[2];\n } else if (i < 64) {\n t += f2(br, cr, dr) + hr[3];\n } else {\n // if (i<80) {\n t += f1(br, cr, dr) + hr[4];\n }\n\n t = t | 0;\n t = rotl(t, sr[i]);\n t = t + er | 0;\n ar = er;\n er = dr;\n dr = rotl(cr, 10);\n cr = br;\n br = t;\n } // Intermediate hash value\n\n\n t = H[1] + cl + dr | 0;\n H[1] = H[2] + dl + er | 0;\n H[2] = H[3] + el + ar | 0;\n H[3] = H[4] + al + br | 0;\n H[4] = H[0] + bl + cr | 0;\n H[0] = t;\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8; // Add padding\n\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotal << 8 | nBitsTotal >>> 24) & 0x00ff00ff | (nBitsTotal << 24 | nBitsTotal >>> 8) & 0xff00ff00;\n data.sigBytes = (dataWords.length + 1) * 4; // Hash final blocks\n\n this._process(); // Shortcuts\n\n\n var hash = this._hash;\n var H = hash.words; // Swap endian\n\n for (var i = 0; i < 5; i++) {\n // Shortcut\n var H_i = H[i]; // Swap\n\n H[i] = (H_i << 8 | H_i >>> 24) & 0x00ff00ff | (H_i << 24 | H_i >>> 8) & 0xff00ff00;\n } // Return final computed hash\n\n\n return hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n\n function f1(x, y, z) {\n return x ^ y ^ z;\n }\n\n function f2(x, y, z) {\n return x & y | ~x & z;\n }\n\n function f3(x, y, z) {\n return (x | ~y) ^ z;\n }\n\n function f4(x, y, z) {\n return x & z | y & ~z;\n }\n\n function f5(x, y, z) {\n return x ^ (y | ~z);\n }\n\n function rotl(x, n) {\n return x << n | x >>> 32 - n;\n }\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.RIPEMD160('message');\n * var hash = CryptoJS.RIPEMD160(wordArray);\n */\n\n\n C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacRIPEMD160(message, key);\n */\n\n C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\n })(Math);\n\n return CryptoJS.RIPEMD160;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/ripemd160.js?"); | ||
| 1218 | + | ||
| 1219 | +/***/ }), | ||
| 1220 | + | ||
| 1221 | +/***/ "./node_modules/crypto-js/sha1.js": | ||
| 1222 | +/*!****************************************!*\ | ||
| 1223 | + !*** ./node_modules/crypto-js/sha1.js ***! | ||
| 1224 | + \****************************************/ | ||
| 1225 | +/*! no static exports found */ | ||
| 1226 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1227 | + | ||
| 1228 | +eval(";\n\n(function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo; // Reusable object\n\n var W = [];\n /**\n * SHA-1 hash algorithm.\n */\n\n var SHA1 = C_algo.SHA1 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = new WordArray.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]);\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcut\n var H = this._hash.words; // Working variables\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4]; // Computation\n\n for (var i = 0; i < 80; i++) {\n if (i < 16) {\n W[i] = M[offset + i] | 0;\n } else {\n var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n W[i] = n << 1 | n >>> 31;\n }\n\n var t = (a << 5 | a >>> 27) + e + W[i];\n\n if (i < 20) {\n t += (b & c | ~b & d) + 0x5a827999;\n } else if (i < 40) {\n t += (b ^ c ^ d) + 0x6ed9eba1;\n } else if (i < 60) {\n t += (b & c | b & d | c & d) - 0x70e44324;\n } else\n /* if (i < 80) */\n {\n t += (b ^ c ^ d) - 0x359d3e2a;\n }\n\n e = d;\n d = c;\n c = b << 30 | b >>> 2;\n b = a;\n a = t;\n } // Intermediate hash value\n\n\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n H[4] = H[4] + e | 0;\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8; // Add padding\n\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4; // Hash final blocks\n\n this._process(); // Return final computed hash\n\n\n return this._hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA1('message');\n * var hash = CryptoJS.SHA1(wordArray);\n */\n\n C.SHA1 = Hasher._createHelper(SHA1);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA1(message, key);\n */\n\n C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n })();\n\n return CryptoJS.SHA1;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/sha1.js?"); | ||
| 1229 | + | ||
| 1230 | +/***/ }), | ||
| 1231 | + | ||
| 1232 | +/***/ "./node_modules/crypto-js/sha224.js": | ||
| 1233 | +/*!******************************************!*\ | ||
| 1234 | + !*** ./node_modules/crypto-js/sha224.js ***! | ||
| 1235 | + \******************************************/ | ||
| 1236 | +/*! no static exports found */ | ||
| 1237 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1238 | + | ||
| 1239 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./sha256 */ \"./node_modules/crypto-js/sha256.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_algo = C.algo;\n var SHA256 = C_algo.SHA256;\n /**\n * SHA-224 hash algorithm.\n */\n\n var SHA224 = C_algo.SHA224 = SHA256.extend({\n _doReset: function _doReset() {\n this._hash = new WordArray.init([0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4]);\n },\n _doFinalize: function _doFinalize() {\n var hash = SHA256._doFinalize.call(this);\n\n hash.sigBytes -= 4;\n return hash;\n }\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA224('message');\n * var hash = CryptoJS.SHA224(wordArray);\n */\n\n C.SHA224 = SHA256._createHelper(SHA224);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA224(message, key);\n */\n\n C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n })();\n\n return CryptoJS.SHA224;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/sha224.js?"); | ||
| 1240 | + | ||
| 1241 | +/***/ }), | ||
| 1242 | + | ||
| 1243 | +/***/ "./node_modules/crypto-js/sha256.js": | ||
| 1244 | +/*!******************************************!*\ | ||
| 1245 | + !*** ./node_modules/crypto-js/sha256.js ***! | ||
| 1246 | + \******************************************/ | ||
| 1247 | +/*! no static exports found */ | ||
| 1248 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1249 | + | ||
| 1250 | +eval(";\n\n(function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function (Math) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo; // Initialization and round constants tables\n\n var H = [];\n var K = []; // Compute constants\n\n (function () {\n function isPrime(n) {\n var sqrtN = Math.sqrt(n);\n\n for (var factor = 2; factor <= sqrtN; factor++) {\n if (!(n % factor)) {\n return false;\n }\n }\n\n return true;\n }\n\n function getFractionalBits(n) {\n return (n - (n | 0)) * 0x100000000 | 0;\n }\n\n var n = 2;\n var nPrime = 0;\n\n while (nPrime < 64) {\n if (isPrime(n)) {\n if (nPrime < 8) {\n H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n }\n\n K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n nPrime++;\n }\n\n n++;\n }\n })(); // Reusable object\n\n\n var W = [];\n /**\n * SHA-256 hash algorithm.\n */\n\n var SHA256 = C_algo.SHA256 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = new WordArray.init(H.slice(0));\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcut\n var H = this._hash.words; // Working variables\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n var f = H[5];\n var g = H[6];\n var h = H[7]; // Computation\n\n for (var i = 0; i < 64; i++) {\n if (i < 16) {\n W[i] = M[offset + i] | 0;\n } else {\n var gamma0x = W[i - 15];\n var gamma0 = (gamma0x << 25 | gamma0x >>> 7) ^ (gamma0x << 14 | gamma0x >>> 18) ^ gamma0x >>> 3;\n var gamma1x = W[i - 2];\n var gamma1 = (gamma1x << 15 | gamma1x >>> 17) ^ (gamma1x << 13 | gamma1x >>> 19) ^ gamma1x >>> 10;\n W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n }\n\n var ch = e & f ^ ~e & g;\n var maj = a & b ^ a & c ^ b & c;\n var sigma0 = (a << 30 | a >>> 2) ^ (a << 19 | a >>> 13) ^ (a << 10 | a >>> 22);\n var sigma1 = (e << 26 | e >>> 6) ^ (e << 21 | e >>> 11) ^ (e << 7 | e >>> 25);\n var t1 = h + sigma1 + ch + K[i] + W[i];\n var t2 = sigma0 + maj;\n h = g;\n g = f;\n f = e;\n e = d + t1 | 0;\n d = c;\n c = b;\n b = a;\n a = t1 + t2 | 0;\n } // Intermediate hash value\n\n\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n H[4] = H[4] + e | 0;\n H[5] = H[5] + f | 0;\n H[6] = H[6] + g | 0;\n H[7] = H[7] + h | 0;\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8; // Add padding\n\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4; // Hash final blocks\n\n this._process(); // Return final computed hash\n\n\n return this._hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA256('message');\n * var hash = CryptoJS.SHA256(wordArray);\n */\n\n C.SHA256 = Hasher._createHelper(SHA256);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA256(message, key);\n */\n\n C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n })(Math);\n\n return CryptoJS.SHA256;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/sha256.js?"); | ||
| 1251 | + | ||
| 1252 | +/***/ }), | ||
| 1253 | + | ||
| 1254 | +/***/ "./node_modules/crypto-js/sha3.js": | ||
| 1255 | +/*!****************************************!*\ | ||
| 1256 | + !*** ./node_modules/crypto-js/sha3.js ***! | ||
| 1257 | + \****************************************/ | ||
| 1258 | +/*! no static exports found */ | ||
| 1259 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1260 | + | ||
| 1261 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./x64-core */ \"./node_modules/crypto-js/x64-core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function (Math) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_x64 = C.x64;\n var X64Word = C_x64.Word;\n var C_algo = C.algo; // Constants tables\n\n var RHO_OFFSETS = [];\n var PI_INDEXES = [];\n var ROUND_CONSTANTS = []; // Compute Constants\n\n (function () {\n // Compute rho offset constants\n var x = 1,\n y = 0;\n\n for (var t = 0; t < 24; t++) {\n RHO_OFFSETS[x + 5 * y] = (t + 1) * (t + 2) / 2 % 64;\n var newX = y % 5;\n var newY = (2 * x + 3 * y) % 5;\n x = newX;\n y = newY;\n } // Compute pi index constants\n\n\n for (var x = 0; x < 5; x++) {\n for (var y = 0; y < 5; y++) {\n PI_INDEXES[x + 5 * y] = y + (2 * x + 3 * y) % 5 * 5;\n }\n } // Compute round constants\n\n\n var LFSR = 0x01;\n\n for (var i = 0; i < 24; i++) {\n var roundConstantMsw = 0;\n var roundConstantLsw = 0;\n\n for (var j = 0; j < 7; j++) {\n if (LFSR & 0x01) {\n var bitPosition = (1 << j) - 1;\n\n if (bitPosition < 32) {\n roundConstantLsw ^= 1 << bitPosition;\n } else\n /* if (bitPosition >= 32) */\n {\n roundConstantMsw ^= 1 << bitPosition - 32;\n }\n } // Compute next LFSR\n\n\n if (LFSR & 0x80) {\n // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1\n LFSR = LFSR << 1 ^ 0x71;\n } else {\n LFSR <<= 1;\n }\n }\n\n ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\n }\n })(); // Reusable objects for temporary values\n\n\n var T = [];\n\n (function () {\n for (var i = 0; i < 25; i++) {\n T[i] = X64Word.create();\n }\n })();\n /**\n * SHA-3 hash algorithm.\n */\n\n\n var SHA3 = C_algo.SHA3 = Hasher.extend({\n /**\n * Configuration options.\n *\n * @property {number} outputLength\n * The desired number of bits in the output hash.\n * Only values permitted are: 224, 256, 384, 512.\n * Default: 512\n */\n cfg: Hasher.cfg.extend({\n outputLength: 512\n }),\n _doReset: function _doReset() {\n var state = this._state = [];\n\n for (var i = 0; i < 25; i++) {\n state[i] = new X64Word.init();\n }\n\n this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcuts\n var state = this._state;\n var nBlockSizeLanes = this.blockSize / 2; // Absorb\n\n for (var i = 0; i < nBlockSizeLanes; i++) {\n // Shortcuts\n var M2i = M[offset + 2 * i];\n var M2i1 = M[offset + 2 * i + 1]; // Swap endian\n\n M2i = (M2i << 8 | M2i >>> 24) & 0x00ff00ff | (M2i << 24 | M2i >>> 8) & 0xff00ff00;\n M2i1 = (M2i1 << 8 | M2i1 >>> 24) & 0x00ff00ff | (M2i1 << 24 | M2i1 >>> 8) & 0xff00ff00; // Absorb message into state\n\n var lane = state[i];\n lane.high ^= M2i1;\n lane.low ^= M2i;\n } // Rounds\n\n\n for (var round = 0; round < 24; round++) {\n // Theta\n for (var x = 0; x < 5; x++) {\n // Mix column lanes\n var tMsw = 0,\n tLsw = 0;\n\n for (var y = 0; y < 5; y++) {\n var lane = state[x + 5 * y];\n tMsw ^= lane.high;\n tLsw ^= lane.low;\n } // Temporary values\n\n\n var Tx = T[x];\n Tx.high = tMsw;\n Tx.low = tLsw;\n }\n\n for (var x = 0; x < 5; x++) {\n // Shortcuts\n var Tx4 = T[(x + 4) % 5];\n var Tx1 = T[(x + 1) % 5];\n var Tx1Msw = Tx1.high;\n var Tx1Lsw = Tx1.low; // Mix surrounding columns\n\n var tMsw = Tx4.high ^ (Tx1Msw << 1 | Tx1Lsw >>> 31);\n var tLsw = Tx4.low ^ (Tx1Lsw << 1 | Tx1Msw >>> 31);\n\n for (var y = 0; y < 5; y++) {\n var lane = state[x + 5 * y];\n lane.high ^= tMsw;\n lane.low ^= tLsw;\n }\n } // Rho Pi\n\n\n for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\n var tMsw;\n var tLsw; // Shortcuts\n\n var lane = state[laneIndex];\n var laneMsw = lane.high;\n var laneLsw = lane.low;\n var rhoOffset = RHO_OFFSETS[laneIndex]; // Rotate lanes\n\n if (rhoOffset < 32) {\n tMsw = laneMsw << rhoOffset | laneLsw >>> 32 - rhoOffset;\n tLsw = laneLsw << rhoOffset | laneMsw >>> 32 - rhoOffset;\n } else\n /* if (rhoOffset >= 32) */\n {\n tMsw = laneLsw << rhoOffset - 32 | laneMsw >>> 64 - rhoOffset;\n tLsw = laneMsw << rhoOffset - 32 | laneLsw >>> 64 - rhoOffset;\n } // Transpose lanes\n\n\n var TPiLane = T[PI_INDEXES[laneIndex]];\n TPiLane.high = tMsw;\n TPiLane.low = tLsw;\n } // Rho pi at x = y = 0\n\n\n var T0 = T[0];\n var state0 = state[0];\n T0.high = state0.high;\n T0.low = state0.low; // Chi\n\n for (var x = 0; x < 5; x++) {\n for (var y = 0; y < 5; y++) {\n // Shortcuts\n var laneIndex = x + 5 * y;\n var lane = state[laneIndex];\n var TLane = T[laneIndex];\n var Tx1Lane = T[(x + 1) % 5 + 5 * y];\n var Tx2Lane = T[(x + 2) % 5 + 5 * y]; // Mix rows\n\n lane.high = TLane.high ^ ~Tx1Lane.high & Tx2Lane.high;\n lane.low = TLane.low ^ ~Tx1Lane.low & Tx2Lane.low;\n }\n } // Iota\n\n\n var lane = state[0];\n var roundConstant = ROUND_CONSTANTS[round];\n lane.high ^= roundConstant.high;\n lane.low ^= roundConstant.low;\n }\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n var blockSizeBits = this.blockSize * 32; // Add padding\n\n dataWords[nBitsLeft >>> 5] |= 0x1 << 24 - nBitsLeft % 32;\n dataWords[(Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits >>> 5) - 1] |= 0x80;\n data.sigBytes = dataWords.length * 4; // Hash final blocks\n\n this._process(); // Shortcuts\n\n\n var state = this._state;\n var outputLengthBytes = this.cfg.outputLength / 8;\n var outputLengthLanes = outputLengthBytes / 8; // Squeeze\n\n var hashWords = [];\n\n for (var i = 0; i < outputLengthLanes; i++) {\n // Shortcuts\n var lane = state[i];\n var laneMsw = lane.high;\n var laneLsw = lane.low; // Swap endian\n\n laneMsw = (laneMsw << 8 | laneMsw >>> 24) & 0x00ff00ff | (laneMsw << 24 | laneMsw >>> 8) & 0xff00ff00;\n laneLsw = (laneLsw << 8 | laneLsw >>> 24) & 0x00ff00ff | (laneLsw << 24 | laneLsw >>> 8) & 0xff00ff00; // Squeeze state to retrieve hash\n\n hashWords.push(laneLsw);\n hashWords.push(laneMsw);\n } // Return final computed hash\n\n\n return new WordArray.init(hashWords, outputLengthBytes);\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n\n var state = clone._state = this._state.slice(0);\n\n for (var i = 0; i < 25; i++) {\n state[i] = state[i].clone();\n }\n\n return clone;\n }\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA3('message');\n * var hash = CryptoJS.SHA3(wordArray);\n */\n\n C.SHA3 = Hasher._createHelper(SHA3);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA3(message, key);\n */\n\n C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\n })(Math);\n\n return CryptoJS.SHA3;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/sha3.js?"); | ||
| 1262 | + | ||
| 1263 | +/***/ }), | ||
| 1264 | + | ||
| 1265 | +/***/ "./node_modules/crypto-js/sha384.js": | ||
| 1266 | +/*!******************************************!*\ | ||
| 1267 | + !*** ./node_modules/crypto-js/sha384.js ***! | ||
| 1268 | + \******************************************/ | ||
| 1269 | +/*! no static exports found */ | ||
| 1270 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1271 | + | ||
| 1272 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./x64-core */ \"./node_modules/crypto-js/x64-core.js\"), __webpack_require__(/*! ./sha512 */ \"./node_modules/crypto-js/sha512.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_x64 = C.x64;\n var X64Word = C_x64.Word;\n var X64WordArray = C_x64.WordArray;\n var C_algo = C.algo;\n var SHA512 = C_algo.SHA512;\n /**\n * SHA-384 hash algorithm.\n */\n\n var SHA384 = C_algo.SHA384 = SHA512.extend({\n _doReset: function _doReset() {\n this._hash = new X64WordArray.init([new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507), new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939), new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511), new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)]);\n },\n _doFinalize: function _doFinalize() {\n var hash = SHA512._doFinalize.call(this);\n\n hash.sigBytes -= 16;\n return hash;\n }\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA384('message');\n * var hash = CryptoJS.SHA384(wordArray);\n */\n\n C.SHA384 = SHA512._createHelper(SHA384);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA384(message, key);\n */\n\n C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\n })();\n\n return CryptoJS.SHA384;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/sha384.js?"); | ||
| 1273 | + | ||
| 1274 | +/***/ }), | ||
| 1275 | + | ||
| 1276 | +/***/ "./node_modules/crypto-js/sha512.js": | ||
| 1277 | +/*!******************************************!*\ | ||
| 1278 | + !*** ./node_modules/crypto-js/sha512.js ***! | ||
| 1279 | + \******************************************/ | ||
| 1280 | +/*! no static exports found */ | ||
| 1281 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1282 | + | ||
| 1283 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./x64-core */ \"./node_modules/crypto-js/x64-core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Hasher = C_lib.Hasher;\n var C_x64 = C.x64;\n var X64Word = C_x64.Word;\n var X64WordArray = C_x64.WordArray;\n var C_algo = C.algo;\n\n function X64Word_create() {\n return X64Word.create.apply(X64Word, arguments);\n } // Constants\n\n\n var K = [X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd), X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc), X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019), X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118), X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe), X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2), X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1), X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694), X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3), X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65), X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483), X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5), X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210), X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4), X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725), X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70), X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926), X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df), X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8), X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b), X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001), X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30), X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910), X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8), X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53), X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8), X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb), X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3), X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60), X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec), X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9), X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b), X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207), X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178), X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6), X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b), X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493), X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c), X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a), X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)]; // Reusable objects\n\n var W = [];\n\n (function () {\n for (var i = 0; i < 80; i++) {\n W[i] = X64Word_create();\n }\n })();\n /**\n * SHA-512 hash algorithm.\n */\n\n\n var SHA512 = C_algo.SHA512 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = new X64WordArray.init([new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b), new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1), new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f), new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)]);\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcuts\n var H = this._hash.words;\n var H0 = H[0];\n var H1 = H[1];\n var H2 = H[2];\n var H3 = H[3];\n var H4 = H[4];\n var H5 = H[5];\n var H6 = H[6];\n var H7 = H[7];\n var H0h = H0.high;\n var H0l = H0.low;\n var H1h = H1.high;\n var H1l = H1.low;\n var H2h = H2.high;\n var H2l = H2.low;\n var H3h = H3.high;\n var H3l = H3.low;\n var H4h = H4.high;\n var H4l = H4.low;\n var H5h = H5.high;\n var H5l = H5.low;\n var H6h = H6.high;\n var H6l = H6.low;\n var H7h = H7.high;\n var H7l = H7.low; // Working variables\n\n var ah = H0h;\n var al = H0l;\n var bh = H1h;\n var bl = H1l;\n var ch = H2h;\n var cl = H2l;\n var dh = H3h;\n var dl = H3l;\n var eh = H4h;\n var el = H4l;\n var fh = H5h;\n var fl = H5l;\n var gh = H6h;\n var gl = H6l;\n var hh = H7h;\n var hl = H7l; // Rounds\n\n for (var i = 0; i < 80; i++) {\n var Wil;\n var Wih; // Shortcut\n\n var Wi = W[i]; // Extend message\n\n if (i < 16) {\n Wih = Wi.high = M[offset + i * 2] | 0;\n Wil = Wi.low = M[offset + i * 2 + 1] | 0;\n } else {\n // Gamma0\n var gamma0x = W[i - 15];\n var gamma0xh = gamma0x.high;\n var gamma0xl = gamma0x.low;\n var gamma0h = (gamma0xh >>> 1 | gamma0xl << 31) ^ (gamma0xh >>> 8 | gamma0xl << 24) ^ gamma0xh >>> 7;\n var gamma0l = (gamma0xl >>> 1 | gamma0xh << 31) ^ (gamma0xl >>> 8 | gamma0xh << 24) ^ (gamma0xl >>> 7 | gamma0xh << 25); // Gamma1\n\n var gamma1x = W[i - 2];\n var gamma1xh = gamma1x.high;\n var gamma1xl = gamma1x.low;\n var gamma1h = (gamma1xh >>> 19 | gamma1xl << 13) ^ (gamma1xh << 3 | gamma1xl >>> 29) ^ gamma1xh >>> 6;\n var gamma1l = (gamma1xl >>> 19 | gamma1xh << 13) ^ (gamma1xl << 3 | gamma1xh >>> 29) ^ (gamma1xl >>> 6 | gamma1xh << 26); // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\n var Wi7 = W[i - 7];\n var Wi7h = Wi7.high;\n var Wi7l = Wi7.low;\n var Wi16 = W[i - 16];\n var Wi16h = Wi16.high;\n var Wi16l = Wi16.low;\n Wil = gamma0l + Wi7l;\n Wih = gamma0h + Wi7h + (Wil >>> 0 < gamma0l >>> 0 ? 1 : 0);\n Wil = Wil + gamma1l;\n Wih = Wih + gamma1h + (Wil >>> 0 < gamma1l >>> 0 ? 1 : 0);\n Wil = Wil + Wi16l;\n Wih = Wih + Wi16h + (Wil >>> 0 < Wi16l >>> 0 ? 1 : 0);\n Wi.high = Wih;\n Wi.low = Wil;\n }\n\n var chh = eh & fh ^ ~eh & gh;\n var chl = el & fl ^ ~el & gl;\n var majh = ah & bh ^ ah & ch ^ bh & ch;\n var majl = al & bl ^ al & cl ^ bl & cl;\n var sigma0h = (ah >>> 28 | al << 4) ^ (ah << 30 | al >>> 2) ^ (ah << 25 | al >>> 7);\n var sigma0l = (al >>> 28 | ah << 4) ^ (al << 30 | ah >>> 2) ^ (al << 25 | ah >>> 7);\n var sigma1h = (eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9);\n var sigma1l = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9); // t1 = h + sigma1 + ch + K[i] + W[i]\n\n var Ki = K[i];\n var Kih = Ki.high;\n var Kil = Ki.low;\n var t1l = hl + sigma1l;\n var t1h = hh + sigma1h + (t1l >>> 0 < hl >>> 0 ? 1 : 0);\n var t1l = t1l + chl;\n var t1h = t1h + chh + (t1l >>> 0 < chl >>> 0 ? 1 : 0);\n var t1l = t1l + Kil;\n var t1h = t1h + Kih + (t1l >>> 0 < Kil >>> 0 ? 1 : 0);\n var t1l = t1l + Wil;\n var t1h = t1h + Wih + (t1l >>> 0 < Wil >>> 0 ? 1 : 0); // t2 = sigma0 + maj\n\n var t2l = sigma0l + majl;\n var t2h = sigma0h + majh + (t2l >>> 0 < sigma0l >>> 0 ? 1 : 0); // Update working variables\n\n hh = gh;\n hl = gl;\n gh = fh;\n gl = fl;\n fh = eh;\n fl = el;\n el = dl + t1l | 0;\n eh = dh + t1h + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;\n dh = ch;\n dl = cl;\n ch = bh;\n cl = bl;\n bh = ah;\n bl = al;\n al = t1l + t2l | 0;\n ah = t1h + t2h + (al >>> 0 < t1l >>> 0 ? 1 : 0) | 0;\n } // Intermediate hash value\n\n\n H0l = H0.low = H0l + al;\n H0.high = H0h + ah + (H0l >>> 0 < al >>> 0 ? 1 : 0);\n H1l = H1.low = H1l + bl;\n H1.high = H1h + bh + (H1l >>> 0 < bl >>> 0 ? 1 : 0);\n H2l = H2.low = H2l + cl;\n H2.high = H2h + ch + (H2l >>> 0 < cl >>> 0 ? 1 : 0);\n H3l = H3.low = H3l + dl;\n H3.high = H3h + dh + (H3l >>> 0 < dl >>> 0 ? 1 : 0);\n H4l = H4.low = H4l + el;\n H4.high = H4h + eh + (H4l >>> 0 < el >>> 0 ? 1 : 0);\n H5l = H5.low = H5l + fl;\n H5.high = H5h + fh + (H5l >>> 0 < fl >>> 0 ? 1 : 0);\n H6l = H6.low = H6l + gl;\n H6.high = H6h + gh + (H6l >>> 0 < gl >>> 0 ? 1 : 0);\n H7l = H7.low = H7l + hl;\n H7.high = H7h + hh + (H7l >>> 0 < hl >>> 0 ? 1 : 0);\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8; // Add padding\n\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 128 >>> 10 << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);\n dataWords[(nBitsLeft + 128 >>> 10 << 5) + 31] = nBitsTotal;\n data.sigBytes = dataWords.length * 4; // Hash final blocks\n\n this._process(); // Convert hash to 32-bit word array before returning\n\n\n var hash = this._hash.toX32(); // Return final computed hash\n\n\n return hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n },\n blockSize: 1024 / 32\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA512('message');\n * var hash = CryptoJS.SHA512(wordArray);\n */\n\n C.SHA512 = Hasher._createHelper(SHA512);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA512(message, key);\n */\n\n C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\n })();\n\n return CryptoJS.SHA512;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/sha512.js?"); | ||
| 1284 | + | ||
| 1285 | +/***/ }), | ||
| 1286 | + | ||
| 1287 | +/***/ "./node_modules/crypto-js/tripledes.js": | ||
| 1288 | +/*!*********************************************!*\ | ||
| 1289 | + !*** ./node_modules/crypto-js/tripledes.js ***! | ||
| 1290 | + \*********************************************/ | ||
| 1291 | +/*! no static exports found */ | ||
| 1292 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1293 | + | ||
| 1294 | +eval(";\n\n(function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./enc-base64 */ \"./node_modules/crypto-js/enc-base64.js\"), __webpack_require__(/*! ./md5 */ \"./node_modules/crypto-js/md5.js\"), __webpack_require__(/*! ./evpkdf */ \"./node_modules/crypto-js/evpkdf.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var BlockCipher = C_lib.BlockCipher;\n var C_algo = C.algo; // Permuted Choice 1 constants\n\n var PC1 = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4]; // Permuted Choice 2 constants\n\n var PC2 = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32]; // Cumulative bit shift constants\n\n var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28]; // SBOXes and round permutation constants\n\n var SBOX_P = [{\n 0x0: 0x808200,\n 0x10000000: 0x8000,\n 0x20000000: 0x808002,\n 0x30000000: 0x2,\n 0x40000000: 0x200,\n 0x50000000: 0x808202,\n 0x60000000: 0x800202,\n 0x70000000: 0x800000,\n 0x80000000: 0x202,\n 0x90000000: 0x800200,\n 0xa0000000: 0x8200,\n 0xb0000000: 0x808000,\n 0xc0000000: 0x8002,\n 0xd0000000: 0x800002,\n 0xe0000000: 0x0,\n 0xf0000000: 0x8202,\n 0x8000000: 0x0,\n 0x18000000: 0x808202,\n 0x28000000: 0x8202,\n 0x38000000: 0x8000,\n 0x48000000: 0x808200,\n 0x58000000: 0x200,\n 0x68000000: 0x808002,\n 0x78000000: 0x2,\n 0x88000000: 0x800200,\n 0x98000000: 0x8200,\n 0xa8000000: 0x808000,\n 0xb8000000: 0x800202,\n 0xc8000000: 0x800002,\n 0xd8000000: 0x8002,\n 0xe8000000: 0x202,\n 0xf8000000: 0x800000,\n 0x1: 0x8000,\n 0x10000001: 0x2,\n 0x20000001: 0x808200,\n 0x30000001: 0x800000,\n 0x40000001: 0x808002,\n 0x50000001: 0x8200,\n 0x60000001: 0x200,\n 0x70000001: 0x800202,\n 0x80000001: 0x808202,\n 0x90000001: 0x808000,\n 0xa0000001: 0x800002,\n 0xb0000001: 0x8202,\n 0xc0000001: 0x202,\n 0xd0000001: 0x800200,\n 0xe0000001: 0x8002,\n 0xf0000001: 0x0,\n 0x8000001: 0x808202,\n 0x18000001: 0x808000,\n 0x28000001: 0x800000,\n 0x38000001: 0x200,\n 0x48000001: 0x8000,\n 0x58000001: 0x800002,\n 0x68000001: 0x2,\n 0x78000001: 0x8202,\n 0x88000001: 0x8002,\n 0x98000001: 0x800202,\n 0xa8000001: 0x202,\n 0xb8000001: 0x808200,\n 0xc8000001: 0x800200,\n 0xd8000001: 0x0,\n 0xe8000001: 0x8200,\n 0xf8000001: 0x808002\n }, {\n 0x0: 0x40084010,\n 0x1000000: 0x4000,\n 0x2000000: 0x80000,\n 0x3000000: 0x40080010,\n 0x4000000: 0x40000010,\n 0x5000000: 0x40084000,\n 0x6000000: 0x40004000,\n 0x7000000: 0x10,\n 0x8000000: 0x84000,\n 0x9000000: 0x40004010,\n 0xa000000: 0x40000000,\n 0xb000000: 0x84010,\n 0xc000000: 0x80010,\n 0xd000000: 0x0,\n 0xe000000: 0x4010,\n 0xf000000: 0x40080000,\n 0x800000: 0x40004000,\n 0x1800000: 0x84010,\n 0x2800000: 0x10,\n 0x3800000: 0x40004010,\n 0x4800000: 0x40084010,\n 0x5800000: 0x40000000,\n 0x6800000: 0x80000,\n 0x7800000: 0x40080010,\n 0x8800000: 0x80010,\n 0x9800000: 0x0,\n 0xa800000: 0x4000,\n 0xb800000: 0x40080000,\n 0xc800000: 0x40000010,\n 0xd800000: 0x84000,\n 0xe800000: 0x40084000,\n 0xf800000: 0x4010,\n 0x10000000: 0x0,\n 0x11000000: 0x40080010,\n 0x12000000: 0x40004010,\n 0x13000000: 0x40084000,\n 0x14000000: 0x40080000,\n 0x15000000: 0x10,\n 0x16000000: 0x84010,\n 0x17000000: 0x4000,\n 0x18000000: 0x4010,\n 0x19000000: 0x80000,\n 0x1a000000: 0x80010,\n 0x1b000000: 0x40000010,\n 0x1c000000: 0x84000,\n 0x1d000000: 0x40004000,\n 0x1e000000: 0x40000000,\n 0x1f000000: 0x40084010,\n 0x10800000: 0x84010,\n 0x11800000: 0x80000,\n 0x12800000: 0x40080000,\n 0x13800000: 0x4000,\n 0x14800000: 0x40004000,\n 0x15800000: 0x40084010,\n 0x16800000: 0x10,\n 0x17800000: 0x40000000,\n 0x18800000: 0x40084000,\n 0x19800000: 0x40000010,\n 0x1a800000: 0x40004010,\n 0x1b800000: 0x80010,\n 0x1c800000: 0x0,\n 0x1d800000: 0x4010,\n 0x1e800000: 0x40080010,\n 0x1f800000: 0x84000\n }, {\n 0x0: 0x104,\n 0x100000: 0x0,\n 0x200000: 0x4000100,\n 0x300000: 0x10104,\n 0x400000: 0x10004,\n 0x500000: 0x4000004,\n 0x600000: 0x4010104,\n 0x700000: 0x4010000,\n 0x800000: 0x4000000,\n 0x900000: 0x4010100,\n 0xa00000: 0x10100,\n 0xb00000: 0x4010004,\n 0xc00000: 0x4000104,\n 0xd00000: 0x10000,\n 0xe00000: 0x4,\n 0xf00000: 0x100,\n 0x80000: 0x4010100,\n 0x180000: 0x4010004,\n 0x280000: 0x0,\n 0x380000: 0x4000100,\n 0x480000: 0x4000004,\n 0x580000: 0x10000,\n 0x680000: 0x10004,\n 0x780000: 0x104,\n 0x880000: 0x4,\n 0x980000: 0x100,\n 0xa80000: 0x4010000,\n 0xb80000: 0x10104,\n 0xc80000: 0x10100,\n 0xd80000: 0x4000104,\n 0xe80000: 0x4010104,\n 0xf80000: 0x4000000,\n 0x1000000: 0x4010100,\n 0x1100000: 0x10004,\n 0x1200000: 0x10000,\n 0x1300000: 0x4000100,\n 0x1400000: 0x100,\n 0x1500000: 0x4010104,\n 0x1600000: 0x4000004,\n 0x1700000: 0x0,\n 0x1800000: 0x4000104,\n 0x1900000: 0x4000000,\n 0x1a00000: 0x4,\n 0x1b00000: 0x10100,\n 0x1c00000: 0x4010000,\n 0x1d00000: 0x104,\n 0x1e00000: 0x10104,\n 0x1f00000: 0x4010004,\n 0x1080000: 0x4000000,\n 0x1180000: 0x104,\n 0x1280000: 0x4010100,\n 0x1380000: 0x0,\n 0x1480000: 0x10004,\n 0x1580000: 0x4000100,\n 0x1680000: 0x100,\n 0x1780000: 0x4010004,\n 0x1880000: 0x10000,\n 0x1980000: 0x4010104,\n 0x1a80000: 0x10104,\n 0x1b80000: 0x4000004,\n 0x1c80000: 0x4000104,\n 0x1d80000: 0x4010000,\n 0x1e80000: 0x4,\n 0x1f80000: 0x10100\n }, {\n 0x0: 0x80401000,\n 0x10000: 0x80001040,\n 0x20000: 0x401040,\n 0x30000: 0x80400000,\n 0x40000: 0x0,\n 0x50000: 0x401000,\n 0x60000: 0x80000040,\n 0x70000: 0x400040,\n 0x80000: 0x80000000,\n 0x90000: 0x400000,\n 0xa0000: 0x40,\n 0xb0000: 0x80001000,\n 0xc0000: 0x80400040,\n 0xd0000: 0x1040,\n 0xe0000: 0x1000,\n 0xf0000: 0x80401040,\n 0x8000: 0x80001040,\n 0x18000: 0x40,\n 0x28000: 0x80400040,\n 0x38000: 0x80001000,\n 0x48000: 0x401000,\n 0x58000: 0x80401040,\n 0x68000: 0x0,\n 0x78000: 0x80400000,\n 0x88000: 0x1000,\n 0x98000: 0x80401000,\n 0xa8000: 0x400000,\n 0xb8000: 0x1040,\n 0xc8000: 0x80000000,\n 0xd8000: 0x400040,\n 0xe8000: 0x401040,\n 0xf8000: 0x80000040,\n 0x100000: 0x400040,\n 0x110000: 0x401000,\n 0x120000: 0x80000040,\n 0x130000: 0x0,\n 0x140000: 0x1040,\n 0x150000: 0x80400040,\n 0x160000: 0x80401000,\n 0x170000: 0x80001040,\n 0x180000: 0x80401040,\n 0x190000: 0x80000000,\n 0x1a0000: 0x80400000,\n 0x1b0000: 0x401040,\n 0x1c0000: 0x80001000,\n 0x1d0000: 0x400000,\n 0x1e0000: 0x40,\n 0x1f0000: 0x1000,\n 0x108000: 0x80400000,\n 0x118000: 0x80401040,\n 0x128000: 0x0,\n 0x138000: 0x401000,\n 0x148000: 0x400040,\n 0x158000: 0x80000000,\n 0x168000: 0x80001040,\n 0x178000: 0x40,\n 0x188000: 0x80000040,\n 0x198000: 0x1000,\n 0x1a8000: 0x80001000,\n 0x1b8000: 0x80400040,\n 0x1c8000: 0x1040,\n 0x1d8000: 0x80401000,\n 0x1e8000: 0x400000,\n 0x1f8000: 0x401040\n }, {\n 0x0: 0x80,\n 0x1000: 0x1040000,\n 0x2000: 0x40000,\n 0x3000: 0x20000000,\n 0x4000: 0x20040080,\n 0x5000: 0x1000080,\n 0x6000: 0x21000080,\n 0x7000: 0x40080,\n 0x8000: 0x1000000,\n 0x9000: 0x20040000,\n 0xa000: 0x20000080,\n 0xb000: 0x21040080,\n 0xc000: 0x21040000,\n 0xd000: 0x0,\n 0xe000: 0x1040080,\n 0xf000: 0x21000000,\n 0x800: 0x1040080,\n 0x1800: 0x21000080,\n 0x2800: 0x80,\n 0x3800: 0x1040000,\n 0x4800: 0x40000,\n 0x5800: 0x20040080,\n 0x6800: 0x21040000,\n 0x7800: 0x20000000,\n 0x8800: 0x20040000,\n 0x9800: 0x0,\n 0xa800: 0x21040080,\n 0xb800: 0x1000080,\n 0xc800: 0x20000080,\n 0xd800: 0x21000000,\n 0xe800: 0x1000000,\n 0xf800: 0x40080,\n 0x10000: 0x40000,\n 0x11000: 0x80,\n 0x12000: 0x20000000,\n 0x13000: 0x21000080,\n 0x14000: 0x1000080,\n 0x15000: 0x21040000,\n 0x16000: 0x20040080,\n 0x17000: 0x1000000,\n 0x18000: 0x21040080,\n 0x19000: 0x21000000,\n 0x1a000: 0x1040000,\n 0x1b000: 0x20040000,\n 0x1c000: 0x40080,\n 0x1d000: 0x20000080,\n 0x1e000: 0x0,\n 0x1f000: 0x1040080,\n 0x10800: 0x21000080,\n 0x11800: 0x1000000,\n 0x12800: 0x1040000,\n 0x13800: 0x20040080,\n 0x14800: 0x20000000,\n 0x15800: 0x1040080,\n 0x16800: 0x80,\n 0x17800: 0x21040000,\n 0x18800: 0x40080,\n 0x19800: 0x21040080,\n 0x1a800: 0x0,\n 0x1b800: 0x21000000,\n 0x1c800: 0x1000080,\n 0x1d800: 0x40000,\n 0x1e800: 0x20040000,\n 0x1f800: 0x20000080\n }, {\n 0x0: 0x10000008,\n 0x100: 0x2000,\n 0x200: 0x10200000,\n 0x300: 0x10202008,\n 0x400: 0x10002000,\n 0x500: 0x200000,\n 0x600: 0x200008,\n 0x700: 0x10000000,\n 0x800: 0x0,\n 0x900: 0x10002008,\n 0xa00: 0x202000,\n 0xb00: 0x8,\n 0xc00: 0x10200008,\n 0xd00: 0x202008,\n 0xe00: 0x2008,\n 0xf00: 0x10202000,\n 0x80: 0x10200000,\n 0x180: 0x10202008,\n 0x280: 0x8,\n 0x380: 0x200000,\n 0x480: 0x202008,\n 0x580: 0x10000008,\n 0x680: 0x10002000,\n 0x780: 0x2008,\n 0x880: 0x200008,\n 0x980: 0x2000,\n 0xa80: 0x10002008,\n 0xb80: 0x10200008,\n 0xc80: 0x0,\n 0xd80: 0x10202000,\n 0xe80: 0x202000,\n 0xf80: 0x10000000,\n 0x1000: 0x10002000,\n 0x1100: 0x10200008,\n 0x1200: 0x10202008,\n 0x1300: 0x2008,\n 0x1400: 0x200000,\n 0x1500: 0x10000000,\n 0x1600: 0x10000008,\n 0x1700: 0x202000,\n 0x1800: 0x202008,\n 0x1900: 0x0,\n 0x1a00: 0x8,\n 0x1b00: 0x10200000,\n 0x1c00: 0x2000,\n 0x1d00: 0x10002008,\n 0x1e00: 0x10202000,\n 0x1f00: 0x200008,\n 0x1080: 0x8,\n 0x1180: 0x202000,\n 0x1280: 0x200000,\n 0x1380: 0x10000008,\n 0x1480: 0x10002000,\n 0x1580: 0x2008,\n 0x1680: 0x10202008,\n 0x1780: 0x10200000,\n 0x1880: 0x10202000,\n 0x1980: 0x10200008,\n 0x1a80: 0x2000,\n 0x1b80: 0x202008,\n 0x1c80: 0x200008,\n 0x1d80: 0x0,\n 0x1e80: 0x10000000,\n 0x1f80: 0x10002008\n }, {\n 0x0: 0x100000,\n 0x10: 0x2000401,\n 0x20: 0x400,\n 0x30: 0x100401,\n 0x40: 0x2100401,\n 0x50: 0x0,\n 0x60: 0x1,\n 0x70: 0x2100001,\n 0x80: 0x2000400,\n 0x90: 0x100001,\n 0xa0: 0x2000001,\n 0xb0: 0x2100400,\n 0xc0: 0x2100000,\n 0xd0: 0x401,\n 0xe0: 0x100400,\n 0xf0: 0x2000000,\n 0x8: 0x2100001,\n 0x18: 0x0,\n 0x28: 0x2000401,\n 0x38: 0x2100400,\n 0x48: 0x100000,\n 0x58: 0x2000001,\n 0x68: 0x2000000,\n 0x78: 0x401,\n 0x88: 0x100401,\n 0x98: 0x2000400,\n 0xa8: 0x2100000,\n 0xb8: 0x100001,\n 0xc8: 0x400,\n 0xd8: 0x2100401,\n 0xe8: 0x1,\n 0xf8: 0x100400,\n 0x100: 0x2000000,\n 0x110: 0x100000,\n 0x120: 0x2000401,\n 0x130: 0x2100001,\n 0x140: 0x100001,\n 0x150: 0x2000400,\n 0x160: 0x2100400,\n 0x170: 0x100401,\n 0x180: 0x401,\n 0x190: 0x2100401,\n 0x1a0: 0x100400,\n 0x1b0: 0x1,\n 0x1c0: 0x0,\n 0x1d0: 0x2100000,\n 0x1e0: 0x2000001,\n 0x1f0: 0x400,\n 0x108: 0x100400,\n 0x118: 0x2000401,\n 0x128: 0x2100001,\n 0x138: 0x1,\n 0x148: 0x2000000,\n 0x158: 0x100000,\n 0x168: 0x401,\n 0x178: 0x2100400,\n 0x188: 0x2000001,\n 0x198: 0x2100000,\n 0x1a8: 0x0,\n 0x1b8: 0x2100401,\n 0x1c8: 0x100401,\n 0x1d8: 0x400,\n 0x1e8: 0x2000400,\n 0x1f8: 0x100001\n }, {\n 0x0: 0x8000820,\n 0x1: 0x20000,\n 0x2: 0x8000000,\n 0x3: 0x20,\n 0x4: 0x20020,\n 0x5: 0x8020820,\n 0x6: 0x8020800,\n 0x7: 0x800,\n 0x8: 0x8020000,\n 0x9: 0x8000800,\n 0xa: 0x20800,\n 0xb: 0x8020020,\n 0xc: 0x820,\n 0xd: 0x0,\n 0xe: 0x8000020,\n 0xf: 0x20820,\n 0x80000000: 0x800,\n 0x80000001: 0x8020820,\n 0x80000002: 0x8000820,\n 0x80000003: 0x8000000,\n 0x80000004: 0x8020000,\n 0x80000005: 0x20800,\n 0x80000006: 0x20820,\n 0x80000007: 0x20,\n 0x80000008: 0x8000020,\n 0x80000009: 0x820,\n 0x8000000a: 0x20020,\n 0x8000000b: 0x8020800,\n 0x8000000c: 0x0,\n 0x8000000d: 0x8020020,\n 0x8000000e: 0x8000800,\n 0x8000000f: 0x20000,\n 0x10: 0x20820,\n 0x11: 0x8020800,\n 0x12: 0x20,\n 0x13: 0x800,\n 0x14: 0x8000800,\n 0x15: 0x8000020,\n 0x16: 0x8020020,\n 0x17: 0x20000,\n 0x18: 0x0,\n 0x19: 0x20020,\n 0x1a: 0x8020000,\n 0x1b: 0x8000820,\n 0x1c: 0x8020820,\n 0x1d: 0x20800,\n 0x1e: 0x820,\n 0x1f: 0x8000000,\n 0x80000010: 0x20000,\n 0x80000011: 0x800,\n 0x80000012: 0x8020020,\n 0x80000013: 0x20820,\n 0x80000014: 0x20,\n 0x80000015: 0x8020000,\n 0x80000016: 0x8000000,\n 0x80000017: 0x8000820,\n 0x80000018: 0x8020820,\n 0x80000019: 0x8000020,\n 0x8000001a: 0x8000800,\n 0x8000001b: 0x0,\n 0x8000001c: 0x20800,\n 0x8000001d: 0x820,\n 0x8000001e: 0x20020,\n 0x8000001f: 0x8020800\n }]; // Masks that select the SBOX input\n\n var SBOX_MASK = [0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000, 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f];\n /**\n * DES block cipher algorithm.\n */\n\n var DES = C_algo.DES = BlockCipher.extend({\n _doReset: function _doReset() {\n // Shortcuts\n var key = this._key;\n var keyWords = key.words; // Select 56 bits according to PC1\n\n var keyBits = [];\n\n for (var i = 0; i < 56; i++) {\n var keyBitPos = PC1[i] - 1;\n keyBits[i] = keyWords[keyBitPos >>> 5] >>> 31 - keyBitPos % 32 & 1;\n } // Assemble 16 subkeys\n\n\n var subKeys = this._subKeys = [];\n\n for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n // Create subkey\n var subKey = subKeys[nSubKey] = []; // Shortcut\n\n var bitShift = BIT_SHIFTS[nSubKey]; // Select 48 bits according to PC2\n\n for (var i = 0; i < 24; i++) {\n // Select from the left 28 key bits\n subKey[i / 6 | 0] |= keyBits[(PC2[i] - 1 + bitShift) % 28] << 31 - i % 6; // Select from the right 28 key bits\n\n subKey[4 + (i / 6 | 0)] |= keyBits[28 + (PC2[i + 24] - 1 + bitShift) % 28] << 31 - i % 6;\n } // Since each subkey is applied to an expanded 32-bit input,\n // the subkey can be broken into 8 values scaled to 32-bits,\n // which allows the key to be used without expansion\n\n\n subKey[0] = subKey[0] << 1 | subKey[0] >>> 31;\n\n for (var i = 1; i < 7; i++) {\n subKey[i] = subKey[i] >>> (i - 1) * 4 + 3;\n }\n\n subKey[7] = subKey[7] << 5 | subKey[7] >>> 27;\n } // Compute inverse subkeys\n\n\n var invSubKeys = this._invSubKeys = [];\n\n for (var i = 0; i < 16; i++) {\n invSubKeys[i] = subKeys[15 - i];\n }\n },\n encryptBlock: function encryptBlock(M, offset) {\n this._doCryptBlock(M, offset, this._subKeys);\n },\n decryptBlock: function decryptBlock(M, offset) {\n this._doCryptBlock(M, offset, this._invSubKeys);\n },\n _doCryptBlock: function _doCryptBlock(M, offset, subKeys) {\n // Get input\n this._lBlock = M[offset];\n this._rBlock = M[offset + 1]; // Initial permutation\n\n exchangeLR.call(this, 4, 0x0f0f0f0f);\n exchangeLR.call(this, 16, 0x0000ffff);\n exchangeRL.call(this, 2, 0x33333333);\n exchangeRL.call(this, 8, 0x00ff00ff);\n exchangeLR.call(this, 1, 0x55555555); // Rounds\n\n for (var round = 0; round < 16; round++) {\n // Shortcuts\n var subKey = subKeys[round];\n var lBlock = this._lBlock;\n var rBlock = this._rBlock; // Feistel function\n\n var f = 0;\n\n for (var i = 0; i < 8; i++) {\n f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n }\n\n this._lBlock = rBlock;\n this._rBlock = lBlock ^ f;\n } // Undo swap from last round\n\n\n var t = this._lBlock;\n this._lBlock = this._rBlock;\n this._rBlock = t; // Final permutation\n\n exchangeLR.call(this, 1, 0x55555555);\n exchangeRL.call(this, 8, 0x00ff00ff);\n exchangeRL.call(this, 2, 0x33333333);\n exchangeLR.call(this, 16, 0x0000ffff);\n exchangeLR.call(this, 4, 0x0f0f0f0f); // Set output\n\n M[offset] = this._lBlock;\n M[offset + 1] = this._rBlock;\n },\n keySize: 64 / 32,\n ivSize: 64 / 32,\n blockSize: 64 / 32\n }); // Swap bits across the left and right words\n\n function exchangeLR(offset, mask) {\n var t = (this._lBlock >>> offset ^ this._rBlock) & mask;\n this._rBlock ^= t;\n this._lBlock ^= t << offset;\n }\n\n function exchangeRL(offset, mask) {\n var t = (this._rBlock >>> offset ^ this._lBlock) & mask;\n this._lBlock ^= t;\n this._rBlock ^= t << offset;\n }\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n */\n\n\n C.DES = BlockCipher._createHelper(DES);\n /**\n * Triple-DES block cipher algorithm.\n */\n\n var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n _doReset: function _doReset() {\n // Shortcuts\n var key = this._key;\n var keyWords = key.words; // Make sure the key length is valid (64, 128 or >= 192 bit)\n\n if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {\n throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');\n } // Extend the key according to the keying options defined in 3DES standard\n\n\n var key1 = keyWords.slice(0, 2);\n var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6); // Create DES instances\n\n this._des1 = DES.createEncryptor(WordArray.create(key1));\n this._des2 = DES.createEncryptor(WordArray.create(key2));\n this._des3 = DES.createEncryptor(WordArray.create(key3));\n },\n encryptBlock: function encryptBlock(M, offset) {\n this._des1.encryptBlock(M, offset);\n\n this._des2.decryptBlock(M, offset);\n\n this._des3.encryptBlock(M, offset);\n },\n decryptBlock: function decryptBlock(M, offset) {\n this._des3.decryptBlock(M, offset);\n\n this._des2.encryptBlock(M, offset);\n\n this._des1.decryptBlock(M, offset);\n },\n keySize: 192 / 32,\n ivSize: 64 / 32,\n blockSize: 64 / 32\n });\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n */\n\n C.TripleDES = BlockCipher._createHelper(TripleDES);\n })();\n\n return CryptoJS.TripleDES;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/tripledes.js?"); | ||
| 1295 | + | ||
| 1296 | +/***/ }), | ||
| 1297 | + | ||
| 1298 | +/***/ "./node_modules/crypto-js/x64-core.js": | ||
| 1299 | +/*!********************************************!*\ | ||
| 1300 | + !*** ./node_modules/crypto-js/x64-core.js ***! | ||
| 1301 | + \********************************************/ | ||
| 1302 | +/*! no static exports found */ | ||
| 1303 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1304 | + | ||
| 1305 | +eval(";\n\n(function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n } else {}\n})(this, function (CryptoJS) {\n (function (undefined) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var X32WordArray = C_lib.WordArray;\n /**\n * x64 namespace.\n */\n\n var C_x64 = C.x64 = {};\n /**\n * A 64-bit word.\n */\n\n var X64Word = C_x64.Word = Base.extend({\n /**\n * Initializes a newly created 64-bit word.\n *\n * @param {number} high The high 32 bits.\n * @param {number} low The low 32 bits.\n *\n * @example\n *\n * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n */\n init: function init(high, low) {\n this.high = high;\n this.low = low;\n }\n /**\n * Bitwise NOTs this word.\n *\n * @return {X64Word} A new x64-Word object after negating.\n *\n * @example\n *\n * var negated = x64Word.not();\n */\n // not: function () {\n // var high = ~this.high;\n // var low = ~this.low;\n // return X64Word.create(high, low);\n // },\n\n /**\n * Bitwise ANDs this word with the passed word.\n *\n * @param {X64Word} word The x64-Word to AND with this word.\n *\n * @return {X64Word} A new x64-Word object after ANDing.\n *\n * @example\n *\n * var anded = x64Word.and(anotherX64Word);\n */\n // and: function (word) {\n // var high = this.high & word.high;\n // var low = this.low & word.low;\n // return X64Word.create(high, low);\n // },\n\n /**\n * Bitwise ORs this word with the passed word.\n *\n * @param {X64Word} word The x64-Word to OR with this word.\n *\n * @return {X64Word} A new x64-Word object after ORing.\n *\n * @example\n *\n * var ored = x64Word.or(anotherX64Word);\n */\n // or: function (word) {\n // var high = this.high | word.high;\n // var low = this.low | word.low;\n // return X64Word.create(high, low);\n // },\n\n /**\n * Bitwise XORs this word with the passed word.\n *\n * @param {X64Word} word The x64-Word to XOR with this word.\n *\n * @return {X64Word} A new x64-Word object after XORing.\n *\n * @example\n *\n * var xored = x64Word.xor(anotherX64Word);\n */\n // xor: function (word) {\n // var high = this.high ^ word.high;\n // var low = this.low ^ word.low;\n // return X64Word.create(high, low);\n // },\n\n /**\n * Shifts this word n bits to the left.\n *\n * @param {number} n The number of bits to shift.\n *\n * @return {X64Word} A new x64-Word object after shifting.\n *\n * @example\n *\n * var shifted = x64Word.shiftL(25);\n */\n // shiftL: function (n) {\n // if (n < 32) {\n // var high = (this.high << n) | (this.low >>> (32 - n));\n // var low = this.low << n;\n // } else {\n // var high = this.low << (n - 32);\n // var low = 0;\n // }\n // return X64Word.create(high, low);\n // },\n\n /**\n * Shifts this word n bits to the right.\n *\n * @param {number} n The number of bits to shift.\n *\n * @return {X64Word} A new x64-Word object after shifting.\n *\n * @example\n *\n * var shifted = x64Word.shiftR(7);\n */\n // shiftR: function (n) {\n // if (n < 32) {\n // var low = (this.low >>> n) | (this.high << (32 - n));\n // var high = this.high >>> n;\n // } else {\n // var low = this.high >>> (n - 32);\n // var high = 0;\n // }\n // return X64Word.create(high, low);\n // },\n\n /**\n * Rotates this word n bits to the left.\n *\n * @param {number} n The number of bits to rotate.\n *\n * @return {X64Word} A new x64-Word object after rotating.\n *\n * @example\n *\n * var rotated = x64Word.rotL(25);\n */\n // rotL: function (n) {\n // return this.shiftL(n).or(this.shiftR(64 - n));\n // },\n\n /**\n * Rotates this word n bits to the right.\n *\n * @param {number} n The number of bits to rotate.\n *\n * @return {X64Word} A new x64-Word object after rotating.\n *\n * @example\n *\n * var rotated = x64Word.rotR(7);\n */\n // rotR: function (n) {\n // return this.shiftR(n).or(this.shiftL(64 - n));\n // },\n\n /**\n * Adds this word with the passed word.\n *\n * @param {X64Word} word The x64-Word to add with this word.\n *\n * @return {X64Word} A new x64-Word object after adding.\n *\n * @example\n *\n * var added = x64Word.add(anotherX64Word);\n */\n // add: function (word) {\n // var low = (this.low + word.low) | 0;\n // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n // var high = (this.high + word.high + carry) | 0;\n // return X64Word.create(high, low);\n // }\n\n });\n /**\n * An array of 64-bit words.\n *\n * @property {Array} words The array of CryptoJS.x64.Word objects.\n * @property {number} sigBytes The number of significant bytes in this word array.\n */\n\n var X64WordArray = C_x64.WordArray = Base.extend({\n /**\n * Initializes a newly created word array.\n *\n * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n *\n * @example\n *\n * var wordArray = CryptoJS.x64.WordArray.create();\n *\n * var wordArray = CryptoJS.x64.WordArray.create([\n * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n * ]);\n *\n * var wordArray = CryptoJS.x64.WordArray.create([\n * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n * ], 10);\n */\n init: function init(words, sigBytes) {\n words = this.words = words || [];\n\n if (sigBytes != undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 8;\n }\n },\n\n /**\n * Converts this 64-bit word array to a 32-bit word array.\n *\n * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\n *\n * @example\n *\n * var x32WordArray = x64WordArray.toX32();\n */\n toX32: function toX32() {\n // Shortcuts\n var x64Words = this.words;\n var x64WordsLength = x64Words.length; // Convert\n\n var x32Words = [];\n\n for (var i = 0; i < x64WordsLength; i++) {\n var x64Word = x64Words[i];\n x32Words.push(x64Word.high);\n x32Words.push(x64Word.low);\n }\n\n return X32WordArray.create(x32Words, this.sigBytes);\n },\n\n /**\n * Creates a copy of this word array.\n *\n * @return {X64WordArray} The clone.\n *\n * @example\n *\n * var clone = x64WordArray.clone();\n */\n clone: function clone() {\n var clone = Base.clone.call(this); // Clone \"words\" array\n\n var words = clone.words = this.words.slice(0); // Clone each X64Word object\n\n var wordsLength = words.length;\n\n for (var i = 0; i < wordsLength; i++) {\n words[i] = words[i].clone();\n }\n\n return clone;\n }\n });\n })();\n\n return CryptoJS;\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/crypto-js/x64-core.js?"); | ||
| 1306 | + | ||
| 1307 | +/***/ }), | ||
| 1308 | + | ||
| 1309 | +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/font/iconfont.css": | ||
| 1310 | +/*!************************************************************************************************************!*\ | ||
| 1311 | + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/font/iconfont.css ***! | ||
| 1312 | + \************************************************************************************************************/ | ||
| 1313 | +/*! no static exports found */ | ||
| 1314 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1315 | + | ||
| 1316 | +eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_GET_URL_IMPORT___ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/getUrl.js */ \"./node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL_IMPORT_0___ = __webpack_require__(/*! ./iconfont.woff?t=1650593394582 */ \"./src/font/iconfont.woff?t=1650593394582\");\nvar ___CSS_LOADER_URL_IMPORT_1___ = __webpack_require__(/*! ./iconfont.ttf?t=1650593394582 */ \"./src/font/iconfont.ttf?t=1650593394582\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\nexports.push([module.i, \"@font-face {\\n font-family: \\\"vssfont\\\";\\n /* Project id 3338995 */\\n src: url(\\\"data:application/x-font-woff2;charset=utf-8;base64,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\\\") format(\\\"woff2\\\"), url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") format(\\\"woff\\\"), url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \") format(\\\"truetype\\\"); }\\n\\n.vssfont {\\n font-family: \\\"vssfont\\\" !important;\\n font-size: 16px;\\n font-style: normal;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale; }\\n\\n.vss-video-ratio-1:before {\\n content: \\\"\\\\ea41\\\"; }\\n\\n.vss-fullscreen1:before {\\n content: \\\"\\\\e60a\\\"; }\\n\\n.vss-video-ratio:before {\\n content: \\\"\\\\e661\\\"; }\\n\\n.vss-video-fill:before {\\n content: \\\"\\\\e671\\\"; }\\n\\n.vss-video-fill-1:before {\\n content: \\\"\\\\e600\\\"; }\\n\\n.vss-mute:before {\\n content: \\\"\\\\e851\\\"; }\\n\\n.vss-pause:before {\\n content: \\\"\\\\ea8a\\\"; }\\n\\n.vss-play:before {\\n content: \\\"\\\\e653\\\"; }\\n\\n.vss-open-voice:before {\\n content: \\\"\\\\e753\\\"; }\\n\\n.vss-snapshot:before {\\n content: \\\"\\\\e604\\\"; }\\n\\n.vss-stop:before {\\n content: \\\"\\\\e611\\\"; }\\n\\n.vss-mode:before {\\n content: \\\"\\\\e61e\\\"; }\\n\\n.vss-cancel-fullscreen:before {\\n content: \\\"\\\\e61f\\\"; }\\n\\n.vss-fullscreen:before {\\n content: \\\"\\\\e620\\\"; }\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://WebMediaPlayer/./src/font/iconfont.css?./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js"); | ||
| 1317 | + | ||
| 1318 | +/***/ }), | ||
| 1319 | + | ||
| 1320 | +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/styles/index.css": | ||
| 1321 | +/*!***********************************************************************************************************!*\ | ||
| 1322 | + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/styles/index.css ***! | ||
| 1323 | + \***********************************************************************************************************/ | ||
| 1324 | +/*! no static exports found */ | ||
| 1325 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1326 | + | ||
| 1327 | +eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"@charset \\\"UTF-8\\\";\\n.vss-loading {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n margin: auto;\\n background-color: rgba(0, 0, 0, 0.6);\\n z-index: 9; }\\n\\n.vss-loading-center {\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n display: flex;\\n align-items: center;\\n flex-direction: column;\\n justify-content: center; }\\n\\n.vss-loading-icon {\\n display: block;\\n margin-bottom: 5px;\\n border: 3px solid #f3f3f3;\\n border-radius: 50%;\\n border-top: 3px solid #ad2605;\\n width: 25px;\\n height: 25px;\\n animation: load .5s linear infinite; }\\n\\n.vss-loading-img {\\n margin-bottom: 5px;\\n width: 40px;\\n height: 40px; }\\n\\n.vss-loading-text {\\n color: #ffffff;\\n font-size: 14px; }\\n\\n.vss-canvas {\\n width: 100%;\\n height: 100%;\\n position: absolute;\\n top: 0;\\n left: 0;\\n background: #000000; }\\n\\n.vss-big-play-button {\\n position: absolute;\\n z-index: 100;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n width: 50px;\\n height: 50px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n margin: auto;\\n color: #ffffff;\\n border-radius: 50%;\\n background-color: rgba(255, 255, 255, 0.4); }\\n\\n.vss-big-play-icon {\\n font-size: 24px;\\n margin-left: 3px; }\\n\\n.vss-pointer {\\n cursor: pointer; }\\n\\n.vss-control-show .vss-control-bar {\\n opacity: 1;\\n visibility: visible; }\\n\\n.vss-control-bar {\\n height: 34px;\\n position: absolute;\\n bottom: 0;\\n width: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n color: #ffffff;\\n background-color: rgba(43, 51, 63, 0.7);\\n z-index: 20;\\n opacity: 0;\\n visibility: hidden;\\n transition: all .2s ease-in-out; }\\n\\n.vss-control-bar-right, .vss-control-bar-left {\\n display: flex;\\n align-items: center;\\n flex-shrink: 0; }\\n\\n.vss-full-screen-btn {\\n width: 34px;\\n height: 34px;\\n display: flex;\\n align-items: center;\\n justify-content: center; }\\n\\n.vss-control-btn {\\n width: 34px;\\n height: 34px;\\n display: flex;\\n align-items: center;\\n justify-content: center; }\\n\\n.vss-item-box {\\n height: 34px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding: 0 5px; }\\n\\n.vss-control-bar-conter {\\n width: 100%; }\\n\\n/*回放进度条*/\\n.vss-time-box {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n color: #ffffff; }\\n\\n.vss-time-left-text, .vss-time-right-text {\\n flex-shrink: 0;\\n font-size: 13px;\\n margin: 0 5px; }\\n\\n.vss-time-schedule {\\n width: 100%;\\n padding: 0 5px; }\\n\\n.vss-time-track-out {\\n position: relative;\\n width: 100%;\\n height: 3px;\\n vertical-align: middle; }\\n\\n.vss-time-track {\\n position: relative;\\n width: 100%;\\n height: 3px;\\n background-color: #ffffff;\\n vertical-align: middle;\\n cursor: pointer;\\n border-radius: 3px; }\\n\\n/*.vss-time-track:hover {*/\\n/* height: 5px;*/\\n/*}*/\\n.vss-time-progress {\\n position: absolute;\\n left: 0;\\n top: 0;\\n height: 100%;\\n width: 0;\\n background-color: #00ABBE;\\n border-top-left-radius: 3px;\\n border-bottom-left-radius: 3px;\\n user-select: none; }\\n\\n/*.vss-time-track:hover + .vss-time-button-wrapper {*/\\n/* top: -3.5px;*/\\n/*}*/\\n.vss-time-button-wrapper {\\n height: 12px;\\n width: 12px;\\n position: absolute;\\n z-index: 1001;\\n top: -5px;\\n transform: translateX(-50%);\\n background-color: transparent;\\n text-align: center;\\n user-select: none;\\n line-height: normal;\\n cursor: pointer; }\\n\\n.vss-time-button-wrapper:hover .vss-time-button-wrapper_tip:not(.vss-hide) {\\n display: block; }\\n\\n.vss-time-button-wrapper_tip {\\n display: none;\\n position: absolute;\\n top: -30px;\\n background-color: rgba(0, 0, 0, 0.5);\\n border: 1px solid rgba(0, 0, 0, 0.6);\\n padding: 2px 5px;\\n color: #ffffff;\\n height: 16px;\\n z-index: 10;\\n border-radius: 3px;\\n transform: translateX(calc(-50% + 6px));\\n white-space: nowrap; }\\n\\n.vss-time-button-wrapper_tip:after {\\n position: absolute;\\n content: '';\\n left: 0;\\n right: 0;\\n margin: 0 auto;\\n width: 0;\\n bottom: -6px;\\n border-top: 5px solid rgba(0, 0, 0, 0.5);\\n border-left: 5px solid transparent;\\n border-right: 5px solid transparent; }\\n\\n.vss-time-button-wrapper_button {\\n width: 12px;\\n height: 12px;\\n border: 1px solid #333;\\n background-color: #fff;\\n border-radius: 50%;\\n transition: .2s;\\n user-select: none; }\\n\\n.vss-time-button-wrapper_button:hover {\\n transform: scale(1.2); }\\n\\n.vss-full-screen-btn span {\\n font-size: 18px; }\\n\\n.vss-poster-box {\\n width: 100%;\\n height: 100%;\\n position: absolute;\\n top: 0;\\n left: 0;\\n overflow: hidden; }\\n\\n.vss-poster-image {\\n width: 100%;\\n height: 100%; }\\n\\n@keyframes load {\\n 0% {\\n transform: rotate(0deg); }\\n 100% {\\n transform: rotate(360deg); } }\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://WebMediaPlayer/./src/styles/index.css?./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js"); | ||
| 1328 | + | ||
| 1329 | +/***/ }), | ||
| 1330 | + | ||
| 1331 | +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/styles/index.scss": | ||
| 1332 | +/*!************************************************************************************************************!*\ | ||
| 1333 | + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/styles/index.scss ***! | ||
| 1334 | + \************************************************************************************************************/ | ||
| 1335 | +/*! no static exports found */ | ||
| 1336 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1337 | + | ||
| 1338 | +eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"@charset \\\"UTF-8\\\";\\n.vss-player {\\n -moz-user-select: none;\\n /* Firefox私有属性 */\\n -webkit-user-select: none;\\n /* WebKit内核私有属性 */\\n -ms-user-select: none;\\n /* IE私有属性(IE10及以后) */\\n -khtml-user-select: none;\\n /* KHTML内核私有属性 */\\n -o-user-select: none;\\n /* Opera私有属性 */\\n user-select: none;\\n /* CSS3属性 */\\n z-index: 5; }\\n .vss-player:after {\\n position: absolute;\\n content: '';\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n margin: auto;\\n z-index: 10; }\\n\\n.vss-shade {\\n /* 要设置 x 轴和 y 轴的阴影都是 0 */\\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.5); }\\n\\n.vss-mask {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n margin: auto;\\n background-color: rgba(0, 0, 0, 0.6);\\n z-index: 9; }\\n\\n.vss-mask-center {\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n display: flex;\\n align-items: center;\\n flex-direction: column;\\n justify-content: center; }\\n\\n.vss-loading-logo-img {\\n display: block;\\n width: 240px;\\n margin-bottom: 5px; }\\n\\n.vss-loading-logo-text {\\n letter-spacing: 2px;\\n text-align: center;\\n font-size: 18px;\\n font-weight: 600;\\n background: linear-gradient(90deg, #833ab4 0%, #fd1d1d 33.3%, #fcb045 66.6%, #833ab4 100%);\\n -webkit-background-clip: text;\\n /*截取背景区域为文字*/\\n color: transparent;\\n background-size: 300% 100%;\\n /*扩大背景区域*/\\n animation: logoText-animation 4s infinite linear; }\\n\\n@keyframes logoText-animation {\\n 0% {\\n background-position: 0 0; }\\n 100% {\\n background-position: -150% 0; } }\\n\\n.vss-show {\\n display: block !important; }\\n\\n.vss-hide {\\n display: none !important; }\\n\\n/*禁止复制*/\\n.no-copy {\\n -moz-user-select: none;\\n /* Firefox私有属性 */\\n -webkit-user-select: none;\\n /* WebKit内核私有属性 */\\n -ms-user-select: none;\\n /* IE私有属性(IE10及以后) */\\n -khtml-user-select: none;\\n /* KHTML内核私有属性 */\\n -o-user-select: none;\\n /* Opera私有属性 */\\n user-select: none;\\n /* CSS3属性 */ }\\n\\n.vss-contextm-menu {\\n position: absolute;\\n top: 0;\\n left: 0;\\n color: #333;\\n background-color: #ffffff;\\n padding: 5px 0;\\n opacity: 0;\\n visibility: hidden;\\n margin: 0;\\n border-radius: 2px;\\n z-index: 10005;\\n list-style: none;\\n box-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.24), 0 1.5px 6px rgba(0, 0, 0, 0.12);\\n font-family: Roboto-Medium, 'Noto Sans CJK DemiLight', 'Microsoft YaHei', Arial, Helvetica, sans-serif;\\n box-sizing: initial; }\\n .vss-contextm-menu.vss-contextm-menu-show {\\n opacity: 1;\\n visibility: visible; }\\n .vss-contextm-menu li {\\n position: relative;\\n max-width: 360px;\\n padding: 5px 15px;\\n text-align: left;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n font-size: 14px;\\n color: #383838;\\n transition: all .2s;\\n user-select: none;\\n cursor: pointer; }\\n .vss-contextm-menu li:hover {\\n background-color: #c8c8c8; }\\n\\n.vss-message-box {\\n position: absolute;\\n bottom: 34px;\\n left: 0;\\n z-index: 10;\\n max-height: 200px;\\n padding: 0 15px;\\n opacity: 1;\\n visibility: visible;\\n transition: all .2s ease-in-out; }\\n .vss-message-box .vss-message-item {\\n color: #c1c1c1;\\n font-size: 12px;\\n text-shadow: 1px 1px 2px #000000; }\\n .vss-message-box.vss-message-hide {\\n opacity: 0;\\n visibility: hidden; }\\n\\n.vss-export-message-box {\\n position: absolute;\\n bottom: 34px;\\n right: 0;\\n z-index: 10;\\n max-height: 200px;\\n max-width: 200px;\\n padding: 0 15px;\\n opacity: 1;\\n visibility: visible;\\n transition: all .2s ease-in-out; }\\n .vss-export-message-box .vss-export-message-item {\\n color: #c1c1c1;\\n font-size: 12px;\\n text-shadow: 1px 1px 2px #000000; }\\n .vss-export-message-box.vss-export-message-hide {\\n opacity: 0;\\n visibility: hidden; }\\n\\n.vss-osd-message-box {\\n position: absolute;\\n background-color: rgba(0, 0, 0, 0.5);\\n z-index: 10;\\n max-height: 15em;\\n max-width: 30em;\\n overflow: hidden;\\n padding: 1em;\\n opacity: 1;\\n visibility: visible;\\n height: fit-content;\\n color: #c1c1c1; }\\n .vss-osd-message-box.pos_righttop {\\n right: 1em;\\n top: 1em; }\\n .vss-osd-message-box.pos_lefttop {\\n left: 1em;\\n top: 1em; }\\n .vss-osd-message-box.pos_rightbottom {\\n right: 1em;\\n bottom: 40px; }\\n .vss-osd-message-box.pos_leftbottom {\\n left: 1em;\\n bottom: 40px; }\\n .vss-osd-message-box.pos_center {\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%); }\\n .vss-osd-message-box .vss-osd-message-item {\\n font-size: 12px; }\\n .vss-osd-message-box .vss-osd-message-item.vss-move-top {\\n margin-top: -1em; }\\n .vss-osd-message-box.vss-osd-message-hide {\\n opacity: 0;\\n visibility: hidden; }\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://WebMediaPlayer/./src/styles/index.scss?./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js"); | ||
| 1339 | + | ||
| 1340 | +/***/ }), | ||
| 1341 | + | ||
| 1342 | +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/styles/range.css": | ||
| 1343 | +/*!***********************************************************************************************************!*\ | ||
| 1344 | + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/styles/range.css ***! | ||
| 1345 | + \***********************************************************************************************************/ | ||
| 1346 | +/*! no static exports found */ | ||
| 1347 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1348 | + | ||
| 1349 | +eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"@charset \\\"UTF-8\\\";\\ninput[type=range] {\\n -webkit-appearance: none; }\\n\\ninput[type=range]::-webkit-slider-thumb {\\n -webkit-appearance: none; }\\n\\ninput[type=range]::-webkit-slider-runnable-track {\\n height: 15px;\\n border-radius: 10px;\\n /*将轨道设为圆角的*/ }\\n\\ninput[type=range]:focus {\\n outline: none; }\\n\\ninput[type=range]::-webkit-slider-thumb {\\n -webkit-appearance: none;\\n height: 15px;\\n width: 15px;\\n margin-top: -2px;\\n /*使滑块超出轨道部分的偏移量相等*/\\n background: #ffffff;\\n border-radius: 50%;\\n /*外观设置为圆形*/ }\\n\\n.conter {\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%); }\\n\\n.Loding {\\n margin: 0 auto;\\n margin-bottom: 5px;\\n border: 3px solid #f3f3f3;\\n border-radius: 50%;\\n border-top: 3px solid #2e8e9a;\\n width: 25px;\\n height: 25px;\\n /* animation-name:load; */\\n animation: load .5s linear infinite; }\\n\\n.LodingTitle {\\n margin-top: 20px;\\n color: #fff;\\n font-size: 14px; }\\n\\n@keyframes load {\\n 0% {\\n transform: rotate(0deg); }\\n 100% {\\n transform: rotate(360deg); } }\\n\\n/* 中间大播放按钮样式 */\\n.bigPlayBox {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n background-color: rgba(0, 0, 0, 0.5);\\n cursor: pointer;\\n width: 80px;\\n height: 80px;\\n border-radius: 40px;\\n text-align: center;\\n line-height: 80px;\\n font-size: 36px;\\n color: #fff;\\n z-index: 9; }\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://WebMediaPlayer/./src/styles/range.css?./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js"); | ||
| 1350 | + | ||
| 1351 | +/***/ }), | ||
| 1352 | + | ||
| 1353 | +/***/ "./node_modules/css-loader/dist/runtime/api.js": | ||
| 1354 | +/*!*****************************************************!*\ | ||
| 1355 | + !*** ./node_modules/css-loader/dist/runtime/api.js ***! | ||
| 1356 | + \*****************************************************/ | ||
| 1357 | +/*! no static exports found */ | ||
| 1358 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1359 | + | ||
| 1360 | +"use strict"; | ||
| 1361 | +eval("\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\n\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/css-loader/dist/runtime/api.js?"); | ||
| 1362 | + | ||
| 1363 | +/***/ }), | ||
| 1364 | + | ||
| 1365 | +/***/ "./node_modules/css-loader/dist/runtime/getUrl.js": | ||
| 1366 | +/*!********************************************************!*\ | ||
| 1367 | + !*** ./node_modules/css-loader/dist/runtime/getUrl.js ***! | ||
| 1368 | + \********************************************************/ | ||
| 1369 | +/*! no static exports found */ | ||
| 1370 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1371 | + | ||
| 1372 | +"use strict"; | ||
| 1373 | +eval("\n\nmodule.exports = function (url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {};\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n\n\n url = url && url.__esModule ? url.default : url;\n\n if (typeof url !== 'string') {\n return url;\n } // If url is already wrapped in quotes, remove them\n\n\n if (/^['\"].*['\"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n\n\n if (/[\"'() \\t\\n]/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n'), \"\\\"\");\n }\n\n return url;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/css-loader/dist/runtime/getUrl.js?"); | ||
| 1374 | + | ||
| 1375 | +/***/ }), | ||
| 1376 | + | ||
| 1377 | +/***/ "./node_modules/des.js/lib/des.js": | ||
| 1378 | +/*!****************************************!*\ | ||
| 1379 | + !*** ./node_modules/des.js/lib/des.js ***! | ||
| 1380 | + \****************************************/ | ||
| 1381 | +/*! no static exports found */ | ||
| 1382 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1383 | + | ||
| 1384 | +"use strict"; | ||
| 1385 | +eval("\n\nexports.utils = __webpack_require__(/*! ./des/utils */ \"./node_modules/des.js/lib/des/utils.js\");\nexports.Cipher = __webpack_require__(/*! ./des/cipher */ \"./node_modules/des.js/lib/des/cipher.js\");\nexports.DES = __webpack_require__(/*! ./des/des */ \"./node_modules/des.js/lib/des/des.js\");\nexports.CBC = __webpack_require__(/*! ./des/cbc */ \"./node_modules/des.js/lib/des/cbc.js\");\nexports.EDE = __webpack_require__(/*! ./des/ede */ \"./node_modules/des.js/lib/des/ede.js\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/des.js/lib/des.js?"); | ||
| 1386 | + | ||
| 1387 | +/***/ }), | ||
| 1388 | + | ||
| 1389 | +/***/ "./node_modules/des.js/lib/des/cbc.js": | ||
| 1390 | +/*!********************************************!*\ | ||
| 1391 | + !*** ./node_modules/des.js/lib/des/cbc.js ***! | ||
| 1392 | + \********************************************/ | ||
| 1393 | +/*! no static exports found */ | ||
| 1394 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1395 | + | ||
| 1396 | +"use strict"; | ||
| 1397 | +eval("\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n this.iv = new Array(8);\n\n for (var i = 0; i < this.iv.length; i++) {\n this.iv[i] = iv[i];\n }\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n\n this._cbcInit();\n }\n\n inherits(CBC, Base);\n var keys = Object.keys(proto);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n var iv = state.iv;\n\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++) {\n iv[i] ^= inp[inOff + i];\n }\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++) {\n iv[i] = out[outOff + i];\n }\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++) {\n out[outOff + i] ^= iv[i];\n }\n\n for (var i = 0; i < this.blockSize; i++) {\n iv[i] = inp[inOff + i];\n }\n }\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/des.js/lib/des/cbc.js?"); | ||
| 1398 | + | ||
| 1399 | +/***/ }), | ||
| 1400 | + | ||
| 1401 | +/***/ "./node_modules/des.js/lib/des/cipher.js": | ||
| 1402 | +/*!***********************************************!*\ | ||
| 1403 | + !*** ./node_modules/des.js/lib/des/cipher.js ***! | ||
| 1404 | + \***********************************************/ | ||
| 1405 | +/*! no static exports found */ | ||
| 1406 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1407 | + | ||
| 1408 | +"use strict"; | ||
| 1409 | +eval("\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nfunction Cipher(options) {\n this.options = options;\n this.type = this.options.type;\n this.blockSize = 8;\n\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\n\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {// Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0) return [];\n if (this.type === 'decrypt') return this._updateDecrypt(data);else return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n\n for (var i = 0; i < min; i++) {\n this.buffer[this.bufferOff + i] = data[off + i];\n }\n\n this.bufferOff += min; // Shift next\n\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n var count = (this.bufferOff + data.length) / this.blockSize | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n if (this.bufferOff === this.buffer.length) outputOff += this._flushBuffer(out, outputOff);\n } // Write blocks\n\n\n var max = data.length - (data.length - inputOff) % this.blockSize;\n\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n\n outputOff += this.blockSize;\n } // Queue rest\n\n\n for (; inputOff < data.length; inputOff++, this.bufferOff++) {\n this.buffer[this.bufferOff] = data[inputOff];\n }\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize); // TODO(indutny): optimize it, this is far from optimal\n\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n } // Buffer rest of the input\n\n\n inputOff += this._buffer(data, inputOff);\n return out;\n};\n\nCipher.prototype.final = function _final(buffer) {\n var first;\n if (buffer) first = this.update(buffer);\n var last;\n if (this.type === 'encrypt') last = this._finalEncrypt();else last = this._finalDecrypt();\n if (first) return first.concat(last);else return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0) return false;\n\n while (off < buffer.length) {\n buffer[off++] = 0;\n }\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff)) return [];\n var out = new Array(this.blockSize);\n\n this._update(this.buffer, 0, out, 0);\n\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/des.js/lib/des/cipher.js?"); | ||
| 1410 | + | ||
| 1411 | +/***/ }), | ||
| 1412 | + | ||
| 1413 | +/***/ "./node_modules/des.js/lib/des/des.js": | ||
| 1414 | +/*!********************************************!*\ | ||
| 1415 | + !*** ./node_modules/des.js/lib/des/des.js ***! | ||
| 1416 | + \********************************************/ | ||
| 1417 | +/*! no static exports found */ | ||
| 1418 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1419 | + | ||
| 1420 | +"use strict"; | ||
| 1421 | +eval("\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/des.js/lib/des/utils.js\");\n\nvar Cipher = __webpack_require__(/*! ./cipher */ \"./node_modules/des.js/lib/des/cipher.js\");\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n var state = new DESState();\n this._desState = state;\n this.deriveKeys(state, options.key);\n}\n\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4); // Initial Permutation\n\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n if (this.type === 'encrypt') this._encrypt(state, l, r, state.tmp, 0);else this._decrypt(state, l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n var value = buffer.length - off;\n\n for (var i = off; i < buffer.length; i++) {\n buffer[i] = value;\n }\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n\n for (var i = buffer.length - pad; i < buffer.length; i++) {\n assert.equal(buffer[i], pad);\n }\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart; // Apply f() x16 times\n\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1]; // f(r, k)\n\n utils.expand(r, state.tmp, 0);\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n } // Reverse Initial Permutation\n\n\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart; // Apply f() x16 times\n\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1]; // f(r, k)\n\n utils.expand(l, state.tmp, 0);\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n } // Reverse Initial Permutation\n\n\n utils.rip(l, r, out, off);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/des.js/lib/des/des.js?"); | ||
| 1422 | + | ||
| 1423 | +/***/ }), | ||
| 1424 | + | ||
| 1425 | +/***/ "./node_modules/des.js/lib/des/ede.js": | ||
| 1426 | +/*!********************************************!*\ | ||
| 1427 | + !*** ./node_modules/des.js/lib/des/ede.js ***! | ||
| 1428 | + \********************************************/ | ||
| 1429 | +/*! no static exports found */ | ||
| 1430 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1431 | + | ||
| 1432 | +"use strict"; | ||
| 1433 | +eval("\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Cipher = __webpack_require__(/*! ./cipher */ \"./node_modules/des.js/lib/des/cipher.js\");\n\nvar DES = __webpack_require__(/*! ./des */ \"./node_modules/des.js/lib/des/des.js\");\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [DES.create({\n type: 'encrypt',\n key: k1\n }), DES.create({\n type: 'decrypt',\n key: k2\n }), DES.create({\n type: 'encrypt',\n key: k3\n })];\n } else {\n this.ciphers = [DES.create({\n type: 'decrypt',\n key: k3\n }), DES.create({\n type: 'encrypt',\n key: k2\n }), DES.create({\n type: 'decrypt',\n key: k1\n })];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\n\ninherits(EDE, Cipher);\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n\n state.ciphers[1]._update(out, outOff, out, outOff);\n\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/des.js/lib/des/ede.js?"); | ||
| 1434 | + | ||
| 1435 | +/***/ }), | ||
| 1436 | + | ||
| 1437 | +/***/ "./node_modules/des.js/lib/des/utils.js": | ||
| 1438 | +/*!**********************************************!*\ | ||
| 1439 | + !*** ./node_modules/des.js/lib/des/utils.js ***! | ||
| 1440 | + \**********************************************/ | ||
| 1441 | +/*! no static exports found */ | ||
| 1442 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1443 | + | ||
| 1444 | +"use strict"; | ||
| 1445 | +eval("\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = bytes[0 + off] << 24 | bytes[1 + off] << 16 | bytes[2 + off] << 8 | bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = value >>> 16 & 0xff;\n bytes[2 + off] = value >>> 8 & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= inR >>> j + i & 1;\n }\n\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= inL >>> j + i & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= inR >>> j + i & 1;\n }\n\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= inL >>> j + i & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= inR >>> j + i & 1;\n outL <<= 1;\n outL |= inL >>> j + i & 1;\n }\n }\n\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= inR >>> j + i & 1;\n outR <<= 1;\n outR |= inL >>> j + i & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0; // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= inR >> j + i & 1;\n }\n\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= inL >> j + i & 1;\n }\n }\n\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= inR >> j + i & 1;\n } // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n\n\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= inR >> j + i & 1;\n }\n\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= inL >> j + i & 1;\n }\n }\n\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= inL >> j + i & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return num << shift & 0xfffffff | num >>> 28 - shift;\n};\n\nvar pc2table = [// inL => outL\n14, 11, 17, 4, 27, 23, 25, 0, 13, 22, 7, 18, 5, 9, 16, 24, 2, 20, 12, 21, 1, 8, 15, 26, // inR => outR\n15, 4, 25, 19, 9, 1, 26, 16, 5, 11, 23, 8, 12, 7, 17, 0, 22, 3, 10, 14, 6, 20, 27, 24];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n var len = pc2table.length >>> 1;\n\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= inL >>> pc2table[i] & 0x1;\n }\n\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= inR >>> pc2table[i] & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n outL = (r & 1) << 5 | r >>> 27;\n\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= r >>> i & 0x3f;\n }\n\n for (var i = 11; i >= 3; i -= 4) {\n outR |= r >>> i & 0x3f;\n outR <<= 6;\n }\n\n outR |= (r & 0x1f) << 1 | r >>> 31;\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8, 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13, 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14, 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2, 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9, 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1, 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12, 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8, 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14, 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6, 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3, 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10, 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13, 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6, 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12, 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13, 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n\n for (var i = 0; i < 4; i++) {\n var b = inL >>> 18 - i * 6 & 0x3f;\n var sb = sTable[i * 0x40 + b];\n out <<= 4;\n out |= sb;\n }\n\n for (var i = 0; i < 4; i++) {\n var b = inR >>> 18 - i * 6 & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n out <<= 4;\n out |= sb;\n }\n\n return out >>> 0;\n};\n\nvar permuteTable = [16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22, 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7];\n\nexports.permute = function permute(num) {\n var out = 0;\n\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= num >>> permuteTable[i] & 0x1;\n }\n\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n\n while (str.length < size) {\n str = '0' + str;\n }\n\n var out = [];\n\n for (var i = 0; i < size; i += group) {\n out.push(str.slice(i, i + group));\n }\n\n return out.join(' ');\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/des.js/lib/des/utils.js?"); | ||
| 1446 | + | ||
| 1447 | +/***/ }), | ||
| 1448 | + | ||
| 1449 | +/***/ "./node_modules/diffie-hellman/browser.js": | ||
| 1450 | +/*!************************************************!*\ | ||
| 1451 | + !*** ./node_modules/diffie-hellman/browser.js ***! | ||
| 1452 | + \************************************************/ | ||
| 1453 | +/*! no static exports found */ | ||
| 1454 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1455 | + | ||
| 1456 | +eval("/* WEBPACK VAR INJECTION */(function(Buffer) {var generatePrime = __webpack_require__(/*! ./lib/generatePrime */ \"./node_modules/diffie-hellman/lib/generatePrime.js\");\n\nvar primes = __webpack_require__(/*! ./lib/primes.json */ \"./node_modules/diffie-hellman/lib/primes.json\");\n\nvar DH = __webpack_require__(/*! ./lib/dh */ \"./node_modules/diffie-hellman/lib/dh.js\");\n\nfunction getDiffieHellman(mod) {\n var prime = new Buffer(primes[mod].prime, 'hex');\n var gen = new Buffer(primes[mod].gen, 'hex');\n return new DH(prime, gen);\n}\n\nvar ENCODINGS = {\n 'binary': true,\n 'hex': true,\n 'base64': true\n};\n\nfunction createDiffieHellman(prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator);\n }\n\n enc = enc || 'binary';\n genc = genc || 'binary';\n generator = generator || new Buffer([2]);\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc);\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true);\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc);\n }\n\n return new DH(prime, generator, true);\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman;\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/diffie-hellman/browser.js?"); | ||
| 1457 | + | ||
| 1458 | +/***/ }), | ||
| 1459 | + | ||
| 1460 | +/***/ "./node_modules/diffie-hellman/lib/dh.js": | ||
| 1461 | +/*!***********************************************!*\ | ||
| 1462 | + !*** ./node_modules/diffie-hellman/lib/dh.js ***! | ||
| 1463 | + \***********************************************/ | ||
| 1464 | +/*! no static exports found */ | ||
| 1465 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1466 | + | ||
| 1467 | +eval("/* WEBPACK VAR INJECTION */(function(Buffer) {var BN = __webpack_require__(/*! bn.js */ \"./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js\");\n\nvar MillerRabin = __webpack_require__(/*! miller-rabin */ \"./node_modules/miller-rabin/lib/mr.js\");\n\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\n\nvar primes = __webpack_require__(/*! ./generatePrime */ \"./node_modules/diffie-hellman/lib/generatePrime.js\");\n\nvar randomBytes = __webpack_require__(/*! randombytes */ \"./node_modules/randombytes/browser.js\");\n\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\n\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n\n if (hex in primeCache) {\n return primeCache[hex];\n }\n\n var error = 0;\n\n if (prime.isEven() || !primes.simpleSieve || !primes.fermatTest(prime) || !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n\n primeCache[hex] = error;\n return error;\n }\n\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n\n var rem;\n\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n\n break;\n\n case '05':\n rem = prime.mod(TEN);\n\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n\n break;\n\n default:\n error += 4;\n }\n\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\n\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function get() {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n\n return this._primeCode;\n }\n});\n\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/diffie-hellman/lib/dh.js?"); | ||
| 1468 | + | ||
| 1469 | +/***/ }), | ||
| 1470 | + | ||
| 1471 | +/***/ "./node_modules/diffie-hellman/lib/generatePrime.js": | ||
| 1472 | +/*!**********************************************************!*\ | ||
| 1473 | + !*** ./node_modules/diffie-hellman/lib/generatePrime.js ***! | ||
| 1474 | + \**********************************************************/ | ||
| 1475 | +/*! no static exports found */ | ||
| 1476 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1477 | + | ||
| 1478 | +eval("var randomBytes = __webpack_require__(/*! randombytes */ \"./node_modules/randombytes/browser.js\");\n\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js\");\n\nvar TWENTYFOUR = new BN(24);\n\nvar MillerRabin = __webpack_require__(/*! miller-rabin */ \"./node_modules/miller-rabin/lib/mr.js\");\n\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null) return primes;\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n\n for (var j = 0; j < i && res[j] <= sqrt; j++) {\n if (k % res[j] === 0) break;\n }\n\n if (i !== j && res[j] <= sqrt) continue;\n res[i++] = k;\n }\n\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++) {\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n\n gen = new BN(gen);\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n\n if (num.isEven()) {\n num.iadd(ONE);\n }\n\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n\n n2 = num.shrn(1);\n\n if (simpleSieve(n2) && simpleSieve(num) && fermatTest(n2) && fermatTest(num) && millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/diffie-hellman/lib/generatePrime.js?"); | ||
| 1479 | + | ||
| 1480 | +/***/ }), | ||
| 1481 | + | ||
| 1482 | +/***/ "./node_modules/diffie-hellman/lib/primes.json": | ||
| 1483 | +/*!*****************************************************!*\ | ||
| 1484 | + !*** ./node_modules/diffie-hellman/lib/primes.json ***! | ||
| 1485 | + \*****************************************************/ | ||
| 1486 | +/*! exports provided: modp1, modp2, modp5, modp14, modp15, modp16, modp17, modp18, default */ | ||
| 1487 | +/***/ (function(module) { | ||
| 1488 | + | ||
| 1489 | +eval("module.exports = JSON.parse(\"{\\\"modp1\\\":{\\\"gen\\\":\\\"02\\\",\\\"prime\\\":\\\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff\\\"},\\\"modp2\\\":{\\\"gen\\\":\\\"02\\\",\\\"prime\\\":\\\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff\\\"},\\\"modp5\\\":{\\\"gen\\\":\\\"02\\\",\\\"prime\\\":\\\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff\\\"},\\\"modp14\\\":{\\\"gen\\\":\\\"02\\\",\\\"prime\\\":\\\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff\\\"},\\\"modp15\\\":{\\\"gen\\\":\\\"02\\\",\\\"prime\\\":\\\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff\\\"},\\\"modp16\\\":{\\\"gen\\\":\\\"02\\\",\\\"prime\\\":\\\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff\\\"},\\\"modp17\\\":{\\\"gen\\\":\\\"02\\\",\\\"prime\\\":\\\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff\\\"},\\\"modp18\\\":{\\\"gen\\\":\\\"02\\\",\\\"prime\\\":\\\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff\\\"}}\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/diffie-hellman/lib/primes.json?"); | ||
| 1490 | + | ||
| 1491 | +/***/ }), | ||
| 1492 | + | ||
| 1493 | +/***/ "./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js": | ||
| 1494 | +/*!******************************************************************!*\ | ||
| 1495 | + !*** ./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js ***! | ||
| 1496 | + \******************************************************************/ | ||
| 1497 | +/*! no static exports found */ | ||
| 1498 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1499 | + | ||
| 1500 | +eval("/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {\n 'use strict'; // Utils\n\n function assert(val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n } // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n\n\n function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n } // BN\n\n\n function BN(number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0; // Reduction context\n\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n var Buffer;\n\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = __webpack_require__(/*! buffer */ 4).Buffer;\n }\n } catch (e) {}\n\n BN.isBN = function isBN(num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max(left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min(left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init(number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n\n assert(base === (base | 0) && base >= 2 && base <= 36);\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber(number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n this.length = 3;\n }\n\n if (endian !== 'le') return; // Reverse the bytes\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray(number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;\n this.words[j] |= w << off & 0x3ffffff;\n this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n off += 24;\n\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;\n this.words[j] |= w << off & 0x3ffffff;\n this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n off += 24;\n\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n\n return this.strip();\n };\n\n function parseHex4Bits(string, index) {\n var c = string.charCodeAt(index); // 'A' - 'F'\n\n if (c >= 65 && c <= 70) {\n return c - 55; // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87; // '0' - '9'\n } else {\n return c - 48 & 0xf;\n }\n }\n\n function parseHexByte(string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex(number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n } // 24-bits chunks\n\n\n var off = 0;\n var j = 0;\n var w;\n\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase(str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n r *= mul; // 'a'\n\n if (c >= 49) {\n r += c - 49 + 0xa; // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa; // '0' - '9'\n } else {\n r += c;\n }\n }\n\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase(number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1; // Find length of limb in base\n\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n\n limbLen--;\n limbPow = limbPow / base | 0;\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n var word = 0;\n\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n this.imuln(limbPow);\n\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy(dest) {\n dest.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone() {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand(size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n\n return this;\n }; // Remove leading `0` from `this`\n\n\n BN.prototype.strip = function strip() {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign() {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n\n return this;\n };\n\n BN.prototype.inspect = function inspect() {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n };\n /*\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n */\n\n\n var zeros = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n BN.prototype.toString = function toString(base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n var out;\n\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = ((w << off | carry) & 0xffffff).toString(16);\n carry = w >>> 24 - off & 0xffffff;\n\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n\n off += 2;\n\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\n\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base]; // var groupBase = Math.pow(base, groupSize);\n\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n\n if (this.isZero()) {\n out = '0' + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\n\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber() {\n var ret = this.words[0];\n\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + this.words[1] * 0x4000000;\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n\n return this.negative !== 0 ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON() {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer(endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray(endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n var b, i;\n var q = this.clone();\n\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits(w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits(w) {\n var t = w;\n var r = 0;\n\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits(w) {\n // Short-cut\n if (w === 0) return 26;\n var t = w;\n var r = 0;\n\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n\n if ((t & 0x1) === 0) {\n r++;\n }\n\n return r;\n }; // Return number of used bits in a BN\n\n\n BN.prototype.bitLength = function bitLength() {\n var w = this.words[this.length - 1];\n\n var hi = this._countBits(w);\n\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray(num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n w[bit] = (num.words[off] & 1 << wbit) >>> wbit;\n }\n\n return w;\n } // Number of trailing zero bits\n\n\n BN.prototype.zeroBits = function zeroBits() {\n if (this.isZero()) return 0;\n var r = 0;\n\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n\n r += b;\n if (b !== 26) break;\n }\n\n return r;\n };\n\n BN.prototype.byteLength = function byteLength() {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos(width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos(width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg() {\n return this.negative !== 0;\n }; // Return negative clone of `this`\n\n\n BN.prototype.neg = function neg() {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg() {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n }; // Or `num` with `this` in-place\n\n\n BN.prototype.iuor = function iuor(num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n }; // Or `num` with `this`\n\n\n BN.prototype.or = function or(num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor(num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n }; // And `num` with `this` in-place\n\n\n BN.prototype.iuand = function iuand(num) {\n // b = min-length(num, this)\n var b;\n\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n return this.strip();\n };\n\n BN.prototype.iand = function iand(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n }; // And `num` with `this`\n\n\n BN.prototype.and = function and(num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand(num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n }; // Xor `num` with `this` in-place\n\n\n BN.prototype.iuxor = function iuxor(num) {\n // a.length > b.length\n var a;\n var b;\n\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n }; // Xor `num` with `this`\n\n\n BN.prototype.xor = function xor(num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor(num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n }; // Not ``this`` with ``width`` bitwidth\n\n\n BN.prototype.inotn = function inotn(width) {\n assert(typeof width === 'number' && width >= 0);\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n } // Handle complete words\n\n\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n } // Handle the residue\n\n\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n } // And remove leading zeroes\n\n\n return this.strip();\n };\n\n BN.prototype.notn = function notn(width) {\n return this.clone().inotn(width);\n }; // Set `bit` of `this`\n\n\n BN.prototype.setn = function setn(bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | 1 << wbit;\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n }; // Add `num` to `this` in-place\n\n\n BN.prototype.iadd = function iadd(num) {\n var r; // negative + positive\n\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign(); // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n } // a.length > b.length\n\n\n var a, b;\n\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++; // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n }; // Add `num` to `this`\n\n\n BN.prototype.add = function add(num) {\n var res;\n\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n return num.clone().iadd(this);\n }; // Subtract `num` from `this` in-place\n\n\n BN.prototype.isub = function isub(num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign(); // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n } // At this point both numbers are positive\n\n\n var cmp = this.cmp(num); // Optimization - zeroify\n\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n } // a > b\n\n\n var a, b;\n\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n } // Copy rest of the words\n\n\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n }; // Subtract `num` from `this`\n\n\n BN.prototype.sub = function sub(num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo(self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = self.length + num.length | 0;\n out.length = len;\n len = len - 1 | 0; // Peel one iteration (compiler can't do it, because of code complexity)\n\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n var lo = r & 0x3ffffff;\n var carry = r / 0x4000000 | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += r / 0x4000000 | 0;\n rword = r & 0x3ffffff;\n }\n\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n } // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n\n\n var comb10MulTo = function comb10MulTo(self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = mid + Math.imul(ah0, bl0) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = mid + Math.imul(ah1, bl0) | 0;\n hi = Math.imul(ah1, bh0);\n lo = lo + Math.imul(al0, bl1) | 0;\n mid = mid + Math.imul(al0, bh1) | 0;\n mid = mid + Math.imul(ah0, bl1) | 0;\n hi = hi + Math.imul(ah0, bh1) | 0;\n var w1 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = mid + Math.imul(ah2, bl0) | 0;\n hi = Math.imul(ah2, bh0);\n lo = lo + Math.imul(al1, bl1) | 0;\n mid = mid + Math.imul(al1, bh1) | 0;\n mid = mid + Math.imul(ah1, bl1) | 0;\n hi = hi + Math.imul(ah1, bh1) | 0;\n lo = lo + Math.imul(al0, bl2) | 0;\n mid = mid + Math.imul(al0, bh2) | 0;\n mid = mid + Math.imul(ah0, bl2) | 0;\n hi = hi + Math.imul(ah0, bh2) | 0;\n var w2 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = mid + Math.imul(ah3, bl0) | 0;\n hi = Math.imul(ah3, bh0);\n lo = lo + Math.imul(al2, bl1) | 0;\n mid = mid + Math.imul(al2, bh1) | 0;\n mid = mid + Math.imul(ah2, bl1) | 0;\n hi = hi + Math.imul(ah2, bh1) | 0;\n lo = lo + Math.imul(al1, bl2) | 0;\n mid = mid + Math.imul(al1, bh2) | 0;\n mid = mid + Math.imul(ah1, bl2) | 0;\n hi = hi + Math.imul(ah1, bh2) | 0;\n lo = lo + Math.imul(al0, bl3) | 0;\n mid = mid + Math.imul(al0, bh3) | 0;\n mid = mid + Math.imul(ah0, bl3) | 0;\n hi = hi + Math.imul(ah0, bh3) | 0;\n var w3 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = mid + Math.imul(ah4, bl0) | 0;\n hi = Math.imul(ah4, bh0);\n lo = lo + Math.imul(al3, bl1) | 0;\n mid = mid + Math.imul(al3, bh1) | 0;\n mid = mid + Math.imul(ah3, bl1) | 0;\n hi = hi + Math.imul(ah3, bh1) | 0;\n lo = lo + Math.imul(al2, bl2) | 0;\n mid = mid + Math.imul(al2, bh2) | 0;\n mid = mid + Math.imul(ah2, bl2) | 0;\n hi = hi + Math.imul(ah2, bh2) | 0;\n lo = lo + Math.imul(al1, bl3) | 0;\n mid = mid + Math.imul(al1, bh3) | 0;\n mid = mid + Math.imul(ah1, bl3) | 0;\n hi = hi + Math.imul(ah1, bh3) | 0;\n lo = lo + Math.imul(al0, bl4) | 0;\n mid = mid + Math.imul(al0, bh4) | 0;\n mid = mid + Math.imul(ah0, bl4) | 0;\n hi = hi + Math.imul(ah0, bh4) | 0;\n var w4 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = mid + Math.imul(ah5, bl0) | 0;\n hi = Math.imul(ah5, bh0);\n lo = lo + Math.imul(al4, bl1) | 0;\n mid = mid + Math.imul(al4, bh1) | 0;\n mid = mid + Math.imul(ah4, bl1) | 0;\n hi = hi + Math.imul(ah4, bh1) | 0;\n lo = lo + Math.imul(al3, bl2) | 0;\n mid = mid + Math.imul(al3, bh2) | 0;\n mid = mid + Math.imul(ah3, bl2) | 0;\n hi = hi + Math.imul(ah3, bh2) | 0;\n lo = lo + Math.imul(al2, bl3) | 0;\n mid = mid + Math.imul(al2, bh3) | 0;\n mid = mid + Math.imul(ah2, bl3) | 0;\n hi = hi + Math.imul(ah2, bh3) | 0;\n lo = lo + Math.imul(al1, bl4) | 0;\n mid = mid + Math.imul(al1, bh4) | 0;\n mid = mid + Math.imul(ah1, bl4) | 0;\n hi = hi + Math.imul(ah1, bh4) | 0;\n lo = lo + Math.imul(al0, bl5) | 0;\n mid = mid + Math.imul(al0, bh5) | 0;\n mid = mid + Math.imul(ah0, bl5) | 0;\n hi = hi + Math.imul(ah0, bh5) | 0;\n var w5 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = mid + Math.imul(ah6, bl0) | 0;\n hi = Math.imul(ah6, bh0);\n lo = lo + Math.imul(al5, bl1) | 0;\n mid = mid + Math.imul(al5, bh1) | 0;\n mid = mid + Math.imul(ah5, bl1) | 0;\n hi = hi + Math.imul(ah5, bh1) | 0;\n lo = lo + Math.imul(al4, bl2) | 0;\n mid = mid + Math.imul(al4, bh2) | 0;\n mid = mid + Math.imul(ah4, bl2) | 0;\n hi = hi + Math.imul(ah4, bh2) | 0;\n lo = lo + Math.imul(al3, bl3) | 0;\n mid = mid + Math.imul(al3, bh3) | 0;\n mid = mid + Math.imul(ah3, bl3) | 0;\n hi = hi + Math.imul(ah3, bh3) | 0;\n lo = lo + Math.imul(al2, bl4) | 0;\n mid = mid + Math.imul(al2, bh4) | 0;\n mid = mid + Math.imul(ah2, bl4) | 0;\n hi = hi + Math.imul(ah2, bh4) | 0;\n lo = lo + Math.imul(al1, bl5) | 0;\n mid = mid + Math.imul(al1, bh5) | 0;\n mid = mid + Math.imul(ah1, bl5) | 0;\n hi = hi + Math.imul(ah1, bh5) | 0;\n lo = lo + Math.imul(al0, bl6) | 0;\n mid = mid + Math.imul(al0, bh6) | 0;\n mid = mid + Math.imul(ah0, bl6) | 0;\n hi = hi + Math.imul(ah0, bh6) | 0;\n var w6 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = mid + Math.imul(ah7, bl0) | 0;\n hi = Math.imul(ah7, bh0);\n lo = lo + Math.imul(al6, bl1) | 0;\n mid = mid + Math.imul(al6, bh1) | 0;\n mid = mid + Math.imul(ah6, bl1) | 0;\n hi = hi + Math.imul(ah6, bh1) | 0;\n lo = lo + Math.imul(al5, bl2) | 0;\n mid = mid + Math.imul(al5, bh2) | 0;\n mid = mid + Math.imul(ah5, bl2) | 0;\n hi = hi + Math.imul(ah5, bh2) | 0;\n lo = lo + Math.imul(al4, bl3) | 0;\n mid = mid + Math.imul(al4, bh3) | 0;\n mid = mid + Math.imul(ah4, bl3) | 0;\n hi = hi + Math.imul(ah4, bh3) | 0;\n lo = lo + Math.imul(al3, bl4) | 0;\n mid = mid + Math.imul(al3, bh4) | 0;\n mid = mid + Math.imul(ah3, bl4) | 0;\n hi = hi + Math.imul(ah3, bh4) | 0;\n lo = lo + Math.imul(al2, bl5) | 0;\n mid = mid + Math.imul(al2, bh5) | 0;\n mid = mid + Math.imul(ah2, bl5) | 0;\n hi = hi + Math.imul(ah2, bh5) | 0;\n lo = lo + Math.imul(al1, bl6) | 0;\n mid = mid + Math.imul(al1, bh6) | 0;\n mid = mid + Math.imul(ah1, bl6) | 0;\n hi = hi + Math.imul(ah1, bh6) | 0;\n lo = lo + Math.imul(al0, bl7) | 0;\n mid = mid + Math.imul(al0, bh7) | 0;\n mid = mid + Math.imul(ah0, bl7) | 0;\n hi = hi + Math.imul(ah0, bh7) | 0;\n var w7 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = mid + Math.imul(ah8, bl0) | 0;\n hi = Math.imul(ah8, bh0);\n lo = lo + Math.imul(al7, bl1) | 0;\n mid = mid + Math.imul(al7, bh1) | 0;\n mid = mid + Math.imul(ah7, bl1) | 0;\n hi = hi + Math.imul(ah7, bh1) | 0;\n lo = lo + Math.imul(al6, bl2) | 0;\n mid = mid + Math.imul(al6, bh2) | 0;\n mid = mid + Math.imul(ah6, bl2) | 0;\n hi = hi + Math.imul(ah6, bh2) | 0;\n lo = lo + Math.imul(al5, bl3) | 0;\n mid = mid + Math.imul(al5, bh3) | 0;\n mid = mid + Math.imul(ah5, bl3) | 0;\n hi = hi + Math.imul(ah5, bh3) | 0;\n lo = lo + Math.imul(al4, bl4) | 0;\n mid = mid + Math.imul(al4, bh4) | 0;\n mid = mid + Math.imul(ah4, bl4) | 0;\n hi = hi + Math.imul(ah4, bh4) | 0;\n lo = lo + Math.imul(al3, bl5) | 0;\n mid = mid + Math.imul(al3, bh5) | 0;\n mid = mid + Math.imul(ah3, bl5) | 0;\n hi = hi + Math.imul(ah3, bh5) | 0;\n lo = lo + Math.imul(al2, bl6) | 0;\n mid = mid + Math.imul(al2, bh6) | 0;\n mid = mid + Math.imul(ah2, bl6) | 0;\n hi = hi + Math.imul(ah2, bh6) | 0;\n lo = lo + Math.imul(al1, bl7) | 0;\n mid = mid + Math.imul(al1, bh7) | 0;\n mid = mid + Math.imul(ah1, bl7) | 0;\n hi = hi + Math.imul(ah1, bh7) | 0;\n lo = lo + Math.imul(al0, bl8) | 0;\n mid = mid + Math.imul(al0, bh8) | 0;\n mid = mid + Math.imul(ah0, bl8) | 0;\n hi = hi + Math.imul(ah0, bh8) | 0;\n var w8 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = mid + Math.imul(ah9, bl0) | 0;\n hi = Math.imul(ah9, bh0);\n lo = lo + Math.imul(al8, bl1) | 0;\n mid = mid + Math.imul(al8, bh1) | 0;\n mid = mid + Math.imul(ah8, bl1) | 0;\n hi = hi + Math.imul(ah8, bh1) | 0;\n lo = lo + Math.imul(al7, bl2) | 0;\n mid = mid + Math.imul(al7, bh2) | 0;\n mid = mid + Math.imul(ah7, bl2) | 0;\n hi = hi + Math.imul(ah7, bh2) | 0;\n lo = lo + Math.imul(al6, bl3) | 0;\n mid = mid + Math.imul(al6, bh3) | 0;\n mid = mid + Math.imul(ah6, bl3) | 0;\n hi = hi + Math.imul(ah6, bh3) | 0;\n lo = lo + Math.imul(al5, bl4) | 0;\n mid = mid + Math.imul(al5, bh4) | 0;\n mid = mid + Math.imul(ah5, bl4) | 0;\n hi = hi + Math.imul(ah5, bh4) | 0;\n lo = lo + Math.imul(al4, bl5) | 0;\n mid = mid + Math.imul(al4, bh5) | 0;\n mid = mid + Math.imul(ah4, bl5) | 0;\n hi = hi + Math.imul(ah4, bh5) | 0;\n lo = lo + Math.imul(al3, bl6) | 0;\n mid = mid + Math.imul(al3, bh6) | 0;\n mid = mid + Math.imul(ah3, bl6) | 0;\n hi = hi + Math.imul(ah3, bh6) | 0;\n lo = lo + Math.imul(al2, bl7) | 0;\n mid = mid + Math.imul(al2, bh7) | 0;\n mid = mid + Math.imul(ah2, bl7) | 0;\n hi = hi + Math.imul(ah2, bh7) | 0;\n lo = lo + Math.imul(al1, bl8) | 0;\n mid = mid + Math.imul(al1, bh8) | 0;\n mid = mid + Math.imul(ah1, bl8) | 0;\n hi = hi + Math.imul(ah1, bh8) | 0;\n lo = lo + Math.imul(al0, bl9) | 0;\n mid = mid + Math.imul(al0, bh9) | 0;\n mid = mid + Math.imul(ah0, bl9) | 0;\n hi = hi + Math.imul(ah0, bh9) | 0;\n var w9 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = mid + Math.imul(ah9, bl1) | 0;\n hi = Math.imul(ah9, bh1);\n lo = lo + Math.imul(al8, bl2) | 0;\n mid = mid + Math.imul(al8, bh2) | 0;\n mid = mid + Math.imul(ah8, bl2) | 0;\n hi = hi + Math.imul(ah8, bh2) | 0;\n lo = lo + Math.imul(al7, bl3) | 0;\n mid = mid + Math.imul(al7, bh3) | 0;\n mid = mid + Math.imul(ah7, bl3) | 0;\n hi = hi + Math.imul(ah7, bh3) | 0;\n lo = lo + Math.imul(al6, bl4) | 0;\n mid = mid + Math.imul(al6, bh4) | 0;\n mid = mid + Math.imul(ah6, bl4) | 0;\n hi = hi + Math.imul(ah6, bh4) | 0;\n lo = lo + Math.imul(al5, bl5) | 0;\n mid = mid + Math.imul(al5, bh5) | 0;\n mid = mid + Math.imul(ah5, bl5) | 0;\n hi = hi + Math.imul(ah5, bh5) | 0;\n lo = lo + Math.imul(al4, bl6) | 0;\n mid = mid + Math.imul(al4, bh6) | 0;\n mid = mid + Math.imul(ah4, bl6) | 0;\n hi = hi + Math.imul(ah4, bh6) | 0;\n lo = lo + Math.imul(al3, bl7) | 0;\n mid = mid + Math.imul(al3, bh7) | 0;\n mid = mid + Math.imul(ah3, bl7) | 0;\n hi = hi + Math.imul(ah3, bh7) | 0;\n lo = lo + Math.imul(al2, bl8) | 0;\n mid = mid + Math.imul(al2, bh8) | 0;\n mid = mid + Math.imul(ah2, bl8) | 0;\n hi = hi + Math.imul(ah2, bh8) | 0;\n lo = lo + Math.imul(al1, bl9) | 0;\n mid = mid + Math.imul(al1, bh9) | 0;\n mid = mid + Math.imul(ah1, bl9) | 0;\n hi = hi + Math.imul(ah1, bh9) | 0;\n var w10 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = mid + Math.imul(ah9, bl2) | 0;\n hi = Math.imul(ah9, bh2);\n lo = lo + Math.imul(al8, bl3) | 0;\n mid = mid + Math.imul(al8, bh3) | 0;\n mid = mid + Math.imul(ah8, bl3) | 0;\n hi = hi + Math.imul(ah8, bh3) | 0;\n lo = lo + Math.imul(al7, bl4) | 0;\n mid = mid + Math.imul(al7, bh4) | 0;\n mid = mid + Math.imul(ah7, bl4) | 0;\n hi = hi + Math.imul(ah7, bh4) | 0;\n lo = lo + Math.imul(al6, bl5) | 0;\n mid = mid + Math.imul(al6, bh5) | 0;\n mid = mid + Math.imul(ah6, bl5) | 0;\n hi = hi + Math.imul(ah6, bh5) | 0;\n lo = lo + Math.imul(al5, bl6) | 0;\n mid = mid + Math.imul(al5, bh6) | 0;\n mid = mid + Math.imul(ah5, bl6) | 0;\n hi = hi + Math.imul(ah5, bh6) | 0;\n lo = lo + Math.imul(al4, bl7) | 0;\n mid = mid + Math.imul(al4, bh7) | 0;\n mid = mid + Math.imul(ah4, bl7) | 0;\n hi = hi + Math.imul(ah4, bh7) | 0;\n lo = lo + Math.imul(al3, bl8) | 0;\n mid = mid + Math.imul(al3, bh8) | 0;\n mid = mid + Math.imul(ah3, bl8) | 0;\n hi = hi + Math.imul(ah3, bh8) | 0;\n lo = lo + Math.imul(al2, bl9) | 0;\n mid = mid + Math.imul(al2, bh9) | 0;\n mid = mid + Math.imul(ah2, bl9) | 0;\n hi = hi + Math.imul(ah2, bh9) | 0;\n var w11 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = mid + Math.imul(ah9, bl3) | 0;\n hi = Math.imul(ah9, bh3);\n lo = lo + Math.imul(al8, bl4) | 0;\n mid = mid + Math.imul(al8, bh4) | 0;\n mid = mid + Math.imul(ah8, bl4) | 0;\n hi = hi + Math.imul(ah8, bh4) | 0;\n lo = lo + Math.imul(al7, bl5) | 0;\n mid = mid + Math.imul(al7, bh5) | 0;\n mid = mid + Math.imul(ah7, bl5) | 0;\n hi = hi + Math.imul(ah7, bh5) | 0;\n lo = lo + Math.imul(al6, bl6) | 0;\n mid = mid + Math.imul(al6, bh6) | 0;\n mid = mid + Math.imul(ah6, bl6) | 0;\n hi = hi + Math.imul(ah6, bh6) | 0;\n lo = lo + Math.imul(al5, bl7) | 0;\n mid = mid + Math.imul(al5, bh7) | 0;\n mid = mid + Math.imul(ah5, bl7) | 0;\n hi = hi + Math.imul(ah5, bh7) | 0;\n lo = lo + Math.imul(al4, bl8) | 0;\n mid = mid + Math.imul(al4, bh8) | 0;\n mid = mid + Math.imul(ah4, bl8) | 0;\n hi = hi + Math.imul(ah4, bh8) | 0;\n lo = lo + Math.imul(al3, bl9) | 0;\n mid = mid + Math.imul(al3, bh9) | 0;\n mid = mid + Math.imul(ah3, bl9) | 0;\n hi = hi + Math.imul(ah3, bh9) | 0;\n var w12 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = mid + Math.imul(ah9, bl4) | 0;\n hi = Math.imul(ah9, bh4);\n lo = lo + Math.imul(al8, bl5) | 0;\n mid = mid + Math.imul(al8, bh5) | 0;\n mid = mid + Math.imul(ah8, bl5) | 0;\n hi = hi + Math.imul(ah8, bh5) | 0;\n lo = lo + Math.imul(al7, bl6) | 0;\n mid = mid + Math.imul(al7, bh6) | 0;\n mid = mid + Math.imul(ah7, bl6) | 0;\n hi = hi + Math.imul(ah7, bh6) | 0;\n lo = lo + Math.imul(al6, bl7) | 0;\n mid = mid + Math.imul(al6, bh7) | 0;\n mid = mid + Math.imul(ah6, bl7) | 0;\n hi = hi + Math.imul(ah6, bh7) | 0;\n lo = lo + Math.imul(al5, bl8) | 0;\n mid = mid + Math.imul(al5, bh8) | 0;\n mid = mid + Math.imul(ah5, bl8) | 0;\n hi = hi + Math.imul(ah5, bh8) | 0;\n lo = lo + Math.imul(al4, bl9) | 0;\n mid = mid + Math.imul(al4, bh9) | 0;\n mid = mid + Math.imul(ah4, bl9) | 0;\n hi = hi + Math.imul(ah4, bh9) | 0;\n var w13 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = mid + Math.imul(ah9, bl5) | 0;\n hi = Math.imul(ah9, bh5);\n lo = lo + Math.imul(al8, bl6) | 0;\n mid = mid + Math.imul(al8, bh6) | 0;\n mid = mid + Math.imul(ah8, bl6) | 0;\n hi = hi + Math.imul(ah8, bh6) | 0;\n lo = lo + Math.imul(al7, bl7) | 0;\n mid = mid + Math.imul(al7, bh7) | 0;\n mid = mid + Math.imul(ah7, bl7) | 0;\n hi = hi + Math.imul(ah7, bh7) | 0;\n lo = lo + Math.imul(al6, bl8) | 0;\n mid = mid + Math.imul(al6, bh8) | 0;\n mid = mid + Math.imul(ah6, bl8) | 0;\n hi = hi + Math.imul(ah6, bh8) | 0;\n lo = lo + Math.imul(al5, bl9) | 0;\n mid = mid + Math.imul(al5, bh9) | 0;\n mid = mid + Math.imul(ah5, bl9) | 0;\n hi = hi + Math.imul(ah5, bh9) | 0;\n var w14 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = mid + Math.imul(ah9, bl6) | 0;\n hi = Math.imul(ah9, bh6);\n lo = lo + Math.imul(al8, bl7) | 0;\n mid = mid + Math.imul(al8, bh7) | 0;\n mid = mid + Math.imul(ah8, bl7) | 0;\n hi = hi + Math.imul(ah8, bh7) | 0;\n lo = lo + Math.imul(al7, bl8) | 0;\n mid = mid + Math.imul(al7, bh8) | 0;\n mid = mid + Math.imul(ah7, bl8) | 0;\n hi = hi + Math.imul(ah7, bh8) | 0;\n lo = lo + Math.imul(al6, bl9) | 0;\n mid = mid + Math.imul(al6, bh9) | 0;\n mid = mid + Math.imul(ah6, bl9) | 0;\n hi = hi + Math.imul(ah6, bh9) | 0;\n var w15 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = mid + Math.imul(ah9, bl7) | 0;\n hi = Math.imul(ah9, bh7);\n lo = lo + Math.imul(al8, bl8) | 0;\n mid = mid + Math.imul(al8, bh8) | 0;\n mid = mid + Math.imul(ah8, bl8) | 0;\n hi = hi + Math.imul(ah8, bh8) | 0;\n lo = lo + Math.imul(al7, bl9) | 0;\n mid = mid + Math.imul(al7, bh9) | 0;\n mid = mid + Math.imul(ah7, bl9) | 0;\n hi = hi + Math.imul(ah7, bh9) | 0;\n var w16 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = mid + Math.imul(ah9, bl8) | 0;\n hi = Math.imul(ah9, bh8);\n lo = lo + Math.imul(al8, bl9) | 0;\n mid = mid + Math.imul(al8, bh9) | 0;\n mid = mid + Math.imul(ah8, bl9) | 0;\n hi = hi + Math.imul(ah8, bh9) | 0;\n var w17 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = mid + Math.imul(ah9, bl9) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n\n return out;\n }; // Polyfill comb\n\n\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo(self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n var carry = 0;\n var hncarry = 0;\n\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n var lo = r & 0x3ffffff;\n ncarry = ncarry + (r / 0x4000000 | 0) | 0;\n lo = lo + rword | 0;\n rword = lo & 0x3ffffff;\n ncarry = ncarry + (lo >>> 26) | 0;\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo(self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo(num, out) {\n var res;\n var len = this.length + num.length;\n\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n }; // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n\n function FFTM(x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT(N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n }; // Returns binary-reversed representation of `x`\n\n\n FFTM.prototype.revBin = function revBin(x, l, N) {\n if (x === 0 || x === N - 1) return x;\n var rb = 0;\n\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << l - i - 1;\n x >>= 1;\n }\n\n return rb;\n }; // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n\n\n FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n var rx = rtwdf_ * ro - itwdf_ * io;\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n /* jshint maxdepth : false */\n\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b(n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate(rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n t = iws[i];\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b(ws, N) {\n var carry = 0;\n\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry;\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {\n var carry = 0;\n\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n rws[2 * i] = carry & 0x1fff;\n carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff;\n carry = carry >>> 13;\n } // Pad with zeroes\n\n\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub(N) {\n var ph = new Array(N);\n\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp(x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n var rmws = out.words;\n rmws.length = N;\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n }; // Multiply `this` by `num`\n\n\n BN.prototype.mul = function mul(num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n }; // Multiply employing FFT\n\n\n BN.prototype.mulf = function mulf(num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n }; // In-place Multiplication\n\n\n BN.prototype.imul = function imul(num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000); // Carry\n\n var carry = 0;\n\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += w / 0x4000000 | 0; // NOTE: lo is 27bit maximum\n\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln(num) {\n return this.clone().imuln(num);\n }; // `this` * `this`\n\n\n BN.prototype.sqr = function sqr() {\n return this.mul(this);\n }; // `this` * `this` in-place\n\n\n BN.prototype.isqr = function isqr() {\n return this.imul(this.clone());\n }; // Math.pow(`this`, `num`)\n\n\n BN.prototype.pow = function pow(num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n var res = this;\n\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n res = res.mul(q);\n }\n }\n\n return res;\n }; // Shift-left in-place\n\n\n BN.prototype.iushln = function iushln(bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = 0x3ffffff >>> 26 - r << 26 - r;\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = (this.words[i] | 0) - newCarry << r;\n this.words[i] = c | carry;\n carry = newCarry >>> 26 - r;\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln(bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n }; // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n\n\n BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n\n if (hint) {\n h = (hint - hint % 26) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n var maskedWords = extended;\n h -= s;\n h = Math.max(0, h); // Extended mode, copy masked part\n\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n\n maskedWords.length = s;\n }\n\n if (s === 0) {// No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = carry << 26 - r | word >>> r;\n carry = word & mask;\n } // Push carried bits as a mask\n\n\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn(bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n }; // Shift-left\n\n\n BN.prototype.shln = function shln(bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln(bits) {\n return this.clone().iushln(bits);\n }; // Shift-right\n\n\n BN.prototype.shrn = function shrn(bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn(bits) {\n return this.clone().iushrn(bits);\n }; // Test if n bit is set\n\n\n BN.prototype.testn = function testn(bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) return false; // Check bit and return\n\n var w = this.words[s];\n return !!(w & q);\n }; // Return only lowers bits of number (in-place)\n\n\n BN.prototype.imaskn = function imaskn(bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n }; // Return only lowers bits of number\n\n\n BN.prototype.maskn = function maskn(bits) {\n return this.clone().imaskn(bits);\n }; // Add plain number `num` to `this`\n\n\n BN.prototype.iaddn = function iaddn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num); // Possible sign change\n\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n } // Add without checks\n\n\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn(num) {\n this.words[0] += num; // Carry\n\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n\n this.length = Math.max(this.length, i + 1);\n return this;\n }; // Subtract plain number `num` from `this`\n\n\n BN.prototype.isubn = function isubn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn(num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn(num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs() {\n this.negative = 0;\n return this;\n };\n\n BN.prototype.abs = function abs() {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - (right / 0x4000000 | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip(); // Subtraction overflow\n\n assert(carry === -1);\n carry = 0;\n\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n\n this.negative = 1;\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv(num, mode) {\n var shift = this.length - num.length;\n var a = this.clone();\n var b = num; // Normalize\n\n var bhi = b.words[b.length - 1] | 0;\n\n var bhiBits = this._countBits(bhi);\n\n shift = 26 - bhiBits;\n\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n } // Initialize quotient\n\n\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n\n if (diff.negative === 0) {\n a = diff;\n\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n\n qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n\n a._ishlnsubmul(b, 1, j);\n\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n\n if (q) {\n q.words[j] = qj;\n }\n }\n\n if (q) {\n q.strip();\n }\n\n a.strip(); // Denormalize\n\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n }; // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n\n\n BN.prototype.divmod = function divmod(num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n } // Both numbers are positive at this point\n // Strip both numbers to approximate shift value\n\n\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n } // Very short reduction\n\n\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n }; // Find `this` / `num`\n\n\n BN.prototype.div = function div(num) {\n return this.divmod(num, 'div', false).div;\n }; // Find `this` % `num`\n\n\n BN.prototype.mod = function mod(num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod(num) {\n return this.divmod(num, 'mod', true).mod;\n }; // Find Round(`this` / `num`)\n\n\n BN.prototype.divRound = function divRound(num) {\n var dm = this.divmod(num); // Fast case - exact division\n\n if (dm.mod.isZero()) return dm.div;\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half); // Round down\n\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn(num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n var acc = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n }; // In-place division by number\n\n\n BN.prototype.idivn = function idivn(num) {\n assert(num <= 0x3ffffff);\n var carry = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = w / num | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn(num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n } // A * x + B * y = x\n\n\n var A = new BN(1);\n var B = new BN(0); // C * x + D * y = y\n\n var C = new BN(0);\n var D = new BN(1);\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {\n ;\n }\n\n if (i > 0) {\n x.iushrn(i);\n\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {\n ;\n }\n\n if (j > 0) {\n y.iushrn(j);\n\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n }; // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n\n\n BN.prototype._invmp = function _invmp(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {\n ;\n }\n\n if (i > 0) {\n a.iushrn(i);\n\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {\n ;\n }\n\n if (j > 0) {\n b.iushrn(j);\n\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd(num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0; // Remove common factor of two\n\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n }; // Invert number in the field F(num)\n\n\n BN.prototype.invm = function invm(num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven() {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd() {\n return (this.words[0] & 1) === 1;\n }; // And first word and num\n\n\n BN.prototype.andln = function andln(num) {\n return this.words[0] & num;\n }; // Increment at the bit position in-line\n\n\n BN.prototype.bincn = function bincn(bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) {\n this._expand(s + 1);\n\n this.words[s] |= q;\n return this;\n } // Add bit and propagate, if needed\n\n\n var carry = q;\n\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.isZero = function isZero() {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn(num) {\n var negative = num < 0;\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n this.strip();\n var res;\n\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n\n\n BN.prototype.cmp = function cmp(num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Unsigned comparison\n\n\n BN.prototype.ucmp = function ucmp(num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n var res = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n if (a === b) continue;\n\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n\n break;\n }\n\n return res;\n };\n\n BN.prototype.gtn = function gtn(num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt(num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten(num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte(num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn(num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt(num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten(num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte(num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn(num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq(num) {\n return this.cmp(num) === 0;\n }; //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n\n\n BN.red = function red(num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed(ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed() {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed(ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed(ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd(num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd(num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub(num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub(num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl(num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul(num) {\n assert(this.red, 'redMul works only with red numbers');\n\n this.red._verify2(this, num);\n\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul(num) {\n assert(this.red, 'redMul works only with red numbers');\n\n this.red._verify2(this, num);\n\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr() {\n assert(this.red, 'redSqr works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr() {\n assert(this.red, 'redISqr works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.isqr(this);\n }; // Square root over p\n\n\n BN.prototype.redSqrt = function redSqrt() {\n assert(this.red, 'redSqrt works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm() {\n assert(this.red, 'redInvm works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.invm(this);\n }; // Return negative clone of `this` % `red modulo`\n\n\n BN.prototype.redNeg = function redNeg() {\n assert(this.red, 'redNeg works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow(num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n\n this.red._verify1(this);\n\n return this.red.pow(this, num);\n }; // Prime numbers with efficient reduction\n\n\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n }; // Pseudo-Mersenne prime\n\n function MPrime(name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp() {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce(num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split(input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK(num) {\n return num.imul(this.k);\n };\n\n function K256() {\n MPrime.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n\n inherits(K256, MPrime);\n\n K256.prototype.split = function split(input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n var outLen = Math.min(input.length, 9);\n\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n } // Shift by 9 limbs\n\n\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = (next & mask) << 4 | prev >>> 22;\n prev = next;\n }\n\n prev >>>= 22;\n input.words[i - 10] = prev;\n\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK(num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n var lo = 0;\n\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + (lo / 0x4000000 | 0);\n } // Fast length reduction\n\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n\n return num;\n };\n\n function P224() {\n MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n\n inherits(P224, MPrime);\n\n function P192() {\n MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n\n inherits(P192, MPrime);\n\n function P25519() {\n // 2 ^ 255 - 19\n MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK(num) {\n // K = 0x13\n var carry = 0;\n\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n num.words[i] = lo;\n carry = hi;\n }\n\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n\n return num;\n }; // Exported mostly for testing purposes, use plain name instead\n\n\n BN._prime = function prime(name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n var prime;\n\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n\n primes[name] = prime;\n return prime;\n }; //\n // Base reduction engine\n //\n\n\n function Red(m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1(a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2(a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red, 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod(a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg(a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add(a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd(a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n\n return res;\n };\n\n Red.prototype.sub = function sub(a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub(a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res;\n };\n\n Red.prototype.shl = function shl(a, num) {\n this._verify1(a);\n\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr(a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr(a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt(a) {\n if (a.isZero()) return a.clone();\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1); // Fast case\n\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n var q = this.m.subn(1);\n var s = 0;\n\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n\n assert(!q.isZero());\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg(); // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n\n while (t.cmp(one) !== 0) {\n var tmp = t;\n\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm(a) {\n var inv = a._invmp(this.m);\n\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow(a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n\n for (var j = start - 1; j >= 0; j--) {\n var bit = word >> j & 1;\n\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo(num) {\n var r = num.umod(this.m);\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom(num) {\n var res = num.clone();\n res.red = null;\n return res;\n }; //\n // Montgomery method engine\n //\n\n\n BN.mont = function mont(num) {\n return new Mont(num);\n };\n\n function Mont(m) {\n Red.call(this, m);\n this.shift = this.m.bitLength();\n\n if (this.shift % 26 !== 0) {\n this.shift += 26 - this.shift % 26;\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo(num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom(num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul(a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul(a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm(a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})( false || module, this);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js?"); | ||
| 1501 | + | ||
| 1502 | +/***/ }), | ||
| 1503 | + | ||
| 1504 | +/***/ "./node_modules/elliptic/lib/elliptic.js": | ||
| 1505 | +/*!***********************************************!*\ | ||
| 1506 | + !*** ./node_modules/elliptic/lib/elliptic.js ***! | ||
| 1507 | + \***********************************************/ | ||
| 1508 | +/*! no static exports found */ | ||
| 1509 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1510 | + | ||
| 1511 | +"use strict"; | ||
| 1512 | +eval("\n\nvar elliptic = exports;\nelliptic.version = __webpack_require__(/*! ../package.json */ \"./node_modules/elliptic/package.json\").version;\nelliptic.utils = __webpack_require__(/*! ./elliptic/utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\nelliptic.rand = __webpack_require__(/*! brorand */ \"./node_modules/brorand/index.js\");\nelliptic.curve = __webpack_require__(/*! ./elliptic/curve */ \"./node_modules/elliptic/lib/elliptic/curve/index.js\");\nelliptic.curves = __webpack_require__(/*! ./elliptic/curves */ \"./node_modules/elliptic/lib/elliptic/curves.js\"); // Protocols\n\nelliptic.ec = __webpack_require__(/*! ./elliptic/ec */ \"./node_modules/elliptic/lib/elliptic/ec/index.js\");\nelliptic.eddsa = __webpack_require__(/*! ./elliptic/eddsa */ \"./node_modules/elliptic/lib/elliptic/eddsa/index.js\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/elliptic/lib/elliptic.js?"); | ||
| 1513 | + | ||
| 1514 | +/***/ }), | ||
| 1515 | + | ||
| 1516 | +/***/ "./node_modules/elliptic/lib/elliptic/curve/base.js": | ||
| 1517 | +/*!**********************************************************!*\ | ||
| 1518 | + !*** ./node_modules/elliptic/lib/elliptic/curve/base.js ***! | ||
| 1519 | + \**********************************************************/ | ||
| 1520 | +/*! no static exports found */ | ||
| 1521 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1522 | + | ||
| 1523 | +"use strict"; | ||
| 1524 | +eval("\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16); // Use Montgomery, when there is no fast reduction for the prime\n\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p); // Useful for many curves\n\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red); // Curve configuration, optional\n\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed); // Temporary arrays\n\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n this._bitLength = this.n ? this.n.bitLength() : 0; // Generalized Greg Maxwell's trick\n\n var adjustCount = this.n && this.p.div(this.n);\n\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\n\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << doubles.step + 1) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3; // Translate into more windowed form\n\n var repr = [];\n var j;\n var nafW;\n\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n\n for (var l = j + doubles.step - 1; l >= j; l--) {\n nafW = (nafW << 1) + naf[l];\n }\n\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i) b = b.mixedAdd(doubles.points[j]);else if (nafW === -i) b = b.mixedAdd(doubles.points[j].neg());\n }\n\n a = a.add(b);\n }\n\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4; // Precompute window\n\n var nafPoints = p._getNAFPoints(w);\n\n w = nafPoints.wnd;\n var wnd = nafPoints.points; // Get NAF form\n\n var naf = getNAF(k, w, this._bitLength); // Add `this`*(N+1) for every w-NAF index\n\n var acc = this.jpoint(null, null, null);\n\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--) {\n l++;\n }\n\n if (i >= 0) l++;\n acc = acc.dblp(l);\n if (i < 0) break;\n var z = naf[i];\n assert(z !== 0);\n\n if (p.type === 'affine') {\n // J +- P\n if (z > 0) acc = acc.mixedAdd(wnd[z - 1 >> 1]);else acc = acc.mixedAdd(wnd[-z - 1 >> 1].neg());\n } else {\n // J +- J\n if (z > 0) acc = acc.add(wnd[z - 1 >> 1]);else acc = acc.add(wnd[-z - 1 >> 1].neg());\n }\n }\n\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW, points, coeffs, len, jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3; // Fill all arrays\n\n var max = 0;\n var i;\n var j;\n var p;\n\n for (i = 0; i < len; i++) {\n p = points[i];\n\n var nafPoints = p._getNAFPoints(defW);\n\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n } // Comb small window NAFs\n\n\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [points[a],\n /* 1 */\n null,\n /* 3 */\n null,\n /* 5 */\n points[b]\n /* 7 */\n ]; // Try to avoid Projective points, if possible\n\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [-3,\n /* -1 -1 */\n -1,\n /* -1 0 */\n -5,\n /* -1 1 */\n -7,\n /* 0 -1 */\n 0,\n /* 0 0 */\n 7,\n /* 0 1 */\n 5,\n /* 1 -1 */\n 1,\n /* 1 0 */\n 3\n /* 1 1 */\n ];\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0) zero = false;\n }\n\n if (!zero) break;\n k++;\n i--;\n }\n\n if (i >= 0) k++;\n acc = acc.dblp(k);\n if (i < 0) break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0) continue;else if (z > 0) p = wnd[j][z - 1 >> 1];else if (z < 0) p = wnd[j][-z - 1 >> 1].neg();\n if (p.type === 'affine') acc = acc.mixedAdd(p);else acc = acc.add(p);\n }\n } // Zeroify references\n\n\n for (i = 0; i < len; i++) {\n wnd[i] = null;\n }\n\n if (jacobianResult) return acc;else return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\n\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function\n /*other*/\neq() {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n var len = this.p.byteLength(); // uncompressed, hybrid-odd, hybrid-even\n\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) && bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06) assert(bytes[bytes.length - 1] % 2 === 0);else if (bytes[0] === 0x07) assert(bytes[bytes.length - 1] % 2 === 1);\n var res = this.point(bytes.slice(1, 1 + len), bytes.slice(1 + len, 1 + 2 * len));\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) && bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n if (compact) return [this.getY().isEven() ? 0x02 : 0x03].concat(x);\n return [0x04].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed) return this;\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed) return false;\n var doubles = this.precomputed.doubles;\n if (!doubles) return false;\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles) return this.precomputed.doubles;\n var doubles = [this];\n var acc = this;\n\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++) {\n acc = acc.dbl();\n }\n\n doubles.push(acc);\n }\n\n return {\n step: step,\n points: doubles\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf) return this.precomputed.naf;\n var res = [this];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n\n for (var i = 1; i < max; i++) {\n res[i] = res[i - 1].add(dbl);\n }\n\n return {\n wnd: wnd,\n points: res\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n\n for (var i = 0; i < k; i++) {\n r = r.dbl();\n }\n\n return r;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/elliptic/lib/elliptic/curve/base.js?"); | ||
| 1525 | + | ||
| 1526 | +/***/ }), | ||
| 1527 | + | ||
| 1528 | +/***/ "./node_modules/elliptic/lib/elliptic/curve/edwards.js": | ||
| 1529 | +/*!*************************************************************!*\ | ||
| 1530 | + !*** ./node_modules/elliptic/lib/elliptic/curve/edwards.js ***! | ||
| 1531 | + \*************************************************************/ | ||
| 1532 | +/*! no static exports found */ | ||
| 1533 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1534 | + | ||
| 1535 | +"use strict"; | ||
| 1536 | +eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Base = __webpack_require__(/*! ./base */ \"./node_modules/elliptic/lib/elliptic/curve/base.js\");\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n Base.call(this, 'edwards', conf);\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\n\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA) return num.redNeg();else return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC) return num;else return this.c.redMul(num);\n}; // Just for compatibility with Short curve\n\n\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red) x = x.toRed(this.red);\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error('invalid point');\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd) y = y.redNeg();\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red) y = y.toRed(this.red); // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd) throw new Error('invalid point');else return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0) throw new Error('invalid point');\n if (x.fromRed().isOdd() !== odd) x = x.redNeg();\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity()) return true; // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n\n point.normalize();\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red) this.x = this.x.toRed(this.curve.red);\n if (!this.y.red) this.y = this.y.toRed(this.curve.red);\n if (!this.z.red) this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red) this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one; // Use extended coordinates\n\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne) this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\n\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity()) return '<EC Point Infinity>';\n return '<EC Point x: ' + this.x.fromRed().toString(16, 2) + ' y: ' + this.y.fromRed().toString(16, 2) + ' z: ' + this.z.fromRed().toString(16, 2) + '>';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 && (this.y.cmp(this.z) === 0 || this.zOne && this.y.cmp(this.curve.c) === 0);\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n // A = X1^2\n var a = this.x.redSqr(); // B = Y1^2\n\n var b = this.y.redSqr(); // C = 2 * Z1^2\n\n var c = this.z.redSqr();\n c = c.redIAdd(c); // D = a * A\n\n var d = this.curve._mulA(a); // E = (X1 + Y1)^2 - A - B\n\n\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b); // G = D + B\n\n var g = d.redAdd(b); // F = G - C\n\n var f = g.redSub(c); // H = D - B\n\n var h = d.redSub(b); // X3 = E * F\n\n var nx = e.redMul(f); // Y3 = G * H\n\n var ny = g.redMul(h); // T3 = E * H\n\n var nt = e.redMul(h); // Z3 = F * G\n\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr(); // C = X1^2\n\n var c = this.x.redSqr(); // D = Y1^2\n\n var d = this.y.redSqr();\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c); // F = E + D\n\n var f = e.redAdd(d);\n\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two)); // Y3 = F * (E - D)\n\n ny = f.redMul(e.redSub(d)); // Z3 = F^2 - 2 * F\n\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr(); // J = F - 2 * H\n\n j = f.redSub(h).redISub(h); // X3 = (B-C-D)*J\n\n nx = b.redSub(c).redISub(d).redMul(j); // Y3 = F * (E - D)\n\n ny = f.redMul(e.redSub(d)); // Z3 = F * J\n\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d); // H = (c * Z1)^2\n\n h = this.curve._mulC(this.z).redSqr(); // J = E - 2 * H\n\n j = e.redSub(h).redSub(h); // X3 = c * (B - E) * J\n\n nx = this.curve._mulC(b.redISub(e)).redMul(j); // Y3 = c * E * (C - D)\n\n ny = this.curve._mulC(e).redMul(c.redISub(d)); // Z3 = E * J\n\n nz = e.redMul(j);\n }\n\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity()) return this; // Double in extended coordinates\n\n if (this.curve.extended) return this._extDbl();else return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x)); // B = (Y1 + X1) * (Y2 + X2)\n\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)); // C = T1 * k * T2\n\n var c = this.t.redMul(this.curve.dd).redMul(p.t); // D = Z1 * 2 * Z2\n\n var d = this.z.redMul(p.z.redAdd(p.z)); // E = B - A\n\n var e = b.redSub(a); // F = D - C\n\n var f = d.redSub(c); // G = D + C\n\n var g = d.redAdd(c); // H = B + A\n\n var h = b.redAdd(a); // X3 = E * F\n\n var nx = e.redMul(f); // Y3 = G * H\n\n var ny = g.redMul(h); // T3 = E * H\n\n var nt = e.redMul(h); // Z3 = F * G\n\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n // A = Z1 * Z2\n var a = this.z.redMul(p.z); // B = A^2\n\n var b = a.redSqr(); // C = X1 * X2\n\n var c = this.x.redMul(p.x); // D = Y1 * Y2\n\n var d = this.y.redMul(p.y); // E = d * C * D\n\n var e = this.curve.d.redMul(c).redMul(d); // F = B - E\n\n var f = b.redSub(e); // G = B + E\n\n var g = b.redAdd(e); // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c))); // Z3 = F * G\n\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c)); // Z3 = c * F * G\n\n nz = this.curve._mulC(f).redMul(g);\n }\n\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity()) return p;\n if (p.isInfinity()) return this;\n if (this.curve.extended) return this._extAdd(p);else return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k)) return this.curve._fixedNafMul(this, k);else return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [this, p], [k1, k2], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [this, p], [k1, k2], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne) return this; // Normalize coordinates\n\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t) this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(), this.y, this.z, this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other || this.getX().cmp(other.getX()) === 0 && this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0) return true;\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0) return false;\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0) return true;\n }\n}; // Compatibility with BaseCurve\n\n\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/elliptic/lib/elliptic/curve/edwards.js?"); | ||
| 1537 | + | ||
| 1538 | +/***/ }), | ||
| 1539 | + | ||
| 1540 | +/***/ "./node_modules/elliptic/lib/elliptic/curve/index.js": | ||
| 1541 | +/*!***********************************************************!*\ | ||
| 1542 | + !*** ./node_modules/elliptic/lib/elliptic/curve/index.js ***! | ||
| 1543 | + \***********************************************************/ | ||
| 1544 | +/*! no static exports found */ | ||
| 1545 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1546 | + | ||
| 1547 | +"use strict"; | ||
| 1548 | +eval("\n\nvar curve = exports;\ncurve.base = __webpack_require__(/*! ./base */ \"./node_modules/elliptic/lib/elliptic/curve/base.js\");\ncurve.short = __webpack_require__(/*! ./short */ \"./node_modules/elliptic/lib/elliptic/curve/short.js\");\ncurve.mont = __webpack_require__(/*! ./mont */ \"./node_modules/elliptic/lib/elliptic/curve/mont.js\");\ncurve.edwards = __webpack_require__(/*! ./edwards */ \"./node_modules/elliptic/lib/elliptic/curve/edwards.js\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/elliptic/lib/elliptic/curve/index.js?"); | ||
| 1549 | + | ||
| 1550 | +/***/ }), | ||
| 1551 | + | ||
| 1552 | +/***/ "./node_modules/elliptic/lib/elliptic/curve/mont.js": | ||
| 1553 | +/*!**********************************************************!*\ | ||
| 1554 | + !*** ./node_modules/elliptic/lib/elliptic/curve/mont.js ***! | ||
| 1555 | + \**********************************************************/ | ||
| 1556 | +/*! no static exports found */ | ||
| 1557 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1558 | + | ||
| 1559 | +"use strict"; | ||
| 1560 | +eval("\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Base = __webpack_require__(/*! ./base */ \"./node_modules/elliptic/lib/elliptic/curve/base.js\");\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\n\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red) this.x = this.x.toRed(this.curve.red);\n if (!this.z.red) this.z = this.z.toRed(this.curve.red);\n }\n}\n\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {// No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity()) return '<EC Point Infinity>';\n return '<EC Point x: ' + this.x.fromRed().toString(16, 2) + ' z: ' + this.z.fromRed().toString(16, 2) + '>';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n // A = X1 + Z1\n var a = this.x.redAdd(this.z); // AA = A^2\n\n var aa = a.redSqr(); // B = X1 - Z1\n\n var b = this.x.redSub(this.z); // BB = B^2\n\n var bb = b.redSqr(); // C = AA - BB\n\n var c = aa.redSub(bb); // X3 = AA * BB\n\n var nx = aa.redMul(bb); // Z3 = C * (BB + A24 * C)\n\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n // A = X2 + Z2\n var a = this.x.redAdd(this.z); // B = X2 - Z2\n\n var b = this.x.redSub(this.z); // C = X3 + Z3\n\n var c = p.x.redAdd(p.z); // D = X3 - Z3\n\n var d = p.x.redSub(p.z); // DA = D * A\n\n var da = d.redMul(a); // CB = C * B\n\n var cb = c.redMul(b); // X5 = Z1 * (DA + CB)^2\n\n var nx = diff.z.redMul(da.redAdd(cb).redSqr()); // Z5 = X1 * (DA - CB)^2\n\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n\n var b = this.curve.point(null, null); // (N / 2) * Q\n\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1)) {\n bits.push(t.andln(1));\n }\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c); // N * Q = 2 * ((N / 2) * Q + Q))\n\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c); // N * Q + Q = 2 * ((N / 2) * Q + Q)\n\n a = a.dbl();\n }\n }\n\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n return this.x.fromRed();\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/elliptic/lib/elliptic/curve/mont.js?"); | ||
| 1561 | + | ||
| 1562 | +/***/ }), | ||
| 1563 | + | ||
| 1564 | +/***/ "./node_modules/elliptic/lib/elliptic/curve/short.js": | ||
| 1565 | +/*!***********************************************************!*\ | ||
| 1566 | + !*** ./node_modules/elliptic/lib/elliptic/curve/short.js ***! | ||
| 1567 | + \***********************************************************/ | ||
| 1568 | +/*! no static exports found */ | ||
| 1569 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1570 | + | ||
| 1571 | +"use strict"; | ||
| 1572 | +eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Base = __webpack_require__(/*! ./base */ \"./node_modules/elliptic/lib/elliptic/curve/base.js\");\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0; // If the curve is endomorphic, precalculate beta and lambda\n\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\n\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1) return; // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n\n var beta;\n var lambda;\n\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p); // Choose the smallest beta\n\n\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n } // Get basis vectors, used for balanced length-two representation\n\n\n var basis;\n\n if (conf.basis) {\n basis = conf.basis.map(function (vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16)\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [l1, l2];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2)); // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1); // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n\n var a0;\n var b0; // First vector\n\n var a1;\n var b1; // Second vector\n\n var a2;\n var b2;\n var prevR;\n var i = 0;\n var r;\n var x;\n\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n\n prevR = r;\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n\n a2 = r.neg();\n b2 = x;\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n } // Normalize signs\n\n\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [{\n a: a1,\n b: b1\n }, {\n a: a2,\n b: b2\n }];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b); // Calculate answer\n\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return {\n k1: k1,\n k2: k2\n };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red) x = x.toRed(this.red);\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error('invalid point'); // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd) y = y.redNeg();\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf) return true;\n var x = point.x;\n var y = point.y;\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd = function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n\n var p = points[i];\n\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult); // Clean-up references to points and coefficients\n\n\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n\n return res;\n};\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16); // Force redgomery representation when loading from JSON\n\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n\n if (!this.x.red) this.x = this.x.toRed(this.curve.red);\n if (!this.y.red) this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\n\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo) return;\n var pre = this.precomputed;\n if (pre && pre.beta) return pre.beta;\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n\n if (pre) {\n var curve = this.curve;\n\n var endoMul = function endoMul(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul)\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul)\n }\n };\n }\n\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed) return [this.x, this.y];\n return [this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1)\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1)\n }\n }];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string') obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2]) return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [res].concat(pre.doubles.points.map(obj2point))\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [res].concat(pre.naf.points.map(obj2point))\n }\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity()) return '<EC Point Infinity>';\n return '<EC Point x: ' + this.x.fromRed().toString(16, 2) + ' y: ' + this.y.fromRed().toString(16, 2) + '>';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf) return p; // P + O = P\n\n if (p.inf) return this; // P + P = 2P\n\n if (this.eq(p)) return this.dbl(); // P + (-P) = O\n\n if (this.neg().eq(p)) return this.curve.point(null, null); // P + Q = O\n\n if (this.x.cmp(p.x) === 0) return this.curve.point(null, null);\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0) c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf) return this; // 2P = O\n\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0) return this.curve.point(null, null);\n var a = this.curve.a;\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity()) return this;else if (this._hasDoubles(k)) return this.curve._fixedNafMul(this, k);else if (this.curve.endo) return this.curve._endoWnafMulAdd([this], [k]);else return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [this, p2];\n var coeffs = [k1, k2];\n if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs);else return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [this, p2];\n var coeffs = [k1, k2];\n if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs, true);else return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p || this.inf === p.inf && (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf) return this;\n var res = this.curve.point(this.x, this.y.redNeg());\n\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n\n var negate = function negate(p) {\n return p.neg();\n };\n\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate)\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate)\n }\n };\n }\n\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf) return this.curve.jpoint(null, null, null);\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n\n if (!this.x.red) this.x = this.x.toRed(this.curve.red);\n if (!this.y.red) this.y = this.y.toRed(this.curve.red);\n if (!this.z.red) this.z = this.z.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n}\n\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity()) return this.curve.point(null, null);\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity()) return p; // P + O = P\n\n if (p.isInfinity()) return this; // 12M + 4S + 7A\n\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null);else return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity()) return p.toJ(); // P + O = P\n\n if (p.isInfinity()) return this; // 8M + 3S + 7A\n\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null);else return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0) return this;\n if (this.isInfinity()) return this;\n if (!pow) return this.dbl();\n var i;\n\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n\n for (i = 0; i < pow; i++) {\n r = r.dbl();\n }\n\n return r;\n } // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n\n\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr(); // Reuse results\n\n var jyd = jy.redAdd(jy);\n\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow) jz4 = jz4.redMul(jyd4);\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity()) return this;\n if (this.curve.zeroA) return this._zeroDbl();else if (this.curve.threeA) return this._threeDbl();else return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz; // Z = 1\n\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n // XX = X1^2\n var xx = this.x.redSqr(); // YY = Y1^2\n\n var yy = this.y.redSqr(); // YYYY = YY^2\n\n var yyyy = yy.redSqr(); // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s); // M = 3 * XX + a; a = 0\n\n var m = xx.redAdd(xx).redIAdd(xx); // T = M ^ 2 - 2*S\n\n var t = m.redSqr().redISub(s).redISub(s); // 8 * YYYY\n\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8); // X3 = T\n\n nx = t; // Y3 = M * (S - T) - 8 * YYYY\n\n ny = m.redMul(s.redISub(t)).redISub(yyyy8); // Z3 = 2*Y1\n\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n // A = X1^2\n var a = this.x.redSqr(); // B = Y1^2\n\n var b = this.y.redSqr(); // C = B^2\n\n var c = b.redSqr(); // D = 2 * ((X1 + B)^2 - A - C)\n\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d); // E = 3 * A\n\n var e = a.redAdd(a).redIAdd(a); // F = E^2\n\n var f = e.redSqr(); // 8 * C\n\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8); // X3 = F - 2 * D\n\n nx = f.redISub(d).redISub(d); // Y3 = E * (D - X3) - 8 * C\n\n ny = e.redMul(d.redISub(nx)).redISub(c8); // Z3 = 2 * Y1 * Z1\n\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz; // Z = 1\n\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n // XX = X1^2\n var xx = this.x.redSqr(); // YY = Y1^2\n\n var yy = this.y.redSqr(); // YYYY = YY^2\n\n var yyyy = yy.redSqr(); // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s); // M = 3 * XX + a\n\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a); // T = M^2 - 2 * S\n\n var t = m.redSqr().redISub(s).redISub(s); // X3 = T\n\n nx = t; // Y3 = M * (S - T) - 8 * YYYY\n\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8); // Z3 = 2 * Y1\n\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n // delta = Z1^2\n var delta = this.z.redSqr(); // gamma = Y1^2\n\n var gamma = this.y.redSqr(); // beta = X1 * gamma\n\n var beta = this.x.redMul(gamma); // alpha = 3 * (X1 - delta) * (X1 + delta)\n\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha); // X3 = alpha^2 - 8 * beta\n\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8); // Z3 = (Y1 + Z1)^2 - gamma - delta\n\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta); // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a; // 4M + 6S + 10A\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA) return this.dbl().add(this); // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n // XX = X1^2\n\n var xx = this.x.redSqr(); // YY = Y1^2\n\n var yy = this.y.redSqr(); // ZZ = Z1^2\n\n var zz = this.z.redSqr(); // YYYY = YY^2\n\n var yyyy = yy.redSqr(); // M = 3 * XX + a * ZZ2; a = 0\n\n var m = xx.redAdd(xx).redIAdd(xx); // MM = M^2\n\n var mm = m.redSqr(); // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm); // EE = E^2\n\n var ee = e.redSqr(); // T = 16*YYYY\n\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t); // U = (M + E)^2 - MM - EE - T\n\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t); // X3 = 4 * (X1 * EE - 4 * YY * U)\n\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx); // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny); // Z3 = (Z1 + E)^2 - ZZ - EE\n\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine') return this.eq(p.toJ());\n if (this === p) return true; // x1 * z2^2 == x2 * z1^2\n\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0) return false; // y1 * z2^3 == y2 * z1^3\n\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0) return true;\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0) return false;\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0) return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity()) return '<EC JPoint Infinity>';\n return '<EC JPoint x: ' + this.x.toString(16, 2) + ' y: ' + this.y.toString(16, 2) + ' z: ' + this.z.toString(16, 2) + '>';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/elliptic/lib/elliptic/curve/short.js?"); | ||
| 1573 | + | ||
| 1574 | +/***/ }), | ||
| 1575 | + | ||
| 1576 | +/***/ "./node_modules/elliptic/lib/elliptic/curves.js": | ||
| 1577 | +/*!******************************************************!*\ | ||
| 1578 | + !*** ./node_modules/elliptic/lib/elliptic/curves.js ***! | ||
| 1579 | + \******************************************************/ | ||
| 1580 | +/*! no static exports found */ | ||
| 1581 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1582 | + | ||
| 1583 | +"use strict"; | ||
| 1584 | +eval("\n\nvar curves = exports;\n\nvar hash = __webpack_require__(/*! hash.js */ \"./node_modules/hash.js/lib/hash.js\");\n\nvar curve = __webpack_require__(/*! ./curve */ \"./node_modules/elliptic/lib/elliptic/curve/index.js\");\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short') this.curve = new curve.short(options);else if (options.type === 'edwards') this.curve = new curve.edwards(options);else this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\n\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function get() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve\n });\n return curve;\n }\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: ['188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012', '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811']\n});\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: ['b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21', 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34']\n});\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: ['6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296', '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5']\n});\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' + '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' + 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: ['aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' + '5502f25d bf55296c 3a545e38 72760ab7', '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' + '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f']\n});\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' + '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' + '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' + 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: ['000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' + '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' + 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66', '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' + '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' + '3fad0761 353c7086 a272c240 88be9476 9fd16650']\n});\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: ['9']\n});\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: ['216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a', // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658']\n});\nvar pre;\n\ntry {\n pre = __webpack_require__(/*! ./precomputed/secp256k1 */ \"./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js\");\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [{\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3'\n }, {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15'\n }],\n gRed: false,\n g: ['79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798', '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8', pre]\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/elliptic/lib/elliptic/curves.js?"); | ||
| 1585 | + | ||
| 1586 | +/***/ }), | ||
| 1587 | + | ||
| 1588 | +/***/ "./node_modules/elliptic/lib/elliptic/ec/index.js": | ||
| 1589 | +/*!********************************************************!*\ | ||
| 1590 | + !*** ./node_modules/elliptic/lib/elliptic/ec/index.js ***! | ||
| 1591 | + \********************************************************/ | ||
| 1592 | +/*! no static exports found */ | ||
| 1593 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1594 | + | ||
| 1595 | +"use strict"; | ||
| 1596 | +eval("\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\n\nvar HmacDRBG = __webpack_require__(/*! hmac-drbg */ \"./node_modules/hmac-drbg/lib/hmac-drbg.js\");\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar curves = __webpack_require__(/*! ../curves */ \"./node_modules/elliptic/lib/elliptic/curves.js\");\n\nvar rand = __webpack_require__(/*! brorand */ \"./node_modules/brorand/index.js\");\n\nvar assert = utils.assert;\n\nvar KeyPair = __webpack_require__(/*! ./key */ \"./node_modules/elliptic/lib/elliptic/ec/key.js\");\n\nvar Signature = __webpack_require__(/*! ./signature */ \"./node_modules/elliptic/lib/elliptic/ec/signature.js\");\n\nfunction EC(options) {\n if (!(this instanceof EC)) return new EC(options); // Shortcut `elliptic.ec(curve-name)`\n\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options), 'Unknown curve ' + options);\n options = curves[options];\n } // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n\n\n if (options instanceof curves.PresetCurve) options = {\n curve: options\n };\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g; // Point on curve\n\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1); // Hash for function for DRBG\n\n this.hash = options.hash || options.curve.hash;\n}\n\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options) options = {}; // Instantiate Hmac_DRBG\n\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray()\n });\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0) continue;\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0) msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0) return msg.sub(this.n);else return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n\n if (!options) options = {};\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16)); // Zero-extend key to provide enough entropy\n\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes); // Zero-extend nonce to have the same byte size as N\n\n var nonce = msg.toArray('be', bytes); // Instantiate Hmac_DRBG\n\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8'\n }); // Number of bytes to generate\n\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0;; iter++) {\n var k = options.k ? options.k(iter) : new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0) continue;\n var kp = this.g.mul(k);\n if (kp.isInfinity()) continue;\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0) continue;\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0) continue;\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) | (kpX.cmp(r) !== 0 ? 2 : 0); // Use complement of `s`, if it is > `n / 2`\n\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({\n r: r,\n s: s,\n recoveryParam: recoveryParam\n });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex'); // Perform primitive values validation\n\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0) return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0) return false; // Validate signature\n\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity()) return false;\n return p.getX().umod(this.n).cmp(r) === 0;\n } // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity()) return false; // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function (msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s; // A set LSB signifies that the y-coordinate is odd\n\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey) throw new Error('Unable to find sencond key candinate'); // 1.1. Let x = r + jn.\n\n if (isSecondKey) r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);else r = this.curve.pointFromX(r, isYOdd);\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n); // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function (e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null) return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q)) return i;\n }\n\n throw new Error('Unable to find valid recovery factor');\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/elliptic/lib/elliptic/ec/index.js?"); | ||
| 1597 | + | ||
| 1598 | +/***/ }), | ||
| 1599 | + | ||
| 1600 | +/***/ "./node_modules/elliptic/lib/elliptic/ec/key.js": | ||
| 1601 | +/*!******************************************************!*\ | ||
| 1602 | + !*** ./node_modules/elliptic/lib/elliptic/ec/key.js ***! | ||
| 1603 | + \******************************************************/ | ||
| 1604 | +/*! no static exports found */ | ||
| 1605 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1606 | + | ||
| 1607 | +"use strict"; | ||
| 1608 | +eval("\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null; // KeyPair(ec, { priv: ..., pub: ... })\n\n if (options.priv) this._importPrivate(options.priv, options.privEnc);\n if (options.pub) this._importPublic(options.pub, options.pubEnc);\n}\n\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair) return pub;\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair) return priv;\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n if (pub.isInfinity()) return {\n result: false,\n reason: 'Invalid public key'\n };\n if (!pub.validate()) return {\n result: false,\n reason: 'Public key is not a point'\n };\n if (!pub.mul(this.ec.curve.n).isInfinity()) return {\n result: false,\n reason: 'Public key * N != O'\n };\n return {\n result: true,\n reason: null\n };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub) this.pub = this.ec.g.mul(this.priv);\n if (!enc) return this.pub;\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex') return this.priv.toString(16, 2);else return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16); // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' || this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n\n this.pub = this.ec.curve.decodePoint(key, enc);\n}; // ECDH\n\n\nKeyPair.prototype.derive = function derive(pub) {\n if (!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n\n return pub.mul(this.priv).getX();\n}; // ECDSA\n\n\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '<Key priv: ' + (this.priv && this.priv.toString(16, 2)) + ' pub: ' + (this.pub && this.pub.inspect()) + ' >';\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/elliptic/lib/elliptic/ec/key.js?"); | ||
| 1609 | + | ||
| 1610 | +/***/ }), | ||
| 1611 | + | ||
| 1612 | +/***/ "./node_modules/elliptic/lib/elliptic/ec/signature.js": | ||
| 1613 | +/*!************************************************************!*\ | ||
| 1614 | + !*** ./node_modules/elliptic/lib/elliptic/ec/signature.js ***! | ||
| 1615 | + \************************************************************/ | ||
| 1616 | +/*! no static exports found */ | ||
| 1617 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1618 | + | ||
| 1619 | +"use strict"; | ||
| 1620 | +eval("\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature) return options;\n if (this._importDER(options, enc)) return;\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined) this.recoveryParam = null;else this.recoveryParam = options.recoveryParam;\n}\n\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n\n if (!(initial & 0x80)) {\n return initial;\n }\n\n var octetLen = initial & 0xf; // Indefinite length or overflow\n\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n } // Leading zeroes\n\n\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n\n if (i === 0) {\n return buf;\n }\n\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n\n if (data[p.place++] !== 0x30) {\n return false;\n }\n\n var len = getLength(data, p);\n\n if (len === false) {\n return false;\n }\n\n if (len + p.place !== data.length) {\n return false;\n }\n\n if (data[p.place++] !== 0x02) {\n return false;\n }\n\n var rlen = getLength(data, p);\n\n if (rlen === false) {\n return false;\n }\n\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n\n if (data[p.place++] !== 0x02) {\n return false;\n }\n\n var slen = getLength(data, p);\n\n if (slen === false) {\n return false;\n }\n\n if (data.length !== slen + p.place) {\n return false;\n }\n\n var s = data.slice(p.place, slen + p.place);\n\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n\n while (--octets) {\n arr.push(len >>> (octets << 3) & 0xff);\n }\n\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray(); // Pad values\n\n if (r[0] & 0x80) r = [0].concat(r); // Pad values\n\n if (s[0] & 0x80) s = [0].concat(s);\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n\n var arr = [0x02];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [0x30];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/elliptic/lib/elliptic/ec/signature.js?"); | ||
| 1621 | + | ||
| 1622 | +/***/ }), | ||
| 1623 | + | ||
| 1624 | +/***/ "./node_modules/elliptic/lib/elliptic/eddsa/index.js": | ||
| 1625 | +/*!***********************************************************!*\ | ||
| 1626 | + !*** ./node_modules/elliptic/lib/elliptic/eddsa/index.js ***! | ||
| 1627 | + \***********************************************************/ | ||
| 1628 | +/*! no static exports found */ | ||
| 1629 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1630 | + | ||
| 1631 | +"use strict"; | ||
| 1632 | +eval("\n\nvar hash = __webpack_require__(/*! hash.js */ \"./node_modules/hash.js/lib/hash.js\");\n\nvar curves = __webpack_require__(/*! ../curves */ \"./node_modules/elliptic/lib/elliptic/curves.js\");\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\n\nvar KeyPair = __webpack_require__(/*! ./key */ \"./node_modules/elliptic/lib/elliptic/eddsa/key.js\");\n\nvar Signature = __webpack_require__(/*! ./signature */ \"./node_modules/elliptic/lib/elliptic/eddsa/signature.js\");\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n if (!(this instanceof EDDSA)) return new EDDSA(curve);\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\n\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message).mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({\n R: R,\n S: S,\n Rencoded: Rencoded\n });\n};\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\n\n\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n\n for (var i = 0; i < arguments.length; i++) {\n hash.update(arguments[i]);\n }\n\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature) return sig;\n return new Signature(this, sig);\n};\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\n\n\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/elliptic/lib/elliptic/eddsa/index.js?"); | ||
| 1633 | + | ||
| 1634 | +/***/ }), | ||
| 1635 | + | ||
| 1636 | +/***/ "./node_modules/elliptic/lib/elliptic/eddsa/key.js": | ||
| 1637 | +/*!*********************************************************!*\ | ||
| 1638 | + !*** ./node_modules/elliptic/lib/elliptic/eddsa/key.js ***! | ||
| 1639 | + \*********************************************************/ | ||
| 1640 | +/*! no static exports found */ | ||
| 1641 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1642 | + | ||
| 1643 | +"use strict"; | ||
| 1644 | +eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array<Byte>} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array<Byte>} [params.pub] - public key point encoded as bytes\n*\n*/\n\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub)) this._pub = params.pub;else this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair) return pub;\n return new KeyPair(eddsa, {\n pub: pub\n });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair) return secret;\n return new KeyPair(eddsa, {\n secret: secret\n });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes) return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n return a;\n});\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/elliptic/lib/elliptic/eddsa/key.js?"); | ||
| 1645 | + | ||
| 1646 | +/***/ }), | ||
| 1647 | + | ||
| 1648 | +/***/ "./node_modules/elliptic/lib/elliptic/eddsa/signature.js": | ||
| 1649 | +/*!***************************************************************!*\ | ||
| 1650 | + !*** ./node_modules/elliptic/lib/elliptic/eddsa/signature.js ***! | ||
| 1651 | + \***************************************************************/ | ||
| 1652 | +/*! no static exports found */ | ||
| 1653 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1654 | + | ||
| 1655 | +"use strict"; | ||
| 1656 | +eval("\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array<Bytes>|Object} sig -\n* @param {Array<Bytes>|Point} [sig.R] - R point as Point or bytes\n* @param {Array<Bytes>|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array<Bytes>} [sig.Rencoded] - R point encoded\n* @param {Array<Bytes>} [sig.Sencoded] - S scalar encoded\n*/\n\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n if (typeof sig !== 'object') sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength)\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n if (eddsa.isPoint(sig.R)) this._R = sig.R;\n if (sig.S instanceof BN) this._S = sig.S;\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/elliptic/lib/elliptic/eddsa/signature.js?"); | ||
| 1657 | + | ||
| 1658 | +/***/ }), | ||
| 1659 | + | ||
| 1660 | +/***/ "./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js": | ||
| 1661 | +/*!*********************************************************************!*\ | ||
| 1662 | + !*** ./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js ***! | ||
| 1663 | + \*********************************************************************/ | ||
| 1664 | +/*! no static exports found */ | ||
| 1665 | +/***/ (function(module, exports) { | ||
| 1666 | + | ||
| 1667 | +eval("module.exports = {\n doubles: {\n step: 4,\n points: [['e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a', 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'], ['8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508', '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'], ['175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739', 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'], ['363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640', '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'], ['8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c', '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'], ['723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda', '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'], ['eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa', '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'], ['100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0', 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'], ['e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d', '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'], ['feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d', 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'], ['da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1', '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'], ['53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0', '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'], ['8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047', '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'], ['385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862', '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'], ['6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7', '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'], ['3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd', '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'], ['85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83', '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'], ['948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a', '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'], ['6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8', 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'], ['e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d', '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'], ['e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725', '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'], ['213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754', '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'], ['4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c', '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'], ['fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6', '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'], ['76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39', 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'], ['c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891', '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'], ['d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b', 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'], ['b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03', '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'], ['e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d', 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'], ['a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070', '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'], ['90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4', 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'], ['8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da', '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'], ['e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11', '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'], ['8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e', 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'], ['e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41', '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'], ['b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef', '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'], ['d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8', 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'], ['324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d', '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'], ['4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96', '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'], ['9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd', 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'], ['6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5', '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'], ['a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266', '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'], ['7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71', '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'], ['928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac', 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'], ['85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751', '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'], ['ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e', '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'], ['827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241', 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'], ['eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3', 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'], ['e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f', '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'], ['1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19', 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'], ['146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be', 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'], ['fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9', '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'], ['da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2', '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'], ['a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13', '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'], ['174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c', 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'], ['959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba', '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'], ['d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151', 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'], ['64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073', 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'], ['8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458', '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'], ['13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b', '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'], ['bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366', 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'], ['8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa', '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'], ['8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0', '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'], ['dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787', '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'], ['f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e', 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82']]\n },\n naf: {\n wnd: 7,\n points: [['f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9', '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'], ['2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4', 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'], ['5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc', '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'], ['acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe', 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'], ['774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb', 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'], ['f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8', 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'], ['d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e', '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'], ['defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34', '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'], ['2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c', '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'], ['352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5', '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'], ['2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f', '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'], ['9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714', '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'], ['daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729', 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'], ['c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db', '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'], ['6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4', 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'], ['1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5', 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'], ['605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479', '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'], ['62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d', '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'], ['80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f', '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'], ['7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb', 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'], ['d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9', 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'], ['49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963', '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'], ['77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74', '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'], ['f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530', 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'], ['463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b', '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'], ['f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247', 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'], ['caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1', 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'], ['2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120', '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'], ['7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435', '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'], ['754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18', '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'], ['e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8', '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'], ['186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb', '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'], ['df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f', '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'], ['5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143', 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'], ['290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba', 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'], ['af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45', 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'], ['766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a', '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'], ['59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e', 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'], ['f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8', 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'], ['7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c', '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'], ['948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519', 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'], ['7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab', '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'], ['3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca', 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'], ['d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf', '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'], ['1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610', '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'], ['733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4', 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'], ['15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c', 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'], ['a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940', 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'], ['e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980', 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'], ['311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3', '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'], ['34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf', '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'], ['f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63', '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'], ['d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448', 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'], ['32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf', '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'], ['7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5', '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'], ['ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6', '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'], ['16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5', '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'], ['eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99', 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'], ['78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51', 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'], ['494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5', '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'], ['a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5', '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'], ['c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997', '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'], ['841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881', '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'], ['5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5', '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'], ['36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66', 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'], ['336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726', 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'], ['8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede', '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'], ['1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94', '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'], ['85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31', '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'], ['29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51', 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'], ['a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252', 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'], ['4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5', 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'], ['d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b', '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'], ['ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4', '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'], ['af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f', '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'], ['e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889', '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'], ['591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246', 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'], ['11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984', '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'], ['3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a', 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'], ['cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030', 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'], ['c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197', '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'], ['c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593', 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'], ['a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef', '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'], ['347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38', '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'], ['da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a', '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'], ['c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111', '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'], ['4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502', '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'], ['3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea', 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'], ['cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26', '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'], ['b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986', '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'], ['d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e', '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'], ['48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4', '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'], ['dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda', 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'], ['6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859', 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'], ['e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f', 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'], ['eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c', '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'], ['13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942', 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'], ['ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a', '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'], ['b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80', '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'], ['ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d', '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'], ['8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1', 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'], ['52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63', 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'], ['e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352', '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'], ['7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193', 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'], ['5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00', '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'], ['32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58', 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'], ['e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7', 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'], ['8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8', 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'], ['4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e', '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'], ['3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d', 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'], ['674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b', '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'], ['d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f', 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'], ['30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6', '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'], ['be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297', '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'], ['93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a', '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'], ['b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c', 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'], ['d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52', '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'], ['d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb', 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'], ['463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065', 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'], ['7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917', '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'], ['74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9', 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'], ['30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3', '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'], ['9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57', '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'], ['176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66', 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'], ['75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8', '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'], ['809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721', '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'], ['1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180', '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9']]\n }\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js?"); | ||
| 1668 | + | ||
| 1669 | +/***/ }), | ||
| 1670 | + | ||
| 1671 | +/***/ "./node_modules/elliptic/lib/elliptic/utils.js": | ||
| 1672 | +/*!*****************************************************!*\ | ||
| 1673 | + !*** ./node_modules/elliptic/lib/elliptic/utils.js ***! | ||
| 1674 | + \*****************************************************/ | ||
| 1675 | +/*! no static exports found */ | ||
| 1676 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1677 | + | ||
| 1678 | +"use strict"; | ||
| 1679 | +eval("\n\nvar utils = exports;\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\n\nvar minAssert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nvar minUtils = __webpack_require__(/*! minimalistic-crypto-utils */ \"./node_modules/minimalistic-crypto-utils/lib/utils.js\");\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode; // Represent num in a w-NAF form\n\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n var ws = 1 << w + 1;\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1) z = (ws >> 1) - mod;else z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\n\nutils.getNAF = getNAF; // Represent k1, k2 in a Joint Sparse Form\n\nfunction getJSF(k1, k2) {\n var jsf = [[], []];\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = k1.andln(3) + d1 & 3;\n var m24 = k2.andln(3) + d2 & 3;\n if (m14 === 3) m14 = -1;\n if (m24 === 3) m24 = -1;\n var u1;\n\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = k1.andln(7) + d1 & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2) u1 = -m14;else u1 = m14;\n }\n\n jsf[0].push(u1);\n var u2;\n\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = k2.andln(7) + d2 & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2) u2 = -m24;else u2 = m24;\n }\n\n jsf[1].push(u2); // Second phase\n\n if (2 * d1 === u1 + 1) d1 = 1 - d1;\n if (2 * d2 === u2 + 1) d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\n\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] : this[key] = computer.call(this);\n };\n}\n\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') : bytes;\n}\n\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\n\nutils.intFromLE = intFromLE;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/elliptic/lib/elliptic/utils.js?"); | ||
| 1680 | + | ||
| 1681 | +/***/ }), | ||
| 1682 | + | ||
| 1683 | +/***/ "./node_modules/elliptic/node_modules/bn.js/lib/bn.js": | ||
| 1684 | +/*!************************************************************!*\ | ||
| 1685 | + !*** ./node_modules/elliptic/node_modules/bn.js/lib/bn.js ***! | ||
| 1686 | + \************************************************************/ | ||
| 1687 | +/*! no static exports found */ | ||
| 1688 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1689 | + | ||
| 1690 | +eval("/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {\n 'use strict'; // Utils\n\n function assert(val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n } // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n\n\n function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n } // BN\n\n\n function BN(number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0; // Reduction context\n\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n var Buffer;\n\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = __webpack_require__(/*! buffer */ 10).Buffer;\n }\n } catch (e) {}\n\n BN.isBN = function isBN(num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max(left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min(left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init(number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n\n assert(base === (base | 0) && base >= 2 && base <= 36);\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber(number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n this.length = 3;\n }\n\n if (endian !== 'le') return; // Reverse the bytes\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray(number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;\n this.words[j] |= w << off & 0x3ffffff;\n this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n off += 24;\n\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;\n this.words[j] |= w << off & 0x3ffffff;\n this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n off += 24;\n\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n\n return this.strip();\n };\n\n function parseHex4Bits(string, index) {\n var c = string.charCodeAt(index); // 'A' - 'F'\n\n if (c >= 65 && c <= 70) {\n return c - 55; // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87; // '0' - '9'\n } else {\n return c - 48 & 0xf;\n }\n }\n\n function parseHexByte(string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex(number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n } // 24-bits chunks\n\n\n var off = 0;\n var j = 0;\n var w;\n\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase(str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n r *= mul; // 'a'\n\n if (c >= 49) {\n r += c - 49 + 0xa; // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa; // '0' - '9'\n } else {\n r += c;\n }\n }\n\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase(number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1; // Find length of limb in base\n\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n\n limbLen--;\n limbPow = limbPow / base | 0;\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n var word = 0;\n\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n this.imuln(limbPow);\n\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy(dest) {\n dest.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone() {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand(size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n\n return this;\n }; // Remove leading `0` from `this`\n\n\n BN.prototype.strip = function strip() {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign() {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n\n return this;\n };\n\n BN.prototype.inspect = function inspect() {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n };\n /*\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n */\n\n\n var zeros = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n BN.prototype.toString = function toString(base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n var out;\n\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = ((w << off | carry) & 0xffffff).toString(16);\n carry = w >>> 24 - off & 0xffffff;\n\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n\n off += 2;\n\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\n\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base]; // var groupBase = Math.pow(base, groupSize);\n\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n\n if (this.isZero()) {\n out = '0' + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\n\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber() {\n var ret = this.words[0];\n\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + this.words[1] * 0x4000000;\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n\n return this.negative !== 0 ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON() {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer(endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray(endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n var b, i;\n var q = this.clone();\n\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits(w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits(w) {\n var t = w;\n var r = 0;\n\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits(w) {\n // Short-cut\n if (w === 0) return 26;\n var t = w;\n var r = 0;\n\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n\n if ((t & 0x1) === 0) {\n r++;\n }\n\n return r;\n }; // Return number of used bits in a BN\n\n\n BN.prototype.bitLength = function bitLength() {\n var w = this.words[this.length - 1];\n\n var hi = this._countBits(w);\n\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray(num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n w[bit] = (num.words[off] & 1 << wbit) >>> wbit;\n }\n\n return w;\n } // Number of trailing zero bits\n\n\n BN.prototype.zeroBits = function zeroBits() {\n if (this.isZero()) return 0;\n var r = 0;\n\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n\n r += b;\n if (b !== 26) break;\n }\n\n return r;\n };\n\n BN.prototype.byteLength = function byteLength() {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos(width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos(width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg() {\n return this.negative !== 0;\n }; // Return negative clone of `this`\n\n\n BN.prototype.neg = function neg() {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg() {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n }; // Or `num` with `this` in-place\n\n\n BN.prototype.iuor = function iuor(num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n }; // Or `num` with `this`\n\n\n BN.prototype.or = function or(num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor(num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n }; // And `num` with `this` in-place\n\n\n BN.prototype.iuand = function iuand(num) {\n // b = min-length(num, this)\n var b;\n\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n return this.strip();\n };\n\n BN.prototype.iand = function iand(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n }; // And `num` with `this`\n\n\n BN.prototype.and = function and(num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand(num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n }; // Xor `num` with `this` in-place\n\n\n BN.prototype.iuxor = function iuxor(num) {\n // a.length > b.length\n var a;\n var b;\n\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n }; // Xor `num` with `this`\n\n\n BN.prototype.xor = function xor(num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor(num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n }; // Not ``this`` with ``width`` bitwidth\n\n\n BN.prototype.inotn = function inotn(width) {\n assert(typeof width === 'number' && width >= 0);\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n } // Handle complete words\n\n\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n } // Handle the residue\n\n\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n } // And remove leading zeroes\n\n\n return this.strip();\n };\n\n BN.prototype.notn = function notn(width) {\n return this.clone().inotn(width);\n }; // Set `bit` of `this`\n\n\n BN.prototype.setn = function setn(bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | 1 << wbit;\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n }; // Add `num` to `this` in-place\n\n\n BN.prototype.iadd = function iadd(num) {\n var r; // negative + positive\n\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign(); // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n } // a.length > b.length\n\n\n var a, b;\n\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++; // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n }; // Add `num` to `this`\n\n\n BN.prototype.add = function add(num) {\n var res;\n\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n return num.clone().iadd(this);\n }; // Subtract `num` from `this` in-place\n\n\n BN.prototype.isub = function isub(num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign(); // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n } // At this point both numbers are positive\n\n\n var cmp = this.cmp(num); // Optimization - zeroify\n\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n } // a > b\n\n\n var a, b;\n\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n } // Copy rest of the words\n\n\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n }; // Subtract `num` from `this`\n\n\n BN.prototype.sub = function sub(num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo(self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = self.length + num.length | 0;\n out.length = len;\n len = len - 1 | 0; // Peel one iteration (compiler can't do it, because of code complexity)\n\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n var lo = r & 0x3ffffff;\n var carry = r / 0x4000000 | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += r / 0x4000000 | 0;\n rword = r & 0x3ffffff;\n }\n\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n } // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n\n\n var comb10MulTo = function comb10MulTo(self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = mid + Math.imul(ah0, bl0) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = mid + Math.imul(ah1, bl0) | 0;\n hi = Math.imul(ah1, bh0);\n lo = lo + Math.imul(al0, bl1) | 0;\n mid = mid + Math.imul(al0, bh1) | 0;\n mid = mid + Math.imul(ah0, bl1) | 0;\n hi = hi + Math.imul(ah0, bh1) | 0;\n var w1 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = mid + Math.imul(ah2, bl0) | 0;\n hi = Math.imul(ah2, bh0);\n lo = lo + Math.imul(al1, bl1) | 0;\n mid = mid + Math.imul(al1, bh1) | 0;\n mid = mid + Math.imul(ah1, bl1) | 0;\n hi = hi + Math.imul(ah1, bh1) | 0;\n lo = lo + Math.imul(al0, bl2) | 0;\n mid = mid + Math.imul(al0, bh2) | 0;\n mid = mid + Math.imul(ah0, bl2) | 0;\n hi = hi + Math.imul(ah0, bh2) | 0;\n var w2 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = mid + Math.imul(ah3, bl0) | 0;\n hi = Math.imul(ah3, bh0);\n lo = lo + Math.imul(al2, bl1) | 0;\n mid = mid + Math.imul(al2, bh1) | 0;\n mid = mid + Math.imul(ah2, bl1) | 0;\n hi = hi + Math.imul(ah2, bh1) | 0;\n lo = lo + Math.imul(al1, bl2) | 0;\n mid = mid + Math.imul(al1, bh2) | 0;\n mid = mid + Math.imul(ah1, bl2) | 0;\n hi = hi + Math.imul(ah1, bh2) | 0;\n lo = lo + Math.imul(al0, bl3) | 0;\n mid = mid + Math.imul(al0, bh3) | 0;\n mid = mid + Math.imul(ah0, bl3) | 0;\n hi = hi + Math.imul(ah0, bh3) | 0;\n var w3 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = mid + Math.imul(ah4, bl0) | 0;\n hi = Math.imul(ah4, bh0);\n lo = lo + Math.imul(al3, bl1) | 0;\n mid = mid + Math.imul(al3, bh1) | 0;\n mid = mid + Math.imul(ah3, bl1) | 0;\n hi = hi + Math.imul(ah3, bh1) | 0;\n lo = lo + Math.imul(al2, bl2) | 0;\n mid = mid + Math.imul(al2, bh2) | 0;\n mid = mid + Math.imul(ah2, bl2) | 0;\n hi = hi + Math.imul(ah2, bh2) | 0;\n lo = lo + Math.imul(al1, bl3) | 0;\n mid = mid + Math.imul(al1, bh3) | 0;\n mid = mid + Math.imul(ah1, bl3) | 0;\n hi = hi + Math.imul(ah1, bh3) | 0;\n lo = lo + Math.imul(al0, bl4) | 0;\n mid = mid + Math.imul(al0, bh4) | 0;\n mid = mid + Math.imul(ah0, bl4) | 0;\n hi = hi + Math.imul(ah0, bh4) | 0;\n var w4 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = mid + Math.imul(ah5, bl0) | 0;\n hi = Math.imul(ah5, bh0);\n lo = lo + Math.imul(al4, bl1) | 0;\n mid = mid + Math.imul(al4, bh1) | 0;\n mid = mid + Math.imul(ah4, bl1) | 0;\n hi = hi + Math.imul(ah4, bh1) | 0;\n lo = lo + Math.imul(al3, bl2) | 0;\n mid = mid + Math.imul(al3, bh2) | 0;\n mid = mid + Math.imul(ah3, bl2) | 0;\n hi = hi + Math.imul(ah3, bh2) | 0;\n lo = lo + Math.imul(al2, bl3) | 0;\n mid = mid + Math.imul(al2, bh3) | 0;\n mid = mid + Math.imul(ah2, bl3) | 0;\n hi = hi + Math.imul(ah2, bh3) | 0;\n lo = lo + Math.imul(al1, bl4) | 0;\n mid = mid + Math.imul(al1, bh4) | 0;\n mid = mid + Math.imul(ah1, bl4) | 0;\n hi = hi + Math.imul(ah1, bh4) | 0;\n lo = lo + Math.imul(al0, bl5) | 0;\n mid = mid + Math.imul(al0, bh5) | 0;\n mid = mid + Math.imul(ah0, bl5) | 0;\n hi = hi + Math.imul(ah0, bh5) | 0;\n var w5 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = mid + Math.imul(ah6, bl0) | 0;\n hi = Math.imul(ah6, bh0);\n lo = lo + Math.imul(al5, bl1) | 0;\n mid = mid + Math.imul(al5, bh1) | 0;\n mid = mid + Math.imul(ah5, bl1) | 0;\n hi = hi + Math.imul(ah5, bh1) | 0;\n lo = lo + Math.imul(al4, bl2) | 0;\n mid = mid + Math.imul(al4, bh2) | 0;\n mid = mid + Math.imul(ah4, bl2) | 0;\n hi = hi + Math.imul(ah4, bh2) | 0;\n lo = lo + Math.imul(al3, bl3) | 0;\n mid = mid + Math.imul(al3, bh3) | 0;\n mid = mid + Math.imul(ah3, bl3) | 0;\n hi = hi + Math.imul(ah3, bh3) | 0;\n lo = lo + Math.imul(al2, bl4) | 0;\n mid = mid + Math.imul(al2, bh4) | 0;\n mid = mid + Math.imul(ah2, bl4) | 0;\n hi = hi + Math.imul(ah2, bh4) | 0;\n lo = lo + Math.imul(al1, bl5) | 0;\n mid = mid + Math.imul(al1, bh5) | 0;\n mid = mid + Math.imul(ah1, bl5) | 0;\n hi = hi + Math.imul(ah1, bh5) | 0;\n lo = lo + Math.imul(al0, bl6) | 0;\n mid = mid + Math.imul(al0, bh6) | 0;\n mid = mid + Math.imul(ah0, bl6) | 0;\n hi = hi + Math.imul(ah0, bh6) | 0;\n var w6 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = mid + Math.imul(ah7, bl0) | 0;\n hi = Math.imul(ah7, bh0);\n lo = lo + Math.imul(al6, bl1) | 0;\n mid = mid + Math.imul(al6, bh1) | 0;\n mid = mid + Math.imul(ah6, bl1) | 0;\n hi = hi + Math.imul(ah6, bh1) | 0;\n lo = lo + Math.imul(al5, bl2) | 0;\n mid = mid + Math.imul(al5, bh2) | 0;\n mid = mid + Math.imul(ah5, bl2) | 0;\n hi = hi + Math.imul(ah5, bh2) | 0;\n lo = lo + Math.imul(al4, bl3) | 0;\n mid = mid + Math.imul(al4, bh3) | 0;\n mid = mid + Math.imul(ah4, bl3) | 0;\n hi = hi + Math.imul(ah4, bh3) | 0;\n lo = lo + Math.imul(al3, bl4) | 0;\n mid = mid + Math.imul(al3, bh4) | 0;\n mid = mid + Math.imul(ah3, bl4) | 0;\n hi = hi + Math.imul(ah3, bh4) | 0;\n lo = lo + Math.imul(al2, bl5) | 0;\n mid = mid + Math.imul(al2, bh5) | 0;\n mid = mid + Math.imul(ah2, bl5) | 0;\n hi = hi + Math.imul(ah2, bh5) | 0;\n lo = lo + Math.imul(al1, bl6) | 0;\n mid = mid + Math.imul(al1, bh6) | 0;\n mid = mid + Math.imul(ah1, bl6) | 0;\n hi = hi + Math.imul(ah1, bh6) | 0;\n lo = lo + Math.imul(al0, bl7) | 0;\n mid = mid + Math.imul(al0, bh7) | 0;\n mid = mid + Math.imul(ah0, bl7) | 0;\n hi = hi + Math.imul(ah0, bh7) | 0;\n var w7 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = mid + Math.imul(ah8, bl0) | 0;\n hi = Math.imul(ah8, bh0);\n lo = lo + Math.imul(al7, bl1) | 0;\n mid = mid + Math.imul(al7, bh1) | 0;\n mid = mid + Math.imul(ah7, bl1) | 0;\n hi = hi + Math.imul(ah7, bh1) | 0;\n lo = lo + Math.imul(al6, bl2) | 0;\n mid = mid + Math.imul(al6, bh2) | 0;\n mid = mid + Math.imul(ah6, bl2) | 0;\n hi = hi + Math.imul(ah6, bh2) | 0;\n lo = lo + Math.imul(al5, bl3) | 0;\n mid = mid + Math.imul(al5, bh3) | 0;\n mid = mid + Math.imul(ah5, bl3) | 0;\n hi = hi + Math.imul(ah5, bh3) | 0;\n lo = lo + Math.imul(al4, bl4) | 0;\n mid = mid + Math.imul(al4, bh4) | 0;\n mid = mid + Math.imul(ah4, bl4) | 0;\n hi = hi + Math.imul(ah4, bh4) | 0;\n lo = lo + Math.imul(al3, bl5) | 0;\n mid = mid + Math.imul(al3, bh5) | 0;\n mid = mid + Math.imul(ah3, bl5) | 0;\n hi = hi + Math.imul(ah3, bh5) | 0;\n lo = lo + Math.imul(al2, bl6) | 0;\n mid = mid + Math.imul(al2, bh6) | 0;\n mid = mid + Math.imul(ah2, bl6) | 0;\n hi = hi + Math.imul(ah2, bh6) | 0;\n lo = lo + Math.imul(al1, bl7) | 0;\n mid = mid + Math.imul(al1, bh7) | 0;\n mid = mid + Math.imul(ah1, bl7) | 0;\n hi = hi + Math.imul(ah1, bh7) | 0;\n lo = lo + Math.imul(al0, bl8) | 0;\n mid = mid + Math.imul(al0, bh8) | 0;\n mid = mid + Math.imul(ah0, bl8) | 0;\n hi = hi + Math.imul(ah0, bh8) | 0;\n var w8 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = mid + Math.imul(ah9, bl0) | 0;\n hi = Math.imul(ah9, bh0);\n lo = lo + Math.imul(al8, bl1) | 0;\n mid = mid + Math.imul(al8, bh1) | 0;\n mid = mid + Math.imul(ah8, bl1) | 0;\n hi = hi + Math.imul(ah8, bh1) | 0;\n lo = lo + Math.imul(al7, bl2) | 0;\n mid = mid + Math.imul(al7, bh2) | 0;\n mid = mid + Math.imul(ah7, bl2) | 0;\n hi = hi + Math.imul(ah7, bh2) | 0;\n lo = lo + Math.imul(al6, bl3) | 0;\n mid = mid + Math.imul(al6, bh3) | 0;\n mid = mid + Math.imul(ah6, bl3) | 0;\n hi = hi + Math.imul(ah6, bh3) | 0;\n lo = lo + Math.imul(al5, bl4) | 0;\n mid = mid + Math.imul(al5, bh4) | 0;\n mid = mid + Math.imul(ah5, bl4) | 0;\n hi = hi + Math.imul(ah5, bh4) | 0;\n lo = lo + Math.imul(al4, bl5) | 0;\n mid = mid + Math.imul(al4, bh5) | 0;\n mid = mid + Math.imul(ah4, bl5) | 0;\n hi = hi + Math.imul(ah4, bh5) | 0;\n lo = lo + Math.imul(al3, bl6) | 0;\n mid = mid + Math.imul(al3, bh6) | 0;\n mid = mid + Math.imul(ah3, bl6) | 0;\n hi = hi + Math.imul(ah3, bh6) | 0;\n lo = lo + Math.imul(al2, bl7) | 0;\n mid = mid + Math.imul(al2, bh7) | 0;\n mid = mid + Math.imul(ah2, bl7) | 0;\n hi = hi + Math.imul(ah2, bh7) | 0;\n lo = lo + Math.imul(al1, bl8) | 0;\n mid = mid + Math.imul(al1, bh8) | 0;\n mid = mid + Math.imul(ah1, bl8) | 0;\n hi = hi + Math.imul(ah1, bh8) | 0;\n lo = lo + Math.imul(al0, bl9) | 0;\n mid = mid + Math.imul(al0, bh9) | 0;\n mid = mid + Math.imul(ah0, bl9) | 0;\n hi = hi + Math.imul(ah0, bh9) | 0;\n var w9 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = mid + Math.imul(ah9, bl1) | 0;\n hi = Math.imul(ah9, bh1);\n lo = lo + Math.imul(al8, bl2) | 0;\n mid = mid + Math.imul(al8, bh2) | 0;\n mid = mid + Math.imul(ah8, bl2) | 0;\n hi = hi + Math.imul(ah8, bh2) | 0;\n lo = lo + Math.imul(al7, bl3) | 0;\n mid = mid + Math.imul(al7, bh3) | 0;\n mid = mid + Math.imul(ah7, bl3) | 0;\n hi = hi + Math.imul(ah7, bh3) | 0;\n lo = lo + Math.imul(al6, bl4) | 0;\n mid = mid + Math.imul(al6, bh4) | 0;\n mid = mid + Math.imul(ah6, bl4) | 0;\n hi = hi + Math.imul(ah6, bh4) | 0;\n lo = lo + Math.imul(al5, bl5) | 0;\n mid = mid + Math.imul(al5, bh5) | 0;\n mid = mid + Math.imul(ah5, bl5) | 0;\n hi = hi + Math.imul(ah5, bh5) | 0;\n lo = lo + Math.imul(al4, bl6) | 0;\n mid = mid + Math.imul(al4, bh6) | 0;\n mid = mid + Math.imul(ah4, bl6) | 0;\n hi = hi + Math.imul(ah4, bh6) | 0;\n lo = lo + Math.imul(al3, bl7) | 0;\n mid = mid + Math.imul(al3, bh7) | 0;\n mid = mid + Math.imul(ah3, bl7) | 0;\n hi = hi + Math.imul(ah3, bh7) | 0;\n lo = lo + Math.imul(al2, bl8) | 0;\n mid = mid + Math.imul(al2, bh8) | 0;\n mid = mid + Math.imul(ah2, bl8) | 0;\n hi = hi + Math.imul(ah2, bh8) | 0;\n lo = lo + Math.imul(al1, bl9) | 0;\n mid = mid + Math.imul(al1, bh9) | 0;\n mid = mid + Math.imul(ah1, bl9) | 0;\n hi = hi + Math.imul(ah1, bh9) | 0;\n var w10 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = mid + Math.imul(ah9, bl2) | 0;\n hi = Math.imul(ah9, bh2);\n lo = lo + Math.imul(al8, bl3) | 0;\n mid = mid + Math.imul(al8, bh3) | 0;\n mid = mid + Math.imul(ah8, bl3) | 0;\n hi = hi + Math.imul(ah8, bh3) | 0;\n lo = lo + Math.imul(al7, bl4) | 0;\n mid = mid + Math.imul(al7, bh4) | 0;\n mid = mid + Math.imul(ah7, bl4) | 0;\n hi = hi + Math.imul(ah7, bh4) | 0;\n lo = lo + Math.imul(al6, bl5) | 0;\n mid = mid + Math.imul(al6, bh5) | 0;\n mid = mid + Math.imul(ah6, bl5) | 0;\n hi = hi + Math.imul(ah6, bh5) | 0;\n lo = lo + Math.imul(al5, bl6) | 0;\n mid = mid + Math.imul(al5, bh6) | 0;\n mid = mid + Math.imul(ah5, bl6) | 0;\n hi = hi + Math.imul(ah5, bh6) | 0;\n lo = lo + Math.imul(al4, bl7) | 0;\n mid = mid + Math.imul(al4, bh7) | 0;\n mid = mid + Math.imul(ah4, bl7) | 0;\n hi = hi + Math.imul(ah4, bh7) | 0;\n lo = lo + Math.imul(al3, bl8) | 0;\n mid = mid + Math.imul(al3, bh8) | 0;\n mid = mid + Math.imul(ah3, bl8) | 0;\n hi = hi + Math.imul(ah3, bh8) | 0;\n lo = lo + Math.imul(al2, bl9) | 0;\n mid = mid + Math.imul(al2, bh9) | 0;\n mid = mid + Math.imul(ah2, bl9) | 0;\n hi = hi + Math.imul(ah2, bh9) | 0;\n var w11 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = mid + Math.imul(ah9, bl3) | 0;\n hi = Math.imul(ah9, bh3);\n lo = lo + Math.imul(al8, bl4) | 0;\n mid = mid + Math.imul(al8, bh4) | 0;\n mid = mid + Math.imul(ah8, bl4) | 0;\n hi = hi + Math.imul(ah8, bh4) | 0;\n lo = lo + Math.imul(al7, bl5) | 0;\n mid = mid + Math.imul(al7, bh5) | 0;\n mid = mid + Math.imul(ah7, bl5) | 0;\n hi = hi + Math.imul(ah7, bh5) | 0;\n lo = lo + Math.imul(al6, bl6) | 0;\n mid = mid + Math.imul(al6, bh6) | 0;\n mid = mid + Math.imul(ah6, bl6) | 0;\n hi = hi + Math.imul(ah6, bh6) | 0;\n lo = lo + Math.imul(al5, bl7) | 0;\n mid = mid + Math.imul(al5, bh7) | 0;\n mid = mid + Math.imul(ah5, bl7) | 0;\n hi = hi + Math.imul(ah5, bh7) | 0;\n lo = lo + Math.imul(al4, bl8) | 0;\n mid = mid + Math.imul(al4, bh8) | 0;\n mid = mid + Math.imul(ah4, bl8) | 0;\n hi = hi + Math.imul(ah4, bh8) | 0;\n lo = lo + Math.imul(al3, bl9) | 0;\n mid = mid + Math.imul(al3, bh9) | 0;\n mid = mid + Math.imul(ah3, bl9) | 0;\n hi = hi + Math.imul(ah3, bh9) | 0;\n var w12 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = mid + Math.imul(ah9, bl4) | 0;\n hi = Math.imul(ah9, bh4);\n lo = lo + Math.imul(al8, bl5) | 0;\n mid = mid + Math.imul(al8, bh5) | 0;\n mid = mid + Math.imul(ah8, bl5) | 0;\n hi = hi + Math.imul(ah8, bh5) | 0;\n lo = lo + Math.imul(al7, bl6) | 0;\n mid = mid + Math.imul(al7, bh6) | 0;\n mid = mid + Math.imul(ah7, bl6) | 0;\n hi = hi + Math.imul(ah7, bh6) | 0;\n lo = lo + Math.imul(al6, bl7) | 0;\n mid = mid + Math.imul(al6, bh7) | 0;\n mid = mid + Math.imul(ah6, bl7) | 0;\n hi = hi + Math.imul(ah6, bh7) | 0;\n lo = lo + Math.imul(al5, bl8) | 0;\n mid = mid + Math.imul(al5, bh8) | 0;\n mid = mid + Math.imul(ah5, bl8) | 0;\n hi = hi + Math.imul(ah5, bh8) | 0;\n lo = lo + Math.imul(al4, bl9) | 0;\n mid = mid + Math.imul(al4, bh9) | 0;\n mid = mid + Math.imul(ah4, bl9) | 0;\n hi = hi + Math.imul(ah4, bh9) | 0;\n var w13 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = mid + Math.imul(ah9, bl5) | 0;\n hi = Math.imul(ah9, bh5);\n lo = lo + Math.imul(al8, bl6) | 0;\n mid = mid + Math.imul(al8, bh6) | 0;\n mid = mid + Math.imul(ah8, bl6) | 0;\n hi = hi + Math.imul(ah8, bh6) | 0;\n lo = lo + Math.imul(al7, bl7) | 0;\n mid = mid + Math.imul(al7, bh7) | 0;\n mid = mid + Math.imul(ah7, bl7) | 0;\n hi = hi + Math.imul(ah7, bh7) | 0;\n lo = lo + Math.imul(al6, bl8) | 0;\n mid = mid + Math.imul(al6, bh8) | 0;\n mid = mid + Math.imul(ah6, bl8) | 0;\n hi = hi + Math.imul(ah6, bh8) | 0;\n lo = lo + Math.imul(al5, bl9) | 0;\n mid = mid + Math.imul(al5, bh9) | 0;\n mid = mid + Math.imul(ah5, bl9) | 0;\n hi = hi + Math.imul(ah5, bh9) | 0;\n var w14 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = mid + Math.imul(ah9, bl6) | 0;\n hi = Math.imul(ah9, bh6);\n lo = lo + Math.imul(al8, bl7) | 0;\n mid = mid + Math.imul(al8, bh7) | 0;\n mid = mid + Math.imul(ah8, bl7) | 0;\n hi = hi + Math.imul(ah8, bh7) | 0;\n lo = lo + Math.imul(al7, bl8) | 0;\n mid = mid + Math.imul(al7, bh8) | 0;\n mid = mid + Math.imul(ah7, bl8) | 0;\n hi = hi + Math.imul(ah7, bh8) | 0;\n lo = lo + Math.imul(al6, bl9) | 0;\n mid = mid + Math.imul(al6, bh9) | 0;\n mid = mid + Math.imul(ah6, bl9) | 0;\n hi = hi + Math.imul(ah6, bh9) | 0;\n var w15 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = mid + Math.imul(ah9, bl7) | 0;\n hi = Math.imul(ah9, bh7);\n lo = lo + Math.imul(al8, bl8) | 0;\n mid = mid + Math.imul(al8, bh8) | 0;\n mid = mid + Math.imul(ah8, bl8) | 0;\n hi = hi + Math.imul(ah8, bh8) | 0;\n lo = lo + Math.imul(al7, bl9) | 0;\n mid = mid + Math.imul(al7, bh9) | 0;\n mid = mid + Math.imul(ah7, bl9) | 0;\n hi = hi + Math.imul(ah7, bh9) | 0;\n var w16 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = mid + Math.imul(ah9, bl8) | 0;\n hi = Math.imul(ah9, bh8);\n lo = lo + Math.imul(al8, bl9) | 0;\n mid = mid + Math.imul(al8, bh9) | 0;\n mid = mid + Math.imul(ah8, bl9) | 0;\n hi = hi + Math.imul(ah8, bh9) | 0;\n var w17 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = mid + Math.imul(ah9, bl9) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n\n return out;\n }; // Polyfill comb\n\n\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo(self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n var carry = 0;\n var hncarry = 0;\n\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n var lo = r & 0x3ffffff;\n ncarry = ncarry + (r / 0x4000000 | 0) | 0;\n lo = lo + rword | 0;\n rword = lo & 0x3ffffff;\n ncarry = ncarry + (lo >>> 26) | 0;\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo(self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo(num, out) {\n var res;\n var len = this.length + num.length;\n\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n }; // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n\n function FFTM(x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT(N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n }; // Returns binary-reversed representation of `x`\n\n\n FFTM.prototype.revBin = function revBin(x, l, N) {\n if (x === 0 || x === N - 1) return x;\n var rb = 0;\n\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << l - i - 1;\n x >>= 1;\n }\n\n return rb;\n }; // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n\n\n FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n var rx = rtwdf_ * ro - itwdf_ * io;\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n /* jshint maxdepth : false */\n\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b(n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate(rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n t = iws[i];\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b(ws, N) {\n var carry = 0;\n\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry;\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {\n var carry = 0;\n\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n rws[2 * i] = carry & 0x1fff;\n carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff;\n carry = carry >>> 13;\n } // Pad with zeroes\n\n\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub(N) {\n var ph = new Array(N);\n\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp(x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n var rmws = out.words;\n rmws.length = N;\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n }; // Multiply `this` by `num`\n\n\n BN.prototype.mul = function mul(num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n }; // Multiply employing FFT\n\n\n BN.prototype.mulf = function mulf(num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n }; // In-place Multiplication\n\n\n BN.prototype.imul = function imul(num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000); // Carry\n\n var carry = 0;\n\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += w / 0x4000000 | 0; // NOTE: lo is 27bit maximum\n\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln(num) {\n return this.clone().imuln(num);\n }; // `this` * `this`\n\n\n BN.prototype.sqr = function sqr() {\n return this.mul(this);\n }; // `this` * `this` in-place\n\n\n BN.prototype.isqr = function isqr() {\n return this.imul(this.clone());\n }; // Math.pow(`this`, `num`)\n\n\n BN.prototype.pow = function pow(num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n var res = this;\n\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n res = res.mul(q);\n }\n }\n\n return res;\n }; // Shift-left in-place\n\n\n BN.prototype.iushln = function iushln(bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = 0x3ffffff >>> 26 - r << 26 - r;\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = (this.words[i] | 0) - newCarry << r;\n this.words[i] = c | carry;\n carry = newCarry >>> 26 - r;\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln(bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n }; // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n\n\n BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n\n if (hint) {\n h = (hint - hint % 26) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n var maskedWords = extended;\n h -= s;\n h = Math.max(0, h); // Extended mode, copy masked part\n\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n\n maskedWords.length = s;\n }\n\n if (s === 0) {// No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = carry << 26 - r | word >>> r;\n carry = word & mask;\n } // Push carried bits as a mask\n\n\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn(bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n }; // Shift-left\n\n\n BN.prototype.shln = function shln(bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln(bits) {\n return this.clone().iushln(bits);\n }; // Shift-right\n\n\n BN.prototype.shrn = function shrn(bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn(bits) {\n return this.clone().iushrn(bits);\n }; // Test if n bit is set\n\n\n BN.prototype.testn = function testn(bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) return false; // Check bit and return\n\n var w = this.words[s];\n return !!(w & q);\n }; // Return only lowers bits of number (in-place)\n\n\n BN.prototype.imaskn = function imaskn(bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n }; // Return only lowers bits of number\n\n\n BN.prototype.maskn = function maskn(bits) {\n return this.clone().imaskn(bits);\n }; // Add plain number `num` to `this`\n\n\n BN.prototype.iaddn = function iaddn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num); // Possible sign change\n\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n } // Add without checks\n\n\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn(num) {\n this.words[0] += num; // Carry\n\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n\n this.length = Math.max(this.length, i + 1);\n return this;\n }; // Subtract plain number `num` from `this`\n\n\n BN.prototype.isubn = function isubn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn(num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn(num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs() {\n this.negative = 0;\n return this;\n };\n\n BN.prototype.abs = function abs() {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - (right / 0x4000000 | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip(); // Subtraction overflow\n\n assert(carry === -1);\n carry = 0;\n\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n\n this.negative = 1;\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv(num, mode) {\n var shift = this.length - num.length;\n var a = this.clone();\n var b = num; // Normalize\n\n var bhi = b.words[b.length - 1] | 0;\n\n var bhiBits = this._countBits(bhi);\n\n shift = 26 - bhiBits;\n\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n } // Initialize quotient\n\n\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n\n if (diff.negative === 0) {\n a = diff;\n\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n\n qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n\n a._ishlnsubmul(b, 1, j);\n\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n\n if (q) {\n q.words[j] = qj;\n }\n }\n\n if (q) {\n q.strip();\n }\n\n a.strip(); // Denormalize\n\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n }; // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n\n\n BN.prototype.divmod = function divmod(num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n } // Both numbers are positive at this point\n // Strip both numbers to approximate shift value\n\n\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n } // Very short reduction\n\n\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n }; // Find `this` / `num`\n\n\n BN.prototype.div = function div(num) {\n return this.divmod(num, 'div', false).div;\n }; // Find `this` % `num`\n\n\n BN.prototype.mod = function mod(num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod(num) {\n return this.divmod(num, 'mod', true).mod;\n }; // Find Round(`this` / `num`)\n\n\n BN.prototype.divRound = function divRound(num) {\n var dm = this.divmod(num); // Fast case - exact division\n\n if (dm.mod.isZero()) return dm.div;\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half); // Round down\n\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn(num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n var acc = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n }; // In-place division by number\n\n\n BN.prototype.idivn = function idivn(num) {\n assert(num <= 0x3ffffff);\n var carry = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = w / num | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn(num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n } // A * x + B * y = x\n\n\n var A = new BN(1);\n var B = new BN(0); // C * x + D * y = y\n\n var C = new BN(0);\n var D = new BN(1);\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {\n ;\n }\n\n if (i > 0) {\n x.iushrn(i);\n\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {\n ;\n }\n\n if (j > 0) {\n y.iushrn(j);\n\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n }; // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n\n\n BN.prototype._invmp = function _invmp(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {\n ;\n }\n\n if (i > 0) {\n a.iushrn(i);\n\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {\n ;\n }\n\n if (j > 0) {\n b.iushrn(j);\n\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd(num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0; // Remove common factor of two\n\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n }; // Invert number in the field F(num)\n\n\n BN.prototype.invm = function invm(num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven() {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd() {\n return (this.words[0] & 1) === 1;\n }; // And first word and num\n\n\n BN.prototype.andln = function andln(num) {\n return this.words[0] & num;\n }; // Increment at the bit position in-line\n\n\n BN.prototype.bincn = function bincn(bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) {\n this._expand(s + 1);\n\n this.words[s] |= q;\n return this;\n } // Add bit and propagate, if needed\n\n\n var carry = q;\n\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.isZero = function isZero() {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn(num) {\n var negative = num < 0;\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n this.strip();\n var res;\n\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n\n\n BN.prototype.cmp = function cmp(num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Unsigned comparison\n\n\n BN.prototype.ucmp = function ucmp(num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n var res = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n if (a === b) continue;\n\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n\n break;\n }\n\n return res;\n };\n\n BN.prototype.gtn = function gtn(num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt(num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten(num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte(num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn(num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt(num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten(num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte(num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn(num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq(num) {\n return this.cmp(num) === 0;\n }; //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n\n\n BN.red = function red(num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed(ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed() {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed(ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed(ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd(num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd(num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub(num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub(num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl(num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul(num) {\n assert(this.red, 'redMul works only with red numbers');\n\n this.red._verify2(this, num);\n\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul(num) {\n assert(this.red, 'redMul works only with red numbers');\n\n this.red._verify2(this, num);\n\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr() {\n assert(this.red, 'redSqr works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr() {\n assert(this.red, 'redISqr works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.isqr(this);\n }; // Square root over p\n\n\n BN.prototype.redSqrt = function redSqrt() {\n assert(this.red, 'redSqrt works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm() {\n assert(this.red, 'redInvm works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.invm(this);\n }; // Return negative clone of `this` % `red modulo`\n\n\n BN.prototype.redNeg = function redNeg() {\n assert(this.red, 'redNeg works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow(num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n\n this.red._verify1(this);\n\n return this.red.pow(this, num);\n }; // Prime numbers with efficient reduction\n\n\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n }; // Pseudo-Mersenne prime\n\n function MPrime(name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp() {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce(num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split(input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK(num) {\n return num.imul(this.k);\n };\n\n function K256() {\n MPrime.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n\n inherits(K256, MPrime);\n\n K256.prototype.split = function split(input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n var outLen = Math.min(input.length, 9);\n\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n } // Shift by 9 limbs\n\n\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = (next & mask) << 4 | prev >>> 22;\n prev = next;\n }\n\n prev >>>= 22;\n input.words[i - 10] = prev;\n\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK(num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n var lo = 0;\n\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + (lo / 0x4000000 | 0);\n } // Fast length reduction\n\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n\n return num;\n };\n\n function P224() {\n MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n\n inherits(P224, MPrime);\n\n function P192() {\n MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n\n inherits(P192, MPrime);\n\n function P25519() {\n // 2 ^ 255 - 19\n MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK(num) {\n // K = 0x13\n var carry = 0;\n\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n num.words[i] = lo;\n carry = hi;\n }\n\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n\n return num;\n }; // Exported mostly for testing purposes, use plain name instead\n\n\n BN._prime = function prime(name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n var prime;\n\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n\n primes[name] = prime;\n return prime;\n }; //\n // Base reduction engine\n //\n\n\n function Red(m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1(a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2(a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red, 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod(a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg(a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add(a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd(a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n\n return res;\n };\n\n Red.prototype.sub = function sub(a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub(a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res;\n };\n\n Red.prototype.shl = function shl(a, num) {\n this._verify1(a);\n\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr(a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr(a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt(a) {\n if (a.isZero()) return a.clone();\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1); // Fast case\n\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n var q = this.m.subn(1);\n var s = 0;\n\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n\n assert(!q.isZero());\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg(); // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n\n while (t.cmp(one) !== 0) {\n var tmp = t;\n\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm(a) {\n var inv = a._invmp(this.m);\n\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow(a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n\n for (var j = start - 1; j >= 0; j--) {\n var bit = word >> j & 1;\n\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo(num) {\n var r = num.umod(this.m);\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom(num) {\n var res = num.clone();\n res.red = null;\n return res;\n }; //\n // Montgomery method engine\n //\n\n\n BN.mont = function mont(num) {\n return new Mont(num);\n };\n\n function Mont(m) {\n Red.call(this, m);\n this.shift = this.m.bitLength();\n\n if (this.shift % 26 !== 0) {\n this.shift += 26 - this.shift % 26;\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo(num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom(num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul(a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul(a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm(a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})( false || module, this);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/elliptic/node_modules/bn.js/lib/bn.js?"); | ||
| 1691 | + | ||
| 1692 | +/***/ }), | ||
| 1693 | + | ||
| 1694 | +/***/ "./node_modules/elliptic/package.json": | ||
| 1695 | +/*!********************************************!*\ | ||
| 1696 | + !*** ./node_modules/elliptic/package.json ***! | ||
| 1697 | + \********************************************/ | ||
| 1698 | +/*! exports provided: _args, _from, _id, _inBundle, _integrity, _location, _phantomChildren, _requested, _requiredBy, _resolved, _spec, _where, author, bugs, dependencies, description, devDependencies, files, homepage, keywords, license, main, name, repository, scripts, version, default */ | ||
| 1699 | +/***/ (function(module) { | ||
| 1700 | + | ||
| 1701 | +eval("module.exports = JSON.parse(\"{\\\"_args\\\":[[\\\"elliptic@6.5.4\\\",\\\"G:\\\\\\\\yolin\\\\\\\\SkeyeWebPlayerSourceCode\\\"]],\\\"_from\\\":\\\"elliptic@6.5.4\\\",\\\"_id\\\":\\\"elliptic@6.5.4\\\",\\\"_inBundle\\\":false,\\\"_integrity\\\":\\\"sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==\\\",\\\"_location\\\":\\\"/elliptic\\\",\\\"_phantomChildren\\\":{},\\\"_requested\\\":{\\\"type\\\":\\\"version\\\",\\\"registry\\\":true,\\\"raw\\\":\\\"elliptic@6.5.4\\\",\\\"name\\\":\\\"elliptic\\\",\\\"escapedName\\\":\\\"elliptic\\\",\\\"rawSpec\\\":\\\"6.5.4\\\",\\\"saveSpec\\\":null,\\\"fetchSpec\\\":\\\"6.5.4\\\"},\\\"_requiredBy\\\":[\\\"/browserify-sign\\\",\\\"/create-ecdh\\\"],\\\"_resolved\\\":\\\"https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz\\\",\\\"_spec\\\":\\\"6.5.4\\\",\\\"_where\\\":\\\"G:\\\\\\\\yolin\\\\\\\\SkeyeWebPlayerSourceCode\\\",\\\"author\\\":{\\\"name\\\":\\\"Fedor Indutny\\\",\\\"email\\\":\\\"fedor@indutny.com\\\"},\\\"bugs\\\":{\\\"url\\\":\\\"https://github.com/indutny/elliptic/issues\\\"},\\\"dependencies\\\":{\\\"bn.js\\\":\\\"^4.11.9\\\",\\\"brorand\\\":\\\"^1.1.0\\\",\\\"hash.js\\\":\\\"^1.0.0\\\",\\\"hmac-drbg\\\":\\\"^1.0.1\\\",\\\"inherits\\\":\\\"^2.0.4\\\",\\\"minimalistic-assert\\\":\\\"^1.0.1\\\",\\\"minimalistic-crypto-utils\\\":\\\"^1.0.1\\\"},\\\"description\\\":\\\"EC cryptography\\\",\\\"devDependencies\\\":{\\\"brfs\\\":\\\"^2.0.2\\\",\\\"coveralls\\\":\\\"^3.1.0\\\",\\\"eslint\\\":\\\"^7.6.0\\\",\\\"grunt\\\":\\\"^1.2.1\\\",\\\"grunt-browserify\\\":\\\"^5.3.0\\\",\\\"grunt-cli\\\":\\\"^1.3.2\\\",\\\"grunt-contrib-connect\\\":\\\"^3.0.0\\\",\\\"grunt-contrib-copy\\\":\\\"^1.0.0\\\",\\\"grunt-contrib-uglify\\\":\\\"^5.0.0\\\",\\\"grunt-mocha-istanbul\\\":\\\"^5.0.2\\\",\\\"grunt-saucelabs\\\":\\\"^9.0.1\\\",\\\"istanbul\\\":\\\"^0.4.5\\\",\\\"mocha\\\":\\\"^8.0.1\\\"},\\\"files\\\":[\\\"lib\\\"],\\\"homepage\\\":\\\"https://github.com/indutny/elliptic\\\",\\\"keywords\\\":[\\\"EC\\\",\\\"Elliptic\\\",\\\"curve\\\",\\\"Cryptography\\\"],\\\"license\\\":\\\"MIT\\\",\\\"main\\\":\\\"lib/elliptic.js\\\",\\\"name\\\":\\\"elliptic\\\",\\\"repository\\\":{\\\"type\\\":\\\"git\\\",\\\"url\\\":\\\"git+ssh://git@github.com/indutny/elliptic.git\\\"},\\\"scripts\\\":{\\\"lint\\\":\\\"eslint lib test\\\",\\\"lint:fix\\\":\\\"npm run lint -- --fix\\\",\\\"test\\\":\\\"npm run lint && npm run unit\\\",\\\"unit\\\":\\\"istanbul test _mocha --reporter=spec test/index.js\\\",\\\"version\\\":\\\"grunt dist && git add dist/\\\"},\\\"version\\\":\\\"6.5.4\\\"}\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/elliptic/package.json?"); | ||
| 1702 | + | ||
| 1703 | +/***/ }), | ||
| 1704 | + | ||
| 1705 | +/***/ "./node_modules/es6-promise/dist/es6-promise.js": | ||
| 1706 | +/*!******************************************************!*\ | ||
| 1707 | + !*** ./node_modules/es6-promise/dist/es6-promise.js ***! | ||
| 1708 | + \******************************************************/ | ||
| 1709 | +/*! no static exports found */ | ||
| 1710 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1711 | + | ||
| 1712 | +eval("/* WEBPACK VAR INJECTION */(function(process, global) {/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.8+1e68dce6\n */\n(function (global, factory) {\n true ? module.exports = factory() : undefined;\n})(this, function () {\n 'use strict';\n\n function objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n }\n\n function isFunction(x) {\n return typeof x === 'function';\n }\n\n var _isArray = void 0;\n\n if (Array.isArray) {\n _isArray = Array.isArray;\n } else {\n _isArray = function _isArray(x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n }\n\n var isArray = _isArray;\n var len = 0;\n var vertxNext = void 0;\n var customSchedulerFn = void 0;\n\n var asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n };\n\n function setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n }\n\n function setAsap(asapFn) {\n asap = asapFn;\n }\n\n var browserWindow = typeof window !== 'undefined' ? window : undefined;\n var browserGlobal = browserWindow || {};\n var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\n var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]'; // test for web worker but not in IE10\n\n var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined'; // node\n\n function useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n } // vertx\n\n\n function useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n }\n\n function useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, {\n characterData: true\n });\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n } // web worker\n\n\n function useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n }\n\n function useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n }\n\n var queue = new Array(1000);\n\n function flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n callback(arg);\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n }\n\n function attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n }\n\n var scheduleFlush = void 0; // Decide what async method to use to triggering processing of queued callbacks:\n\n if (isNode) {\n scheduleFlush = useNextTick();\n } else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n } else if (isWorker) {\n scheduleFlush = useMessageChannel();\n } else if (browserWindow === undefined && \"function\" === 'function') {\n scheduleFlush = attemptVertx();\n } else {\n scheduleFlush = useSetTimeout();\n }\n\n function then(onFulfillment, onRejection) {\n var parent = this;\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n }\n /**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n \n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n \n promise.then(function(value){\n // value === 1\n });\n ```\n \n Instead of writing the above, your code now simply becomes the following:\n \n ```javascript\n let promise = Promise.resolve(1);\n \n promise.then(function(value){\n // value === 1\n });\n ```\n \n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n */\n\n\n function resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n }\n\n var PROMISE_ID = Math.random().toString(36).substring(2);\n\n function noop() {}\n\n var PENDING = void 0;\n var FULFILLED = 1;\n var REJECTED = 2;\n\n function selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n }\n\n function handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n\n sealed = true;\n\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n\n sealed = true;\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n }\n\n function handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n }\n\n function handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n }\n\n function resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n\n try {\n then$$1 = value.then;\n } catch (error) {\n reject(promise, error);\n return;\n }\n\n handleMaybeThenable(promise, value, then$$1);\n } else {\n fulfill(promise, value);\n }\n }\n\n function publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n }\n\n function fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n }\n\n function reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._state = REJECTED;\n promise._result = reason;\n asap(publishRejection, promise);\n }\n\n function subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n parent._onerror = null;\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n }\n\n function publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = true;\n\n if (hasCallback) {\n try {\n value = callback(detail);\n } catch (e) {\n succeeded = false;\n error = e;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n }\n\n if (promise._state !== PENDING) {// noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (succeeded === false) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n\n function initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n }\n\n var id = 0;\n\n function nextId() {\n return id++;\n }\n\n function makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n }\n\n function validationError() {\n return new Error('Array Methods must be provided an Array');\n }\n\n var Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n\n this._enumerate(input);\n\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n\n var error = void 0;\n var didError = false;\n\n try {\n _then = entry.then;\n } catch (e) {\n didError = true;\n error = e;\n }\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n\n if (didError) {\n reject(promise, error);\n } else {\n handleMaybeThenable(promise, entry, _then);\n }\n\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n }();\n /**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n \n Example:\n \n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n \n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n \n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n \n Example:\n \n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n \n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n \n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n */\n\n\n function all(entries) {\n return new Enumerator(this, entries).promise;\n }\n /**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n \n Example:\n \n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n \n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n \n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n \n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n \n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n \n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n \n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n \n An example real-world use case is implementing timeouts:\n \n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n \n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n */\n\n\n function race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n }\n /**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n \n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n \n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n \n Instead of writing the above, your code now simply becomes the following:\n \n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n \n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n \n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n */\n\n\n function reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n }\n\n function needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n \n Terminology\n -----------\n \n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n \n A promise can be in one of three states: pending, fulfilled, or rejected.\n \n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n \n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n \n \n Basic Usage:\n ------------\n \n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n \n // on failure\n reject(reason);\n });\n \n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n \n Advanced Usage:\n ---------------\n \n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n \n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n \n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n \n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n \n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n \n Unlike callbacks, promises are great composable primitives.\n \n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n \n return values;\n });\n ```\n \n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n */\n\n\n var Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n }();\n\n Promise$1.prototype.then = then;\n Promise$1.all = all;\n Promise$1.race = race;\n Promise$1.resolve = resolve$1;\n Promise$1.reject = reject$1;\n Promise$1._setScheduler = setScheduler;\n Promise$1._setAsap = setAsap;\n Promise$1._asap = asap;\n /*global self*/\n\n function polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {// silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n } // Strange compat..\n\n\n Promise$1.polyfill = polyfill;\n Promise$1.Promise = Promise$1;\n return Promise$1;\n});\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ \"./node_modules/process/browser.js\"), __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/es6-promise/dist/es6-promise.js?"); | ||
| 1713 | + | ||
| 1714 | +/***/ }), | ||
| 1715 | + | ||
| 1716 | +/***/ "./node_modules/evp_bytestokey/index.js": | ||
| 1717 | +/*!**********************************************!*\ | ||
| 1718 | + !*** ./node_modules/evp_bytestokey/index.js ***! | ||
| 1719 | + \**********************************************/ | ||
| 1720 | +/*! no static exports found */ | ||
| 1721 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1722 | + | ||
| 1723 | +eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar MD5 = __webpack_require__(/*! md5.js */ \"./node_modules/md5.js/index.js\");\n/* eslint-disable camelcase */\n\n\nfunction EVP_BytesToKey(password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary');\n\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary');\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length');\n }\n\n var keyLen = keyBits / 8;\n var key = Buffer.alloc(keyLen);\n var iv = Buffer.alloc(ivLen || 0);\n var tmp = Buffer.alloc(0);\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5();\n hash.update(tmp);\n hash.update(password);\n if (salt) hash.update(salt);\n tmp = hash.digest();\n var used = 0;\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen;\n used = Math.min(keyLen, tmp.length);\n tmp.copy(key, keyStart, 0, used);\n keyLen -= used;\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen;\n var length = Math.min(ivLen, tmp.length - used);\n tmp.copy(iv, ivStart, used, used + length);\n ivLen -= length;\n }\n }\n\n tmp.fill(0);\n return {\n key: key,\n iv: iv\n };\n}\n\nmodule.exports = EVP_BytesToKey;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/evp_bytestokey/index.js?"); | ||
| 1724 | + | ||
| 1725 | +/***/ }), | ||
| 1726 | + | ||
| 1727 | +/***/ "./node_modules/global/window.js": | ||
| 1728 | +/*!***************************************!*\ | ||
| 1729 | + !*** ./node_modules/global/window.js ***! | ||
| 1730 | + \***************************************/ | ||
| 1731 | +/*! no static exports found */ | ||
| 1732 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1733 | + | ||
| 1734 | +eval("/* WEBPACK VAR INJECTION */(function(global) {var win;\n\nif (typeof window !== \"undefined\") {\n win = window;\n} else if (typeof global !== \"undefined\") {\n win = global;\n} else if (typeof self !== \"undefined\") {\n win = self;\n} else {\n win = {};\n}\n\nmodule.exports = win;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/global/window.js?"); | ||
| 1735 | + | ||
| 1736 | +/***/ }), | ||
| 1737 | + | ||
| 1738 | +/***/ "./node_modules/hash-base/index.js": | ||
| 1739 | +/*!*****************************************!*\ | ||
| 1740 | + !*** ./node_modules/hash-base/index.js ***! | ||
| 1741 | + \*****************************************/ | ||
| 1742 | +/*! no static exports found */ | ||
| 1743 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1744 | + | ||
| 1745 | +"use strict"; | ||
| 1746 | +eval("\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar Transform = __webpack_require__(/*! readable-stream */ \"./node_modules/hash-base/node_modules/readable-stream/readable-browser.js\").Transform;\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nfunction throwIfNotStringOrBuffer(val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer');\n }\n}\n\nfunction HashBase(blockSize) {\n Transform.call(this);\n this._block = Buffer.allocUnsafe(blockSize);\n this._blockSize = blockSize;\n this._blockOffset = 0;\n this._length = [0, 0, 0, 0];\n this._finalized = false;\n}\n\ninherits(HashBase, Transform);\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null;\n\n try {\n this.update(chunk, encoding);\n } catch (err) {\n error = err;\n }\n\n callback(error);\n};\n\nHashBase.prototype._flush = function (callback) {\n var error = null;\n\n try {\n this.push(this.digest());\n } catch (err) {\n error = err;\n }\n\n callback(error);\n};\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data');\n if (this._finalized) throw new Error('Digest already called');\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding); // consume data\n\n var block = this._block;\n var offset = 0;\n\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) {\n block[i++] = data[offset++];\n }\n\n this._update();\n\n this._blockOffset = 0;\n }\n\n while (offset < data.length) {\n block[this._blockOffset++] = data[offset++];\n } // update length\n\n\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry;\n carry = this._length[j] / 0x0100000000 | 0;\n if (carry > 0) this._length[j] -= 0x0100000000 * carry;\n }\n\n return this;\n};\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented');\n};\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called');\n this._finalized = true;\n\n var digest = this._digest();\n\n if (encoding !== undefined) digest = digest.toString(encoding); // reset state\n\n this._block.fill(0);\n\n this._blockOffset = 0;\n\n for (var i = 0; i < 4; ++i) {\n this._length[i] = 0;\n }\n\n return digest;\n};\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented');\n};\n\nmodule.exports = HashBase;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash-base/index.js?"); | ||
| 1747 | + | ||
| 1748 | +/***/ }), | ||
| 1749 | + | ||
| 1750 | +/***/ "./node_modules/hash-base/node_modules/readable-stream/errors-browser.js": | ||
| 1751 | +/*!*******************************************************************************!*\ | ||
| 1752 | + !*** ./node_modules/hash-base/node_modules/readable-stream/errors-browser.js ***! | ||
| 1753 | + \*******************************************************************************/ | ||
| 1754 | +/*! no static exports found */ | ||
| 1755 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1756 | + | ||
| 1757 | +"use strict"; | ||
| 1758 | +eval("\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError = /*#__PURE__*/function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash-base/node_modules/readable-stream/errors-browser.js?"); | ||
| 1759 | + | ||
| 1760 | +/***/ }), | ||
| 1761 | + | ||
| 1762 | +/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js": | ||
| 1763 | +/*!***********************************************************************************!*\ | ||
| 1764 | + !*** ./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js ***! | ||
| 1765 | + \***********************************************************************************/ | ||
| 1766 | +/*! no static exports found */ | ||
| 1767 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1768 | + | ||
| 1769 | +"use strict"; | ||
| 1770 | +eval("/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n/*<replacement>*/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/*</replacement>*/\n\n\nmodule.exports = Duplex;\n\nvar Readable = __webpack_require__(/*! ./_stream_readable */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js\");\n\nvar Writable = __webpack_require__(/*! ./_stream_writable */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js\");\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js?"); | ||
| 1771 | + | ||
| 1772 | +/***/ }), | ||
| 1773 | + | ||
| 1774 | +/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js": | ||
| 1775 | +/*!****************************************************************************************!*\ | ||
| 1776 | + !*** ./node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js ***! | ||
| 1777 | + \****************************************************************************************/ | ||
| 1778 | +/*! no static exports found */ | ||
| 1779 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1780 | + | ||
| 1781 | +"use strict"; | ||
| 1782 | +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n\nmodule.exports = PassThrough;\n\nvar Transform = __webpack_require__(/*! ./_stream_transform */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js\");\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js?"); | ||
| 1783 | + | ||
| 1784 | +/***/ }), | ||
| 1785 | + | ||
| 1786 | +/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js": | ||
| 1787 | +/*!*************************************************************************************!*\ | ||
| 1788 | + !*** ./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js ***! | ||
| 1789 | + \*************************************************************************************/ | ||
| 1790 | +/*! no static exports found */ | ||
| 1791 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1792 | + | ||
| 1793 | +"use strict"; | ||
| 1794 | +eval("/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nmodule.exports = Readable;\n/*<replacement>*/\n\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n/*<replacement>*/\n\nvar EE = __webpack_require__(/*! events */ \"./node_modules/node-libs-browser/node_modules/events/events.js\").EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/*</replacement>*/\n\n\nvar Buffer = __webpack_require__(/*! buffer */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/*<replacement>*/\n\n\nvar debugUtil = __webpack_require__(/*! util */ 0);\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/*</replacement>*/\n\n\nvar BufferList = __webpack_require__(/*! ./internal/streams/buffer_list */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js\");\n\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js\");\n\nvar _require = __webpack_require__(/*! ./internal/streams/state */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js\"),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./node_modules/hash-base/node_modules/readable-stream/errors-browser.js\").codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js\");\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js\");\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = __webpack_require__(/*! ./internal/streams/async_iterator */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js\");\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = __webpack_require__(/*! ./internal/streams/from */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js\");\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js?"); | ||
| 1795 | + | ||
| 1796 | +/***/ }), | ||
| 1797 | + | ||
| 1798 | +/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js": | ||
| 1799 | +/*!**************************************************************************************!*\ | ||
| 1800 | + !*** ./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js ***! | ||
| 1801 | + \**************************************************************************************/ | ||
| 1802 | +/*! no static exports found */ | ||
| 1803 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1804 | + | ||
| 1805 | +"use strict"; | ||
| 1806 | +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\nmodule.exports = Transform;\n\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./node_modules/hash-base/node_modules/readable-stream/errors-browser.js\").codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js\");\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js?"); | ||
| 1807 | + | ||
| 1808 | +/***/ }), | ||
| 1809 | + | ||
| 1810 | +/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js": | ||
| 1811 | +/*!*************************************************************************************!*\ | ||
| 1812 | + !*** ./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js ***! | ||
| 1813 | + \*************************************************************************************/ | ||
| 1814 | +/*! no static exports found */ | ||
| 1815 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1816 | + | ||
| 1817 | +"use strict"; | ||
| 1818 | +eval("/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n\nmodule.exports = Writable;\n/* <replacement> */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* </replacement> */\n\n/*<replacement>*/\n\n\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n/*<replacement>*/\n\nvar internalUtil = {\n deprecate: __webpack_require__(/*! util-deprecate */ \"./node_modules/util-deprecate/browser.js\")\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/*</replacement>*/\n\n\nvar Buffer = __webpack_require__(/*! buffer */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js\");\n\nvar _require = __webpack_require__(/*! ./internal/streams/state */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js\"),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./node_modules/hash-base/node_modules/readable-stream/errors-browser.js\").codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js\");\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js\"); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js?"); | ||
| 1819 | + | ||
| 1820 | +/***/ }), | ||
| 1821 | + | ||
| 1822 | +/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js": | ||
| 1823 | +/*!****************************************************************************************************!*\ | ||
| 1824 | + !*** ./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js ***! | ||
| 1825 | + \****************************************************************************************************/ | ||
| 1826 | +/*! no static exports found */ | ||
| 1827 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1828 | + | ||
| 1829 | +"use strict"; | ||
| 1830 | +eval("/* WEBPACK VAR INJECTION */(function(process) {\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar finished = __webpack_require__(/*! ./end-of-stream */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this; // if we have detected an error in the meanwhile\n // reject straight away\n\n\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this; // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n\n\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js?"); | ||
| 1831 | + | ||
| 1832 | +/***/ }), | ||
| 1833 | + | ||
| 1834 | +/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js": | ||
| 1835 | +/*!*************************************************************************************************!*\ | ||
| 1836 | + !*** ./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js ***! | ||
| 1837 | + \*************************************************************************************************/ | ||
| 1838 | +/*! no static exports found */ | ||
| 1839 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1840 | + | ||
| 1841 | +"use strict"; | ||
| 1842 | +eval("\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nvar _require = __webpack_require__(/*! buffer */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\"),\n Buffer = _require.Buffer;\n\nvar _require2 = __webpack_require__(/*! util */ 1),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js?"); | ||
| 1843 | + | ||
| 1844 | +/***/ }), | ||
| 1845 | + | ||
| 1846 | +/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js": | ||
| 1847 | +/*!*********************************************************************************************!*\ | ||
| 1848 | + !*** ./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js ***! | ||
| 1849 | + \*********************************************************************************************/ | ||
| 1850 | +/*! no static exports found */ | ||
| 1851 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1852 | + | ||
| 1853 | +"use strict"; | ||
| 1854 | +eval("/* WEBPACK VAR INJECTION */(function(process) { // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js?"); | ||
| 1855 | + | ||
| 1856 | +/***/ }), | ||
| 1857 | + | ||
| 1858 | +/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js": | ||
| 1859 | +/*!***************************************************************************************************!*\ | ||
| 1860 | + !*** ./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***! | ||
| 1861 | + \***************************************************************************************************/ | ||
| 1862 | +/*! no static exports found */ | ||
| 1863 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1864 | + | ||
| 1865 | +"use strict"; | ||
| 1866 | +eval("// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n\nvar ERR_STREAM_PREMATURE_CLOSE = __webpack_require__(/*! ../../../errors */ \"./node_modules/hash-base/node_modules/readable-stream/errors-browser.js\").codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js?"); | ||
| 1867 | + | ||
| 1868 | +/***/ }), | ||
| 1869 | + | ||
| 1870 | +/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js": | ||
| 1871 | +/*!**************************************************************************************************!*\ | ||
| 1872 | + !*** ./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js ***! | ||
| 1873 | + \**************************************************************************************************/ | ||
| 1874 | +/*! no static exports found */ | ||
| 1875 | +/***/ (function(module, exports) { | ||
| 1876 | + | ||
| 1877 | +eval("module.exports = function () {\n throw new Error('Readable.from is not available in the browser');\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js?"); | ||
| 1878 | + | ||
| 1879 | +/***/ }), | ||
| 1880 | + | ||
| 1881 | +/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js": | ||
| 1882 | +/*!**********************************************************************************************!*\ | ||
| 1883 | + !*** ./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js ***! | ||
| 1884 | + \**********************************************************************************************/ | ||
| 1885 | +/*! no static exports found */ | ||
| 1886 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1887 | + | ||
| 1888 | +"use strict"; | ||
| 1889 | +eval("// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = __webpack_require__(/*! ../../../errors */ \"./node_modules/hash-base/node_modules/readable-stream/errors-browser.js\").codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = __webpack_require__(/*! ./end-of-stream */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js?"); | ||
| 1890 | + | ||
| 1891 | +/***/ }), | ||
| 1892 | + | ||
| 1893 | +/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js": | ||
| 1894 | +/*!*******************************************************************************************!*\ | ||
| 1895 | + !*** ./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js ***! | ||
| 1896 | + \*******************************************************************************************/ | ||
| 1897 | +/*! no static exports found */ | ||
| 1898 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1899 | + | ||
| 1900 | +"use strict"; | ||
| 1901 | +eval("\n\nvar ERR_INVALID_OPT_VALUE = __webpack_require__(/*! ../../../errors */ \"./node_modules/hash-base/node_modules/readable-stream/errors-browser.js\").codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js?"); | ||
| 1902 | + | ||
| 1903 | +/***/ }), | ||
| 1904 | + | ||
| 1905 | +/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js": | ||
| 1906 | +/*!****************************************************************************************************!*\ | ||
| 1907 | + !*** ./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js ***! | ||
| 1908 | + \****************************************************************************************************/ | ||
| 1909 | +/*! no static exports found */ | ||
| 1910 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1911 | + | ||
| 1912 | +eval("module.exports = __webpack_require__(/*! events */ \"./node_modules/node-libs-browser/node_modules/events/events.js\").EventEmitter;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js?"); | ||
| 1913 | + | ||
| 1914 | +/***/ }), | ||
| 1915 | + | ||
| 1916 | +/***/ "./node_modules/hash-base/node_modules/readable-stream/readable-browser.js": | ||
| 1917 | +/*!*********************************************************************************!*\ | ||
| 1918 | + !*** ./node_modules/hash-base/node_modules/readable-stream/readable-browser.js ***! | ||
| 1919 | + \*********************************************************************************/ | ||
| 1920 | +/*! no static exports found */ | ||
| 1921 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1922 | + | ||
| 1923 | +eval("exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js\");\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js\");\nexports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js\");\nexports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js\");\nexports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js\");\nexports.finished = __webpack_require__(/*! ./lib/internal/streams/end-of-stream.js */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\nexports.pipeline = __webpack_require__(/*! ./lib/internal/streams/pipeline.js */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash-base/node_modules/readable-stream/readable-browser.js?"); | ||
| 1924 | + | ||
| 1925 | +/***/ }), | ||
| 1926 | + | ||
| 1927 | +/***/ "./node_modules/hash.js/lib/hash.js": | ||
| 1928 | +/*!******************************************!*\ | ||
| 1929 | + !*** ./node_modules/hash.js/lib/hash.js ***! | ||
| 1930 | + \******************************************/ | ||
| 1931 | +/*! no static exports found */ | ||
| 1932 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1933 | + | ||
| 1934 | +eval("var hash = exports;\nhash.utils = __webpack_require__(/*! ./hash/utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\nhash.common = __webpack_require__(/*! ./hash/common */ \"./node_modules/hash.js/lib/hash/common.js\");\nhash.sha = __webpack_require__(/*! ./hash/sha */ \"./node_modules/hash.js/lib/hash/sha.js\");\nhash.ripemd = __webpack_require__(/*! ./hash/ripemd */ \"./node_modules/hash.js/lib/hash/ripemd.js\");\nhash.hmac = __webpack_require__(/*! ./hash/hmac */ \"./node_modules/hash.js/lib/hash/hmac.js\"); // Proxy hash functions to the main object\n\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash.js/lib/hash.js?"); | ||
| 1935 | + | ||
| 1936 | +/***/ }), | ||
| 1937 | + | ||
| 1938 | +/***/ "./node_modules/hash.js/lib/hash/common.js": | ||
| 1939 | +/*!*************************************************!*\ | ||
| 1940 | + !*** ./node_modules/hash.js/lib/hash/common.js ***! | ||
| 1941 | + \*************************************************/ | ||
| 1942 | +/*! no static exports found */ | ||
| 1943 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1944 | + | ||
| 1945 | +"use strict"; | ||
| 1946 | +eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\n\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending) this.pending = msg;else this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length; // Enough data, try updating\n\n if (this.pending.length >= this._delta8) {\n msg = this.pending; // Process pending data in blocks\n\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0) this.pending = null;\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n\n for (var i = 0; i < msg.length; i += this._delta32) {\n this._update(msg, i, i + this._delta32);\n }\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - (len + this.padLength) % bytes;\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n\n for (var i = 1; i < k; i++) {\n res[i] = 0;\n } // Append length\n\n\n len <<= 3;\n\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++) {\n res[i++] = 0;\n }\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = len >>> 24 & 0xff;\n res[i++] = len >>> 16 & 0xff;\n res[i++] = len >>> 8 & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = len >>> 8 & 0xff;\n res[i++] = len >>> 16 & 0xff;\n res[i++] = len >>> 24 & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++) {\n res[i++] = 0;\n }\n }\n\n return res;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash.js/lib/hash/common.js?"); | ||
| 1947 | + | ||
| 1948 | +/***/ }), | ||
| 1949 | + | ||
| 1950 | +/***/ "./node_modules/hash.js/lib/hash/hmac.js": | ||
| 1951 | +/*!***********************************************!*\ | ||
| 1952 | + !*** ./node_modules/hash.js/lib/hash/hmac.js ***! | ||
| 1953 | + \***********************************************/ | ||
| 1954 | +/*! no static exports found */ | ||
| 1955 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1956 | + | ||
| 1957 | +"use strict"; | ||
| 1958 | +eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac)) return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\n\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize) key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize); // Add padding to key\n\n for (var i = key.length; i < this.blockSize; i++) {\n key.push(0);\n }\n\n for (i = 0; i < key.length; i++) {\n key[i] ^= 0x36;\n }\n\n this.inner = new this.Hash().update(key); // 0x36 ^ 0x5c = 0x6a\n\n for (i = 0; i < key.length; i++) {\n key[i] ^= 0x6a;\n }\n\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash.js/lib/hash/hmac.js?"); | ||
| 1959 | + | ||
| 1960 | +/***/ }), | ||
| 1961 | + | ||
| 1962 | +/***/ "./node_modules/hash.js/lib/hash/ripemd.js": | ||
| 1963 | +/*!*************************************************!*\ | ||
| 1964 | + !*** ./node_modules/hash.js/lib/hash/ripemd.js ***! | ||
| 1965 | + \*************************************************/ | ||
| 1966 | +/*! no static exports found */ | ||
| 1967 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1968 | + | ||
| 1969 | +"use strict"; | ||
| 1970 | +eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\n\nvar common = __webpack_require__(/*! ./common */ \"./node_modules/hash.js/lib/hash/common.js\");\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160)) return new RIPEMD160();\n BlockHash.call(this);\n this.h = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n this.endian = 'little';\n}\n\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n\n for (var j = 0; j < 80; j++) {\n var T = sum32(rotl32(sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)), s[j]), E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(rotl32(sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)), sh[j]), Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex') return utils.toHex32(this.h, 'little');else return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15) return x ^ y ^ z;else if (j <= 31) return x & y | ~x & z;else if (j <= 47) return (x | ~y) ^ z;else if (j <= 63) return x & z | y & ~z;else return x ^ (y | ~z);\n}\n\nfunction K(j) {\n if (j <= 15) return 0x00000000;else if (j <= 31) return 0x5a827999;else if (j <= 47) return 0x6ed9eba1;else if (j <= 63) return 0x8f1bbcdc;else return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15) return 0x50a28be6;else if (j <= 31) return 0x5c4dd124;else if (j <= 47) return 0x6d703ef3;else if (j <= 63) return 0x7a6d76e9;else return 0x00000000;\n}\n\nvar r = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13];\nvar rh = [5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11];\nvar s = [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6];\nvar sh = [8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11];\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash.js/lib/hash/ripemd.js?"); | ||
| 1971 | + | ||
| 1972 | +/***/ }), | ||
| 1973 | + | ||
| 1974 | +/***/ "./node_modules/hash.js/lib/hash/sha.js": | ||
| 1975 | +/*!**********************************************!*\ | ||
| 1976 | + !*** ./node_modules/hash.js/lib/hash/sha.js ***! | ||
| 1977 | + \**********************************************/ | ||
| 1978 | +/*! no static exports found */ | ||
| 1979 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1980 | + | ||
| 1981 | +"use strict"; | ||
| 1982 | +eval("\n\nexports.sha1 = __webpack_require__(/*! ./sha/1 */ \"./node_modules/hash.js/lib/hash/sha/1.js\");\nexports.sha224 = __webpack_require__(/*! ./sha/224 */ \"./node_modules/hash.js/lib/hash/sha/224.js\");\nexports.sha256 = __webpack_require__(/*! ./sha/256 */ \"./node_modules/hash.js/lib/hash/sha/256.js\");\nexports.sha384 = __webpack_require__(/*! ./sha/384 */ \"./node_modules/hash.js/lib/hash/sha/384.js\");\nexports.sha512 = __webpack_require__(/*! ./sha/512 */ \"./node_modules/hash.js/lib/hash/sha/512.js\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash.js/lib/hash/sha.js?"); | ||
| 1983 | + | ||
| 1984 | +/***/ }), | ||
| 1985 | + | ||
| 1986 | +/***/ "./node_modules/hash.js/lib/hash/sha/1.js": | ||
| 1987 | +/*!************************************************!*\ | ||
| 1988 | + !*** ./node_modules/hash.js/lib/hash/sha/1.js ***! | ||
| 1989 | + \************************************************/ | ||
| 1990 | +/*! no static exports found */ | ||
| 1991 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 1992 | + | ||
| 1993 | +"use strict"; | ||
| 1994 | +eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\n\nvar common = __webpack_require__(/*! ../common */ \"./node_modules/hash.js/lib/hash/common.js\");\n\nvar shaCommon = __webpack_require__(/*! ./common */ \"./node_modules/hash.js/lib/hash/sha/common.js\");\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\nvar sha1_K = [0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xCA62C1D6];\n\nfunction SHA1() {\n if (!(this instanceof SHA1)) return new SHA1();\n BlockHash.call(this);\n this.h = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++) {\n W[i] = msg[start + i];\n }\n\n for (; i < W.length; i++) {\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n }\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex') return utils.toHex32(this.h, 'big');else return utils.split32(this.h, 'big');\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash.js/lib/hash/sha/1.js?"); | ||
| 1995 | + | ||
| 1996 | +/***/ }), | ||
| 1997 | + | ||
| 1998 | +/***/ "./node_modules/hash.js/lib/hash/sha/224.js": | ||
| 1999 | +/*!**************************************************!*\ | ||
| 2000 | + !*** ./node_modules/hash.js/lib/hash/sha/224.js ***! | ||
| 2001 | + \**************************************************/ | ||
| 2002 | +/*! no static exports found */ | ||
| 2003 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2004 | + | ||
| 2005 | +"use strict"; | ||
| 2006 | +eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\n\nvar SHA256 = __webpack_require__(/*! ./256 */ \"./node_modules/hash.js/lib/hash/sha/256.js\");\n\nfunction SHA224() {\n if (!(this instanceof SHA224)) return new SHA224();\n SHA256.call(this);\n this.h = [0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4];\n}\n\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex') return utils.toHex32(this.h.slice(0, 7), 'big');else return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash.js/lib/hash/sha/224.js?"); | ||
| 2007 | + | ||
| 2008 | +/***/ }), | ||
| 2009 | + | ||
| 2010 | +/***/ "./node_modules/hash.js/lib/hash/sha/256.js": | ||
| 2011 | +/*!**************************************************!*\ | ||
| 2012 | + !*** ./node_modules/hash.js/lib/hash/sha/256.js ***! | ||
| 2013 | + \**************************************************/ | ||
| 2014 | +/*! no static exports found */ | ||
| 2015 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2016 | + | ||
| 2017 | +"use strict"; | ||
| 2018 | +eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\n\nvar common = __webpack_require__(/*! ../common */ \"./node_modules/hash.js/lib/hash/common.js\");\n\nvar shaCommon = __webpack_require__(/*! ./common */ \"./node_modules/hash.js/lib/hash/sha/common.js\");\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\nvar BlockHash = common.BlockHash;\nvar sha256_K = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];\n\nfunction SHA256() {\n if (!(this instanceof SHA256)) return new SHA256();\n BlockHash.call(this);\n this.h = [0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19];\n this.k = sha256_K;\n this.W = new Array(64);\n}\n\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++) {\n W[i] = msg[start + i];\n }\n\n for (; i < W.length; i++) {\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n }\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n assert(this.k.length === W.length);\n\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex') return utils.toHex32(this.h, 'big');else return utils.split32(this.h, 'big');\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash.js/lib/hash/sha/256.js?"); | ||
| 2019 | + | ||
| 2020 | +/***/ }), | ||
| 2021 | + | ||
| 2022 | +/***/ "./node_modules/hash.js/lib/hash/sha/384.js": | ||
| 2023 | +/*!**************************************************!*\ | ||
| 2024 | + !*** ./node_modules/hash.js/lib/hash/sha/384.js ***! | ||
| 2025 | + \**************************************************/ | ||
| 2026 | +/*! no static exports found */ | ||
| 2027 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2028 | + | ||
| 2029 | +"use strict"; | ||
| 2030 | +eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\n\nvar SHA512 = __webpack_require__(/*! ./512 */ \"./node_modules/hash.js/lib/hash/sha/512.js\");\n\nfunction SHA384() {\n if (!(this instanceof SHA384)) return new SHA384();\n SHA512.call(this);\n this.h = [0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939, 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4];\n}\n\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex') return utils.toHex32(this.h.slice(0, 12), 'big');else return utils.split32(this.h.slice(0, 12), 'big');\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash.js/lib/hash/sha/384.js?"); | ||
| 2031 | + | ||
| 2032 | +/***/ }), | ||
| 2033 | + | ||
| 2034 | +/***/ "./node_modules/hash.js/lib/hash/sha/512.js": | ||
| 2035 | +/*!**************************************************!*\ | ||
| 2036 | + !*** ./node_modules/hash.js/lib/hash/sha/512.js ***! | ||
| 2037 | + \**************************************************/ | ||
| 2038 | +/*! no static exports found */ | ||
| 2039 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2040 | + | ||
| 2041 | +"use strict"; | ||
| 2042 | +eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\n\nvar common = __webpack_require__(/*! ../common */ \"./node_modules/hash.js/lib/hash/common.js\");\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\nvar BlockHash = common.BlockHash;\nvar sha512_K = [0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817];\n\nfunction SHA512() {\n if (!(this instanceof SHA512)) return new SHA512();\n BlockHash.call(this);\n this.h = [0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1, 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179];\n this.k = sha512_K;\n this.W = new Array(160);\n}\n\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W; // 32 x 32bit words\n\n for (var i = 0; i < 32; i++) {\n W[i] = msg[start + i];\n }\n\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n\n var c3_lo = W[i - 31];\n W[i] = sum64_4_hi(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n assert(this.k.length === W.length);\n\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n var T1_hi = sum64_5_hi(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo, c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo, c4_hi, c4_lo);\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n hh = gh;\n hl = gl;\n gh = fh;\n gl = fl;\n fh = eh;\n fl = el;\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n dh = ch;\n dl = cl;\n ch = bh;\n cl = bl;\n bh = ah;\n bl = al;\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex') return utils.toHex32(this.h, 'big');else return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = xh & yh ^ ~xh & zh;\n if (r < 0) r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = xl & yl ^ ~xl & zl;\n if (r < 0) r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = xh & yh ^ xh & zh ^ yh & zh;\n if (r < 0) r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = xl & yl ^ xl & zl ^ yl & zl;\n if (r < 0) r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0) r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0) r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0) r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0) r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0) r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0) r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n\n var c2_hi = shr64_hi(xh, xl, 6);\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0) r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n\n var c2_lo = shr64_lo(xh, xl, 6);\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0) r += 0x100000000;\n return r;\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash.js/lib/hash/sha/512.js?"); | ||
| 2043 | + | ||
| 2044 | +/***/ }), | ||
| 2045 | + | ||
| 2046 | +/***/ "./node_modules/hash.js/lib/hash/sha/common.js": | ||
| 2047 | +/*!*****************************************************!*\ | ||
| 2048 | + !*** ./node_modules/hash.js/lib/hash/sha/common.js ***! | ||
| 2049 | + \*****************************************************/ | ||
| 2050 | +/*! no static exports found */ | ||
| 2051 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2052 | + | ||
| 2053 | +"use strict"; | ||
| 2054 | +eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\n\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0) return ch32(x, y, z);\n if (s === 1 || s === 3) return p32(x, y, z);\n if (s === 2) return maj32(x, y, z);\n}\n\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return x & y ^ ~x & z;\n}\n\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return x & y ^ x & z ^ y & z;\n}\n\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\n\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\n\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\n\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ x >>> 3;\n}\n\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ x >>> 10;\n}\n\nexports.g1_256 = g1_256;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash.js/lib/hash/sha/common.js?"); | ||
| 2055 | + | ||
| 2056 | +/***/ }), | ||
| 2057 | + | ||
| 2058 | +/***/ "./node_modules/hash.js/lib/hash/utils.js": | ||
| 2059 | +/*!************************************************!*\ | ||
| 2060 | + !*** ./node_modules/hash.js/lib/hash/utils.js ***! | ||
| 2061 | + \************************************************/ | ||
| 2062 | +/*! no static exports found */ | ||
| 2063 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2064 | + | ||
| 2065 | +"use strict"; | ||
| 2066 | +eval("\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg)) return msg.slice();\n if (!msg) return [];\n var res = [];\n\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = c >> 6 | 192;\n res[p++] = c & 63 | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = c >> 18 | 240;\n res[p++] = c >> 12 & 63 | 128;\n res[p++] = c >> 6 & 63 | 128;\n res[p++] = c & 63 | 128;\n } else {\n res[p++] = c >> 12 | 224;\n res[p++] = c >> 6 & 63 | 128;\n res[p++] = c & 63 | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0) msg = '0' + msg;\n\n for (i = 0; i < msg.length; i += 2) {\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n }\n } else {\n for (i = 0; i < msg.length; i++) {\n res[i] = msg[i] | 0;\n }\n }\n\n return res;\n}\n\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n\n for (var i = 0; i < msg.length; i++) {\n res += zero2(msg[i].toString(16));\n }\n\n return res;\n}\n\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = w >>> 24 | w >>> 8 & 0xff00 | w << 8 & 0xff0000 | (w & 0xff) << 24;\n return res >>> 0;\n}\n\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little') w = htonl(w);\n res += zero8(w.toString(16));\n }\n\n return res;\n}\n\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1) return '0' + word;else return word;\n}\n\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7) return '0' + word;else if (word.length === 6) return '00' + word;else if (word.length === 5) return '000' + word;else if (word.length === 4) return '0000' + word;else if (word.length === 3) return '00000' + word;else if (word.length === 2) return '000000' + word;else if (word.length === 1) return '0000000' + word;else return word;\n}\n\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big') w = msg[k] << 24 | msg[k + 1] << 16 | msg[k + 2] << 8 | msg[k + 3];else w = msg[k + 3] << 24 | msg[k + 2] << 16 | msg[k + 1] << 8 | msg[k];\n res[i] = w >>> 0;\n }\n\n return res;\n}\n\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = m >>> 16 & 0xff;\n res[k + 2] = m >>> 8 & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = m >>> 16 & 0xff;\n res[k + 1] = m >>> 8 & 0xff;\n res[k] = m & 0xff;\n }\n }\n\n return res;\n}\n\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return w >>> b | w << 32 - b;\n}\n\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return w << b | w >>> 32 - b;\n}\n\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return a + b >>> 0;\n}\n\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return a + b + c >>> 0;\n}\n\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return a + b + c + d >>> 0;\n}\n\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return a + b + c + d + e >>> 0;\n}\n\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n var lo = al + bl >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\n\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = al + bl >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\n\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\n\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = lo + bl >>> 0;\n carry += lo < al ? 1 : 0;\n lo = lo + cl >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = lo + dl >>> 0;\n carry += lo < dl ? 1 : 0;\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\n\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\n\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = lo + bl >>> 0;\n carry += lo < al ? 1 : 0;\n lo = lo + cl >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = lo + dl >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = lo + el >>> 0;\n carry += lo < el ? 1 : 0;\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\n\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n return lo >>> 0;\n}\n\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = al << 32 - num | ah >>> num;\n return r >>> 0;\n}\n\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = ah << 32 - num | al >>> num;\n return r >>> 0;\n}\n\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\n\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = ah << 32 - num | al >>> num;\n return r >>> 0;\n}\n\nexports.shr64_lo = shr64_lo;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hash.js/lib/hash/utils.js?"); | ||
| 2067 | + | ||
| 2068 | +/***/ }), | ||
| 2069 | + | ||
| 2070 | +/***/ "./node_modules/hmac-drbg/lib/hmac-drbg.js": | ||
| 2071 | +/*!*************************************************!*\ | ||
| 2072 | + !*** ./node_modules/hmac-drbg/lib/hmac-drbg.js ***! | ||
| 2073 | + \*************************************************/ | ||
| 2074 | +/*! no static exports found */ | ||
| 2075 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2076 | + | ||
| 2077 | +"use strict"; | ||
| 2078 | +eval("\n\nvar hash = __webpack_require__(/*! hash.js */ \"./node_modules/hash.js/lib/hash.js\");\n\nvar utils = __webpack_require__(/*! minimalistic-crypto-utils */ \"./node_modules/minimalistic-crypto-utils/lib/utils.js\");\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG)) return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= this.minEntropy / 8, 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._init(entropy, nonce, pers);\n}\n\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac().update(this.V).update([0x00]);\n\n if (seed) kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed) return;\n this.K = this._hmac().update(this.V).update([0x01]).update(seed).digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n assert(entropy.length >= this.minEntropy / 8, 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval) throw new Error('Reseed is required'); // Optional encoding\n\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n } // Optional additional data\n\n\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n\n this._update(add);\n }\n\n var temp = [];\n\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n\n this._update(add);\n\n this._reseed++;\n return utils.encode(res, enc);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/hmac-drbg/lib/hmac-drbg.js?"); | ||
| 2079 | + | ||
| 2080 | +/***/ }), | ||
| 2081 | + | ||
| 2082 | +/***/ "./node_modules/ieee754/index.js": | ||
| 2083 | +/*!***************************************!*\ | ||
| 2084 | + !*** ./node_modules/ieee754/index.js ***! | ||
| 2085 | + \***************************************/ | ||
| 2086 | +/*! no static exports found */ | ||
| 2087 | +/***/ (function(module, exports) { | ||
| 2088 | + | ||
| 2089 | +eval("/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n};\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = e << mLen | m;\n eLen += mLen;\n\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/ieee754/index.js?"); | ||
| 2090 | + | ||
| 2091 | +/***/ }), | ||
| 2092 | + | ||
| 2093 | +/***/ "./node_modules/inherits/inherits_browser.js": | ||
| 2094 | +/*!***************************************************!*\ | ||
| 2095 | + !*** ./node_modules/inherits/inherits_browser.js ***! | ||
| 2096 | + \***************************************************/ | ||
| 2097 | +/*! no static exports found */ | ||
| 2098 | +/***/ (function(module, exports) { | ||
| 2099 | + | ||
| 2100 | +eval("if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/inherits/inherits_browser.js?"); | ||
| 2101 | + | ||
| 2102 | +/***/ }), | ||
| 2103 | + | ||
| 2104 | +/***/ "./node_modules/isarray/index.js": | ||
| 2105 | +/*!***************************************!*\ | ||
| 2106 | + !*** ./node_modules/isarray/index.js ***! | ||
| 2107 | + \***************************************/ | ||
| 2108 | +/*! no static exports found */ | ||
| 2109 | +/***/ (function(module, exports) { | ||
| 2110 | + | ||
| 2111 | +eval("var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/isarray/index.js?"); | ||
| 2112 | + | ||
| 2113 | +/***/ }), | ||
| 2114 | + | ||
| 2115 | +/***/ "./node_modules/md5.js/index.js": | ||
| 2116 | +/*!**************************************!*\ | ||
| 2117 | + !*** ./node_modules/md5.js/index.js ***! | ||
| 2118 | + \**************************************/ | ||
| 2119 | +/*! no static exports found */ | ||
| 2120 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2121 | + | ||
| 2122 | +"use strict"; | ||
| 2123 | +eval("\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar HashBase = __webpack_require__(/*! hash-base */ \"./node_modules/hash-base/index.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar ARRAY16 = new Array(16);\n\nfunction MD5() {\n HashBase.call(this, 64); // state\n\n this._a = 0x67452301;\n this._b = 0xefcdab89;\n this._c = 0x98badcfe;\n this._d = 0x10325476;\n}\n\ninherits(MD5, HashBase);\n\nMD5.prototype._update = function () {\n var M = ARRAY16;\n\n for (var i = 0; i < 16; ++i) {\n M[i] = this._block.readInt32LE(i * 4);\n }\n\n var a = this._a;\n var b = this._b;\n var c = this._c;\n var d = this._d;\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7);\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12);\n c = fnF(c, d, a, b, M[2], 0x242070db, 17);\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22);\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7);\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12);\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17);\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22);\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7);\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12);\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17);\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22);\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7);\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12);\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17);\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22);\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5);\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9);\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14);\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20);\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5);\n d = fnG(d, a, b, c, M[10], 0x02441453, 9);\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14);\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20);\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5);\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9);\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14);\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20);\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5);\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9);\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14);\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20);\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4);\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11);\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16);\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23);\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4);\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11);\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16);\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23);\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4);\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11);\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16);\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23);\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4);\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11);\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16);\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23);\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6);\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10);\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15);\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21);\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6);\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10);\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15);\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21);\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6);\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10);\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15);\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21);\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6);\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10);\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15);\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21);\n this._a = this._a + a | 0;\n this._b = this._b + b | 0;\n this._c = this._c + c | 0;\n this._d = this._d + d | 0;\n};\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80;\n\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64);\n\n this._update();\n\n this._blockOffset = 0;\n }\n\n this._block.fill(0, this._blockOffset, 56);\n\n this._block.writeUInt32LE(this._length[0], 56);\n\n this._block.writeUInt32LE(this._length[1], 60);\n\n this._update(); // produce result\n\n\n var buffer = Buffer.allocUnsafe(16);\n buffer.writeInt32LE(this._a, 0);\n buffer.writeInt32LE(this._b, 4);\n buffer.writeInt32LE(this._c, 8);\n buffer.writeInt32LE(this._d, 12);\n return buffer;\n};\n\nfunction rotl(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction fnF(a, b, c, d, m, k, s) {\n return rotl(a + (b & c | ~b & d) + m + k | 0, s) + b | 0;\n}\n\nfunction fnG(a, b, c, d, m, k, s) {\n return rotl(a + (b & d | c & ~d) + m + k | 0, s) + b | 0;\n}\n\nfunction fnH(a, b, c, d, m, k, s) {\n return rotl(a + (b ^ c ^ d) + m + k | 0, s) + b | 0;\n}\n\nfunction fnI(a, b, c, d, m, k, s) {\n return rotl(a + (c ^ (b | ~d)) + m + k | 0, s) + b | 0;\n}\n\nmodule.exports = MD5;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/md5.js/index.js?"); | ||
| 2124 | + | ||
| 2125 | +/***/ }), | ||
| 2126 | + | ||
| 2127 | +/***/ "./node_modules/miller-rabin/lib/mr.js": | ||
| 2128 | +/*!*********************************************!*\ | ||
| 2129 | + !*** ./node_modules/miller-rabin/lib/mr.js ***! | ||
| 2130 | + \*********************************************/ | ||
| 2131 | +/*! no static exports found */ | ||
| 2132 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2133 | + | ||
| 2134 | +eval("var bn = __webpack_require__(/*! bn.js */ \"./node_modules/miller-rabin/node_modules/bn.js/lib/bn.js\");\n\nvar brorand = __webpack_require__(/*! brorand */ \"./node_modules/brorand/index.js\");\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\n\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8); // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n\n do {\n var a = new bn(this.rand.generate(min_bytes));\n } while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n if (!k) k = Math.max(1, len / 48 | 0); // Find d and s, (n - 1) = (2 ^ s) * d;\n\n var n1 = n.subn(1);\n\n for (var s = 0; !n1.testn(s); s++) {}\n\n var d = n.shrn(s);\n var rn1 = n1.toRed(red);\n var prime = true;\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n if (cb) cb(a);\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n if (x.cmp(rone) === 0) return false;\n if (x.cmp(rn1) === 0) break;\n }\n\n if (i === s) return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n if (!k) k = Math.max(1, len / 48 | 0); // Find d and s, (n - 1) = (2 ^ s) * d;\n\n var n1 = n.subn(1);\n\n for (var s = 0; !n1.testn(s); s++) {}\n\n var d = n.shrn(s);\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0) return g;\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n if (x.cmp(rone) === 0) return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0) break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/miller-rabin/lib/mr.js?"); | ||
| 2135 | + | ||
| 2136 | +/***/ }), | ||
| 2137 | + | ||
| 2138 | +/***/ "./node_modules/miller-rabin/node_modules/bn.js/lib/bn.js": | ||
| 2139 | +/*!****************************************************************!*\ | ||
| 2140 | + !*** ./node_modules/miller-rabin/node_modules/bn.js/lib/bn.js ***! | ||
| 2141 | + \****************************************************************/ | ||
| 2142 | +/*! no static exports found */ | ||
| 2143 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2144 | + | ||
| 2145 | +eval("/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {\n 'use strict'; // Utils\n\n function assert(val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n } // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n\n\n function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n } // BN\n\n\n function BN(number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0; // Reduction context\n\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n var Buffer;\n\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = __webpack_require__(/*! buffer */ 5).Buffer;\n }\n } catch (e) {}\n\n BN.isBN = function isBN(num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max(left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min(left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init(number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n\n assert(base === (base | 0) && base >= 2 && base <= 36);\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber(number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n this.length = 3;\n }\n\n if (endian !== 'le') return; // Reverse the bytes\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray(number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;\n this.words[j] |= w << off & 0x3ffffff;\n this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n off += 24;\n\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;\n this.words[j] |= w << off & 0x3ffffff;\n this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n off += 24;\n\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n\n return this.strip();\n };\n\n function parseHex4Bits(string, index) {\n var c = string.charCodeAt(index); // 'A' - 'F'\n\n if (c >= 65 && c <= 70) {\n return c - 55; // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87; // '0' - '9'\n } else {\n return c - 48 & 0xf;\n }\n }\n\n function parseHexByte(string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex(number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n } // 24-bits chunks\n\n\n var off = 0;\n var j = 0;\n var w;\n\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase(str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n r *= mul; // 'a'\n\n if (c >= 49) {\n r += c - 49 + 0xa; // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa; // '0' - '9'\n } else {\n r += c;\n }\n }\n\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase(number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1; // Find length of limb in base\n\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n\n limbLen--;\n limbPow = limbPow / base | 0;\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n var word = 0;\n\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n this.imuln(limbPow);\n\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy(dest) {\n dest.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone() {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand(size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n\n return this;\n }; // Remove leading `0` from `this`\n\n\n BN.prototype.strip = function strip() {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign() {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n\n return this;\n };\n\n BN.prototype.inspect = function inspect() {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n };\n /*\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n */\n\n\n var zeros = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n BN.prototype.toString = function toString(base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n var out;\n\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = ((w << off | carry) & 0xffffff).toString(16);\n carry = w >>> 24 - off & 0xffffff;\n\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n\n off += 2;\n\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\n\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base]; // var groupBase = Math.pow(base, groupSize);\n\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n\n if (this.isZero()) {\n out = '0' + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\n\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber() {\n var ret = this.words[0];\n\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + this.words[1] * 0x4000000;\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n\n return this.negative !== 0 ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON() {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer(endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray(endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n var b, i;\n var q = this.clone();\n\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits(w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits(w) {\n var t = w;\n var r = 0;\n\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits(w) {\n // Short-cut\n if (w === 0) return 26;\n var t = w;\n var r = 0;\n\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n\n if ((t & 0x1) === 0) {\n r++;\n }\n\n return r;\n }; // Return number of used bits in a BN\n\n\n BN.prototype.bitLength = function bitLength() {\n var w = this.words[this.length - 1];\n\n var hi = this._countBits(w);\n\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray(num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n w[bit] = (num.words[off] & 1 << wbit) >>> wbit;\n }\n\n return w;\n } // Number of trailing zero bits\n\n\n BN.prototype.zeroBits = function zeroBits() {\n if (this.isZero()) return 0;\n var r = 0;\n\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n\n r += b;\n if (b !== 26) break;\n }\n\n return r;\n };\n\n BN.prototype.byteLength = function byteLength() {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos(width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos(width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg() {\n return this.negative !== 0;\n }; // Return negative clone of `this`\n\n\n BN.prototype.neg = function neg() {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg() {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n }; // Or `num` with `this` in-place\n\n\n BN.prototype.iuor = function iuor(num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n }; // Or `num` with `this`\n\n\n BN.prototype.or = function or(num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor(num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n }; // And `num` with `this` in-place\n\n\n BN.prototype.iuand = function iuand(num) {\n // b = min-length(num, this)\n var b;\n\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n return this.strip();\n };\n\n BN.prototype.iand = function iand(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n }; // And `num` with `this`\n\n\n BN.prototype.and = function and(num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand(num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n }; // Xor `num` with `this` in-place\n\n\n BN.prototype.iuxor = function iuxor(num) {\n // a.length > b.length\n var a;\n var b;\n\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n }; // Xor `num` with `this`\n\n\n BN.prototype.xor = function xor(num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor(num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n }; // Not ``this`` with ``width`` bitwidth\n\n\n BN.prototype.inotn = function inotn(width) {\n assert(typeof width === 'number' && width >= 0);\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n } // Handle complete words\n\n\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n } // Handle the residue\n\n\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n } // And remove leading zeroes\n\n\n return this.strip();\n };\n\n BN.prototype.notn = function notn(width) {\n return this.clone().inotn(width);\n }; // Set `bit` of `this`\n\n\n BN.prototype.setn = function setn(bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | 1 << wbit;\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n }; // Add `num` to `this` in-place\n\n\n BN.prototype.iadd = function iadd(num) {\n var r; // negative + positive\n\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign(); // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n } // a.length > b.length\n\n\n var a, b;\n\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++; // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n }; // Add `num` to `this`\n\n\n BN.prototype.add = function add(num) {\n var res;\n\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n return num.clone().iadd(this);\n }; // Subtract `num` from `this` in-place\n\n\n BN.prototype.isub = function isub(num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign(); // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n } // At this point both numbers are positive\n\n\n var cmp = this.cmp(num); // Optimization - zeroify\n\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n } // a > b\n\n\n var a, b;\n\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n } // Copy rest of the words\n\n\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n }; // Subtract `num` from `this`\n\n\n BN.prototype.sub = function sub(num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo(self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = self.length + num.length | 0;\n out.length = len;\n len = len - 1 | 0; // Peel one iteration (compiler can't do it, because of code complexity)\n\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n var lo = r & 0x3ffffff;\n var carry = r / 0x4000000 | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += r / 0x4000000 | 0;\n rword = r & 0x3ffffff;\n }\n\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n } // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n\n\n var comb10MulTo = function comb10MulTo(self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = mid + Math.imul(ah0, bl0) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = mid + Math.imul(ah1, bl0) | 0;\n hi = Math.imul(ah1, bh0);\n lo = lo + Math.imul(al0, bl1) | 0;\n mid = mid + Math.imul(al0, bh1) | 0;\n mid = mid + Math.imul(ah0, bl1) | 0;\n hi = hi + Math.imul(ah0, bh1) | 0;\n var w1 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = mid + Math.imul(ah2, bl0) | 0;\n hi = Math.imul(ah2, bh0);\n lo = lo + Math.imul(al1, bl1) | 0;\n mid = mid + Math.imul(al1, bh1) | 0;\n mid = mid + Math.imul(ah1, bl1) | 0;\n hi = hi + Math.imul(ah1, bh1) | 0;\n lo = lo + Math.imul(al0, bl2) | 0;\n mid = mid + Math.imul(al0, bh2) | 0;\n mid = mid + Math.imul(ah0, bl2) | 0;\n hi = hi + Math.imul(ah0, bh2) | 0;\n var w2 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = mid + Math.imul(ah3, bl0) | 0;\n hi = Math.imul(ah3, bh0);\n lo = lo + Math.imul(al2, bl1) | 0;\n mid = mid + Math.imul(al2, bh1) | 0;\n mid = mid + Math.imul(ah2, bl1) | 0;\n hi = hi + Math.imul(ah2, bh1) | 0;\n lo = lo + Math.imul(al1, bl2) | 0;\n mid = mid + Math.imul(al1, bh2) | 0;\n mid = mid + Math.imul(ah1, bl2) | 0;\n hi = hi + Math.imul(ah1, bh2) | 0;\n lo = lo + Math.imul(al0, bl3) | 0;\n mid = mid + Math.imul(al0, bh3) | 0;\n mid = mid + Math.imul(ah0, bl3) | 0;\n hi = hi + Math.imul(ah0, bh3) | 0;\n var w3 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = mid + Math.imul(ah4, bl0) | 0;\n hi = Math.imul(ah4, bh0);\n lo = lo + Math.imul(al3, bl1) | 0;\n mid = mid + Math.imul(al3, bh1) | 0;\n mid = mid + Math.imul(ah3, bl1) | 0;\n hi = hi + Math.imul(ah3, bh1) | 0;\n lo = lo + Math.imul(al2, bl2) | 0;\n mid = mid + Math.imul(al2, bh2) | 0;\n mid = mid + Math.imul(ah2, bl2) | 0;\n hi = hi + Math.imul(ah2, bh2) | 0;\n lo = lo + Math.imul(al1, bl3) | 0;\n mid = mid + Math.imul(al1, bh3) | 0;\n mid = mid + Math.imul(ah1, bl3) | 0;\n hi = hi + Math.imul(ah1, bh3) | 0;\n lo = lo + Math.imul(al0, bl4) | 0;\n mid = mid + Math.imul(al0, bh4) | 0;\n mid = mid + Math.imul(ah0, bl4) | 0;\n hi = hi + Math.imul(ah0, bh4) | 0;\n var w4 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = mid + Math.imul(ah5, bl0) | 0;\n hi = Math.imul(ah5, bh0);\n lo = lo + Math.imul(al4, bl1) | 0;\n mid = mid + Math.imul(al4, bh1) | 0;\n mid = mid + Math.imul(ah4, bl1) | 0;\n hi = hi + Math.imul(ah4, bh1) | 0;\n lo = lo + Math.imul(al3, bl2) | 0;\n mid = mid + Math.imul(al3, bh2) | 0;\n mid = mid + Math.imul(ah3, bl2) | 0;\n hi = hi + Math.imul(ah3, bh2) | 0;\n lo = lo + Math.imul(al2, bl3) | 0;\n mid = mid + Math.imul(al2, bh3) | 0;\n mid = mid + Math.imul(ah2, bl3) | 0;\n hi = hi + Math.imul(ah2, bh3) | 0;\n lo = lo + Math.imul(al1, bl4) | 0;\n mid = mid + Math.imul(al1, bh4) | 0;\n mid = mid + Math.imul(ah1, bl4) | 0;\n hi = hi + Math.imul(ah1, bh4) | 0;\n lo = lo + Math.imul(al0, bl5) | 0;\n mid = mid + Math.imul(al0, bh5) | 0;\n mid = mid + Math.imul(ah0, bl5) | 0;\n hi = hi + Math.imul(ah0, bh5) | 0;\n var w5 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = mid + Math.imul(ah6, bl0) | 0;\n hi = Math.imul(ah6, bh0);\n lo = lo + Math.imul(al5, bl1) | 0;\n mid = mid + Math.imul(al5, bh1) | 0;\n mid = mid + Math.imul(ah5, bl1) | 0;\n hi = hi + Math.imul(ah5, bh1) | 0;\n lo = lo + Math.imul(al4, bl2) | 0;\n mid = mid + Math.imul(al4, bh2) | 0;\n mid = mid + Math.imul(ah4, bl2) | 0;\n hi = hi + Math.imul(ah4, bh2) | 0;\n lo = lo + Math.imul(al3, bl3) | 0;\n mid = mid + Math.imul(al3, bh3) | 0;\n mid = mid + Math.imul(ah3, bl3) | 0;\n hi = hi + Math.imul(ah3, bh3) | 0;\n lo = lo + Math.imul(al2, bl4) | 0;\n mid = mid + Math.imul(al2, bh4) | 0;\n mid = mid + Math.imul(ah2, bl4) | 0;\n hi = hi + Math.imul(ah2, bh4) | 0;\n lo = lo + Math.imul(al1, bl5) | 0;\n mid = mid + Math.imul(al1, bh5) | 0;\n mid = mid + Math.imul(ah1, bl5) | 0;\n hi = hi + Math.imul(ah1, bh5) | 0;\n lo = lo + Math.imul(al0, bl6) | 0;\n mid = mid + Math.imul(al0, bh6) | 0;\n mid = mid + Math.imul(ah0, bl6) | 0;\n hi = hi + Math.imul(ah0, bh6) | 0;\n var w6 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = mid + Math.imul(ah7, bl0) | 0;\n hi = Math.imul(ah7, bh0);\n lo = lo + Math.imul(al6, bl1) | 0;\n mid = mid + Math.imul(al6, bh1) | 0;\n mid = mid + Math.imul(ah6, bl1) | 0;\n hi = hi + Math.imul(ah6, bh1) | 0;\n lo = lo + Math.imul(al5, bl2) | 0;\n mid = mid + Math.imul(al5, bh2) | 0;\n mid = mid + Math.imul(ah5, bl2) | 0;\n hi = hi + Math.imul(ah5, bh2) | 0;\n lo = lo + Math.imul(al4, bl3) | 0;\n mid = mid + Math.imul(al4, bh3) | 0;\n mid = mid + Math.imul(ah4, bl3) | 0;\n hi = hi + Math.imul(ah4, bh3) | 0;\n lo = lo + Math.imul(al3, bl4) | 0;\n mid = mid + Math.imul(al3, bh4) | 0;\n mid = mid + Math.imul(ah3, bl4) | 0;\n hi = hi + Math.imul(ah3, bh4) | 0;\n lo = lo + Math.imul(al2, bl5) | 0;\n mid = mid + Math.imul(al2, bh5) | 0;\n mid = mid + Math.imul(ah2, bl5) | 0;\n hi = hi + Math.imul(ah2, bh5) | 0;\n lo = lo + Math.imul(al1, bl6) | 0;\n mid = mid + Math.imul(al1, bh6) | 0;\n mid = mid + Math.imul(ah1, bl6) | 0;\n hi = hi + Math.imul(ah1, bh6) | 0;\n lo = lo + Math.imul(al0, bl7) | 0;\n mid = mid + Math.imul(al0, bh7) | 0;\n mid = mid + Math.imul(ah0, bl7) | 0;\n hi = hi + Math.imul(ah0, bh7) | 0;\n var w7 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = mid + Math.imul(ah8, bl0) | 0;\n hi = Math.imul(ah8, bh0);\n lo = lo + Math.imul(al7, bl1) | 0;\n mid = mid + Math.imul(al7, bh1) | 0;\n mid = mid + Math.imul(ah7, bl1) | 0;\n hi = hi + Math.imul(ah7, bh1) | 0;\n lo = lo + Math.imul(al6, bl2) | 0;\n mid = mid + Math.imul(al6, bh2) | 0;\n mid = mid + Math.imul(ah6, bl2) | 0;\n hi = hi + Math.imul(ah6, bh2) | 0;\n lo = lo + Math.imul(al5, bl3) | 0;\n mid = mid + Math.imul(al5, bh3) | 0;\n mid = mid + Math.imul(ah5, bl3) | 0;\n hi = hi + Math.imul(ah5, bh3) | 0;\n lo = lo + Math.imul(al4, bl4) | 0;\n mid = mid + Math.imul(al4, bh4) | 0;\n mid = mid + Math.imul(ah4, bl4) | 0;\n hi = hi + Math.imul(ah4, bh4) | 0;\n lo = lo + Math.imul(al3, bl5) | 0;\n mid = mid + Math.imul(al3, bh5) | 0;\n mid = mid + Math.imul(ah3, bl5) | 0;\n hi = hi + Math.imul(ah3, bh5) | 0;\n lo = lo + Math.imul(al2, bl6) | 0;\n mid = mid + Math.imul(al2, bh6) | 0;\n mid = mid + Math.imul(ah2, bl6) | 0;\n hi = hi + Math.imul(ah2, bh6) | 0;\n lo = lo + Math.imul(al1, bl7) | 0;\n mid = mid + Math.imul(al1, bh7) | 0;\n mid = mid + Math.imul(ah1, bl7) | 0;\n hi = hi + Math.imul(ah1, bh7) | 0;\n lo = lo + Math.imul(al0, bl8) | 0;\n mid = mid + Math.imul(al0, bh8) | 0;\n mid = mid + Math.imul(ah0, bl8) | 0;\n hi = hi + Math.imul(ah0, bh8) | 0;\n var w8 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = mid + Math.imul(ah9, bl0) | 0;\n hi = Math.imul(ah9, bh0);\n lo = lo + Math.imul(al8, bl1) | 0;\n mid = mid + Math.imul(al8, bh1) | 0;\n mid = mid + Math.imul(ah8, bl1) | 0;\n hi = hi + Math.imul(ah8, bh1) | 0;\n lo = lo + Math.imul(al7, bl2) | 0;\n mid = mid + Math.imul(al7, bh2) | 0;\n mid = mid + Math.imul(ah7, bl2) | 0;\n hi = hi + Math.imul(ah7, bh2) | 0;\n lo = lo + Math.imul(al6, bl3) | 0;\n mid = mid + Math.imul(al6, bh3) | 0;\n mid = mid + Math.imul(ah6, bl3) | 0;\n hi = hi + Math.imul(ah6, bh3) | 0;\n lo = lo + Math.imul(al5, bl4) | 0;\n mid = mid + Math.imul(al5, bh4) | 0;\n mid = mid + Math.imul(ah5, bl4) | 0;\n hi = hi + Math.imul(ah5, bh4) | 0;\n lo = lo + Math.imul(al4, bl5) | 0;\n mid = mid + Math.imul(al4, bh5) | 0;\n mid = mid + Math.imul(ah4, bl5) | 0;\n hi = hi + Math.imul(ah4, bh5) | 0;\n lo = lo + Math.imul(al3, bl6) | 0;\n mid = mid + Math.imul(al3, bh6) | 0;\n mid = mid + Math.imul(ah3, bl6) | 0;\n hi = hi + Math.imul(ah3, bh6) | 0;\n lo = lo + Math.imul(al2, bl7) | 0;\n mid = mid + Math.imul(al2, bh7) | 0;\n mid = mid + Math.imul(ah2, bl7) | 0;\n hi = hi + Math.imul(ah2, bh7) | 0;\n lo = lo + Math.imul(al1, bl8) | 0;\n mid = mid + Math.imul(al1, bh8) | 0;\n mid = mid + Math.imul(ah1, bl8) | 0;\n hi = hi + Math.imul(ah1, bh8) | 0;\n lo = lo + Math.imul(al0, bl9) | 0;\n mid = mid + Math.imul(al0, bh9) | 0;\n mid = mid + Math.imul(ah0, bl9) | 0;\n hi = hi + Math.imul(ah0, bh9) | 0;\n var w9 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = mid + Math.imul(ah9, bl1) | 0;\n hi = Math.imul(ah9, bh1);\n lo = lo + Math.imul(al8, bl2) | 0;\n mid = mid + Math.imul(al8, bh2) | 0;\n mid = mid + Math.imul(ah8, bl2) | 0;\n hi = hi + Math.imul(ah8, bh2) | 0;\n lo = lo + Math.imul(al7, bl3) | 0;\n mid = mid + Math.imul(al7, bh3) | 0;\n mid = mid + Math.imul(ah7, bl3) | 0;\n hi = hi + Math.imul(ah7, bh3) | 0;\n lo = lo + Math.imul(al6, bl4) | 0;\n mid = mid + Math.imul(al6, bh4) | 0;\n mid = mid + Math.imul(ah6, bl4) | 0;\n hi = hi + Math.imul(ah6, bh4) | 0;\n lo = lo + Math.imul(al5, bl5) | 0;\n mid = mid + Math.imul(al5, bh5) | 0;\n mid = mid + Math.imul(ah5, bl5) | 0;\n hi = hi + Math.imul(ah5, bh5) | 0;\n lo = lo + Math.imul(al4, bl6) | 0;\n mid = mid + Math.imul(al4, bh6) | 0;\n mid = mid + Math.imul(ah4, bl6) | 0;\n hi = hi + Math.imul(ah4, bh6) | 0;\n lo = lo + Math.imul(al3, bl7) | 0;\n mid = mid + Math.imul(al3, bh7) | 0;\n mid = mid + Math.imul(ah3, bl7) | 0;\n hi = hi + Math.imul(ah3, bh7) | 0;\n lo = lo + Math.imul(al2, bl8) | 0;\n mid = mid + Math.imul(al2, bh8) | 0;\n mid = mid + Math.imul(ah2, bl8) | 0;\n hi = hi + Math.imul(ah2, bh8) | 0;\n lo = lo + Math.imul(al1, bl9) | 0;\n mid = mid + Math.imul(al1, bh9) | 0;\n mid = mid + Math.imul(ah1, bl9) | 0;\n hi = hi + Math.imul(ah1, bh9) | 0;\n var w10 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = mid + Math.imul(ah9, bl2) | 0;\n hi = Math.imul(ah9, bh2);\n lo = lo + Math.imul(al8, bl3) | 0;\n mid = mid + Math.imul(al8, bh3) | 0;\n mid = mid + Math.imul(ah8, bl3) | 0;\n hi = hi + Math.imul(ah8, bh3) | 0;\n lo = lo + Math.imul(al7, bl4) | 0;\n mid = mid + Math.imul(al7, bh4) | 0;\n mid = mid + Math.imul(ah7, bl4) | 0;\n hi = hi + Math.imul(ah7, bh4) | 0;\n lo = lo + Math.imul(al6, bl5) | 0;\n mid = mid + Math.imul(al6, bh5) | 0;\n mid = mid + Math.imul(ah6, bl5) | 0;\n hi = hi + Math.imul(ah6, bh5) | 0;\n lo = lo + Math.imul(al5, bl6) | 0;\n mid = mid + Math.imul(al5, bh6) | 0;\n mid = mid + Math.imul(ah5, bl6) | 0;\n hi = hi + Math.imul(ah5, bh6) | 0;\n lo = lo + Math.imul(al4, bl7) | 0;\n mid = mid + Math.imul(al4, bh7) | 0;\n mid = mid + Math.imul(ah4, bl7) | 0;\n hi = hi + Math.imul(ah4, bh7) | 0;\n lo = lo + Math.imul(al3, bl8) | 0;\n mid = mid + Math.imul(al3, bh8) | 0;\n mid = mid + Math.imul(ah3, bl8) | 0;\n hi = hi + Math.imul(ah3, bh8) | 0;\n lo = lo + Math.imul(al2, bl9) | 0;\n mid = mid + Math.imul(al2, bh9) | 0;\n mid = mid + Math.imul(ah2, bl9) | 0;\n hi = hi + Math.imul(ah2, bh9) | 0;\n var w11 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = mid + Math.imul(ah9, bl3) | 0;\n hi = Math.imul(ah9, bh3);\n lo = lo + Math.imul(al8, bl4) | 0;\n mid = mid + Math.imul(al8, bh4) | 0;\n mid = mid + Math.imul(ah8, bl4) | 0;\n hi = hi + Math.imul(ah8, bh4) | 0;\n lo = lo + Math.imul(al7, bl5) | 0;\n mid = mid + Math.imul(al7, bh5) | 0;\n mid = mid + Math.imul(ah7, bl5) | 0;\n hi = hi + Math.imul(ah7, bh5) | 0;\n lo = lo + Math.imul(al6, bl6) | 0;\n mid = mid + Math.imul(al6, bh6) | 0;\n mid = mid + Math.imul(ah6, bl6) | 0;\n hi = hi + Math.imul(ah6, bh6) | 0;\n lo = lo + Math.imul(al5, bl7) | 0;\n mid = mid + Math.imul(al5, bh7) | 0;\n mid = mid + Math.imul(ah5, bl7) | 0;\n hi = hi + Math.imul(ah5, bh7) | 0;\n lo = lo + Math.imul(al4, bl8) | 0;\n mid = mid + Math.imul(al4, bh8) | 0;\n mid = mid + Math.imul(ah4, bl8) | 0;\n hi = hi + Math.imul(ah4, bh8) | 0;\n lo = lo + Math.imul(al3, bl9) | 0;\n mid = mid + Math.imul(al3, bh9) | 0;\n mid = mid + Math.imul(ah3, bl9) | 0;\n hi = hi + Math.imul(ah3, bh9) | 0;\n var w12 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = mid + Math.imul(ah9, bl4) | 0;\n hi = Math.imul(ah9, bh4);\n lo = lo + Math.imul(al8, bl5) | 0;\n mid = mid + Math.imul(al8, bh5) | 0;\n mid = mid + Math.imul(ah8, bl5) | 0;\n hi = hi + Math.imul(ah8, bh5) | 0;\n lo = lo + Math.imul(al7, bl6) | 0;\n mid = mid + Math.imul(al7, bh6) | 0;\n mid = mid + Math.imul(ah7, bl6) | 0;\n hi = hi + Math.imul(ah7, bh6) | 0;\n lo = lo + Math.imul(al6, bl7) | 0;\n mid = mid + Math.imul(al6, bh7) | 0;\n mid = mid + Math.imul(ah6, bl7) | 0;\n hi = hi + Math.imul(ah6, bh7) | 0;\n lo = lo + Math.imul(al5, bl8) | 0;\n mid = mid + Math.imul(al5, bh8) | 0;\n mid = mid + Math.imul(ah5, bl8) | 0;\n hi = hi + Math.imul(ah5, bh8) | 0;\n lo = lo + Math.imul(al4, bl9) | 0;\n mid = mid + Math.imul(al4, bh9) | 0;\n mid = mid + Math.imul(ah4, bl9) | 0;\n hi = hi + Math.imul(ah4, bh9) | 0;\n var w13 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = mid + Math.imul(ah9, bl5) | 0;\n hi = Math.imul(ah9, bh5);\n lo = lo + Math.imul(al8, bl6) | 0;\n mid = mid + Math.imul(al8, bh6) | 0;\n mid = mid + Math.imul(ah8, bl6) | 0;\n hi = hi + Math.imul(ah8, bh6) | 0;\n lo = lo + Math.imul(al7, bl7) | 0;\n mid = mid + Math.imul(al7, bh7) | 0;\n mid = mid + Math.imul(ah7, bl7) | 0;\n hi = hi + Math.imul(ah7, bh7) | 0;\n lo = lo + Math.imul(al6, bl8) | 0;\n mid = mid + Math.imul(al6, bh8) | 0;\n mid = mid + Math.imul(ah6, bl8) | 0;\n hi = hi + Math.imul(ah6, bh8) | 0;\n lo = lo + Math.imul(al5, bl9) | 0;\n mid = mid + Math.imul(al5, bh9) | 0;\n mid = mid + Math.imul(ah5, bl9) | 0;\n hi = hi + Math.imul(ah5, bh9) | 0;\n var w14 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = mid + Math.imul(ah9, bl6) | 0;\n hi = Math.imul(ah9, bh6);\n lo = lo + Math.imul(al8, bl7) | 0;\n mid = mid + Math.imul(al8, bh7) | 0;\n mid = mid + Math.imul(ah8, bl7) | 0;\n hi = hi + Math.imul(ah8, bh7) | 0;\n lo = lo + Math.imul(al7, bl8) | 0;\n mid = mid + Math.imul(al7, bh8) | 0;\n mid = mid + Math.imul(ah7, bl8) | 0;\n hi = hi + Math.imul(ah7, bh8) | 0;\n lo = lo + Math.imul(al6, bl9) | 0;\n mid = mid + Math.imul(al6, bh9) | 0;\n mid = mid + Math.imul(ah6, bl9) | 0;\n hi = hi + Math.imul(ah6, bh9) | 0;\n var w15 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = mid + Math.imul(ah9, bl7) | 0;\n hi = Math.imul(ah9, bh7);\n lo = lo + Math.imul(al8, bl8) | 0;\n mid = mid + Math.imul(al8, bh8) | 0;\n mid = mid + Math.imul(ah8, bl8) | 0;\n hi = hi + Math.imul(ah8, bh8) | 0;\n lo = lo + Math.imul(al7, bl9) | 0;\n mid = mid + Math.imul(al7, bh9) | 0;\n mid = mid + Math.imul(ah7, bl9) | 0;\n hi = hi + Math.imul(ah7, bh9) | 0;\n var w16 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = mid + Math.imul(ah9, bl8) | 0;\n hi = Math.imul(ah9, bh8);\n lo = lo + Math.imul(al8, bl9) | 0;\n mid = mid + Math.imul(al8, bh9) | 0;\n mid = mid + Math.imul(ah8, bl9) | 0;\n hi = hi + Math.imul(ah8, bh9) | 0;\n var w17 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = mid + Math.imul(ah9, bl9) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n\n return out;\n }; // Polyfill comb\n\n\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo(self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n var carry = 0;\n var hncarry = 0;\n\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n var lo = r & 0x3ffffff;\n ncarry = ncarry + (r / 0x4000000 | 0) | 0;\n lo = lo + rword | 0;\n rword = lo & 0x3ffffff;\n ncarry = ncarry + (lo >>> 26) | 0;\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo(self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo(num, out) {\n var res;\n var len = this.length + num.length;\n\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n }; // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n\n function FFTM(x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT(N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n }; // Returns binary-reversed representation of `x`\n\n\n FFTM.prototype.revBin = function revBin(x, l, N) {\n if (x === 0 || x === N - 1) return x;\n var rb = 0;\n\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << l - i - 1;\n x >>= 1;\n }\n\n return rb;\n }; // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n\n\n FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n var rx = rtwdf_ * ro - itwdf_ * io;\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n /* jshint maxdepth : false */\n\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b(n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate(rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n t = iws[i];\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b(ws, N) {\n var carry = 0;\n\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry;\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {\n var carry = 0;\n\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n rws[2 * i] = carry & 0x1fff;\n carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff;\n carry = carry >>> 13;\n } // Pad with zeroes\n\n\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub(N) {\n var ph = new Array(N);\n\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp(x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n var rmws = out.words;\n rmws.length = N;\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n }; // Multiply `this` by `num`\n\n\n BN.prototype.mul = function mul(num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n }; // Multiply employing FFT\n\n\n BN.prototype.mulf = function mulf(num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n }; // In-place Multiplication\n\n\n BN.prototype.imul = function imul(num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000); // Carry\n\n var carry = 0;\n\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += w / 0x4000000 | 0; // NOTE: lo is 27bit maximum\n\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln(num) {\n return this.clone().imuln(num);\n }; // `this` * `this`\n\n\n BN.prototype.sqr = function sqr() {\n return this.mul(this);\n }; // `this` * `this` in-place\n\n\n BN.prototype.isqr = function isqr() {\n return this.imul(this.clone());\n }; // Math.pow(`this`, `num`)\n\n\n BN.prototype.pow = function pow(num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n var res = this;\n\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n res = res.mul(q);\n }\n }\n\n return res;\n }; // Shift-left in-place\n\n\n BN.prototype.iushln = function iushln(bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = 0x3ffffff >>> 26 - r << 26 - r;\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = (this.words[i] | 0) - newCarry << r;\n this.words[i] = c | carry;\n carry = newCarry >>> 26 - r;\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln(bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n }; // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n\n\n BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n\n if (hint) {\n h = (hint - hint % 26) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n var maskedWords = extended;\n h -= s;\n h = Math.max(0, h); // Extended mode, copy masked part\n\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n\n maskedWords.length = s;\n }\n\n if (s === 0) {// No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = carry << 26 - r | word >>> r;\n carry = word & mask;\n } // Push carried bits as a mask\n\n\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn(bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n }; // Shift-left\n\n\n BN.prototype.shln = function shln(bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln(bits) {\n return this.clone().iushln(bits);\n }; // Shift-right\n\n\n BN.prototype.shrn = function shrn(bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn(bits) {\n return this.clone().iushrn(bits);\n }; // Test if n bit is set\n\n\n BN.prototype.testn = function testn(bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) return false; // Check bit and return\n\n var w = this.words[s];\n return !!(w & q);\n }; // Return only lowers bits of number (in-place)\n\n\n BN.prototype.imaskn = function imaskn(bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n }; // Return only lowers bits of number\n\n\n BN.prototype.maskn = function maskn(bits) {\n return this.clone().imaskn(bits);\n }; // Add plain number `num` to `this`\n\n\n BN.prototype.iaddn = function iaddn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num); // Possible sign change\n\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n } // Add without checks\n\n\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn(num) {\n this.words[0] += num; // Carry\n\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n\n this.length = Math.max(this.length, i + 1);\n return this;\n }; // Subtract plain number `num` from `this`\n\n\n BN.prototype.isubn = function isubn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn(num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn(num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs() {\n this.negative = 0;\n return this;\n };\n\n BN.prototype.abs = function abs() {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - (right / 0x4000000 | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip(); // Subtraction overflow\n\n assert(carry === -1);\n carry = 0;\n\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n\n this.negative = 1;\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv(num, mode) {\n var shift = this.length - num.length;\n var a = this.clone();\n var b = num; // Normalize\n\n var bhi = b.words[b.length - 1] | 0;\n\n var bhiBits = this._countBits(bhi);\n\n shift = 26 - bhiBits;\n\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n } // Initialize quotient\n\n\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n\n if (diff.negative === 0) {\n a = diff;\n\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n\n qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n\n a._ishlnsubmul(b, 1, j);\n\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n\n if (q) {\n q.words[j] = qj;\n }\n }\n\n if (q) {\n q.strip();\n }\n\n a.strip(); // Denormalize\n\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n }; // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n\n\n BN.prototype.divmod = function divmod(num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n } // Both numbers are positive at this point\n // Strip both numbers to approximate shift value\n\n\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n } // Very short reduction\n\n\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n }; // Find `this` / `num`\n\n\n BN.prototype.div = function div(num) {\n return this.divmod(num, 'div', false).div;\n }; // Find `this` % `num`\n\n\n BN.prototype.mod = function mod(num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod(num) {\n return this.divmod(num, 'mod', true).mod;\n }; // Find Round(`this` / `num`)\n\n\n BN.prototype.divRound = function divRound(num) {\n var dm = this.divmod(num); // Fast case - exact division\n\n if (dm.mod.isZero()) return dm.div;\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half); // Round down\n\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn(num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n var acc = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n }; // In-place division by number\n\n\n BN.prototype.idivn = function idivn(num) {\n assert(num <= 0x3ffffff);\n var carry = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = w / num | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn(num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n } // A * x + B * y = x\n\n\n var A = new BN(1);\n var B = new BN(0); // C * x + D * y = y\n\n var C = new BN(0);\n var D = new BN(1);\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {\n ;\n }\n\n if (i > 0) {\n x.iushrn(i);\n\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {\n ;\n }\n\n if (j > 0) {\n y.iushrn(j);\n\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n }; // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n\n\n BN.prototype._invmp = function _invmp(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {\n ;\n }\n\n if (i > 0) {\n a.iushrn(i);\n\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {\n ;\n }\n\n if (j > 0) {\n b.iushrn(j);\n\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd(num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0; // Remove common factor of two\n\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n }; // Invert number in the field F(num)\n\n\n BN.prototype.invm = function invm(num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven() {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd() {\n return (this.words[0] & 1) === 1;\n }; // And first word and num\n\n\n BN.prototype.andln = function andln(num) {\n return this.words[0] & num;\n }; // Increment at the bit position in-line\n\n\n BN.prototype.bincn = function bincn(bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) {\n this._expand(s + 1);\n\n this.words[s] |= q;\n return this;\n } // Add bit and propagate, if needed\n\n\n var carry = q;\n\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.isZero = function isZero() {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn(num) {\n var negative = num < 0;\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n this.strip();\n var res;\n\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n\n\n BN.prototype.cmp = function cmp(num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Unsigned comparison\n\n\n BN.prototype.ucmp = function ucmp(num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n var res = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n if (a === b) continue;\n\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n\n break;\n }\n\n return res;\n };\n\n BN.prototype.gtn = function gtn(num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt(num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten(num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte(num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn(num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt(num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten(num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte(num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn(num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq(num) {\n return this.cmp(num) === 0;\n }; //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n\n\n BN.red = function red(num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed(ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed() {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed(ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed(ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd(num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd(num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub(num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub(num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl(num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul(num) {\n assert(this.red, 'redMul works only with red numbers');\n\n this.red._verify2(this, num);\n\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul(num) {\n assert(this.red, 'redMul works only with red numbers');\n\n this.red._verify2(this, num);\n\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr() {\n assert(this.red, 'redSqr works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr() {\n assert(this.red, 'redISqr works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.isqr(this);\n }; // Square root over p\n\n\n BN.prototype.redSqrt = function redSqrt() {\n assert(this.red, 'redSqrt works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm() {\n assert(this.red, 'redInvm works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.invm(this);\n }; // Return negative clone of `this` % `red modulo`\n\n\n BN.prototype.redNeg = function redNeg() {\n assert(this.red, 'redNeg works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow(num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n\n this.red._verify1(this);\n\n return this.red.pow(this, num);\n }; // Prime numbers with efficient reduction\n\n\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n }; // Pseudo-Mersenne prime\n\n function MPrime(name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp() {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce(num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split(input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK(num) {\n return num.imul(this.k);\n };\n\n function K256() {\n MPrime.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n\n inherits(K256, MPrime);\n\n K256.prototype.split = function split(input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n var outLen = Math.min(input.length, 9);\n\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n } // Shift by 9 limbs\n\n\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = (next & mask) << 4 | prev >>> 22;\n prev = next;\n }\n\n prev >>>= 22;\n input.words[i - 10] = prev;\n\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK(num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n var lo = 0;\n\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + (lo / 0x4000000 | 0);\n } // Fast length reduction\n\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n\n return num;\n };\n\n function P224() {\n MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n\n inherits(P224, MPrime);\n\n function P192() {\n MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n\n inherits(P192, MPrime);\n\n function P25519() {\n // 2 ^ 255 - 19\n MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK(num) {\n // K = 0x13\n var carry = 0;\n\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n num.words[i] = lo;\n carry = hi;\n }\n\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n\n return num;\n }; // Exported mostly for testing purposes, use plain name instead\n\n\n BN._prime = function prime(name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n var prime;\n\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n\n primes[name] = prime;\n return prime;\n }; //\n // Base reduction engine\n //\n\n\n function Red(m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1(a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2(a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red, 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod(a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg(a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add(a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd(a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n\n return res;\n };\n\n Red.prototype.sub = function sub(a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub(a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res;\n };\n\n Red.prototype.shl = function shl(a, num) {\n this._verify1(a);\n\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr(a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr(a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt(a) {\n if (a.isZero()) return a.clone();\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1); // Fast case\n\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n var q = this.m.subn(1);\n var s = 0;\n\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n\n assert(!q.isZero());\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg(); // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n\n while (t.cmp(one) !== 0) {\n var tmp = t;\n\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm(a) {\n var inv = a._invmp(this.m);\n\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow(a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n\n for (var j = start - 1; j >= 0; j--) {\n var bit = word >> j & 1;\n\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo(num) {\n var r = num.umod(this.m);\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom(num) {\n var res = num.clone();\n res.red = null;\n return res;\n }; //\n // Montgomery method engine\n //\n\n\n BN.mont = function mont(num) {\n return new Mont(num);\n };\n\n function Mont(m) {\n Red.call(this, m);\n this.shift = this.m.bitLength();\n\n if (this.shift % 26 !== 0) {\n this.shift += 26 - this.shift % 26;\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo(num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom(num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul(a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul(a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm(a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})( false || module, this);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/miller-rabin/node_modules/bn.js/lib/bn.js?"); | ||
| 2146 | + | ||
| 2147 | +/***/ }), | ||
| 2148 | + | ||
| 2149 | +/***/ "./node_modules/minimalistic-assert/index.js": | ||
| 2150 | +/*!***************************************************!*\ | ||
| 2151 | + !*** ./node_modules/minimalistic-assert/index.js ***! | ||
| 2152 | + \***************************************************/ | ||
| 2153 | +/*! no static exports found */ | ||
| 2154 | +/***/ (function(module, exports) { | ||
| 2155 | + | ||
| 2156 | +eval("module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r) throw new Error(msg || 'Assertion failed: ' + l + ' != ' + r);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/minimalistic-assert/index.js?"); | ||
| 2157 | + | ||
| 2158 | +/***/ }), | ||
| 2159 | + | ||
| 2160 | +/***/ "./node_modules/minimalistic-crypto-utils/lib/utils.js": | ||
| 2161 | +/*!*************************************************************!*\ | ||
| 2162 | + !*** ./node_modules/minimalistic-crypto-utils/lib/utils.js ***! | ||
| 2163 | + \*************************************************************/ | ||
| 2164 | +/*! no static exports found */ | ||
| 2165 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2166 | + | ||
| 2167 | +"use strict"; | ||
| 2168 | +eval("\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg)) return msg.slice();\n if (!msg) return [];\n var res = [];\n\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++) {\n res[i] = msg[i] | 0;\n }\n\n return res;\n }\n\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0) msg = '0' + msg;\n\n for (var i = 0; i < msg.length; i += 2) {\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi) res.push(hi, lo);else res.push(lo);\n }\n }\n\n return res;\n}\n\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1) return '0' + word;else return word;\n}\n\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n\n for (var i = 0; i < msg.length; i++) {\n res += zero2(msg[i].toString(16));\n }\n\n return res;\n}\n\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex') return toHex(arr);else return arr;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/minimalistic-crypto-utils/lib/utils.js?"); | ||
| 2169 | + | ||
| 2170 | +/***/ }), | ||
| 2171 | + | ||
| 2172 | +/***/ "./node_modules/node-libs-browser/mock/empty.js": | ||
| 2173 | +/*!******************************************************!*\ | ||
| 2174 | + !*** ./node_modules/node-libs-browser/mock/empty.js ***! | ||
| 2175 | + \******************************************************/ | ||
| 2176 | +/*! no static exports found */ | ||
| 2177 | +/***/ (function(module, exports) { | ||
| 2178 | + | ||
| 2179 | +eval("\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/node-libs-browser/mock/empty.js?"); | ||
| 2180 | + | ||
| 2181 | +/***/ }), | ||
| 2182 | + | ||
| 2183 | +/***/ "./node_modules/node-libs-browser/node_modules/buffer/index.js": | ||
| 2184 | +/*!*********************************************************************!*\ | ||
| 2185 | + !*** ./node_modules/node-libs-browser/node_modules/buffer/index.js ***! | ||
| 2186 | + \*********************************************************************/ | ||
| 2187 | +/*! no static exports found */ | ||
| 2188 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2189 | + | ||
| 2190 | +"use strict"; | ||
| 2191 | +eval("/* WEBPACK VAR INJECTION */(function(global) {/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\n\n/* eslint-disable no-proto */\n\n\nvar base64 = __webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\");\n\nvar ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\");\n\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\");\n\nexports.Buffer = Buffer;\nexports.SlowBuffer = SlowBuffer;\nexports.INSPECT_MAX_BYTES = 50;\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\n\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();\n/*\n * Export kMaxLength after typed array support is determined.\n */\n\nexports.kMaxLength = kMaxLength();\n\nfunction typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n arr.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function foo() {\n return 42;\n }\n };\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0; // ie10 has broken `subarray`\n } catch (e) {\n return false;\n }\n}\n\nfunction kMaxLength() {\n return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff;\n}\n\nfunction createBuffer(that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length');\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n\n that.length = length;\n }\n\n return that;\n}\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\n\nfunction Buffer(arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length);\n } // Common case.\n\n\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error('If encoding is specified then the first argument must be a string');\n }\n\n return allocUnsafe(this, arg);\n }\n\n return from(this, arg, encodingOrOffset, length);\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n// TODO: Legacy, not needed anymore. Remove in next major version.\n\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr;\n};\n\nfunction from(that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number');\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length);\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset);\n }\n\n return fromObject(that, value);\n}\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n\n\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length);\n};\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n\n if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n });\n }\n}\n\nfunction assertSize(size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number');\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative');\n }\n}\n\nfunction alloc(that, size, fill, encoding) {\n assertSize(size);\n\n if (size <= 0) {\n return createBuffer(that, size);\n }\n\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n }\n\n return createBuffer(that, size);\n}\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\n\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding);\n};\n\nfunction allocUnsafe(that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n\n return that;\n}\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\n\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size);\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n\n\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size);\n};\n\nfunction fromString(that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding');\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that;\n}\n\nfunction fromArrayLike(that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n\n return that;\n}\n\nfunction fromArrayBuffer(that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds');\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds');\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n\n return that;\n}\n\nfunction fromObject(that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that;\n }\n\n obj.copy(that, 0, 0, len);\n return that;\n }\n\n if (obj) {\n if (typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0);\n }\n\n return fromArrayLike(that, obj);\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data);\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.');\n}\n\nfunction checked(length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');\n }\n\n return length | 0;\n}\n\nfunction SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n\n return Buffer.alloc(+length);\n}\n\nBuffer.isBuffer = function isBuffer(b) {\n return !!(b != null && b._isBuffer);\n};\n\nBuffer.compare = function compare(a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers');\n }\n\n if (a === b) return 0;\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n};\n\nBuffer.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true;\n\n default:\n return false;\n }\n};\n\nBuffer.concat = function concat(list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0);\n }\n\n var i;\n\n if (length === undefined) {\n length = 0;\n\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n\n return buffer;\n};\n\nfunction byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0; // Use a for loop to avoid recursion\n\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length;\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n\n case 'hex':\n return len >>> 1;\n\n case 'base64':\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) return utf8ToBytes(string).length; // assume utf8\n\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\n\nBuffer.byteLength = byteLength;\n\nfunction slowToString(encoding, start, end) {\n var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\n if (start > this.length) {\n return '';\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return '';\n } // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\n\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return '';\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end);\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end);\n\n case 'ascii':\n return asciiSlice(this, start, end);\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end);\n\n case 'base64':\n return base64Slice(this, start, end);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n} // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\n\n\nBuffer.prototype._isBuffer = true;\n\nfunction swap(b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer.prototype.swap16 = function swap16() {\n var len = this.length;\n\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n};\n\nBuffer.prototype.swap32 = function swap32() {\n var len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\n\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n\n return this;\n};\n\nBuffer.prototype.swap64 = function swap64() {\n var len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\n\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n\n return this;\n};\n\nBuffer.prototype.toString = function toString() {\n var length = this.length | 0;\n if (length === 0) return '';\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n};\n\nBuffer.prototype.equals = function equals(b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer');\n if (this === b) return true;\n return Buffer.compare(this, b) === 0;\n};\n\nBuffer.prototype.inspect = function inspect() {\n var str = '';\n var max = exports.INSPECT_MAX_BYTES;\n\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n\n return '<Buffer ' + str + '>';\n};\n\nBuffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer');\n }\n\n if (start === undefined) {\n start = 0;\n }\n\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\n\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index');\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n}; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\n\n\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n\n byteOffset = +byteOffset; // Coerce to Number.\n\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\n\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n\n if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n\n throw new TypeError('val must be string, number or Buffer');\n}\n\nfunction arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n\n var i;\n\n if (dir) {\n var foundIndex = -1;\n\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n\n if (found) return i;\n }\n }\n\n return -1;\n}\n\nBuffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n};\n\nBuffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n};\n\nBuffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n};\n\nfunction hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n } // must be an even number of digits\n\n\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string');\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n\n return i;\n}\n\nfunction utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nfunction asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n}\n\nfunction latin1Write(buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length);\n}\n\nfunction base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n}\n\nfunction ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nBuffer.prototype.write = function write(string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n } // legacy write(string, encoding, offset, length) - remove in v0.13\n\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds');\n }\n\n if (!encoding) encoding = 'utf8';\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length);\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length);\n\n case 'ascii':\n return asciiWrite(this, string, offset, length);\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length);\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer.prototype.toJSON = function toJSON() {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n};\n\nfunction base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n}\n\nfunction utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F;\n\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res);\n} // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\n\n\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n var res = '';\n var i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n\n return res;\n}\n\nfunction asciiSlice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n\n return ret;\n}\n\nfunction latin1Slice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n\n return ret;\n}\n\nfunction hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n\n return out;\n}\n\nfunction utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n\n return res;\n}\n\nBuffer.prototype.slice = function slice(start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n var newBuf;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf;\n};\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\n\nfunction checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint');\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length');\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n};\n\nBuffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n};\n\nBuffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n};\n\nBuffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n};\n\nBuffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n};\n\nBuffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return this[offset];\n return (0xff - this[offset] + 1) * -1;\n};\n\nBuffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | this[offset + 1] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | this[offset] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n};\n\nBuffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n};\n\nBuffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n};\n\nBuffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n};\n\nBuffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n};\n\nfunction checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds');\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nfunction objectWriteUInt16(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & 0xff << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n};\n\nfunction objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 0xff;\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nBuffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n};\n\nfunction checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n if (offset < 0) throw new RangeError('Index out of range');\n}\n\nfunction writeFloat(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n};\n\nfunction writeDouble(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n}; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\nBuffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\n\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds');\n if (end < 0) throw new RangeError('sourceEnd out of bounds'); // Are we oob?\n\n if (end > this.length) end = this.length;\n\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart);\n }\n\n return len;\n}; // Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\n\n\nBuffer.prototype.fill = function fill(val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (code < 256) {\n val = code;\n }\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\n\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding);\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n } // Invalid ranges are not set to a default, so can range check early.\n\n\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index');\n }\n\n if (end <= start) {\n return this;\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n if (!val) val = 0;\n var i;\n\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n}; // HELPER FUNCTIONS\n// ================\n\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean(str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, ''); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n\n return str;\n}\n\nfunction stringtrim(str) {\n if (str.trim) return str.trim();\n return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nfunction toHex(n) {\n if (n < 16) return '0' + n.toString(16);\n return n.toString(16);\n}\n\nfunction utf8ToBytes(string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i); // is surrogate component\n\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null; // encode utf8\n\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n\n return bytes;\n}\n\nfunction asciiToBytes(str) {\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n\n return byteArray;\n}\n\nfunction utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray;\n}\n\nfunction base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n}\n\nfunction blitBuffer(src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n\n return i;\n}\n\nfunction isnan(val) {\n return val !== val; // eslint-disable-line no-self-compare\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/node-libs-browser/node_modules/buffer/index.js?"); | ||
| 2192 | + | ||
| 2193 | +/***/ }), | ||
| 2194 | + | ||
| 2195 | +/***/ "./node_modules/node-libs-browser/node_modules/events/events.js": | ||
| 2196 | +/*!**********************************************************************!*\ | ||
| 2197 | + !*** ./node_modules/node-libs-browser/node_modules/events/events.js ***! | ||
| 2198 | + \**********************************************************************/ | ||
| 2199 | +/*! no static exports found */ | ||
| 2200 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2201 | + | ||
| 2202 | +"use strict"; | ||
| 2203 | +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nvar R = typeof Reflect === 'object' ? Reflect : null;\nvar ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n};\nvar ReflectOwnKeys;\n\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys;\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n};\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\n\nmodule.exports = EventEmitter;\nmodule.exports.once = once; // Backwards-compat with node 0.10.x\n\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined; // By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\n\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function get() {\n return defaultMaxListeners;\n },\n set: function set(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function () {\n if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n}; // Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\n\n\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n\n for (var i = 1; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var doError = type === 'error';\n var events = this._events;\n if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false; // If there is no 'error' event listener then throw.\n\n if (doError) {\n var er;\n if (args.length > 0) er = args[0];\n\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n } // At least give some kind of context to the user\n\n\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n if (handler === undefined) return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n\n for (var i = 0; i < len; ++i) {\n ReflectApply(listeners[i], this, args);\n }\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type, listener.listener ? listener.listener : listener); // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n\n events = target._events;\n }\n\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] : [existing, listener]; // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n } // Check for listener leak\n\n\n m = _getMaxListeners(target);\n\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true; // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n\n var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n};\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0) return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = {\n fired: false,\n wrapFn: undefined,\n target: target,\n type: type,\n listener: listener\n };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n}; // Emits a 'removeListener' event if and only if the listener was removed.\n\n\nEventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === undefined) return this;\n list = events[type];\n if (list === undefined) return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else {\n delete events[type];\n if (events.removeListener) this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0) return this;\n if (position === 0) list.shift();else {\n spliceOne(list, position);\n }\n if (list.length === 1) events[type] = list[0];\n if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === undefined) return this; // not listening for removeListener, no need to emit\n\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else delete events[type];\n }\n\n return this;\n } // emit removeListener for all listeners on all events\n\n\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n};\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === undefined) return [];\n var evlistener = events[type];\n if (evlistener === undefined) return [];\n if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function (emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\n\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n\n for (var i = 0; i < n; ++i) {\n copy[i] = arr[i];\n }\n\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++) {\n list[index] = list[index + 1];\n }\n\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n\n resolve([].slice.call(arguments));\n }\n\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, {\n once: true\n });\n\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, {\n once: true\n });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/node-libs-browser/node_modules/events/events.js?"); | ||
| 2204 | + | ||
| 2205 | +/***/ }), | ||
| 2206 | + | ||
| 2207 | +/***/ "./node_modules/node-libs-browser/node_modules/timers-browserify/main.js": | ||
| 2208 | +/*!*******************************************************************************!*\ | ||
| 2209 | + !*** ./node_modules/node-libs-browser/node_modules/timers-browserify/main.js ***! | ||
| 2210 | + \*******************************************************************************/ | ||
| 2211 | +/*! no static exports found */ | ||
| 2212 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2213 | + | ||
| 2214 | +eval("/* WEBPACK VAR INJECTION */(function(global) {var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n}; // setimmediate attaches itself to the global object\n\n\n__webpack_require__(/*! setimmediate */ \"./node_modules/setimmediate/setImmediate.js\"); // On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\n\n\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/node-libs-browser/node_modules/timers-browserify/main.js?"); | ||
| 2215 | + | ||
| 2216 | +/***/ }), | ||
| 2217 | + | ||
| 2218 | +/***/ "./node_modules/parse-asn1/aesid.json": | ||
| 2219 | +/*!********************************************!*\ | ||
| 2220 | + !*** ./node_modules/parse-asn1/aesid.json ***! | ||
| 2221 | + \********************************************/ | ||
| 2222 | +/*! exports provided: 2.16.840.1.101.3.4.1.1, 2.16.840.1.101.3.4.1.2, 2.16.840.1.101.3.4.1.3, 2.16.840.1.101.3.4.1.4, 2.16.840.1.101.3.4.1.21, 2.16.840.1.101.3.4.1.22, 2.16.840.1.101.3.4.1.23, 2.16.840.1.101.3.4.1.24, 2.16.840.1.101.3.4.1.41, 2.16.840.1.101.3.4.1.42, 2.16.840.1.101.3.4.1.43, 2.16.840.1.101.3.4.1.44, default */ | ||
| 2223 | +/***/ (function(module) { | ||
| 2224 | + | ||
| 2225 | +eval("module.exports = JSON.parse(\"{\\\"2.16.840.1.101.3.4.1.1\\\":\\\"aes-128-ecb\\\",\\\"2.16.840.1.101.3.4.1.2\\\":\\\"aes-128-cbc\\\",\\\"2.16.840.1.101.3.4.1.3\\\":\\\"aes-128-ofb\\\",\\\"2.16.840.1.101.3.4.1.4\\\":\\\"aes-128-cfb\\\",\\\"2.16.840.1.101.3.4.1.21\\\":\\\"aes-192-ecb\\\",\\\"2.16.840.1.101.3.4.1.22\\\":\\\"aes-192-cbc\\\",\\\"2.16.840.1.101.3.4.1.23\\\":\\\"aes-192-ofb\\\",\\\"2.16.840.1.101.3.4.1.24\\\":\\\"aes-192-cfb\\\",\\\"2.16.840.1.101.3.4.1.41\\\":\\\"aes-256-ecb\\\",\\\"2.16.840.1.101.3.4.1.42\\\":\\\"aes-256-cbc\\\",\\\"2.16.840.1.101.3.4.1.43\\\":\\\"aes-256-ofb\\\",\\\"2.16.840.1.101.3.4.1.44\\\":\\\"aes-256-cfb\\\"}\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/parse-asn1/aesid.json?"); | ||
| 2226 | + | ||
| 2227 | +/***/ }), | ||
| 2228 | + | ||
| 2229 | +/***/ "./node_modules/parse-asn1/asn1.js": | ||
| 2230 | +/*!*****************************************!*\ | ||
| 2231 | + !*** ./node_modules/parse-asn1/asn1.js ***! | ||
| 2232 | + \*****************************************/ | ||
| 2233 | +/*! no static exports found */ | ||
| 2234 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2235 | + | ||
| 2236 | +"use strict"; | ||
| 2237 | +eval("// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n\n\nvar asn1 = __webpack_require__(/*! asn1.js */ \"./node_modules/asn1.js/lib/asn1.js\");\n\nexports.certificate = __webpack_require__(/*! ./certificate */ \"./node_modules/parse-asn1/certificate.js\");\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n this.seq().obj(this.key('version').int(), this.key('modulus').int(), this.key('publicExponent').int(), this.key('privateExponent').int(), this.key('prime1').int(), this.key('prime2').int(), this.key('exponent1').int(), this.key('exponent2').int(), this.key('coefficient').int());\n});\nexports.RSAPrivateKey = RSAPrivateKey;\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n this.seq().obj(this.key('modulus').int(), this.key('publicExponent').int());\n});\nexports.RSAPublicKey = RSAPublicKey;\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(this.key('algorithm').use(AlgorithmIdentifier), this.key('subjectPublicKey').bitstr());\n});\nexports.PublicKey = PublicKey;\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n this.seq().obj(this.key('algorithm').objid(), this.key('none').null_().optional(), this.key('curve').objid().optional(), this.key('params').seq().obj(this.key('p').int(), this.key('q').int(), this.key('g').int()).optional());\n});\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n this.seq().obj(this.key('version').int(), this.key('algorithm').use(AlgorithmIdentifier), this.key('subjectPrivateKey').octstr());\n});\nexports.PrivateKey = PrivateKeyInfo;\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n this.seq().obj(this.key('algorithm').seq().obj(this.key('id').objid(), this.key('decrypt').seq().obj(this.key('kde').seq().obj(this.key('id').objid(), this.key('kdeparams').seq().obj(this.key('salt').octstr(), this.key('iters').int())), this.key('cipher').seq().obj(this.key('algo').objid(), this.key('iv').octstr()))), this.key('subjectPrivateKey').octstr());\n});\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo;\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n this.seq().obj(this.key('version').int(), this.key('p').int(), this.key('q').int(), this.key('g').int(), this.key('pub_key').int(), this.key('priv_key').int());\n});\nexports.DSAPrivateKey = DSAPrivateKey;\nexports.DSAparam = asn1.define('DSAparam', function () {\n this.int();\n});\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n this.seq().obj(this.key('version').int(), this.key('privateKey').octstr(), this.key('parameters').optional().explicit(0).use(ECParameters), this.key('publicKey').optional().explicit(1).bitstr());\n});\nexports.ECPrivateKey = ECPrivateKey;\nvar ECParameters = asn1.define('ECParameters', function () {\n this.choice({\n namedCurve: this.objid()\n });\n});\nexports.signature = asn1.define('signature', function () {\n this.seq().obj(this.key('r').int(), this.key('s').int());\n});\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/parse-asn1/asn1.js?"); | ||
| 2238 | + | ||
| 2239 | +/***/ }), | ||
| 2240 | + | ||
| 2241 | +/***/ "./node_modules/parse-asn1/certificate.js": | ||
| 2242 | +/*!************************************************!*\ | ||
| 2243 | + !*** ./node_modules/parse-asn1/certificate.js ***! | ||
| 2244 | + \************************************************/ | ||
| 2245 | +/*! no static exports found */ | ||
| 2246 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2247 | + | ||
| 2248 | +"use strict"; | ||
| 2249 | +eval("// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n\nvar asn = __webpack_require__(/*! asn1.js */ \"./node_modules/asn1.js/lib/asn1.js\");\n\nvar Time = asn.define('Time', function () {\n this.choice({\n utcTime: this.utctime(),\n generalTime: this.gentime()\n });\n});\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n this.seq().obj(this.key('type').objid(), this.key('value').any());\n});\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n this.seq().obj(this.key('algorithm').objid(), this.key('parameters').optional(), this.key('curve').objid().optional());\n});\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(this.key('algorithm').use(AlgorithmIdentifier), this.key('subjectPublicKey').bitstr());\n});\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n this.setof(AttributeTypeValue);\n});\nvar RDNSequence = asn.define('RDNSequence', function () {\n this.seqof(RelativeDistinguishedName);\n});\nvar Name = asn.define('Name', function () {\n this.choice({\n rdnSequence: this.use(RDNSequence)\n });\n});\nvar Validity = asn.define('Validity', function () {\n this.seq().obj(this.key('notBefore').use(Time), this.key('notAfter').use(Time));\n});\nvar Extension = asn.define('Extension', function () {\n this.seq().obj(this.key('extnID').objid(), this.key('critical').bool().def(false), this.key('extnValue').octstr());\n});\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n this.seq().obj(this.key('version').explicit(0).int().optional(), this.key('serialNumber').int(), this.key('signature').use(AlgorithmIdentifier), this.key('issuer').use(Name), this.key('validity').use(Validity), this.key('subject').use(Name), this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo), this.key('issuerUniqueID').implicit(1).bitstr().optional(), this.key('subjectUniqueID').implicit(2).bitstr().optional(), this.key('extensions').explicit(3).seqof(Extension).optional());\n});\nvar X509Certificate = asn.define('X509Certificate', function () {\n this.seq().obj(this.key('tbsCertificate').use(TBSCertificate), this.key('signatureAlgorithm').use(AlgorithmIdentifier), this.key('signatureValue').bitstr());\n});\nmodule.exports = X509Certificate;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/parse-asn1/certificate.js?"); | ||
| 2250 | + | ||
| 2251 | +/***/ }), | ||
| 2252 | + | ||
| 2253 | +/***/ "./node_modules/parse-asn1/fixProc.js": | ||
| 2254 | +/*!********************************************!*\ | ||
| 2255 | + !*** ./node_modules/parse-asn1/fixProc.js ***! | ||
| 2256 | + \********************************************/ | ||
| 2257 | +/*! no static exports found */ | ||
| 2258 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2259 | + | ||
| 2260 | +eval("// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m;\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m;\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m;\n\nvar evp = __webpack_require__(/*! evp_bytestokey */ \"./node_modules/evp_bytestokey/index.js\");\n\nvar ciphers = __webpack_require__(/*! browserify-aes */ \"./node_modules/browserify-aes/browser.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nmodule.exports = function (okey, password) {\n var key = okey.toString();\n var match = key.match(findProc);\n var decrypted;\n\n if (!match) {\n var match2 = key.match(fullRegex);\n decrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64');\n } else {\n var suite = 'aes' + match[1];\n var iv = Buffer.from(match[2], 'hex');\n var cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64');\n var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key;\n var out = [];\n var cipher = ciphers.createDecipheriv(suite, cipherKey, iv);\n out.push(cipher.update(cipherText));\n out.push(cipher.final());\n decrypted = Buffer.concat(out);\n }\n\n var tag = key.match(startRegex)[1];\n return {\n tag: tag,\n data: decrypted\n };\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/parse-asn1/fixProc.js?"); | ||
| 2261 | + | ||
| 2262 | +/***/ }), | ||
| 2263 | + | ||
| 2264 | +/***/ "./node_modules/parse-asn1/index.js": | ||
| 2265 | +/*!******************************************!*\ | ||
| 2266 | + !*** ./node_modules/parse-asn1/index.js ***! | ||
| 2267 | + \******************************************/ | ||
| 2268 | +/*! no static exports found */ | ||
| 2269 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2270 | + | ||
| 2271 | +eval("var asn1 = __webpack_require__(/*! ./asn1 */ \"./node_modules/parse-asn1/asn1.js\");\n\nvar aesid = __webpack_require__(/*! ./aesid.json */ \"./node_modules/parse-asn1/aesid.json\");\n\nvar fixProc = __webpack_require__(/*! ./fixProc */ \"./node_modules/parse-asn1/fixProc.js\");\n\nvar ciphers = __webpack_require__(/*! browserify-aes */ \"./node_modules/browserify-aes/browser.js\");\n\nvar compat = __webpack_require__(/*! pbkdf2 */ \"./node_modules/pbkdf2/browser.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nmodule.exports = parseKeys;\n\nfunction parseKeys(buffer) {\n var password;\n\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase;\n buffer = buffer.key;\n }\n\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer);\n }\n\n var stripped = fixProc(buffer, password);\n var type = stripped.tag;\n var data = stripped.data;\n var subtype, ndata;\n\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo;\n // falls through\n\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der');\n }\n\n subtype = ndata.algorithm.algorithm.join('.');\n\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der');\n\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey;\n return {\n type: 'ec',\n data: ndata\n };\n\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der');\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n };\n\n default:\n throw new Error('unknown key id ' + subtype);\n }\n\n // throw new Error('unknown key type ' + type)\n\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der');\n data = decrypt(data, password);\n // falls through\n\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der');\n subtype = ndata.algorithm.algorithm.join('.');\n\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der');\n\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n };\n\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der');\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n };\n\n default:\n throw new Error('unknown key id ' + subtype);\n }\n\n // throw new Error('unknown key type ' + type)\n\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der');\n\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der');\n\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n };\n\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der');\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n };\n\n default:\n throw new Error('unknown key type ' + type);\n }\n}\n\nparseKeys.signature = asn1.signature;\n\nfunction decrypt(data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt;\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10);\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')];\n var iv = data.algorithm.decrypt.cipher.iv;\n var cipherText = data.subjectPrivateKey;\n var keylen = parseInt(algo.split('-')[1], 10) / 8;\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1');\n var cipher = ciphers.createDecipheriv(algo, key, iv);\n var out = [];\n out.push(cipher.update(cipherText));\n out.push(cipher.final());\n return Buffer.concat(out);\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/parse-asn1/index.js?"); | ||
| 2272 | + | ||
| 2273 | +/***/ }), | ||
| 2274 | + | ||
| 2275 | +/***/ "./node_modules/path-browserify/index.js": | ||
| 2276 | +/*!***********************************************!*\ | ||
| 2277 | + !*** ./node_modules/path-browserify/index.js ***! | ||
| 2278 | + \***********************************************/ | ||
| 2279 | +/*! no static exports found */ | ||
| 2280 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2281 | + | ||
| 2282 | +eval("/* WEBPACK VAR INJECTION */(function(process) {// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n} // path.resolve([from ...], to)\n// posix version\n\n\nexports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}; // path.normalize(path)\n// posix version\n\n\nexports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/'; // Normalize the path\n\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n}; // posix version\n\n\nexports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n}; // posix version\n\n\nexports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n\n return p;\n }).join('/'));\n}; // path.relative(from, to)\n// posix version\n\n\nexports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n} // Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\n\n\nexports.basename = function (path, ext) {\n var f = basename(path);\n\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n\n return path.slice(startDot, end);\n};\n\nfunction filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n\n return res;\n} // String.prototype.substr - negative index don't work in IE8\n\n\nvar substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n} : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/path-browserify/index.js?"); | ||
| 2283 | + | ||
| 2284 | +/***/ }), | ||
| 2285 | + | ||
| 2286 | +/***/ "./node_modules/pbkdf2/browser.js": | ||
| 2287 | +/*!****************************************!*\ | ||
| 2288 | + !*** ./node_modules/pbkdf2/browser.js ***! | ||
| 2289 | + \****************************************/ | ||
| 2290 | +/*! no static exports found */ | ||
| 2291 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2292 | + | ||
| 2293 | +eval("exports.pbkdf2 = __webpack_require__(/*! ./lib/async */ \"./node_modules/pbkdf2/lib/async.js\");\nexports.pbkdf2Sync = __webpack_require__(/*! ./lib/sync */ \"./node_modules/pbkdf2/lib/sync-browser.js\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/pbkdf2/browser.js?"); | ||
| 2294 | + | ||
| 2295 | +/***/ }), | ||
| 2296 | + | ||
| 2297 | +/***/ "./node_modules/pbkdf2/lib/async.js": | ||
| 2298 | +/*!******************************************!*\ | ||
| 2299 | + !*** ./node_modules/pbkdf2/lib/async.js ***! | ||
| 2300 | + \******************************************/ | ||
| 2301 | +/*! no static exports found */ | ||
| 2302 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2303 | + | ||
| 2304 | +eval("/* WEBPACK VAR INJECTION */(function(global) {var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar checkParameters = __webpack_require__(/*! ./precondition */ \"./node_modules/pbkdf2/lib/precondition.js\");\n\nvar defaultEncoding = __webpack_require__(/*! ./default-encoding */ \"./node_modules/pbkdf2/lib/default-encoding.js\");\n\nvar sync = __webpack_require__(/*! ./sync */ \"./node_modules/pbkdf2/lib/sync-browser.js\");\n\nvar toBuffer = __webpack_require__(/*! ./to-buffer */ \"./node_modules/pbkdf2/lib/to-buffer.js\");\n\nvar ZERO_BUF;\nvar subtle = global.crypto && global.crypto.subtle;\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n};\nvar checks = [];\n\nfunction checkNative(algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false);\n }\n\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false);\n }\n\n if (checks[algo] !== undefined) {\n return checks[algo];\n }\n\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8);\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo).then(function () {\n return true;\n }).catch(function () {\n return false;\n });\n checks[algo] = prom;\n return prom;\n}\n\nvar nextTick;\n\nfunction getNextTick() {\n if (nextTick) {\n return nextTick;\n }\n\n if (global.process && global.process.nextTick) {\n nextTick = global.process.nextTick;\n } else if (global.queueMicrotask) {\n nextTick = global.queueMicrotask;\n } else if (global.setImmediate) {\n nextTick = global.setImmediate;\n } else {\n nextTick = global.setTimeout;\n }\n\n return nextTick;\n}\n\nfunction browserPbkdf2(password, salt, iterations, length, algo) {\n return subtle.importKey('raw', password, {\n name: 'PBKDF2'\n }, false, ['deriveBits']).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3);\n }).then(function (res) {\n return Buffer.from(res);\n });\n}\n\nfunction resolvePromise(promise, callback) {\n promise.then(function (out) {\n getNextTick()(function () {\n callback(null, out);\n });\n }, function (e) {\n getNextTick()(function () {\n callback(e);\n });\n });\n}\n\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest;\n digest = undefined;\n }\n\n digest = digest || 'sha1';\n var algo = toBrowser[digest.toLowerCase()];\n\n if (!algo || typeof global.Promise !== 'function') {\n getNextTick()(function () {\n var out;\n\n try {\n out = sync(password, salt, iterations, keylen, digest);\n } catch (e) {\n return callback(e);\n }\n\n callback(null, out);\n });\n return;\n }\n\n checkParameters(iterations, keylen);\n password = toBuffer(password, defaultEncoding, 'Password');\n salt = toBuffer(salt, defaultEncoding, 'Salt');\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2');\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo);\n return sync(password, salt, iterations, keylen, digest);\n }), callback);\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/pbkdf2/lib/async.js?"); | ||
| 2305 | + | ||
| 2306 | +/***/ }), | ||
| 2307 | + | ||
| 2308 | +/***/ "./node_modules/pbkdf2/lib/default-encoding.js": | ||
| 2309 | +/*!*****************************************************!*\ | ||
| 2310 | + !*** ./node_modules/pbkdf2/lib/default-encoding.js ***! | ||
| 2311 | + \*****************************************************/ | ||
| 2312 | +/*! no static exports found */ | ||
| 2313 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2314 | + | ||
| 2315 | +eval("/* WEBPACK VAR INJECTION */(function(global, process) {var defaultEncoding;\n/* istanbul ignore next */\n\nif (global.process && global.process.browser) {\n defaultEncoding = 'utf-8';\n} else if (global.process && global.process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10);\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary';\n} else {\n defaultEncoding = 'utf-8';\n}\n\nmodule.exports = defaultEncoding;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/pbkdf2/lib/default-encoding.js?"); | ||
| 2316 | + | ||
| 2317 | +/***/ }), | ||
| 2318 | + | ||
| 2319 | +/***/ "./node_modules/pbkdf2/lib/precondition.js": | ||
| 2320 | +/*!*************************************************!*\ | ||
| 2321 | + !*** ./node_modules/pbkdf2/lib/precondition.js ***! | ||
| 2322 | + \*************************************************/ | ||
| 2323 | +/*! no static exports found */ | ||
| 2324 | +/***/ (function(module, exports) { | ||
| 2325 | + | ||
| 2326 | +eval("var MAX_ALLOC = Math.pow(2, 30) - 1; // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number');\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations');\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number');\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) {\n /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length');\n }\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/pbkdf2/lib/precondition.js?"); | ||
| 2327 | + | ||
| 2328 | +/***/ }), | ||
| 2329 | + | ||
| 2330 | +/***/ "./node_modules/pbkdf2/lib/sync-browser.js": | ||
| 2331 | +/*!*************************************************!*\ | ||
| 2332 | + !*** ./node_modules/pbkdf2/lib/sync-browser.js ***! | ||
| 2333 | + \*************************************************/ | ||
| 2334 | +/*! no static exports found */ | ||
| 2335 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2336 | + | ||
| 2337 | +eval("var md5 = __webpack_require__(/*! create-hash/md5 */ \"./node_modules/create-hash/md5.js\");\n\nvar RIPEMD160 = __webpack_require__(/*! ripemd160 */ \"./node_modules/ripemd160/index.js\");\n\nvar sha = __webpack_require__(/*! sha.js */ \"./node_modules/sha.js/index.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar checkParameters = __webpack_require__(/*! ./precondition */ \"./node_modules/pbkdf2/lib/precondition.js\");\n\nvar defaultEncoding = __webpack_require__(/*! ./default-encoding */ \"./node_modules/pbkdf2/lib/default-encoding.js\");\n\nvar toBuffer = __webpack_require__(/*! ./to-buffer */ \"./node_modules/pbkdf2/lib/to-buffer.js\");\n\nvar ZEROS = Buffer.alloc(128);\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n};\n\nfunction Hmac(alg, key, saltLen) {\n var hash = getDigest(alg);\n var blocksize = alg === 'sha512' || alg === 'sha384' ? 128 : 64;\n\n if (key.length > blocksize) {\n key = hash(key);\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize);\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg]);\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg]);\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36;\n opad[i] = key[i] ^ 0x5C;\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4);\n ipad.copy(ipad1, 0, 0, blocksize);\n this.ipad1 = ipad1;\n this.ipad2 = ipad;\n this.opad = opad;\n this.alg = alg;\n this.blocksize = blocksize;\n this.hash = hash;\n this.size = sizes[alg];\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize);\n var h = this.hash(ipad);\n h.copy(this.opad, this.blocksize);\n return this.hash(this.opad);\n};\n\nfunction getDigest(alg) {\n function shaFunc(data) {\n return sha(alg).update(data).digest();\n }\n\n function rmd160Func(data) {\n return new RIPEMD160().update(data).digest();\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func;\n if (alg === 'md5') return md5;\n return shaFunc;\n}\n\nfunction pbkdf2(password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen);\n password = toBuffer(password, defaultEncoding, 'Password');\n salt = toBuffer(salt, defaultEncoding, 'Salt');\n digest = digest || 'sha1';\n var hmac = new Hmac(digest, password, salt.length);\n var DK = Buffer.allocUnsafe(keylen);\n var block1 = Buffer.allocUnsafe(salt.length + 4);\n salt.copy(block1, 0, 0, salt.length);\n var destPos = 0;\n var hLen = sizes[digest];\n var l = Math.ceil(keylen / hLen);\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length);\n var T = hmac.run(block1, hmac.ipad1);\n var U = T;\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2);\n\n for (var k = 0; k < hLen; k++) {\n T[k] ^= U[k];\n }\n }\n\n T.copy(DK, destPos);\n destPos += hLen;\n }\n\n return DK;\n}\n\nmodule.exports = pbkdf2;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/pbkdf2/lib/sync-browser.js?"); | ||
| 2338 | + | ||
| 2339 | +/***/ }), | ||
| 2340 | + | ||
| 2341 | +/***/ "./node_modules/pbkdf2/lib/to-buffer.js": | ||
| 2342 | +/*!**********************************************!*\ | ||
| 2343 | + !*** ./node_modules/pbkdf2/lib/to-buffer.js ***! | ||
| 2344 | + \**********************************************/ | ||
| 2345 | +/*! no static exports found */ | ||
| 2346 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2347 | + | ||
| 2348 | +eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing;\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding);\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer);\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView');\n }\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/pbkdf2/lib/to-buffer.js?"); | ||
| 2349 | + | ||
| 2350 | +/***/ }), | ||
| 2351 | + | ||
| 2352 | +/***/ "./node_modules/process-nextick-args/index.js": | ||
| 2353 | +/*!****************************************************!*\ | ||
| 2354 | + !*** ./node_modules/process-nextick-args/index.js ***! | ||
| 2355 | + \****************************************************/ | ||
| 2356 | +/*! no static exports found */ | ||
| 2357 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2358 | + | ||
| 2359 | +"use strict"; | ||
| 2360 | +eval("/* WEBPACK VAR INJECTION */(function(process) {\n\nif (typeof process === 'undefined' || !process.version || process.version.indexOf('v0.') === 0 || process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = {\n nextTick: nextTick\n };\n} else {\n module.exports = process;\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n\n var len = arguments.length;\n var args, i;\n\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n\n default:\n args = new Array(len - 1);\n i = 0;\n\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/process-nextick-args/index.js?"); | ||
| 2361 | + | ||
| 2362 | +/***/ }), | ||
| 2363 | + | ||
| 2364 | +/***/ "./node_modules/process/browser.js": | ||
| 2365 | +/*!*****************************************!*\ | ||
| 2366 | + !*** ./node_modules/process/browser.js ***! | ||
| 2367 | + \*****************************************/ | ||
| 2368 | +/*! no static exports found */ | ||
| 2369 | +/***/ (function(module, exports) { | ||
| 2370 | + | ||
| 2371 | +eval("// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/process/browser.js?"); | ||
| 2372 | + | ||
| 2373 | +/***/ }), | ||
| 2374 | + | ||
| 2375 | +/***/ "./node_modules/public-encrypt/browser.js": | ||
| 2376 | +/*!************************************************!*\ | ||
| 2377 | + !*** ./node_modules/public-encrypt/browser.js ***! | ||
| 2378 | + \************************************************/ | ||
| 2379 | +/*! no static exports found */ | ||
| 2380 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2381 | + | ||
| 2382 | +eval("exports.publicEncrypt = __webpack_require__(/*! ./publicEncrypt */ \"./node_modules/public-encrypt/publicEncrypt.js\");\nexports.privateDecrypt = __webpack_require__(/*! ./privateDecrypt */ \"./node_modules/public-encrypt/privateDecrypt.js\");\n\nexports.privateEncrypt = function privateEncrypt(key, buf) {\n return exports.publicEncrypt(key, buf, true);\n};\n\nexports.publicDecrypt = function publicDecrypt(key, buf) {\n return exports.privateDecrypt(key, buf, true);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/public-encrypt/browser.js?"); | ||
| 2383 | + | ||
| 2384 | +/***/ }), | ||
| 2385 | + | ||
| 2386 | +/***/ "./node_modules/public-encrypt/mgf.js": | ||
| 2387 | +/*!********************************************!*\ | ||
| 2388 | + !*** ./node_modules/public-encrypt/mgf.js ***! | ||
| 2389 | + \********************************************/ | ||
| 2390 | +/*! no static exports found */ | ||
| 2391 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2392 | + | ||
| 2393 | +eval("var createHash = __webpack_require__(/*! create-hash */ \"./node_modules/create-hash/browser.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0);\n var i = 0;\n var c;\n\n while (t.length < len) {\n c = i2ops(i++);\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()]);\n }\n\n return t.slice(0, len);\n};\n\nfunction i2ops(c) {\n var out = Buffer.allocUnsafe(4);\n out.writeUInt32BE(c, 0);\n return out;\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/public-encrypt/mgf.js?"); | ||
| 2394 | + | ||
| 2395 | +/***/ }), | ||
| 2396 | + | ||
| 2397 | +/***/ "./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js": | ||
| 2398 | +/*!******************************************************************!*\ | ||
| 2399 | + !*** ./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js ***! | ||
| 2400 | + \******************************************************************/ | ||
| 2401 | +/*! no static exports found */ | ||
| 2402 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2403 | + | ||
| 2404 | +eval("/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {\n 'use strict'; // Utils\n\n function assert(val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n } // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n\n\n function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n } // BN\n\n\n function BN(number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0; // Reduction context\n\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n var Buffer;\n\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = __webpack_require__(/*! buffer */ 13).Buffer;\n }\n } catch (e) {}\n\n BN.isBN = function isBN(num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max(left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min(left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init(number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n\n assert(base === (base | 0) && base >= 2 && base <= 36);\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber(number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n this.length = 3;\n }\n\n if (endian !== 'le') return; // Reverse the bytes\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray(number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;\n this.words[j] |= w << off & 0x3ffffff;\n this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n off += 24;\n\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;\n this.words[j] |= w << off & 0x3ffffff;\n this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n off += 24;\n\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n\n return this.strip();\n };\n\n function parseHex4Bits(string, index) {\n var c = string.charCodeAt(index); // 'A' - 'F'\n\n if (c >= 65 && c <= 70) {\n return c - 55; // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87; // '0' - '9'\n } else {\n return c - 48 & 0xf;\n }\n }\n\n function parseHexByte(string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex(number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n } // 24-bits chunks\n\n\n var off = 0;\n var j = 0;\n var w;\n\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase(str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n r *= mul; // 'a'\n\n if (c >= 49) {\n r += c - 49 + 0xa; // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa; // '0' - '9'\n } else {\n r += c;\n }\n }\n\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase(number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1; // Find length of limb in base\n\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n\n limbLen--;\n limbPow = limbPow / base | 0;\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n var word = 0;\n\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n this.imuln(limbPow);\n\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy(dest) {\n dest.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone() {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand(size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n\n return this;\n }; // Remove leading `0` from `this`\n\n\n BN.prototype.strip = function strip() {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign() {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n\n return this;\n };\n\n BN.prototype.inspect = function inspect() {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n };\n /*\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n */\n\n\n var zeros = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n BN.prototype.toString = function toString(base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n var out;\n\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = ((w << off | carry) & 0xffffff).toString(16);\n carry = w >>> 24 - off & 0xffffff;\n\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n\n off += 2;\n\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\n\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base]; // var groupBase = Math.pow(base, groupSize);\n\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n\n if (this.isZero()) {\n out = '0' + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\n\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber() {\n var ret = this.words[0];\n\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + this.words[1] * 0x4000000;\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n\n return this.negative !== 0 ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON() {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer(endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray(endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n var b, i;\n var q = this.clone();\n\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits(w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits(w) {\n var t = w;\n var r = 0;\n\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits(w) {\n // Short-cut\n if (w === 0) return 26;\n var t = w;\n var r = 0;\n\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n\n if ((t & 0x1) === 0) {\n r++;\n }\n\n return r;\n }; // Return number of used bits in a BN\n\n\n BN.prototype.bitLength = function bitLength() {\n var w = this.words[this.length - 1];\n\n var hi = this._countBits(w);\n\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray(num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n w[bit] = (num.words[off] & 1 << wbit) >>> wbit;\n }\n\n return w;\n } // Number of trailing zero bits\n\n\n BN.prototype.zeroBits = function zeroBits() {\n if (this.isZero()) return 0;\n var r = 0;\n\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n\n r += b;\n if (b !== 26) break;\n }\n\n return r;\n };\n\n BN.prototype.byteLength = function byteLength() {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos(width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos(width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg() {\n return this.negative !== 0;\n }; // Return negative clone of `this`\n\n\n BN.prototype.neg = function neg() {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg() {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n }; // Or `num` with `this` in-place\n\n\n BN.prototype.iuor = function iuor(num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n }; // Or `num` with `this`\n\n\n BN.prototype.or = function or(num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor(num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n }; // And `num` with `this` in-place\n\n\n BN.prototype.iuand = function iuand(num) {\n // b = min-length(num, this)\n var b;\n\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n return this.strip();\n };\n\n BN.prototype.iand = function iand(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n }; // And `num` with `this`\n\n\n BN.prototype.and = function and(num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand(num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n }; // Xor `num` with `this` in-place\n\n\n BN.prototype.iuxor = function iuxor(num) {\n // a.length > b.length\n var a;\n var b;\n\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n }; // Xor `num` with `this`\n\n\n BN.prototype.xor = function xor(num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor(num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n }; // Not ``this`` with ``width`` bitwidth\n\n\n BN.prototype.inotn = function inotn(width) {\n assert(typeof width === 'number' && width >= 0);\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n } // Handle complete words\n\n\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n } // Handle the residue\n\n\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n } // And remove leading zeroes\n\n\n return this.strip();\n };\n\n BN.prototype.notn = function notn(width) {\n return this.clone().inotn(width);\n }; // Set `bit` of `this`\n\n\n BN.prototype.setn = function setn(bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | 1 << wbit;\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n }; // Add `num` to `this` in-place\n\n\n BN.prototype.iadd = function iadd(num) {\n var r; // negative + positive\n\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign(); // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n } // a.length > b.length\n\n\n var a, b;\n\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++; // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n }; // Add `num` to `this`\n\n\n BN.prototype.add = function add(num) {\n var res;\n\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n return num.clone().iadd(this);\n }; // Subtract `num` from `this` in-place\n\n\n BN.prototype.isub = function isub(num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign(); // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n } // At this point both numbers are positive\n\n\n var cmp = this.cmp(num); // Optimization - zeroify\n\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n } // a > b\n\n\n var a, b;\n\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n } // Copy rest of the words\n\n\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n }; // Subtract `num` from `this`\n\n\n BN.prototype.sub = function sub(num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo(self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = self.length + num.length | 0;\n out.length = len;\n len = len - 1 | 0; // Peel one iteration (compiler can't do it, because of code complexity)\n\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n var lo = r & 0x3ffffff;\n var carry = r / 0x4000000 | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += r / 0x4000000 | 0;\n rword = r & 0x3ffffff;\n }\n\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n } // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n\n\n var comb10MulTo = function comb10MulTo(self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = mid + Math.imul(ah0, bl0) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = mid + Math.imul(ah1, bl0) | 0;\n hi = Math.imul(ah1, bh0);\n lo = lo + Math.imul(al0, bl1) | 0;\n mid = mid + Math.imul(al0, bh1) | 0;\n mid = mid + Math.imul(ah0, bl1) | 0;\n hi = hi + Math.imul(ah0, bh1) | 0;\n var w1 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = mid + Math.imul(ah2, bl0) | 0;\n hi = Math.imul(ah2, bh0);\n lo = lo + Math.imul(al1, bl1) | 0;\n mid = mid + Math.imul(al1, bh1) | 0;\n mid = mid + Math.imul(ah1, bl1) | 0;\n hi = hi + Math.imul(ah1, bh1) | 0;\n lo = lo + Math.imul(al0, bl2) | 0;\n mid = mid + Math.imul(al0, bh2) | 0;\n mid = mid + Math.imul(ah0, bl2) | 0;\n hi = hi + Math.imul(ah0, bh2) | 0;\n var w2 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = mid + Math.imul(ah3, bl0) | 0;\n hi = Math.imul(ah3, bh0);\n lo = lo + Math.imul(al2, bl1) | 0;\n mid = mid + Math.imul(al2, bh1) | 0;\n mid = mid + Math.imul(ah2, bl1) | 0;\n hi = hi + Math.imul(ah2, bh1) | 0;\n lo = lo + Math.imul(al1, bl2) | 0;\n mid = mid + Math.imul(al1, bh2) | 0;\n mid = mid + Math.imul(ah1, bl2) | 0;\n hi = hi + Math.imul(ah1, bh2) | 0;\n lo = lo + Math.imul(al0, bl3) | 0;\n mid = mid + Math.imul(al0, bh3) | 0;\n mid = mid + Math.imul(ah0, bl3) | 0;\n hi = hi + Math.imul(ah0, bh3) | 0;\n var w3 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = mid + Math.imul(ah4, bl0) | 0;\n hi = Math.imul(ah4, bh0);\n lo = lo + Math.imul(al3, bl1) | 0;\n mid = mid + Math.imul(al3, bh1) | 0;\n mid = mid + Math.imul(ah3, bl1) | 0;\n hi = hi + Math.imul(ah3, bh1) | 0;\n lo = lo + Math.imul(al2, bl2) | 0;\n mid = mid + Math.imul(al2, bh2) | 0;\n mid = mid + Math.imul(ah2, bl2) | 0;\n hi = hi + Math.imul(ah2, bh2) | 0;\n lo = lo + Math.imul(al1, bl3) | 0;\n mid = mid + Math.imul(al1, bh3) | 0;\n mid = mid + Math.imul(ah1, bl3) | 0;\n hi = hi + Math.imul(ah1, bh3) | 0;\n lo = lo + Math.imul(al0, bl4) | 0;\n mid = mid + Math.imul(al0, bh4) | 0;\n mid = mid + Math.imul(ah0, bl4) | 0;\n hi = hi + Math.imul(ah0, bh4) | 0;\n var w4 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = mid + Math.imul(ah5, bl0) | 0;\n hi = Math.imul(ah5, bh0);\n lo = lo + Math.imul(al4, bl1) | 0;\n mid = mid + Math.imul(al4, bh1) | 0;\n mid = mid + Math.imul(ah4, bl1) | 0;\n hi = hi + Math.imul(ah4, bh1) | 0;\n lo = lo + Math.imul(al3, bl2) | 0;\n mid = mid + Math.imul(al3, bh2) | 0;\n mid = mid + Math.imul(ah3, bl2) | 0;\n hi = hi + Math.imul(ah3, bh2) | 0;\n lo = lo + Math.imul(al2, bl3) | 0;\n mid = mid + Math.imul(al2, bh3) | 0;\n mid = mid + Math.imul(ah2, bl3) | 0;\n hi = hi + Math.imul(ah2, bh3) | 0;\n lo = lo + Math.imul(al1, bl4) | 0;\n mid = mid + Math.imul(al1, bh4) | 0;\n mid = mid + Math.imul(ah1, bl4) | 0;\n hi = hi + Math.imul(ah1, bh4) | 0;\n lo = lo + Math.imul(al0, bl5) | 0;\n mid = mid + Math.imul(al0, bh5) | 0;\n mid = mid + Math.imul(ah0, bl5) | 0;\n hi = hi + Math.imul(ah0, bh5) | 0;\n var w5 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = mid + Math.imul(ah6, bl0) | 0;\n hi = Math.imul(ah6, bh0);\n lo = lo + Math.imul(al5, bl1) | 0;\n mid = mid + Math.imul(al5, bh1) | 0;\n mid = mid + Math.imul(ah5, bl1) | 0;\n hi = hi + Math.imul(ah5, bh1) | 0;\n lo = lo + Math.imul(al4, bl2) | 0;\n mid = mid + Math.imul(al4, bh2) | 0;\n mid = mid + Math.imul(ah4, bl2) | 0;\n hi = hi + Math.imul(ah4, bh2) | 0;\n lo = lo + Math.imul(al3, bl3) | 0;\n mid = mid + Math.imul(al3, bh3) | 0;\n mid = mid + Math.imul(ah3, bl3) | 0;\n hi = hi + Math.imul(ah3, bh3) | 0;\n lo = lo + Math.imul(al2, bl4) | 0;\n mid = mid + Math.imul(al2, bh4) | 0;\n mid = mid + Math.imul(ah2, bl4) | 0;\n hi = hi + Math.imul(ah2, bh4) | 0;\n lo = lo + Math.imul(al1, bl5) | 0;\n mid = mid + Math.imul(al1, bh5) | 0;\n mid = mid + Math.imul(ah1, bl5) | 0;\n hi = hi + Math.imul(ah1, bh5) | 0;\n lo = lo + Math.imul(al0, bl6) | 0;\n mid = mid + Math.imul(al0, bh6) | 0;\n mid = mid + Math.imul(ah0, bl6) | 0;\n hi = hi + Math.imul(ah0, bh6) | 0;\n var w6 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = mid + Math.imul(ah7, bl0) | 0;\n hi = Math.imul(ah7, bh0);\n lo = lo + Math.imul(al6, bl1) | 0;\n mid = mid + Math.imul(al6, bh1) | 0;\n mid = mid + Math.imul(ah6, bl1) | 0;\n hi = hi + Math.imul(ah6, bh1) | 0;\n lo = lo + Math.imul(al5, bl2) | 0;\n mid = mid + Math.imul(al5, bh2) | 0;\n mid = mid + Math.imul(ah5, bl2) | 0;\n hi = hi + Math.imul(ah5, bh2) | 0;\n lo = lo + Math.imul(al4, bl3) | 0;\n mid = mid + Math.imul(al4, bh3) | 0;\n mid = mid + Math.imul(ah4, bl3) | 0;\n hi = hi + Math.imul(ah4, bh3) | 0;\n lo = lo + Math.imul(al3, bl4) | 0;\n mid = mid + Math.imul(al3, bh4) | 0;\n mid = mid + Math.imul(ah3, bl4) | 0;\n hi = hi + Math.imul(ah3, bh4) | 0;\n lo = lo + Math.imul(al2, bl5) | 0;\n mid = mid + Math.imul(al2, bh5) | 0;\n mid = mid + Math.imul(ah2, bl5) | 0;\n hi = hi + Math.imul(ah2, bh5) | 0;\n lo = lo + Math.imul(al1, bl6) | 0;\n mid = mid + Math.imul(al1, bh6) | 0;\n mid = mid + Math.imul(ah1, bl6) | 0;\n hi = hi + Math.imul(ah1, bh6) | 0;\n lo = lo + Math.imul(al0, bl7) | 0;\n mid = mid + Math.imul(al0, bh7) | 0;\n mid = mid + Math.imul(ah0, bl7) | 0;\n hi = hi + Math.imul(ah0, bh7) | 0;\n var w7 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = mid + Math.imul(ah8, bl0) | 0;\n hi = Math.imul(ah8, bh0);\n lo = lo + Math.imul(al7, bl1) | 0;\n mid = mid + Math.imul(al7, bh1) | 0;\n mid = mid + Math.imul(ah7, bl1) | 0;\n hi = hi + Math.imul(ah7, bh1) | 0;\n lo = lo + Math.imul(al6, bl2) | 0;\n mid = mid + Math.imul(al6, bh2) | 0;\n mid = mid + Math.imul(ah6, bl2) | 0;\n hi = hi + Math.imul(ah6, bh2) | 0;\n lo = lo + Math.imul(al5, bl3) | 0;\n mid = mid + Math.imul(al5, bh3) | 0;\n mid = mid + Math.imul(ah5, bl3) | 0;\n hi = hi + Math.imul(ah5, bh3) | 0;\n lo = lo + Math.imul(al4, bl4) | 0;\n mid = mid + Math.imul(al4, bh4) | 0;\n mid = mid + Math.imul(ah4, bl4) | 0;\n hi = hi + Math.imul(ah4, bh4) | 0;\n lo = lo + Math.imul(al3, bl5) | 0;\n mid = mid + Math.imul(al3, bh5) | 0;\n mid = mid + Math.imul(ah3, bl5) | 0;\n hi = hi + Math.imul(ah3, bh5) | 0;\n lo = lo + Math.imul(al2, bl6) | 0;\n mid = mid + Math.imul(al2, bh6) | 0;\n mid = mid + Math.imul(ah2, bl6) | 0;\n hi = hi + Math.imul(ah2, bh6) | 0;\n lo = lo + Math.imul(al1, bl7) | 0;\n mid = mid + Math.imul(al1, bh7) | 0;\n mid = mid + Math.imul(ah1, bl7) | 0;\n hi = hi + Math.imul(ah1, bh7) | 0;\n lo = lo + Math.imul(al0, bl8) | 0;\n mid = mid + Math.imul(al0, bh8) | 0;\n mid = mid + Math.imul(ah0, bl8) | 0;\n hi = hi + Math.imul(ah0, bh8) | 0;\n var w8 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = mid + Math.imul(ah9, bl0) | 0;\n hi = Math.imul(ah9, bh0);\n lo = lo + Math.imul(al8, bl1) | 0;\n mid = mid + Math.imul(al8, bh1) | 0;\n mid = mid + Math.imul(ah8, bl1) | 0;\n hi = hi + Math.imul(ah8, bh1) | 0;\n lo = lo + Math.imul(al7, bl2) | 0;\n mid = mid + Math.imul(al7, bh2) | 0;\n mid = mid + Math.imul(ah7, bl2) | 0;\n hi = hi + Math.imul(ah7, bh2) | 0;\n lo = lo + Math.imul(al6, bl3) | 0;\n mid = mid + Math.imul(al6, bh3) | 0;\n mid = mid + Math.imul(ah6, bl3) | 0;\n hi = hi + Math.imul(ah6, bh3) | 0;\n lo = lo + Math.imul(al5, bl4) | 0;\n mid = mid + Math.imul(al5, bh4) | 0;\n mid = mid + Math.imul(ah5, bl4) | 0;\n hi = hi + Math.imul(ah5, bh4) | 0;\n lo = lo + Math.imul(al4, bl5) | 0;\n mid = mid + Math.imul(al4, bh5) | 0;\n mid = mid + Math.imul(ah4, bl5) | 0;\n hi = hi + Math.imul(ah4, bh5) | 0;\n lo = lo + Math.imul(al3, bl6) | 0;\n mid = mid + Math.imul(al3, bh6) | 0;\n mid = mid + Math.imul(ah3, bl6) | 0;\n hi = hi + Math.imul(ah3, bh6) | 0;\n lo = lo + Math.imul(al2, bl7) | 0;\n mid = mid + Math.imul(al2, bh7) | 0;\n mid = mid + Math.imul(ah2, bl7) | 0;\n hi = hi + Math.imul(ah2, bh7) | 0;\n lo = lo + Math.imul(al1, bl8) | 0;\n mid = mid + Math.imul(al1, bh8) | 0;\n mid = mid + Math.imul(ah1, bl8) | 0;\n hi = hi + Math.imul(ah1, bh8) | 0;\n lo = lo + Math.imul(al0, bl9) | 0;\n mid = mid + Math.imul(al0, bh9) | 0;\n mid = mid + Math.imul(ah0, bl9) | 0;\n hi = hi + Math.imul(ah0, bh9) | 0;\n var w9 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = mid + Math.imul(ah9, bl1) | 0;\n hi = Math.imul(ah9, bh1);\n lo = lo + Math.imul(al8, bl2) | 0;\n mid = mid + Math.imul(al8, bh2) | 0;\n mid = mid + Math.imul(ah8, bl2) | 0;\n hi = hi + Math.imul(ah8, bh2) | 0;\n lo = lo + Math.imul(al7, bl3) | 0;\n mid = mid + Math.imul(al7, bh3) | 0;\n mid = mid + Math.imul(ah7, bl3) | 0;\n hi = hi + Math.imul(ah7, bh3) | 0;\n lo = lo + Math.imul(al6, bl4) | 0;\n mid = mid + Math.imul(al6, bh4) | 0;\n mid = mid + Math.imul(ah6, bl4) | 0;\n hi = hi + Math.imul(ah6, bh4) | 0;\n lo = lo + Math.imul(al5, bl5) | 0;\n mid = mid + Math.imul(al5, bh5) | 0;\n mid = mid + Math.imul(ah5, bl5) | 0;\n hi = hi + Math.imul(ah5, bh5) | 0;\n lo = lo + Math.imul(al4, bl6) | 0;\n mid = mid + Math.imul(al4, bh6) | 0;\n mid = mid + Math.imul(ah4, bl6) | 0;\n hi = hi + Math.imul(ah4, bh6) | 0;\n lo = lo + Math.imul(al3, bl7) | 0;\n mid = mid + Math.imul(al3, bh7) | 0;\n mid = mid + Math.imul(ah3, bl7) | 0;\n hi = hi + Math.imul(ah3, bh7) | 0;\n lo = lo + Math.imul(al2, bl8) | 0;\n mid = mid + Math.imul(al2, bh8) | 0;\n mid = mid + Math.imul(ah2, bl8) | 0;\n hi = hi + Math.imul(ah2, bh8) | 0;\n lo = lo + Math.imul(al1, bl9) | 0;\n mid = mid + Math.imul(al1, bh9) | 0;\n mid = mid + Math.imul(ah1, bl9) | 0;\n hi = hi + Math.imul(ah1, bh9) | 0;\n var w10 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = mid + Math.imul(ah9, bl2) | 0;\n hi = Math.imul(ah9, bh2);\n lo = lo + Math.imul(al8, bl3) | 0;\n mid = mid + Math.imul(al8, bh3) | 0;\n mid = mid + Math.imul(ah8, bl3) | 0;\n hi = hi + Math.imul(ah8, bh3) | 0;\n lo = lo + Math.imul(al7, bl4) | 0;\n mid = mid + Math.imul(al7, bh4) | 0;\n mid = mid + Math.imul(ah7, bl4) | 0;\n hi = hi + Math.imul(ah7, bh4) | 0;\n lo = lo + Math.imul(al6, bl5) | 0;\n mid = mid + Math.imul(al6, bh5) | 0;\n mid = mid + Math.imul(ah6, bl5) | 0;\n hi = hi + Math.imul(ah6, bh5) | 0;\n lo = lo + Math.imul(al5, bl6) | 0;\n mid = mid + Math.imul(al5, bh6) | 0;\n mid = mid + Math.imul(ah5, bl6) | 0;\n hi = hi + Math.imul(ah5, bh6) | 0;\n lo = lo + Math.imul(al4, bl7) | 0;\n mid = mid + Math.imul(al4, bh7) | 0;\n mid = mid + Math.imul(ah4, bl7) | 0;\n hi = hi + Math.imul(ah4, bh7) | 0;\n lo = lo + Math.imul(al3, bl8) | 0;\n mid = mid + Math.imul(al3, bh8) | 0;\n mid = mid + Math.imul(ah3, bl8) | 0;\n hi = hi + Math.imul(ah3, bh8) | 0;\n lo = lo + Math.imul(al2, bl9) | 0;\n mid = mid + Math.imul(al2, bh9) | 0;\n mid = mid + Math.imul(ah2, bl9) | 0;\n hi = hi + Math.imul(ah2, bh9) | 0;\n var w11 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = mid + Math.imul(ah9, bl3) | 0;\n hi = Math.imul(ah9, bh3);\n lo = lo + Math.imul(al8, bl4) | 0;\n mid = mid + Math.imul(al8, bh4) | 0;\n mid = mid + Math.imul(ah8, bl4) | 0;\n hi = hi + Math.imul(ah8, bh4) | 0;\n lo = lo + Math.imul(al7, bl5) | 0;\n mid = mid + Math.imul(al7, bh5) | 0;\n mid = mid + Math.imul(ah7, bl5) | 0;\n hi = hi + Math.imul(ah7, bh5) | 0;\n lo = lo + Math.imul(al6, bl6) | 0;\n mid = mid + Math.imul(al6, bh6) | 0;\n mid = mid + Math.imul(ah6, bl6) | 0;\n hi = hi + Math.imul(ah6, bh6) | 0;\n lo = lo + Math.imul(al5, bl7) | 0;\n mid = mid + Math.imul(al5, bh7) | 0;\n mid = mid + Math.imul(ah5, bl7) | 0;\n hi = hi + Math.imul(ah5, bh7) | 0;\n lo = lo + Math.imul(al4, bl8) | 0;\n mid = mid + Math.imul(al4, bh8) | 0;\n mid = mid + Math.imul(ah4, bl8) | 0;\n hi = hi + Math.imul(ah4, bh8) | 0;\n lo = lo + Math.imul(al3, bl9) | 0;\n mid = mid + Math.imul(al3, bh9) | 0;\n mid = mid + Math.imul(ah3, bl9) | 0;\n hi = hi + Math.imul(ah3, bh9) | 0;\n var w12 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = mid + Math.imul(ah9, bl4) | 0;\n hi = Math.imul(ah9, bh4);\n lo = lo + Math.imul(al8, bl5) | 0;\n mid = mid + Math.imul(al8, bh5) | 0;\n mid = mid + Math.imul(ah8, bl5) | 0;\n hi = hi + Math.imul(ah8, bh5) | 0;\n lo = lo + Math.imul(al7, bl6) | 0;\n mid = mid + Math.imul(al7, bh6) | 0;\n mid = mid + Math.imul(ah7, bl6) | 0;\n hi = hi + Math.imul(ah7, bh6) | 0;\n lo = lo + Math.imul(al6, bl7) | 0;\n mid = mid + Math.imul(al6, bh7) | 0;\n mid = mid + Math.imul(ah6, bl7) | 0;\n hi = hi + Math.imul(ah6, bh7) | 0;\n lo = lo + Math.imul(al5, bl8) | 0;\n mid = mid + Math.imul(al5, bh8) | 0;\n mid = mid + Math.imul(ah5, bl8) | 0;\n hi = hi + Math.imul(ah5, bh8) | 0;\n lo = lo + Math.imul(al4, bl9) | 0;\n mid = mid + Math.imul(al4, bh9) | 0;\n mid = mid + Math.imul(ah4, bl9) | 0;\n hi = hi + Math.imul(ah4, bh9) | 0;\n var w13 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = mid + Math.imul(ah9, bl5) | 0;\n hi = Math.imul(ah9, bh5);\n lo = lo + Math.imul(al8, bl6) | 0;\n mid = mid + Math.imul(al8, bh6) | 0;\n mid = mid + Math.imul(ah8, bl6) | 0;\n hi = hi + Math.imul(ah8, bh6) | 0;\n lo = lo + Math.imul(al7, bl7) | 0;\n mid = mid + Math.imul(al7, bh7) | 0;\n mid = mid + Math.imul(ah7, bl7) | 0;\n hi = hi + Math.imul(ah7, bh7) | 0;\n lo = lo + Math.imul(al6, bl8) | 0;\n mid = mid + Math.imul(al6, bh8) | 0;\n mid = mid + Math.imul(ah6, bl8) | 0;\n hi = hi + Math.imul(ah6, bh8) | 0;\n lo = lo + Math.imul(al5, bl9) | 0;\n mid = mid + Math.imul(al5, bh9) | 0;\n mid = mid + Math.imul(ah5, bl9) | 0;\n hi = hi + Math.imul(ah5, bh9) | 0;\n var w14 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = mid + Math.imul(ah9, bl6) | 0;\n hi = Math.imul(ah9, bh6);\n lo = lo + Math.imul(al8, bl7) | 0;\n mid = mid + Math.imul(al8, bh7) | 0;\n mid = mid + Math.imul(ah8, bl7) | 0;\n hi = hi + Math.imul(ah8, bh7) | 0;\n lo = lo + Math.imul(al7, bl8) | 0;\n mid = mid + Math.imul(al7, bh8) | 0;\n mid = mid + Math.imul(ah7, bl8) | 0;\n hi = hi + Math.imul(ah7, bh8) | 0;\n lo = lo + Math.imul(al6, bl9) | 0;\n mid = mid + Math.imul(al6, bh9) | 0;\n mid = mid + Math.imul(ah6, bl9) | 0;\n hi = hi + Math.imul(ah6, bh9) | 0;\n var w15 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = mid + Math.imul(ah9, bl7) | 0;\n hi = Math.imul(ah9, bh7);\n lo = lo + Math.imul(al8, bl8) | 0;\n mid = mid + Math.imul(al8, bh8) | 0;\n mid = mid + Math.imul(ah8, bl8) | 0;\n hi = hi + Math.imul(ah8, bh8) | 0;\n lo = lo + Math.imul(al7, bl9) | 0;\n mid = mid + Math.imul(al7, bh9) | 0;\n mid = mid + Math.imul(ah7, bl9) | 0;\n hi = hi + Math.imul(ah7, bh9) | 0;\n var w16 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = mid + Math.imul(ah9, bl8) | 0;\n hi = Math.imul(ah9, bh8);\n lo = lo + Math.imul(al8, bl9) | 0;\n mid = mid + Math.imul(al8, bh9) | 0;\n mid = mid + Math.imul(ah8, bl9) | 0;\n hi = hi + Math.imul(ah8, bh9) | 0;\n var w17 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = mid + Math.imul(ah9, bl9) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n\n return out;\n }; // Polyfill comb\n\n\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo(self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n var carry = 0;\n var hncarry = 0;\n\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n var lo = r & 0x3ffffff;\n ncarry = ncarry + (r / 0x4000000 | 0) | 0;\n lo = lo + rword | 0;\n rword = lo & 0x3ffffff;\n ncarry = ncarry + (lo >>> 26) | 0;\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo(self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo(num, out) {\n var res;\n var len = this.length + num.length;\n\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n }; // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n\n function FFTM(x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT(N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n }; // Returns binary-reversed representation of `x`\n\n\n FFTM.prototype.revBin = function revBin(x, l, N) {\n if (x === 0 || x === N - 1) return x;\n var rb = 0;\n\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << l - i - 1;\n x >>= 1;\n }\n\n return rb;\n }; // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n\n\n FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n var rx = rtwdf_ * ro - itwdf_ * io;\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n /* jshint maxdepth : false */\n\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b(n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate(rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n t = iws[i];\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b(ws, N) {\n var carry = 0;\n\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry;\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {\n var carry = 0;\n\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n rws[2 * i] = carry & 0x1fff;\n carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff;\n carry = carry >>> 13;\n } // Pad with zeroes\n\n\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub(N) {\n var ph = new Array(N);\n\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp(x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n var rmws = out.words;\n rmws.length = N;\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n }; // Multiply `this` by `num`\n\n\n BN.prototype.mul = function mul(num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n }; // Multiply employing FFT\n\n\n BN.prototype.mulf = function mulf(num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n }; // In-place Multiplication\n\n\n BN.prototype.imul = function imul(num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000); // Carry\n\n var carry = 0;\n\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += w / 0x4000000 | 0; // NOTE: lo is 27bit maximum\n\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln(num) {\n return this.clone().imuln(num);\n }; // `this` * `this`\n\n\n BN.prototype.sqr = function sqr() {\n return this.mul(this);\n }; // `this` * `this` in-place\n\n\n BN.prototype.isqr = function isqr() {\n return this.imul(this.clone());\n }; // Math.pow(`this`, `num`)\n\n\n BN.prototype.pow = function pow(num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n var res = this;\n\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n res = res.mul(q);\n }\n }\n\n return res;\n }; // Shift-left in-place\n\n\n BN.prototype.iushln = function iushln(bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = 0x3ffffff >>> 26 - r << 26 - r;\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = (this.words[i] | 0) - newCarry << r;\n this.words[i] = c | carry;\n carry = newCarry >>> 26 - r;\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln(bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n }; // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n\n\n BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n\n if (hint) {\n h = (hint - hint % 26) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n var maskedWords = extended;\n h -= s;\n h = Math.max(0, h); // Extended mode, copy masked part\n\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n\n maskedWords.length = s;\n }\n\n if (s === 0) {// No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = carry << 26 - r | word >>> r;\n carry = word & mask;\n } // Push carried bits as a mask\n\n\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn(bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n }; // Shift-left\n\n\n BN.prototype.shln = function shln(bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln(bits) {\n return this.clone().iushln(bits);\n }; // Shift-right\n\n\n BN.prototype.shrn = function shrn(bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn(bits) {\n return this.clone().iushrn(bits);\n }; // Test if n bit is set\n\n\n BN.prototype.testn = function testn(bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) return false; // Check bit and return\n\n var w = this.words[s];\n return !!(w & q);\n }; // Return only lowers bits of number (in-place)\n\n\n BN.prototype.imaskn = function imaskn(bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n }; // Return only lowers bits of number\n\n\n BN.prototype.maskn = function maskn(bits) {\n return this.clone().imaskn(bits);\n }; // Add plain number `num` to `this`\n\n\n BN.prototype.iaddn = function iaddn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num); // Possible sign change\n\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n } // Add without checks\n\n\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn(num) {\n this.words[0] += num; // Carry\n\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n\n this.length = Math.max(this.length, i + 1);\n return this;\n }; // Subtract plain number `num` from `this`\n\n\n BN.prototype.isubn = function isubn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn(num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn(num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs() {\n this.negative = 0;\n return this;\n };\n\n BN.prototype.abs = function abs() {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - (right / 0x4000000 | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip(); // Subtraction overflow\n\n assert(carry === -1);\n carry = 0;\n\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n\n this.negative = 1;\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv(num, mode) {\n var shift = this.length - num.length;\n var a = this.clone();\n var b = num; // Normalize\n\n var bhi = b.words[b.length - 1] | 0;\n\n var bhiBits = this._countBits(bhi);\n\n shift = 26 - bhiBits;\n\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n } // Initialize quotient\n\n\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n\n if (diff.negative === 0) {\n a = diff;\n\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n\n qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n\n a._ishlnsubmul(b, 1, j);\n\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n\n if (q) {\n q.words[j] = qj;\n }\n }\n\n if (q) {\n q.strip();\n }\n\n a.strip(); // Denormalize\n\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n }; // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n\n\n BN.prototype.divmod = function divmod(num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n } // Both numbers are positive at this point\n // Strip both numbers to approximate shift value\n\n\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n } // Very short reduction\n\n\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n }; // Find `this` / `num`\n\n\n BN.prototype.div = function div(num) {\n return this.divmod(num, 'div', false).div;\n }; // Find `this` % `num`\n\n\n BN.prototype.mod = function mod(num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod(num) {\n return this.divmod(num, 'mod', true).mod;\n }; // Find Round(`this` / `num`)\n\n\n BN.prototype.divRound = function divRound(num) {\n var dm = this.divmod(num); // Fast case - exact division\n\n if (dm.mod.isZero()) return dm.div;\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half); // Round down\n\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn(num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n var acc = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n }; // In-place division by number\n\n\n BN.prototype.idivn = function idivn(num) {\n assert(num <= 0x3ffffff);\n var carry = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = w / num | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn(num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n } // A * x + B * y = x\n\n\n var A = new BN(1);\n var B = new BN(0); // C * x + D * y = y\n\n var C = new BN(0);\n var D = new BN(1);\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {\n ;\n }\n\n if (i > 0) {\n x.iushrn(i);\n\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {\n ;\n }\n\n if (j > 0) {\n y.iushrn(j);\n\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n }; // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n\n\n BN.prototype._invmp = function _invmp(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1) {\n ;\n }\n\n if (i > 0) {\n a.iushrn(i);\n\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) {\n ;\n }\n\n if (j > 0) {\n b.iushrn(j);\n\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd(num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0; // Remove common factor of two\n\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n }; // Invert number in the field F(num)\n\n\n BN.prototype.invm = function invm(num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven() {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd() {\n return (this.words[0] & 1) === 1;\n }; // And first word and num\n\n\n BN.prototype.andln = function andln(num) {\n return this.words[0] & num;\n }; // Increment at the bit position in-line\n\n\n BN.prototype.bincn = function bincn(bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) {\n this._expand(s + 1);\n\n this.words[s] |= q;\n return this;\n } // Add bit and propagate, if needed\n\n\n var carry = q;\n\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.isZero = function isZero() {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn(num) {\n var negative = num < 0;\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n this.strip();\n var res;\n\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n\n\n BN.prototype.cmp = function cmp(num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Unsigned comparison\n\n\n BN.prototype.ucmp = function ucmp(num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n var res = 0;\n\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n if (a === b) continue;\n\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n\n break;\n }\n\n return res;\n };\n\n BN.prototype.gtn = function gtn(num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt(num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten(num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte(num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn(num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt(num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten(num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte(num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn(num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq(num) {\n return this.cmp(num) === 0;\n }; //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n\n\n BN.red = function red(num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed(ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed() {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed(ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed(ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd(num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd(num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub(num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub(num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl(num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul(num) {\n assert(this.red, 'redMul works only with red numbers');\n\n this.red._verify2(this, num);\n\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul(num) {\n assert(this.red, 'redMul works only with red numbers');\n\n this.red._verify2(this, num);\n\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr() {\n assert(this.red, 'redSqr works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr() {\n assert(this.red, 'redISqr works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.isqr(this);\n }; // Square root over p\n\n\n BN.prototype.redSqrt = function redSqrt() {\n assert(this.red, 'redSqrt works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm() {\n assert(this.red, 'redInvm works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.invm(this);\n }; // Return negative clone of `this` % `red modulo`\n\n\n BN.prototype.redNeg = function redNeg() {\n assert(this.red, 'redNeg works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow(num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n\n this.red._verify1(this);\n\n return this.red.pow(this, num);\n }; // Prime numbers with efficient reduction\n\n\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n }; // Pseudo-Mersenne prime\n\n function MPrime(name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp() {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce(num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split(input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK(num) {\n return num.imul(this.k);\n };\n\n function K256() {\n MPrime.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n\n inherits(K256, MPrime);\n\n K256.prototype.split = function split(input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n var outLen = Math.min(input.length, 9);\n\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n } // Shift by 9 limbs\n\n\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = (next & mask) << 4 | prev >>> 22;\n prev = next;\n }\n\n prev >>>= 22;\n input.words[i - 10] = prev;\n\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK(num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n var lo = 0;\n\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + (lo / 0x4000000 | 0);\n } // Fast length reduction\n\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n\n return num;\n };\n\n function P224() {\n MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n\n inherits(P224, MPrime);\n\n function P192() {\n MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n\n inherits(P192, MPrime);\n\n function P25519() {\n // 2 ^ 255 - 19\n MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK(num) {\n // K = 0x13\n var carry = 0;\n\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n num.words[i] = lo;\n carry = hi;\n }\n\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n\n return num;\n }; // Exported mostly for testing purposes, use plain name instead\n\n\n BN._prime = function prime(name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n var prime;\n\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n\n primes[name] = prime;\n return prime;\n }; //\n // Base reduction engine\n //\n\n\n function Red(m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1(a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2(a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red, 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod(a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg(a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add(a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd(a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n\n return res;\n };\n\n Red.prototype.sub = function sub(a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub(a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res;\n };\n\n Red.prototype.shl = function shl(a, num) {\n this._verify1(a);\n\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr(a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr(a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt(a) {\n if (a.isZero()) return a.clone();\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1); // Fast case\n\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n var q = this.m.subn(1);\n var s = 0;\n\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n\n assert(!q.isZero());\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg(); // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n\n while (t.cmp(one) !== 0) {\n var tmp = t;\n\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm(a) {\n var inv = a._invmp(this.m);\n\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow(a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n\n for (var j = start - 1; j >= 0; j--) {\n var bit = word >> j & 1;\n\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo(num) {\n var r = num.umod(this.m);\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom(num) {\n var res = num.clone();\n res.red = null;\n return res;\n }; //\n // Montgomery method engine\n //\n\n\n BN.mont = function mont(num) {\n return new Mont(num);\n };\n\n function Mont(m) {\n Red.call(this, m);\n this.shift = this.m.bitLength();\n\n if (this.shift % 26 !== 0) {\n this.shift += 26 - this.shift % 26;\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo(num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom(num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul(a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul(a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm(a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})( false || module, this);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js?"); | ||
| 2405 | + | ||
| 2406 | +/***/ }), | ||
| 2407 | + | ||
| 2408 | +/***/ "./node_modules/public-encrypt/privateDecrypt.js": | ||
| 2409 | +/*!*******************************************************!*\ | ||
| 2410 | + !*** ./node_modules/public-encrypt/privateDecrypt.js ***! | ||
| 2411 | + \*******************************************************/ | ||
| 2412 | +/*! no static exports found */ | ||
| 2413 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2414 | + | ||
| 2415 | +eval("var parseKeys = __webpack_require__(/*! parse-asn1 */ \"./node_modules/parse-asn1/index.js\");\n\nvar mgf = __webpack_require__(/*! ./mgf */ \"./node_modules/public-encrypt/mgf.js\");\n\nvar xor = __webpack_require__(/*! ./xor */ \"./node_modules/public-encrypt/xor.js\");\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js\");\n\nvar crt = __webpack_require__(/*! browserify-rsa */ \"./node_modules/browserify-rsa/index.js\");\n\nvar createHash = __webpack_require__(/*! create-hash */ \"./node_modules/create-hash/browser.js\");\n\nvar withPublic = __webpack_require__(/*! ./withPublic */ \"./node_modules/public-encrypt/withPublic.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nmodule.exports = function privateDecrypt(privateKey, enc, reverse) {\n var padding;\n\n if (privateKey.padding) {\n padding = privateKey.padding;\n } else if (reverse) {\n padding = 1;\n } else {\n padding = 4;\n }\n\n var key = parseKeys(privateKey);\n var k = key.modulus.byteLength();\n\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error');\n }\n\n var msg;\n\n if (reverse) {\n msg = withPublic(new BN(enc), key);\n } else {\n msg = crt(enc, key);\n }\n\n var zBuffer = Buffer.alloc(k - msg.length);\n msg = Buffer.concat([zBuffer, msg], k);\n\n if (padding === 4) {\n return oaep(key, msg);\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse);\n } else if (padding === 3) {\n return msg;\n } else {\n throw new Error('unknown padding');\n }\n};\n\nfunction oaep(key, msg) {\n var k = key.modulus.byteLength();\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest();\n var hLen = iHash.length;\n\n if (msg[0] !== 0) {\n throw new Error('decryption error');\n }\n\n var maskedSeed = msg.slice(1, hLen + 1);\n var maskedDb = msg.slice(hLen + 1);\n var seed = xor(maskedSeed, mgf(maskedDb, hLen));\n var db = xor(maskedDb, mgf(seed, k - hLen - 1));\n\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error');\n }\n\n var i = hLen;\n\n while (db[i] === 0) {\n i++;\n }\n\n if (db[i++] !== 1) {\n throw new Error('decryption error');\n }\n\n return db.slice(i);\n}\n\nfunction pkcs1(key, msg, reverse) {\n var p1 = msg.slice(0, 2);\n var i = 2;\n var status = 0;\n\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++;\n break;\n }\n }\n\n var ps = msg.slice(2, i - 1);\n\n if (p1.toString('hex') !== '0002' && !reverse || p1.toString('hex') !== '0001' && reverse) {\n status++;\n }\n\n if (ps.length < 8) {\n status++;\n }\n\n if (status) {\n throw new Error('decryption error');\n }\n\n return msg.slice(i);\n}\n\nfunction compare(a, b) {\n a = Buffer.from(a);\n b = Buffer.from(b);\n var dif = 0;\n var len = a.length;\n\n if (a.length !== b.length) {\n dif++;\n len = Math.min(a.length, b.length);\n }\n\n var i = -1;\n\n while (++i < len) {\n dif += a[i] ^ b[i];\n }\n\n return dif;\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/public-encrypt/privateDecrypt.js?"); | ||
| 2416 | + | ||
| 2417 | +/***/ }), | ||
| 2418 | + | ||
| 2419 | +/***/ "./node_modules/public-encrypt/publicEncrypt.js": | ||
| 2420 | +/*!******************************************************!*\ | ||
| 2421 | + !*** ./node_modules/public-encrypt/publicEncrypt.js ***! | ||
| 2422 | + \******************************************************/ | ||
| 2423 | +/*! no static exports found */ | ||
| 2424 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2425 | + | ||
| 2426 | +eval("var parseKeys = __webpack_require__(/*! parse-asn1 */ \"./node_modules/parse-asn1/index.js\");\n\nvar randomBytes = __webpack_require__(/*! randombytes */ \"./node_modules/randombytes/browser.js\");\n\nvar createHash = __webpack_require__(/*! create-hash */ \"./node_modules/create-hash/browser.js\");\n\nvar mgf = __webpack_require__(/*! ./mgf */ \"./node_modules/public-encrypt/mgf.js\");\n\nvar xor = __webpack_require__(/*! ./xor */ \"./node_modules/public-encrypt/xor.js\");\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js\");\n\nvar withPublic = __webpack_require__(/*! ./withPublic */ \"./node_modules/public-encrypt/withPublic.js\");\n\nvar crt = __webpack_require__(/*! browserify-rsa */ \"./node_modules/browserify-rsa/index.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nmodule.exports = function publicEncrypt(publicKey, msg, reverse) {\n var padding;\n\n if (publicKey.padding) {\n padding = publicKey.padding;\n } else if (reverse) {\n padding = 1;\n } else {\n padding = 4;\n }\n\n var key = parseKeys(publicKey);\n var paddedMsg;\n\n if (padding === 4) {\n paddedMsg = oaep(key, msg);\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse);\n } else if (padding === 3) {\n paddedMsg = new BN(msg);\n\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus');\n }\n } else {\n throw new Error('unknown padding');\n }\n\n if (reverse) {\n return crt(paddedMsg, key);\n } else {\n return withPublic(paddedMsg, key);\n }\n};\n\nfunction oaep(key, msg) {\n var k = key.modulus.byteLength();\n var mLen = msg.length;\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest();\n var hLen = iHash.length;\n var hLen2 = 2 * hLen;\n\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long');\n }\n\n var ps = Buffer.alloc(k - mLen - hLen2 - 2);\n var dblen = k - hLen - 1;\n var seed = randomBytes(hLen);\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen));\n var maskedSeed = xor(seed, mgf(maskedDb, hLen));\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k));\n}\n\nfunction pkcs1(key, msg, reverse) {\n var mLen = msg.length;\n var k = key.modulus.byteLength();\n\n if (mLen > k - 11) {\n throw new Error('message too long');\n }\n\n var ps;\n\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff);\n } else {\n ps = nonZero(k - mLen - 3);\n }\n\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k));\n}\n\nfunction nonZero(len) {\n var out = Buffer.allocUnsafe(len);\n var i = 0;\n var cache = randomBytes(len * 2);\n var cur = 0;\n var num;\n\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2);\n cur = 0;\n }\n\n num = cache[cur++];\n\n if (num) {\n out[i++] = num;\n }\n }\n\n return out;\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/public-encrypt/publicEncrypt.js?"); | ||
| 2427 | + | ||
| 2428 | +/***/ }), | ||
| 2429 | + | ||
| 2430 | +/***/ "./node_modules/public-encrypt/withPublic.js": | ||
| 2431 | +/*!***************************************************!*\ | ||
| 2432 | + !*** ./node_modules/public-encrypt/withPublic.js ***! | ||
| 2433 | + \***************************************************/ | ||
| 2434 | +/*! no static exports found */ | ||
| 2435 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2436 | + | ||
| 2437 | +eval("var BN = __webpack_require__(/*! bn.js */ \"./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nfunction withPublic(paddedMsg, key) {\n return Buffer.from(paddedMsg.toRed(BN.mont(key.modulus)).redPow(new BN(key.publicExponent)).fromRed().toArray());\n}\n\nmodule.exports = withPublic;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/public-encrypt/withPublic.js?"); | ||
| 2438 | + | ||
| 2439 | +/***/ }), | ||
| 2440 | + | ||
| 2441 | +/***/ "./node_modules/public-encrypt/xor.js": | ||
| 2442 | +/*!********************************************!*\ | ||
| 2443 | + !*** ./node_modules/public-encrypt/xor.js ***! | ||
| 2444 | + \********************************************/ | ||
| 2445 | +/*! no static exports found */ | ||
| 2446 | +/***/ (function(module, exports) { | ||
| 2447 | + | ||
| 2448 | +eval("module.exports = function xor(a, b) {\n var len = a.length;\n var i = -1;\n\n while (++i < len) {\n a[i] ^= b[i];\n }\n\n return a;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/public-encrypt/xor.js?"); | ||
| 2449 | + | ||
| 2450 | +/***/ }), | ||
| 2451 | + | ||
| 2452 | +/***/ "./node_modules/randombytes/browser.js": | ||
| 2453 | +/*!*********************************************!*\ | ||
| 2454 | + !*** ./node_modules/randombytes/browser.js ***! | ||
| 2455 | + \*********************************************/ | ||
| 2456 | +/*! no static exports found */ | ||
| 2457 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2458 | + | ||
| 2459 | +"use strict"; | ||
| 2460 | +eval("/* WEBPACK VAR INJECTION */(function(global, process) { // limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\n\nvar MAX_BYTES = 65536; // Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\n\nvar MAX_UINT32 = 4294967295;\n\nfunction oldBrowser() {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11');\n}\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar crypto = global.crypto || global.msCrypto;\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes;\n} else {\n module.exports = oldBrowser;\n}\n\nfunction randomBytes(size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes');\n var bytes = Buffer.allocUnsafe(size);\n\n if (size > 0) {\n // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) {\n // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES));\n }\n } else {\n crypto.getRandomValues(bytes);\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes);\n });\n }\n\n return bytes;\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/randombytes/browser.js?"); | ||
| 2461 | + | ||
| 2462 | +/***/ }), | ||
| 2463 | + | ||
| 2464 | +/***/ "./node_modules/randomfill/browser.js": | ||
| 2465 | +/*!********************************************!*\ | ||
| 2466 | + !*** ./node_modules/randomfill/browser.js ***! | ||
| 2467 | + \********************************************/ | ||
| 2468 | +/*! no static exports found */ | ||
| 2469 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2470 | + | ||
| 2471 | +"use strict"; | ||
| 2472 | +eval("/* WEBPACK VAR INJECTION */(function(global, process) {\n\nfunction oldBrowser() {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11');\n}\n\nvar safeBuffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\");\n\nvar randombytes = __webpack_require__(/*! randombytes */ \"./node_modules/randombytes/browser.js\");\n\nvar Buffer = safeBuffer.Buffer;\nvar kBufferMaxLength = safeBuffer.kMaxLength;\nvar crypto = global.crypto || global.msCrypto;\nvar kMaxUint32 = Math.pow(2, 32) - 1;\n\nfunction assertOffset(offset, length) {\n if (typeof offset !== 'number' || offset !== offset) {\n // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number');\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32');\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range');\n }\n}\n\nfunction assertSize(size, offset, length) {\n if (typeof size !== 'number' || size !== size) {\n // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number');\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32');\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small');\n }\n}\n\nif (crypto && crypto.getRandomValues || !process.browser) {\n exports.randomFill = randomFill;\n exports.randomFillSync = randomFillSync;\n} else {\n exports.randomFill = oldBrowser;\n exports.randomFillSync = oldBrowser;\n}\n\nfunction randomFill(buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array');\n }\n\n if (typeof offset === 'function') {\n cb = offset;\n offset = 0;\n size = buf.length;\n } else if (typeof size === 'function') {\n cb = size;\n size = buf.length - offset;\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function');\n }\n\n assertOffset(offset, buf.length);\n assertSize(size, offset, buf.length);\n return actualFill(buf, offset, size, cb);\n}\n\nfunction actualFill(buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer;\n var uint = new Uint8Array(ourBuf, offset, size);\n crypto.getRandomValues(uint);\n\n if (cb) {\n process.nextTick(function () {\n cb(null, buf);\n });\n return;\n }\n\n return buf;\n }\n\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err);\n }\n\n bytes.copy(buf, offset);\n cb(null, buf);\n });\n return;\n }\n\n var bytes = randombytes(size);\n bytes.copy(buf, offset);\n return buf;\n}\n\nfunction randomFillSync(buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0;\n }\n\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array');\n }\n\n assertOffset(offset, buf.length);\n if (size === undefined) size = buf.length - offset;\n assertSize(size, offset, buf.length);\n return actualFill(buf, offset, size);\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/randomfill/browser.js?"); | ||
| 2473 | + | ||
| 2474 | +/***/ }), | ||
| 2475 | + | ||
| 2476 | +/***/ "./node_modules/readable-stream/duplex-browser.js": | ||
| 2477 | +/*!********************************************************!*\ | ||
| 2478 | + !*** ./node_modules/readable-stream/duplex-browser.js ***! | ||
| 2479 | + \********************************************************/ | ||
| 2480 | +/*! no static exports found */ | ||
| 2481 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2482 | + | ||
| 2483 | +eval("module.exports = __webpack_require__(/*! ./lib/_stream_duplex.js */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/readable-stream/duplex-browser.js?"); | ||
| 2484 | + | ||
| 2485 | +/***/ }), | ||
| 2486 | + | ||
| 2487 | +/***/ "./node_modules/readable-stream/lib/_stream_duplex.js": | ||
| 2488 | +/*!************************************************************!*\ | ||
| 2489 | + !*** ./node_modules/readable-stream/lib/_stream_duplex.js ***! | ||
| 2490 | + \************************************************************/ | ||
| 2491 | +/*! no static exports found */ | ||
| 2492 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2493 | + | ||
| 2494 | +"use strict"; | ||
| 2495 | +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n/*<replacement>*/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/*</replacement>*/\n\n\nmodule.exports = Duplex;\n/*<replacement>*/\n\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/*</replacement>*/\n\nvar Readable = __webpack_require__(/*! ./_stream_readable */ \"./node_modules/readable-stream/lib/_stream_readable.js\");\n\nvar Writable = __webpack_require__(/*! ./_stream_writable */ \"./node_modules/readable-stream/lib/_stream_writable.js\");\n\nutil.inherits(Duplex, Readable);\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n if (options && options.readable === false) this.readable = false;\n if (options && options.writable === false) this.writable = false;\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n pna.nextTick(cb, err);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/readable-stream/lib/_stream_duplex.js?"); | ||
| 2496 | + | ||
| 2497 | +/***/ }), | ||
| 2498 | + | ||
| 2499 | +/***/ "./node_modules/readable-stream/lib/_stream_passthrough.js": | ||
| 2500 | +/*!*****************************************************************!*\ | ||
| 2501 | + !*** ./node_modules/readable-stream/lib/_stream_passthrough.js ***! | ||
| 2502 | + \*****************************************************************/ | ||
| 2503 | +/*! no static exports found */ | ||
| 2504 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2505 | + | ||
| 2506 | +"use strict"; | ||
| 2507 | +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n\nmodule.exports = PassThrough;\n\nvar Transform = __webpack_require__(/*! ./_stream_transform */ \"./node_modules/readable-stream/lib/_stream_transform.js\");\n/*<replacement>*/\n\n\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/*</replacement>*/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/readable-stream/lib/_stream_passthrough.js?"); | ||
| 2508 | + | ||
| 2509 | +/***/ }), | ||
| 2510 | + | ||
| 2511 | +/***/ "./node_modules/readable-stream/lib/_stream_readable.js": | ||
| 2512 | +/*!**************************************************************!*\ | ||
| 2513 | + !*** ./node_modules/readable-stream/lib/_stream_readable.js ***! | ||
| 2514 | + \**************************************************************/ | ||
| 2515 | +/*! no static exports found */ | ||
| 2516 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2517 | + | ||
| 2518 | +"use strict"; | ||
| 2519 | +eval("/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n/*<replacement>*/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/*</replacement>*/\n\n\nmodule.exports = Readable;\n/*<replacement>*/\n\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\");\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n/*<replacement>*/\n\nvar EE = __webpack_require__(/*! events */ \"./node_modules/node-libs-browser/node_modules/events/events.js\").EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/readable-stream/node_modules/safe-buffer/index.js\").Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar debugUtil = __webpack_require__(/*! util */ 2);\n\nvar debug = void 0;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/*</replacement>*/\n\n\nvar BufferList = __webpack_require__(/*! ./internal/streams/BufferList */ \"./node_modules/readable-stream/lib/internal/streams/BufferList.js\");\n\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/readable-stream/lib/internal/streams/destroy.js\");\n\nvar StringDecoder;\nutil.inherits(Readable, Stream);\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n var isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm; // cast to ints.\n\n this.highWaterMark = Math.floor(this.highWaterMark); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n if (!(this instanceof Readable)) return new Readable(options);\n this._readableState = new ReadableState(options, this); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n\n return er;\n} // if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\n\n\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n}; // Don't raise the hwm > 8MB\n\n\nvar MAX_HWM = 0x800000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true; // emit 'readable' now to make sure it gets picked up.\n\n emitReadable(stream);\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n } // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n\n\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {}\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList; // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n return ret;\n} // Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n\n return ret;\n} // Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n list.length -= c;\n return ret;\n} // Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState; // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/readable-stream/lib/_stream_readable.js?"); | ||
| 2520 | + | ||
| 2521 | +/***/ }), | ||
| 2522 | + | ||
| 2523 | +/***/ "./node_modules/readable-stream/lib/_stream_transform.js": | ||
| 2524 | +/*!***************************************************************!*\ | ||
| 2525 | + !*** ./node_modules/readable-stream/lib/_stream_transform.js ***! | ||
| 2526 | + \***************************************************************/ | ||
| 2527 | +/*! no static exports found */ | ||
| 2528 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2529 | + | ||
| 2530 | +"use strict"; | ||
| 2531 | +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\nmodule.exports = Transform;\n\nvar Duplex = __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n/*<replacement>*/\n\n\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/*</replacement>*/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n return stream.push(null);\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/readable-stream/lib/_stream_transform.js?"); | ||
| 2532 | + | ||
| 2533 | +/***/ }), | ||
| 2534 | + | ||
| 2535 | +/***/ "./node_modules/readable-stream/lib/_stream_writable.js": | ||
| 2536 | +/*!**************************************************************!*\ | ||
| 2537 | + !*** ./node_modules/readable-stream/lib/_stream_writable.js ***! | ||
| 2538 | + \**************************************************************/ | ||
| 2539 | +/*! no static exports found */ | ||
| 2540 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2541 | + | ||
| 2542 | +"use strict"; | ||
| 2543 | +eval("/* WEBPACK VAR INJECTION */(function(process, setImmediate, global) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n/*<replacement>*/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/*</replacement>*/\n\n\nmodule.exports = Writable;\n/* <replacement> */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* </replacement> */\n\n/*<replacement>*/\n\n\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n/*<replacement>*/\n\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar internalUtil = {\n deprecate: __webpack_require__(/*! util-deprecate */ \"./node_modules/util-deprecate/browser.js\")\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/readable-stream/node_modules/safe-buffer/index.js\").Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/*</replacement>*/\n\n\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/readable-stream/lib/internal/streams/destroy.js\");\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n var isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm; // cast to ints.\n\n this.highWaterMark = Math.floor(this.highWaterMark); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\"); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end'); // TODO: defer error events consistently everywhere, not just the cb\n\n stream.emit('error', er);\n pna.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /*<replacement>*/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /*</replacement>*/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n stream.emit('error', err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ \"./node_modules/process/browser.js\"), __webpack_require__(/*! ./../../node-libs-browser/node_modules/timers-browserify/main.js */ \"./node_modules/node-libs-browser/node_modules/timers-browserify/main.js\").setImmediate, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/readable-stream/lib/_stream_writable.js?"); | ||
| 2544 | + | ||
| 2545 | +/***/ }), | ||
| 2546 | + | ||
| 2547 | +/***/ "./node_modules/readable-stream/lib/internal/streams/BufferList.js": | ||
| 2548 | +/*!*************************************************************************!*\ | ||
| 2549 | + !*** ./node_modules/readable-stream/lib/internal/streams/BufferList.js ***! | ||
| 2550 | + \*************************************************************************/ | ||
| 2551 | +/*! no static exports found */ | ||
| 2552 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2553 | + | ||
| 2554 | +"use strict"; | ||
| 2555 | +eval("\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/readable-stream/node_modules/safe-buffer/index.js\").Buffer;\n\nvar util = __webpack_require__(/*! util */ 3);\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({\n length: this.length\n });\n return this.constructor.name + ' ' + obj;\n };\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/readable-stream/lib/internal/streams/BufferList.js?"); | ||
| 2556 | + | ||
| 2557 | +/***/ }), | ||
| 2558 | + | ||
| 2559 | +/***/ "./node_modules/readable-stream/lib/internal/streams/destroy.js": | ||
| 2560 | +/*!**********************************************************************!*\ | ||
| 2561 | + !*** ./node_modules/readable-stream/lib/internal/streams/destroy.js ***! | ||
| 2562 | + \**********************************************************************/ | ||
| 2563 | +/*! no static exports found */ | ||
| 2564 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2565 | + | ||
| 2566 | +"use strict"; | ||
| 2567 | +eval("\n/*<replacement>*/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/*</replacement>*/\n// undocumented cb() API, needed for core, not for public API\n\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/readable-stream/lib/internal/streams/destroy.js?"); | ||
| 2568 | + | ||
| 2569 | +/***/ }), | ||
| 2570 | + | ||
| 2571 | +/***/ "./node_modules/readable-stream/lib/internal/streams/stream-browser.js": | ||
| 2572 | +/*!*****************************************************************************!*\ | ||
| 2573 | + !*** ./node_modules/readable-stream/lib/internal/streams/stream-browser.js ***! | ||
| 2574 | + \*****************************************************************************/ | ||
| 2575 | +/*! no static exports found */ | ||
| 2576 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2577 | + | ||
| 2578 | +eval("module.exports = __webpack_require__(/*! events */ \"./node_modules/node-libs-browser/node_modules/events/events.js\").EventEmitter;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/readable-stream/lib/internal/streams/stream-browser.js?"); | ||
| 2579 | + | ||
| 2580 | +/***/ }), | ||
| 2581 | + | ||
| 2582 | +/***/ "./node_modules/readable-stream/node_modules/safe-buffer/index.js": | ||
| 2583 | +/*!************************************************************************!*\ | ||
| 2584 | + !*** ./node_modules/readable-stream/node_modules/safe-buffer/index.js ***! | ||
| 2585 | + \************************************************************************/ | ||
| 2586 | +/*! no static exports found */ | ||
| 2587 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2588 | + | ||
| 2589 | +eval("/* eslint-disable node/no-deprecated-api */\nvar buffer = __webpack_require__(/*! buffer */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\");\n\nvar Buffer = buffer.Buffer; // alternative to using Object.keys for old browsers\n\nfunction copyProps(src, dst) {\n for (var key in src) {\n dst[key] = src[key];\n }\n}\n\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer;\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n}\n\nfunction SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length);\n} // Copy static methods from Buffer\n\n\ncopyProps(Buffer, SafeBuffer);\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number');\n }\n\n return Buffer(arg, encodingOrOffset, length);\n};\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n var buf = Buffer(size);\n\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding);\n } else {\n buf.fill(fill);\n }\n } else {\n buf.fill(0);\n }\n\n return buf;\n};\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n return Buffer(size);\n};\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n return buffer.SlowBuffer(size);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/readable-stream/node_modules/safe-buffer/index.js?"); | ||
| 2590 | + | ||
| 2591 | +/***/ }), | ||
| 2592 | + | ||
| 2593 | +/***/ "./node_modules/readable-stream/passthrough.js": | ||
| 2594 | +/*!*****************************************************!*\ | ||
| 2595 | + !*** ./node_modules/readable-stream/passthrough.js ***! | ||
| 2596 | + \*****************************************************/ | ||
| 2597 | +/*! no static exports found */ | ||
| 2598 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2599 | + | ||
| 2600 | +eval("module.exports = __webpack_require__(/*! ./readable */ \"./node_modules/readable-stream/readable-browser.js\").PassThrough;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/readable-stream/passthrough.js?"); | ||
| 2601 | + | ||
| 2602 | +/***/ }), | ||
| 2603 | + | ||
| 2604 | +/***/ "./node_modules/readable-stream/readable-browser.js": | ||
| 2605 | +/*!**********************************************************!*\ | ||
| 2606 | + !*** ./node_modules/readable-stream/readable-browser.js ***! | ||
| 2607 | + \**********************************************************/ | ||
| 2608 | +/*! no static exports found */ | ||
| 2609 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2610 | + | ||
| 2611 | +eval("exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ \"./node_modules/readable-stream/lib/_stream_readable.js\");\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ \"./node_modules/readable-stream/lib/_stream_writable.js\");\nexports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\nexports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ \"./node_modules/readable-stream/lib/_stream_transform.js\");\nexports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ \"./node_modules/readable-stream/lib/_stream_passthrough.js\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/readable-stream/readable-browser.js?"); | ||
| 2612 | + | ||
| 2613 | +/***/ }), | ||
| 2614 | + | ||
| 2615 | +/***/ "./node_modules/readable-stream/transform.js": | ||
| 2616 | +/*!***************************************************!*\ | ||
| 2617 | + !*** ./node_modules/readable-stream/transform.js ***! | ||
| 2618 | + \***************************************************/ | ||
| 2619 | +/*! no static exports found */ | ||
| 2620 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2621 | + | ||
| 2622 | +eval("module.exports = __webpack_require__(/*! ./readable */ \"./node_modules/readable-stream/readable-browser.js\").Transform;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/readable-stream/transform.js?"); | ||
| 2623 | + | ||
| 2624 | +/***/ }), | ||
| 2625 | + | ||
| 2626 | +/***/ "./node_modules/readable-stream/writable-browser.js": | ||
| 2627 | +/*!**********************************************************!*\ | ||
| 2628 | + !*** ./node_modules/readable-stream/writable-browser.js ***! | ||
| 2629 | + \**********************************************************/ | ||
| 2630 | +/*! no static exports found */ | ||
| 2631 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2632 | + | ||
| 2633 | +eval("module.exports = __webpack_require__(/*! ./lib/_stream_writable.js */ \"./node_modules/readable-stream/lib/_stream_writable.js\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/readable-stream/writable-browser.js?"); | ||
| 2634 | + | ||
| 2635 | +/***/ }), | ||
| 2636 | + | ||
| 2637 | +/***/ "./node_modules/ripemd160/index.js": | ||
| 2638 | +/*!*****************************************!*\ | ||
| 2639 | + !*** ./node_modules/ripemd160/index.js ***! | ||
| 2640 | + \*****************************************/ | ||
| 2641 | +/*! no static exports found */ | ||
| 2642 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2643 | + | ||
| 2644 | +"use strict"; | ||
| 2645 | +eval("\n\nvar Buffer = __webpack_require__(/*! buffer */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer;\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar HashBase = __webpack_require__(/*! hash-base */ \"./node_modules/hash-base/index.js\");\n\nvar ARRAY16 = new Array(16);\nvar zl = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13];\nvar zr = [5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11];\nvar sl = [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6];\nvar sr = [8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11];\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e];\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000];\n\nfunction RIPEMD160() {\n HashBase.call(this, 64); // state\n\n this._a = 0x67452301;\n this._b = 0xefcdab89;\n this._c = 0x98badcfe;\n this._d = 0x10325476;\n this._e = 0xc3d2e1f0;\n}\n\ninherits(RIPEMD160, HashBase);\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16;\n\n for (var j = 0; j < 16; ++j) {\n words[j] = this._block.readInt32LE(j * 4);\n }\n\n var al = this._a | 0;\n var bl = this._b | 0;\n var cl = this._c | 0;\n var dl = this._d | 0;\n var el = this._e | 0;\n var ar = this._a | 0;\n var br = this._b | 0;\n var cr = this._c | 0;\n var dr = this._d | 0;\n var er = this._e | 0; // computation\n\n for (var i = 0; i < 80; i += 1) {\n var tl;\n var tr;\n\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i]);\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i]);\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i]);\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i]);\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i]);\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i]);\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i]);\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i]);\n } else {\n // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i]);\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i]);\n }\n\n al = el;\n el = dl;\n dl = rotl(cl, 10);\n cl = bl;\n bl = tl;\n ar = er;\n er = dr;\n dr = rotl(cr, 10);\n cr = br;\n br = tr;\n } // update state\n\n\n var t = this._b + cl + dr | 0;\n this._b = this._c + dl + er | 0;\n this._c = this._d + el + ar | 0;\n this._d = this._e + al + br | 0;\n this._e = this._a + bl + cr | 0;\n this._a = t;\n};\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80;\n\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64);\n\n this._update();\n\n this._blockOffset = 0;\n }\n\n this._block.fill(0, this._blockOffset, 56);\n\n this._block.writeUInt32LE(this._length[0], 56);\n\n this._block.writeUInt32LE(this._length[1], 60);\n\n this._update(); // produce result\n\n\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20);\n buffer.writeInt32LE(this._a, 0);\n buffer.writeInt32LE(this._b, 4);\n buffer.writeInt32LE(this._c, 8);\n buffer.writeInt32LE(this._d, 12);\n buffer.writeInt32LE(this._e, 16);\n return buffer;\n};\n\nfunction rotl(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction fn1(a, b, c, d, e, m, k, s) {\n return rotl(a + (b ^ c ^ d) + m + k | 0, s) + e | 0;\n}\n\nfunction fn2(a, b, c, d, e, m, k, s) {\n return rotl(a + (b & c | ~b & d) + m + k | 0, s) + e | 0;\n}\n\nfunction fn3(a, b, c, d, e, m, k, s) {\n return rotl(a + ((b | ~c) ^ d) + m + k | 0, s) + e | 0;\n}\n\nfunction fn4(a, b, c, d, e, m, k, s) {\n return rotl(a + (b & d | c & ~d) + m + k | 0, s) + e | 0;\n}\n\nfunction fn5(a, b, c, d, e, m, k, s) {\n return rotl(a + (b ^ (c | ~d)) + m + k | 0, s) + e | 0;\n}\n\nmodule.exports = RIPEMD160;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/ripemd160/index.js?"); | ||
| 2646 | + | ||
| 2647 | +/***/ }), | ||
| 2648 | + | ||
| 2649 | +/***/ "./node_modules/safe-buffer/index.js": | ||
| 2650 | +/*!*******************************************!*\ | ||
| 2651 | + !*** ./node_modules/safe-buffer/index.js ***! | ||
| 2652 | + \*******************************************/ | ||
| 2653 | +/*! no static exports found */ | ||
| 2654 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2655 | + | ||
| 2656 | +eval("/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\n\n/* eslint-disable node/no-deprecated-api */\nvar buffer = __webpack_require__(/*! buffer */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\");\n\nvar Buffer = buffer.Buffer; // alternative to using Object.keys for old browsers\n\nfunction copyProps(src, dst) {\n for (var key in src) {\n dst[key] = src[key];\n }\n}\n\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer;\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n}\n\nfunction SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length);\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype); // Copy static methods from Buffer\n\ncopyProps(Buffer, SafeBuffer);\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number');\n }\n\n return Buffer(arg, encodingOrOffset, length);\n};\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n var buf = Buffer(size);\n\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding);\n } else {\n buf.fill(fill);\n }\n } else {\n buf.fill(0);\n }\n\n return buf;\n};\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n return Buffer(size);\n};\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n return buffer.SlowBuffer(size);\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/safe-buffer/index.js?"); | ||
| 2657 | + | ||
| 2658 | +/***/ }), | ||
| 2659 | + | ||
| 2660 | +/***/ "./node_modules/safer-buffer/safer.js": | ||
| 2661 | +/*!********************************************!*\ | ||
| 2662 | + !*** ./node_modules/safer-buffer/safer.js ***! | ||
| 2663 | + \********************************************/ | ||
| 2664 | +/*! no static exports found */ | ||
| 2665 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2666 | + | ||
| 2667 | +"use strict"; | ||
| 2668 | +eval("/* WEBPACK VAR INJECTION */(function(process) {/* eslint-disable node/no-deprecated-api */\n\n\nvar buffer = __webpack_require__(/*! buffer */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\");\n\nvar Buffer = buffer.Buffer;\nvar safer = {};\nvar key;\n\nfor (key in buffer) {\n if (!buffer.hasOwnProperty(key)) continue;\n if (key === 'SlowBuffer' || key === 'Buffer') continue;\n safer[key] = buffer[key];\n}\n\nvar Safer = safer.Buffer = {};\n\nfor (key in Buffer) {\n if (!Buffer.hasOwnProperty(key)) continue;\n if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue;\n Safer[key] = Buffer[key];\n}\n\nsafer.Buffer.prototype = Buffer.prototype;\n\nif (!Safer.from || Safer.from === Uint8Array.from) {\n Safer.from = function (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('The \"value\" argument must not be of type number. Received type ' + typeof value);\n }\n\n if (value && typeof value.length === 'undefined') {\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value);\n }\n\n return Buffer(value, encodingOrOffset, length);\n };\n}\n\nif (!Safer.alloc) {\n Safer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('The \"size\" argument must be of type number. Received type ' + typeof size);\n }\n\n if (size < 0 || size >= 2 * (1 << 30)) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"');\n }\n\n var buf = Buffer(size);\n\n if (!fill || fill.length === 0) {\n buf.fill(0);\n } else if (typeof encoding === 'string') {\n buf.fill(fill, encoding);\n } else {\n buf.fill(fill);\n }\n\n return buf;\n };\n}\n\nif (!safer.kStringMaxLength) {\n try {\n safer.kStringMaxLength = process.binding('buffer').kStringMaxLength;\n } catch (e) {// we can't determine kStringMaxLength in environments where process.binding\n // is unsupported, so let's not set it\n }\n}\n\nif (!safer.constants) {\n safer.constants = {\n MAX_LENGTH: safer.kMaxLength\n };\n\n if (safer.kStringMaxLength) {\n safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength;\n }\n}\n\nmodule.exports = safer;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/safer-buffer/safer.js?"); | ||
| 2669 | + | ||
| 2670 | +/***/ }), | ||
| 2671 | + | ||
| 2672 | +/***/ "./node_modules/screenfull/index.js": | ||
| 2673 | +/*!******************************************!*\ | ||
| 2674 | + !*** ./node_modules/screenfull/index.js ***! | ||
| 2675 | + \******************************************/ | ||
| 2676 | +/*! exports provided: default */ | ||
| 2677 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 2678 | + | ||
| 2679 | +"use strict"; | ||
| 2680 | +eval("__webpack_require__.r(__webpack_exports__);\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/* eslint-disable promise/prefer-await-to-then */\nvar methodMap = [['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror'], // New WebKit\n['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror'], // Old WebKit\n['webkitRequestFullScreen', 'webkitCancelFullScreen', 'webkitCurrentFullScreenElement', 'webkitCancelFullScreen', 'webkitfullscreenchange', 'webkitfullscreenerror'], ['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror'], ['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError']];\n\nvar nativeAPI = function () {\n var unprefixedMethods = methodMap[0];\n var returnValue = {};\n\n for (var _iterator = _createForOfIteratorHelperLoose(methodMap), _step; !(_step = _iterator()).done;) {\n var methodList = _step.value;\n var exitFullscreenMethod = methodList == null ? void 0 : methodList[1];\n\n if (exitFullscreenMethod in document) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(methodList.entries()), _step2; !(_step2 = _iterator2()).done;) {\n var _step2$value = _step2.value,\n index = _step2$value[0],\n method = _step2$value[1];\n returnValue[unprefixedMethods[index]] = method;\n }\n\n return returnValue;\n }\n }\n\n return false;\n}();\n\nvar eventNameMap = {\n change: nativeAPI.fullscreenchange,\n error: nativeAPI.fullscreenerror\n}; // eslint-disable-next-line import/no-mutable-exports\n\nvar screenfull = {\n // eslint-disable-next-line default-param-last\n request: function request(element, options) {\n if (element === void 0) {\n element = document.documentElement;\n }\n\n return new Promise(function (resolve, reject) {\n var onFullScreenEntered = function onFullScreenEntered() {\n screenfull.off('change', onFullScreenEntered);\n resolve();\n };\n\n screenfull.on('change', onFullScreenEntered);\n var returnPromise = element[nativeAPI.requestFullscreen](options);\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenEntered).catch(reject);\n }\n });\n },\n exit: function exit() {\n return new Promise(function (resolve, reject) {\n if (!screenfull.isFullscreen) {\n resolve();\n return;\n }\n\n var onFullScreenExit = function onFullScreenExit() {\n screenfull.off('change', onFullScreenExit);\n resolve();\n };\n\n screenfull.on('change', onFullScreenExit);\n var returnPromise = document[nativeAPI.exitFullscreen]();\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenExit).catch(reject);\n }\n });\n },\n toggle: function toggle(element, options) {\n return screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options);\n },\n onchange: function onchange(callback) {\n screenfull.on('change', callback);\n },\n onerror: function onerror(callback) {\n screenfull.on('error', callback);\n },\n on: function on(event, callback) {\n var eventName = eventNameMap[event];\n\n if (eventName) {\n document.addEventListener(eventName, callback, false);\n }\n },\n off: function off(event, callback) {\n var eventName = eventNameMap[event];\n\n if (eventName) {\n document.removeEventListener(eventName, callback, false);\n }\n },\n raw: nativeAPI\n};\nObject.defineProperties(screenfull, {\n isFullscreen: {\n get: function get() {\n return Boolean(document[nativeAPI.fullscreenElement]);\n }\n },\n element: {\n enumerable: true,\n get: function get() {\n var _document$nativeAPI$f;\n\n return (_document$nativeAPI$f = document[nativeAPI.fullscreenElement]) != null ? _document$nativeAPI$f : undefined;\n }\n },\n isEnabled: {\n enumerable: true,\n // Coerce to boolean in case of old WebKit.\n get: function get() {\n return Boolean(document[nativeAPI.fullscreenEnabled]);\n }\n }\n});\n\nif (!nativeAPI) {\n screenfull = {\n isEnabled: false\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (screenfull);\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/screenfull/index.js?"); | ||
| 2681 | + | ||
| 2682 | +/***/ }), | ||
| 2683 | + | ||
| 2684 | +/***/ "./node_modules/setimmediate/setImmediate.js": | ||
| 2685 | +/*!***************************************************!*\ | ||
| 2686 | + !*** ./node_modules/setimmediate/setImmediate.js ***! | ||
| 2687 | + \***************************************************/ | ||
| 2688 | +/*! no static exports found */ | ||
| 2689 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2690 | + | ||
| 2691 | +eval("/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n } // Copy function arguments\n\n\n var args = new Array(arguments.length - 1);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n } // Store and register the task\n\n\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n\n switch (args.length) {\n case 0:\n callback();\n break;\n\n case 1:\n callback(args[0]);\n break;\n\n case 2:\n callback(args[0], args[1]);\n break;\n\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n\n if (task) {\n currentlyRunningATask = true;\n\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\n var onGlobalMessage = function onGlobalMessage(event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n\n registerImmediate = function registerImmediate(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function registerImmediate(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n } // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n\n\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global; // Don't get fooled by e.g. browserify environments.\n\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n})(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/setimmediate/setImmediate.js?"); | ||
| 2692 | + | ||
| 2693 | +/***/ }), | ||
| 2694 | + | ||
| 2695 | +/***/ "./node_modules/sha.js/hash.js": | ||
| 2696 | +/*!*************************************!*\ | ||
| 2697 | + !*** ./node_modules/sha.js/hash.js ***! | ||
| 2698 | + \*************************************/ | ||
| 2699 | +/*! no static exports found */ | ||
| 2700 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2701 | + | ||
| 2702 | +eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer; // prototype class for hash functions\n\n\nfunction Hash(blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize);\n this._finalSize = finalSize;\n this._blockSize = blockSize;\n this._len = 0;\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8';\n data = Buffer.from(data, enc);\n }\n\n var block = this._block;\n var blockSize = this._blockSize;\n var length = data.length;\n var accum = this._len;\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize;\n var remainder = Math.min(length - offset, blockSize - assigned);\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i];\n }\n\n accum += remainder;\n offset += remainder;\n\n if (accum % blockSize === 0) {\n this._update(block);\n }\n }\n\n this._len += length;\n return this;\n};\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize;\n this._block[rem] = 0x80; // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n\n this._block.fill(0, rem + 1);\n\n if (rem >= this._finalSize) {\n this._update(this._block);\n\n this._block.fill(0);\n }\n\n var bits = this._len * 8; // uint32\n\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4); // uint64\n\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0;\n var highBits = (bits - lowBits) / 0x100000000;\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8);\n\n this._block.writeUInt32BE(lowBits, this._blockSize - 4);\n }\n\n this._update(this._block);\n\n var hash = this._hash();\n\n return enc ? hash.toString(enc) : hash;\n};\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass');\n};\n\nmodule.exports = Hash;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/sha.js/hash.js?"); | ||
| 2703 | + | ||
| 2704 | +/***/ }), | ||
| 2705 | + | ||
| 2706 | +/***/ "./node_modules/sha.js/index.js": | ||
| 2707 | +/*!**************************************!*\ | ||
| 2708 | + !*** ./node_modules/sha.js/index.js ***! | ||
| 2709 | + \**************************************/ | ||
| 2710 | +/*! no static exports found */ | ||
| 2711 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2712 | + | ||
| 2713 | +eval("var exports = module.exports = function SHA(algorithm) {\n algorithm = algorithm.toLowerCase();\n var Algorithm = exports[algorithm];\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)');\n return new Algorithm();\n};\n\nexports.sha = __webpack_require__(/*! ./sha */ \"./node_modules/sha.js/sha.js\");\nexports.sha1 = __webpack_require__(/*! ./sha1 */ \"./node_modules/sha.js/sha1.js\");\nexports.sha224 = __webpack_require__(/*! ./sha224 */ \"./node_modules/sha.js/sha224.js\");\nexports.sha256 = __webpack_require__(/*! ./sha256 */ \"./node_modules/sha.js/sha256.js\");\nexports.sha384 = __webpack_require__(/*! ./sha384 */ \"./node_modules/sha.js/sha384.js\");\nexports.sha512 = __webpack_require__(/*! ./sha512 */ \"./node_modules/sha.js/sha512.js\");\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/sha.js/index.js?"); | ||
| 2714 | + | ||
| 2715 | +/***/ }), | ||
| 2716 | + | ||
| 2717 | +/***/ "./node_modules/sha.js/sha.js": | ||
| 2718 | +/*!************************************!*\ | ||
| 2719 | + !*** ./node_modules/sha.js/sha.js ***! | ||
| 2720 | + \************************************/ | ||
| 2721 | +/*! no static exports found */ | ||
| 2722 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2723 | + | ||
| 2724 | +eval("/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0];\nvar W = new Array(80);\n\nfunction Sha() {\n this.init();\n this._w = W;\n Hash.call(this, 64, 56);\n}\n\ninherits(Sha, Hash);\n\nSha.prototype.init = function () {\n this._a = 0x67452301;\n this._b = 0xefcdab89;\n this._c = 0x98badcfe;\n this._d = 0x10325476;\n this._e = 0xc3d2e1f0;\n return this;\n};\n\nfunction rotl5(num) {\n return num << 5 | num >>> 27;\n}\n\nfunction rotl30(num) {\n return num << 30 | num >>> 2;\n}\n\nfunction ft(s, b, c, d) {\n if (s === 0) return b & c | ~b & d;\n if (s === 2) return b & c | b & d | c & d;\n return b ^ c ^ d;\n}\n\nSha.prototype._update = function (M) {\n var W = this._w;\n var a = this._a | 0;\n var b = this._b | 0;\n var c = this._c | 0;\n var d = this._d | 0;\n var e = this._e | 0;\n\n for (var i = 0; i < 16; ++i) {\n W[i] = M.readInt32BE(i * 4);\n }\n\n for (; i < 80; ++i) {\n W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n }\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20);\n var t = rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s] | 0;\n e = d;\n d = c;\n c = rotl30(b);\n b = a;\n a = t;\n }\n\n this._a = a + this._a | 0;\n this._b = b + this._b | 0;\n this._c = c + this._c | 0;\n this._d = d + this._d | 0;\n this._e = e + this._e | 0;\n};\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20);\n H.writeInt32BE(this._a | 0, 0);\n H.writeInt32BE(this._b | 0, 4);\n H.writeInt32BE(this._c | 0, 8);\n H.writeInt32BE(this._d | 0, 12);\n H.writeInt32BE(this._e | 0, 16);\n return H;\n};\n\nmodule.exports = Sha;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/sha.js/sha.js?"); | ||
| 2725 | + | ||
| 2726 | +/***/ }), | ||
| 2727 | + | ||
| 2728 | +/***/ "./node_modules/sha.js/sha1.js": | ||
| 2729 | +/*!*************************************!*\ | ||
| 2730 | + !*** ./node_modules/sha.js/sha1.js ***! | ||
| 2731 | + \*************************************/ | ||
| 2732 | +/*! no static exports found */ | ||
| 2733 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2734 | + | ||
| 2735 | +eval("/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0];\nvar W = new Array(80);\n\nfunction Sha1() {\n this.init();\n this._w = W;\n Hash.call(this, 64, 56);\n}\n\ninherits(Sha1, Hash);\n\nSha1.prototype.init = function () {\n this._a = 0x67452301;\n this._b = 0xefcdab89;\n this._c = 0x98badcfe;\n this._d = 0x10325476;\n this._e = 0xc3d2e1f0;\n return this;\n};\n\nfunction rotl1(num) {\n return num << 1 | num >>> 31;\n}\n\nfunction rotl5(num) {\n return num << 5 | num >>> 27;\n}\n\nfunction rotl30(num) {\n return num << 30 | num >>> 2;\n}\n\nfunction ft(s, b, c, d) {\n if (s === 0) return b & c | ~b & d;\n if (s === 2) return b & c | b & d | c & d;\n return b ^ c ^ d;\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w;\n var a = this._a | 0;\n var b = this._b | 0;\n var c = this._c | 0;\n var d = this._d | 0;\n var e = this._e | 0;\n\n for (var i = 0; i < 16; ++i) {\n W[i] = M.readInt32BE(i * 4);\n }\n\n for (; i < 80; ++i) {\n W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]);\n }\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20);\n var t = rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s] | 0;\n e = d;\n d = c;\n c = rotl30(b);\n b = a;\n a = t;\n }\n\n this._a = a + this._a | 0;\n this._b = b + this._b | 0;\n this._c = c + this._c | 0;\n this._d = d + this._d | 0;\n this._e = e + this._e | 0;\n};\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20);\n H.writeInt32BE(this._a | 0, 0);\n H.writeInt32BE(this._b | 0, 4);\n H.writeInt32BE(this._c | 0, 8);\n H.writeInt32BE(this._d | 0, 12);\n H.writeInt32BE(this._e | 0, 16);\n return H;\n};\n\nmodule.exports = Sha1;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/sha.js/sha1.js?"); | ||
| 2736 | + | ||
| 2737 | +/***/ }), | ||
| 2738 | + | ||
| 2739 | +/***/ "./node_modules/sha.js/sha224.js": | ||
| 2740 | +/*!***************************************!*\ | ||
| 2741 | + !*** ./node_modules/sha.js/sha224.js ***! | ||
| 2742 | + \***************************************/ | ||
| 2743 | +/*! no static exports found */ | ||
| 2744 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2745 | + | ||
| 2746 | +eval("/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Sha256 = __webpack_require__(/*! ./sha256 */ \"./node_modules/sha.js/sha256.js\");\n\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar W = new Array(64);\n\nfunction Sha224() {\n this.init();\n this._w = W; // new Array(64)\n\n Hash.call(this, 64, 56);\n}\n\ninherits(Sha224, Sha256);\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8;\n this._b = 0x367cd507;\n this._c = 0x3070dd17;\n this._d = 0xf70e5939;\n this._e = 0xffc00b31;\n this._f = 0x68581511;\n this._g = 0x64f98fa7;\n this._h = 0xbefa4fa4;\n return this;\n};\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28);\n H.writeInt32BE(this._a, 0);\n H.writeInt32BE(this._b, 4);\n H.writeInt32BE(this._c, 8);\n H.writeInt32BE(this._d, 12);\n H.writeInt32BE(this._e, 16);\n H.writeInt32BE(this._f, 20);\n H.writeInt32BE(this._g, 24);\n return H;\n};\n\nmodule.exports = Sha224;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/sha.js/sha224.js?"); | ||
| 2747 | + | ||
| 2748 | +/***/ }), | ||
| 2749 | + | ||
| 2750 | +/***/ "./node_modules/sha.js/sha256.js": | ||
| 2751 | +/*!***************************************!*\ | ||
| 2752 | + !*** ./node_modules/sha.js/sha256.js ***! | ||
| 2753 | + \***************************************/ | ||
| 2754 | +/*! no static exports found */ | ||
| 2755 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2756 | + | ||
| 2757 | +eval("/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar K = [0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967, 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2];\nvar W = new Array(64);\n\nfunction Sha256() {\n this.init();\n this._w = W; // new Array(64)\n\n Hash.call(this, 64, 56);\n}\n\ninherits(Sha256, Hash);\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667;\n this._b = 0xbb67ae85;\n this._c = 0x3c6ef372;\n this._d = 0xa54ff53a;\n this._e = 0x510e527f;\n this._f = 0x9b05688c;\n this._g = 0x1f83d9ab;\n this._h = 0x5be0cd19;\n return this;\n};\n\nfunction ch(x, y, z) {\n return z ^ x & (y ^ z);\n}\n\nfunction maj(x, y, z) {\n return x & y | z & (x | y);\n}\n\nfunction sigma0(x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10);\n}\n\nfunction sigma1(x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7);\n}\n\nfunction gamma0(x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ x >>> 3;\n}\n\nfunction gamma1(x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ x >>> 10;\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w;\n var a = this._a | 0;\n var b = this._b | 0;\n var c = this._c | 0;\n var d = this._d | 0;\n var e = this._e | 0;\n var f = this._f | 0;\n var g = this._g | 0;\n var h = this._h | 0;\n\n for (var i = 0; i < 16; ++i) {\n W[i] = M.readInt32BE(i * 4);\n }\n\n for (; i < 64; ++i) {\n W[i] = gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16] | 0;\n }\n\n for (var j = 0; j < 64; ++j) {\n var T1 = h + sigma1(e) + ch(e, f, g) + K[j] + W[j] | 0;\n var T2 = sigma0(a) + maj(a, b, c) | 0;\n h = g;\n g = f;\n f = e;\n e = d + T1 | 0;\n d = c;\n c = b;\n b = a;\n a = T1 + T2 | 0;\n }\n\n this._a = a + this._a | 0;\n this._b = b + this._b | 0;\n this._c = c + this._c | 0;\n this._d = d + this._d | 0;\n this._e = e + this._e | 0;\n this._f = f + this._f | 0;\n this._g = g + this._g | 0;\n this._h = h + this._h | 0;\n};\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32);\n H.writeInt32BE(this._a, 0);\n H.writeInt32BE(this._b, 4);\n H.writeInt32BE(this._c, 8);\n H.writeInt32BE(this._d, 12);\n H.writeInt32BE(this._e, 16);\n H.writeInt32BE(this._f, 20);\n H.writeInt32BE(this._g, 24);\n H.writeInt32BE(this._h, 28);\n return H;\n};\n\nmodule.exports = Sha256;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/sha.js/sha256.js?"); | ||
| 2758 | + | ||
| 2759 | +/***/ }), | ||
| 2760 | + | ||
| 2761 | +/***/ "./node_modules/sha.js/sha384.js": | ||
| 2762 | +/*!***************************************!*\ | ||
| 2763 | + !*** ./node_modules/sha.js/sha384.js ***! | ||
| 2764 | + \***************************************/ | ||
| 2765 | +/*! no static exports found */ | ||
| 2766 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2767 | + | ||
| 2768 | +eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar SHA512 = __webpack_require__(/*! ./sha512 */ \"./node_modules/sha.js/sha512.js\");\n\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar W = new Array(160);\n\nfunction Sha384() {\n this.init();\n this._w = W;\n Hash.call(this, 128, 112);\n}\n\ninherits(Sha384, SHA512);\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d;\n this._bh = 0x629a292a;\n this._ch = 0x9159015a;\n this._dh = 0x152fecd8;\n this._eh = 0x67332667;\n this._fh = 0x8eb44a87;\n this._gh = 0xdb0c2e0d;\n this._hh = 0x47b5481d;\n this._al = 0xc1059ed8;\n this._bl = 0x367cd507;\n this._cl = 0x3070dd17;\n this._dl = 0xf70e5939;\n this._el = 0xffc00b31;\n this._fl = 0x68581511;\n this._gl = 0x64f98fa7;\n this._hl = 0xbefa4fa4;\n return this;\n};\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48);\n\n function writeInt64BE(h, l, offset) {\n H.writeInt32BE(h, offset);\n H.writeInt32BE(l, offset + 4);\n }\n\n writeInt64BE(this._ah, this._al, 0);\n writeInt64BE(this._bh, this._bl, 8);\n writeInt64BE(this._ch, this._cl, 16);\n writeInt64BE(this._dh, this._dl, 24);\n writeInt64BE(this._eh, this._el, 32);\n writeInt64BE(this._fh, this._fl, 40);\n return H;\n};\n\nmodule.exports = Sha384;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/sha.js/sha384.js?"); | ||
| 2769 | + | ||
| 2770 | +/***/ }), | ||
| 2771 | + | ||
| 2772 | +/***/ "./node_modules/sha.js/sha512.js": | ||
| 2773 | +/*!***************************************!*\ | ||
| 2774 | + !*** ./node_modules/sha.js/sha512.js ***! | ||
| 2775 | + \***************************************/ | ||
| 2776 | +/*! no static exports found */ | ||
| 2777 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2778 | + | ||
| 2779 | +eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar K = [0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817];\nvar W = new Array(160);\n\nfunction Sha512() {\n this.init();\n this._w = W;\n Hash.call(this, 128, 112);\n}\n\ninherits(Sha512, Hash);\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667;\n this._bh = 0xbb67ae85;\n this._ch = 0x3c6ef372;\n this._dh = 0xa54ff53a;\n this._eh = 0x510e527f;\n this._fh = 0x9b05688c;\n this._gh = 0x1f83d9ab;\n this._hh = 0x5be0cd19;\n this._al = 0xf3bcc908;\n this._bl = 0x84caa73b;\n this._cl = 0xfe94f82b;\n this._dl = 0x5f1d36f1;\n this._el = 0xade682d1;\n this._fl = 0x2b3e6c1f;\n this._gl = 0xfb41bd6b;\n this._hl = 0x137e2179;\n return this;\n};\n\nfunction Ch(x, y, z) {\n return z ^ x & (y ^ z);\n}\n\nfunction maj(x, y, z) {\n return x & y | z & (x | y);\n}\n\nfunction sigma0(x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25);\n}\n\nfunction sigma1(x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23);\n}\n\nfunction Gamma0(x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ x >>> 7;\n}\n\nfunction Gamma0l(x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25);\n}\n\nfunction Gamma1(x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ x >>> 6;\n}\n\nfunction Gamma1l(x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26);\n}\n\nfunction getCarry(a, b) {\n return a >>> 0 < b >>> 0 ? 1 : 0;\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w;\n var ah = this._ah | 0;\n var bh = this._bh | 0;\n var ch = this._ch | 0;\n var dh = this._dh | 0;\n var eh = this._eh | 0;\n var fh = this._fh | 0;\n var gh = this._gh | 0;\n var hh = this._hh | 0;\n var al = this._al | 0;\n var bl = this._bl | 0;\n var cl = this._cl | 0;\n var dl = this._dl | 0;\n var el = this._el | 0;\n var fl = this._fl | 0;\n var gl = this._gl | 0;\n var hl = this._hl | 0;\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4);\n W[i + 1] = M.readInt32BE(i * 4 + 4);\n }\n\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2];\n var xl = W[i - 15 * 2 + 1];\n var gamma0 = Gamma0(xh, xl);\n var gamma0l = Gamma0l(xl, xh);\n xh = W[i - 2 * 2];\n xl = W[i - 2 * 2 + 1];\n var gamma1 = Gamma1(xh, xl);\n var gamma1l = Gamma1l(xl, xh); // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\n var Wi7h = W[i - 7 * 2];\n var Wi7l = W[i - 7 * 2 + 1];\n var Wi16h = W[i - 16 * 2];\n var Wi16l = W[i - 16 * 2 + 1];\n var Wil = gamma0l + Wi7l | 0;\n var Wih = gamma0 + Wi7h + getCarry(Wil, gamma0l) | 0;\n Wil = Wil + gamma1l | 0;\n Wih = Wih + gamma1 + getCarry(Wil, gamma1l) | 0;\n Wil = Wil + Wi16l | 0;\n Wih = Wih + Wi16h + getCarry(Wil, Wi16l) | 0;\n W[i] = Wih;\n W[i + 1] = Wil;\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j];\n Wil = W[j + 1];\n var majh = maj(ah, bh, ch);\n var majl = maj(al, bl, cl);\n var sigma0h = sigma0(ah, al);\n var sigma0l = sigma0(al, ah);\n var sigma1h = sigma1(eh, el);\n var sigma1l = sigma1(el, eh); // t1 = h + sigma1 + ch + K[j] + W[j]\n\n var Kih = K[j];\n var Kil = K[j + 1];\n var chh = Ch(eh, fh, gh);\n var chl = Ch(el, fl, gl);\n var t1l = hl + sigma1l | 0;\n var t1h = hh + sigma1h + getCarry(t1l, hl) | 0;\n t1l = t1l + chl | 0;\n t1h = t1h + chh + getCarry(t1l, chl) | 0;\n t1l = t1l + Kil | 0;\n t1h = t1h + Kih + getCarry(t1l, Kil) | 0;\n t1l = t1l + Wil | 0;\n t1h = t1h + Wih + getCarry(t1l, Wil) | 0; // t2 = sigma0 + maj\n\n var t2l = sigma0l + majl | 0;\n var t2h = sigma0h + majh + getCarry(t2l, sigma0l) | 0;\n hh = gh;\n hl = gl;\n gh = fh;\n gl = fl;\n fh = eh;\n fl = el;\n el = dl + t1l | 0;\n eh = dh + t1h + getCarry(el, dl) | 0;\n dh = ch;\n dl = cl;\n ch = bh;\n cl = bl;\n bh = ah;\n bl = al;\n al = t1l + t2l | 0;\n ah = t1h + t2h + getCarry(al, t1l) | 0;\n }\n\n this._al = this._al + al | 0;\n this._bl = this._bl + bl | 0;\n this._cl = this._cl + cl | 0;\n this._dl = this._dl + dl | 0;\n this._el = this._el + el | 0;\n this._fl = this._fl + fl | 0;\n this._gl = this._gl + gl | 0;\n this._hl = this._hl + hl | 0;\n this._ah = this._ah + ah + getCarry(this._al, al) | 0;\n this._bh = this._bh + bh + getCarry(this._bl, bl) | 0;\n this._ch = this._ch + ch + getCarry(this._cl, cl) | 0;\n this._dh = this._dh + dh + getCarry(this._dl, dl) | 0;\n this._eh = this._eh + eh + getCarry(this._el, el) | 0;\n this._fh = this._fh + fh + getCarry(this._fl, fl) | 0;\n this._gh = this._gh + gh + getCarry(this._gl, gl) | 0;\n this._hh = this._hh + hh + getCarry(this._hl, hl) | 0;\n};\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64);\n\n function writeInt64BE(h, l, offset) {\n H.writeInt32BE(h, offset);\n H.writeInt32BE(l, offset + 4);\n }\n\n writeInt64BE(this._ah, this._al, 0);\n writeInt64BE(this._bh, this._bl, 8);\n writeInt64BE(this._ch, this._cl, 16);\n writeInt64BE(this._dh, this._dl, 24);\n writeInt64BE(this._eh, this._el, 32);\n writeInt64BE(this._fh, this._fl, 40);\n writeInt64BE(this._gh, this._gl, 48);\n writeInt64BE(this._hh, this._hl, 56);\n return H;\n};\n\nmodule.exports = Sha512;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/sha.js/sha512.js?"); | ||
| 2780 | + | ||
| 2781 | +/***/ }), | ||
| 2782 | + | ||
| 2783 | +/***/ "./node_modules/stream-browserify/index.js": | ||
| 2784 | +/*!*************************************************!*\ | ||
| 2785 | + !*** ./node_modules/stream-browserify/index.js ***! | ||
| 2786 | + \*************************************************/ | ||
| 2787 | +/*! no static exports found */ | ||
| 2788 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2789 | + | ||
| 2790 | +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\nmodule.exports = Stream;\n\nvar EE = __webpack_require__(/*! events */ \"./node_modules/node-libs-browser/node_modules/events/events.js\").EventEmitter;\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\ninherits(Stream, EE);\nStream.Readable = __webpack_require__(/*! readable-stream/readable.js */ \"./node_modules/readable-stream/readable-browser.js\");\nStream.Writable = __webpack_require__(/*! readable-stream/writable.js */ \"./node_modules/readable-stream/writable-browser.js\");\nStream.Duplex = __webpack_require__(/*! readable-stream/duplex.js */ \"./node_modules/readable-stream/duplex-browser.js\");\nStream.Transform = __webpack_require__(/*! readable-stream/transform.js */ \"./node_modules/readable-stream/transform.js\");\nStream.PassThrough = __webpack_require__(/*! readable-stream/passthrough.js */ \"./node_modules/readable-stream/passthrough.js\"); // Backwards-compat with node 0.4.x\n\nStream.Stream = Stream; // old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function (dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain); // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n dest.end();\n }\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n if (typeof dest.destroy === 'function') dest.destroy();\n } // don't leave dangling pipes when there are errors.\n\n\n function onerror(er) {\n cleanup();\n\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror); // remove all the event listeners that were added.\n\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n dest.on('close', cleanup);\n dest.emit('pipe', source); // Allow for unix-like usage: A.pipe(B).pipe(C)\n\n return dest;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/stream-browserify/index.js?"); | ||
| 2791 | + | ||
| 2792 | +/***/ }), | ||
| 2793 | + | ||
| 2794 | +/***/ "./node_modules/string_decoder/lib/string_decoder.js": | ||
| 2795 | +/*!***********************************************************!*\ | ||
| 2796 | + !*** ./node_modules/string_decoder/lib/string_decoder.js ***! | ||
| 2797 | + \***********************************************************/ | ||
| 2798 | +/*! no static exports found */ | ||
| 2799 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2800 | + | ||
| 2801 | +"use strict"; | ||
| 2802 | +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n/*<replacement>*/\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n/*</replacement>*/\n\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n case 'raw':\n return true;\n\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n\n case 'latin1':\n case 'binary':\n return 'latin1';\n\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n\n default:\n if (retried) return; // undefined\n\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n}\n\n; // Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\n\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n} // StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\n\n\nexports.StringDecoder = StringDecoder;\n\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End; // Returns only complete characters in a Buffer\n\nStringDecoder.prototype.text = utf8Text; // Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\n\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n}; // Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\n\n\nfunction utf8CheckByte(_byte) {\n if (_byte <= 0x7F) return 0;else if (_byte >> 5 === 0x06) return 2;else if (_byte >> 4 === 0x0E) return 3;else if (_byte >> 3 === 0x1E) return 4;\n return _byte >> 6 === 0x02 ? -1 : -2;\n} // Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\n\n\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n\n return nb;\n }\n\n return 0;\n} // Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\n\n\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return \"\\uFFFD\";\n }\n\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return \"\\uFFFD\";\n }\n\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return \"\\uFFFD\";\n }\n }\n }\n} // Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\n\n\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n} // Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\n\n\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n} // For UTF-8, a replacement character is added when ending on a partial\n// character.\n\n\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + \"\\uFFFD\";\n return r;\n} // UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\n\n\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n\n return r;\n }\n\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n} // For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\n\n\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n} // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\n\n\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/string_decoder/lib/string_decoder.js?"); | ||
| 2803 | + | ||
| 2804 | +/***/ }), | ||
| 2805 | + | ||
| 2806 | +/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js": | ||
| 2807 | +/*!****************************************************************************!*\ | ||
| 2808 | + !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***! | ||
| 2809 | + \****************************************************************************/ | ||
| 2810 | +/*! no static exports found */ | ||
| 2811 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2812 | + | ||
| 2813 | +"use strict"; | ||
| 2814 | +eval("\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = true ? __webpack_require__.nc : undefined;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js?"); | ||
| 2815 | + | ||
| 2816 | +/***/ }), | ||
| 2817 | + | ||
| 2818 | +/***/ "./node_modules/util-deprecate/browser.js": | ||
| 2819 | +/*!************************************************!*\ | ||
| 2820 | + !*** ./node_modules/util-deprecate/browser.js ***! | ||
| 2821 | + \************************************************/ | ||
| 2822 | +/*! no static exports found */ | ||
| 2823 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2824 | + | ||
| 2825 | +eval("/* WEBPACK VAR INJECTION */(function(global) {/**\n * Module exports.\n */\nmodule.exports = deprecate;\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate(fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n\n warned = true;\n }\n\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\n\nfunction config(name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/util-deprecate/browser.js?"); | ||
| 2826 | + | ||
| 2827 | +/***/ }), | ||
| 2828 | + | ||
| 2829 | +/***/ "./node_modules/webpack/buildin/global.js": | ||
| 2830 | +/*!***********************************!*\ | ||
| 2831 | + !*** (webpack)/buildin/global.js ***! | ||
| 2832 | + \***********************************/ | ||
| 2833 | +/*! no static exports found */ | ||
| 2834 | +/***/ (function(module, exports) { | ||
| 2835 | + | ||
| 2836 | +eval("var g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;\n\n//# sourceURL=webpack://WebMediaPlayer/(webpack)/buildin/global.js?"); | ||
| 2837 | + | ||
| 2838 | +/***/ }), | ||
| 2839 | + | ||
| 2840 | +/***/ "./node_modules/webpack/buildin/harmony-module.js": | ||
| 2841 | +/*!*******************************************!*\ | ||
| 2842 | + !*** (webpack)/buildin/harmony-module.js ***! | ||
| 2843 | + \*******************************************/ | ||
| 2844 | +/*! no static exports found */ | ||
| 2845 | +/***/ (function(module, exports) { | ||
| 2846 | + | ||
| 2847 | +eval("module.exports = function (originalModule) {\n if (!originalModule.webpackPolyfill) {\n var module = Object.create(originalModule); // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n Object.defineProperty(module, \"exports\", {\n enumerable: true\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/(webpack)/buildin/harmony-module.js?"); | ||
| 2848 | + | ||
| 2849 | +/***/ }), | ||
| 2850 | + | ||
| 2851 | +/***/ "./node_modules/webpack/buildin/module.js": | ||
| 2852 | +/*!***********************************!*\ | ||
| 2853 | + !*** (webpack)/buildin/module.js ***! | ||
| 2854 | + \***********************************/ | ||
| 2855 | +/*! no static exports found */ | ||
| 2856 | +/***/ (function(module, exports) { | ||
| 2857 | + | ||
| 2858 | +eval("module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/(webpack)/buildin/module.js?"); | ||
| 2859 | + | ||
| 2860 | +/***/ }), | ||
| 2861 | + | ||
| 2862 | +/***/ "./node_modules/webworkify-webpack/index.js": | ||
| 2863 | +/*!**************************************************!*\ | ||
| 2864 | + !*** ./node_modules/webworkify-webpack/index.js ***! | ||
| 2865 | + \**************************************************/ | ||
| 2866 | +/*! no static exports found */ | ||
| 2867 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2868 | + | ||
| 2869 | +eval("function webpackBootstrapFunc(modules) {\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId])\n /******/\n return installedModules[moduleId].exports;\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n // identity function for calling harmony imports with the correct context\n\n /******/\n\n __webpack_require__.i = function (value) {\n return value;\n };\n /******/\n // define getter function for harmony exports\n\n /******/\n\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n /******/\n configurable: false,\n\n /******/\n enumerable: true,\n\n /******/\n get: getter\n /******/\n\n });\n /******/\n }\n /******/\n\n };\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"/\";\n /******/\n // on error function for async loading\n\n /******/\n\n __webpack_require__.oe = function (err) {\n console.error(err);\n throw err;\n };\n\n var f = __webpack_require__(__webpack_require__.s = ENTRY_MODULE);\n\n return f.default || f; // try to call default if defined to also support babel esmodule exports\n}\n\nvar moduleNameReqExp = '[\\\\.|\\\\-|\\\\+|\\\\w|\\/|@]+';\nvar dependencyRegExp = '\\\\(\\\\s*(\\/\\\\*.*?\\\\*\\/)?\\\\s*.*?(' + moduleNameReqExp + ').*?\\\\)'; // additional chars when output.pathinfo is true\n// http://stackoverflow.com/a/2593661/130442\n\nfunction quoteRegExp(str) {\n return (str + '').replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&');\n}\n\nfunction isNumeric(n) {\n return !isNaN(1 * n); // 1 * n converts integers, integers as string (\"123\"), 1e3 and \"1e3\" to integers and strings to NaN\n}\n\nfunction getModuleDependencies(sources, module, queueName) {\n var retval = {};\n retval[queueName] = [];\n var fnString = module.toString();\n var wrapperSignature = fnString.match(/^function\\s?\\w*\\(\\w+,\\s*\\w+,\\s*(\\w+)\\)/);\n if (!wrapperSignature) return retval;\n var webpackRequireName = wrapperSignature[1]; // main bundle deps\n\n var re = new RegExp('(\\\\\\\\n|\\\\W)' + quoteRegExp(webpackRequireName) + dependencyRegExp, 'g');\n var match;\n\n while (match = re.exec(fnString)) {\n if (match[3] === 'dll-reference') continue;\n retval[queueName].push(match[3]);\n } // dll deps\n\n\n re = new RegExp('\\\\(' + quoteRegExp(webpackRequireName) + '\\\\(\"(dll-reference\\\\s(' + moduleNameReqExp + '))\"\\\\)\\\\)' + dependencyRegExp, 'g');\n\n while (match = re.exec(fnString)) {\n if (!sources[match[2]]) {\n retval[queueName].push(match[1]);\n sources[match[2]] = __webpack_require__(match[1]).m;\n }\n\n retval[match[2]] = retval[match[2]] || [];\n retval[match[2]].push(match[4]);\n } // convert 1e3 back to 1000 - this can be important after uglify-js converted 1000 to 1e3\n\n\n var keys = Object.keys(retval);\n\n for (var i = 0; i < keys.length; i++) {\n for (var j = 0; j < retval[keys[i]].length; j++) {\n if (isNumeric(retval[keys[i]][j])) {\n retval[keys[i]][j] = 1 * retval[keys[i]][j];\n }\n }\n }\n\n return retval;\n}\n\nfunction hasValuesInQueues(queues) {\n var keys = Object.keys(queues);\n return keys.reduce(function (hasValues, key) {\n return hasValues || queues[key].length > 0;\n }, false);\n}\n\nfunction getRequiredModules(sources, moduleId) {\n var modulesQueue = {\n main: [moduleId]\n };\n var requiredModules = {\n main: []\n };\n var seenModules = {\n main: {}\n };\n\n while (hasValuesInQueues(modulesQueue)) {\n var queues = Object.keys(modulesQueue);\n\n for (var i = 0; i < queues.length; i++) {\n var queueName = queues[i];\n var queue = modulesQueue[queueName];\n var moduleToCheck = queue.pop();\n seenModules[queueName] = seenModules[queueName] || {};\n if (seenModules[queueName][moduleToCheck] || !sources[queueName][moduleToCheck]) continue;\n seenModules[queueName][moduleToCheck] = true;\n requiredModules[queueName] = requiredModules[queueName] || [];\n requiredModules[queueName].push(moduleToCheck);\n var newModules = getModuleDependencies(sources, sources[queueName][moduleToCheck], queueName);\n var newModulesKeys = Object.keys(newModules);\n\n for (var j = 0; j < newModulesKeys.length; j++) {\n modulesQueue[newModulesKeys[j]] = modulesQueue[newModulesKeys[j]] || [];\n modulesQueue[newModulesKeys[j]] = modulesQueue[newModulesKeys[j]].concat(newModules[newModulesKeys[j]]);\n }\n }\n }\n\n return requiredModules;\n}\n\nmodule.exports = function (moduleId, options) {\n options = options || {};\n var sources = {\n main: __webpack_require__.m\n };\n var requiredModules = options.all ? {\n main: Object.keys(sources.main)\n } : getRequiredModules(sources, moduleId);\n var src = '';\n Object.keys(requiredModules).filter(function (m) {\n return m !== 'main';\n }).forEach(function (module) {\n var entryModule = 0;\n\n while (requiredModules[module][entryModule]) {\n entryModule++;\n }\n\n requiredModules[module].push(entryModule);\n sources[module][entryModule] = '(function(module, exports, __webpack_require__) { module.exports = __webpack_require__; })';\n src = src + 'var ' + module + ' = (' + webpackBootstrapFunc.toString().replace('ENTRY_MODULE', JSON.stringify(entryModule)) + ')({' + requiredModules[module].map(function (id) {\n return '' + JSON.stringify(id) + ': ' + sources[module][id].toString();\n }).join(',') + '});\\n';\n });\n src = src + 'new ((' + webpackBootstrapFunc.toString().replace('ENTRY_MODULE', JSON.stringify(moduleId)) + ')({' + requiredModules.main.map(function (id) {\n return '' + JSON.stringify(id) + ': ' + sources.main[id].toString();\n }).join(',') + '}))(self);';\n var blob = new window.Blob([src], {\n type: 'text/javascript'\n });\n\n if (options.bare) {\n return blob;\n }\n\n var URL = window.URL || window.webkitURL || window.mozURL || window.msURL;\n var workerUrl = URL.createObjectURL(blob);\n var worker = new window.Worker(workerUrl);\n worker.objectURL = workerUrl;\n return worker;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/webworkify-webpack/index.js?"); | ||
| 2870 | + | ||
| 2871 | +/***/ }), | ||
| 2872 | + | ||
| 2873 | +/***/ "./node_modules/webworkify/index.js": | ||
| 2874 | +/*!******************************************!*\ | ||
| 2875 | + !*** ./node_modules/webworkify/index.js ***! | ||
| 2876 | + \******************************************/ | ||
| 2877 | +/*! no static exports found */ | ||
| 2878 | +/***/ (function(module, exports) { | ||
| 2879 | + | ||
| 2880 | +eval("var bundleFn = arguments[3];\nvar sources = arguments[4];\nvar cache = arguments[5];\nvar stringify = JSON.stringify;\n\nmodule.exports = function (fn, options) {\n var wkey;\n var cacheKeys = Object.keys(cache);\n\n for (var i = 0, l = cacheKeys.length; i < l; i++) {\n var key = cacheKeys[i];\n var exp = cache[key].exports; // Using babel as a transpiler to use esmodule, the export will always\n // be an object with the default export as a property of it. To ensure\n // the existing api and babel esmodule exports are both supported we\n // check for both\n\n if (exp === fn || exp && exp.default === fn) {\n wkey = key;\n break;\n }\n }\n\n if (!wkey) {\n wkey = Math.floor(Math.pow(16, 8) * Math.random()).toString(16);\n var wcache = {};\n\n for (var i = 0, l = cacheKeys.length; i < l; i++) {\n var key = cacheKeys[i];\n wcache[key] = key;\n }\n\n sources[wkey] = ['function(require,module,exports){' + fn + '(self); }', wcache];\n }\n\n var skey = Math.floor(Math.pow(16, 8) * Math.random()).toString(16);\n var scache = {};\n scache[wkey] = wkey;\n sources[skey] = ['function(require,module,exports){' + // try to call default if defined to also support babel esmodule exports\n 'var f = require(' + stringify(wkey) + ');' + '(f.default ? f.default : f)(self);' + '}', scache];\n var workerSources = {};\n resolveSources(skey);\n\n function resolveSources(key) {\n workerSources[key] = true;\n\n for (var depPath in sources[key][1]) {\n var depKey = sources[key][1][depPath];\n\n if (!workerSources[depKey]) {\n resolveSources(depKey);\n }\n }\n }\n\n var src = '(' + bundleFn + ')({' + Object.keys(workerSources).map(function (key) {\n return stringify(key) + ':[' + sources[key][0] + ',' + stringify(sources[key][1]) + ']';\n }).join(',') + '},{},[' + stringify(skey) + '])';\n var URL = window.URL || window.webkitURL || window.mozURL || window.msURL;\n var blob = new Blob([src], {\n type: 'text/javascript'\n });\n\n if (options && options.bare) {\n return blob;\n }\n\n var workerUrl = URL.createObjectURL(blob);\n var worker = new Worker(workerUrl);\n worker.objectURL = workerUrl;\n return worker;\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/webworkify/index.js?"); | ||
| 2881 | + | ||
| 2882 | +/***/ }), | ||
| 2883 | + | ||
| 2884 | +/***/ "./node_modules/yuv-buffer/yuv-buffer.js": | ||
| 2885 | +/*!***********************************************!*\ | ||
| 2886 | + !*** ./node_modules/yuv-buffer/yuv-buffer.js ***! | ||
| 2887 | + \***********************************************/ | ||
| 2888 | +/*! no static exports found */ | ||
| 2889 | +/***/ (function(module, exports) { | ||
| 2890 | + | ||
| 2891 | +eval("var _YUVBuffer;\n\n/*\nCopyright (c) 2014-2016 Brion Vibber <brion@pobox.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\n/**\n * Represents metadata about a YUV frame format.\n * @typedef {Object} YUVFormat\n * @property {number} width - width of encoded frame in luma pixels\n * @property {number} height - height of encoded frame in luma pixels\n * @property {number} chromaWidth - width of encoded frame in chroma pixels\n * @property {number} chromaHeight - height of encoded frame in chroma pixels\n * @property {number} cropLeft - upper-left X coordinate of visible crop region, in luma pixels\n * @property {number} cropTop - upper-left Y coordinate of visible crop region, in luma pixels\n * @property {number} cropWidth - width of visible crop region, in luma pixels\n * @property {number} cropHeight - height of visible crop region, in luma pixels\n * @property {number} displayWidth - final display width of visible region, in luma pixels\n * @property {number} displayHeight - final display height of visible region, in luma pixels\n */\n\n/**\n * Represents underlying image data for a single luma or chroma plane.\n * Cannot be interpreted without the format data from a frame buffer.\n * @typedef {Object} YUVPlane\n * @property {Uint8Array} bytes - typed array containing image data bytes\n * @property {number} stride - byte distance between rows in data\n */\n\n/**\n * Represents a YUV image frame buffer, with enough format information\n * to interpret the data usefully. Buffer objects use generic objects\n * under the hood and can be transferred between worker threads using\n * the structured clone algorithm.\n *\n * @typedef {Object} YUVFrame\n * @property {YUVFormat} format\n * @property {YUVPlane} y\n * @property {YUVPlane} u\n * @property {YUVPlane} v\n */\n\n/**\n * Holder namespace for utility functions and constants related to\n * YUV frame and plane buffers.\n *\n * @namespace\n */\nvar YUVBuffer = (_YUVBuffer = {\n /**\n * Validate a plane dimension\n * @param {number} dim - vertical or horizontal dimension\n * @throws exception on zero, negative, or non-integer value\n */\n validateDimension: function validateDimension(dim) {\n if (dim <= 0 || dim !== (dim | 0)) {\n throw 'YUV plane dimensions must be a positive integer';\n }\n },\n\n /**\n * Validate a plane offset\n * @param {number} dim - vertical or horizontal dimension\n * @throws exception on negative or non-integer value\n */\n validateOffset: function validateOffset(dim) {\n if (dim < 0 || dim !== (dim | 0)) {\n throw 'YUV plane offsets must be a non-negative integer';\n }\n },\n\n /**\n * Validate and fill out a YUVFormat object structure.\n *\n * At least width and height fields are required; other fields will be\n * derived if left missing or empty:\n * - chromaWidth and chromaHeight will be copied from width and height as for a 4:4:4 layout\n * - cropLeft and cropTop will be 0\n * - cropWidth and cropHeight will be set to whatever of the frame is visible after cropTop and cropLeft are applied\n * - displayWidth and displayHeight will be set to cropWidth and cropHeight.\n *\n * @param {YUVFormat} fields - input fields, must include width and height.\n * @returns {YUVFormat} - validated structure, with all derivable fields filled out.\n * @throws exception on invalid fields or missing width/height\n */\n format: function format(fields) {\n var width = fields.width,\n height = fields.height,\n chromaWidth = fields.chromaWidth || width,\n chromaHeight = fields.chromaHeight || height,\n cropLeft = fields.cropLeft || 0,\n cropTop = fields.cropTop || 0,\n cropWidth = fields.cropWidth || width - cropLeft,\n cropHeight = fields.cropHeight || height - cropTop,\n displayWidth = fields.displayWidth || cropWidth,\n displayHeight = fields.displayHeight || cropHeight;\n this.validateDimension(width);\n this.validateDimension(height);\n this.validateDimension(chromaWidth);\n this.validateDimension(chromaHeight);\n this.validateOffset(cropLeft);\n this.validateOffset(cropTop);\n this.validateDimension(cropWidth);\n this.validateDimension(cropHeight);\n this.validateDimension(displayWidth);\n this.validateDimension(displayHeight);\n return {\n width: width,\n height: height,\n chromaWidth: chromaWidth,\n chromaHeight: chromaHeight,\n cropLeft: cropLeft,\n cropTop: cropTop,\n cropWidth: cropWidth,\n cropHeight: cropHeight,\n displayWidth: displayWidth,\n displayHeight: displayHeight\n };\n },\n\n /**\n * Allocate a new YUVPlane object of the given size.\n * @param {number} stride - byte distance between rows\n * @param {number} rows - number of rows to allocate\n * @returns {YUVPlane} - freshly allocated planar buffer\n */\n allocPlane: function allocPlane(stride, rows) {\n YUVBuffer.validateDimension(stride);\n YUVBuffer.validateDimension(rows);\n return {\n bytes: new Uint8Array(stride * rows),\n stride: stride\n };\n },\n\n /**\n * Pick a suitable stride for a custom-allocated thingy\n * @param {number} width - width in bytes\n * @returns {number} - new width in bytes at least as large\n * @throws exception on invalid input width\n */\n suitableStride: function suitableStride(width) {\n YUVBuffer.validateDimension(width);\n var alignment = 4,\n remainder = width % alignment;\n\n if (remainder == 0) {\n return width;\n } else {\n return width + (alignment - remainder);\n }\n }\n}, _YUVBuffer[\"allocPlane\"] = function allocPlane(width, height, source, stride, offset) {\n var size, bytes;\n this.validateDimension(width);\n this.validateDimension(height);\n offset = offset || 0;\n stride = stride || this.suitableStride(width);\n this.validateDimension(stride);\n\n if (stride < width) {\n throw \"Invalid input stride for YUV plane; must be larger than width\";\n }\n\n size = stride * height;\n\n if (source) {\n if (source.length - offset < size) {\n throw \"Invalid input buffer for YUV plane; must be large enough for stride times height\";\n }\n\n bytes = source.slice(offset, offset + size);\n } else {\n bytes = new Uint8Array(size);\n stride = stride || this.suitableStride(width);\n }\n\n return {\n bytes: bytes,\n stride: stride\n };\n}, _YUVBuffer.lumaPlane = function lumaPlane(format, source, stride, offset) {\n return this.allocPlane(format.width, format.height, source, stride, offset);\n}, _YUVBuffer.chromaPlane = function chromaPlane(format, source, stride, offset) {\n return this.allocPlane(format.chromaWidth, format.chromaHeight, source, stride, offset);\n}, _YUVBuffer.frame = function frame(format, y, u, v) {\n y = y || this.lumaPlane(format);\n u = u || this.chromaPlane(format);\n v = v || this.chromaPlane(format);\n return {\n format: format,\n y: y,\n u: u,\n v: v\n };\n}, _YUVBuffer.copyPlane = function copyPlane(plane) {\n return {\n bytes: plane.bytes.slice(),\n stride: plane.stride\n };\n}, _YUVBuffer.copyFrame = function copyFrame(frame) {\n return {\n format: frame.format,\n y: this.copyPlane(frame.y),\n u: this.copyPlane(frame.u),\n v: this.copyPlane(frame.v)\n };\n}, _YUVBuffer.transferables = function transferables(frame) {\n return [frame.y.bytes.buffer, frame.u.bytes.buffer, frame.v.bytes.buffer];\n}, _YUVBuffer);\nmodule.exports = YUVBuffer;\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/yuv-buffer/yuv-buffer.js?"); | ||
| 2892 | + | ||
| 2893 | +/***/ }), | ||
| 2894 | + | ||
| 2895 | +/***/ "./node_modules/yuv-canvas/build/shaders.js": | ||
| 2896 | +/*!**************************************************!*\ | ||
| 2897 | + !*** ./node_modules/yuv-canvas/build/shaders.js ***! | ||
| 2898 | + \**************************************************/ | ||
| 2899 | +/*! no static exports found */ | ||
| 2900 | +/***/ (function(module, exports) { | ||
| 2901 | + | ||
| 2902 | +eval("module.exports = {\n vertex: \"precision mediump float;\\n\\nattribute vec2 aPosition;\\nattribute vec2 aLumaPosition;\\nattribute vec2 aChromaPosition;\\nvarying vec2 vLumaPosition;\\nvarying vec2 vChromaPosition;\\nvoid main() {\\n gl_Position = vec4(aPosition, 0, 1);\\n vLumaPosition = aLumaPosition;\\n vChromaPosition = aChromaPosition;\\n}\\n\",\n fragment: \"// inspired by https://github.com/mbebenita/Broadway/blob/master/Player/canvas.js\\n\\nprecision mediump float;\\n\\nuniform sampler2D uTextureY;\\nuniform sampler2D uTextureCb;\\nuniform sampler2D uTextureCr;\\nvarying vec2 vLumaPosition;\\nvarying vec2 vChromaPosition;\\nvoid main() {\\n // Y, Cb, and Cr planes are uploaded as ALPHA textures.\\n float fY = texture2D(uTextureY, vLumaPosition).w;\\n float fCb = texture2D(uTextureCb, vChromaPosition).w;\\n float fCr = texture2D(uTextureCr, vChromaPosition).w;\\n\\n // Premultipy the Y...\\n float fYmul = fY * 1.1643828125;\\n\\n // And convert that to RGB!\\n gl_FragColor = vec4(\\n fYmul + 1.59602734375 * fCr - 0.87078515625,\\n fYmul - 0.39176171875 * fCb - 0.81296875 * fCr + 0.52959375,\\n fYmul + 2.017234375 * fCb - 1.081390625,\\n 1\\n );\\n}\\n\",\n vertexStripe: \"precision mediump float;\\n\\nattribute vec2 aPosition;\\nattribute vec2 aTexturePosition;\\nvarying vec2 vTexturePosition;\\n\\nvoid main() {\\n gl_Position = vec4(aPosition, 0, 1);\\n vTexturePosition = aTexturePosition;\\n}\\n\",\n fragmentStripe: \"// extra 'stripe' texture fiddling to work around IE 11's poor performance on gl.LUMINANCE and gl.ALPHA textures\\n\\nprecision mediump float;\\n\\nuniform sampler2D uStripe;\\nuniform sampler2D uTexture;\\nvarying vec2 vTexturePosition;\\nvoid main() {\\n // Y, Cb, and Cr planes are mapped into a pseudo-RGBA texture\\n // so we can upload them without expanding the bytes on IE 11\\n // which doesn't allow LUMINANCE or ALPHA textures\\n // The stripe textures mark which channel to keep for each pixel.\\n // Each texture extraction will contain the relevant value in one\\n // channel only.\\n\\n float fLuminance = dot(\\n texture2D(uStripe, vTexturePosition),\\n texture2D(uTexture, vTexturePosition)\\n );\\n\\n gl_FragColor = vec4(0, 0, 0, fLuminance);\\n}\\n\"\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/yuv-canvas/build/shaders.js?"); | ||
| 2903 | + | ||
| 2904 | +/***/ }), | ||
| 2905 | + | ||
| 2906 | +/***/ "./node_modules/yuv-canvas/src/FrameSink.js": | ||
| 2907 | +/*!**************************************************!*\ | ||
| 2908 | + !*** ./node_modules/yuv-canvas/src/FrameSink.js ***! | ||
| 2909 | + \**************************************************/ | ||
| 2910 | +/*! no static exports found */ | ||
| 2911 | +/***/ (function(module, exports) { | ||
| 2912 | + | ||
| 2913 | +eval("(function () {\n \"use strict\";\n /**\n * Create a YUVCanvas and attach it to an HTML5 canvas element.\n *\n * This will take over the drawing context of the canvas and may turn\n * it into a WebGL 3d canvas if possible. Do not attempt to use the\n * drawing context directly after this.\n *\n * @param {HTMLCanvasElement} canvas - HTML canvas element to attach to\n * @param {YUVCanvasOptions} options - map of options\n * @throws exception if WebGL requested but unavailable\n * @constructor\n * @abstract\n */\n\n function FrameSink(canvas, options) {\n throw new Error('abstract');\n }\n /**\n * Draw a single YUV frame on the underlying canvas, converting to RGB.\n * If necessary the canvas will be resized to the optimal pixel size\n * for the given buffer's format.\n *\n * @param {YUVBuffer} buffer - the YUV buffer to draw\n * @see {@link https://www.npmjs.com/package/yuv-buffer|yuv-buffer} for format\n */\n\n\n FrameSink.prototype.drawFrame = function (buffer) {\n throw new Error('abstract');\n };\n /**\n * Clear the canvas using appropriate underlying 2d or 3d context.\n */\n\n\n FrameSink.prototype.clear = function () {\n throw new Error('abstract');\n };\n\n module.exports = FrameSink;\n})();\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/yuv-canvas/src/FrameSink.js?"); | ||
| 2914 | + | ||
| 2915 | +/***/ }), | ||
| 2916 | + | ||
| 2917 | +/***/ "./node_modules/yuv-canvas/src/SoftwareFrameSink.js": | ||
| 2918 | +/*!**********************************************************!*\ | ||
| 2919 | + !*** ./node_modules/yuv-canvas/src/SoftwareFrameSink.js ***! | ||
| 2920 | + \**********************************************************/ | ||
| 2921 | +/*! no static exports found */ | ||
| 2922 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2923 | + | ||
| 2924 | +eval("/*\nCopyright (c) 2014-2016 Brion Vibber <brion@pobox.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n(function () {\n \"use strict\";\n\n var FrameSink = __webpack_require__(/*! ./FrameSink.js */ \"./node_modules/yuv-canvas/src/FrameSink.js\"),\n YCbCr = __webpack_require__(/*! ./YCbCr.js */ \"./node_modules/yuv-canvas/src/YCbCr.js\");\n /**\n * @param {HTMLCanvasElement} canvas - HTML canvas eledment to attach to\n * @constructor\n */\n\n\n function SoftwareFrameSink(canvas) {\n var self = this,\n ctx = canvas.getContext('2d'),\n imageData = null,\n resampleCanvas = null,\n resampleContext = null;\n\n function initImageData(width, height) {\n imageData = ctx.createImageData(width, height); // Prefill the alpha to opaque\n\n var data = imageData.data,\n pixelCount = width * height * 4;\n\n for (var i = 0; i < pixelCount; i += 4) {\n data[i + 3] = 255;\n }\n }\n\n function initResampleCanvas(cropWidth, cropHeight) {\n resampleCanvas = document.createElement('canvas');\n resampleCanvas.width = cropWidth;\n resampleCanvas.height = cropHeight;\n resampleContext = resampleCanvas.getContext('2d');\n }\n /**\n * Actually draw a frame into the canvas.\n * @param {YUVFrame} buffer - YUV frame buffer object to draw\n */\n\n\n self.drawFrame = function drawFrame(buffer) {\n var format = buffer.format;\n\n if (canvas.width !== format.displayWidth || canvas.height !== format.displayHeight) {\n // Keep the canvas at the right size...\n canvas.width = format.displayWidth;\n canvas.height = format.displayHeight;\n }\n\n if (imageData === null || imageData.width != format.width || imageData.height != format.height) {\n initImageData(format.width, format.height);\n } // YUV -> RGB over the entire encoded frame\n\n\n YCbCr.convertYCbCr(buffer, imageData.data);\n var resample = format.cropWidth != format.displayWidth || format.cropHeight != format.displayHeight;\n var drawContext;\n\n if (resample) {\n // hack for non-square aspect-ratio\n // putImageData doesn't resample, so we have to draw in two steps.\n if (!resampleCanvas) {\n initResampleCanvas(format.cropWidth, format.cropHeight);\n }\n\n drawContext = resampleContext;\n } else {\n drawContext = ctx;\n } // Draw cropped frame to either the final or temporary canvas\n\n\n drawContext.putImageData(imageData, -format.cropLeft, -format.cropTop, // must offset the offset\n format.cropLeft, format.cropTop, format.cropWidth, format.cropHeight);\n\n if (resample) {\n ctx.drawImage(resampleCanvas, 0, 0, format.displayWidth, format.displayHeight);\n }\n };\n\n self.clear = function () {\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n };\n\n return self;\n }\n\n SoftwareFrameSink.prototype = Object.create(FrameSink.prototype);\n module.exports = SoftwareFrameSink;\n})();\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/yuv-canvas/src/SoftwareFrameSink.js?"); | ||
| 2925 | + | ||
| 2926 | +/***/ }), | ||
| 2927 | + | ||
| 2928 | +/***/ "./node_modules/yuv-canvas/src/WebGLFrameSink.js": | ||
| 2929 | +/*!*******************************************************!*\ | ||
| 2930 | + !*** ./node_modules/yuv-canvas/src/WebGLFrameSink.js ***! | ||
| 2931 | + \*******************************************************/ | ||
| 2932 | +/*! no static exports found */ | ||
| 2933 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2934 | + | ||
| 2935 | +eval("/*\nCopyright (c) 2014-2016 Brion Vibber <brion@pobox.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n(function () {\n \"use strict\";\n\n var FrameSink = __webpack_require__(/*! ./FrameSink.js */ \"./node_modules/yuv-canvas/src/FrameSink.js\"),\n shaders = __webpack_require__(/*! ../build/shaders.js */ \"./node_modules/yuv-canvas/build/shaders.js\");\n /**\n * Warning: canvas must not have been used for 2d drawing prior!\n *\n * @param {HTMLCanvasElement} canvas - HTML canvas element to attach to\n * @constructor\n */\n\n\n function WebGLFrameSink(canvas) {\n var self = this,\n gl = WebGLFrameSink.contextForCanvas(canvas),\n debug = false; // swap this to enable more error checks, which can slow down rendering\n\n if (gl === null) {\n throw new Error('WebGL unavailable');\n } // GL!\n\n\n function checkError() {\n if (debug) {\n err = gl.getError();\n\n if (err !== 0) {\n throw new Error(\"GL error \" + err);\n }\n }\n }\n\n function compileShader(type, source) {\n var shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n var err = gl.getShaderInfoLog(shader);\n gl.deleteShader(shader);\n throw new Error('GL shader compilation for ' + type + ' failed: ' + err);\n }\n\n return shader;\n }\n\n var program, unpackProgram, err; // In the world of GL there are no rectangles.\n // There are only triangles.\n // THERE IS NO SPOON.\n\n var rectangle = new Float32Array([// First triangle (top left, clockwise)\n -1.0, -1.0, +1.0, -1.0, -1.0, +1.0, // Second triangle (bottom right, clockwise)\n -1.0, +1.0, +1.0, -1.0, +1.0, +1.0]);\n var textures = {};\n var framebuffers = {};\n var stripes = {};\n var buf, positionLocation, unpackPositionLocation;\n var unpackTexturePositionBuffer, unpackTexturePositionLocation;\n var stripeLocation, unpackTextureLocation;\n var lumaPositionBuffer, lumaPositionLocation;\n var chromaPositionBuffer, chromaPositionLocation;\n\n function createOrReuseTexture(name, formatUpdate) {\n if (!textures[name] || formatUpdate) {\n textures[name] = gl.createTexture();\n }\n\n return textures[name];\n }\n\n function uploadTexture(name, formatUpdate, width, height, data) {\n var create = !textures[name] || formatUpdate;\n var texture = createOrReuseTexture(name, formatUpdate);\n gl.activeTexture(gl.TEXTURE0);\n\n if (WebGLFrameSink.stripe) {\n var uploadTemp = !textures[name + '_temp'] || formatUpdate;\n var tempTexture = createOrReuseTexture(name + '_temp', formatUpdate);\n gl.bindTexture(gl.TEXTURE_2D, tempTexture);\n\n if (uploadTemp) {\n // new texture\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, // mip level\n gl.RGBA, // internal format\n width / 4, height, 0, // border\n gl.RGBA, // format\n gl.UNSIGNED_BYTE, // type\n data // data!\n );\n } else {\n // update texture\n gl.texSubImage2D(gl.TEXTURE_2D, 0, // mip level\n 0, // x offset\n 0, // y offset\n width / 4, height, gl.RGBA, // format\n gl.UNSIGNED_BYTE, // type\n data // data!\n );\n }\n\n var stripeTexture = textures[name + '_stripe'];\n var uploadStripe = !stripeTexture || formatUpdate;\n\n if (uploadStripe) {\n stripeTexture = createOrReuseTexture(name + '_stripe', formatUpdate);\n }\n\n gl.bindTexture(gl.TEXTURE_2D, stripeTexture);\n\n if (uploadStripe) {\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, // mip level\n gl.RGBA, // internal format\n width, 1, 0, // border\n gl.RGBA, // format\n gl.UNSIGNED_BYTE, //type\n buildStripe(width, 1) // data!\n );\n }\n } else {\n gl.bindTexture(gl.TEXTURE_2D, texture);\n\n if (create) {\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texImage2D(gl.TEXTURE_2D, 0, // mip level\n gl.ALPHA, // internal format\n width, height, 0, // border\n gl.ALPHA, // format\n gl.UNSIGNED_BYTE, //type\n data // data!\n );\n } else {\n gl.texSubImage2D(gl.TEXTURE_2D, 0, // mip level\n 0, // x\n 0, // y\n width, height, gl.ALPHA, // internal format\n gl.UNSIGNED_BYTE, //type\n data // data!\n );\n }\n }\n }\n\n function unpackTexture(name, formatUpdate, width, height) {\n var texture = textures[name]; // Upload to a temporary RGBA texture, then unpack it.\n // This is faster than CPU-side swizzling in ANGLE on Windows.\n\n gl.useProgram(unpackProgram);\n var fb = framebuffers[name];\n\n if (!fb || formatUpdate) {\n // Create a framebuffer and an empty target size\n gl.activeTexture(gl.TEXTURE0);\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texImage2D(gl.TEXTURE_2D, 0, // mip level\n gl.RGBA, // internal format\n width, height, 0, // border\n gl.RGBA, // format\n gl.UNSIGNED_BYTE, //type\n null // data!\n );\n fb = framebuffers[name] = gl.createFramebuffer();\n }\n\n gl.bindFramebuffer(gl.FRAMEBUFFER, fb);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n var tempTexture = textures[name + '_temp'];\n gl.activeTexture(gl.TEXTURE1);\n gl.bindTexture(gl.TEXTURE_2D, tempTexture);\n gl.uniform1i(unpackTextureLocation, 1);\n var stripeTexture = textures[name + '_stripe'];\n gl.activeTexture(gl.TEXTURE2);\n gl.bindTexture(gl.TEXTURE_2D, stripeTexture);\n gl.uniform1i(stripeLocation, 2); // Rectangle geometry\n\n gl.bindBuffer(gl.ARRAY_BUFFER, buf);\n gl.enableVertexAttribArray(positionLocation);\n gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0); // Set up the texture geometry...\n\n gl.bindBuffer(gl.ARRAY_BUFFER, unpackTexturePositionBuffer);\n gl.enableVertexAttribArray(unpackTexturePositionLocation);\n gl.vertexAttribPointer(unpackTexturePositionLocation, 2, gl.FLOAT, false, 0, 0); // Draw into the target texture...\n\n gl.viewport(0, 0, width, height);\n gl.drawArrays(gl.TRIANGLES, 0, rectangle.length / 2);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n }\n\n function attachTexture(name, register, index) {\n gl.activeTexture(register);\n gl.bindTexture(gl.TEXTURE_2D, textures[name]);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.uniform1i(gl.getUniformLocation(program, name), index);\n }\n\n function buildStripe(width) {\n if (stripes[width]) {\n return stripes[width];\n }\n\n var len = width,\n out = new Uint32Array(len);\n\n for (var i = 0; i < len; i += 4) {\n out[i] = 0x000000ff;\n out[i + 1] = 0x0000ff00;\n out[i + 2] = 0x00ff0000;\n out[i + 3] = 0xff000000;\n }\n\n return stripes[width] = new Uint8Array(out.buffer);\n }\n\n function initProgram(vertexShaderSource, fragmentShaderSource) {\n var vertexShader = compileShader(gl.VERTEX_SHADER, vertexShaderSource);\n var fragmentShader = compileShader(gl.FRAGMENT_SHADER, fragmentShaderSource);\n var program = gl.createProgram();\n gl.attachShader(program, vertexShader);\n gl.attachShader(program, fragmentShader);\n gl.linkProgram(program);\n\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n var err = gl.getProgramInfoLog(program);\n gl.deleteProgram(program);\n throw new Error('GL program linking failed: ' + err);\n }\n\n return program;\n }\n\n function init() {\n if (WebGLFrameSink.stripe) {\n unpackProgram = initProgram(shaders.vertexStripe, shaders.fragmentStripe);\n unpackPositionLocation = gl.getAttribLocation(unpackProgram, 'aPosition');\n unpackTexturePositionBuffer = gl.createBuffer();\n var textureRectangle = new Float32Array([0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1]);\n gl.bindBuffer(gl.ARRAY_BUFFER, unpackTexturePositionBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, textureRectangle, gl.STATIC_DRAW);\n unpackTexturePositionLocation = gl.getAttribLocation(unpackProgram, 'aTexturePosition');\n stripeLocation = gl.getUniformLocation(unpackProgram, 'uStripe');\n unpackTextureLocation = gl.getUniformLocation(unpackProgram, 'uTexture');\n }\n\n program = initProgram(shaders.vertex, shaders.fragment);\n buf = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buf);\n gl.bufferData(gl.ARRAY_BUFFER, rectangle, gl.STATIC_DRAW);\n positionLocation = gl.getAttribLocation(program, 'aPosition');\n lumaPositionBuffer = gl.createBuffer();\n lumaPositionLocation = gl.getAttribLocation(program, 'aLumaPosition');\n chromaPositionBuffer = gl.createBuffer();\n chromaPositionLocation = gl.getAttribLocation(program, 'aChromaPosition');\n }\n /**\n * Actually draw a frame.\n * @param {YUVFrame} buffer - YUV frame buffer object\n */\n\n\n self.drawFrame = function (buffer) {\n var format = buffer.format;\n var formatUpdate = !program || canvas.width !== format.displayWidth || canvas.height !== format.displayHeight;\n\n if (formatUpdate) {\n // Keep the canvas at the right size...\n canvas.width = format.displayWidth;\n canvas.height = format.displayHeight;\n self.clear();\n }\n\n if (!program) {\n init();\n }\n\n if (formatUpdate) {\n var setupTexturePosition = function setupTexturePosition(buffer, location, texWidth) {\n // Warning: assumes that the stride for Cb and Cr is the same size in output pixels\n var textureX0 = format.cropLeft / texWidth;\n var textureX1 = (format.cropLeft + format.cropWidth) / texWidth;\n var textureY0 = (format.cropTop + format.cropHeight) / format.height;\n var textureY1 = format.cropTop / format.height;\n var textureRectangle = new Float32Array([textureX0, textureY0, textureX1, textureY0, textureX0, textureY1, textureX0, textureY1, textureX1, textureY0, textureX1, textureY1]);\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ARRAY_BUFFER, textureRectangle, gl.STATIC_DRAW);\n };\n\n setupTexturePosition(lumaPositionBuffer, lumaPositionLocation, buffer.y.stride);\n setupTexturePosition(chromaPositionBuffer, chromaPositionLocation, buffer.u.stride * format.width / format.chromaWidth);\n } // Create or update the textures...\n\n\n uploadTexture('uTextureY', formatUpdate, buffer.y.stride, format.height, buffer.y.bytes);\n uploadTexture('uTextureCb', formatUpdate, buffer.u.stride, format.chromaHeight, buffer.u.bytes);\n uploadTexture('uTextureCr', formatUpdate, buffer.v.stride, format.chromaHeight, buffer.v.bytes);\n\n if (WebGLFrameSink.stripe) {\n // Unpack the textures after upload to avoid blocking on GPU\n unpackTexture('uTextureY', formatUpdate, buffer.y.stride, format.height);\n unpackTexture('uTextureCb', formatUpdate, buffer.u.stride, format.chromaHeight);\n unpackTexture('uTextureCr', formatUpdate, buffer.v.stride, format.chromaHeight);\n } // Set up the rectangle and draw it\n\n\n gl.useProgram(program);\n gl.viewport(0, 0, canvas.width, canvas.height);\n attachTexture('uTextureY', gl.TEXTURE0, 0);\n attachTexture('uTextureCb', gl.TEXTURE1, 1);\n attachTexture('uTextureCr', gl.TEXTURE2, 2); // Set up geometry\n\n gl.bindBuffer(gl.ARRAY_BUFFER, buf);\n gl.enableVertexAttribArray(positionLocation);\n gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0); // Set up the texture geometry...\n\n gl.bindBuffer(gl.ARRAY_BUFFER, lumaPositionBuffer);\n gl.enableVertexAttribArray(lumaPositionLocation);\n gl.vertexAttribPointer(lumaPositionLocation, 2, gl.FLOAT, false, 0, 0);\n gl.bindBuffer(gl.ARRAY_BUFFER, chromaPositionBuffer);\n gl.enableVertexAttribArray(chromaPositionLocation);\n gl.vertexAttribPointer(chromaPositionLocation, 2, gl.FLOAT, false, 0, 0); // Aaaaand draw stuff.\n\n gl.drawArrays(gl.TRIANGLES, 0, rectangle.length / 2);\n };\n\n self.clear = function () {\n gl.viewport(0, 0, canvas.width, canvas.height);\n gl.clearColor(0.0, 0.0, 0.0, 0.0);\n gl.clear(gl.COLOR_BUFFER_BIT);\n };\n\n self.clear();\n return self;\n } // Optional performance hack for Windows; luminance and alpha textures are\n // ssllooww to upload on some machines, so we pack into RGBA and unpack in\n // the shaders.\n //\n // Some browsers / GPUs seem to have no problem with this, others have\n // a huge impact in CPU doing the texture uploads.\n //\n // For instance on macOS 12.2 on a MacBook Pro 2018 with AMD GPU it\n // can real down at high res. This is partially compensated for by\n // improving the upload-vs-update behavior for the alpha textures.\n //\n // Currently keeping it off as of April 2022, but leaving it in so it\n // can be enabled if desired.\n\n\n WebGLFrameSink.stripe = false;\n\n WebGLFrameSink.contextForCanvas = function (canvas) {\n var options = {\n // Don't trigger discrete GPU in multi-GPU systems\n preferLowPowerToHighPerformance: true,\n powerPreference: 'low-power',\n // Don't try to use software GL rendering!\n failIfMajorPerformanceCaveat: true,\n // In case we need to capture the resulting output.\n preserveDrawingBuffer: true\n };\n return canvas.getContext('webgl', options) || canvas.getContext('experimental-webgl', options);\n };\n /**\n * Static function to check if WebGL will be available with appropriate features.\n *\n * @returns {boolean} - true if available\n */\n\n\n WebGLFrameSink.isAvailable = function () {\n var canvas = document.createElement('canvas'),\n gl;\n canvas.width = 1;\n canvas.height = 1;\n\n try {\n gl = WebGLFrameSink.contextForCanvas(canvas);\n } catch (e) {\n return false;\n }\n\n if (gl) {\n var register = gl.TEXTURE0,\n width = 4,\n height = 4,\n texture = gl.createTexture(),\n data = new Uint8Array(width * height),\n texWidth = WebGLFrameSink.stripe ? width / 4 : width,\n format = WebGLFrameSink.stripe ? gl.RGBA : gl.ALPHA,\n filter = WebGLFrameSink.stripe ? gl.NEAREST : gl.LINEAR;\n gl.activeTexture(register);\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, filter);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, filter);\n gl.texImage2D(gl.TEXTURE_2D, 0, // mip level\n format, // internal format\n texWidth, height, 0, // border\n format, // format\n gl.UNSIGNED_BYTE, //type\n data // data!\n );\n var err = gl.getError();\n\n if (err) {\n // Doesn't support alpha textures?\n return false;\n } else {\n return true;\n }\n } else {\n return false;\n }\n };\n\n WebGLFrameSink.prototype = Object.create(FrameSink.prototype);\n module.exports = WebGLFrameSink;\n})();\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/yuv-canvas/src/WebGLFrameSink.js?"); | ||
| 2936 | + | ||
| 2937 | +/***/ }), | ||
| 2938 | + | ||
| 2939 | +/***/ "./node_modules/yuv-canvas/src/YCbCr.js": | ||
| 2940 | +/*!**********************************************!*\ | ||
| 2941 | + !*** ./node_modules/yuv-canvas/src/YCbCr.js ***! | ||
| 2942 | + \**********************************************/ | ||
| 2943 | +/*! no static exports found */ | ||
| 2944 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2945 | + | ||
| 2946 | +eval("/*\nCopyright (c) 2014-2019 Brion Vibber <brion@pobox.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n(function () {\n \"use strict\";\n\n var depower = __webpack_require__(/*! ./depower.js */ \"./node_modules/yuv-canvas/src/depower.js\");\n /**\n * Basic YCbCr->RGB conversion\n *\n * @author Brion Vibber <brion@pobox.com>\n * @copyright 2014-2019\n * @license MIT-style\n *\n * @param {YUVFrame} buffer - input frame buffer\n * @param {Uint8ClampedArray} output - array to draw RGBA into\n * Assumes that the output array already has alpha channel set to opaque.\n */\n\n\n function convertYCbCr(buffer, output) {\n var width = buffer.format.width | 0,\n height = buffer.format.height | 0,\n hdec = depower(buffer.format.width / buffer.format.chromaWidth) | 0,\n vdec = depower(buffer.format.height / buffer.format.chromaHeight) | 0,\n bytesY = buffer.y.bytes,\n bytesCb = buffer.u.bytes,\n bytesCr = buffer.v.bytes,\n strideY = buffer.y.stride | 0,\n strideCb = buffer.u.stride | 0,\n strideCr = buffer.v.stride | 0,\n outStride = width << 2,\n YPtr = 0,\n Y0Ptr = 0,\n Y1Ptr = 0,\n CbPtr = 0,\n CrPtr = 0,\n outPtr = 0,\n outPtr0 = 0,\n outPtr1 = 0,\n colorCb = 0,\n colorCr = 0,\n multY = 0,\n multCrR = 0,\n multCbCrG = 0,\n multCbB = 0,\n x = 0,\n y = 0,\n xdec = 0,\n ydec = 0;\n\n if (hdec == 1 && vdec == 1) {\n // Optimize for 4:2:0, which is most common\n outPtr0 = 0;\n outPtr1 = outStride;\n ydec = 0;\n\n for (y = 0; y < height; y += 2) {\n Y0Ptr = y * strideY | 0;\n Y1Ptr = Y0Ptr + strideY | 0;\n CbPtr = ydec * strideCb | 0;\n CrPtr = ydec * strideCr | 0;\n\n for (x = 0; x < width; x += 2) {\n colorCb = bytesCb[CbPtr++] | 0;\n colorCr = bytesCr[CrPtr++] | 0; // Quickie YUV conversion\n // https://en.wikipedia.org/wiki/YCbCr#ITU-R_BT.2020_conversion\n // multiplied by 256 for integer-friendliness\n\n multCrR = (409 * colorCr | 0) - 57088 | 0;\n multCbCrG = (100 * colorCb | 0) + (208 * colorCr | 0) - 34816 | 0;\n multCbB = (516 * colorCb | 0) - 70912 | 0;\n multY = 298 * bytesY[Y0Ptr++] | 0;\n output[outPtr0] = multY + multCrR >> 8;\n output[outPtr0 + 1] = multY - multCbCrG >> 8;\n output[outPtr0 + 2] = multY + multCbB >> 8;\n outPtr0 += 4;\n multY = 298 * bytesY[Y0Ptr++] | 0;\n output[outPtr0] = multY + multCrR >> 8;\n output[outPtr0 + 1] = multY - multCbCrG >> 8;\n output[outPtr0 + 2] = multY + multCbB >> 8;\n outPtr0 += 4;\n multY = 298 * bytesY[Y1Ptr++] | 0;\n output[outPtr1] = multY + multCrR >> 8;\n output[outPtr1 + 1] = multY - multCbCrG >> 8;\n output[outPtr1 + 2] = multY + multCbB >> 8;\n outPtr1 += 4;\n multY = 298 * bytesY[Y1Ptr++] | 0;\n output[outPtr1] = multY + multCrR >> 8;\n output[outPtr1 + 1] = multY - multCbCrG >> 8;\n output[outPtr1 + 2] = multY + multCbB >> 8;\n outPtr1 += 4;\n }\n\n outPtr0 += outStride;\n outPtr1 += outStride;\n ydec++;\n }\n } else {\n outPtr = 0;\n\n for (y = 0; y < height; y++) {\n xdec = 0;\n ydec = y >> vdec;\n YPtr = y * strideY | 0;\n CbPtr = ydec * strideCb | 0;\n CrPtr = ydec * strideCr | 0;\n\n for (x = 0; x < width; x++) {\n xdec = x >> hdec;\n colorCb = bytesCb[CbPtr + xdec] | 0;\n colorCr = bytesCr[CrPtr + xdec] | 0; // Quickie YUV conversion\n // https://en.wikipedia.org/wiki/YCbCr#ITU-R_BT.2020_conversion\n // multiplied by 256 for integer-friendliness\n\n multCrR = (409 * colorCr | 0) - 57088 | 0;\n multCbCrG = (100 * colorCb | 0) + (208 * colorCr | 0) - 34816 | 0;\n multCbB = (516 * colorCb | 0) - 70912 | 0;\n multY = 298 * bytesY[YPtr++] | 0;\n output[outPtr] = multY + multCrR >> 8;\n output[outPtr + 1] = multY - multCbCrG >> 8;\n output[outPtr + 2] = multY + multCbB >> 8;\n outPtr += 4;\n }\n }\n }\n }\n\n module.exports = {\n convertYCbCr: convertYCbCr\n };\n})();\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/yuv-canvas/src/YCbCr.js?"); | ||
| 2947 | + | ||
| 2948 | +/***/ }), | ||
| 2949 | + | ||
| 2950 | +/***/ "./node_modules/yuv-canvas/src/depower.js": | ||
| 2951 | +/*!************************************************!*\ | ||
| 2952 | + !*** ./node_modules/yuv-canvas/src/depower.js ***! | ||
| 2953 | + \************************************************/ | ||
| 2954 | +/*! no static exports found */ | ||
| 2955 | +/***/ (function(module, exports) { | ||
| 2956 | + | ||
| 2957 | +eval("/*\nCopyright (c) 2014-2016 Brion Vibber <brion@pobox.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n(function () {\n \"use strict\";\n /**\n * Convert a ratio into a bit-shift count; for instance a ratio of 2\n * becomes a bit-shift of 1, while a ratio of 1 is a bit-shift of 0.\n *\n * @author Brion Vibber <brion@pobox.com>\n * @copyright 2016\n * @license MIT-style\n *\n * @param {number} ratio - the integer ratio to convert.\n * @returns {number} - number of bits to shift to multiply/divide by the ratio.\n * @throws exception if given a non-power-of-two\n */\n\n function depower(ratio) {\n var shiftCount = 0,\n n = ratio >> 1;\n\n while (n != 0) {\n n = n >> 1;\n shiftCount++;\n }\n\n if (ratio !== 1 << shiftCount) {\n throw 'chroma plane dimensions must be power of 2 ratio to luma plane dimensions; got ' + ratio;\n }\n\n return shiftCount;\n }\n\n module.exports = depower;\n})();\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/yuv-canvas/src/depower.js?"); | ||
| 2958 | + | ||
| 2959 | +/***/ }), | ||
| 2960 | + | ||
| 2961 | +/***/ "./node_modules/yuv-canvas/src/yuv-canvas.js": | ||
| 2962 | +/*!***************************************************!*\ | ||
| 2963 | + !*** ./node_modules/yuv-canvas/src/yuv-canvas.js ***! | ||
| 2964 | + \***************************************************/ | ||
| 2965 | +/*! no static exports found */ | ||
| 2966 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 2967 | + | ||
| 2968 | +eval("/*\nCopyright (c) 2014-2016 Brion Vibber <brion@pobox.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n(function () {\n \"use strict\";\n\n var FrameSink = __webpack_require__(/*! ./FrameSink.js */ \"./node_modules/yuv-canvas/src/FrameSink.js\"),\n SoftwareFrameSink = __webpack_require__(/*! ./SoftwareFrameSink.js */ \"./node_modules/yuv-canvas/src/SoftwareFrameSink.js\"),\n WebGLFrameSink = __webpack_require__(/*! ./WebGLFrameSink.js */ \"./node_modules/yuv-canvas/src/WebGLFrameSink.js\");\n /**\n * @typedef {Object} YUVCanvasOptions\n * @property {boolean} webGL - Whether to use WebGL to draw to the canvas and accelerate color space conversion. If left out, defaults to auto-detect.\n */\n\n\n var YUVCanvas = {\n FrameSink: FrameSink,\n SoftwareFrameSink: SoftwareFrameSink,\n WebGLFrameSink: WebGLFrameSink,\n\n /**\n * Attach a suitable FrameSink instance to an HTML5 canvas element.\n *\n * This will take over the drawing context of the canvas and may turn\n * it into a WebGL 3d canvas if possible. Do not attempt to use the\n * drawing context directly after this.\n *\n * @param {HTMLCanvasElement} canvas - HTML canvas element to attach to\n * @param {YUVCanvasOptions} options - map of options\n * @returns {FrameSink} - instance of suitable subclass.\n */\n attach: function attach(canvas, options) {\n options = options || {};\n var webGL = 'webGL' in options ? options.webGL : WebGLFrameSink.isAvailable();\n\n if (webGL) {\n return new WebGLFrameSink(canvas, options);\n } else {\n return new SoftwareFrameSink(canvas, options);\n }\n }\n };\n module.exports = YUVCanvas;\n})();\n\n//# sourceURL=webpack://WebMediaPlayer/./node_modules/yuv-canvas/src/yuv-canvas.js?"); | ||
| 2969 | + | ||
| 2970 | +/***/ }), | ||
| 2971 | + | ||
| 2972 | +/***/ "./src/FlvPlayer/AudioWorker.js": | ||
| 2973 | +/*!**************************************!*\ | ||
| 2974 | + !*** ./src/FlvPlayer/AudioWorker.js ***! | ||
| 2975 | + \**************************************/ | ||
| 2976 | +/*! exports provided: default */ | ||
| 2977 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 2978 | + | ||
| 2979 | +"use strict"; | ||
| 2980 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/common */ \"./src/common/common.js\");\n/* harmony import */ var _common_soundPlayer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/soundPlayer */ \"./src/common/soundPlayer.js\");\n\n\n\nvar AudioWorker = function AudioWorker(self) {\n console.log('new AudioWorker.js');\n self._requestAbort = false;\n self.soundPlayer = null;\n self.audioSampleQueue = [];\n\n var clearAudioQueue = function clearAudioQueue() {\n self.audioSampleQueue.length = 0;\n self.audioSampleQueue = []; //console.log(\"clean audio queue.\");\n };\n\n var OpenAudioPlayer = function OpenAudioPlayer(sampleFmt, channels, sampleRate) {\n if (self.soundPlayer == null) {\n var encoding = '16bitInt';\n\n switch (sampleFmt) {\n case 0:\n encoding = '8bitInt';\n break;\n\n case 1:\n encoding = '16bitInt';\n break;\n\n case 2:\n encoding = '32bitInt';\n break;\n\n case 3:\n encoding = '32bitFloat';\n break;\n\n default:\n this.logger.logError('Unsupported audio sampleFmt ' + sampleFmt + '!');\n }\n\n self.soundPlayer = new _common_soundPlayer__WEBPACK_IMPORTED_MODULE_1__[\"default\"]();\n self.soundPlayer.init({\n encoding: encoding,\n channels: channels,\n sampleRate: sampleRate,\n flushingTime: 5000\n });\n }\n };\n\n self.addEventListener('message', function (ev) {\n var data = ev.data;\n console.log('AudioWorker: recv data.');\n\n switch (data.cmd) {\n case _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tOpenStream\"]:\n console.log('init audio player.');\n OpenAudioPlayer(1, 2, 8000); //OpenAudioPlayer(1, 2, 32000);\n\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tFrameData\"]:\n console.log('recv audio data...');\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tCloseStream\"]:\n self._requestAbort = true;\n break;\n\n default:\n break;\n }\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (AudioWorker);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/AudioWorker.js?"); | ||
| 2981 | + | ||
| 2982 | +/***/ }), | ||
| 2983 | + | ||
| 2984 | +/***/ "./src/FlvPlayer/TSDemuxer.js": | ||
| 2985 | +/*!************************************!*\ | ||
| 2986 | + !*** ./src/FlvPlayer/TSDemuxer.js ***! | ||
| 2987 | + \************************************/ | ||
| 2988 | +/*! exports provided: default */ | ||
| 2989 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 2990 | + | ||
| 2991 | +"use strict"; | ||
| 2992 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/common */ \"./src/common/common.js\");\n/* harmony import */ var _adts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adts */ \"./src/FlvPlayer/adts.js\");\n/* harmony import */ var _exp_golomb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./exp-golomb */ \"./src/FlvPlayer/exp-golomb.js\");\n/* harmony import */ var _flv_js_demux_sps_parser_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./flv.js/demux/sps-parser.js */ \"./src/FlvPlayer/flv.js/demux/sps-parser.js\");\n/* harmony import */ var _flv_js_core_media_info_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./flv.js/core/media-info.js */ \"./src/FlvPlayer/flv.js/core/media-info.js\");\n/* harmony import */ var _flv_js_demux_flv_demuxer_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./flv.js/demux/flv-demuxer.js */ \"./src/FlvPlayer/flv.js/demux/flv-demuxer.js\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\n\n\n\n\nvar TSDemuxer = /*#__PURE__*/function () {\n function TSDemuxer(config, callbackMediaDataFunc, callbackMediaDataUserPtr) {\n this.TAG = 'TSDemuxer';\n this._config = config;\n this._onError = null;\n this._onMediaInfo = null;\n this._onMetaDataArrived = null;\n this._onScriptDataArrived = null;\n this._onTrackMetadata = null;\n this._onDataAvailable = null;\n this._hasAudio = false;\n this._hasVideo = false;\n this._hasAudioFlagOverrided = false;\n this._hasVideoFlagOverrided = false;\n this._initVideoMetadata = false;\n this._initAudioMetadata = false;\n this._mediaInfo = new _flv_js_core_media_info_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]();\n this._mediaInfo.hasAudio = false;\n this._mediaInfo.hasVideo = false;\n this._metadata = null;\n this._audioMetadata = null;\n this._videoMetadata = null;\n this.tagPosition = 0;\n this.filePosition = 0;\n this.isHEVC = 0;\n this.isAAC = 0;\n this.avcTrackPid = -1;\n this.audioTrackPid = -1;\n this.id3TrackPid = -1;\n this.audioSampleRate = 0;\n this.audioChannel = 2;\n this.audioBitPerSample = 16;\n this.avcTrackPesData = null;\n this.audioTrackPesData = null;\n this.id3TrackPesData = null;\n this.findKeyframe = true;\n this.syncVideoPts = 0;\n this.syncAudioPts = 0;\n this.startVideoPts = 0;\n this.startAudioPts = 0; //this.currVideoPts = 0;\n\n this.accurateTimeOffset = 0;\n this.lastVideoPts = 0;\n this.currentVideoPts = 0;\n this.seekVideoHistoryPts = 0;\n this.currentAudioPts = 0;\n this.audioFrameNum = 0;\n this.reset = 0; //===============================================\n\n this._videoTrack = {\n type: 'video',\n id: 1,\n sequenceNumber: 0,\n samples: [],\n length: 0\n };\n this._audioTrack = {\n type: 'audio',\n id: 2,\n sequenceNumber: 0,\n samples: [],\n length: 0\n };\n this._timestampBase = 0; // int32, in milliseconds\n\n this._timescale = 1000;\n this._duration = 0; // int32, in milliseconds\n\n this._durationOverrided = false;\n this._AVC_SPS = null;\n this._AVC_PPS = null;\n this._HEVC_VPS = null;\n this._HEVC_SPS = null;\n this._HEVC_PPS = null;\n this._StartCode = [0, 0, 0, 1];\n this._AVC_Config = null;\n this._callbackInitFlag = false;\n this._callbackMediaDataFunc = callbackMediaDataFunc;\n this._callbackMediaDataUserPtr = callbackMediaDataUserPtr;\n } //=================================================================\n\n\n var _proto = TSDemuxer.prototype;\n\n _proto.bindDataSource = function bindDataSource(loader) {\n loader.onDataArrival = this.append.bind(this);\n return this;\n } // prototype: function(type: string, metadata: any): void\n ;\n\n _proto.resetMediaInfo = function resetMediaInfo() {\n this._mediaInfo = new _flv_js_core_media_info_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]();\n };\n\n _proto.resetMediaPts = function resetMediaPts(flag) {\n this.reset = flag;\n this.syncVideoPts = 0;\n this.syncAudioPts = 0;\n this.findKeyframe = true;\n this._videoTrack.samples = [];\n this._audioTrack.samples = [];\n return;\n this.startVideoPts = 0;\n this.startAudioPts = 0;\n this.accurateTimeOffset = 0; //this.lastVideoPts = 0;\n\n this.currentAudioPts = 0;\n this.audioFrameNum = 0;\n };\n\n _proto._onDataAvailableToSoftwareDecodeVideo = function _onDataAvailableToSoftwareDecodeVideo(codecId, videoTrack) {\n var track = videoTrack;\n var samples = track.samples;\n\n if (codecId < 1 && samples.length > 0) {\n console.log('EXCEPTION:: No used...');\n return;\n }\n\n var idx = -1;\n\n if (samples.length > 1) {\n //console.log(\"frame num: \" + samples.length);\n idx = 0;\n }\n\n while (samples.length) {\n var sample = samples.shift();\n var frameLength = 0;\n\n for (var j = 0; j < sample.units.length; j++) {\n frameLength += sample.units[j].data.length;\n }\n\n var offset = 0;\n var bufdata = new Uint8Array(frameLength); //for (let j = 0; j < sample.units.length; j++) {\n\n while (sample.units.length) {\n var unit = sample.units.shift();\n\n if (codecId == 27) {\n unit.data[0] = 0;\n unit.data[1] = 0;\n unit.data[2] = 0;\n unit.data[3] = 1;\n }\n\n bufdata.set(unit.data, offset);\n offset += unit.data.length;\n }\n\n if (this._callbackMediaDataFunc) {\n //console.log(\"Decode: \" + bufdata);\n //console.log(\"Decode: \" + frameLength);\n if (idx >= 0) {\n //console.log(\"frame idx \" + idx + \" length: \" + frameLength);// + \":\" + bufdata);\n idx++;\n } //console.log(\"TSDemuxer.js::callback pts: \" + sample.pts);\n //mediaType, codecId, framedata, framesize, samplerate, channels, bitPerSample) {\n\n\n this._callbackMediaDataFunc(this._callbackMediaDataUserPtr, true, 1, codecId, sample.isKeyframe, bufdata, frameLength, sample.pts, 0, 0);\n }\n }\n };\n\n _proto._onDataAvailableToSoftwareDecodeAudio = function _onDataAvailableToSoftwareDecodeAudio(codecId, audioTrack) {\n //console.log(\"proc audio frame....\" + codecId + \" samples: \" + audioTrack.samples.length);\n var track = audioTrack;\n var samples = track.samples;\n var idx = -1;\n\n if (samples.length > 1) {\n //console.log(\"frame num: \" + samples.length);\n idx = 0;\n }\n\n while (samples.length) {\n var sample = samples.shift();\n\n if (this._callbackMediaDataFunc) {\n //console.log(\"Decode audio: \" + sample.unit);\n //console.log(\"Decode: \" + frameLength);\n if (idx >= 0) {\n //console.log(\"frame idx \" + idx + \" length: \" + frameLength);// + \":\" + bufdata);\n idx++;\n } //mediaType, codecId, framedata, framesize, samplerate, channels, bitPerSample) {\n\n\n this._callbackMediaDataFunc(this._callbackMediaDataUserPtr, true, 2, codecId, 0, sample.unit, sample.length, this._SampleRate, this._ChannelNum, this._SampleRate >= 44100 ? 32 : 16);\n }\n }\n } //=================================================================\n\n /**\n * Creates a track model internal to demuxer used to drive remuxing input\n *\n * @param {string} type 'audio' | 'video' | 'id3' | 'text'\n * @param {number} duration\n * @return {object} TSDemuxer's internal track model\n */\n ;\n\n TSDemuxer.createTrack = function createTrack(type, duration) {\n return {\n container: type === 'video' || type === 'audio' ? 'video/mp2t' : undefined,\n type: type,\n id: RemuxerTrackIdConfig[type],\n pid: -1,\n inputTimeScale: 90000,\n sequenceNumber: 0,\n samples: [],\n dropped: type === 'video' ? 0 : undefined,\n isAAC: type === 'audio' ? true : undefined,\n duration: type === 'audio' ? duration : undefined,\n isHEVC: 0\n };\n };\n\n TSDemuxer._syncOffset = function _syncOffset(data) {\n // scan 1000 first bytes\n var scanwindow = Math.min(1000, data.length - 3 * 188);\n var i = 0;\n\n while (i < scanwindow) {\n // a TS fragment should contain at least 3 TS packets, a PAT, a PMT, and one PID, each starting with 0x47\n if (data[i] === 0x47 && data[i + 188] === 0x47 && data[i + 2 * 188] === 0x47) {\n return i;\n } else {\n i++;\n }\n }\n\n return -1;\n };\n\n _proto.destroy = function destroy() {\n this._initPTS = this._initDTS = undefined;\n this._duration = 0;\n };\n\n _proto.parsePAT = function parsePAT(data, offset) {\n // skip the PSI header and parse the first PMT entry\n return (data[offset + 10] & 0x1F) << 8 | data[offset + 11]; // logger.log('PMT PID:' + this._pmtId);\n };\n\n _proto.parsePMT = function parsePMT(data, offset, mpegSupported, isSampleAes) {\n var sectionLength,\n tableEnd,\n programInfoLength,\n pid,\n result = {\n audio: -1,\n avc: -1,\n hevc: -1,\n id3: -1,\n isAAC: true\n };\n sectionLength = (data[offset + 1] & 0x0f) << 8 | data[offset + 2];\n tableEnd = offset + 3 + sectionLength - 4; // to determine where the table is, we have to figure out how\n // long the program info descriptors are\n\n programInfoLength = (data[offset + 10] & 0x0f) << 8 | data[offset + 11]; // advance the offset to the first entry in the mapping table\n\n offset += 12 + programInfoLength;\n\n while (offset < tableEnd) {\n pid = (data[offset + 1] & 0x1F) << 8 | data[offset + 2];\n\n switch (data[offset]) {\n case 0xcf:\n // SAMPLE-AES AAC\n if (!isSampleAes) {\n //logger.log('unknown stream type:' + data[offset]);\n break;\n }\n\n /* falls through */\n // ISO/IEC 13818-7 ADTS AAC (MPEG-2 lower bit-rate audio)\n\n case 0x0f:\n // logger.log('AAC PID:' + pid);\n if (result.audio === -1) {\n result.audio = pid;\n }\n\n break;\n // Packetized metadata (ID3)\n\n case 0x15:\n // logger.log('ID3 PID:' + pid);\n if (result.id3 === -1) {\n result.id3 = pid;\n }\n\n break;\n\n case 0xdb:\n // SAMPLE-AES AVC\n if (!isSampleAes) {\n logger.log('unknown stream type:' + data[offset]);\n break;\n }\n\n /* falls through */\n // ITU-T Rec. H.264 and ISO/IEC 14496-10 (lower bit-rate video)\n\n case 0x1b:\n // logger.log('AVC PID:' + pid);\n if (result.avc === -1) {\n result.avc = pid;\n }\n\n _common_common__WEBPACK_IMPORTED_MODULE_0__[\"setCodecTypeStr\"]('H264');\n break;\n //gavin\n\n case 0x24:\n if (result.avc === -1) {\n result.avc = pid;\n result.hevc = pid;\n }\n\n _common_common__WEBPACK_IMPORTED_MODULE_0__[\"setCodecTypeStr\"]('H265');\n break;\n // ISO/IEC 11172-3 (MPEG-1 audio)\n // or ISO/IEC 13818-3 (MPEG-2 halved sample rate audio)\n\n case 0x03:\n case 0x04:\n // logger.log('MPEG PID:' + pid);\n if (!mpegSupported) {\n logger.log('MPEG audio found, not supported in this browser for now');\n } else if (result.audio === -1) {\n result.audio = pid;\n result.isAAC = false;\n }\n\n break;\n\n case 0x24:\n console.warn('HEVC stream type found, not supported for now');\n break;\n\n default:\n //logger.log('unknown stream type:' + data[offset]);\n break;\n } // move to the next table entry\n // skip past the elementary stream descriptors, if present\n\n\n offset += ((data[offset + 3] & 0x0F) << 8 | data[offset + 4]) + 5;\n }\n\n return result;\n };\n\n _proto.parsePES = function parsePES(stream) {\n if (this.reset === 1) {\n return;\n }\n\n var i = 0,\n frag,\n pesFlags,\n pesPrefix,\n pesLen,\n pesHdrLen,\n pesData,\n pesPts,\n pesDts,\n payloadStartOffset,\n data = stream.data; // safety check\n\n if (!stream || stream.size === 0) {\n return null;\n } // we might need up to 19 bytes to read PES header\n // if first chunk of data is less than 19 bytes, let's merge it with following ones until we get 19 bytes\n // usually only one merge is needed (and this is rare ...)\n\n\n while (data[0].length < 19 && data.length > 1) {\n var newData = new Uint8Array(data[0].length + data[1].length);\n newData.set(data[0]);\n newData.set(data[1], data[0].length);\n data[0] = newData;\n data.splice(1, 1);\n } // retrieve PTS/DTS from first fragment\n\n\n frag = data[0];\n pesPrefix = (frag[0] << 16) + (frag[1] << 8) + frag[2];\n\n if (pesPrefix === 1) {\n pesLen = (frag[4] << 8) + frag[5]; // if PES parsed length is not zero and greater than total received length, stop parsing. PES might be truncated\n // minus 6 : PES header size\n\n if (pesLen && pesLen > stream.size - 6) {\n return null;\n }\n\n pesFlags = frag[7];\n\n if (pesFlags & 0xC0) {\n /* PES header described here : http://dvd.sourceforge.net/dvdinfo/pes-hdr.html\n as PTS / DTS is 33 bit we cannot use bitwise operator in JS,\n as Bitwise operators treat their operands as a sequence of 32 bits */\n pesPts = (frag[9] & 0x0E) * 536870912 + // 1 << 29\n (frag[10] & 0xFF) * 4194304 + // 1 << 22\n (frag[11] & 0xFE) * 16384 + // 1 << 14\n (frag[12] & 0xFF) * 128 + // 1 << 7\n (frag[13] & 0xFE) / 2; //console.log(\"AUDIO Raw PTS: \" + pesPts);\n // check if greater than 2^32 -1\n\n if (pesPts > 4294967295) {\n // decrement 2^33\n //pesPts -= 8589934592;\n pesPts -= 4294967295; //gavin\n }\n\n if (pesFlags & 0x40) {\n pesDts = (frag[14] & 0x0E) * 536870912 + // 1 << 29\n (frag[15] & 0xFF) * 4194304 + // 1 << 22\n (frag[16] & 0xFE) * 16384 + // 1 << 14\n (frag[17] & 0xFF) * 128 + // 1 << 7\n (frag[18] & 0xFE) / 2; // check if greater than 2^32 -1\n\n if (pesDts > 4294967295) {\n // decrement 2^33\n //pesDts -= 8589934592;\n pesDts -= 4294967295;\n }\n\n if (pesPts - pesDts > 60 * 90000) {\n console.warn(Math.round((pesPts - pesDts) / 90000) + \"s delta between PTS and DTS, align them\");\n pesPts = pesDts;\n }\n } else {\n pesDts = pesPts;\n }\n }\n\n pesHdrLen = frag[8]; // 9 bytes : 6 bytes for PES header + 3 bytes for PES extension\n\n payloadStartOffset = pesHdrLen + 9;\n\n if (stream.size <= payloadStartOffset) {\n return null;\n }\n\n stream.size -= payloadStartOffset; // reassemble PES packet\n\n pesData = new Uint8Array(stream.size);\n\n for (var j = 0, dataLen = data.length; j < dataLen; j++) {\n frag = data[j];\n var len = frag.byteLength;\n\n if (payloadStartOffset) {\n if (payloadStartOffset > len) {\n // trim full frag if PES header bigger than frag\n payloadStartOffset -= len;\n continue;\n } else {\n // trim partial frag if PES header smaller than frag\n frag = frag.subarray(payloadStartOffset);\n len -= payloadStartOffset;\n payloadStartOffset = 0;\n }\n }\n\n pesData.set(frag, i);\n i += len;\n }\n\n if (pesLen) {\n // payload size : remove PES header + PES extension\n pesLen -= pesHdrLen + 3;\n }\n\n return {\n data: pesData,\n pts: pesPts,\n dts: pesDts,\n len: pesLen\n };\n } else {\n return null;\n }\n };\n\n _proto.pushAccesUnit = function pushAccesUnit(avcSample, avcTrack) {\n if (avcSample.units.length && avcSample.frame) {\n var samples = avcTrack.samples;\n var nbSamples = samples.length; // if sample does not have PTS/DTS, patch with last sample PTS/DTS\n\n if (isNaN(avcSample.pts)) {\n if (nbSamples) {\n var lastSample = samples[nbSamples - 1];\n avcSample.pts = lastSample.pts;\n avcSample.dts = lastSample.dts;\n } else {\n // dropping samples, no timestamp found\n avcTrack.dropped++;\n return;\n }\n } // only push AVC sample if starting with a keyframe is not mandatory OR\n // if keyframe already found in this fragment OR\n // keyframe found in last fragment (track.sps) AND\n // samples already appended (we already found a keyframe in this fragment) OR fragment is contiguous\n\n\n if (!this.config.forceKeyFrameOnDiscontinuity || avcSample.key === true || avcTrack.sps && (nbSamples || this.contiguous)) {\n avcSample.id = nbSamples;\n samples.push(avcSample);\n } else {\n // dropped samples, track it\n avcTrack.dropped++;\n }\n }\n\n if (avcSample.debug.length) {\n logger.log(avcSample.pts + '/' + avcSample.dts + ':' + avcSample.debug);\n }\n };\n\n _proto.parseAVCPES = function parseAVCPES(pes, last, startTimeSecs) {\n var _this = this;\n\n // logger.log('parse new PES');\n\n /*\n var dur = 0;\n if (this.startVideoPts > 0) {\n dur = (pes.pts - this.startVideoPts) / 90000;\n dur += startTimeSecs;\n //console.log(\"dur: \" + dur);\n }\n else {\n this.startVideoPts = pes.pts;\n dur = startTimeSecs;\n //console.log(\"dur... pes: \" + pes.pts);\n }\n */\n var bSetInitPts = 0;\n\n if (this.startVideoPts === 0) {\n this.startVideoPts = pes.pts;\n bSetInitPts = 1;\n } else if (pes.pts < this.startVideoPts) {\n this.startVideoPts = pes.pts;\n bSetInitPts = 1;\n }\n /*\n else if (pes.pts > this.lastVideoPts + 1000*90) {\n this.startVideoPts = pes.pts;\n bSetInitPts = 1;\n }\n if (bSetInitPts === 1) {\n this.lastVideoPts = pes.pts;\n }\n */\n //var videoPts = pes.pts;\n //var oneFramePts = (pes.pts - this.startVideoPts) / 90;\n //pes.pts = oneFramePts + this.currentVideoPts;\n //this.currentVideoPts += oneFramePts;\n //this.startVideoPts = videoPts;\n\n\n this.audioFrameNum = 0; //console.log(\"AVC... pes: \" + pes.pts);\n //var objData = {\n // cmd: common.tFrameData,\n // workerId: common.DOWNLOAD_WORKER_ID,\n // mediaType: 1,\n // codecId: 27,\n // flag: last,\n // pts: pes.pts,\n // playTimeSec: dur,\n // dat: pes.data\n //};\n //self.postMessage(objData, [objData.dat.buffer]);\n\n var units = this._parseAVCNALu(pes.data);\n\n var tmpUnits = [];\n var tmpLength = 0; //return;\n //====================================================================\n\n /*\n let track = this._avcTrack,\n units = this._parseAVCNALu(pes.data),\n debug = false,\n expGolombDecoder,\n avcSample = this.avcSample,\n push,\n spsfound = false,\n i,\n pushAccesUnit = this.pushAccesUnit.bind(this),\n createAVCSample = function (key, pts, dts, debug) {\n return { key: key, pts: pts, dts: dts, units: [], debug: debug };\n };\n // free pes.data to save up some memory\n */\n\n pes.data = null; // if new NAL units found and last sample still there, let's push ...\n // this helps parsing streams with missing AUD (only do this if AUD never found)\n\n /*\n if (avcSample && units.length && !track.audFound) {\n pushAccesUnit(avcSample, track);\n avcSample = this.avcSample = createAVCSample(false, pes.pts, pes.dts, '');\n }\n */\n\n var keyframe = false;\n var push = false;\n var spsfound = false;\n units.forEach(function (unit) {\n var tmpLen = unit.data.length;\n var tmpDat = new Uint8Array(4 + tmpLen);\n tmpDat[0] = tmpLen >> 24 & 0xFF;\n tmpDat[1] = tmpLen >> 16 & 0xFF;\n tmpDat[2] = tmpLen >> 8 & 0xFF;\n tmpDat[3] = tmpLen & 0xFF;\n tmpDat.set(unit.data, 4); //console.log(\"unit.type: \" + unit.type);\n //let tmpUnit = { data: tmpDat, type: unit.type, state: 0 };\n\n var tmpUnit = {\n type: unit.type,\n data: tmpDat\n };\n tmpLength += tmpDat.length;\n tmpUnits.push(tmpUnit);\n\n switch (unit.type) {\n // NDR\n case 1:\n push = true;\n /*\n if (!avcSample) {\n avcSample = this.avcSample = createAVCSample(true, pes.pts, pes.dts, '');\n }\n if (debug) {\n avcSample.debug += 'NDR ';\n }\n avcSample.frame = true;\n */\n\n var data = unit.data; // only check slice type to detect KF in case SPS found in same packet (any keyframe is preceded by SPS ...)\n\n if (spsfound && data.length > 4) {\n // retrieve slice type by parsing beginning of NAL unit (follow H264 spec, slice_header definition) to detect keyframe embedded in NDR\n var sliceType = new _exp_golomb__WEBPACK_IMPORTED_MODULE_2__[\"default\"](data).readSliceType(); // 2 : I slice, 4 : SI slice, 7 : I slice, 9: SI slice\n // SI slice : A slice that is coded using intra prediction only and using quantisation of the prediction samples.\n // An SI slice can be coded such that its decoded samples can be constructed identically to an SP slice.\n // I slice: A slice that is not an SI slice that is decoded using intra prediction only.\n // if (sliceType === 2 || sliceType === 7) {\n\n if (sliceType === 2 || sliceType === 4 || sliceType === 7 || sliceType === 9) {\n //avcSample.key = true;\n console.log('key = true');\n }\n }\n\n break;\n // IDR\n\n case 5:\n push = true;\n _this.findKeyframe = false; //���ҵ��ؼ�֡\n //console.log(\"found IDR\");\n\n keyframe = true; // handle PES not starting with AUD\n\n /*\n if (!avcSample) {\n avcSample = this.avcSample = createAVCSample(true, pes.pts, pes.dts, '');\n }\n if (debug) {\n avcSample.debug += 'IDR ';\n }\n avcSample.key = true;\n avcSample.frame = true;\n */\n\n break;\n // SEI\n\n case 6:\n push = true; //console.log(\"found SEI\");\n\n /*\n if (debug && avcSample) {\n avcSample.debug += 'SEI ';\n }\n */\n\n var expGolombDecoder = new _exp_golomb__WEBPACK_IMPORTED_MODULE_2__[\"default\"](_this.discardEPB(unit.data)); // skip frameType\n\n expGolombDecoder.readUByte();\n var payloadType = 0;\n var payloadSize = 0;\n var endOfCaptions = false;\n var b = 0;\n\n while (!endOfCaptions && expGolombDecoder.bytesAvailable > 1) {\n payloadType = 0;\n\n do {\n b = expGolombDecoder.readUByte();\n payloadType += b;\n } while (b === 0xFF); // Parse payload size.\n\n\n payloadSize = 0;\n\n do {\n b = expGolombDecoder.readUByte();\n payloadSize += b;\n } while (b === 0xFF); // TODO: there can be more than one payload in an SEI packet...\n // TODO: need to read type and size in a while loop to get them all\n\n\n if (payloadType === 4 && expGolombDecoder.bytesAvailable !== 0) {\n endOfCaptions = true;\n var countryCode = expGolombDecoder.readUByte();\n\n if (countryCode === 181) {\n var providerCode = expGolombDecoder.readUShort();\n\n if (providerCode === 49) {\n var userStructure = expGolombDecoder.readUInt();\n\n if (userStructure === 0x47413934) {\n var userDataType = expGolombDecoder.readUByte(); // Raw CEA-608 bytes wrapped in CEA-708 packet\n\n if (userDataType === 3) {\n var firstByte = expGolombDecoder.readUByte();\n var secondByte = expGolombDecoder.readUByte();\n var totalCCs = 31 & firstByte;\n var byteArray = [firstByte, secondByte];\n\n for (i = 0; i < totalCCs; i++) {\n // 3 bytes per CC\n byteArray.push(expGolombDecoder.readUByte());\n byteArray.push(expGolombDecoder.readUByte());\n byteArray.push(expGolombDecoder.readUByte());\n }\n\n _this._insertSampleInOrder(_this._txtTrack.samples, {\n type: 3,\n pts: pes.pts,\n bytes: byteArray\n });\n }\n }\n }\n }\n } else if (payloadType === 5 && expGolombDecoder.bytesAvailable !== 0) {\n endOfCaptions = true;\n\n if (payloadSize > 16) {\n var uuidStrArray = [];\n\n for (i = 0; i < 16; i++) {\n uuidStrArray.push(expGolombDecoder.readUByte().toString(16));\n\n if (i === 3 || i === 5 || i === 7 || i === 9) {\n uuidStrArray.push('-');\n }\n }\n\n var length = payloadSize - 16;\n var userDataPayloadBytes = new Uint8Array(length);\n\n for (i = 0; i < length; i++) {\n userDataPayloadBytes[i] = expGolombDecoder.readUByte();\n }\n /*\n this._insertSampleInOrder(this._txtTrack.samples, {\n pts: pes.pts,\n payloadType: payloadType,\n uuid: uuidStrArray.join(''),\n userDataBytes: userDataPayloadBytes,\n userData: utf8ArrayToStr(userDataPayloadBytes.buffer)\n });\n */\n\n }\n } else if (payloadSize < expGolombDecoder.bytesAvailable) {\n for (i = 0; i < payloadSize; i++) {\n expGolombDecoder.readUByte();\n }\n }\n }\n\n break;\n // SPS\n\n case 7:\n push = true;\n spsfound = true;\n _this.findKeyframe = false; //���ҵ��ؼ�֡\n\n _this.tagPosition = _this.filePosition; //console.log(\"found SPS\");\n\n _this._AVC_Config = _flv_js_demux_sps_parser_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].parseSPS(unit.data);\n var config = _this._AVC_Config;\n var codecString = 'avc1.';\n\n if (config) {\n //console.log(\"config2: \" + config);\n var codecArray = unit.data.subarray(1, 4);\n\n for (var j = 0; j < 3; j++) {\n var h = codecArray[j].toString(16);\n\n if (h.length < 2) {\n h = '0' + h;\n }\n\n codecString += h;\n } //console.log(\"codecString: \" + codecString);\n\n }\n /*\n expGolombDecoder = new ExpGolomb(unit.data);\n let config = expGolombDecoder.readSPS();\n let width = config.width;\n let height = config.height;\n let pixelRatio = config.pixelRatio;\n let sps = [unit.data];\n let duration = this._duration;\n let codecarray = unit.data.subarray(1, 4);\n let codecstring = 'avc1.';\n let i = 0;\n for (i = 0; i < 3; i++) {\n let h = codecarray[i].toString(16);\n if (h.length < 2) {\n h = '0' + h;\n }\n codecstring += h;\n }\n let codec = codecstring;\n console.log(\"parse sps... \" + codec);\n */\n //==========================================================\n\n\n if (!_this._initVideoMetadata) {\n if (_this._AVC_SPS == null) {\n _this._AVC_SPS = new Uint8Array(unit.data.length + 4);\n\n _this._AVC_SPS.set(_this._StartCode, 0);\n\n _this._AVC_SPS.set(unit.data, 4);\n }\n\n var meta = _this._videoMetadata;\n var _track = _this._videoTrack; //let le = this._littleEndian;\n //let v = new DataView(arrayBuffer, dataOffset, dataSize);\n\n if (!meta) {\n if (_this._hasVideo === false && _this._hasVideoFlagOverrided === false) {\n _this._hasVideo = true;\n _this._mediaInfo.hasVideo = true;\n }\n\n meta = _this._videoMetadata = {};\n meta.type = 'video';\n meta.id = _track.id;\n meta.timescale = _this._timescale;\n meta.duration = _this._duration;\n } else {\n if (typeof meta.avcc !== 'undefined') {\n Log.w(_this.TAG, 'Found another AVCDecoderConfigurationRecord!');\n }\n }\n\n meta.codecWidth = config.codec_size.width;\n meta.codecHeight = config.codec_size.height;\n meta.presentWidth = config.present_size.width;\n meta.presentHeight = config.present_size.height;\n meta.profile = config.profile_string;\n meta.level = config.level_string;\n meta.bitDepth = config.bit_depth;\n meta.chromaFormat = config.chroma_format;\n meta.sarRatio = config.sar_ratio;\n meta.frameRate = config.frame_rate;\n\n if (config.frame_rate.fixed === false || config.frame_rate.fps_num === 0 || config.frame_rate.fps_den === 0) {\n meta.frameRate = _this._referenceFrameRate;\n }\n\n if (meta.frameRate !== undefined) {\n var fps_den = meta.frameRate.fps_den;\n var fps_num = meta.frameRate.fps_num;\n meta.refSampleDuration = meta.timescale * (fps_den / fps_num);\n }\n /*\n let codecArray = sps.subarray(1, 4);\n let codecString = 'avc1.';\n for (let j = 0; j < 3; j++) {\n let h = codecArray[j].toString(16);\n if (h.length < 2) {\n h = '0' + h;\n }\n codecString += h;\n }\n */\n\n\n meta.codec = codecString;\n var mi = _this._mediaInfo;\n mi.width = meta.codecWidth;\n mi.height = meta.codecHeight;\n\n if (meta.frameRate !== undefined) {\n mi.fps = meta.frameRate.fps;\n }\n\n mi.profile = meta.profile;\n mi.level = meta.level;\n mi.refFrames = config.ref_frames;\n mi.chromaFormat = config.chroma_format_string;\n mi.sarNum = meta.sarRatio.width;\n mi.sarDen = meta.sarRatio.height;\n mi.videoCodec = codecString;\n\n if (mi.hasAudio) {\n if (mi.audioCodec != null) {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.videoCodec + ',' + mi.audioCodec + '\"';\n }\n } else {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.videoCodec + '\"';\n }\n\n if (mi.isComplete()) {\n _this._onMediaInfo(mi);\n }\n } //==========================================================\n\n /*\n if (debug && avcSample) {\n avcSample.debug += 'SPS ';\n }\n if (!track.sps) {\n expGolombDecoder = new ExpGolomb(unit.data);\n let config = expGolombDecoder.readSPS();\n track.width = config.width;\n track.height = config.height;\n track.pixelRatio = config.pixelRatio;\n track.sps = [unit.data];\n track.duration = this._duration;\n let codecarray = unit.data.subarray(1, 4);\n let codecstring = 'avc1.';\n for (i = 0; i < 3; i++) {\n let h = codecarray[i].toString(16);\n if (h.length < 2) {\n h = '0' + h;\n }\n codecstring += h;\n }\n track.codec = codecstring;\n }\n */\n\n\n break;\n // PPS\n\n case 8:\n push = true;\n _this.findKeyframe = false; //���ҵ��ؼ�֡\n //console.log(\"found PPS\");\n\n if (_this._AVC_PPS == null) {\n _this._AVC_PPS = new Uint8Array(unit.data.length + 4);\n\n _this._AVC_PPS.set(_this._StartCode, 0);\n\n _this._AVC_PPS.set(unit.data, 4);\n }\n\n if (!_this._initVideoMetadata) {\n _this._initVideoMetadata = true;\n var _meta = _this._videoMetadata;\n\n if (_meta.avcc == null) {\n /*\n var version = v.getUint8(0); // configurationVersion\n var avcProfile = v.getUint8(1); // avcProfileIndication\n var profileCompatibility = v.getUint8(2); // profile_compatibility\n var avcLevel = v.getUint8(3); // AVCLevelIndication\n */\n var datOffset = 0;\n var dataSize = 5 + 1 + 2 + (_this._AVC_SPS.length - 4) + 1 + 2 + (_this._AVC_PPS.length - 4);\n _meta.avcc = new Uint8Array(dataSize + 1);\n _meta.avcc[0] = 1;\n _meta.avcc[1] = _this._AVC_SPS[4 + 1];\n _meta.avcc[2] = _this._AVC_SPS[4 + 2];\n _meta.avcc[3] = _this._AVC_SPS[4 + 3];\n _meta.avcc[4] = 255; //this._AVC_SPS[4 + 4];\n\n _meta.avcc[5] = 225;\n datOffset = 6;\n var sps = new Uint8Array();\n _meta.avcc[datOffset++] = _this._AVC_SPS.length - 4 >> 8;\n _meta.avcc[datOffset++] = _this._AVC_SPS.length - 4 & 0xFF;\n\n var datSps = _this._AVC_SPS.subarray(4, _this._AVC_SPS.length);\n\n _meta.avcc.set(datSps, datOffset);\n\n datOffset += datSps.length;\n _meta.avcc[datOffset++] = 1; //pps����\n\n _meta.avcc[datOffset++] = _this._AVC_PPS.length - 4 >> 8;\n _meta.avcc[datOffset++] = _this._AVC_PPS.length - 4 & 0xFF;\n\n var datPps = _this._AVC_PPS.subarray(4, _this._AVC_PPS.length);\n\n _meta.avcc.set(datPps, datOffset);\n\n datOffset += datPps.length;\n _meta.avcc[dataSize] = 1;\n } //console.log(\"meta.avcc: \" + meta.avcc);\n\n\n _this._onTrackMetadata('video', _meta); //meta.avcc = new Uint8Array(dataSize);\n //meta.avcc.set(new Uint8Array(arrayBuffer, dataOffset, dataSize), 0);\n //Log.v(this.TAG, 'Parsed AVCDecoderConfigurationRecord');\n\n /*\n if (this._isInitialMetadataDispatched()) {\n // flush parsed frames\n if (this._dispatch && (this._audioTrack.length || this._videoTrack.length)) {\n //this._onDataAvailable(this._audioTrack, this._videoTrack);\n }\n } else {\n this._videoInitialMetadataDispatched = true;\n }\n */\n // notify new metadata\n //this._dispatch = false;\n //this._onTrackMetadata('video', meta);\n\n }\n /*\n if (debug && avcSample) {\n avcSample.debug += 'PPS ';\n }\n if (!track.pps) {\n track.pps = [unit.data];\n }\n */\n\n\n break;\n // AUD\n\n case 9:\n push = false;\n /*\n track.audFound = true;\n if (avcSample) {\n pushAccesUnit(avcSample, track);\n }\n avcSample = this.avcSample = createAVCSample(false, pes.pts, pes.dts, debug ? 'AUD ' : '');\n */\n\n break;\n // Filler Data\n\n case 12:\n push = false;\n break;\n\n default:\n push = false;\n /*\n if (avcSample) {\n avcSample.debug += 'unknown NAL ' + unit.type + ' ';\n }\n */\n\n break;\n }\n\n if (push) {//this._videoTrack.samples.push(unit);\n //console.log(\"frame size[\" + unit.data.length + \"] :\");// + unit.data);\n //\n\n /*\n if (unit.data.length > 0) {\n var objData = {\n cmd: common.tFrameData,\n workerId: common.DOWNLOAD_WORKER_ID,\n mediaType: 1,\n codecId: 27,\n flag: last,\n pts: pes.pts,\n playTimeSec: dur,\n dat: unit.data\n };\n //self.postMessage(objData, [objData.dat.buffer]);\n }\n */\n }\n /*\n if (avcSample && push) {\n let units = avcSample.units;\n units.push(unit);\n }\n */\n\n }); // if last PES packet, push samples\n\n /*\n if (last && avcSample) {\n pushAccesUnit(avcSample, track);\n this.avcSample = null;\n }\n */\n\n var pts = (pes.pts - this.startVideoPts) / 90;\n\n if (keyframe && this.syncVideoPts < 1) {\n this.syncVideoPts = this.startVideoPts;\n }\n /*\n let pts = (pes.pts - this.lastVideoPts) / 90;\n this.currentVideoPts += pts;\n pts = this.currentVideoPts;\n //if (this.lastVideoPts == 0) this.lastVideoPts = pes.pts;\n */\n\n\n var track = this._videoTrack;\n var avcSample = {\n units: tmpUnits,\n length: tmpLength,\n //pes.len,//length,\n isKeyframe: keyframe,\n dts: pts,\n // / 90,// - this.lastVideoPts + this.accurateTimeOffset,\n cts: 0,\n //pes.pts,\n pts: pts // / 90)// - this.lastVideoPts + this.accurateTimeOffset)\n\n };\n\n if (keyframe) {\n avcSample.fileposition = this.tagPosition;\n } //console.log(\"tmpLength: \" + tmpLength + \" tagPosition: \" + this.tagPosition + \" pts[\" + avcSample.pts + \"] dts[\" + avcSample.dts + \"]\");\n //console.log(\"video pts: \" + pts);\n\n\n if (this.reset === 0 && !this.findKeyframe) {\n track.samples.push(avcSample);\n track.length += tmpLength; //pes.len;//length;\n }\n\n this.filePosition += tmpLength;\n this.accurateTimeOffset = avcSample.pts;\n this.lastVideoPts = pes.pts;\n\n if (bSetInitPts === 1) {\n this.seekVideoHistoryPts = pts;\n } //this._videoTrack.length = track.length;\n\n\n if (push) {//console.log(\"frame size: \" + );\n }\n\n if (last && this.reset === 0) {\n if (this._config.decodeType === 'auto' || this._config.decodeType === 'hard') {\n //����codecIdΪ0, ��ʾ��ʱ������, ���ص����ϲ���������ʾ\n //this._onDataAvailableToSoftwareDecodeVideo(0, this._videoTrack);\n //��mp4-remuxer.js����\n this._onDataAvailable(this._audioTrack, this._videoTrack);\n } else {\n //console.log(\"H264: Software Decode...\");\n if (this._videoTrack.samples.length > 0) {\n this._onDataAvailableToSoftwareDecodeVideo(27, this._videoTrack);\n }\n\n if (this._audioTrack.samples.length > 0) {\n this._onDataAvailableToSoftwareDecodeAudio(86018, this._audioTrack);\n }\n } //console.log(\"pushAccessUnit....\");\n\n }\n };\n\n _proto.parseHEVCPES = function parseHEVCPES(pes, last, startTimeSecs) {\n // logger.log('parse new PES');\n //console.log(\"_parseHEVCPES flag[\" + last + \"] datasize: \" + pes.data.length);\n //decodeVideoFrame(pes.data.length, pes.data);\n //this.SoftDecodeRender.decodeTest();\n //this.wasmPlayer.wasmTest();\n //var dur = 0;\n //if (this.startVideoPts > 0) {\n // dur = (pes.pts - this.startVideoPts) / 90000;\n // dur += startTimeSecs;\n // //console.log(\"dur: \" + dur);\n //}\n //else {\n // this.startVideoPts = pes.pts;\n // dur = startTimeSecs;\n // //console.log(\"dur... pes: \" + pes.pts);\n //}\n if (this.startVideoPts === 0) {\n this.startVideoPts = pes.pts; //console.log(\"startVideoPts==0: \" + this.startVideoPts);\n } else if (pes.pts < this.startVideoPts) {\n //console.log(\"pes.pts < startVideoPts: \" + this.startVideoPts + \" --> \" + pes.pts);\n this.startVideoPts = pes.pts;\n } //console.log(\"HEVC data: \" + pes.data);\n //var objData = {\n // cmd: common.tFrameData,\n // workerId: common.DOWNLOAD_WORKER_ID,\n // mediaType: 1,\n // codecId: 173,\n // flag: last,\n // pts: pes.pts,\n // playTimeSec: dur,\n // dat: pes.data\n //};\n //self.postMessage(objData, [objData.dat.buffer]);\n //console.log(\"_parseHEVCPES: startTimeSecs[\" + startTimeSecs + \"] dur[\" + dur + \"]\");\n\n\n var tmpUnits = [];\n var tmpLength = 0;\n var tmpUnit = {\n type: 1,\n data: pes.data\n };\n tmpLength += pes.data.length;\n var keyframe = 0;\n\n if (tmpLength > 32) {\n //&& this.findKeyframe) {\n var i = 0;\n\n for (i = 0; i < 32; i++) {\n if (pes.data[i] === 0 && pes.data[i + 1] === 0 && pes.data[i + 2] === 0 && pes.data[i + 3] === 1 && pes.data[i + 4] === 0x40) {\n //console.log(\"HEVC keyframe data: \" + pes.data);\n keyframe = 1;\n this.findKeyframe = false;\n /*\n let KeyframeDat = pes.data.subarray(i, pes.data.length);\n tmpUnit.data = KeyframeDat;\n tmpLength -= i;\n console.log(\"HEVC data: \" + KeyframeDat);\n */\n\n break;\n }\n } //(pes.data[11] == 0x40))\n\n }\n\n tmpUnits.push(tmpUnit);\n var pts = (pes.pts - this.startVideoPts) / 90; //console.log(\"pts: \" + pts);\n\n if (keyframe && this.syncVideoPts < 1) {\n this.syncVideoPts = this.startVideoPts; //console.log(\"startVideoPts: \" + this.startVideoPts);\n }\n\n var track = this._videoTrack;\n var avcSample = {\n units: tmpUnits,\n length: tmpLength,\n //pes.len,//length,\n isKeyframe: keyframe,\n dts: pts,\n // - this.lastVideoPts + this.accurateTimeOffset,\n cts: 0,\n //pes.pts,\n pts: pts // - this.lastVideoPts + this.accurateTimeOffset)\n\n };\n\n if (keyframe) {\n avcSample.fileposition = this.tagPosition;\n } //console.log(\"tmpLength: \" + tmpLength + \" tagPosition: \" + this.tagPosition + \" pts[\" + avcSample.pts + \"] dts[\" + avcSample.dts + \"]\");\n\n\n track.samples.push(avcSample);\n track.length += tmpLength; //pes.len;//length;\n //console.log(\"add sample to videoTrack....\");\n\n if (this._videoTrack.samples.length > 0) {\n this._onDataAvailableToSoftwareDecodeVideo(173, this._videoTrack);\n }\n\n if (this._audioTrack.samples.length > 0) {\n this._onDataAvailableToSoftwareDecodeAudio(86018, this._audioTrack);\n }\n };\n\n _proto._insertSampleInOrder = function _insertSampleInOrder(arr, data) {\n var len = arr.length;\n\n if (len > 0) {\n if (data.pts >= arr[len - 1].pts) {\n arr.push(data);\n } else {\n for (var pos = len - 1; pos >= 0; pos--) {\n if (data.pts < arr[pos].pts) {\n arr.splice(pos, 0, data);\n break;\n }\n }\n }\n } else {\n arr.push(data);\n }\n };\n\n _proto._getLastNalUnit = function _getLastNalUnit() {\n var avcSample = this.avcSample,\n lastUnit; // try to fallback to previous sample if current one is empty\n\n if (!avcSample || avcSample.units.length === 0) {\n var track = this._avcTrack,\n samples = track.samples;\n avcSample = samples[samples.length - 1];\n }\n\n if (avcSample) {\n var units = avcSample.units;\n lastUnit = units[units.length - 1];\n }\n\n return lastUnit;\n };\n\n _proto._parseAVCNALu = function _parseAVCNALu(array) {\n //let i = 0, len = array.byteLength, value, overflow, track = this._avcTrack, state = track.naluState || 0, lastState = state;\n var i = 0,\n len = array.byteLength,\n value,\n overflow,\n state = 0,\n lastState = state;\n var units = [],\n unit,\n unitType,\n lastUnitStart = -1,\n lastUnitType; // logger.log('PES:' + Hex.hexDump(array));\n\n if (state === -1) {\n // special use case where we found 3 or 4-byte start codes exactly at the end of previous PES packet\n lastUnitStart = 0; // NALu type is value read from offset 0\n\n lastUnitType = array[0] & 0x1f;\n state = 0;\n i = 1;\n }\n\n while (i < len) {\n value = array[i++]; // optimization. state 0 and 1 are the predominant case. let's handle them outside of the switch/case\n\n if (!state) {\n state = value ? 0 : 1;\n continue;\n }\n\n if (state === 1) {\n state = value ? 0 : 2;\n continue;\n } // here we have state either equal to 2 or 3\n\n\n if (!value) {\n state = 3;\n } else if (value === 1) {\n if (lastUnitStart >= 0) {\n unit = {\n data: array.subarray(lastUnitStart, i - state - 1),\n type: lastUnitType\n }; // logger.log('pushing NALU, type/size:' + unit.type + '/' + unit.data.byteLength);\n\n if (unit.type != 9) //gavin 20200602\n units.push(unit);\n } else {\n // lastUnitStart is undefined => this is the first start code found in this PES packet\n // first check if start code delimiter is overlapping between 2 PES packets,\n // ie it started in last packet (lastState not zero)\n // and ended at the beginning of this PES packet (i <= 4 - lastState)\n var lastUnit = null; //this._getLastNalUnit();\n\n if (lastUnit) {\n if (lastState && i <= 4 - lastState) {\n // start delimiter overlapping between PES packets\n // strip start delimiter bytes from the end of last NAL unit\n // check if lastUnit had a state different from zero\n if (lastUnit.state) {\n // strip last bytes\n lastUnit.data = lastUnit.data.subarray(0, lastUnit.data.byteLength - lastState);\n }\n } // If NAL units are not starting right at the beginning of the PES packet, push preceding data into previous NAL unit.\n\n\n overflow = i - state - 1;\n\n if (overflow > 0) {\n // logger.log('first NALU found with overflow:' + overflow);\n var tmp = new Uint8Array(lastUnit.data.byteLength + overflow);\n tmp.set(lastUnit.data, 0);\n tmp.set(array.subarray(0, overflow), lastUnit.data.byteLength);\n lastUnit.data = tmp;\n }\n }\n } // check if we can read unit type\n\n\n if (i < len) {\n unitType = array[i] & 0x1f; // logger.log('find NALU @ offset:' + i + ',type:' + unitType);\n\n lastUnitStart = i;\n lastUnitType = unitType;\n state = 0;\n } else {\n // not enough byte to read unit type. let's read it on next PES parsing\n state = -1;\n }\n } else {\n state = 0;\n }\n }\n\n if (lastUnitStart >= 0 && state >= 0) {\n unit = {\n data: array.subarray(lastUnitStart, len),\n type: lastUnitType,\n state: state\n };\n units.push(unit); // logger.log('pushing NALU, type/size/state:' + unit.type + '/' + unit.data.byteLength + '/' + state);\n } // no NALu found\n\n\n if (units.length === 0) {\n // append pes.data to previous NAL unit\n var _lastUnit = this._getLastNalUnit();\n\n if (_lastUnit) {\n var _tmp = new Uint8Array(_lastUnit.data.byteLength + array.byteLength);\n\n _tmp.set(_lastUnit.data, 0);\n\n _tmp.set(array, _lastUnit.data.byteLength);\n\n _lastUnit.data = _tmp;\n }\n } //track.naluState = state;\n\n\n return units;\n }\n /**\n * remove Emulation Prevention bytes from a RBSP\n */\n ;\n\n _proto.discardEPB = function discardEPB(data) {\n var length = data.byteLength,\n EPBPositions = [],\n i = 1,\n newLength,\n newData; // Find all `Emulation Prevention Bytes`\n\n while (i < length - 2) {\n if (data[i] === 0 && data[i + 1] === 0 && data[i + 2] === 0x03) {\n EPBPositions.push(i + 2);\n i += 2;\n } else {\n i++;\n }\n } // If no Emulation Prevention Bytes were found just return the original\n // array\n\n\n if (EPBPositions.length === 0) {\n return data;\n } // Create a new array to hold the NAL unit data\n\n\n newLength = length - EPBPositions.length;\n newData = new Uint8Array(newLength);\n var sourceIndex = 0;\n\n for (i = 0; i < newLength; sourceIndex++, i++) {\n if (sourceIndex === EPBPositions[0]) {\n // Skip this byte\n sourceIndex++; // Remove this position index\n\n EPBPositions.shift();\n }\n\n newData[i] = data[sourceIndex];\n }\n\n return newData;\n };\n\n _proto.parseAACPES = function parseAACPES(pes, last) {\n //console.log(\"parseAACPES...\" + pes.pts);\n //if (this.isHEVC === 1) return; //�����265�ط�,��������\n //var dur = 0;\n //if (self.startAudioPts > 0) {\n // dur = (pes.pts - self.startAudioPts) / 90000;\n // //console.log(\"dur: \" + dur);\n //}\n //else {\n // self.startAudioPts = pes.pts;\n //}\n //if (this.audioSampleRate > 0) {\n // var objData = {\n // cmd: common.tFrameData,\n // workerId: common.DOWNLOAD_WORKER_ID,\n // mediaType: 2,\n // codecId: 86018, //AAC\n // flag: last,\n // pts: pes.pts,\n // samplerate: this.audioSampleRate,\n // channelNum: this.audioChannel,\n // bitPerSample: this.audioBitPerSample,\n // playTimeSec: dur,\n // dat: pes.data\n // };\n // //self.postMessage(objData, [objData.data.buffer]);\n // //return;\n //}\n //return;\n if (this.startAudioPts === 0) {\n this.startAudioPts = pes.pts; // / 90;\n } //var audioPts = pes.pts;\n //pes.pts = pes.pts - this.startAudioPts;\n //this.startAudioPts = audioPts;\n //this.audioFrameNum++;\n //((++pPushArray -> audioFrameNo)) * ((float)(1024.0f / 44100.0f * 1000.0f));\n //this.currentAudioPts = this.audioFrameNum * (1024.0 / 44100.0 * 1000.0) + this.currentVideoPts;\n //pes.pts = this.currentAudioPts;\n\n\n var track = this._audioTrack,\n data = pes.data,\n pts = pes.pts,\n startOffset = 0,\n aacOverFlow = this.aacOverFlow,\n aacLastPTS = this.aacLastPTS,\n frameDuration,\n frameIndex,\n offset,\n stamp,\n len;\n\n if (aacOverFlow) {\n var tmp = new Uint8Array(aacOverFlow.byteLength + data.byteLength);\n tmp.set(aacOverFlow, 0);\n tmp.set(data, aacOverFlow.byteLength); // logger.log(`AAC: append overflowing ${aacOverFlow.byteLength} bytes to beginning of new PES`);\n\n data = tmp;\n } // look for ADTS header (0xFFFx)\n\n\n for (offset = startOffset, len = data.length; offset < len - 1; offset++) {\n if (_adts__WEBPACK_IMPORTED_MODULE_1__[\"isHeader\"](data, offset)) {\n break;\n }\n } // if ADTS header does not start straight from the beginning of the PES payload, raise an error\n\n\n if (offset) {\n var reason, fatal;\n\n if (offset < len - 1) {\n reason = \"AAC PES did not start with ADTS header,offset:\" + offset;\n fatal = false;\n } else {\n reason = 'no ADTS header found in AAC PES';\n fatal = true;\n }\n\n logger.warn(\"parsing error:\" + reason);\n this.observer.trigger(Event.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.FRAG_PARSING_ERROR,\n fatal: fatal,\n reason: reason\n });\n\n if (fatal) {\n return;\n }\n }\n\n if (this.audioSampleRate < 1) {\n var config = _adts__WEBPACK_IMPORTED_MODULE_1__[\"initTrackConfig\"](data, offset, this.audioCodec);\n\n if (config) {\n this.audioSampleRate = config.samplerate;\n this.audioChannel = config.channelCount;\n this.audioBitPerSample = 16; //==============================================\n\n if (!this._initAudioMetadata) {\n this._initAudioMetadata = true;\n var meta = this._audioMetadata;\n var _track2 = this._audioTrack;\n\n if (!meta) {\n // initial metadata\n meta = this._audioMetadata = {};\n meta.type = 'audio';\n meta.id = _track2.id;\n meta.timescale = 1000; //this._timescale;\n\n meta.duration = 0; //this._duration;\n\n meta.audioSampleRate = this.audioSampleRate;\n meta.channelCount = this.audioChannel;\n } //let aacData = FlvDemuxer._parseAACAudioData(arrayBuffer, dataOffset + 1, dataSize - 1);\n //if (aacData == undefined) {\n // return 0;\n //}\n //if (aacData.packetType === 0) { // AAC sequence header (AudioSpecificConfig)\n\n\n if (meta.config) {\n Log.w(this.TAG, 'Found another AudioSpecificConfig!');\n }\n\n var misc = config.config;\n meta.audioSampleRate = config.samplerate;\n meta.channelCount = config.channelCount;\n meta.codec = config.codec;\n meta.originalCodec = config.originalCodec;\n meta.config = config.config; // The decode result of an aac sample is 1024 PCM samples\n\n meta.refSampleDuration = 1024 / meta.audioSampleRate * meta.timescale; //Log.v(this.TAG, 'Parsed AudioSpecificConfig');\n //console.log(\"AAC: \" + meta.audioSampleRate + \" \" + meta.channelCount + \" \" + meta.codec + \" \" + meta.config);\n\n this._SampleRate = config.samplerate;\n this._ChannelNum = config.channelCount;\n\n this._onDataAvailable(this._audioTrack, this._videoTrack);\n /*\n if (this._isInitialMetadataDispatched()) {\n // Non-initial metadata, force dispatch (or flush) parsed frames to remuxer\n if (this._dispatch && (this._audioTrack.length || this._videoTrack.length)) {\n this._onDataAvailable(this._audioTrack, this._videoTrack);\n }\n } else {\n this._audioInitialMetadataDispatched = true;\n }\n // then notify new metadata\n this._dispatch = false;\n */\n\n\n this._onTrackMetadata('audio', meta);\n\n var mi = this._mediaInfo;\n mi.audioCodec = meta.originalCodec;\n mi.audioSampleRate = meta.audioSampleRate;\n mi.audioChannelCount = meta.channelCount;\n\n if (mi.hasVideo) {\n if (mi.videoCodec != null) {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.videoCodec + ',' + mi.audioCodec + '\"';\n }\n } else {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.audioCodec + '\"';\n }\n\n if (mi.isComplete()) {\n this._onMediaInfo(mi);\n } //}\n\n } //==============================================\n\n }\n } //return;\n\n\n frameIndex = 0;\n frameDuration = _adts__WEBPACK_IMPORTED_MODULE_1__[\"getFrameDuration\"](this.audioSampleRate); // if last AAC frame is overflowing, we should ensure timestamps are contiguous:\n // first sample PTS should be equal to last sample PTS + frameDuration\n\n if (aacOverFlow && aacLastPTS) {\n var newPTS = aacLastPTS + frameDuration;\n\n if (Math.abs(newPTS - pts) > 1) {\n console.log(\"AAC: align PTS for overlapping frames by \" + Math.round((newPTS - pts) / 90));\n pts = newPTS;\n }\n } // scan for aac samples\n\n\n while (offset < len) {\n if (_adts__WEBPACK_IMPORTED_MODULE_1__[\"isHeader\"](data, offset) && offset + 5 < len) {\n var frame = _adts__WEBPACK_IMPORTED_MODULE_1__[\"appendFrame\"](this.audioSampleRate, data, offset, pts, frameIndex);\n\n if (frame) {\n // logger.log(`${Math.round(frame.sample.pts)} : AAC`);\n //var objData = {\n // cmd: common.tFrameData,\n // workerId: common.DOWNLOAD_WORKER_ID,\n // mediaType: 2,\n // codecId: 86018, //AAC\n // flag: last,\n // pts: pes.pts,\n // samplerate: this.audioSampleRate,\n // channelNum: this.audioChannel,\n // bitPerSample: this.audioBitPerSample,\n // playTimeSec: dur,\n // dat: frame.sample.unit\n //};\n //self.postMessage(objData, [objData.dat.buffer]);\n //this.audioFrameNum++;\n //this.currentAudioPts = Math.floor(this.audioFrameNum * (1024.0 / 44100.0 * 1000.0) + this.currentVideoPts);\n //pes.pts = this.currentAudioPts;\n //pts = pes.pts;\n //gavin\n //let dts = pes.pts;//frame.sample.pts;//this._timestampBase + tagTimestamp;\n var dts = Math.round((frame.sample.pts - this.startAudioPts) / 90); //console.log(\" audio pts: \" + dts + \" frame.sample.pts:\" + Math.round(frame.sample.pts) + \" \");\n\n var aacSample = {\n unit: frame.sample.unit,\n length: frame.length,\n dts: dts,\n pts: dts\n };\n var bProcAudio = true;\n /*\n if (this._config.decodeType === 'auto' ||\n this._config.decodeType === 'hard') {\n bProcAudio = true;\n }\n */\n\n if (bProcAudio && this.reset === 0 && !this.findKeyframe) {\n if (this.syncAudioPts < 1 && this.syncVideoPts > 0) {\n this.syncAudioPts = this.syncVideoPts;\n }\n\n if (this.syncAudioPts > 0) {\n track.samples.push(aacSample);\n track.length += frame.length;\n }\n }\n\n offset += frame.length;\n stamp = frame.sample.pts;\n frameIndex++;\n } else {\n // logger.log('Unable to parse AAC frame');\n break;\n }\n } else {\n // nothing found, keep looking\n offset++;\n }\n }\n\n if (offset < len) {\n aacOverFlow = data.subarray(offset, len); // logger.log(`AAC: overflow detected:${len-offset}`);\n } else {\n aacOverFlow = null;\n }\n\n this.aacOverFlow = aacOverFlow;\n this.aacLastPTS = stamp;\n };\n\n _proto.parseMPEGPES = function parseMPEGPES(pes) {\n var data = pes.data;\n var length = data.length;\n var frameIndex = 0;\n var offset = 0;\n var pts = pes.pts;\n\n while (offset < length) {\n if (MpegAudio.isHeader(data, offset)) {\n var frame = MpegAudio.appendFrame(this._audioTrack, data, offset, pts, frameIndex);\n\n if (frame) {\n offset += frame.length;\n frameIndex++;\n } else {\n // logger.log('Unable to parse Mpeg audio frame');\n break;\n }\n } else {\n // nothing found, keep looking\n offset++;\n }\n }\n } // feed incoming data to the front of the parsing pipeline\n ;\n\n _proto.append = function append(data, datasize, startTimeSecs) {\n //console.log(\"append data to demuxer.js: \" + datasize);\n if (data == null) {\n return;\n }\n\n datasize = data.length;\n\n if (this.reset === 1) {\n return;\n }\n\n var start,\n len = datasize,\n stt,\n pid,\n atf,\n offset,\n pes,\n pmtId,\n unknownPIDs = false;\n var avcId = -1,\n audioId = -1,\n id3Id = -1,\n avcData = this.avcTrackPesData,\n audioData = this.audioTrackPesData,\n id3Data = this.id3TrackPesData,\n pmtParsed = false;\n var currentPlayTimeMsec = 0;\n\n var syncOffset = TSDemuxer._syncOffset(data); // don't parse last TS packet if incomplete\n\n\n len -= (len + syncOffset) % 188; // loop through TS packets\n\n for (start = syncOffset; start < len; start += 188) {\n if (data[start] === 0x47) {\n stt = !!(data[start + 1] & 0x40); // pid is a 13-bit field starting at the last bit of TS[1]\n\n pid = ((data[start + 1] & 0x1f) << 8) + data[start + 2];\n atf = (data[start + 3] & 0x30) >> 4; // if an adaption field is present, its length is specified by the fifth byte of the TS packet header.\n\n if (atf > 1) {\n offset = start + 5 + data[start + 4]; // continue if there is only adaptation field\n\n if (offset === start + 188) {\n continue;\n }\n } else {\n offset = start + 4;\n }\n\n switch (pid) {\n case avcId:\n if (stt) {\n if (avcData && (pes = this.parsePES(avcData))) {\n //parseAVCPES(pes, false);\n if (this.isHEVC == 1) {\n currentPlayTimeMsec = this.parseHEVCPES(pes, false, startTimeSecs);\n } else {\n currentPlayTimeMsec = this.parseAVCPES(pes, false, startTimeSecs); //parseAVCPES(pes, false);\n }\n }\n\n avcData = {\n data: [],\n size: 0\n };\n }\n\n if (avcData) {\n avcData.data.push(data.subarray(offset, start + 188));\n avcData.size += start + 188 - offset;\n }\n\n break;\n\n case audioId:\n if (stt) {\n if (audioData && (pes = this.parsePES(audioData))) {\n if (this.isAAC) {\n this.parseAACPES(pes, false);\n } else {\n this.parseMPEGPES(pes);\n }\n }\n\n audioData = {\n data: [],\n size: 0\n };\n }\n\n if (audioData) {\n audioData.data.push(data.subarray(offset, start + 188));\n audioData.size += start + 188 - offset;\n }\n\n break;\n\n case id3Id:\n if (stt) {\n if (id3Data && (pes = this.parsePES(id3Data))) {\n parseID3PES(pes);\n }\n\n id3Data = {\n data: [],\n size: 0\n };\n }\n\n if (id3Data) {\n id3Data.data.push(data.subarray(offset, start + 188));\n id3Data.size += start + 188 - offset;\n }\n\n break;\n\n case 0:\n if (stt) {\n offset += data[offset] + 1;\n }\n\n pmtId = this.parsePAT(data, offset);\n break;\n\n case pmtId:\n if (stt) {\n offset += data[offset] + 1;\n }\n\n var parsedPIDs = this.parsePMT(data, offset, false, false); // only update track id if track PID found while parsing PMT\n // this is to avoid resetting the PID to -1 in case\n // track PID transiently disappears from the stream\n // this could happen in case of transient missing audio samples for example\n // NOTE this is only the PID of the track as found in TS,\n // but we are not using this for MP4 track IDs.\n\n avcId = parsedPIDs.avc; //gavin\n\n if (parsedPIDs.hevc > 0) {\n avcId = parsedPIDs.hevc;\n this.isHEVC = 1; //console.log(\"parsePMT hevcId: \" + avcId);\n }\n\n if (avcId > 0) {\n this.avcTrackPid = avcId;\n } //�ص����ϲ�, �л�����\n\n\n if (!this._callbackInitFlag && this._callbackMediaDataFunc) {\n this._callbackInitFlag = true;\n\n if (this.isHEVC === 1) {//this._callbackMediaDataFunc(this._callbackMediaDataUserPtr, true, 1, 0, 0, null, 0, 0, 0, 0);\n } else {\n if (this._config.decodeType === 'auto' || this._config.decodeType === 'hard') {\n this._callbackMediaDataFunc(this._callbackMediaDataUserPtr, false, 1, 0, 0, null, 0, 0, 0, 0);\n } else {//this._callbackMediaDataFunc(this._callbackMediaDataUserPtr, true, 1, 0, 0, null, 0, 0, 0, 0);\n }\n }\n }\n\n audioId = parsedPIDs.audio;\n\n if (audioId > 0) {\n this.audioTrackPid = audioId;\n this.isAAC = parsedPIDs.isAAC; //console.log(\"audioId:\" + audioId + \" aac:\" + this.isAAC);\n }\n\n id3Id = parsedPIDs.id3;\n\n if (id3Id > 0) {\n this.id3TrackPid = id3Id;\n }\n\n if (unknownPIDs && !pmtParsed) {\n console.log('reparse from beginning');\n unknownPIDs = false; // we set it to -188, the += 188 in the for loop will reset start to 0\n\n start = syncOffset - 188;\n } //pmtParsed = this.pmtParsed = true;\n\n\n pmtParsed = true;\n break;\n\n case 17:\n case 0x1fff:\n break;\n\n default:\n unknownPIDs = true;\n break;\n }\n } else {\n console.log('parse error... reason: \\'TS packet did not start with 0x47\\''); //this.observer.trigger(Event.ERROR, { type: ErrorTypes.MEDIA_ERROR, details: ErrorDetails.FRAG_PARSING_ERROR, fatal: false, reason: 'TS packet did not start with 0x47' });\n }\n } // try to parse last PES packets\n\n\n if (avcData && (pes = this.parsePES(avcData))) {\n //gavin\n //parseAVCPES(pes, true);\n if (this.isHEVC == 1) {\n currentPlayTimeMsec = this.parseHEVCPES(pes, true, startTimeSecs);\n } else {\n currentPlayTimeMsec = this.parseAVCPES(pes, true, startTimeSecs); //parseAVCPES(pes, true);\n }\n\n this.avcTrackPesData = null;\n } else {\n // either avcData null or PES truncated, keep it for next frag parsing\n this.avcTrackPesData = avcData;\n }\n\n if (audioData && (pes = this.parsePES(audioData))) {\n if (this.isAAC) {\n this.parseAACPES(pes, true);\n } else {\n this.parseMPEGPES(pes);\n }\n\n this.audioTrackPesData = null;\n } else {\n if (audioData && audioData.size) {\n logger.log('last AAC PES packet truncated,might overlap between fragments');\n } // either audioData null or PES truncated, keep it for next frag parsing\n\n\n this.audioTrackPesData = audioData;\n }\n\n if (id3Data && (pes = this.parsePES(id3Data))) {\n parseID3PES(pes);\n this.id3TrackPesData = null;\n } else {\n // either id3Data null or PES truncated, keep it for next frag parsing\n this.id3TrackPesData = id3Data;\n } //console.log(\"h265VideoSamples.length: \" + h265VideoSamples.length);\n\n };\n\n _createClass(TSDemuxer, [{\n key: \"onTrackMetadata\",\n get: function get() {\n return this._onTrackMetadata;\n },\n set: function set(callback) {\n this._onTrackMetadata = callback;\n } // prototype: function(mediaInfo: MediaInfo): void\n\n }, {\n key: \"onMediaInfo\",\n get: function get() {\n return this._onMediaInfo;\n },\n set: function set(callback) {\n this._onMediaInfo = callback;\n }\n }, {\n key: \"onMetaDataArrived\",\n get: function get() {\n return this._onMetaDataArrived;\n },\n set: function set(callback) {\n this._onMetaDataArrived = callback;\n }\n }, {\n key: \"onScriptDataArrived\",\n get: function get() {\n return this._onScriptDataArrived;\n },\n set: function set(callback) {\n this._onScriptDataArrived = callback;\n } // prototype: function(type: number, info: string): void\n\n }, {\n key: \"onError\",\n get: function get() {\n return this._onError;\n },\n set: function set(callback) {\n this._onError = callback;\n } // prototype: function(videoTrack: any, audioTrack: any): void\n\n }, {\n key: \"onDataAvailable\",\n get: function get() {\n return this._onDataAvailable;\n },\n set: function set(callback) {\n this._onDataAvailable = callback;\n } // timestamp base for output samples, must be in milliseconds\n\n }, {\n key: \"timestampBase\",\n get: function get() {\n return this._timestampBase;\n },\n set: function set(base) {\n this._timestampBase = base;\n }\n }, {\n key: \"overridedDuration\",\n get: function get() {\n return this._duration;\n } // Force-override media duration. Must be in milliseconds, int32\n ,\n set: function set(duration) {\n this._durationOverrided = true;\n this._duration = duration;\n this._mediaInfo.duration = duration;\n } // Force-override audio track present flag, boolean\n\n }, {\n key: \"overridedHasAudio\",\n set: function set(hasAudio) {\n this._hasAudioFlagOverrided = true;\n this._hasAudio = hasAudio;\n this._mediaInfo.hasAudio = hasAudio;\n } // Force-override video track present flag, boolean\n\n }, {\n key: \"overridedHasVideo\",\n set: function set(hasVideo) {\n this._hasVideoFlagOverrided = true;\n this._hasVideo = hasVideo;\n this._mediaInfo.hasVideo = hasVideo;\n }\n }]);\n\n return TSDemuxer;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (TSDemuxer);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/TSDemuxer.js?"); | ||
| 2993 | + | ||
| 2994 | +/***/ }), | ||
| 2995 | + | ||
| 2996 | +/***/ "./src/FlvPlayer/WebMediaFlvPlayer.js": | ||
| 2997 | +/*!********************************************!*\ | ||
| 2998 | + !*** ./src/FlvPlayer/WebMediaFlvPlayer.js ***! | ||
| 2999 | + \********************************************/ | ||
| 3000 | +/*! exports provided: default */ | ||
| 3001 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3002 | + | ||
| 3003 | +"use strict"; | ||
| 3004 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return WebMediaFlvPlayer; });\n/* harmony import */ var _common_webgl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/webgl */ \"./src/common/webgl.js\");\n/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/common */ \"./src/common/common.js\");\n/* harmony import */ var webworkify_webpack__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! webworkify-webpack */ \"./node_modules/webworkify-webpack/index.js\");\n/* harmony import */ var webworkify_webpack__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(webworkify_webpack__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _common_soundPlayer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/soundPlayer */ \"./src/common/soundPlayer.js\");\n/* harmony import */ var _flv_js_player_flv_player_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./flv.js/player/flv-player.js */ \"./src/FlvPlayer/flv.js/player/flv-player.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! events */ \"./node_modules/node-libs-browser/node_modules/events/events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _flv_js_player_player_events__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./flv.js/player/player-events */ \"./src/FlvPlayer/flv.js/player/player-events.js\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\n\n\n\n\n\nvar WebMediaFlvPlayer = /*#__PURE__*/function () {\n function WebMediaFlvPlayer(streamType, h5Video, h5Canvas, decodeType, callbackFunc, callbackPlayTimeFunc, callbackConnectStatusFunc, callbackUserPtr, getVideoInfoCbFunc) {\n var _this = this;\n\n this.url = '';\n this.downloadWorker = null;\n this.decodeWorker = null;\n this.renderWorker = null;\n this.audioWorker = null;\n this.printStatInfo = false;\n this.pauseDisplay = false;\n this.enableLog = false; //是否启用日志\n\n this.streamType = streamType;\n this.h5Video = h5Video;\n this.canvas = h5Canvas;\n this.flvPlayer = null;\n this.decodeType = decodeType;\n this.callbackFunc = callbackFunc;\n this.callbackPlayTimeFunc = callbackPlayTimeFunc;\n this.callbackConnectStatusFunc = callbackConnectStatusFunc;\n this.callbackUserPtr = callbackUserPtr;\n this.getVideoInfoCallbackFunc = getVideoInfoCbFunc;\n this.avQueue = [];\n this.webGLPlayer = null;\n this.soundPlayer = null;\n this.fullScreenFlag = false;\n this._statisticsInfo = null;\n this._mediaInfo = null;\n this._emitter = new events__WEBPACK_IMPORTED_MODULE_5___default.a();\n this.skipTimer = null; // 播放\n\n this.h5Video.addEventListener('play', function (e) {\n _this.manualFrameSkipping();\n }); // 暂停\n\n this.h5Video.addEventListener('pause', function (e) {\n if (_this.skipTimer) {\n clearInterval(_this.skipTimer);\n _this.skipTimer = null;\n }\n });\n } // 通过对buffered(缓冲区末尾)和currentTime(当前播放位置)的比较,发现差值大概在n秒左右,这时候就需要我们定时检测currentTime和buffered的差值\n\n\n var _proto = WebMediaFlvPlayer.prototype;\n\n _proto.manualFrameSkipping = function manualFrameSkipping() {\n var _this2 = this;\n\n if (this.streamType === 'm3u8') {\n console.log(this);\n this.getVideoInfoCallbackFunc(this.callbackUserPtr, '', '', '');\n return false;\n }\n\n if (this.skipTimer) {\n clearInterval(this.skipTimer);\n this.skipTimer = null;\n }\n\n this.skipTimer = setInterval(function () {\n if (_this2.flvPlayer && _this2.flvPlayer.buffered.length) {\n var end = _this2.flvPlayer.buffered.end(0); //获取当前buffered值\n\n\n var diff = end - _this2.flvPlayer.currentTime; //获取buffered与currentTime的差值\n\n if (diff >= 0.7) {\n //如果差值大于等于0.7 手动跳帧 这里可根据自身需求来定\n _this2.flvPlayer.currentTime = _this2.flvPlayer.buffered.end(0) - 0.3; //手动跳帧\n } else {\n _this2.flvPlayer.playbackRate = 1;\n }\n }\n }, 2000); //2000毫秒执行一次\n };\n\n _proto.destroy = function destroy() {\n if (this.webGLPlayer) {\n this.webGLPlayer.renderVideoFrame(null, 0, 0);\n }\n\n if (this.renderWorker) {\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_1__[\"tCloseStream\"]\n };\n this.renderWorker.postMessage(objData);\n }\n\n if (this.soundPlayer) {\n this.soundPlayer.destroy();\n delete this.soundPlayer;\n this.soundPlayer = null;\n }\n\n if (this.webGLPlayer) {\n this.webGLPlayer.destroy();\n }\n\n if (this.flvPlayer) {\n this.flvPlayer.destroy();\n this.flvPlayer = null;\n }\n\n if (this._emitter) {\n this._emitter.removeAllListeners();\n\n this._emitter = null;\n }\n\n if (this.skipTimer) {\n clearInterval(this.skipTimer);\n this.skipTimer = null;\n }\n };\n\n _proto.on = function on(event, listener) {\n var _this3 = this;\n\n if (event === _flv_js_player_player_events__WEBPACK_IMPORTED_MODULE_6__[\"default\"].MEDIA_INFO) {\n if (this._mediaInfo != null) {\n Promise.resolve().then(function () {\n _this3._emitter.emit(_flv_js_player_player_events__WEBPACK_IMPORTED_MODULE_6__[\"default\"].MEDIA_INFO, _this3.mediaInfo);\n });\n }\n } else if (event === _flv_js_player_player_events__WEBPACK_IMPORTED_MODULE_6__[\"default\"].STATISTICS_INFO) {\n if (this._statisticsInfo != null) {\n Promise.resolve().then(function () {\n _this3._emitter.emit(_flv_js_player_player_events__WEBPACK_IMPORTED_MODULE_6__[\"default\"].STATISTICS_INFO, _this3.statisticsInfo);\n });\n }\n }\n\n this._emitter.addListener(event, listener);\n };\n\n _proto.off = function off(event, listener) {\n this._emitter.removeListener(event, listener);\n };\n\n _proto.logD = function logD(strLog) {\n if (this.enableLog) {\n console.log('FlvPlayer: ' + strLog);\n }\n };\n\n _proto.createDecodeWorker = function createDecodeWorker() {\n this.logD('create decode worker...');\n this.decodeWorker = undefined;\n\n if (typeof Worker !== 'undefined') {\n var w;\n\n try {\n w = this.decodeWorker = webworkify_webpack__WEBPACK_IMPORTED_MODULE_2__(/*require.resolve*/(/*! ../common/DecodeWorker.js */ \"./src/common/DecodeWorker.js\"));\n this.onwmsg = this.onWorkerMessage.bind(this);\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_1__[\"tOpenStream\"],\n url: _common_common__WEBPACK_IMPORTED_MODULE_1__[\"getFullURL\"](),\n isFlv: true\n };\n w.postMessage(objData);\n w.addEventListener('message', this.onwmsg);\n\n w.onerror = function (event) {};\n } catch (err) {\n //logger.warn('Error in worker:', err);\n //logger.error('Error while initializing DemuxerWorker, fallback on DemuxerInline');\n console.log('Create Decode Worker fail: ' + err);\n\n if (w) {// revoke the Object URL that was used to create demuxer worker, so as not to leak it\n //global.URL.revokeObjectURL(w.objectURL);\n }\n\n this.w = undefined;\n }\n } else {}\n } //创建音频播放线程\n ;\n\n _proto.createAudioWorker = function createAudioWorker() {\n this.logD('create audio play worker...');\n this.audioWorker = undefined;\n\n if (typeof Worker !== 'undefined') {\n var w;\n\n try {\n w = this.audioWorker = webworkify_webpack__WEBPACK_IMPORTED_MODULE_2__(/*require.resolve*/(/*! ./AudioWorker.js */ \"./src/FlvPlayer/AudioWorker.js\"));\n this.onwmsg = this.onWorkerMessage.bind(this);\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_1__[\"tOpenStream\"]\n };\n w.postMessage(objData);\n w.addEventListener('message', this.onwmsg);\n\n w.onerror = function (event) {};\n } catch (err) {\n console.log('Create audio Worker fail: ' + err);\n this.audioWorker = undefined;\n }\n } else {\n console.log('Unsupport worker...');\n } //如果音频播放线程创建失败, 则在主线程中播放\n\n\n if (this.audioWorker === undefined) {}\n };\n\n _proto.decodeAndDisplayLoop = function decodeAndDisplayLoop() {\n if (this.avQueue.length < 1) return;\n\n while (this.avQueue.length > 0) {\n var frame = this.avQueue[0];\n this.avQueue.shift();\n }\n };\n\n _proto.play = function play(url, startPlayTimeSecs) {\n var _this4 = this;\n\n // 非暂停状态时, 为开始播放\n if (!this.pauseDisplay) {\n this.url = url;\n\n if (this.flvPlayer == null) {\n this.flvPlayer = new _flv_js_player_flv_player_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]({\n type: this.streamType,\n isLive: true,\n url: url,\n startPlaySecs: startPlayTimeSecs,\n hasAudio: true,\n withCredentials: false\n }, {\n streamType: this.streamType,\n enableWorker: false,\n //lazyLoad: true,\n //isLive: true,\n //lazyLoad: false,\n lazyLoadMaxDuration: this.streamType === 'flv' || this.streamType === 'rtsp' ? 2 : 3 * 60,\n //3 * 60,\n lazyLoadRecoverDuration: this.streamType === 'flv' || this.streamType === 'rtsp' ? 1 : 30,\n //30,\n deferLoadAfterSourceOpen: true,\n //true,\n // autoCleanupSourceBuffer: default as false, leave unspecified\n //autoCleanupSourceBuffer: false,\n autoCleanupMaxBackwardDuration: this.streamType === 'flv' || this.streamType === 'rtsp' ? 12 : 3 * 60,\n //3 * 60,\n autoCleanupMinBackwardDuration: this.streamType === 'flv' || this.streamType === 'rtsp' ? 8 : 2 * 60,\n //2 * 60,\n //statisticsInfoReportInterval: 5,\t//600,\n //fixAudioTimestampGap: true,\t//false,\t//true,\n seekType: 'range',\n enableStashBuffer: false,\n //this.decodeType === 'soft' ? false : (this.streamType === 'flv' ? true : false),\t\t\t//启用缓存 当下面的decodeType为soft, 或流为HLS时, 此处需设置为false\n decodeType: this.decodeType //'auto',\t\t\t\t\t//解码方式: auto, soft\n\n }); //this.h5Video.url = url;\n\n if (this.streamType === 'flv' || this.streamType === 'rtsp') {\n _common_common__WEBPACK_IMPORTED_MODULE_1__[\"setLiveStreamType\"](true);\n }\n }\n\n this.flvPlayer.setCallback(this.callbackFunc, this.callbackPlayTimeFunc, this.callbackConnectStatusFunc, this.callbackUserPtr, this.getVideoInfoCallbackFunc);\n this.flvPlayer.attachMediaElement(this.h5Video, this.canvas);\n this.flvPlayer.load();\n this.flvPlayer.play(); //this.createRenderWorker();\t\t//创建显示线程\n //this.createDownloadWorker();\t//创建拉流线程\n //this.createDecodeWorker();\n //this.createAudioWorker();\t\t//创建音频播放线程\n\n this.flvPlayer.on('statistics_info', function (res) {\n _this4._statisticsInfo = res;\n\n _this4._emitter.emit(_flv_js_player_player_events__WEBPACK_IMPORTED_MODULE_6__[\"default\"].STATISTICS_INFO, res);\n });\n } else {\n this.resume();\n }\n\n return true;\n };\n\n _proto.stop = function stop() {\n this.pauseDisplay = false;\n this.destroy();\n return true;\n };\n\n _proto.isPause = function isPause() {\n return this.pauseDisplay;\n };\n\n _proto.pause = function pause() {\n this.pauseDisplay = true;\n\n if (this.flvPlayer) {\n this.flvPlayer.pause();\n }\n };\n\n _proto.resume = function resume() {\n this.pauseDisplay = false;\n\n if (this.flvPlayer) {\n this.flvPlayer.resume();\n }\n };\n\n _proto.rtspScale = function rtspScale(scaleValue, ptsInterval) {\n if (this.flvPlayer) {\n this.flvPlayer.rtspScale(scaleValue, ptsInterval);\n }\n };\n\n _proto.seek = function seek(seekValue, seekType) {\n this.pauseDisplay = false;\n\n if (this.flvPlayer) {\n this.flvPlayer.seek(seekValue, seekType);\n }\n };\n\n _proto.setTrack = function setTrack(timeTrack, timeLabel) {};\n\n _proto.openAudio = function openAudio() {\n if (this.flvPlayer) {\n return this.flvPlayer.openAudio();\n }\n\n return false;\n };\n\n _proto.closeAudio = function closeAudio() {\n if (this.flvPlayer) {\n return this.flvPlayer.closeAudio();\n }\n\n return false;\n };\n\n _proto.openStatinfo = function openStatinfo() {\n this.printStatInfo = true;\n return true;\n };\n\n _proto.closeStatinfo = function closeStatinfo() {\n this.printStatInfo = false;\n return true;\n };\n\n _proto.snapshot = function snapshot() {\n if (this.flvPlayer && this.flvPlayer != undefined) {\n this.flvPlayer.snapshot();\n }\n };\n\n _proto.isFullScreen = function isFullScreen() {\n return this.fullScreenFlag;\n };\n\n _proto.canvasFullscreen = function canvasFullscreen() {\n var canvas = this.canvas;\n\n if (canvas.RequestFullScreen) {\n canvas.RequestFullScreen();\n } else if (canvas.webkitRequestFullScreen) {\n canvas.webkitRequestFullScreen();\n } else if (canvas.mozRequestFullScreen) {\n canvas.mozRequestFullScreen();\n } else if (canvas.msRequestFullscreen) {\n canvas.msRequestFullscreen();\n } else {\n _common_common__WEBPACK_IMPORTED_MODULE_1__[\"MediaWorkerLog\"]('This browser doesn\\'t supporter fullscreen');\n }\n };\n\n _proto.canvasExitFullscreen = function canvasExitFullscreen() {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n } else {\n _common_common__WEBPACK_IMPORTED_MODULE_1__[\"MediaWorkerLog\"]('Exit fullscreen doesn\\'t work');\n }\n };\n\n _proto.fullscreen = function fullscreen(enable) {\n if (enable == 1) {\n if (!this.fullScreenFlag) {\n this.canvasFullscreen();\n this.fullScreenFlag = true;\n return true;\n }\n } else {\n if (this.fullScreenFlag) {\n this.canvasExitFullscreen();\n this.fullScreenFlag = false;\n return true;\n }\n }\n\n return false;\n };\n\n _createClass(WebMediaFlvPlayer, [{\n key: \"mediaInfo\",\n get: function get() {\n return Object.assign({}, this._mediaInfo);\n }\n }, {\n key: \"statisticsInfo\",\n get: function get() {\n return Object.assign({}, this._statisticsInfo);\n }\n }]);\n\n return WebMediaFlvPlayer;\n}();\n\n\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/WebMediaFlvPlayer.js?"); | ||
| 3005 | + | ||
| 3006 | +/***/ }), | ||
| 3007 | + | ||
| 3008 | +/***/ "./src/FlvPlayer/adts.js": | ||
| 3009 | +/*!*******************************!*\ | ||
| 3010 | + !*** ./src/FlvPlayer/adts.js ***! | ||
| 3011 | + \*******************************/ | ||
| 3012 | +/*! exports provided: getAudioConfig, isHeaderPattern, getHeaderLength, getFullFrameLength, isHeader, probe, initTrackConfig, getFrameDuration, parseFrameHeader, appendFrame */ | ||
| 3013 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3014 | + | ||
| 3015 | +"use strict"; | ||
| 3016 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAudioConfig\", function() { return getAudioConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isHeaderPattern\", function() { return isHeaderPattern; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getHeaderLength\", function() { return getHeaderLength; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFullFrameLength\", function() { return getFullFrameLength; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isHeader\", function() { return isHeader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"probe\", function() { return probe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initTrackConfig\", function() { return initTrackConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFrameDuration\", function() { return getFrameDuration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseFrameHeader\", function() { return parseFrameHeader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"appendFrame\", function() { return appendFrame; });\n/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/common */ \"./src/common/common.js\");\n/**\n * ADTS parser helper\n * @link https://wiki.multimedia.cx/index.php?title=ADTS\n */\n//import { logger } from '../utils/logger';\n//import { ErrorTypes, ErrorDetails } from '../errors';\n//import Event from '../events';\n//import { getSelfScope } from './get-self-scope';\n\nfunction getAudioConfig(data, offset, audioCodec) {\n var adtsObjectType,\n // :int\n adtsSampleingIndex,\n // :int\n adtsExtensionSampleingIndex,\n // :int\n adtsChanelConfig,\n // :int\n config,\n userAgent = navigator.userAgent.toLowerCase(),\n manifestCodec = audioCodec,\n adtsSampleingRates = [96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350]; // byte 2\n\n adtsObjectType = ((data[offset + 2] & 0xC0) >>> 6) + 1;\n adtsSampleingIndex = (data[offset + 2] & 0x3C) >>> 2;\n\n if (adtsSampleingIndex > adtsSampleingRates.length - 1) {\n //observer.trigger(Event.ERROR, { type: ErrorTypes.MEDIA_ERROR, details: ErrorDetails.FRAG_PARSING_ERROR, fatal: true, reason: `invalid ADTS sampling index:${adtsSampleingIndex}` });\n console.log('ADTS parse fail. reason: \\'invalid ADTS sampling index:${adtsSampleingIndex}\\'');\n return;\n }\n\n adtsChanelConfig = (data[offset + 2] & 0x01) << 2; // byte 3\n\n adtsChanelConfig |= (data[offset + 3] & 0xC0) >>> 6; //logger.log(`manifest codec:${audioCodec},ADTS data:type:${adtsObjectType},sampleingIndex:${adtsSampleingIndex}[${adtsSampleingRates[adtsSampleingIndex]}Hz],channelConfig:${adtsChanelConfig}`);\n // firefox: freq less than 24kHz = AAC SBR (HE-AAC)\n\n if (/firefox/i.test(userAgent)) {\n if (adtsSampleingIndex >= 6) {\n adtsObjectType = 5;\n config = new Array(4); // HE-AAC uses SBR (Spectral Band Replication) , high frequencies are constructed from low frequencies\n // there is a factor 2 between frame sample rate and output sample rate\n // multiply frequency by 2 (see table below, equivalent to substract 3)\n\n adtsExtensionSampleingIndex = adtsSampleingIndex - 3;\n } else {\n adtsObjectType = 2;\n config = new Array(2);\n adtsExtensionSampleingIndex = adtsSampleingIndex;\n } // Android : always use AAC\n\n } else if (userAgent.indexOf('android') !== -1) {\n adtsObjectType = 2;\n config = new Array(2);\n adtsExtensionSampleingIndex = adtsSampleingIndex;\n } else {\n /* for other browsers (Chrome/Vivaldi/Opera ...)\n always force audio type to be HE-AAC SBR, as some browsers do not support audio codec switch properly (like Chrome ...)\n */\n adtsObjectType = 5;\n config = new Array(4); // if (manifest codec is HE-AAC or HE-AACv2) OR (manifest codec not specified AND frequency less than 24kHz)\n\n if (audioCodec && (audioCodec.indexOf('mp4a.40.29') !== -1 || audioCodec.indexOf('mp4a.40.5') !== -1) || !audioCodec && adtsSampleingIndex >= 6) {\n // HE-AAC uses SBR (Spectral Band Replication) , high frequencies are constructed from low frequencies\n // there is a factor 2 between frame sample rate and output sample rate\n // multiply frequency by 2 (see table below, equivalent to substract 3)\n adtsExtensionSampleingIndex = adtsSampleingIndex - 3;\n } else {\n // if (manifest codec is AAC) AND (frequency less than 24kHz AND nb channel is 1) OR (manifest codec not specified and mono audio)\n // Chrome fails to play back with low frequency AAC LC mono when initialized with HE-AAC. This is not a problem with stereo.\n if (audioCodec && audioCodec.indexOf('mp4a.40.2') !== -1 && (adtsSampleingIndex >= 6 && adtsChanelConfig === 1 || /vivaldi/i.test(userAgent)) || !audioCodec && adtsChanelConfig === 1) {\n adtsObjectType = 2;\n config = new Array(2);\n }\n\n adtsExtensionSampleingIndex = adtsSampleingIndex;\n }\n }\n /* refer to http://wiki.multimedia.cx/index.php?title=MPEG-4_Audio#Audio_Specific_Config\n ISO 14496-3 (AAC).pdf - Table 1.13 — Syntax of AudioSpecificConfig()\n Audio Profile / Audio Object Type\n 0: Null\n 1: AAC Main\n 2: AAC LC (Low Complexity)\n 3: AAC SSR (Scalable Sample Rate)\n 4: AAC LTP (Long Term Prediction)\n 5: SBR (Spectral Band Replication)\n 6: AAC Scalable\n sampling freq\n 0: 96000 Hz\n 1: 88200 Hz\n 2: 64000 Hz\n 3: 48000 Hz\n 4: 44100 Hz\n 5: 32000 Hz\n 6: 24000 Hz\n 7: 22050 Hz\n 8: 16000 Hz\n 9: 12000 Hz\n 10: 11025 Hz\n 11: 8000 Hz\n 12: 7350 Hz\n 13: Reserved\n 14: Reserved\n 15: frequency is written explictly\n Channel Configurations\n These are the channel configurations:\n 0: Defined in AOT Specifc Config\n 1: 1 channel: front-center\n 2: 2 channels: front-left, front-right\n */\n // audioObjectType = profile => profile, the MPEG-4 Audio Object Type minus 1\n\n\n config[0] = adtsObjectType << 3; // samplingFrequencyIndex\n\n config[0] |= (adtsSampleingIndex & 0x0E) >> 1;\n config[1] |= (adtsSampleingIndex & 0x01) << 7; // channelConfiguration\n\n config[1] |= adtsChanelConfig << 3;\n\n if (adtsObjectType === 5) {\n // adtsExtensionSampleingIndex\n config[1] |= (adtsExtensionSampleingIndex & 0x0E) >> 1;\n config[2] = (adtsExtensionSampleingIndex & 0x01) << 7; // adtsObjectType (force to 2, chrome is checking that object type is less than 5 ???\n // https://chromium.googlesource.com/chromium/src.git/+/master/media/formats/mp4/aac.cc\n\n config[2] |= 2 << 2;\n config[3] = 0;\n }\n\n return {\n config: config,\n samplerate: adtsSampleingRates[adtsSampleingIndex],\n channelCount: adtsChanelConfig,\n codec: 'mp4a.40.' + adtsObjectType,\n manifestCodec: manifestCodec\n };\n}\nfunction isHeaderPattern(data, offset) {\n return data[offset] === 0xff && (data[offset + 1] & 0xf6) === 0xf0;\n}\nfunction getHeaderLength(data, offset) {\n return data[offset + 1] & 0x01 ? 7 : 9;\n}\nfunction getFullFrameLength(data, offset) {\n return (data[offset + 3] & 0x03) << 11 | data[offset + 4] << 3 | (data[offset + 5] & 0xE0) >>> 5;\n}\nfunction isHeader(data, offset) {\n // Look for ADTS header | 1111 1111 | 1111 X00X | where X can be either 0 or 1\n // Layer bits (position 14 and 15) in header should be always 0 for ADTS\n // More info https://wiki.multimedia.cx/index.php?title=ADTS\n if (offset + 1 < data.length && isHeaderPattern(data, offset)) {\n return true;\n }\n\n return false;\n}\nfunction probe(data, offset) {\n // same as isHeader but we also check that ADTS frame follows last ADTS frame\n // or end of data is reached\n if (isHeader(data, offset)) {\n // ADTS header Length\n var headerLength = getHeaderLength(data, offset); // ADTS frame Length\n\n var frameLength = headerLength;\n\n if (offset + 5 < data.length) {\n frameLength = getFullFrameLength(data, offset);\n }\n\n var newOffset = offset + frameLength;\n\n if (newOffset === data.length || newOffset + 1 < data.length && isHeaderPattern(data, newOffset)) {\n return true;\n }\n }\n\n return false;\n}\nfunction initTrackConfig(data, offset, audioCodec) {\n var config = getAudioConfig(data, offset, audioCodec);\n return config;\n\n if (!track.samplerate) {\n var _config = getAudioConfig(observer, data, offset, audioCodec);\n\n track.config = _config.config;\n track.samplerate = _config.samplerate;\n track.channelCount = _config.channelCount;\n track.codec = _config.codec;\n track.manifestCodec = _config.manifestCodec;\n console.log(\"parsed codec:\" + track.codec + \",rate:\" + _config.samplerate + \",nb channel:\" + _config.channelCount);\n }\n}\nfunction getFrameDuration(samplerate) {\n return 1024 * 90000 / samplerate;\n}\nfunction parseFrameHeader(data, offset, pts, frameIndex, frameDuration) {\n var headerLength, frameLength, stamp;\n var length = data.length; // The protection skip bit tells us if we have 2 bytes of CRC data at the end of the ADTS header\n\n headerLength = getHeaderLength(data, offset); // retrieve frame size\n\n frameLength = getFullFrameLength(data, offset);\n frameLength -= headerLength;\n\n if (frameLength > 0 && offset + headerLength + frameLength <= length) {\n stamp = pts + frameIndex * frameDuration; // logger.log(`AAC frame, offset/length/total/pts:${offset+headerLength}/${frameLength}/${data.byteLength}/${(stamp/90).toFixed(0)}`);\n\n return {\n headerLength: headerLength,\n frameLength: frameLength,\n stamp: stamp\n };\n }\n\n return undefined;\n}\nfunction appendFrame(samplerate, data, offset, pts, frameIndex) {\n var frameDuration = getFrameDuration(samplerate);\n var header = parseFrameHeader(data, offset, pts, frameIndex, frameDuration);\n\n if (header) {\n var stamp = header.stamp;\n var headerLength = header.headerLength;\n var frameLength = header.frameLength; // logger.log(`AAC frame, offset/length/total/pts:${offset+headerLength}/${frameLength}/${data.byteLength}/${(stamp/90).toFixed(0)}`);\n\n var aacSample = {\n unit: data.subarray(offset + headerLength, offset + headerLength + frameLength),\n pts: stamp,\n dts: stamp\n };\n /*\n var objData = {\n cmd: common.tFrameData,\n mediaType: 2,\n codecId: 86018, //AAC\n flag: 0,\n pts: stamp,\n samplerate: samplerate,\n channelNum: channel,\n bitPerSample: bitPerSample,\n playDur: frameDuration,\n data: data.subarray(offset + headerLength, offset + headerLength + frameLength)\n };\n tsDemuxerPtr.postMessage(objData, [objData.data.buffer]);\n */\n //console.log(\"audio frame size: \" + frameLength);\n //track.samples.push(aacSample);\n\n return {\n sample: aacSample,\n length: frameLength + headerLength\n };\n }\n\n return undefined;\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/adts.js?"); | ||
| 3017 | + | ||
| 3018 | +/***/ }), | ||
| 3019 | + | ||
| 3020 | +/***/ "./src/FlvPlayer/downloadTsWorker.js": | ||
| 3021 | +/*!*******************************************!*\ | ||
| 3022 | + !*** ./src/FlvPlayer/downloadTsWorker.js ***! | ||
| 3023 | + \*******************************************/ | ||
| 3024 | +/*! exports provided: default */ | ||
| 3025 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3026 | + | ||
| 3027 | +"use strict"; | ||
| 3028 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/common */ \"./src/common/common.js\");\n/* harmony import */ var _TSDemuxer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TSDemuxer */ \"./src/FlvPlayer/TSDemuxer.js\");\n/* harmony import */ var _m3u8parser_parse_stream__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./m3u8parser/parse-stream */ \"./src/FlvPlayer/m3u8parser/parse-stream.js\");\n/* harmony import */ var _m3u8parser_line_stream__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./m3u8parser/line-stream */ \"./src/FlvPlayer/m3u8parser/line-stream.js\");\n/* harmony import */ var _m3u8parser_parser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./m3u8parser/parser */ \"./src/FlvPlayer/m3u8parser/parser.js\");\n //import WebGLPlayer from './webgl';\n//import * as ffmpeg from './libffmpeg';\n\n\n\n\n\nvar memory = new WebAssembly.Memory({\n initial: 256,\n maximum: 256\n});\nvar env = {\n abortStackOverflow: function abortStackOverflow() {\n throw new Error('overflow');\n },\n table: new WebAssembly.Table({\n initial: 0,\n maximum: 0,\n element: 'anyfunc'\n }),\n tableBase: 0,\n memory: memory,\n memoryBase: 1024,\n STACKTOP: 0,\n STACK_MAX: memory.buffer.byteLength,\n abort: function abort() {}\n};\n\nvar HlsDownloaderWorker = function HlsDownloaderWorker(self) {\n self.url = '';\n self.canvas = null;\n self.webGLPlayer = null;\n self.videoSampleQueue = [];\n self.audioSampleQueue = [];\n self.videoInterval = 40;\n self.lastRenderTime = 0;\n self.intervalVal = 0;\n self.renderFrameCount = 0;\n self.requestAbort = false; //ֹͣ����\n\n self.pause = false;\n self.cbStreamData = true;\n self.reConnect = true;\n self.isLiveStream = true;\n self.seekTime = 0;\n self.totalDuration = 0;\n self.playDuration = 0;\n self.startVideoPts = 0;\n self.startAudioPts = 0;\n self.tsFileList = [];\n self.getFileIndex = 0;\n self.lastTsFile = '';\n self.isFirstFile = true;\n self.lastTsFileSequence = 0;\n self.sequenceExceptNum = 0;\n self.hlsTsPlaybackFileNo = -1; //HLS�ط��ļ����\n\n self.tsDemuxer = null;\n self.getFileCount = 100;\n self.intervalHandle = -1;\n self.intervalValue = 40;\n self.startDownloadTimeSecs = 0;\n\n var GetTSFile = function GetTSFile() {\n if (self.getFileCount++ < 1) return;\n\n if (self.pause) {\n return;\n }\n\n var tsURL = self.tsFileList[self.getFileIndex].filename;\n var xhr = new XMLHttpRequest();\n xhr.open('get', tsURL, true);\n xhr.responseType = 'arraybuffer';\n\n xhr.onreadystatechange = function () {\n if (xhr.status == 404) {\n _common_common__WEBPACK_IMPORTED_MODULE_0__[\"MediaWorkerLog\"]('current file not found. refresh list...');\n return;\n }\n\n if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) {\n var data = new Uint8Array(xhr.response);\n var startTimeSecs = 0;\n var i = 0;\n\n for (i = 0; i < self.getFileIndex; i++) {\n startTimeSecs += self.tsFileList[i].duration;\n }\n\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tFrameData\"],\n workerId: _common_common__WEBPACK_IMPORTED_MODULE_0__[\"DOWNLOAD_WORKER_ID\"],\n mediaType: 1,\n codecId: 27,\n flag: 0,\n pts: 0,\n //pes.pts,\n playTimeSec: 0,\n //dur,\n dat: data\n };\n self.postMessage(objData, [objData.dat.buffer]);\n } else {}\n };\n\n xhr.send();\n self.hlsTsPlaybackFileNo = self.getFileIndex;\n };\n\n self.addEventListener('message', function (ev) {\n var data = ev.data; // console.log('DownloaderWorker:', data);\n\n var mod = ev.data;\n\n switch (data.cmd) {\n case _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tGetTsStream\"]:\n if (data.t == 0) {\n self.tsFileList.push({\n filename: data.url,\n duration: 0\n });\n GetTSFile();\n }\n\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tPauseStream\"]:\n // self.pause = true;\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tResumeStream\"]:\n // self.pause = false;\n // GetTSFile();\n break;\n\n default:\n break;\n }\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (HlsDownloaderWorker);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/downloadTsWorker.js?"); | ||
| 3029 | + | ||
| 3030 | +/***/ }), | ||
| 3031 | + | ||
| 3032 | +/***/ "./src/FlvPlayer/downloadWorker.js": | ||
| 3033 | +/*!*****************************************!*\ | ||
| 3034 | + !*** ./src/FlvPlayer/downloadWorker.js ***! | ||
| 3035 | + \*****************************************/ | ||
| 3036 | +/*! exports provided: default */ | ||
| 3037 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3038 | + | ||
| 3039 | +"use strict"; | ||
| 3040 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/common */ \"./src/common/common.js\");\n/* harmony import */ var _TSDemuxer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TSDemuxer */ \"./src/FlvPlayer/TSDemuxer.js\");\n/* harmony import */ var _m3u8parser_parse_stream__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./m3u8parser/parse-stream */ \"./src/FlvPlayer/m3u8parser/parse-stream.js\");\n/* harmony import */ var _m3u8parser_line_stream__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./m3u8parser/line-stream */ \"./src/FlvPlayer/m3u8parser/line-stream.js\");\n/* harmony import */ var _m3u8parser_parser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./m3u8parser/parser */ \"./src/FlvPlayer/m3u8parser/parser.js\");\n //import WebGLPlayer from './webgl';\n//import * as ffmpeg from './libffmpeg';\n\n\n\n\n\nvar memory = new WebAssembly.Memory({\n initial: 256,\n maximum: 256\n});\nvar env = {\n abortStackOverflow: function abortStackOverflow() {\n throw new Error('overflow');\n },\n table: new WebAssembly.Table({\n initial: 0,\n maximum: 0,\n element: 'anyfunc'\n }),\n tableBase: 0,\n memory: memory,\n memoryBase: 1024,\n STACKTOP: 0,\n STACK_MAX: memory.buffer.byteLength,\n abort: function abort() {}\n};\n\nvar HlsDownloaderWorker = function HlsDownloaderWorker(self) {\n self.url = '';\n self.canvas = null;\n self.webGLPlayer = null;\n self.videoSampleQueue = [];\n self.audioSampleQueue = [];\n self.videoInterval = 40;\n self.lastRenderTime = 0;\n self.intervalVal = 0;\n self.renderFrameCount = 0;\n self.requestAbort = false; //ֹͣ����\n\n self.pause = false;\n self.cbStreamData = true;\n self.reConnect = true;\n self.isLiveStream = true;\n self.seekTime = 0;\n self.totalDuration = 0;\n self.playDuration = 0;\n self.startVideoPts = 0;\n self.startAudioPts = 0;\n self.tsFileList = [];\n self.getFileIndex = 0;\n self.lastTsFile = '';\n self.isFirstFile = true;\n self.lastTsFileSequence = 0;\n self.sequenceExceptNum = 0;\n self.hlsTsPlaybackFileNo = -1; //HLS�ط��ļ����\n\n self.tsDemuxer = null;\n self.getFileCount = 100;\n self.intervalHandle = -1;\n self.intervalValue = 40;\n self.startDownloadTimeSecs = 0;\n\n var resolve = function resolve(uri, baseurl) {\n if (uri.indexOf('http') >= 0) {\n return uri;\n }\n\n var tmp = baseurl;\n var offset = 0;\n var n = 0;\n\n while (n >= 0) {\n n = tmp.indexOf('/');\n\n if (n >= 0) {\n tmp = tmp.substring(n + 1);\n offset += n + 1;\n } else {\n tmp = baseurl.substring(0, offset);\n }\n }\n\n if (uri !== '') {\n return tmp + uri;\n }\n\n return tmp;\n };\n\n var GetProcessFlag = function GetProcessFlag() {\n return self.requestAbort;\n };\n\n var GetFileSequence = function GetFileSequence(TsFileName) {\n var arr = TsFileName.split('-');\n var num = arr.length;\n\n if (num > 0) {\n var tsFilename = arr[num - 1]; //console.log(\"number: \" + tsFilename);\n\n var s = tsFilename.split('.');\n\n if (s.length > 0) {\n var sequence = s[0]; //console.log(\"sequence: \" + sequence);\n\n return sequence;\n }\n }\n\n return '';\n };\n\n var stopDownload = function stopDownload() {\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tCloseStream\"],\n workerId: _common_common__WEBPACK_IMPORTED_MODULE_0__[\"DOWNLOAD_WORKER_ID\"]\n };\n self.postMessage(objData);\n self.getFileIndex = 0;\n self.hlsTsPlaybackFileNo = -1; //common.MediaWorkerLog(\"StopPlay[\" + self.url + \"].\");\n };\n\n var startDownload = function startDownload(url, openStreamFlag) {\n var size = 0;\n var status = 0;\n var reported = false;\n self.url = url;\n\n if (self._requestAbort == true) {\n stopDownload();\n return;\n }\n\n if (self.pause) {\n return;\n }\n\n if (self.totalDuration > 0 && !self.isLiveStream) {\n return;\n }\n\n var xhr = new XMLHttpRequest();\n xhr.open('get', url, true);\n xhr.responseType = 'text';\n\n xhr.onreadystatechange = function () {\n //var len = xhr.getResponseHeader(\"Content-Length\");\n //if (len) {\n // size = len;\n //}\n if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) {\n //common.MediaWorkerLog(\"get file data: \" + xhr.responseText);\n var parser = new _m3u8parser_parser__WEBPACK_IMPORTED_MODULE_4__[\"default\"]();\n parser.push(xhr.responseText);\n parser.end();\n var parsedManifest = parser.manifest;\n console.log(parsedManifest);\n\n if (parser.manifest.endList !== 'undefined' && parser.manifest.endList == true) {\n self.isLiveStream = false;\n } else {\n self.isLiveStream = true;\n } //û��ts�ļ�\n\n\n if (parsedManifest.segments.length < 1) {\n console.log('Not found ts file... waiting for reconnect...');\n var self2 = self;\n _common_common__WEBPACK_IMPORTED_MODULE_0__[\"sleep\"](3000).then(function () {\n //console.log(\"fetch-stream-loader.js::Reopen...\");\n //console.log(\"Reconnecting...\");\n startDownload(self2.url, 1);\n }); //startDownload(self.url, 1);\n\n return;\n }\n\n var i = 0,\n j = 0; //�ط�\n\n if (!self.isLiveStream) {\n //console.log(\"total: \" + parsedManifest.segments.length);\n if (self.seekTime > 0) {\n self.getFileIndex = -1;\n }\n\n for (i = 0; i < parsedManifest.segments.length; i++) {\n //console.log(\"Idx[\" + i + \"] filename:\" + parsedManifest.segments[i].uri);\n var strFilename = resolve(parsedManifest.segments[i].uri, self.url);\n var exist = 0;\n\n for (j = 0; j < self.tsFileList.length; j++) {\n if (self.tsFileList[j].filename === strFilename) {\n exist = 1;\n break;\n }\n }\n\n if (exist == 0) {\n if (self.seekTime > 0 && self.totalDuration >= self.seekTime && self.getFileIndex < 0) {\n self.getFileIndex = i;\n }\n\n var fileinfo = {\n filename: strFilename,\n duration: parsedManifest.segments[i].duration\n };\n self.totalDuration += parsedManifest.segments[i].duration;\n self.tsFileList.push(fileinfo); //console.log(\"FullURL: \" + fileinfo.filename);\n }\n }\n\n if (self.getFileIndex < 0) self.getFileIndex = 0;\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tMediaInfo\"],\n duration: self.totalDuration,\n live: self.isLiveStream,\n workerId: _common_common__WEBPACK_IMPORTED_MODULE_0__[\"DOWNLOAD_WORKER_ID\"]\n };\n self.postMessage(objData); //console.log(\"Total duration: \", self.totalDuration);\n } else {\n //ʵʱ\n if (self.lastTsFile == '') {\n //��һ���ļ�\n for (i = 0; i < parsedManifest.segments.length; i++) {\n //console.log(\"Idx[\" + i + \"] filename:\" + parsedManifest.segments[i].uri);\n var strFilename = resolve(parsedManifest.segments[i].uri, self.url);\n var fileinfo = {\n filename: strFilename,\n duration: parsedManifest.segments[i].duration\n };\n self.tsFileList.push(fileinfo);\n }\n\n var index = 0;\n\n if (parsedManifest.segments.length > 2) {\n index = parsedManifest.segments.length - 1 - 1;\n } //var strFilename = resolve(parsedManifest.segments[index].uri, self.url);\n //var fileinfo = {\n // filename: strFilename,\n // duration: parsedManifest.segments[index].duration\n //};\n //self.tsFileList.push(fileinfo);\n //self.getFileIndex = 0;\n //for (i = 0; i < parsedManifest.segments.length; i++) {\n //console.log(\"Idx[\" + i + \"] filename:\" + parsedManifest.segments[i].uri);\n //}\n\n\n self.getFileIndex = index; //��¼���һ���ļ���\n\n self.lastTsFile = parsedManifest.segments[index].uri; //console.log(\"First FullURL: \" + fileinfo.filename);\n } else {\n var index = -1;\n var procFileRet = false;\n var getLastFileRet = false;\n\n for (i = 0; i < parsedManifest.segments.length; i++) {\n //console.log(\"Idx[\" + i + \"] filename:\" + parsedManifest.segments[i].uri);\n var strFilename = resolve(parsedManifest.segments[i].uri, self.url);\n\n if (parsedManifest.segments[i].uri === self.lastTsFile) {\n index = i; //console.log(\"find last file... clear filelist...\");\n\n self.tsFileList.length = 0;\n self.tsFileList = [];\n self.getFileIndex = 0;\n continue;\n }\n\n if (index >= 0) {\n var fileinfo = {\n filename: strFilename,\n duration: parsedManifest.segments[i].duration\n };\n self.totalDuration += parsedManifest.segments[i].duration; //console.log(\"Add file to list:\" + strFilename);\n\n self.tsFileList.push(fileinfo); //��¼���һ���ļ���\n\n if (!getLastFileRet) {\n self.lastTsFile = parsedManifest.segments[i].uri;\n getLastFileRet = true;\n }\n\n continue;\n }\n\n continue;\n /*\n if (index == -1) {\n for (j = 0; j < self.tsFileList.length; j++) {\n if (self.tsFileList[j].filename === strFilename) {\n index = j;\n break;\n }\n }\n }\n if (index == -1) {\n console.log(\"WARNING: new file:\" + strFilename);\n //˵������̫��, ��ǰm3u8����û��js�л�������һ���ļ���\n var fileinfo = {\n filename: strFilename,\n duration: parsedManifest.segments[i].duration\n };\n self.totalDuration += parsedManifest.segments[i].duration;\n self.tsFileList.length = 0;\n self.tsFileList = [];\n self.tsFileList.push(fileinfo);\n self.getFileIndex = 0;\n index = i;\n //��¼���һ���ļ���\n self.lastTsFile = parsedManifest.segments[i].uri;\n procFileRet = true;\n }\n else {\n var exist = 0;\n for (j = 0; j < self.tsFileList.length; j++) {\n if (self.tsFileList[j].filename === strFilename) {\n exist = 1;\n break;\n }\n }\n if (exist == 0) {\n var fileinfo = {\n filename: strFilename,\n duration: parsedManifest.segments[i].duration\n };\n self.totalDuration += parsedManifest.segments[i].duration;\n self.tsFileList.push(fileinfo);\n //console.log(\"Last FullURL: \" + fileinfo.filename);\n //��¼���һ���ļ���\n self.lastTsFile = parsedManifest.segments[i].uri;\n procFileRet = true;\n }\n }\n */\n }\n\n if (index < 0) {\n self.tsFileList.length = 0;\n self.tsFileList = [];\n self.getFileIndex = 0;\n\n for (i = 0; i < parsedManifest.segments.length; i++) {\n var strFilename = resolve(parsedManifest.segments[i].uri, self.url);\n var fileinfo = {\n filename: strFilename,\n duration: parsedManifest.segments[i].duration\n };\n self.totalDuration += parsedManifest.segments[i].duration;\n self.tsFileList.push(fileinfo); //��¼���һ���ļ���\n\n self.lastTsFile = parsedManifest.segments[i].uri;\n } //console.log(\"not found last file... change to next file...\" + self.tsFileList[self.getFileIndex].filename);\n\n }\n\n if (!procFileRet && openStreamFlag === 1) {\n //console.log(\"play complete...\");\n //common.sleep(3000).then(() => {\n // var objData = {\n // cmd: common.tOpenStream,\n // workerId: common.DOWNLOAD_WORKER_ID\n // };\n // self.postMessage(objData);\n //})\n return;\n }\n }\n }\n\n if (self.tsFileList.length > 0 && openStreamFlag == 1) {\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tOpenStream\"],\n workerId: _common_common__WEBPACK_IMPORTED_MODULE_0__[\"DOWNLOAD_WORKER_ID\"]\n };\n self.postMessage(objData);\n }\n }\n };\n\n xhr.send();\n };\n\n var GetTSFile = function GetTSFile() {\n //console.log(\"downloadWorker.js::GetTSFile...\")\n if (self.getFileCount++ < 1) return;\n var needUpdateList = false;\n\n if (self.pause) {\n return;\n }\n\n if (self._requestAbort == true) {\n stopDownload();\n return;\n } //�ط�\n\n\n if (!self.isLiveStream) {\n if (self.getFileIndex >= self.tsFileList.length) {\n //console.log(\"Get TS File Complete... \" + self.getFileIndex + \" / \" + self.tsFileList.length);\n self.getFileIndex++;\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tGetTsComplete\"],\n workerId: _common_common__WEBPACK_IMPORTED_MODULE_0__[\"DOWNLOAD_WORKER_ID\"]\n };\n self.postMessage(objData);\n return;\n }\n } else {\n self.getFileCount = 0;\n\n if (self.getFileIndex >= self.tsFileList.length || self.getFileCount == 3) {\n //common.MediaWorkerLog(\"GetTsFile::StartDownload...1: \" + self.getFileIndex + \" / \" + self.tsFileList.length + \" getFileCount:\" + self.getFileCount);\n startDownload(self.url, 1);\n return;\n } else {\n //startDownload(self.url, 0);\n needUpdateList = true;\n }\n } //if (self.getFileIndex >= 1) {\n //console.log(\"Debug::Get TS File Complete...\");\n // return;\n //}\n\n\n var tsURL = self.tsFileList[self.getFileIndex].filename;\n\n if (self.isLiveStream) {\n var fileSequence = GetFileSequence(tsURL);\n var nSeq = parseInt(fileSequence);\n\n if (nSeq > 0 && nSeq > self.lastTsFileSequence + 1) {\n //�м䶪ʧ�ļ�, ������MSE����\n self.sequenceExceptNum++; //console.log(\"downloadWorker::sequence: \" + self.lastTsFileSequence + \" --> \" + nSeq);\n\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tResetMSE\"],\n workerId: _common_common__WEBPACK_IMPORTED_MODULE_0__[\"DOWNLOAD_WORKER_ID\"],\n fileSequence: self.sequenceExceptNum\n };\n self.postMessage(objData);\n }\n\n self.lastTsFileSequence = nSeq;\n } else {\n if (self.hlsTsPlaybackFileNo == self.getFileIndex) return;\n } //common.MediaWorkerLog(\"Get TS File... \" + self.getFileIndex + \" / \" + self.tsFileList.length + \" :\" + tsURL);\n //console.log(\"Get TS Stream...\" + self.getFileIndex + \" \" + tsURL);\n //====================================================\n\n\n var xhr = new XMLHttpRequest();\n xhr.open('get', tsURL, true);\n xhr.responseType = 'arraybuffer';\n\n xhr.onreadystatechange = function () {\n //var len = xhr.getResponseHeader(\"Content-Length\");\n //if (len) {\n // size = len;\n //}\n if (xhr.status == 404) {\n _common_common__WEBPACK_IMPORTED_MODULE_0__[\"MediaWorkerLog\"]('current file not found. refresh list...');\n startDownload(self.url, 1);\n return;\n }\n\n if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) {\n //common.MediaWorkerLog(\"get file data: \" + xhr.response.byteLength);\n var data = new Uint8Array(xhr.response);\n var startTimeSecs = 0; //if (self.seekTime > 0) {\n\n var i = 0;\n\n for (i = 0; i < self.getFileIndex; i++) {\n startTimeSecs += self.tsFileList[i].duration;\n } //self.seekTime = 0;\n //startTimeSecs = self.seekTime;\n //}\n\n\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tFrameData\"],\n workerId: _common_common__WEBPACK_IMPORTED_MODULE_0__[\"DOWNLOAD_WORKER_ID\"],\n mediaType: 1,\n codecId: 27,\n flag: 0,\n pts: 0,\n //pes.pts,\n playTimeSec: 0,\n //dur,\n dat: data\n };\n self.postMessage(objData, [objData.dat.buffer]); //==============================================================\n //������ȡ��һ��ts�ļ���ʱ\n\n if (self.intervalHandle >= 0) {\n clearInterval(self.intervalHandle);\n self.intervalHandle = -1;\n }\n\n if (!self.pause) {\n var idx = self.getFileIndex;\n\n if (idx >= 0 && idx < self.tsFileList.length) {\n self.intervalValue = self.tsFileList[idx].duration * 1000 - 600; //console.log(\"get next file time:\" + self.intervalValue);\n } else {\n self.intervalValue = 2000; //console.log(\"set default time:\" + self.intervalValue);\n } //��һ���ļ�, ����ȡ��һ��ts�ļ���ʱ����С\n\n\n if (self.isFirstFile) {\n self.isFirstFile = false;\n\n if (self.intervalValue > 900) {\n self.intervalValue -= 900;\n }\n }\n\n self.intervalHandle = setInterval(GetTSFile, self.intervalValue);\n } //==============================================================\n\n\n self.getFileCount = 100;\n self.getFileIndex++;\n\n if (self.getFileIndex >= 0 && self.getFileIndex < self.tsFileList.length) {//console.log(\"Get Next fileno: \" + self.getFileIndex + \" name:\" + self.tsFileList[self.getFileIndex].filename);\n }\n\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tGetTsStreamRsp\"],\n workerId: _common_common__WEBPACK_IMPORTED_MODULE_0__[\"DOWNLOAD_WORKER_ID\"]\n };\n self.postMessage(objData);\n\n if (needUpdateList) {\n //self.tsFileList = [];\n //self.getFileIndex = 0;\n startDownload(self.url, 0);\n return;\n }\n } else {//console.log(\"Get TS Fail: readyState:\" + xhr.readyState + \" status:\" + xhr.status);\n }\n };\n\n xhr.send();\n self.hlsTsPlaybackFileNo = self.getFileIndex; //====================================================\n };\n\n self.addEventListener('message', function (ev) {\n var data = ev.data; //console.log(\"DownloaderWorker: recv data.\");\n\n var mod = ev.data; //console.log('downloadWorker.js::event:' + data);\n\n switch (data.cmd) {\n case _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tOpenStream\"]:\n //console.log(\"download-worker.js. init... \");\n self.url = data.url;\n self.seekTime = data.time; //self.canvas = data.canvas;\n\n /*\n if (self.webGLPlayer == null)\n {\n //console.log(\"new webglplayer\");\n self.webGLPlayer = new WebGLPlayer(data.canvas);\n self.webGLPlayer.initGL({\n preserveDrawingBuffer: false\n });\n }\n console.log(\"init webgl ok.\");\n */\n\n startDownload(data.url, 1);\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tGetTsStream\"]:\n {\n if (data.t == 0) {\n //console.log(\"downloadWorker.js:: eventlistener:message:GetTsFile...\");\n GetTSFile();\n }\n /*\n else {\n let currentTime = new Date();\n var t = data.t + self.intervalValue;\n if (self.startDownloadTimeSecs > 0) {\n t -= (currentTime - self.startDownloadTimeSecs);\n }\n if (self.intervalHandle >= 0) {\n clearInterval(self.intervalHandle);\n self.intervalHandle = -1;\n }\n if (t > 1000) t -= 1000;\n //console.log(\"downloadWorker.js: GetNextTsFileTime: \" + t);\n self.intervalValue = t;\n self.intervalHandle = setInterval(GetTSFile, self.intervalValue);\n self.startDownloadTimeSecs = new Date();\n }\n */\n\n }\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tReOpenStream\"]:\n //console.log(\"downloadWorker::ReopenStream...\");\n startDownload(self.url, 1);\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tSeekStream\"]:\n var seekTimeSecs = data.time; //Ĭ��Ϊ�ⲿ��ֵ(��)\n\n if (data.type == 1) {\n //�϶�������, Ϊ�ٷֱ�, ������ת��Ϊ��\n seekTimeSecs = data.time / 100 * self.totalDuration;\n }\n\n var seekRet = false;\n var secs = 0,\n i = 0;\n\n for (i = 0; i < self.tsFileList.length; i++) {\n secs += self.tsFileList[i].duration;\n\n if (secs > seekTimeSecs) {\n //console.log(\"SeekTime:\" + seekTimeSecs + \" idx:\" + i + \" file:\" + self.tsFileList[i].filename);\n self.getFileIndex = i;\n GetTSFile();\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tSeekStream\"],\n type: data.type,\n time: seekTimeSecs\n };\n self.postMessage(objData);\n seekRet = true;\n break;\n }\n }\n\n if (!seekRet) {\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tSeekStream\"],\n type: data.type,\n time: seekTimeSecs\n };\n self.postMessage(objData);\n } //console.log(\"SeekTime: \" + seekTimeSecs);\n\n\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tPauseStream\"]:\n self.pause = true;\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tResumeStream\"]:\n //console.log(\"ResumtStream: startDownload(,1);\");\n self.pause = false;\n startDownload(self.url, 1);\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_0__[\"tCloseStream\"]:\n //console.log(\"downloadWorker:CloseStream..\");\n self._requestAbort = true;\n self.seekTime = 0;\n stopDownload();\n break;\n\n default:\n break;\n }\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (HlsDownloaderWorker);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/downloadWorker.js?"); | ||
| 3041 | + | ||
| 3042 | +/***/ }), | ||
| 3043 | + | ||
| 3044 | +/***/ "./src/FlvPlayer/exp-golomb.js": | ||
| 3045 | +/*!*************************************!*\ | ||
| 3046 | + !*** ./src/FlvPlayer/exp-golomb.js ***! | ||
| 3047 | + \*************************************/ | ||
| 3048 | +/*! exports provided: default */ | ||
| 3049 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3050 | + | ||
| 3051 | +"use strict"; | ||
| 3052 | +eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Parser for exponential Golomb codes, a variable-bitwidth number encoding scheme used by h264.\n */\n//import { logger } from '../utils/logger';\nvar ExpGolomb = /*#__PURE__*/function () {\n function ExpGolomb(data) {\n this.data = data; // the number of bytes left to examine in this.data\n\n this.bytesAvailable = data.byteLength; // the current word being examined\n\n this.word = 0; // :uint\n // the number of bits left to examine in the current word\n\n this.bitsAvailable = 0; // :uint\n } // ():void\n\n\n var _proto = ExpGolomb.prototype;\n\n _proto.loadWord = function loadWord() {\n var data = this.data,\n bytesAvailable = this.bytesAvailable,\n position = data.byteLength - bytesAvailable,\n workingBytes = new Uint8Array(4),\n availableBytes = Math.min(4, bytesAvailable);\n\n if (availableBytes === 0) {\n throw new Error('no bytes available');\n }\n\n workingBytes.set(data.subarray(position, position + availableBytes));\n this.word = new DataView(workingBytes.buffer).getUint32(0); // track the amount of this.data that has been processed\n\n this.bitsAvailable = availableBytes * 8;\n this.bytesAvailable -= availableBytes;\n } // (count:int):void\n ;\n\n _proto.skipBits = function skipBits(count) {\n var skipBytes; // :int\n\n if (this.bitsAvailable > count) {\n this.word <<= count;\n this.bitsAvailable -= count;\n } else {\n count -= this.bitsAvailable;\n skipBytes = count >> 3;\n count -= skipBytes >> 3;\n this.bytesAvailable -= skipBytes;\n this.loadWord();\n this.word <<= count;\n this.bitsAvailable -= count;\n }\n } // (size:int):uint\n ;\n\n _proto.readBits = function readBits(size) {\n var bits = Math.min(this.bitsAvailable, size),\n // :uint\n valu = this.word >>> 32 - bits; // :uint\n\n if (size > 32) {\n logger.error('Cannot read more than 32 bits at a time');\n }\n\n this.bitsAvailable -= bits;\n\n if (this.bitsAvailable > 0) {\n this.word <<= bits;\n } else if (this.bytesAvailable > 0) {\n this.loadWord();\n }\n\n bits = size - bits;\n\n if (bits > 0 && this.bitsAvailable) {\n return valu << bits | this.readBits(bits);\n } else {\n return valu;\n }\n } // ():uint\n ;\n\n _proto.skipLZ = function skipLZ() {\n var leadingZeroCount; // :uint\n\n for (leadingZeroCount = 0; leadingZeroCount < this.bitsAvailable; ++leadingZeroCount) {\n if ((this.word & 0x80000000 >>> leadingZeroCount) !== 0) {\n // the first bit of working word is 1\n this.word <<= leadingZeroCount;\n this.bitsAvailable -= leadingZeroCount;\n return leadingZeroCount;\n }\n } // we exhausted word and still have not found a 1\n\n\n this.loadWord();\n return leadingZeroCount + this.skipLZ();\n } // ():void\n ;\n\n _proto.skipUEG = function skipUEG() {\n this.skipBits(1 + this.skipLZ());\n } // ():void\n ;\n\n _proto.skipEG = function skipEG() {\n this.skipBits(1 + this.skipLZ());\n } // ():uint\n ;\n\n _proto.readUEG = function readUEG() {\n var clz = this.skipLZ(); // :uint\n\n return this.readBits(clz + 1) - 1;\n } // ():int\n ;\n\n _proto.readEG = function readEG() {\n var valu = this.readUEG(); // :int\n\n if (0x01 & valu) {\n // the number is odd if the low order bit is set\n return 1 + valu >>> 1; // add 1 to make it even, and divide by 2\n } else {\n return -1 * (valu >>> 1); // divide by two then make it negative\n }\n } // Some convenience functions\n // :Boolean\n ;\n\n _proto.readBoolean = function readBoolean() {\n return this.readBits(1) === 1;\n } // ():int\n ;\n\n _proto.readUByte = function readUByte() {\n return this.readBits(8);\n } // ():int\n ;\n\n _proto.readUShort = function readUShort() {\n return this.readBits(16);\n } // ():int\n ;\n\n _proto.readUInt = function readUInt() {\n return this.readBits(32);\n }\n /**\n * Advance the ExpGolomb decoder past a scaling list. The scaling\n * list is optionally transmitted as part of a sequence parameter\n * set and is not relevant to transmuxing.\n * @param count {number} the number of entries in this scaling list\n * @see Recommendation ITU-T H.264, Section 7.3.2.1.1.1\n */\n ;\n\n _proto.skipScalingList = function skipScalingList(count) {\n var lastScale = 8,\n nextScale = 8,\n j,\n deltaScale;\n\n for (j = 0; j < count; j++) {\n if (nextScale !== 0) {\n deltaScale = this.readEG();\n nextScale = (lastScale + deltaScale + 256) % 256;\n }\n\n lastScale = nextScale === 0 ? lastScale : nextScale;\n }\n }\n /**\n * Read a sequence parameter set and return some interesting video\n * properties. A sequence parameter set is the H264 metadata that\n * describes the properties of upcoming video frames.\n * @param data {Uint8Array} the bytes of a sequence parameter set\n * @return {object} an object with configuration parsed from the\n * sequence parameter set, including the dimensions of the\n * associated video frames.\n */\n ;\n\n _proto.readSPS = function readSPS() {\n var frameCropLeftOffset = 0,\n frameCropRightOffset = 0,\n frameCropTopOffset = 0,\n frameCropBottomOffset = 0,\n profileIdc,\n profileCompat,\n levelIdc,\n numRefFramesInPicOrderCntCycle,\n picWidthInMbsMinus1,\n picHeightInMapUnitsMinus1,\n frameMbsOnlyFlag,\n scalingListCount,\n i,\n readUByte = this.readUByte.bind(this),\n readBits = this.readBits.bind(this),\n readUEG = this.readUEG.bind(this),\n readBoolean = this.readBoolean.bind(this),\n skipBits = this.skipBits.bind(this),\n skipEG = this.skipEG.bind(this),\n skipUEG = this.skipUEG.bind(this),\n skipScalingList = this.skipScalingList.bind(this);\n readUByte();\n profileIdc = readUByte(); // profile_idc\n\n profileCompat = readBits(5); // constraint_set[0-4]_flag, u(5)\n\n skipBits(3); // reserved_zero_3bits u(3),\n\n levelIdc = readUByte(); // level_idc u(8)\n\n skipUEG(); // seq_parameter_set_id\n // some profiles have more optional data we don't need\n\n if (profileIdc === 100 || profileIdc === 110 || profileIdc === 122 || profileIdc === 244 || profileIdc === 44 || profileIdc === 83 || profileIdc === 86 || profileIdc === 118 || profileIdc === 128) {\n var chromaFormatIdc = readUEG();\n\n if (chromaFormatIdc === 3) {\n skipBits(1);\n } // separate_colour_plane_flag\n\n\n skipUEG(); // bit_depth_luma_minus8\n\n skipUEG(); // bit_depth_chroma_minus8\n\n skipBits(1); // qpprime_y_zero_transform_bypass_flag\n\n if (readBoolean()) {\n // seq_scaling_matrix_present_flag\n scalingListCount = chromaFormatIdc !== 3 ? 8 : 12;\n\n for (i = 0; i < scalingListCount; i++) {\n if (readBoolean()) {\n // seq_scaling_list_present_flag[ i ]\n if (i < 6) {\n skipScalingList(16);\n } else {\n skipScalingList(64);\n }\n }\n }\n }\n }\n\n skipUEG(); // log2_max_frame_num_minus4\n\n var picOrderCntType = readUEG();\n\n if (picOrderCntType === 0) {\n readUEG(); // log2_max_pic_order_cnt_lsb_minus4\n } else if (picOrderCntType === 1) {\n skipBits(1); // delta_pic_order_always_zero_flag\n\n skipEG(); // offset_for_non_ref_pic\n\n skipEG(); // offset_for_top_to_bottom_field\n\n numRefFramesInPicOrderCntCycle = readUEG();\n\n for (i = 0; i < numRefFramesInPicOrderCntCycle; i++) {\n skipEG();\n } // offset_for_ref_frame[ i ]\n\n }\n\n skipUEG(); // max_num_ref_frames\n\n skipBits(1); // gaps_in_frame_num_value_allowed_flag\n\n picWidthInMbsMinus1 = readUEG();\n picHeightInMapUnitsMinus1 = readUEG();\n frameMbsOnlyFlag = readBits(1);\n\n if (frameMbsOnlyFlag === 0) {\n skipBits(1);\n } // mb_adaptive_frame_field_flag\n\n\n skipBits(1); // direct_8x8_inference_flag\n\n if (readBoolean()) {\n // frame_cropping_flag\n frameCropLeftOffset = readUEG();\n frameCropRightOffset = readUEG();\n frameCropTopOffset = readUEG();\n frameCropBottomOffset = readUEG();\n }\n\n var pixelRatio = [1, 1];\n\n if (readBoolean()) {\n // vui_parameters_present_flag\n if (readBoolean()) {\n // aspect_ratio_info_present_flag\n var aspectRatioIdc = readUByte();\n\n switch (aspectRatioIdc) {\n case 1:\n pixelRatio = [1, 1];\n break;\n\n case 2:\n pixelRatio = [12, 11];\n break;\n\n case 3:\n pixelRatio = [10, 11];\n break;\n\n case 4:\n pixelRatio = [16, 11];\n break;\n\n case 5:\n pixelRatio = [40, 33];\n break;\n\n case 6:\n pixelRatio = [24, 11];\n break;\n\n case 7:\n pixelRatio = [20, 11];\n break;\n\n case 8:\n pixelRatio = [32, 11];\n break;\n\n case 9:\n pixelRatio = [80, 33];\n break;\n\n case 10:\n pixelRatio = [18, 11];\n break;\n\n case 11:\n pixelRatio = [15, 11];\n break;\n\n case 12:\n pixelRatio = [64, 33];\n break;\n\n case 13:\n pixelRatio = [160, 99];\n break;\n\n case 14:\n pixelRatio = [4, 3];\n break;\n\n case 15:\n pixelRatio = [3, 2];\n break;\n\n case 16:\n pixelRatio = [2, 1];\n break;\n\n case 255:\n {\n pixelRatio = [readUByte() << 8 | readUByte(), readUByte() << 8 | readUByte()];\n break;\n }\n }\n }\n }\n\n return {\n width: Math.ceil((picWidthInMbsMinus1 + 1) * 16 - frameCropLeftOffset * 2 - frameCropRightOffset * 2),\n height: (2 - frameMbsOnlyFlag) * (picHeightInMapUnitsMinus1 + 1) * 16 - (frameMbsOnlyFlag ? 2 : 4) * (frameCropTopOffset + frameCropBottomOffset),\n pixelRatio: pixelRatio\n };\n };\n\n _proto.readSliceType = function readSliceType() {\n // skip NALu type\n this.readUByte(); // discard first_mb_in_slice\n\n this.readUEG(); // return slice_type\n\n return this.readUEG();\n };\n\n return ExpGolomb;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ExpGolomb);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/exp-golomb.js?"); | ||
| 3053 | + | ||
| 3054 | +/***/ }), | ||
| 3055 | + | ||
| 3056 | +/***/ "./src/FlvPlayer/flv.js/config.js": | ||
| 3057 | +/*!****************************************!*\ | ||
| 3058 | + !*** ./src/FlvPlayer/flv.js/config.js ***! | ||
| 3059 | + \****************************************/ | ||
| 3060 | +/*! exports provided: defaultConfig, createDefaultConfig */ | ||
| 3061 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3062 | + | ||
| 3063 | +"use strict"; | ||
| 3064 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultConfig\", function() { return defaultConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createDefaultConfig\", function() { return createDefaultConfig; });\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar defaultConfig = {\n enableWorker: false,\n enableStashBuffer: true,\n stashInitialSize: undefined,\n isLive: false,\n lazyLoad: true,\n lazyLoadMaxDuration: 3 * 60,\n lazyLoadRecoverDuration: 30,\n deferLoadAfterSourceOpen: true,\n // autoCleanupSourceBuffer: default as false, leave unspecified\n autoCleanupMaxBackwardDuration: 3 * 60,\n autoCleanupMinBackwardDuration: 2 * 60,\n statisticsInfoReportInterval: 600,\n fixAudioTimestampGap: true,\n accurateSeek: false,\n seekType: 'range',\n // [range, param, custom]\n seekParamStart: 'bstart',\n seekParamEnd: 'bend',\n rangeLoadZeroStart: false,\n customSeekHandler: undefined,\n reuseRedirectedURL: false,\n // referrerPolicy: leave as unspecified\n headers: undefined,\n customLoader: undefined\n};\nfunction createDefaultConfig() {\n return Object.assign({}, defaultConfig);\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/config.js?"); | ||
| 3065 | + | ||
| 3066 | +/***/ }), | ||
| 3067 | + | ||
| 3068 | +/***/ "./src/FlvPlayer/flv.js/core/features.js": | ||
| 3069 | +/*!***********************************************!*\ | ||
| 3070 | + !*** ./src/FlvPlayer/flv.js/core/features.js ***! | ||
| 3071 | + \***********************************************/ | ||
| 3072 | +/*! exports provided: default */ | ||
| 3073 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3074 | + | ||
| 3075 | +"use strict"; | ||
| 3076 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _io_io_controller_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../io/io-controller.js */ \"./src/FlvPlayer/flv.js/io/io-controller.js\");\n/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../config.js */ \"./src/FlvPlayer/flv.js/config.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\nvar Features = /*#__PURE__*/function () {\n function Features() {}\n\n Features.supportMSEH264Playback = function supportMSEH264Playback() {\n return window.MediaSource && window.MediaSource.isTypeSupported('video/mp4; codecs=\"avc1.42E01E,mp4a.40.2\"');\n };\n\n Features.supportNetworkStreamIO = function supportNetworkStreamIO() {\n var ioctl = new _io_io_controller_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({}, Object(_config_js__WEBPACK_IMPORTED_MODULE_1__[\"createDefaultConfig\"])());\n var loaderType = ioctl.loaderType;\n ioctl.destroy();\n return loaderType == 'fetch-stream-loader' || loaderType == 'xhr-moz-chunked-loader';\n };\n\n Features.getNetworkLoaderTypeName = function getNetworkLoaderTypeName() {\n var ioctl = new _io_io_controller_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({}, Object(_config_js__WEBPACK_IMPORTED_MODULE_1__[\"createDefaultConfig\"])());\n var loaderType = ioctl.loaderType;\n ioctl.destroy();\n return loaderType;\n };\n\n Features.supportNativeMediaPlayback = function supportNativeMediaPlayback(mimeType) {\n if (Features.videoElement == undefined) {\n Features.videoElement = window.document.createElement('video');\n }\n\n var canPlay = Features.videoElement.canPlayType(mimeType);\n return canPlay === 'probably' || canPlay == 'maybe';\n };\n\n Features.getFeatureList = function getFeatureList() {\n var features = {\n mseFlvPlayback: false,\n mseLiveFlvPlayback: false,\n networkStreamIO: false,\n networkLoaderName: '',\n nativeMP4H264Playback: false,\n nativeWebmVP8Playback: false,\n nativeWebmVP9Playback: false\n };\n features.mseFlvPlayback = Features.supportMSEH264Playback();\n features.networkStreamIO = Features.supportNetworkStreamIO();\n features.networkLoaderName = Features.getNetworkLoaderTypeName();\n features.mseLiveFlvPlayback = features.mseFlvPlayback && features.networkStreamIO;\n features.nativeMP4H264Playback = Features.supportNativeMediaPlayback('video/mp4; codecs=\"avc1.42001E, mp4a.40.2\"');\n features.nativeWebmVP8Playback = Features.supportNativeMediaPlayback('video/webm; codecs=\"vp8.0, vorbis\"');\n features.nativeWebmVP9Playback = Features.supportNativeMediaPlayback('video/webm; codecs=\"vp9\"');\n return features;\n };\n\n return Features;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Features);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/core/features.js?"); | ||
| 3077 | + | ||
| 3078 | +/***/ }), | ||
| 3079 | + | ||
| 3080 | +/***/ "./src/FlvPlayer/flv.js/core/media-info.js": | ||
| 3081 | +/*!*************************************************!*\ | ||
| 3082 | + !*** ./src/FlvPlayer/flv.js/core/media-info.js ***! | ||
| 3083 | + \*************************************************/ | ||
| 3084 | +/*! exports provided: default */ | ||
| 3085 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3086 | + | ||
| 3087 | +"use strict"; | ||
| 3088 | +eval("__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar MediaInfo = /*#__PURE__*/function () {\n function MediaInfo() {\n this.mimeType = null;\n this.duration = null;\n this.hasAudio = null;\n this.hasVideo = null;\n this.audioCodec = null;\n this.videoCodec = null;\n this.audioDataRate = null;\n this.videoDataRate = null;\n this.audioSampleRate = null;\n this.audioChannelCount = null;\n this.width = null;\n this.height = null;\n this.fps = null;\n this.profile = null;\n this.level = null;\n this.refFrames = null;\n this.chromaFormat = null;\n this.sarNum = null;\n this.sarDen = null;\n this.metadata = null;\n this.segments = null; // MediaInfo[]\n\n this.segmentCount = null;\n this.hasKeyframesIndex = null;\n this.keyframesIndex = null;\n }\n\n var _proto = MediaInfo.prototype;\n\n _proto.isComplete = function isComplete() {\n var audioInfoComplete = this.hasAudio === false || this.hasAudio === true && this.audioCodec != null && this.audioSampleRate != null && this.audioChannelCount != null;\n var videoInfoComplete = this.hasVideo === false || this.hasVideo === true && this.videoCodec != null && this.width != null && this.height != null && this.fps != null && this.profile != null && this.level != null && this.refFrames != null && this.chromaFormat != null && this.sarNum != null && this.sarDen != null; // keyframesIndex may not be present\n\n return this.mimeType != null && this.duration != null && this.metadata != null && this.hasKeyframesIndex != null && audioInfoComplete && videoInfoComplete;\n };\n\n _proto.isSeekable = function isSeekable() {\n return this.hasKeyframesIndex === true;\n };\n\n _proto.getNearestKeyframe = function getNearestKeyframe(milliseconds) {\n if (this.keyframesIndex == null) {\n return null;\n }\n\n var table = this.keyframesIndex;\n\n var keyframeIdx = this._search(table.times, milliseconds);\n\n return {\n index: keyframeIdx,\n milliseconds: table.times[keyframeIdx],\n fileposition: table.filepositions[keyframeIdx]\n };\n };\n\n _proto._search = function _search(list, value) {\n var idx = 0;\n var last = list.length - 1;\n var mid = 0;\n var lbound = 0;\n var ubound = last;\n\n if (value < list[0]) {\n idx = 0;\n lbound = ubound + 1; // skip search\n }\n\n while (lbound <= ubound) {\n mid = lbound + Math.floor((ubound - lbound) / 2);\n\n if (mid === last || value >= list[mid] && value < list[mid + 1]) {\n idx = mid;\n break;\n } else if (list[mid] < value) {\n lbound = mid + 1;\n } else {\n ubound = mid - 1;\n }\n }\n\n return idx;\n };\n\n return MediaInfo;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (MediaInfo);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/core/media-info.js?"); | ||
| 3089 | + | ||
| 3090 | +/***/ }), | ||
| 3091 | + | ||
| 3092 | +/***/ "./src/FlvPlayer/flv.js/core/media-segment-info.js": | ||
| 3093 | +/*!*********************************************************!*\ | ||
| 3094 | + !*** ./src/FlvPlayer/flv.js/core/media-segment-info.js ***! | ||
| 3095 | + \*********************************************************/ | ||
| 3096 | +/*! exports provided: SampleInfo, MediaSegmentInfo, IDRSampleList, MediaSegmentInfoList */ | ||
| 3097 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3098 | + | ||
| 3099 | +"use strict"; | ||
| 3100 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SampleInfo\", function() { return SampleInfo; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MediaSegmentInfo\", function() { return MediaSegmentInfo; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IDRSampleList\", function() { return IDRSampleList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MediaSegmentInfoList\", function() { return MediaSegmentInfoList; });\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Represents an media sample (audio / video)\nvar SampleInfo = function SampleInfo(dts, pts, duration, originalDts, isSync) {\n this.dts = dts;\n this.pts = pts;\n this.duration = duration;\n this.originalDts = originalDts;\n this.isSyncPoint = isSync;\n this.fileposition = null;\n}; // Media Segment concept is defined in Media Source Extensions spec.\n// Particularly in ISO BMFF format, an Media Segment contains a moof box followed by a mdat box.\n\nvar MediaSegmentInfo = /*#__PURE__*/function () {\n function MediaSegmentInfo() {\n this.beginDts = 0;\n this.endDts = 0;\n this.beginPts = 0;\n this.endPts = 0;\n this.originalBeginDts = 0;\n this.originalEndDts = 0;\n this.syncPoints = []; // SampleInfo[n], for video IDR frames only\n\n this.firstSample = null; // SampleInfo\n\n this.lastSample = null; // SampleInfo\n }\n\n var _proto = MediaSegmentInfo.prototype;\n\n _proto.appendSyncPoint = function appendSyncPoint(sampleInfo) {\n // also called Random Access Point\n sampleInfo.isSyncPoint = true;\n this.syncPoints.push(sampleInfo);\n };\n\n return MediaSegmentInfo;\n}(); // Ordered list for recording video IDR frames, sorted by originalDts\n\nvar IDRSampleList = /*#__PURE__*/function () {\n function IDRSampleList() {\n this._list = [];\n }\n\n var _proto2 = IDRSampleList.prototype;\n\n _proto2.clear = function clear() {\n this._list = [];\n };\n\n _proto2.appendArray = function appendArray(syncPoints) {\n var list = this._list;\n\n if (syncPoints.length === 0) {\n return;\n }\n\n if (list.length > 0 && syncPoints[0].originalDts < list[list.length - 1].originalDts) {\n this.clear();\n }\n\n Array.prototype.push.apply(list, syncPoints);\n };\n\n _proto2.getLastSyncPointBeforeDts = function getLastSyncPointBeforeDts(dts) {\n if (this._list.length == 0) {\n return null;\n }\n\n var list = this._list;\n var idx = 0;\n var last = list.length - 1;\n var mid = 0;\n var lbound = 0;\n var ubound = last;\n\n if (dts < list[0].dts) {\n idx = 0;\n lbound = ubound + 1;\n }\n\n while (lbound <= ubound) {\n mid = lbound + Math.floor((ubound - lbound) / 2);\n\n if (mid === last || dts >= list[mid].dts && dts < list[mid + 1].dts) {\n idx = mid;\n break;\n } else if (list[mid].dts < dts) {\n lbound = mid + 1;\n } else {\n ubound = mid - 1;\n }\n }\n\n return this._list[idx];\n };\n\n return IDRSampleList;\n}(); // Data structure for recording information of media segments in single track.\n\nvar MediaSegmentInfoList = /*#__PURE__*/function () {\n function MediaSegmentInfoList(type) {\n this._type = type;\n this._list = [];\n this._lastAppendLocation = -1; // cached last insert location\n }\n\n var _proto3 = MediaSegmentInfoList.prototype;\n\n _proto3.isEmpty = function isEmpty() {\n return this._list.length === 0;\n };\n\n _proto3.clear = function clear() {\n this._list = [];\n this._lastAppendLocation = -1;\n };\n\n _proto3._searchNearestSegmentBefore = function _searchNearestSegmentBefore(originalBeginDts) {\n var list = this._list;\n\n if (list.length === 0) {\n return -2;\n }\n\n var last = list.length - 1;\n var mid = 0;\n var lbound = 0;\n var ubound = last;\n var idx = 0;\n\n if (originalBeginDts < list[0].originalBeginDts) {\n idx = -1;\n return idx;\n }\n\n while (lbound <= ubound) {\n mid = lbound + Math.floor((ubound - lbound) / 2);\n\n if (mid === last || originalBeginDts > list[mid].lastSample.originalDts && originalBeginDts < list[mid + 1].originalBeginDts) {\n idx = mid;\n break;\n } else if (list[mid].originalBeginDts < originalBeginDts) {\n lbound = mid + 1;\n } else {\n ubound = mid - 1;\n }\n }\n\n return idx;\n };\n\n _proto3._searchNearestSegmentAfter = function _searchNearestSegmentAfter(originalBeginDts) {\n return this._searchNearestSegmentBefore(originalBeginDts) + 1;\n };\n\n _proto3.append = function append(mediaSegmentInfo) {\n var list = this._list;\n var msi = mediaSegmentInfo;\n var lastAppendIdx = this._lastAppendLocation;\n var insertIdx = 0;\n\n if (lastAppendIdx !== -1 && lastAppendIdx < list.length && msi.originalBeginDts >= list[lastAppendIdx].lastSample.originalDts && (lastAppendIdx === list.length - 1 || lastAppendIdx < list.length - 1 && msi.originalBeginDts < list[lastAppendIdx + 1].originalBeginDts)) {\n insertIdx = lastAppendIdx + 1; // use cached location idx\n } else {\n if (list.length > 0) {\n insertIdx = this._searchNearestSegmentBefore(msi.originalBeginDts) + 1;\n }\n }\n\n this._lastAppendLocation = insertIdx;\n\n this._list.splice(insertIdx, 0, msi);\n };\n\n _proto3.getLastSegmentBefore = function getLastSegmentBefore(originalBeginDts) {\n var idx = this._searchNearestSegmentBefore(originalBeginDts);\n\n if (idx >= 0) {\n return this._list[idx];\n } else {\n // -1\n return null;\n }\n };\n\n _proto3.getLastSampleBefore = function getLastSampleBefore(originalBeginDts) {\n var segment = this.getLastSegmentBefore(originalBeginDts);\n\n if (segment != null) {\n return segment.lastSample;\n } else {\n return null;\n }\n };\n\n _proto3.getLastSyncPointBefore = function getLastSyncPointBefore(originalBeginDts) {\n var segmentIdx = this._searchNearestSegmentBefore(originalBeginDts);\n\n var syncPoints = this._list[segmentIdx].syncPoints;\n\n while (syncPoints.length === 0 && segmentIdx > 0) {\n segmentIdx--;\n syncPoints = this._list[segmentIdx].syncPoints;\n }\n\n if (syncPoints.length > 0) {\n return syncPoints[syncPoints.length - 1];\n } else {\n return null;\n }\n };\n\n _createClass(MediaSegmentInfoList, [{\n key: \"type\",\n get: function get() {\n return this._type;\n }\n }, {\n key: \"length\",\n get: function get() {\n return this._list.length;\n }\n }]);\n\n return MediaSegmentInfoList;\n}();\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/core/media-segment-info.js?"); | ||
| 3101 | + | ||
| 3102 | +/***/ }), | ||
| 3103 | + | ||
| 3104 | +/***/ "./src/FlvPlayer/flv.js/core/mse-controller.js": | ||
| 3105 | +/*!*****************************************************!*\ | ||
| 3106 | + !*** ./src/FlvPlayer/flv.js/core/mse-controller.js ***! | ||
| 3107 | + \*****************************************************/ | ||
| 3108 | +/*! exports provided: default */ | ||
| 3109 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3110 | + | ||
| 3111 | +"use strict"; | ||
| 3112 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! events */ \"./node_modules/node-libs-browser/node_modules/events/events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/FlvPlayer/flv.js/utils/logger.js\");\n/* harmony import */ var _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/browser.js */ \"./src/FlvPlayer/flv.js/utils/browser.js\");\n/* harmony import */ var _mse_events_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mse-events.js */ \"./src/FlvPlayer/flv.js/core/mse-events.js\");\n/* harmony import */ var _media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./media-segment-info.js */ \"./src/FlvPlayer/flv.js/core/media-segment-info.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/FlvPlayer/flv.js/utils/exception.js\");\n/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../common/common */ \"./src/common/common.js\");\n/* harmony import */ var _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./transmuxing-events.js */ \"./src/FlvPlayer/flv.js/core/transmuxing-events.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\n\n\n\n // Media Source Extensions controller\n\nvar MSEController = /*#__PURE__*/function () {\n function MSEController(config) {\n this.TAG = 'MSEController';\n this._config = config;\n this._emitter = new events__WEBPACK_IMPORTED_MODULE_0___default.a();\n this._currentPlayTime = 0;\n this._hlsSeekTime = 0;\n this._lastPlayTime = 0;\n this._waitingData = false;\n this._pause = false;\n this._lastSpeed = 0;\n\n if (this._config.isLive && this._config.autoCleanupSourceBuffer == undefined) {\n // For live stream, do auto cleanup by default\n this._config.autoCleanupSourceBuffer = true;\n }\n\n this.e = {\n onSourceOpen: this._onSourceOpen.bind(this),\n onSourceEnded: this._onSourceEnded.bind(this),\n onSourceClose: this._onSourceClose.bind(this),\n onSourceBufferError: this._onSourceBufferError.bind(this),\n onSourceBufferUpdateEnd: this._onSourceBufferUpdateEnd.bind(this)\n };\n this._mediaSource = null;\n this._mediaSourceObjectURL = null;\n this._mediaElement = null;\n this._isBufferFull = false;\n this._hasPendingEos = false;\n this._seek = false;\n this._requireSetMediaDuration = false;\n this._pendingMediaDuration = 0;\n this._pendingSourceBufferInit = [];\n this._mimeTypes = {\n video: null,\n audio: null\n };\n this._sourceBuffers = {\n video: null,\n audio: null\n };\n this._lastInitSegments = {\n video: null,\n audio: null\n };\n this._pendingSegments = {\n video: [],\n audio: []\n };\n this._pendingRemoveRanges = {\n video: [],\n audio: []\n };\n this._idrList = new _media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__[\"IDRSampleList\"]();\n }\n\n var _proto = MSEController.prototype;\n\n _proto.destroy = function destroy() {\n if (this._mediaElement || this._mediaSource) {\n this.detachMediaElement();\n }\n\n this.e = null;\n\n this._emitter.removeAllListeners();\n\n this._emitter = null;\n };\n\n _proto.on = function on(event, listener) {\n this._emitter.addListener(event, listener);\n };\n\n _proto.off = function off(event, listener) {\n this._emitter.removeListener(event, listener);\n };\n\n _proto.setSeekPlayTime = function setSeekPlayTime(seekTimeSecs) {\n if (this._mediaElement) {\n this._lastPlayTime = Math.floor(this._mediaElement.currentTime);\n }\n\n this._hlsSeekTime = seekTimeSecs;\n };\n\n _proto.pause = function pause() {\n this._pause = true;\n };\n\n _proto.resume = function resume() {\n this._pause = false;\n };\n\n _proto.attachMediaElement = function attachMediaElement(mediaElement) {\n if (this._mediaSource) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_5__[\"IllegalStateException\"]('MediaSource has been attached to an HTMLMediaElement!');\n }\n\n var ms = this._mediaSource = new window.MediaSource();\n ms.addEventListener('sourceopen', this.e.onSourceOpen);\n ms.addEventListener('sourceended', this.e.onSourceEnded);\n ms.addEventListener('sourceclose', this.e.onSourceClose);\n this._mediaElement = mediaElement;\n this._mediaSourceObjectURL = window.URL.createObjectURL(this._mediaSource);\n mediaElement.src = this._mediaSourceObjectURL;\n var self = this;\n mediaElement.addEventListener('timeupdate', function () {\n var timeDisplay = Math.floor(mediaElement.currentTime);\n\n if (self._hlsSeekTime > 0) {\n timeDisplay = timeDisplay - self._lastPlayTime + self._hlsSeekTime;\n }\n\n if (self._currentPlayTime != timeDisplay) {\n //self._currentPlayTime = Math.floor(mediaElement.currentTime);\n self._currentPlayTime = timeDisplay; //console.log(\"PlayTime: \" + Math.floor(mediaElement.currentTime) + \" duration:\" + mediaElement.duration);\n\n if (self._emitter) {\n self._emitter.emit(_mse_events_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].CB_PLAY_INFO);\n }\n }\n }, false);\n };\n\n _proto.getCurrentPlayTime = function getCurrentPlayTime() {\n return this._currentPlayTime;\n };\n\n _proto.getTotalDuration = function getTotalDuration() {\n return this._mediaElement.duration;\n };\n\n _proto.detachMediaElement = function detachMediaElement() {\n if (this._mediaSource) {\n var ms = this._mediaSource;\n\n for (var type in this._sourceBuffers) {\n // pending segments should be discard\n var ps = this._pendingSegments[type];\n ps.splice(0, ps.length);\n this._pendingSegments[type] = null;\n this._pendingRemoveRanges[type] = null;\n this._lastInitSegments[type] = null; // remove all sourcebuffers\n\n var sb = this._sourceBuffers[type];\n\n if (sb) {\n if (ms.readyState !== 'closed') {\n // ms edge can throw an error: Unexpected call to method or property access\n try {\n ms.removeSourceBuffer(sb);\n } catch (error) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].e(this.TAG, error.message);\n }\n\n sb.removeEventListener('error', this.e.onSourceBufferError);\n sb.removeEventListener('updateend', this.e.onSourceBufferUpdateEnd);\n }\n\n this._mimeTypes[type] = null;\n this._sourceBuffers[type] = null;\n }\n }\n\n if (ms.readyState === 'open') {\n try {\n ms.endOfStream();\n } catch (error) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].e(this.TAG, error.message);\n }\n }\n\n ms.removeEventListener('sourceopen', this.e.onSourceOpen);\n ms.removeEventListener('sourceended', this.e.onSourceEnded);\n ms.removeEventListener('sourceclose', this.e.onSourceClose);\n this._pendingSourceBufferInit = [];\n this._isBufferFull = false;\n\n this._idrList.clear();\n\n this._mediaSource = null;\n }\n\n if (this._mediaElement) {\n this._mediaElement.src = '';\n\n this._mediaElement.removeAttribute('src');\n\n this._mediaElement = null;\n }\n\n if (this._mediaSourceObjectURL) {\n window.URL.revokeObjectURL(this._mediaSourceObjectURL);\n this._mediaSourceObjectURL = null;\n }\n };\n\n _proto.appendInitSegment = function appendInitSegment(initSegment, deferred) {\n if (!this._mediaSource || this._mediaSource.readyState !== 'open') {\n // sourcebuffer creation requires mediaSource.readyState === 'open'\n // so we defer the sourcebuffer creation, until sourceopen event triggered\n this._pendingSourceBufferInit.push(initSegment); // make sure that this InitSegment is in the front of pending segments queue\n\n\n this._pendingSegments[initSegment.type].push(initSegment);\n\n return;\n }\n\n var is = initSegment;\n var mimeType = \"\" + is.container;\n\n if (is.codec && is.codec.length > 0) {\n mimeType += \";codecs=\" + is.codec;\n }\n\n var firstInitSegment = false;\n this._lastInitSegments[is.type] = is;\n\n if (mimeType !== this._mimeTypes[is.type]) {\n if (!this._mimeTypes[is.type]) {\n // empty, first chance create sourcebuffer\n firstInitSegment = true;\n\n try {\n var sb = this._sourceBuffers[is.type] = this._mediaSource.addSourceBuffer(mimeType);\n\n sb.addEventListener('error', this.e.onSourceBufferError);\n sb.addEventListener('updateend', this.e.onSourceBufferUpdateEnd);\n } catch (error) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].e(this.TAG, error.message);\n\n this._emitter.emit(_mse_events_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ERROR, {\n code: error.code,\n msg: error.message\n });\n\n return;\n }\n } else {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].v(this.TAG, \"Notice: \" + is.type + \" mimeType changed, origin: \" + this._mimeTypes[is.type] + \", target: \" + mimeType);\n }\n\n this._mimeTypes[is.type] = mimeType;\n }\n\n if (!deferred) {\n // deferred means this InitSegment has been pushed to pendingSegments queue\n this._pendingSegments[is.type].push(is);\n }\n\n if (!firstInitSegment) {\n // append immediately only if init segment in subsequence\n if (this._sourceBuffers[is.type] && !this._sourceBuffers[is.type].updating) {\n this._doAppendSegments();\n }\n }\n\n if (_utils_browser_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].safari && is.container === 'audio/mpeg' && is.mediaDuration > 0) {\n // 'audio/mpeg' track under Safari may cause MediaElement's duration to be NaN\n // Manually correct MediaSource.duration to make progress bar seekable, and report right duration\n this._requireSetMediaDuration = true;\n this._pendingMediaDuration = is.mediaDuration / 1000; // in seconds\n //console.log(\"mse-controller.js::this._pendingMediaDuration: \" + this._pendingMediaDuration);\n\n this._updateMediaSourceDuration();\n }\n };\n\n _proto.appendMediaSegment = function appendMediaSegment(mediaSegment) {\n var ms = mediaSegment;\n\n this._pendingSegments[ms.type].push(ms);\n\n if (this._config.autoCleanupSourceBuffer && this._needCleanupSourceBuffer() || this._seek) {\n this._doCleanupSourceBuffer();\n\n this._seek = false;\n }\n\n var sb = this._sourceBuffers[ms.type];\n\n if (sb && !sb.updating && !this._hasPendingRemoveRanges()) {\n this._doAppendSegments();\n }\n };\n\n _proto.reset = function reset(callPlay) {\n for (var type in this._sourceBuffers) {\n var sb = this._sourceBuffers[type];\n\n if (sb) {\n var buffered = sb.buffered;\n var doRemove = false;\n\n for (var i = 0; i < buffered.length; i++) {\n var start = buffered.start(i);\n var end = buffered.end(i);\n /*\n if (start <= currentTime && currentTime < end + 3) { // padding 3 seconds\n if (currentTime - start >= this._config.autoCleanupMaxBackwardDuration) {\n doRemove = true;\n let removeEnd = currentTime - this._config.autoCleanupMinBackwardDuration;\n this._pendingRemoveRanges[type].push({ start: start, end: removeEnd });\n }\n } else if (end < currentTime) {\n */\n\n doRemove = true;\n\n this._pendingRemoveRanges[type].push({\n start: start,\n end: end\n }); //}\n\n }\n\n if (doRemove && !sb.updating) {\n this._doRemoveRanges();\n }\n }\n }\n\n this._mediaElement.currentTime = 1;\n\n if (callPlay) {\n this._mediaElement.play();\n }\n };\n\n _proto.seek = function seek(seconds) {\n // remove all appended buffers\n for (var type in this._sourceBuffers) {\n if (!this._sourceBuffers[type]) {\n continue;\n } // abort current buffer append algorithm\n\n\n var sb = this._sourceBuffers[type];\n\n if (this._mediaSource.readyState === 'open') {\n try {\n // If range removal algorithm is running, InvalidStateError will be throwed\n // Ignore it.\n sb.abort();\n } catch (error) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].e(this.TAG, error.message);\n }\n } // IDRList should be clear\n\n\n this._idrList.clear(); // pending segments should be discard\n\n\n var ps = this._pendingSegments[type];\n ps.splice(0, ps.length);\n\n if (this._mediaSource.readyState === 'closed') {\n // Parent MediaSource object has been detached from HTMLMediaElement\n continue;\n } // record ranges to be remove from SourceBuffer\n\n\n for (var i = 0; i < sb.buffered.length; i++) {\n var start = sb.buffered.start(i);\n var end = sb.buffered.end(i);\n\n this._pendingRemoveRanges[type].push({\n start: start,\n end: end\n });\n } // if sb is not updating, let's remove ranges now!\n\n\n if (!sb.updating) {\n this._doRemoveRanges();\n } // Safari 10 may get InvalidStateError in the later appendBuffer() after SourceBuffer.remove() call\n // Internal parser's state may be invalid at this time. Re-append last InitSegment to workaround.\n // Related issue: https://bugs.webkit.org/show_bug.cgi?id=159230\n\n\n if (_utils_browser_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].safari) {\n var lastInitSegment = this._lastInitSegments[type];\n\n if (lastInitSegment) {\n this._pendingSegments[type].push(lastInitSegment);\n\n if (!sb.updating) {\n this._doAppendSegments();\n }\n }\n }\n }\n };\n\n _proto.endOfStream = function endOfStream() {\n //console.log(\"MSEController::endOfStream...\");\n var ms = this._mediaSource;\n var sb = this._sourceBuffers;\n\n if (!ms || ms.readyState !== 'open') {\n if (ms && ms.readyState === 'closed' && this._hasPendingSegments()) {\n // If MediaSource hasn't turned into open state, and there're pending segments\n // Mark pending endOfStream, defer call until all pending segments appended complete\n this._hasPendingEos = true;\n }\n\n return;\n }\n\n if (sb.video && sb.video.updating || sb.audio && sb.audio.updating) {\n // If any sourcebuffer is updating, defer endOfStream operation\n // See _onSourceBufferUpdateEnd()\n this._hasPendingEos = true;\n } else {\n this._hasPendingEos = false; // Notify media data loading complete\n // This is helpful for correcting total duration to match last media segment\n // Otherwise MediaElement's ended event may not be triggered\n\n ms.endOfStream();\n }\n };\n\n _proto.getNearestKeyframe = function getNearestKeyframe(dts) {\n return this._idrList.getLastSyncPointBeforeDts(dts);\n };\n\n _proto._needCleanupSourceBuffer = function _needCleanupSourceBuffer() {\n if (!this._config.autoCleanupSourceBuffer) {\n return false;\n }\n\n var currentTime = this._mediaElement.currentTime;\n\n for (var type in this._sourceBuffers) {\n var sb = this._sourceBuffers[type];\n\n if (sb) {\n var buffered = sb.buffered;\n\n if (buffered.length >= 1) {\n if (currentTime - buffered.start(0) >= this._config.autoCleanupMaxBackwardDuration) {\n return true;\n }\n }\n }\n }\n\n return false;\n };\n\n _proto.GetSourceBufferStartTime = function GetSourceBufferStartTime() {\n for (var type in this._sourceBuffers) {\n var sb = this._sourceBuffers[type];\n\n if (sb) {\n var buffered = sb.buffered;\n\n for (var i = 0; i < buffered.length; i++) {\n var start = buffered.start(i);\n var end = buffered.end(i);\n return start + (end - start) / 2;\n }\n }\n }\n };\n\n _proto._doCleanupSourceBuffer = function _doCleanupSourceBuffer() {\n var currentTime = this._mediaElement.currentTime;\n\n for (var type in this._sourceBuffers) {\n var sb = this._sourceBuffers[type];\n\n if (sb) {\n var buffered = sb.buffered;\n var doRemove = false;\n\n for (var i = 0; i < buffered.length; i++) {\n var start = buffered.start(i);\n var end = buffered.end(i);\n\n if (start <= currentTime && currentTime < end + 3) {\n // padding 3 seconds\n if (currentTime - start >= this._config.autoCleanupMaxBackwardDuration) {\n doRemove = true;\n var removeEnd = currentTime - this._config.autoCleanupMinBackwardDuration;\n\n this._pendingRemoveRanges[type].push({\n start: start,\n end: removeEnd\n });\n }\n } else if (end < currentTime) {\n doRemove = true;\n\n this._pendingRemoveRanges[type].push({\n start: start,\n end: end\n });\n }\n }\n\n if (doRemove && !sb.updating) {\n this._doRemoveRanges();\n }\n }\n }\n } //add by gavin\n ;\n\n _proto.__ClearAllSourceBuffer = function __ClearAllSourceBuffer() {\n for (var type in this._sourceBuffers) {\n var sb = this._sourceBuffers[type];\n\n if (sb) {\n var buffered = sb.buffered;\n var doRemove = false;\n\n for (var i = 0; i < buffered.length; i++) {\n var start = buffered.start(i);\n var end = buffered.end(i);\n doRemove = true;\n\n this._pendingRemoveRanges[type].push({\n start: start,\n end: end\n });\n }\n\n if (doRemove && !sb.updating) {\n this._doRemoveRanges();\n }\n }\n }\n };\n\n _proto._updateMediaSourceDuration = function _updateMediaSourceDuration() {\n var sb = this._sourceBuffers;\n\n if (this._mediaElement.readyState === 0 || this._mediaSource.readyState !== 'open') {\n return;\n }\n\n if (sb.video && sb.video.updating || sb.audio && sb.audio.updating) {\n return;\n }\n\n var current = this._mediaSource.duration;\n var target = this._pendingMediaDuration;\n\n if (target > 0 && (isNaN(current) || target > current)) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].v(this.TAG, \"Update MediaSource duration from \" + current + \" to \" + target);\n this._mediaSource.duration = target;\n }\n\n this._requireSetMediaDuration = false;\n this._pendingMediaDuration = 0;\n };\n\n _proto._doRemoveRanges = function _doRemoveRanges() {\n for (var type in this._pendingRemoveRanges) {\n if (!this._sourceBuffers[type] || this._sourceBuffers[type].updating) {\n continue;\n }\n\n var sb = this._sourceBuffers[type];\n var ranges = this._pendingRemoveRanges[type];\n\n while (ranges.length && !sb.updating) {\n var range = ranges.shift();\n sb.remove(range.start, range.end);\n }\n }\n };\n\n _proto._doAppendSegments = function _doAppendSegments() {\n var pendingSegments = this._pendingSegments;\n\n for (var type in pendingSegments) {\n if (!this._sourceBuffers[type] || this._sourceBuffers[type].updating) {\n continue;\n }\n\n if (pendingSegments[type].length > 0) {\n var segment = pendingSegments[type].shift();\n\n if (segment.timestampOffset) {\n var currentOffset = this._sourceBuffers[type].timestampOffset;\n var targetOffset = segment.timestampOffset / 1000; // in seconds\n\n var delta = Math.abs(currentOffset - targetOffset);\n\n if (delta > 0.1) {\n // If time delta > 100ms\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].v(this.TAG, \"Update MPEG audio timestampOffset from \" + currentOffset + \" to \" + targetOffset);\n this._sourceBuffers[type].timestampOffset = targetOffset;\n }\n\n delete segment.timestampOffset;\n }\n\n if (!segment.data || segment.data.byteLength === 0) {\n continue;\n }\n\n try {\n this._sourceBuffers[type].appendBuffer(segment.data);\n\n this._isBufferFull = false;\n\n if (type === 'video' && segment.hasOwnProperty('info')) {\n this._idrList.appendArray(segment.info.syncPoints);\n }\n\n _common_common__WEBPACK_IMPORTED_MODULE_6__[\"ClearAppendBufferError\"]();\n } catch (error) {\n console.log('MSEController::_doAppendSegments err:' + error);\n\n this._pendingSegments[type].unshift(segment);\n\n _common_common__WEBPACK_IMPORTED_MODULE_6__[\"SetAppendBufferError\"](type);\n\n this.__ClearAllSourceBuffer();\n\n if (error.code === 22) {\n // QuotaExceededError\n\n /* Notice that FireFox may not throw QuotaExceededError if SourceBuffer is full\n * Currently we can only do lazy-load to avoid SourceBuffer become scattered.\n * SourceBuffer eviction policy may be changed in future version of FireFox.\n *\n * Related issues:\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1279885\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1280023\n */\n // report buffer full, abort network IO\n if (!this._isBufferFull) {\n //console.log(\"BUFFER_FULL\");\n this._emitter.emit(_mse_events_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].BUFFER_FULL);\n }\n\n this._isBufferFull = true;\n } else {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].e(this.TAG, error.message);\n\n this._emitter.emit(_mse_events_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ERROR, {\n code: error.code,\n msg: error.message\n });\n }\n }\n }\n }\n };\n\n _proto._onSourceOpen = function _onSourceOpen() {\n this._mediaSource.removeEventListener('sourceopen', this.e.onSourceOpen); // deferred sourcebuffer creation / initialization\n\n\n if (this._pendingSourceBufferInit.length > 0) {\n var pendings = this._pendingSourceBufferInit;\n\n while (pendings.length) {\n var segment = pendings.shift();\n this.appendInitSegment(segment, true);\n }\n } // there may be some pending media segments, append them\n\n\n if (this._hasPendingSegments()) {\n this._doAppendSegments();\n }\n\n this._emitter.emit(_mse_events_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].SOURCE_OPEN);\n };\n\n _proto._onSourceEnded = function _onSourceEnded() {\n // fired on endOfStream\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].v(this.TAG, 'MediaSource onSourceEnded');\n };\n\n _proto._onSourceClose = function _onSourceClose() {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].v(this.TAG, 'MediaSource onSourceClose');\n\n if (this._mediaSource && this.e != null) {\n this._mediaSource.removeEventListener('sourceopen', this.e.onSourceOpen);\n\n this._mediaSource.removeEventListener('sourceended', this.e.onSourceEnded);\n\n this._mediaSource.removeEventListener('sourceclose', this.e.onSourceClose);\n }\n };\n\n _proto._hasPendingSegments = function _hasPendingSegments() {\n var ps = this._pendingSegments;\n return ps.video.length > 0 || ps.audio.length > 0;\n };\n\n _proto._hasPendingRemoveRanges = function _hasPendingRemoveRanges() {\n var prr = this._pendingRemoveRanges;\n return prr.video.length > 0 || prr.audio.length > 0;\n };\n\n _proto._onSourceBufferUpdateEnd = function _onSourceBufferUpdateEnd() {\n if (this._requireSetMediaDuration) {\n this._updateMediaSourceDuration();\n } else if (this._hasPendingRemoveRanges()) {\n this._doRemoveRanges();\n } else if (this._hasPendingSegments()) {\n this._doAppendSegments();\n } else if (this._hasPendingEos) {\n this.endOfStream();\n }\n\n this._emitter.emit(_mse_events_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].UPDATE_END);\n };\n\n _proto._onSourceBufferError = function _onSourceBufferError(e) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].e(this.TAG, \"SourceBuffer Error: \" + e);\n };\n\n return MSEController;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (MSEController);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/core/mse-controller.js?"); | ||
| 3113 | + | ||
| 3114 | +/***/ }), | ||
| 3115 | + | ||
| 3116 | +/***/ "./src/FlvPlayer/flv.js/core/mse-events.js": | ||
| 3117 | +/*!*************************************************!*\ | ||
| 3118 | + !*** ./src/FlvPlayer/flv.js/core/mse-events.js ***! | ||
| 3119 | + \*************************************************/ | ||
| 3120 | +/*! exports provided: default */ | ||
| 3121 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3122 | + | ||
| 3123 | +"use strict"; | ||
| 3124 | +eval("__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar MSEEvents = {\n ERROR: 'error',\n SOURCE_OPEN: 'source_open',\n UPDATE_END: 'update_end',\n BUFFER_FULL: 'buffer_full',\n CB_PLAY_INFO: 'play_info',\n CHANGE_SPEED: 'change_speed'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (MSEEvents);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/core/mse-events.js?"); | ||
| 3125 | + | ||
| 3126 | +/***/ }), | ||
| 3127 | + | ||
| 3128 | +/***/ "./src/FlvPlayer/flv.js/core/transmuxer.js": | ||
| 3129 | +/*!*************************************************!*\ | ||
| 3130 | + !*** ./src/FlvPlayer/flv.js/core/transmuxer.js ***! | ||
| 3131 | + \*************************************************/ | ||
| 3132 | +/*! exports provided: default */ | ||
| 3133 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3134 | + | ||
| 3135 | +"use strict"; | ||
| 3136 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! events */ \"./node_modules/node-libs-browser/node_modules/events/events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/FlvPlayer/flv.js/utils/logger.js\");\n/* harmony import */ var _utils_logging_control_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/logging-control.js */ \"./src/FlvPlayer/flv.js/utils/logging-control.js\");\n/* harmony import */ var _transmuxing_controller_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./transmuxing-controller.js */ \"./src/FlvPlayer/flv.js/core/transmuxing-controller.js\");\n/* harmony import */ var _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./transmuxing-events.js */ \"./src/FlvPlayer/flv.js/core/transmuxing-events.js\");\n/* harmony import */ var _transmuxing_worker_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./transmuxing-worker.js */ \"./src/FlvPlayer/flv.js/core/transmuxing-worker.js\");\n/* harmony import */ var _media_info_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./media-info.js */ \"./src/FlvPlayer/flv.js/core/media-info.js\");\n/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../common/common */ \"./src/common/common.js\");\n/* harmony import */ var webworkify_webpack__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! webworkify-webpack */ \"./node_modules/webworkify-webpack/index.js\");\n/* harmony import */ var webworkify_webpack__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(webworkify_webpack__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _common_webgl__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../common/webgl */ \"./src/common/webgl.js\");\n/* harmony import */ var _common_soundPlayer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../common/soundPlayer */ \"./src/common/soundPlayer.js\");\n/* harmony import */ var _mse_events_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./mse-events.js */ \"./src/FlvPlayer/flv.js/core/mse-events.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar Transmuxer = /*#__PURE__*/function () {\n function Transmuxer(mediaDataSource, config, mediaCanvas, callbackUserPtr, callbackWasmTypePtr, callbackPlaybackTimePtr, callbackPlaybackTimeUserPtr, getVideoInfoCbFunc) {\n this.TAG = 'Transmuxer';\n this._emitter = new events__WEBPACK_IMPORTED_MODULE_0___default.a();\n this._config = config;\n this.soundPlayer = null;\n this._webGLPlayer = null;\n this._mediaCanvas = mediaCanvas;\n this.pauseDisplay = false;\n this.enableAudio = false;\n this.audioFmt = 0;\n this.audioSamplerate = 0;\n this.audioChannelNum = 2;\n this.initAudioPlayer = false;\n this.totalDuration = 0;\n this.initDuration = 0;\n this.currentPlayTime = 0;\n\n if (mediaDataSource.type === 'm3u8') {\n this.currentPlayTime = mediaDataSource.startPlaySecs;\n }\n\n this._callbackPlaybackTimePtr = callbackPlaybackTimePtr;\n this._callbackPlaybackTimeUserPtr = callbackPlaybackTimeUserPtr;\n this.getVideoInfoCallbackFunc = getVideoInfoCbFunc;\n this.getVideoInfoCB = true;\n var u = navigator.userAgent;\n this.isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android�ն�\n\n this.isiOS = !!u.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios�ն�\n\n this.isiPad = false;\n var ua = navigator.userAgent; //.toLowerCase();\n //alert(ua);\n\n var s;\n s = ua.match(/iPad/i);\n\n if (s == 'iPad') {\n this.isiPad = true;\n } else if (ua.indexOf('Macintosh;') > -1 && ua.indexOf('AppleWebKit/')) {\n this.isiPad = true;\n } //alert(\"iPad: \" + this.isiPad + \" iOS:\" + this.isiOS);\n //alert(this.isiOS);\n\n\n this._callbackUserPtr = callbackUserPtr;\n this._callbackWasmTypePtr = callbackWasmTypePtr;\n\n if (config.enableWorker && typeof Worker !== 'undefined') {\n try {\n var _work = __webpack_require__(/*! webworkify */ \"./node_modules/webworkify/index.js\");\n\n this._worker = _work(_transmuxing_worker_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n this._workerDestroying = false;\n\n this._worker.addEventListener('message', this._onWorkerMessage.bind(this));\n\n this._worker.postMessage({\n cmd: 'init',\n param: [mediaDataSource, config]\n });\n\n this.e = {\n onLoggingConfigChanged: this._onLoggingConfigChanged.bind(this)\n };\n _utils_logging_control_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].registerListener(this.e.onLoggingConfigChanged);\n\n this._worker.postMessage({\n cmd: 'logging_config',\n param: _utils_logging_control_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getConfig()\n });\n } catch (error) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].e(this.TAG, 'Error while initialize transmuxing worker, fallback to inline transmuxing');\n this._worker = null;\n this._controller = new _transmuxing_controller_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"](mediaDataSource, config);\n }\n } else {\n this._controller = new _transmuxing_controller_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"](mediaDataSource, config);\n }\n\n if (this._controller) {\n var ctl = this._controller;\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].IO_ERROR, this._onIOError.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].DEMUX_ERROR, this._onDemuxError.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].INIT_SEGMENT, this._onInitSegment.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].MEDIA_SEGMENT, this._onMediaSegment.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].LOADING_COMPLETE, this._onLoadingComplete.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].RECOVERED_EARLY_EOF, this._onRecoveredEarlyEof.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].MEDIA_INFO, this._onMediaInfo.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].METADATA_ARRIVED, this._onMetaDataArrived.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].SCRIPTDATA_ARRIVED, this._onScriptDataArrived.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].STATISTICS_INFO, this._onStatisticsInfo.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].RECOMMEND_SEEKPOINT, this._onRecommendSeekpoint.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].RECONNECT_ING, this._onReconnecting.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].RECONNECT_SUCCESS, this._onReconnectSuccess.bind(this));\n }\n }\n\n var _proto = Transmuxer.prototype;\n\n _proto.destroy = function destroy() {\n if (this._worker) {\n if (!this._workerDestroying) {\n this._workerDestroying = true;\n\n this._worker.postMessage({\n cmd: 'destroy'\n });\n\n _utils_logging_control_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].removeListener(this.e.onLoggingConfigChanged);\n this.e = null;\n }\n } else {\n this._controller.destroy();\n\n this._controller = null;\n }\n\n this._emitter.removeAllListeners();\n\n this._emitter = null;\n\n if (this.soundPlayer) {\n this.soundPlayer.destroy();\n delete this.soundPlayer;\n this.soundPlayer = null;\n }\n };\n\n _proto.on = function on(event, listener) {\n this._emitter.addListener(event, listener);\n };\n\n _proto.off = function off(event, listener) {\n this._emitter.removeListener(event, listener);\n };\n\n _proto.hasWorker = function hasWorker() {\n return this._worker != null;\n } //=============================================================================\n ;\n\n _proto.OpenAudioPlayer = function OpenAudioPlayer(sampleFmt, channels, sampleRate) {\n if (this.soundPlayer == null) {\n sampleFmt = 1;\n var encoding = '16bitInt';\n\n switch (sampleFmt) {\n case 0:\n encoding = '8bitInt';\n break;\n\n case 1:\n encoding = '16bitInt';\n break;\n\n case 2:\n encoding = '32bitInt';\n break;\n\n case 3:\n encoding = '32bitFloat';\n break;\n\n default:\n console.log('Unsupported audio sampleFmt ' + sampleFmt + '!');\n } //alert(\"encoding: \" + encoding);\n\n\n this.soundPlayer = new _common_soundPlayer__WEBPACK_IMPORTED_MODULE_10__[\"default\"]();\n this.soundPlayer.init({\n encoding: encoding,\n channels: channels,\n sampleRate: sampleRate,\n flushingTime: 1000\n });\n this.initAudioPlayer = true;\n }\n };\n\n _proto.createDecodeWorker = function createDecodeWorker() {\n //console.log(\"create decode worker...\");\n this.decodeWorker = null; //if (config.enableWorker && (typeof (Worker) !== 'undefined')) {\n\n if (typeof Worker !== 'undefined') {\n var w;\n\n try {\n w = this.decodeWorker = webworkify_webpack__WEBPACK_IMPORTED_MODULE_8__(/*require.resolve*/(/*! ../../../common/DecodeWorker.js */ \"./src/common/DecodeWorker.js\"));\n this.onwmsg = this.onWorkerMessage.bind(this);\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_7__[\"tOpenStream\"],\n url: _common_common__WEBPACK_IMPORTED_MODULE_7__[\"getFullURL\"](),\n isFlv: this._controller._isM3u8 ? false : true\n };\n w.postMessage(objData);\n w.addEventListener('message', this.onwmsg);\n\n w.onerror = function (event) {};\n } catch (err) {\n //logger.warn('Error in worker:', err);\n //logger.error('Error while initializing DemuxerWorker, fallback on DemuxerInline');\n console.log('Create Decode Worker fail: ' + err);\n\n if (w) {// revoke the Object URL that was used to create demuxer worker, so as not to leak it\n //global.URL.revokeObjectURL(w.objectURL);\n }\n\n this.w = undefined;\n }\n } else {\n this.decodeWorker = null;\n }\n\n if (this.decodeWorker) {\n if (this._webGLPlayer == null) {\n this._webGLPlayer = new _common_webgl__WEBPACK_IMPORTED_MODULE_9__[\"default\"](this._mediaCanvas);\n }\n }\n };\n\n _proto.getCurrentPlayTime = function getCurrentPlayTime() {\n return this.currentPlayTime;\n };\n\n _proto.getTotalDuration = function getTotalDuration() {\n if (this._controller) {\n return this._controller._GetM3u8TotalDuration();\n }\n\n return this.totalDuration;\n } //���: ��TsDemuxer�ص�������֡����\n ;\n\n _proto._onMediaDataCallback = function _onMediaDataCallback(_this, isWasm, mediaType, codecId, frametype, framedata, framesize, samplerateOrPts, channels, bitPerSample) {\n if (codecId < 1 && !isWasm && framesize === 1) {\n //������ȡ��һ��TS�ļ���ʱ��\n console.log('_onMediaDataCallback... Exception...');\n /*\n _this.GetNextTsFile(samplerateOrPts);\n if (this.initDuration > 0) {\n _this.totalDuration += (samplerateOrPts - this.initDuration); //ms\n }\n this.initDuration = samplerateOrPts;\n */\n\n return;\n }\n\n if (!isWasm) {\n if (_this._callbackWasmTypePtr) {\n _this._callbackWasmTypePtr(_this._callbackUserPtr, false);\n }\n\n return;\n }\n\n if (_this.decodeWorker == null) {\n _this.createDecodeWorker();\n\n if (_this._callbackWasmTypePtr) {\n _this._callbackWasmTypePtr(_this._callbackUserPtr, true);\n }\n }\n\n var bufdata = new Uint8Array(framedata);\n\n if (_this.decodeWorker) {\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_7__[\"tFrameData\"],\n mediaType: mediaType,\n codecId: codecId,\n frameType: frametype,\n samplerate: samplerateOrPts,\n channelNum: channels,\n bitPerSample: bitPerSample,\n playTimeSec: samplerateOrPts,\n dat: bufdata\n };\n\n _this.decodeWorker.postMessage(objData, [objData.dat.buffer]);\n }\n };\n\n _proto.onWorkerMessage = function onWorkerMessage(ev) {\n var data = ev.data; // console.log(ev)\n //console.log(\"FlvPlayer::MainThread: recv data.\");\n\n switch (data.cmd) {\n case _common_common__WEBPACK_IMPORTED_MODULE_7__[\"tDisconnect\"]:\n {\n //console.log(\"disconnect..\");\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_7__[\"tReOpenStream\"]\n };\n this.downloadWorker.postMessage(objData);\n }\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_7__[\"tCloseStream\"]:\n if (data.workerId == _common_common__WEBPACK_IMPORTED_MODULE_7__[\"DOWNLOAD_WORKER_ID\"]) {\n this.downloadWorker.terminate();\n this.downloadWorker = null; //console.log(\"download worker terminate\");\n } else if (data.workerId == _common_common__WEBPACK_IMPORTED_MODULE_7__[\"DECODE_WORKER_ID\"]) {\n this.decodeWorker.terminate();\n this.decodeWorker = null;\n\n if (this.soundPlayer) {\n this.soundPlayer.destroy();\n delete this.soundPlayer;\n this.soundPlayer = null;\n }\n\n if (this._webGLPlayer) {\n this._webGLPlayer.renderVideoFrame(null, 0, 0);\n } //console.log(\"Decode thread terminate...\");\n\n } else if (data.workerId == _common_common__WEBPACK_IMPORTED_MODULE_7__[\"RENDER_WORKER_ID\"]) {\n this.renderWorker.terminate();\n this.renderWorker = null;\n }\n\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_7__[\"tDecoderWorkerStartup\"]:\n {\n if (this.enableAudio) {\n this.openAudio();\n }\n }\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_7__[\"tFrameData\"]:\n if (data.workerId == _common_common__WEBPACK_IMPORTED_MODULE_7__[\"DOWNLOAD_WORKER_ID\"]) {\n //�����̴߳�����������, ת�������߳�\n if (this.decodeWorker) {//var bufdata = new Uint8Array(data.dat);\n //var objData = {\n //\tcmd: common.tFrameData,\n //\tmediaType: 0,\n //\tcodecId: 0,\n //\tsamplerate: 0,\n //\tchannelNum: 0,\n //\tbitPerSample: 0,\n //\tdat: bufdata\n //};\n //this.decodeWorker.postMessage(objData, [objData.dat.buffer]);\n //this.decodeWorker.postMessage(data);\n }\n } else if (data.workerId == _common_common__WEBPACK_IMPORTED_MODULE_7__[\"DECODE_WORKER_ID\"]) {\n if (this.pauseDisplay) break; //�����̴߳�����������, ������ʾ\n\n if (data.mediaType == 1) {\n //VIDEO\n this._mediaCanvas.width = data.width;\n this._mediaCanvas.height = data.height;\n\n if (this.getVideoInfoCB && this.getVideoInfoCallbackFunc && this.getVideoInfoCallbackFunc != undefined) {\n //this.getVideoInfoCallbackFunc(this._callbackPlaybackTimeUserPtr, data.codec, data.width, data.height);\n this.getVideoInfoCallbackFunc(this._callbackPlaybackTimeUserPtr, 'H265', data.width, data.height);\n this.getVideoInfoCB = false; //���ص�һ��\n } //console.log(\" Render: \" + data.framesize);\n //HLS�е�data.playTimeSec > 0\n\n\n if (data.playTimeSec > 0) {\n //console.log(\"render.. pts: \" + data.playTimeSec);\n //����������ʾ��ǰ���Ž���\n var timeDisplay = Math.floor((data.playTimeSec + 1000) / 1000);\n\n if (this.currentPlayTime !== timeDisplay) {\n if (this.initDuration > 0) {\n this.currentPlayTime += timeDisplay - this.initDuration; //ms\n }\n\n if (this.initDuration !== timeDisplay) {\n this.initDuration = timeDisplay; //this.currentPlayTime = timeDisplay;\n\n if (this._emitter) {\n this._emitter.emit(_mse_events_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"].CB_PLAY_INFO);\n }\n }\n }\n } //var videoData = new Uint8Array(data.dat);\n\n\n if (this._webGLPlayer) {\n this._webGLPlayer.renderVideoFrame(data.dat, data.width, data.height);\n }\n } else if (data.mediaType == 2) {\n //AUDIO\n if (this.soundPlayer == null) {\n //ƻ��������Ҫ�����û����������´���, ����������, ���������ڴ˴�����\n if (this.soundPlayer == null && !this.isiOS && !this.isiPad) {\n this.OpenAudioPlayer(data.fmt, data.samplerate >= 16000 ? 2 : data.ch, data.samplerate);\n } else {\n this.audioFmt = data.fmt;\n this.audioSamplerate = data.samplerate;\n this.audioChannelNum = data.ch;\n if (this.audioSamplerate == 44100) this.audioFmt = 1;\n }\n }\n\n if (this.enableAudio && this.soundPlayer && this.initAudioPlayer) {\n //console.log(\"Play audio...\");\n this.soundPlayer.play(data.dat);\n }\n }\n }\n\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_7__[\"tDecode\"]:\n if (this.avQueue.length > 0 && !this.pauseDisplay) {//this.decodeAndDisplayLoop();\n }\n\n break;\n\n default:\n break;\n }\n };\n\n _proto.openAudio = function openAudio() {\n //ִ�е��˴���˵��Ϊ�����\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_7__[\"tOpenAudio\"]\n };\n\n if (this.decodeWorker && this.decodeWorker !== undefined) {\n this.decodeWorker.postMessage(objData);\n } //if (this.enableAudio) return true;\n\n\n this.enableAudio = true; //�ݴ�����, �Ƚ����߳��������ٴ�����\n //�����iPad��iPhone, ����Ҫ�ڴ˴�������Ƶ����(�����û�����λ�ô���), �����������\n\n if (this.soundPlayer == null && (this.isiOS || this.isiPad)) {\n //this.audioFmt = 1;\n //this.audioSamplerate = 44100;\n //this.audioChannelNum = 2;\n if (this.audioSamplerate > 0) {\n this.OpenAudioPlayer(this.audioFmt, this.audioSamplerate >= 16000 ? 2 : this.audioChannelNum, this.audioSamplerate);\n } else {\n //��ʱ�����ʣ���ʧ��, ���û���һ���ֶ��㿪\n return false;\n }\n }\n\n return true;\n };\n\n _proto.closeAudio = function closeAudio() {\n //ִ�е��˴���˵��Ϊ�����\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_7__[\"tCloseAudio\"]\n };\n\n if (this.decodeWorker && this.decodeWorker !== undefined) {\n this.decodeWorker.postMessage(objData);\n }\n\n if (this.soundPlayer && this.initAudioPlayer) {\n //this.soundPlayer.pause();\n this.soundPlayer.clearAudioBuffer();\n }\n\n this.enableAudio = false;\n return true;\n } //=============================================================================\n ;\n\n _proto.open = function open() {\n if (this._worker) {\n this._worker.postMessage({\n cmd: 'start'\n });\n } else {\n this._controller.setMediaSourceCallback(this._onMediaDataCallback, this, this._callbackPlaybackTimePtr, this._callbackPlaybackTimeUserPtr, this.getVideoInfoCallbackFunc);\n\n this._controller.start();\n }\n };\n\n _proto.close = function close() {\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_7__[\"tCloseStream\"]\n };\n\n if (this.decodeWorker && this.decodeWorker !== undefined) {\n this.decodeWorker.postMessage(objData);\n }\n\n if (this._webGLPlayer) {\n //console.log(\"webglPlayer.destroy\");\n this._webGLPlayer.renderVideoFrame(null, 0, 0);\n\n this._webGLPlayer.destroy();\n\n delete this._webGLPlayer;\n this._webGLPlayer = null;\n }\n\n if (this._worker) {\n this._worker.postMessage({\n cmd: 'stop'\n });\n } else {\n this._controller.stop();\n }\n };\n\n _proto.changeSpeed = function changeSpeed(speedValue) {\n if (this._controller) {\n this._controller.changeSpeed(speedValue);\n }\n };\n\n _proto.seekToSecs = function seekToSecs(seekValue, seekType) {\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_7__[\"tSeekStream\"],\n type: seekType,\n time: seekValue\n }; //console.log(\"transmuxer.js::SeekToSecs... val[\" + seekValue + \"] type[\" + seekType + \"]\");\n\n if (this.decodeWorker && this.decodeWorker !== undefined) {\n this.decodeWorker.postMessage(objData);\n }\n\n this._controller.seekToSecs(seekValue, seekType);\n };\n\n _proto.seek = function seek(milliseconds) {\n if (this._worker) {\n this._worker.postMessage({\n cmd: 'seek',\n param: milliseconds\n });\n } else {\n this._controller.seek(milliseconds);\n }\n };\n\n _proto.isPaused = function isPaused() {\n return this.pauseDisplay;\n };\n\n _proto.pause = function pause() {\n this.pauseDisplay = true;\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_7__[\"tPauseStream\"]\n };\n\n if (this.decodeWorker && this.decodeWorker !== undefined) {\n this.decodeWorker.postMessage(objData);\n }\n\n if (this._controller) {\n var p = this._controller._GetM3u8Loader();\n\n if (p) {\n p.pause();\n } else {\n this._controller.pauseOrResume(true);\n }\n }\n\n if (this._worker) {\n this._worker.postMessage({\n cmd: 'pause'\n });\n } else {//this._controller.pause();\n }\n };\n\n _proto.resume = function resume() {\n this.pauseDisplay = false;\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_7__[\"tResumeStream\"]\n };\n\n if (this.decodeWorker && this.decodeWorker !== undefined) {\n this.decodeWorker.postMessage(objData);\n }\n\n if (this._controller) {\n var p = this._controller._GetM3u8Loader();\n\n if (p) {\n p.resume();\n } else {\n this._controller.pauseOrResume(false);\n }\n }\n\n if (this._worker) {\n this._worker.postMessage({\n cmd: 'resume'\n });\n } else {\n this._controller.resume();\n }\n };\n\n _proto.rtspScale = function rtspScale(scaleValue, ptsInterval) {\n if (this._controller) {\n this._controller.rtspScale(scaleValue, ptsInterval);\n }\n };\n\n _proto._onReconnecting = function _onReconnecting(reconnectTimes) {\n var _this2 = this;\n\n Promise.resolve().then(function () {\n _this2._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].RECONNECT_ING, reconnectTimes);\n });\n };\n\n _proto._onReconnectSuccess = function _onReconnectSuccess(reconnectTimes) {\n var _this3 = this;\n\n Promise.resolve().then(function () {\n _this3._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].RECONNECT_SUCCESS, reconnectTimes);\n });\n };\n\n _proto._onInitSegment = function _onInitSegment(type, initSegment) {\n var _this4 = this;\n\n // do async invoke\n Promise.resolve().then(function () {\n _this4._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].INIT_SEGMENT, type, initSegment);\n });\n };\n\n _proto._onMediaSegment = function _onMediaSegment(type, mediaSegment) {\n var _this5 = this;\n\n Promise.resolve().then(function () {\n _this5._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].MEDIA_SEGMENT, type, mediaSegment);\n });\n };\n\n _proto._onLoadingComplete = function _onLoadingComplete() {\n var _this6 = this;\n\n Promise.resolve().then(function () {\n _this6._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].LOADING_COMPLETE);\n });\n };\n\n _proto._onRecoveredEarlyEof = function _onRecoveredEarlyEof() {\n var _this7 = this;\n\n Promise.resolve().then(function () {\n _this7._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].RECOVERED_EARLY_EOF);\n });\n };\n\n _proto._onMediaInfo = function _onMediaInfo(mediaInfo) {\n var _this8 = this;\n\n Promise.resolve().then(function () {\n _this8._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].MEDIA_INFO, mediaInfo);\n });\n };\n\n _proto._onMetaDataArrived = function _onMetaDataArrived(metadata) {\n var _this9 = this;\n\n Promise.resolve().then(function () {\n _this9._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].METADATA_ARRIVED, metadata);\n });\n };\n\n _proto._onScriptDataArrived = function _onScriptDataArrived(data) {\n var _this10 = this;\n\n Promise.resolve().then(function () {\n _this10._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].SCRIPTDATA_ARRIVED, data);\n });\n };\n\n _proto._onStatisticsInfo = function _onStatisticsInfo(statisticsInfo) {\n var _this11 = this;\n\n Promise.resolve().then(function () {\n _this11._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].STATISTICS_INFO, statisticsInfo);\n });\n };\n\n _proto._onIOError = function _onIOError(type, info) {\n var _this12 = this;\n\n Promise.resolve().then(function () {\n _this12._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].IO_ERROR, type, info);\n });\n };\n\n _proto._onDemuxError = function _onDemuxError(type, info) {\n var _this13 = this;\n\n Promise.resolve().then(function () {\n _this13._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].DEMUX_ERROR, type, info);\n });\n };\n\n _proto._onRecommendSeekpoint = function _onRecommendSeekpoint(milliseconds) {\n var _this14 = this;\n\n Promise.resolve().then(function () {\n _this14._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].RECOMMEND_SEEKPOINT, milliseconds);\n });\n };\n\n _proto._onLoggingConfigChanged = function _onLoggingConfigChanged(config) {\n if (this._worker) {\n this._worker.postMessage({\n cmd: 'logging_config',\n param: config\n });\n }\n };\n\n _proto._onWorkerMessage = function _onWorkerMessage(e) {\n var message = e.data;\n var data = message.data;\n\n if (message.msg === 'destroyed' || this._workerDestroying) {\n this._workerDestroying = false;\n\n this._worker.terminate();\n\n this._worker = null;\n return;\n }\n\n switch (message.msg) {\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].INIT_SEGMENT:\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].MEDIA_SEGMENT:\n this._emitter.emit(message.msg, data.type, data.data);\n\n break;\n\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].LOADING_COMPLETE:\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].RECOVERED_EARLY_EOF:\n this._emitter.emit(message.msg);\n\n break;\n\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].MEDIA_INFO:\n Object.setPrototypeOf(data, _media_info_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].prototype);\n\n this._emitter.emit(message.msg, data);\n\n break;\n\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].METADATA_ARRIVED:\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].SCRIPTDATA_ARRIVED:\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].STATISTICS_INFO:\n this._emitter.emit(message.msg, data);\n\n break;\n\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].IO_ERROR:\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].DEMUX_ERROR:\n this._emitter.emit(message.msg, data.type, data.info);\n\n break;\n\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].RECOMMEND_SEEKPOINT:\n this._emitter.emit(message.msg, data);\n\n break;\n\n case 'logcat_callback':\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].emitter.emit('log', data.type, data.logcat);\n break;\n\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].RECONNECT_ING:\n console.log('no process... reconnectSuccess');\n break;\n\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].RECONNECT_SUCCESS:\n console.log('no process... reconnectSuccess');\n break;\n\n default:\n break;\n }\n };\n\n _proto.snapshot = function snapshot() {\n if (this._controller && this._controller != undefined) {\n this._controller.snapshot();\n }\n };\n\n return Transmuxer;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Transmuxer);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/core/transmuxer.js?"); | ||
| 3137 | + | ||
| 3138 | +/***/ }), | ||
| 3139 | + | ||
| 3140 | +/***/ "./src/FlvPlayer/flv.js/core/transmuxing-controller.js": | ||
| 3141 | +/*!*************************************************************!*\ | ||
| 3142 | + !*** ./src/FlvPlayer/flv.js/core/transmuxing-controller.js ***! | ||
| 3143 | + \*************************************************************/ | ||
| 3144 | +/*! exports provided: default */ | ||
| 3145 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3146 | + | ||
| 3147 | +"use strict"; | ||
| 3148 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! events */ \"./node_modules/node-libs-browser/node_modules/events/events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/FlvPlayer/flv.js/utils/logger.js\");\n/* harmony import */ var _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/browser.js */ \"./src/FlvPlayer/flv.js/utils/browser.js\");\n/* harmony import */ var _media_info_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./media-info.js */ \"./src/FlvPlayer/flv.js/core/media-info.js\");\n/* harmony import */ var _demux_flv_demuxer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../demux/flv-demuxer.js */ \"./src/FlvPlayer/flv.js/demux/flv-demuxer.js\");\n/* harmony import */ var _remux_mp4_remuxer_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../remux/mp4-remuxer.js */ \"./src/FlvPlayer/flv.js/remux/mp4-remuxer.js\");\n/* harmony import */ var _demux_demux_errors_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../demux/demux-errors.js */ \"./src/FlvPlayer/flv.js/demux/demux-errors.js\");\n/* harmony import */ var _io_io_controller_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../io/io-controller.js */ \"./src/FlvPlayer/flv.js/io/io-controller.js\");\n/* harmony import */ var _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./transmuxing-events.js */ \"./src/FlvPlayer/flv.js/core/transmuxing-events.js\");\n/* harmony import */ var _io_loader_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../io/loader.js */ \"./src/FlvPlayer/flv.js/io/loader.js\");\n/* harmony import */ var _TSDemuxer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../TSDemuxer */ \"./src/FlvPlayer/TSDemuxer.js\");\n/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../common/common */ \"./src/common/common.js\");\n/* harmony import */ var _demux_rtsp_demuxer_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../demux/rtsp-demuxer.js */ \"./src/FlvPlayer/flv.js/demux/rtsp-demuxer.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n // Transmuxing (IO, Demuxing, Remuxing) controller, with multipart support\n\nvar TransmuxingController = /*#__PURE__*/function () {\n function TransmuxingController(mediaDataSource, config) {\n this.TAG = 'TransmuxingController';\n this._emitter = new events__WEBPACK_IMPORTED_MODULE_0___default.a();\n this._config = config; // treat single part media as multipart media, which has only one segment\n\n if (!mediaDataSource.segments) {\n mediaDataSource.segments = [{\n duration: mediaDataSource.duration,\n filesize: mediaDataSource.filesize,\n url: mediaDataSource.url\n }];\n } // fill in default IO params if not exists\n\n\n if (typeof mediaDataSource.cors !== 'boolean') {\n mediaDataSource.cors = true;\n }\n\n if (typeof mediaDataSource.withCredentials !== 'boolean') {\n mediaDataSource.withCredentials = false;\n }\n\n this._mediaDataSource = mediaDataSource;\n this._currentSegmentIndex = 0;\n var totalDuration = 0;\n\n this._mediaDataSource.segments.forEach(function (segment) {\n // timestampBase for each segment, and calculate total duration\n segment.timestampBase = totalDuration;\n totalDuration += segment.duration; // params needed by IOController\n\n segment.cors = mediaDataSource.cors;\n segment.withCredentials = mediaDataSource.withCredentials; // referrer policy control, if exist\n\n if (config.referrerPolicy) {\n segment.referrerPolicy = config.referrerPolicy;\n }\n });\n\n if (!isNaN(totalDuration) && this._mediaDataSource.duration !== totalDuration) {\n this._mediaDataSource.duration = totalDuration;\n }\n\n this._mediaInfo = null;\n this._demuxer = null;\n this._remuxer = null;\n this._ioctl = null;\n this._pendingSeekTime = null;\n this._pendingResolveSeekPoint = null;\n this._statisticsReporter = null;\n this._callbackMediaData = null;\n this._callbackUserPtr = null;\n this._callbackPlaybackTimePtr = null;\n this._callbackPlaybackTimeUserPtr = null;\n this.getVideoInfoCallbackFunc = null;\n this._isM3u8 = false;\n this._isRtsp = false;\n this._reconnectTimes = 0; //��������\n }\n\n var _proto = TransmuxingController.prototype;\n\n _proto.destroy = function destroy() {\n this._mediaInfo = null;\n this._mediaDataSource = null;\n\n if (this._statisticsReporter) {\n this._disableStatisticsReporter();\n }\n\n if (this._ioctl) {\n this._ioctl.destroy();\n\n this._ioctl = null;\n }\n\n if (this._demuxer) {\n this._demuxer.destroy();\n\n this._demuxer = null;\n }\n\n if (this._remuxer) {\n this._remuxer.destroy();\n\n this._remuxer = null;\n }\n\n this._emitter.removeAllListeners();\n\n this._emitter = null;\n };\n\n _proto.on = function on(event, listener) {\n this._emitter.addListener(event, listener);\n };\n\n _proto.off = function off(event, listener) {\n this._emitter.removeListener(event, listener);\n };\n\n _proto.setMediaSourceCallback = function setMediaSourceCallback(cbPtr, userPtr, callbackPlaybackTimePtr, cbTimeUserPtr, getVideoInfoCbFunc) {\n this._callbackMediaData = cbPtr;\n this._callbackUserPtr = userPtr;\n this._callbackPlaybackTimePtr = callbackPlaybackTimePtr;\n this._callbackPlaybackTimeUserPtr = cbTimeUserPtr;\n this.getVideoInfoCallbackFunc = getVideoInfoCbFunc;\n };\n\n _proto.start = function start() {\n this._loadSegment(0);\n\n this._enableStatisticsReporter();\n };\n\n _proto._loadSegment = function _loadSegment(segmentIndex, optionalFrom) {\n this._currentSegmentIndex = segmentIndex;\n if (this._mediaDataSource.segments == null) return;\n var dataSource = this._mediaDataSource.segments[segmentIndex];\n var ioctl = this._ioctl = new _io_io_controller_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"](dataSource, this._config, segmentIndex, this._mediaDataSource.startPlaySecs);\n ioctl.onError = this._onIOException.bind(this);\n ioctl.onSeeked = this._onIOSeeked.bind(this);\n ioctl.onComplete = this._onIOComplete.bind(this);\n ioctl.onRedirect = this._onIORedirect.bind(this);\n ioctl.onRecoveredEarlyEof = this._onIORecoveredEarlyEof.bind(this);\n\n if (optionalFrom) {\n this._demuxer.bindDataSource(this._ioctl);\n } else {\n ioctl.onDataArrival = this._onInitChunkArrival.bind(this);\n }\n\n ioctl.open(optionalFrom);\n this._isM3u8 = ioctl._IsM3u8Loader();\n this._isRtsp = ioctl._IsRtspLoader();\n };\n\n _proto.stop = function stop() {\n this._internalAbort();\n\n this._disableStatisticsReporter();\n };\n\n _proto._internalAbort = function _internalAbort() {\n if (this._ioctl) {\n this._ioctl.destroy();\n\n this._ioctl = null;\n }\n };\n\n _proto.pauseOrResume = function pauseOrResume(b) {\n if (this._demuxer == null) return;\n if (this._isM3u8) return;\n\n if (this._isRtsp) {\n if (b) {\n this._ioctl.pause();\n } else {\n this._ioctl.resume();\n }\n }\n\n if (b) {\n this._demuxer.pause();\n } else {\n this._remuxer.seek(0);\n\n this._demuxer.resume();\n }\n };\n\n _proto.pause = function pause() {\n // take a rest\n if (this._ioctl && this._ioctl.isWorking()) {\n this._ioctl.pause();\n\n this._disableStatisticsReporter();\n }\n };\n\n _proto.resume = function resume() {\n if (this._ioctl && this._ioctl.isPaused()) {\n this._ioctl.resume();\n\n this._enableStatisticsReporter();\n }\n };\n\n _proto.rtspScale = function rtspScale(scaleValue, ptsInterval) {\n if (this._isRtsp) {\n this._ioctl.rtspScale(scaleValue);\n\n if (this._demuxer && this._demuxer != undefined) {\n this._demuxer.changeSpeed(ptsInterval);\n }\n }\n };\n\n _proto.changeSpeed = function changeSpeed(speedValue) {\n if (this._remuxer) {\n this._remuxer.changeSpeed(speedValue);\n }\n };\n\n _proto.seekToSecs = function seekToSecs(seekValue, seekType) {\n var p = this._ioctl._GetM3u8Loader();\n\n if (p) {\n p.seek(seekValue, seekType);\n\n if (this._demuxer) {\n this._demuxer.resetMediaPts(1); //this._demuxer.resetMediaInfo();\n\n }\n }\n\n if (this._remuxer) {\n this._remuxer.seek(0); //this._remuxer.insertDiscontinuity();\n\n }\n\n if (p && this._demuxer) {\n this._demuxer.resetMediaPts(0);\n }\n };\n\n _proto.seek = function seek(milliseconds) {\n if (this._mediaInfo == null || !this._mediaInfo.isSeekable()) {\n return;\n }\n\n var targetSegmentIndex = this._searchSegmentIndexContains(milliseconds);\n\n if (targetSegmentIndex === this._currentSegmentIndex) {\n // intra-segment seeking\n var segmentInfo = this._mediaInfo.segments[targetSegmentIndex];\n\n if (segmentInfo == undefined) {\n // current segment loading started, but mediainfo hasn't received yet\n // wait for the metadata loaded, then seek to expected position\n this._pendingSeekTime = milliseconds;\n } else {\n var keyframe = segmentInfo.getNearestKeyframe(milliseconds);\n\n this._remuxer.seek(keyframe.milliseconds);\n\n this._ioctl.seek(keyframe.fileposition); // Will be resolved in _onRemuxerMediaSegmentArrival()\n\n\n this._pendingResolveSeekPoint = keyframe.milliseconds;\n }\n } else {\n // cross-segment seeking\n var targetSegmentInfo = this._mediaInfo.segments[targetSegmentIndex];\n\n if (targetSegmentInfo == undefined) {\n // target segment hasn't been loaded. We need metadata then seek to expected time\n this._pendingSeekTime = milliseconds;\n\n this._internalAbort();\n\n this._remuxer.seek();\n\n this._remuxer.insertDiscontinuity();\n\n this._loadSegment(targetSegmentIndex); // Here we wait for the metadata loaded, then seek to expected position\n\n } else {\n // We have target segment's metadata, direct seek to target position\n var _keyframe = targetSegmentInfo.getNearestKeyframe(milliseconds);\n\n this._internalAbort();\n\n this._remuxer.seek(milliseconds);\n\n this._remuxer.insertDiscontinuity();\n\n this._demuxer.resetMediaInfo();\n\n this._demuxer.timestampBase = this._mediaDataSource.segments[targetSegmentIndex].timestampBase;\n\n this._loadSegment(targetSegmentIndex, _keyframe.fileposition);\n\n this._pendingResolveSeekPoint = _keyframe.milliseconds;\n\n this._reportSegmentMediaInfo(targetSegmentIndex);\n }\n }\n\n this._enableStatisticsReporter();\n };\n\n _proto._searchSegmentIndexContains = function _searchSegmentIndexContains(milliseconds) {\n var segments = this._mediaDataSource.segments;\n var idx = segments.length - 1;\n\n for (var i = 0; i < segments.length; i++) {\n if (milliseconds < segments[i].timestampBase) {\n idx = i - 1;\n break;\n }\n }\n\n return idx;\n };\n\n _proto._onInitChunkArrival = function _onInitChunkArrival(data, byteStart) {\n var _this = this;\n\n if (!this._isM3u8 && !this._isRtsp) {\n var probeData = null;\n var consumed = 0;\n\n if (data == null && byteStart < 0) {\n //console.log(\"Reconnecting [\" + byteStart + \"]\");\n //������\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].RECONNECT_ING, byteStart);\n\n return;\n } else if (data == null && byteStart > 0) {\n /*\n console.log(\"Reconnected [\" + byteStart + \"]\");\n this._reconnectTimes++;\n if (this._reconnectTimes > 0) {\n //�����ɹ�\n this._emitter.emit(TransmuxingEvents.RECONNECT_SUCCESS, this._reconnectTimes);\n }\n */\n return;\n }\n\n if (byteStart > 0) {\n // IOController seeked immediately after opened, byteStart > 0 callback may received\n this._demuxer.bindDataSource(this._ioctl);\n\n this._demuxer.timestampBase = this._mediaDataSource.segments[this._currentSegmentIndex].timestampBase;\n consumed = this._demuxer.parseChunks(data, byteStart);\n } else if ((probeData = _demux_flv_demuxer_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].probe(data)).match) {\n // Always create new FLVDemuxer\n this._demuxer = new _demux_flv_demuxer_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"](probeData, this._config, this._callbackMediaData, this._callbackUserPtr, this._callbackPlaybackTimeUserPtr, this.getVideoInfoCallbackFunc);\n\n if (!this._remuxer) {\n this._remuxer = new _remux_mp4_remuxer_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"](this._config);\n }\n\n var mds = this._mediaDataSource;\n\n if (mds.duration != undefined && !isNaN(mds.duration)) {\n this._demuxer.overridedDuration = mds.duration;\n }\n\n if (typeof mds.hasAudio === 'boolean') {\n this._demuxer.overridedHasAudio = mds.hasAudio;\n }\n\n if (typeof mds.hasVideo === 'boolean') {\n this._demuxer.overridedHasVideo = mds.hasVideo;\n }\n\n this._demuxer.timestampBase = mds.segments[this._currentSegmentIndex].timestampBase;\n this._demuxer.onError = this._onDemuxException.bind(this);\n this._demuxer.onMediaInfo = this._onMediaInfo.bind(this);\n this._demuxer.onMetaDataArrived = this._onMetaDataArrived.bind(this);\n this._demuxer.onScriptDataArrived = this._onScriptDataArrived.bind(this);\n\n this._remuxer.bindDataSource(this._demuxer.bindDataSource(this._ioctl));\n\n this._remuxer.onInitSegment = this._onRemuxerInitSegmentArrival.bind(this);\n this._remuxer.onMediaSegment = this._onRemuxerMediaSegmentArrival.bind(this);\n consumed = this._demuxer.parseChunks(data, byteStart); //gavin\n\n if (this._reconnectTimes > 0) {\n //�����ɹ�\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].RECONNECT_SUCCESS, this._reconnectTimes);\n }\n\n this._reconnectTimes++;\n } else {\n probeData = null;\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].e(this.TAG, 'Non-FLV, Unsupported media type!');\n Promise.resolve().then(function () {\n _this._internalAbort();\n });\n\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].DEMUX_ERROR, _demux_demux_errors_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].FORMAT_UNSUPPORTED, 'Non-FLV, Unsupported media type');\n\n consumed = 0;\n }\n\n return consumed;\n } //RTSP\n else if (this._isRtsp) {\n var _probeData = null;\n var _consumed = 0;\n\n if (data == null && byteStart < 0) {\n //console.log(\"Reconnecting [\" + byteStart + \"]\");\n //������\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].RECONNECT_ING, byteStart);\n\n return;\n } else if (data == null && byteStart > 0) {\n //console.log(\"Reconnected [\" + byteStart + \"]\");\n //this._reconnectTimes++;\n //if (this._reconnectTimes > 0) {\n // //�����ɹ�\n // this._emitter.emit(TransmuxingEvents.RECONNECT_SUCCESS, this._reconnectTimes);\n //}\n return;\n } //console.log(\"proc rtsp data...\" + byteStart + \" :\" + data);\n\n\n if (byteStart > 0) {\n // IOController seeked immediately after opened, byteStart > 0 callback may received\n this._demuxer.bindDataSource(this._ioctl);\n\n this._demuxer.timestampBase = this._mediaDataSource.segments[this._currentSegmentIndex].timestampBase;\n _consumed = this._demuxer.parseChunks(data, byteStart);\n } else if ((_probeData = _demux_rtsp_demuxer_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"].probe(data)).match) {\n // Always create new RTSPDemuxer\n this._demuxer = new _demux_rtsp_demuxer_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"](_probeData, this._config, this._callbackMediaData, this._callbackUserPtr, this._callbackPlaybackTimePtr, this._callbackPlaybackTimeUserPtr, this.getVideoInfoCallbackFunc);\n\n if (!this._remuxer) {\n this._remuxer = new _remux_mp4_remuxer_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"](this._config);\n }\n\n var _mds = this._mediaDataSource;\n\n if (_mds.duration != undefined && !isNaN(_mds.duration)) {\n this._demuxer.overridedDuration = _mds.duration;\n }\n\n if (typeof _mds.hasAudio === 'boolean') {\n this._demuxer.overridedHasAudio = _mds.hasAudio;\n }\n\n if (typeof _mds.hasVideo === 'boolean') {\n this._demuxer.overridedHasVideo = _mds.hasVideo;\n }\n\n this._demuxer.timestampBase = _mds.segments[this._currentSegmentIndex].timestampBase;\n this._demuxer.onError = this._onDemuxException.bind(this);\n this._demuxer.onMediaInfo = this._onMediaInfo.bind(this);\n this._demuxer.onMetaDataArrived = this._onMetaDataArrived.bind(this);\n this._demuxer.onScriptDataArrived = this._onScriptDataArrived.bind(this);\n\n this._remuxer.bindDataSource(this._demuxer.bindDataSource(this._ioctl));\n\n this._remuxer.onInitSegment = this._onRemuxerInitSegmentArrival.bind(this);\n this._remuxer.onMediaSegment = this._onRemuxerMediaSegmentArrival.bind(this); //consumed = this._demuxer.parseChunks(data, byteStart);\n //gavin\n\n if (this._reconnectTimes > 0) {\n //�����ɹ�\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].RECONNECT_SUCCESS, this._reconnectTimes);\n }\n\n this._reconnectTimes++;\n } else {\n _probeData = null;\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].e(this.TAG, 'Non-RTSP, Unsupported media type!');\n Promise.resolve().then(function () {\n _this._internalAbort();\n });\n\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].DEMUX_ERROR, _demux_demux_errors_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].FORMAT_UNSUPPORTED, 'Non-RTSP, Unsupported media type');\n\n _consumed = 0;\n }\n\n return _consumed;\n } //M3U8\n else {\n //console.log(\"parse m3u8 data...\");\n //==================================================================================\n //==================================================================================\n //=======================M3U8=======================================================\n //==================================================================================\n //==================================================================================\n if (data == null && byteStart < 0) {\n //console.log(\"Reconnecting [\" + byteStart + \"]\");\n //������\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].RECONNECT_ING, byteStart);\n\n return;\n } else if (data == null && byteStart > 0) {\n //console.log(\"Reconnected [\" + byteStart + \"]\");\n //this._reconnectTimes++;\n //if (this._reconnectTimes > 0) {\n // //�����ɹ�\n // this._emitter.emit(TransmuxingEvents.RECONNECT_SUCCESS, this._reconnectTimes);\n //}\n return;\n }\n\n var _probeData2 = null;\n var _consumed2 = 0;\n\n if (byteStart > 0) {\n // IOController seeked immediately after opened, byteStart > 0 callback may received\n this._demuxer.bindDataSource(this._ioctl);\n\n this._demuxer.timestampBase = this._mediaDataSource.segments[this._currentSegmentIndex].timestampBase;\n\n this._demuxer.append(data, byteStart, 0);\n\n _consumed2 = data.length;\n } else {\n this._demuxer = new _TSDemuxer__WEBPACK_IMPORTED_MODULE_10__[\"default\"](this._config, this._callbackMediaData, this._callbackUserPtr);\n\n if (!this._remuxer) {\n this._remuxer = new _remux_mp4_remuxer_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"](this._config);\n }\n\n var _mds2 = this._mediaDataSource;\n\n if (_mds2.duration != undefined && !isNaN(_mds2.duration)) {\n this._demuxer.overridedDuration = _mds2.duration;\n }\n\n if (typeof _mds2.hasAudio === 'boolean') {\n this._demuxer.overridedHasAudio = _mds2.hasAudio;\n }\n\n if (typeof _mds2.hasVideo === 'boolean') {\n this._demuxer.overridedHasVideo = _mds2.hasVideo;\n }\n\n this._demuxer.timestampBase = _mds2.segments[this._currentSegmentIndex].timestampBase;\n this._demuxer.onError = this._onDemuxException.bind(this);\n this._demuxer.onMediaInfo = this._onMediaInfo.bind(this);\n this._demuxer.onMetaDataArrived = this._onMetaDataArrived.bind(this);\n this._demuxer.onScriptDataArrived = this._onScriptDataArrived.bind(this);\n\n this._remuxer.bindDataSource(this._demuxer.bindDataSource(this._ioctl));\n\n this._remuxer.onInitSegment = this._onRemuxerInitSegmentArrival.bind(this);\n this._remuxer.onMediaSegment = this._onRemuxerMediaSegmentArrival.bind(this);\n\n this._demuxer.append(data, byteStart, 0);\n\n _consumed2 = data.length; //ts����ȫ����\n }\n\n return _consumed2;\n }\n };\n\n _proto._GetM3u8Loader = function _GetM3u8Loader() {\n if (this._ioctl == null) return null;\n\n var p = this._ioctl._GetM3u8Loader();\n\n if (p) {\n return p;\n }\n\n return null;\n };\n\n _proto._GetM3u8TotalDuration = function _GetM3u8TotalDuration() {\n if (this._ioctl == null) return 0;\n\n var p = this._ioctl._GetM3u8Loader();\n\n if (p) {\n return p.GetM3u8TotalDuration();\n }\n\n return 0;\n };\n\n _proto._onMediaInfo = function _onMediaInfo(mediaInfo) {\n var _this2 = this;\n\n //console.log(\"transmuxing-controller.js::_onMediaInfo\");\n if (this._mediaInfo == null) {\n // Store first segment's mediainfo as global mediaInfo\n this._mediaInfo = Object.assign({}, mediaInfo);\n this._mediaInfo.keyframesIndex = null;\n this._mediaInfo.segments = [];\n this._mediaInfo.segmentCount = this._mediaDataSource.segments.length;\n Object.setPrototypeOf(this._mediaInfo, _media_info_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].prototype);\n }\n\n var segmentInfo = Object.assign({}, mediaInfo);\n Object.setPrototypeOf(segmentInfo, _media_info_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].prototype);\n this._mediaInfo.segments[this._currentSegmentIndex] = segmentInfo; // notify mediaInfo update\n\n this._reportSegmentMediaInfo(this._currentSegmentIndex);\n\n if (this._pendingSeekTime != null) {\n Promise.resolve().then(function () {\n var target = _this2._pendingSeekTime;\n _this2._pendingSeekTime = null;\n\n _this2.seek(target);\n });\n }\n };\n\n _proto._onMetaDataArrived = function _onMetaDataArrived(metadata) {\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].METADATA_ARRIVED, metadata);\n };\n\n _proto._onScriptDataArrived = function _onScriptDataArrived(data) {\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].SCRIPTDATA_ARRIVED, data);\n };\n\n _proto._onIOSeeked = function _onIOSeeked() {\n this._remuxer.insertDiscontinuity();\n };\n\n _proto._onIOComplete = function _onIOComplete(extraData) {\n var segmentIndex = extraData;\n var nextSegmentIndex = segmentIndex + 1; //console.log(\"extraData: \" + extraData);\n //let ioCtlIsM3u8Loader = false;\n\n if (this._ioctl && this._ioctl._IsM3u8Loader()) {\n //ioCtlIsM3u8Loader = true;\n var m3u8Loader = this._ioctl._GetM3u8Loader(); //if (m3u8Loader.)\n\n\n if (_common_common__WEBPACK_IMPORTED_MODULE_11__[\"GetLiveStreamType\"]()) {\n console.log('M3u8: Reconnect Success'); //����MSE\n\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].RECONNECT_SUCCESS, 2); //���ٽ⸴��ģ��\n\n\n if (this._demuxer) {\n this._demuxer.destroy();\n\n this._demuxer = null;\n } //���ٸ���ģ��\n\n\n if (this._remuxer) {\n this._remuxer.destroy();\n\n this._remuxer = null;\n } //����ioctl\n\n\n if (this._ioctl) {\n this._ioctl.destroy();\n\n this._ioctl = null;\n } //���´���ioctl\n\n\n this.start();\n } else {\n /*\n //����MSE\n this._emitter.emit(TransmuxingEvents.RECONNECT_SUCCESS, 2);\n //���ٽ⸴��ģ��\n if (this._demuxer) {\n this._demuxer.destroy();\n this._demuxer = null;\n }\n //���ٸ���ģ��\n if (this._remuxer) {\n this._remuxer.destroy();\n this._remuxer = null;\n }\n */\n }\n\n return;\n }\n\n if (nextSegmentIndex < this._mediaDataSource.segments.length) {\n //console.log(\"transmuxing-controller.js::_onIOComplete: nextSegmentIndex < this._mediaDataSource.segments.length: \" + nextSegmentIndex + \" < \" + this._mediaDataSource.segments.length);\n this._internalAbort();\n\n if (this._remuxer) {\n this._remuxer.flushStashedSamples();\n } //this._loadSegment(nextSegmentIndex);\n //gavin\n\n\n if (extraData === -1) {\n if (this._demuxer) {\n this._demuxer.destroy();\n\n this._demuxer = null;\n }\n\n if (this._remuxer) {\n this._remuxer.destroy();\n\n this._remuxer = null;\n }\n\n if (this._ioctl) {\n this._ioctl.destroy();\n\n this._ioctl = null;\n }\n\n var _self = this;\n\n _common_common__WEBPACK_IMPORTED_MODULE_11__[\"sleep\"](3000).then(function () {\n //console.log(\"Reopen...\");\n _self.start();\n });\n }\n } else {\n //console.log(\"transmuxing-controller.js::_onIOComplete: nextSegmentIndex >= this._mediaDataSource.segments.length: \" + nextSegmentIndex + \" >= \" + this._mediaDataSource.segments.length);\n if (this._remuxer) {\n this._remuxer.flushStashedSamples();\n\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].LOADING_COMPLETE);\n\n this._disableStatisticsReporter();\n } //gavin\n\n\n if (extraData === -1) {\n if (this._demuxer) {\n this._demuxer.destroy();\n\n this._demuxer = null;\n }\n\n if (this._remuxer) {\n this._remuxer.destroy();\n\n this._remuxer = null;\n }\n\n if (this._ioctl) {\n this._ioctl.destroy();\n\n this._ioctl = null;\n } //console.log(\"Destroy..... demuxer... remuxer... ioctl...\");\n\n\n var _self2 = this;\n\n _common_common__WEBPACK_IMPORTED_MODULE_11__[\"sleep\"](3000).then(function () {\n //console.log(\"Reopen...\");\n _self2.start();\n });\n }\n }\n };\n\n _proto._onIORedirect = function _onIORedirect(redirectedURL) {\n var segmentIndex = this._ioctl.extraData;\n this._mediaDataSource.segments[segmentIndex].redirectedURL = redirectedURL;\n };\n\n _proto._onIORecoveredEarlyEof = function _onIORecoveredEarlyEof() {\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].RECOVERED_EARLY_EOF);\n };\n\n _proto._onIOException = function _onIOException(type, info) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].e(this.TAG, \"IOException: type = \" + type + \", code = \" + info.code + \", msg = \" + info.msg);\n\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].IO_ERROR, type, info);\n\n this._disableStatisticsReporter();\n };\n\n _proto._onDemuxException = function _onDemuxException(type, info) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].e(this.TAG, \"DemuxException: type = \" + type + \", info = \" + info);\n\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].DEMUX_ERROR, type, info);\n };\n\n _proto._onRemuxerInitSegmentArrival = function _onRemuxerInitSegmentArrival(type, initSegment) {\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].INIT_SEGMENT, type, initSegment);\n };\n\n _proto._onRemuxerMediaSegmentArrival = function _onRemuxerMediaSegmentArrival(type, mediaSegment) {\n if (this._pendingSeekTime != null) {\n // Media segments after new-segment cross-seeking should be dropped.\n return;\n }\n\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].MEDIA_SEGMENT, type, mediaSegment); // Resolve pending seekPoint\n\n\n if (this._pendingResolveSeekPoint != null && type === 'video') {\n var syncPoints = mediaSegment.info.syncPoints;\n var seekpoint = this._pendingResolveSeekPoint;\n this._pendingResolveSeekPoint = null; // Safari: Pass PTS for recommend_seekpoint\n\n if (_utils_browser_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].safari && syncPoints.length > 0 && syncPoints[0].originalDts === seekpoint) {\n seekpoint = syncPoints[0].pts;\n } // else: use original DTS (keyframe.milliseconds)\n\n\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].RECOMMEND_SEEKPOINT, seekpoint);\n }\n };\n\n _proto._enableStatisticsReporter = function _enableStatisticsReporter() {\n if (this._statisticsReporter == null) {\n this._statisticsReporter = self.setInterval(this._reportStatisticsInfo.bind(this), this._config.statisticsInfoReportInterval);\n }\n };\n\n _proto._disableStatisticsReporter = function _disableStatisticsReporter() {\n if (this._statisticsReporter) {\n self.clearInterval(this._statisticsReporter);\n this._statisticsReporter = null;\n }\n };\n\n _proto._reportSegmentMediaInfo = function _reportSegmentMediaInfo(segmentIndex) {\n var segmentInfo = this._mediaInfo.segments[segmentIndex];\n var exportInfo = Object.assign({}, segmentInfo);\n exportInfo.duration = this._mediaInfo.duration;\n exportInfo.segmentCount = this._mediaInfo.segmentCount;\n delete exportInfo.segments;\n delete exportInfo.keyframesIndex;\n\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].MEDIA_INFO, exportInfo);\n };\n\n _proto._reportStatisticsInfo = function _reportStatisticsInfo() {\n var info = {};\n if (this._ioctl == null) return;\n info.url = this._ioctl.currentURL;\n info.hasRedirect = this._ioctl.hasRedirect;\n\n if (info.hasRedirect) {\n info.redirectedURL = this._ioctl.currentRedirectedURL;\n }\n\n info.speed = this._ioctl.currentSpeed;\n info.loaderType = this._ioctl.loaderType;\n info.currentSegmentIndex = this._currentSegmentIndex;\n info.totalSegmentCount = this._mediaDataSource.segments.length;\n\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].STATISTICS_INFO, info);\n };\n\n _proto.snapshot = function snapshot() {\n if (this._demuxer && this._demuxer != undefined) {\n this._demuxer.snapshot();\n }\n };\n\n return TransmuxingController;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (TransmuxingController);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/core/transmuxing-controller.js?"); | ||
| 3149 | + | ||
| 3150 | +/***/ }), | ||
| 3151 | + | ||
| 3152 | +/***/ "./src/FlvPlayer/flv.js/core/transmuxing-events.js": | ||
| 3153 | +/*!*********************************************************!*\ | ||
| 3154 | + !*** ./src/FlvPlayer/flv.js/core/transmuxing-events.js ***! | ||
| 3155 | + \*********************************************************/ | ||
| 3156 | +/*! exports provided: default */ | ||
| 3157 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3158 | + | ||
| 3159 | +"use strict"; | ||
| 3160 | +eval("__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar TransmuxingEvents = {\n IO_ERROR: 'io_error',\n DEMUX_ERROR: 'demux_error',\n INIT_SEGMENT: 'init_segment',\n MEDIA_SEGMENT: 'media_segment',\n LOADING_COMPLETE: 'loading_complete',\n RECOVERED_EARLY_EOF: 'recovered_early_eof',\n MEDIA_INFO: 'media_info',\n METADATA_ARRIVED: 'metadata_arrived',\n SCRIPTDATA_ARRIVED: 'scriptdata_arrived',\n STATISTICS_INFO: 'statistics_info',\n RECOMMEND_SEEKPOINT: 'recommend_seekpoint',\n RECONNECT_ING: 'reconnect_ing',\n RECONNECT_SUCCESS: 'reconnect_success'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (TransmuxingEvents);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/core/transmuxing-events.js?"); | ||
| 3161 | + | ||
| 3162 | +/***/ }), | ||
| 3163 | + | ||
| 3164 | +/***/ "./src/FlvPlayer/flv.js/core/transmuxing-worker.js": | ||
| 3165 | +/*!*********************************************************!*\ | ||
| 3166 | + !*** ./src/FlvPlayer/flv.js/core/transmuxing-worker.js ***! | ||
| 3167 | + \*********************************************************/ | ||
| 3168 | +/*! exports provided: default */ | ||
| 3169 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3170 | + | ||
| 3171 | +"use strict"; | ||
| 3172 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/FlvPlayer/flv.js/utils/logger.js\");\n/* harmony import */ var _utils_logging_control_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/logging-control.js */ \"./src/FlvPlayer/flv.js/utils/logging-control.js\");\n/* harmony import */ var _utils_polyfill_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/polyfill.js */ \"./src/FlvPlayer/flv.js/utils/polyfill.js\");\n/* harmony import */ var _transmuxing_controller_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./transmuxing-controller.js */ \"./src/FlvPlayer/flv.js/core/transmuxing-controller.js\");\n/* harmony import */ var _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./transmuxing-events.js */ \"./src/FlvPlayer/flv.js/core/transmuxing-events.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\n\n/* post message to worker:\n data: {\n cmd: string\n param: any\n }\n\n receive message from worker:\n data: {\n msg: string,\n data: any\n }\n */\n\nvar TransmuxingWorker = function TransmuxingWorker(self) {\n var TAG = 'TransmuxingWorker';\n var controller = null;\n var logcatListener = onLogcatCallback.bind(this);\n _utils_polyfill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].install();\n self.addEventListener('message', function (e) {\n switch (e.data.cmd) {\n case 'init':\n controller = new _transmuxing_controller_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"](e.data.param[0], e.data.param[1]);\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].IO_ERROR, onIOError.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].DEMUX_ERROR, onDemuxError.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].INIT_SEGMENT, onInitSegment.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].MEDIA_SEGMENT, onMediaSegment.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].LOADING_COMPLETE, onLoadingComplete.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].RECOVERED_EARLY_EOF, onRecoveredEarlyEof.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].MEDIA_INFO, onMediaInfo.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].METADATA_ARRIVED, onMetaDataArrived.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].SCRIPTDATA_ARRIVED, onScriptDataArrived.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].STATISTICS_INFO, onStatisticsInfo.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].RECOMMEND_SEEKPOINT, onRecommendSeekpoint.bind(this));\n break;\n\n case 'destroy':\n if (controller) {\n controller.destroy();\n controller = null;\n }\n\n self.postMessage({\n msg: 'destroyed'\n });\n break;\n\n case 'start':\n controller.start();\n break;\n\n case 'stop':\n controller.stop();\n break;\n\n case 'seek':\n controller.seek(e.data.param);\n break;\n\n case 'pause':\n controller.pause();\n break;\n\n case 'resume':\n controller.resume();\n break;\n\n case 'logging_config':\n {\n var config = e.data.param;\n _utils_logging_control_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].applyConfig(config);\n\n if (config.enableCallback === true) {\n _utils_logging_control_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].addLogListener(logcatListener);\n } else {\n _utils_logging_control_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].removeLogListener(logcatListener);\n }\n\n break;\n }\n }\n });\n\n function onInitSegment(type, initSegment) {\n var obj = {\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].INIT_SEGMENT,\n data: {\n type: type,\n data: initSegment\n }\n };\n self.postMessage(obj, [initSegment.data]); // data: ArrayBuffer\n }\n\n function onMediaSegment(type, mediaSegment) {\n var obj = {\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].MEDIA_SEGMENT,\n data: {\n type: type,\n data: mediaSegment\n }\n };\n self.postMessage(obj, [mediaSegment.data]); // data: ArrayBuffer\n }\n\n function onLoadingComplete() {\n var obj = {\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].LOADING_COMPLETE\n };\n self.postMessage(obj);\n }\n\n function onRecoveredEarlyEof() {\n var obj = {\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].RECOVERED_EARLY_EOF\n };\n self.postMessage(obj);\n }\n\n function onMediaInfo(mediaInfo) {\n var obj = {\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].MEDIA_INFO,\n data: mediaInfo\n };\n self.postMessage(obj);\n }\n\n function onMetaDataArrived(metadata) {\n var obj = {\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].METADATA_ARRIVED,\n data: metadata\n };\n self.postMessage(obj);\n }\n\n function onScriptDataArrived(data) {\n var obj = {\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].SCRIPTDATA_ARRIVED,\n data: data\n };\n self.postMessage(obj);\n }\n\n function onStatisticsInfo(statInfo) {\n var obj = {\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].STATISTICS_INFO,\n data: statInfo\n };\n self.postMessage(obj);\n }\n\n function onIOError(type, info) {\n self.postMessage({\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].IO_ERROR,\n data: {\n type: type,\n info: info\n }\n });\n }\n\n function onDemuxError(type, info) {\n self.postMessage({\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].DEMUX_ERROR,\n data: {\n type: type,\n info: info\n }\n });\n }\n\n function onRecommendSeekpoint(milliseconds) {\n self.postMessage({\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].RECOMMEND_SEEKPOINT,\n data: milliseconds\n });\n }\n\n function onLogcatCallback(type, str) {\n self.postMessage({\n msg: 'logcat_callback',\n data: {\n type: type,\n logcat: str\n }\n });\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (TransmuxingWorker);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/core/transmuxing-worker.js?"); | ||
| 3173 | + | ||
| 3174 | +/***/ }), | ||
| 3175 | + | ||
| 3176 | +/***/ "./src/FlvPlayer/flv.js/demux/amf-parser.js": | ||
| 3177 | +/*!**************************************************!*\ | ||
| 3178 | + !*** ./src/FlvPlayer/flv.js/demux/amf-parser.js ***! | ||
| 3179 | + \**************************************************/ | ||
| 3180 | +/*! exports provided: default */ | ||
| 3181 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3182 | + | ||
| 3183 | +"use strict"; | ||
| 3184 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/FlvPlayer/flv.js/utils/logger.js\");\n/* harmony import */ var _utils_utf8_conv_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/utf8-conv.js */ \"./src/FlvPlayer/flv.js/utils/utf8-conv.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/FlvPlayer/flv.js/utils/exception.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\nvar le = function () {\n var buf = new ArrayBuffer(2);\n new DataView(buf).setInt16(0, 256, true); // little-endian write\n\n return new Int16Array(buf)[0] === 256; // platform-spec read, if equal then LE\n}();\n\nvar AMF = /*#__PURE__*/function () {\n function AMF() {}\n\n AMF.parseScriptData = function parseScriptData(arrayBuffer, dataOffset, dataSize) {\n var data = {};\n\n try {\n var name = AMF.parseValue(arrayBuffer, dataOffset, dataSize);\n if (dataSize - name.size < 1) return data;\n var value = AMF.parseValue(arrayBuffer, dataOffset + name.size, dataSize - name.size);\n data[name.data] = value.data;\n } catch (e) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].e('AMF', e.toString());\n }\n\n return data;\n };\n\n AMF.parseObject = function parseObject(arrayBuffer, dataOffset, dataSize) {\n if (dataSize < 3) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__[\"IllegalStateException\"]('Data not enough when parse ScriptDataObject');\n }\n\n var name = AMF.parseString(arrayBuffer, dataOffset, dataSize);\n var value = AMF.parseValue(arrayBuffer, dataOffset + name.size, dataSize - name.size);\n var isObjectEnd = value.objectEnd;\n return {\n data: {\n name: name.data,\n value: value.data\n },\n size: name.size + value.size,\n objectEnd: isObjectEnd\n };\n };\n\n AMF.parseVariable = function parseVariable(arrayBuffer, dataOffset, dataSize) {\n return AMF.parseObject(arrayBuffer, dataOffset, dataSize);\n };\n\n AMF.parseString = function parseString(arrayBuffer, dataOffset, dataSize) {\n if (dataSize < 2) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__[\"IllegalStateException\"]('Data not enough when parse String');\n }\n\n var v = new DataView(arrayBuffer, dataOffset, dataSize);\n var length = v.getUint16(0, !le);\n var str;\n\n if (length > 0) {\n str = Object(_utils_utf8_conv_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(new Uint8Array(arrayBuffer, dataOffset + 2, length));\n } else {\n str = '';\n }\n\n return {\n data: str,\n size: 2 + length\n };\n };\n\n AMF.parseLongString = function parseLongString(arrayBuffer, dataOffset, dataSize) {\n if (dataSize < 4) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__[\"IllegalStateException\"]('Data not enough when parse LongString');\n }\n\n var v = new DataView(arrayBuffer, dataOffset, dataSize);\n var length = v.getUint32(0, !le);\n var str;\n\n if (length > 0) {\n str = Object(_utils_utf8_conv_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(new Uint8Array(arrayBuffer, dataOffset + 4, length));\n } else {\n str = '';\n }\n\n return {\n data: str,\n size: 4 + length\n };\n };\n\n AMF.parseDate = function parseDate(arrayBuffer, dataOffset, dataSize) {\n if (dataSize < 10) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__[\"IllegalStateException\"]('Data size invalid when parse Date');\n }\n\n var v = new DataView(arrayBuffer, dataOffset, dataSize);\n var timestamp = v.getFloat64(0, !le);\n var localTimeOffset = v.getInt16(8, !le);\n timestamp += localTimeOffset * 60 * 1000; // get UTC time\n\n return {\n data: new Date(timestamp),\n size: 8 + 2\n };\n };\n\n AMF.parseValue = function parseValue(arrayBuffer, dataOffset, dataSize) {\n if (dataSize < 1) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__[\"IllegalStateException\"]('Data not enough when parse Value');\n }\n\n var v = new DataView(arrayBuffer, dataOffset, dataSize);\n var offset = 1;\n var type = v.getUint8(0);\n var value;\n var objectEnd = false;\n\n try {\n switch (type) {\n case 0:\n // Number(Double) type\n value = v.getFloat64(1, !le);\n offset += 8;\n break;\n\n case 1:\n {\n // Boolean type\n var b = v.getUint8(1);\n value = b ? true : false;\n offset += 1;\n break;\n }\n\n case 2:\n {\n // String type\n var amfstr = AMF.parseString(arrayBuffer, dataOffset + 1, dataSize - 1);\n value = amfstr.data;\n offset += amfstr.size;\n break;\n }\n\n case 3:\n {\n // Object(s) type\n value = {};\n var terminal = 0; // workaround for malformed Objects which has missing ScriptDataObjectEnd\n\n if ((v.getUint32(dataSize - 4, !le) & 0x00FFFFFF) === 9) {\n terminal = 3;\n }\n\n while (offset < dataSize - 4) {\n // 4 === type(UI8) + ScriptDataObjectEnd(UI24)\n var amfobj = AMF.parseObject(arrayBuffer, dataOffset + offset, dataSize - offset - terminal);\n if (amfobj.objectEnd) break;\n value[amfobj.data.name] = amfobj.data.value;\n offset += amfobj.size;\n }\n\n if (offset <= dataSize - 3) {\n var marker = v.getUint32(offset - 1, !le) & 0x00FFFFFF;\n\n if (marker === 9) {\n offset += 3;\n }\n }\n\n break;\n }\n\n case 8:\n {\n // ECMA array type (Mixed array)\n value = {};\n offset += 4; // ECMAArrayLength(UI32)\n\n var _terminal = 0; // workaround for malformed MixedArrays which has missing ScriptDataObjectEnd\n\n if ((v.getUint32(dataSize - 4, !le) & 0x00FFFFFF) === 9) {\n _terminal = 3;\n }\n\n while (offset < dataSize - 8) {\n // 8 === type(UI8) + ECMAArrayLength(UI32) + ScriptDataVariableEnd(UI24)\n var amfvar = AMF.parseVariable(arrayBuffer, dataOffset + offset, dataSize - offset - _terminal);\n if (amfvar.objectEnd) break;\n value[amfvar.data.name] = amfvar.data.value;\n offset += amfvar.size;\n }\n\n if (offset <= dataSize - 3) {\n var _marker = v.getUint32(offset - 1, !le) & 0x00FFFFFF;\n\n if (_marker === 9) {\n offset += 3;\n }\n }\n\n break;\n }\n\n case 9:\n // ScriptDataObjectEnd\n value = undefined;\n offset = 1;\n objectEnd = true;\n break;\n\n case 10:\n {\n // Strict array type\n // ScriptDataValue[n]. NOTE: according to video_file_format_spec_v10_1.pdf\n value = [];\n var strictArrayLength = v.getUint32(1, !le);\n offset += 4;\n\n for (var i = 0; i < strictArrayLength; i++) {\n var val = AMF.parseValue(arrayBuffer, dataOffset + offset, dataSize - offset);\n value.push(val.data);\n offset += val.size;\n }\n\n break;\n }\n\n case 11:\n {\n // Date type\n var date = AMF.parseDate(arrayBuffer, dataOffset + 1, dataSize - 1);\n value = date.data;\n offset += date.size;\n break;\n }\n\n case 12:\n {\n // Long string type\n var amfLongStr = AMF.parseString(arrayBuffer, dataOffset + 1, dataSize - 1);\n value = amfLongStr.data;\n offset += amfLongStr.size;\n break;\n }\n\n default:\n // ignore and skip\n offset = dataSize;\n //Log.w('AMF', 'Unsupported AMF value type ' + type);\n }\n } catch (e) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].e('AMF', e.toString());\n }\n\n return {\n data: value,\n size: offset,\n objectEnd: objectEnd\n };\n };\n\n return AMF;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (AMF);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/demux/amf-parser.js?"); | ||
| 3185 | + | ||
| 3186 | +/***/ }), | ||
| 3187 | + | ||
| 3188 | +/***/ "./src/FlvPlayer/flv.js/demux/demux-errors.js": | ||
| 3189 | +/*!****************************************************!*\ | ||
| 3190 | + !*** ./src/FlvPlayer/flv.js/demux/demux-errors.js ***! | ||
| 3191 | + \****************************************************/ | ||
| 3192 | +/*! exports provided: default */ | ||
| 3193 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3194 | + | ||
| 3195 | +"use strict"; | ||
| 3196 | +eval("__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar DemuxErrors = {\n OK: 'OK',\n FORMAT_ERROR: 'FormatError',\n FORMAT_UNSUPPORTED: 'FormatUnsupported',\n CODEC_UNSUPPORTED: 'CodecUnsupported'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (DemuxErrors);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/demux/demux-errors.js?"); | ||
| 3197 | + | ||
| 3198 | +/***/ }), | ||
| 3199 | + | ||
| 3200 | +/***/ "./src/FlvPlayer/flv.js/demux/exp-golomb.js": | ||
| 3201 | +/*!**************************************************!*\ | ||
| 3202 | + !*** ./src/FlvPlayer/flv.js/demux/exp-golomb.js ***! | ||
| 3203 | + \**************************************************/ | ||
| 3204 | +/*! exports provided: default */ | ||
| 3205 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3206 | + | ||
| 3207 | +"use strict"; | ||
| 3208 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/FlvPlayer/flv.js/utils/exception.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n // Exponential-Golomb buffer decoder\n\nvar ExpGolomb = /*#__PURE__*/function () {\n function ExpGolomb(uint8array) {\n this.TAG = 'ExpGolomb';\n this._buffer = uint8array;\n this._buffer_index = 0;\n this._total_bytes = uint8array.byteLength;\n this._total_bits = uint8array.byteLength * 8;\n this._current_word = 0;\n this._current_word_bits_left = 0;\n }\n\n var _proto = ExpGolomb.prototype;\n\n _proto.destroy = function destroy() {\n this._buffer = null;\n };\n\n _proto._fillCurrentWord = function _fillCurrentWord() {\n var buffer_bytes_left = this._total_bytes - this._buffer_index;\n if (buffer_bytes_left <= 0) throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_0__[\"IllegalStateException\"]('ExpGolomb: _fillCurrentWord() but no bytes available');\n var bytes_read = Math.min(4, buffer_bytes_left);\n var word = new Uint8Array(4);\n word.set(this._buffer.subarray(this._buffer_index, this._buffer_index + bytes_read));\n this._current_word = new DataView(word.buffer).getUint32(0, false);\n this._buffer_index += bytes_read;\n this._current_word_bits_left = bytes_read * 8;\n };\n\n _proto.readBits = function readBits(bits) {\n if (bits > 32) throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_0__[\"InvalidArgumentException\"]('ExpGolomb: readBits() bits exceeded max 32bits!');\n\n if (bits <= this._current_word_bits_left) {\n var _result = this._current_word >>> 32 - bits;\n\n this._current_word <<= bits;\n this._current_word_bits_left -= bits;\n return _result;\n }\n\n var result = this._current_word_bits_left ? this._current_word : 0;\n result = result >>> 32 - this._current_word_bits_left;\n var bits_need_left = bits - this._current_word_bits_left;\n\n this._fillCurrentWord();\n\n var bits_read_next = Math.min(bits_need_left, this._current_word_bits_left);\n var result2 = this._current_word >>> 32 - bits_read_next;\n this._current_word <<= bits_read_next;\n this._current_word_bits_left -= bits_read_next;\n result = result << bits_read_next | result2;\n return result;\n };\n\n _proto.readBool = function readBool() {\n return this.readBits(1) === 1;\n };\n\n _proto.readByte = function readByte() {\n return this.readBits(8);\n };\n\n _proto._skipLeadingZero = function _skipLeadingZero() {\n var zero_count;\n\n for (zero_count = 0; zero_count < this._current_word_bits_left; zero_count++) {\n if (0 !== (this._current_word & 0x80000000 >>> zero_count)) {\n this._current_word <<= zero_count;\n this._current_word_bits_left -= zero_count;\n return zero_count;\n }\n }\n\n this._fillCurrentWord();\n\n return zero_count + this._skipLeadingZero();\n };\n\n _proto.readUEG = function readUEG() {\n // unsigned exponential golomb\n var leading_zeros = this._skipLeadingZero();\n\n return this.readBits(leading_zeros + 1) - 1;\n };\n\n _proto.readSEG = function readSEG() {\n // signed exponential golomb\n var value = this.readUEG();\n\n if (value & 0x01) {\n return value + 1 >>> 1;\n } else {\n return -1 * (value >>> 1);\n }\n };\n\n return ExpGolomb;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ExpGolomb);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/demux/exp-golomb.js?"); | ||
| 3209 | + | ||
| 3210 | +/***/ }), | ||
| 3211 | + | ||
| 3212 | +/***/ "./src/FlvPlayer/flv.js/demux/flv-demuxer.js": | ||
| 3213 | +/*!***************************************************!*\ | ||
| 3214 | + !*** ./src/FlvPlayer/flv.js/demux/flv-demuxer.js ***! | ||
| 3215 | + \***************************************************/ | ||
| 3216 | +/*! exports provided: default */ | ||
| 3217 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3218 | + | ||
| 3219 | +"use strict"; | ||
| 3220 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/FlvPlayer/flv.js/utils/logger.js\");\n/* harmony import */ var _amf_parser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./amf-parser.js */ \"./src/FlvPlayer/flv.js/demux/amf-parser.js\");\n/* harmony import */ var _sps_parser_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sps-parser.js */ \"./src/FlvPlayer/flv.js/demux/sps-parser.js\");\n/* harmony import */ var _demux_errors_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./demux-errors.js */ \"./src/FlvPlayer/flv.js/demux/demux-errors.js\");\n/* harmony import */ var _core_media_info_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/media-info.js */ \"./src/FlvPlayer/flv.js/core/media-info.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/FlvPlayer/flv.js/utils/exception.js\");\n/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../common/common */ \"./src/common/common.js\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\n\n\n\n\nfunction Swap16(src) {\n return src >>> 8 & 0xFF | (src & 0xFF) << 8;\n}\n\nfunction Swap32(src) {\n return (src & 0xFF000000) >>> 24 | (src & 0x00FF0000) >>> 8 | (src & 0x0000FF00) << 8 | (src & 0x000000FF) << 24;\n}\n\nfunction ReadBig32(array, index) {\n return array[index] << 24 | array[index + 1] << 16 | array[index + 2] << 8 | array[index + 3];\n}\n\nvar FLVDemuxer = /*#__PURE__*/function () {\n function FLVDemuxer(probeData, config, callbackMediaDataFunc, callbackMediaDataUserPtr, callbackPlaybackTimeUserPtr, getVideoInfoCallbackFunc) {\n this.TAG = 'FLVDemuxer';\n this._config = config;\n this._onError = null;\n this._onMediaInfo = null;\n this._onMetaDataArrived = null;\n this._onScriptDataArrived = null;\n this._onTrackMetadata = null;\n this._onDataAvailable = null; //this._onDataAvailableToSoftwareDecode = null;\n\n this._dataOffset = probeData.dataOffset;\n this._firstParse = true;\n this._dispatch = false;\n this._hasAudio = probeData.hasAudioTrack;\n this._hasVideo = probeData.hasVideoTrack;\n this._hasAudioFlagOverrided = false;\n this._hasVideoFlagOverrided = false;\n this._audioInitialMetadataDispatched = false;\n this._videoInitialMetadataDispatched = false;\n this._mediaInfo = new _core_media_info_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]();\n this._mediaInfo.hasAudio = this._hasAudio;\n this._mediaInfo.hasVideo = this._hasVideo;\n this._metadata = null;\n this._audioMetadata = null;\n this._videoMetadata = null;\n this._naluLengthSize = 4;\n this._timestampBase = 0; // int32, in milliseconds\n\n this._timescale = 1000;\n this._duration = 0; // int32, in milliseconds\n\n this._durationOverrided = false;\n this._referenceFrameRate = {\n fixed: true,\n fps: 23.976,\n fps_num: 23976,\n fps_den: 1000\n };\n this._flvSoundRateTable = [5500, 11025, 22050, 44100, 48000];\n this._mpegSamplingRates = [96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350];\n this._mpegAudioV10SampleRateTable = [44100, 48000, 32000, 0];\n this._mpegAudioV20SampleRateTable = [22050, 24000, 16000, 0];\n this._mpegAudioV25SampleRateTable = [11025, 12000, 8000, 0];\n this._mpegAudioL1BitRateTable = [0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, -1];\n this._mpegAudioL2BitRateTable = [0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, -1];\n this._mpegAudioL3BitRateTable = [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1];\n this._videoTrack = {\n type: 'video',\n id: 1,\n sequenceNumber: 0,\n samples: [],\n length: 0\n };\n this._audioTrack = {\n type: 'audio',\n id: 2,\n sequenceNumber: 0,\n samples: [],\n length: 0\n };\n\n this._littleEndian = function () {\n var buf = new ArrayBuffer(2);\n new DataView(buf).setInt16(0, 256, true); // little-endian write\n\n return new Int16Array(buf)[0] === 256; // platform-spec read, if equal then LE\n }();\n\n this.videoCodecId = 0;\n this.audioCodecId = 0;\n this._AVC_SPS = null;\n this._AVC_PPS = null;\n this._HEVC_VPS = null;\n this._HEVC_SPS = null;\n this._HEVC_PPS = null;\n this._StartCode = [0, 0, 0, 1];\n this._SampleRate = 8000;\n this._ChannelNum = 1;\n this._pause = false;\n this._callbackInitFlag = false;\n this._callbackMediaDataFunc = callbackMediaDataFunc;\n this._callbackMediaDataUserPtr = callbackMediaDataUserPtr;\n this._callbackPlaybackTimeUserPtr = callbackPlaybackTimeUserPtr;\n this.getVideoInfoCallbackFunc = getVideoInfoCallbackFunc;\n this._debugProcCount = 0;\n this._AudioMaxFrameSize = 0;\n this._lastVideoPts = 0;\n this._lastAudioPts = 0;\n this.snapshotCount = 0;\n this.fullFrameData = new Uint8Array(1024 * 1024 * 2);\n this.fullFramePos = 0;\n this._DebugBuf = null; //new Uint8Array(1024 * 1024 * 2);\n\n this._DebugBufPos = 0;\n }\n\n var _proto = FLVDemuxer.prototype;\n\n _proto.destroy = function destroy() {\n this._mediaInfo = null;\n this._metadata = null;\n this._audioMetadata = null;\n this._videoMetadata = null;\n this._videoTrack = null;\n this._audioTrack = null;\n this._onError = null;\n this._onMediaInfo = null;\n this._onMetaDataArrived = null;\n this._onScriptDataArrived = null;\n this._onTrackMetadata = null;\n this._onDataAvailable = null;\n };\n\n FLVDemuxer.probe = function probe(buffer) {\n var data = new Uint8Array(buffer);\n var mismatch = {\n match: false\n };\n\n if (data[0] !== 0x46 || data[1] !== 0x4C || data[2] !== 0x56 || data[3] !== 0x01) {\n return mismatch;\n }\n\n var hasAudio = (data[4] & 4) >>> 2 !== 0;\n var hasVideo = (data[4] & 1) !== 0;\n var offset = ReadBig32(data, 5);\n\n if (offset < 9) {\n return mismatch;\n }\n\n return {\n match: true,\n consumed: offset,\n dataOffset: offset,\n hasAudioTrack: hasAudio,\n hasVideoTrack: hasVideo\n };\n };\n\n _proto.bindDataSource = function bindDataSource(loader) {\n loader.onDataArrival = this.parseChunks.bind(this);\n return this;\n } // prototype: function(type: string, metadata: any): void\n ;\n\n _proto.resetMediaInfo = function resetMediaInfo() {\n this._mediaInfo = new _core_media_info_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]();\n } //==================================================================================================\n ;\n\n _proto.pause = function pause() {\n this._pause = true;\n };\n\n _proto.resume = function resume() {\n this._pause = false;\n };\n\n _proto._onDataAvailableToSoftwareDecodeVideo = function _onDataAvailableToSoftwareDecodeVideo(codecId, videoTrack) {\n var track = videoTrack;\n var samples = track.samples;\n var idx = -1;\n\n if (samples.length > 1) {\n //console.log(\"frame num: \" + samples.length);\n idx = 0;\n }\n\n while (samples.length) {\n var sample = samples.shift();\n var frameLength = 0;\n\n for (var j = 0; j < sample.units.length; j++) {\n frameLength += sample.units[j].data.length;\n }\n\n var offset = 0;\n var bufdata = new Uint8Array(frameLength); //for (let j = 0; j < sample.units.length; j++) {\n\n while (sample.units.length) {\n var unit = sample.units.shift();\n\n if (codecId == 27) {\n unit.data[0] = 0;\n unit.data[1] = 0;\n unit.data[2] = 0;\n unit.data[3] = 1;\n }\n\n bufdata.set(unit.data, offset);\n offset += unit.data.length;\n } //isKeyframe\n\n\n if (this._callbackMediaDataFunc) {\n //console.log(\"Decode: \" + bufdata);\n //console.log(\"Decode: \" + frameLength);\n if (idx >= 0) {\n //console.log(\"frame idx \" + idx + \" length: \" + frameLength);// + \":\" + bufdata);\n idx++;\n } //console.log(\"Flv-Demuxer.js:: callback pts: \" + sample.pts);\n\n\n this._callbackMediaDataFunc(this._callbackMediaDataUserPtr, true, 1, codecId, sample.isKeyframe, bufdata, frameLength, sample.pts, 0, 0);\n }\n }\n };\n\n _proto._onDataAvailableToSoftwareDecodeAudio = function _onDataAvailableToSoftwareDecodeAudio(codecId, audioTrack) {\n //console.log(\"proc audio frame....\" + codecId + \" samples: \" + audioTrack.samples.length);\n var track = audioTrack;\n var samples = track.samples;\n var idx = -1;\n\n if (samples.length > 1) {\n //console.log(\"frame num: \" + samples.length);\n idx = 0;\n }\n\n while (samples.length) {\n var sample = samples.shift();\n\n if (this._callbackMediaDataFunc) {\n //console.log(\"Decode audio: \" + sample.unit);\n //console.log(\"Decode: \" + frameLength);\n if (idx >= 0) {\n //console.log(\"frame idx \" + idx + \" length: \" + frameLength);// + \":\" + bufdata);\n idx++;\n } //mediaType, codecId, framedata, framesize, samplerate, channels, bitPerSample) {\n\n\n this._callbackMediaDataFunc(this._callbackMediaDataUserPtr, true, 2, codecId, 0, sample.unit, sample.length, this._SampleRate, this._ChannelNum, this._SampleRate >= 44100 ? 32 : 16);\n }\n }\n } //==================================================================================================\n ;\n\n _proto._isInitialMetadataDispatched = function _isInitialMetadataDispatched() {\n if (this._hasAudio && this._hasVideo) {\n // both audio & video\n return this._audioInitialMetadataDispatched && this._videoInitialMetadataDispatched;\n }\n\n if (this._hasAudio && !this._hasVideo) {\n // audio only\n return this._audioInitialMetadataDispatched;\n }\n\n if (!this._hasAudio && this._hasVideo) {\n // video only\n return this._videoInitialMetadataDispatched;\n }\n\n return false;\n } // function parseChunks(chunk: ArrayBuffer, byteStart: number): number;\n ;\n\n _proto.parseChunks = function parseChunks(chunk, byteStart) {\n if (chunk === null) return;\n\n if (!this._onError || !this._onMediaInfo || !this._onTrackMetadata || !this._onDataAvailable) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_5__[\"IllegalStateException\"]('Flv: onError & onMediaInfo & onTrackMetadata & onDataAvailable callback must be specified');\n }\n\n var offset = 0;\n var le = this._littleEndian;\n\n if (byteStart === 0) {\n // buffer with FLV header\n if (chunk.byteLength > 13) {\n var probeData = FLVDemuxer.probe(chunk);\n offset = probeData.dataOffset;\n } else {\n return 0;\n }\n }\n\n if (this._firstParse) {\n // handle PreviousTagSize0 before Tag1\n this._firstParse = false;\n\n if (byteStart + offset !== this._dataOffset) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'First time parsing but chunk byteStart invalid!');\n }\n\n var v = new DataView(chunk, offset);\n var prevTagSize0 = v.getUint32(0, !le);\n\n if (prevTagSize0 !== 0) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'PrevTagSize0 !== 0 !!!');\n }\n\n offset += 4;\n } //console.log(\"flv-demuxer.js::parseChunks: while...\" + chunk.byteLength);\n\n\n while (offset < chunk.byteLength) {\n this._dispatch = true;\n\n var _v = new DataView(chunk, offset);\n\n if (offset + 11 + 4 > chunk.byteLength) {\n // data not enough for parsing an flv tag\n break;\n }\n\n var tagType = _v.getUint8(0);\n\n var dataSize = _v.getUint32(0, !le) & 0x00FFFFFF;\n\n if (offset + 11 + dataSize + 4 > chunk.byteLength) {\n // data not enough for parsing actual data body\n break;\n }\n\n if (tagType !== 8 && tagType !== 9 && tagType !== 18) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, \"Unsupported tag type \" + tagType + \", skipped\"); // consume the whole tag (skip it)\n\n offset += 11 + dataSize + 4;\n continue;\n }\n\n var ts2 = _v.getUint8(4);\n\n var ts1 = _v.getUint8(5);\n\n var ts0 = _v.getUint8(6);\n\n var ts3 = _v.getUint8(7);\n\n var timestamp = ts0 | ts1 << 8 | ts2 << 16 | ts3 << 24;\n var streamId = _v.getUint32(7, !le) & 0x00FFFFFF;\n\n if (streamId !== 0) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'Meet tag which has StreamID != 0!');\n }\n\n var dataOffset = offset + 11;\n\n if (!this._pause) {\n switch (tagType) {\n case 8:\n // Audio\n if (this._lastAudioPts > 0) {\n var t = timestamp - this._lastAudioPts; //console.log(\"flv::Audio Timestamp: \" + timestamp + \" t:\" + t);\n }\n\n this._lastAudioPts = timestamp; //console.log(\"flv::Audio Timestamp: \" + timestamp);\n\n this.audioCodecId = this._parseAudioData(chunk, dataOffset, dataSize, timestamp);\n break;\n\n case 9:\n // Video\n if (this._lastVideoPts > 0) {\n var _t = timestamp - this._lastVideoPts; //if (t != 40) {\n //console.log(\"flv::Video Timestamp: \" + timestamp + \" t:\" + t);\n //}\n\n }\n\n this._lastVideoPts = timestamp;\n this.videoCodecId = this._parseVideoData(chunk, dataOffset, dataSize, timestamp, byteStart + offset);\n break;\n\n case 18:\n // ScriptDataObject\n this._parseScriptData(chunk, dataOffset, dataSize);\n\n break;\n }\n }\n\n var prevTagSize = _v.getUint32(11 + dataSize, !le);\n\n if (prevTagSize !== 11 + dataSize) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, \"Invalid PrevTagSize \" + prevTagSize);\n }\n\n offset += 11 + dataSize + 4; // tagBody + dataSize + prevTagSize\n } // dispatch parsed frames to consumer (typically, the remuxer)\n\n\n if (this._isInitialMetadataDispatched()) {\n //console.log(\"flv-demuxer.js::parseChunks: _isInitialMetadataDispatched\");\n if (this._dispatch && (this._audioTrack.length || this._videoTrack.length)) {\n //Video H264\n if (this.videoCodecId == 7 || this.videoCodecId == 0) {\n //H264\n if (this._config.decodeType === 'auto' || this._config.decodeType === 'hard') {\n this._onDataAvailable(this._audioTrack, this._videoTrack);\n\n if (!this._callbackInitFlag) {\n this._callbackInitFlag = true;\n\n if (this._callbackMediaDataFunc) {\n this._callbackMediaDataFunc(this._callbackMediaDataUserPtr, false, 1, 0, 0, null, 0, 0, 0, 0);\n }\n }\n } else {\n //console.log(\"H264: Software Decode...\");\n if (this._videoTrack.samples.length > 0) {\n this._onDataAvailableToSoftwareDecodeVideo(27, this._videoTrack);\n }\n\n if (this._audioTrack.samples.length > 0) {\n this._onDataAvailableToSoftwareDecodeAudio(this.audioCodecId == 10 ? 86018 : 0, this._audioTrack);\n }\n }\n } else if (this.videoCodecId == 12) {\n //H265\n //console.log(\"H265: Software Decode...\");\n if (this._videoTrack.samples.length > 0) {\n this._onDataAvailableToSoftwareDecodeVideo(173, this._videoTrack);\n }\n\n if (this._audioTrack.samples.length > 0) {\n this._onDataAvailableToSoftwareDecodeAudio(this.audioCodecId == 10 ? 86018 : 0, this._audioTrack);\n }\n }\n }\n } else {\n // console.log(\"flv-demuxer.js::parseChunks: ! _isInitialMetadataDispatched\");\n this._debugProcCount++;\n\n if (this._debugProcCount >= 60) {\n console.log('InitialMetadataDispatched fail.');\n this._debugProcCount = 0;\n this._hasAudio = false;\n this._mediaInfo.hasAudio = false;\n }\n } //console.log(\"flv-demuxer.js::parseChunks: offset: \" + offset);\n\n\n return offset; // consumed bytes, just equals latest offset index\n };\n\n _proto._parseScriptData = function _parseScriptData(arrayBuffer, dataOffset, dataSize) {\n var scriptData = _amf_parser_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].parseScriptData(arrayBuffer, dataOffset, dataSize);\n\n if (scriptData.hasOwnProperty('onMetaData')) {\n if (scriptData.onMetaData == null || typeof scriptData.onMetaData !== 'object') {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'Invalid onMetaData structure!');\n return;\n }\n\n if (this._metadata) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'Found another onMetaData tag!');\n }\n\n this._metadata = scriptData;\n var onMetaData = this._metadata.onMetaData;\n\n if (this._onMetaDataArrived) {\n this._onMetaDataArrived(Object.assign({}, onMetaData));\n }\n\n if (typeof onMetaData.hasAudio === 'boolean') {\n // hasAudio\n if (this._hasAudioFlagOverrided === false) {\n this._hasAudio = onMetaData.hasAudio;\n this._mediaInfo.hasAudio = this._hasAudio;\n }\n }\n\n if (typeof onMetaData.hasVideo === 'boolean') {\n // hasVideo\n if (this._hasVideoFlagOverrided === false) {\n this._hasVideo = onMetaData.hasVideo;\n this._mediaInfo.hasVideo = this._hasVideo;\n }\n }\n\n if (typeof onMetaData.audiodatarate === 'number') {\n // audiodatarate\n this._mediaInfo.audioDataRate = onMetaData.audiodatarate;\n }\n\n if (typeof onMetaData.videodatarate === 'number') {\n // videodatarate\n this._mediaInfo.videoDataRate = onMetaData.videodatarate;\n }\n\n if (typeof onMetaData.width === 'number') {\n // width\n this._mediaInfo.width = onMetaData.width;\n }\n\n if (typeof onMetaData.height === 'number') {\n // height\n this._mediaInfo.height = onMetaData.height;\n }\n\n if (typeof onMetaData.duration === 'number') {\n // duration\n if (!this._durationOverrided) {\n var duration = Math.floor(onMetaData.duration * this._timescale);\n this._duration = duration;\n this._mediaInfo.duration = duration;\n }\n } else {\n this._mediaInfo.duration = 0;\n }\n\n if (typeof onMetaData.framerate === 'number') {\n // framerate\n var fps_num = Math.floor(onMetaData.framerate * 1000);\n\n if (fps_num > 0) {\n var fps = fps_num / 1000;\n this._referenceFrameRate.fixed = true;\n this._referenceFrameRate.fps = fps;\n this._referenceFrameRate.fps_num = fps_num;\n this._referenceFrameRate.fps_den = 1000;\n this._mediaInfo.fps = fps;\n }\n }\n\n if (typeof onMetaData.keyframes === 'object') {\n // keyframes\n this._mediaInfo.hasKeyframesIndex = true;\n var keyframes = onMetaData.keyframes;\n this._mediaInfo.keyframesIndex = this._parseKeyframesIndex(keyframes);\n onMetaData.keyframes = null; // keyframes has been extracted, remove it\n } else {\n this._mediaInfo.hasKeyframesIndex = false;\n }\n\n this._dispatch = false;\n this._mediaInfo.metadata = onMetaData;\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].v(this.TAG, 'Parsed onMetaData');\n\n if (this._mediaInfo.isComplete()) {\n this._onMediaInfo(this._mediaInfo);\n }\n }\n\n if (Object.keys(scriptData).length > 0) {\n if (this._onScriptDataArrived) {\n this._onScriptDataArrived(Object.assign({}, scriptData));\n }\n } // console.log('this._mediaInfo:', this._mediaInfo);\n\n };\n\n _proto._parseKeyframesIndex = function _parseKeyframesIndex(keyframes) {\n var times = [];\n var filepositions = []; // ignore first keyframe which is actually AVC Sequence Header (AVCDecoderConfigurationRecord)\n\n for (var i = 1; i < keyframes.times.length; i++) {\n var time = this._timestampBase + Math.floor(keyframes.times[i] * 1000);\n times.push(time);\n filepositions.push(keyframes.filepositions[i]);\n }\n\n return {\n times: times,\n filepositions: filepositions\n };\n };\n\n _proto._parseAudioData = function _parseAudioData(arrayBuffer, dataOffset, dataSize, tagTimestamp) {\n if (dataSize <= 1) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'Flv: Invalid audio packet, missing SoundData payload!');\n return 0;\n }\n\n if (this._hasAudioFlagOverrided === true && this._hasAudio === false) {\n // If hasAudio: false indicated explicitly in MediaDataSource,\n // Ignore all the audio packets\n return 0;\n }\n\n var le = this._littleEndian;\n var v = new DataView(arrayBuffer, dataOffset, dataSize);\n var soundSpec = v.getUint8(0);\n var soundFormat = soundSpec >>> 4;\n\n if (soundFormat !== 2 && soundFormat !== 10) {\n // MP3 or AAC\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].CODEC_UNSUPPORTED, 'Flv: Unsupported audio codec idx: ' + soundFormat);\n\n return 0;\n }\n\n var soundRate = 0;\n var soundRateIndex = (soundSpec & 12) >>> 2;\n\n if (soundRateIndex >= 0 && soundRateIndex <= 4) {\n soundRate = this._flvSoundRateTable[soundRateIndex];\n } else {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].FORMAT_ERROR, 'Flv: Invalid audio sample rate idx: ' + soundRateIndex);\n\n return 0;\n }\n\n var soundSize = (soundSpec & 2) >>> 1; // unused\n\n var soundType = soundSpec & 1; //console.log(\"soundSize: \" + soundSize);\n\n var meta = this._audioMetadata;\n var track = this._audioTrack;\n\n if (!meta) {\n if (this._hasAudio === false && this._hasAudioFlagOverrided === false) {\n this._hasAudio = true;\n this._mediaInfo.hasAudio = true;\n } // initial metadata\n\n\n meta = this._audioMetadata = {};\n meta.type = 'audio';\n meta.id = track.id;\n meta.timescale = this._timescale;\n meta.duration = this._duration;\n meta.audioSampleRate = soundRate;\n meta.channelCount = soundType === 0 ? 1 : 2;\n }\n\n if (soundFormat === 10) {\n // AAC\n var aacData = this._parseAACAudioData(arrayBuffer, dataOffset + 1, dataSize - 1);\n\n if (aacData == undefined) {\n return 0;\n }\n\n if (aacData.packetType === 0) {\n // AAC sequence header (AudioSpecificConfig)\n if (meta.config) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'Found another AudioSpecificConfig!');\n }\n\n var misc = aacData.data;\n meta.audioSampleRate = misc.samplingRate;\n meta.channelCount = misc.channelCount;\n meta.codec = misc.codec;\n meta.originalCodec = misc.originalCodec;\n meta.config = misc.config; // The decode result of an aac sample is 1024 PCM samples\n\n meta.refSampleDuration = 1024 / meta.audioSampleRate * meta.timescale; //Log.v(this.TAG, 'Parsed AudioSpecificConfig');\n //console.log(\"AAC: \" + misc.samplingRate + \" \" + misc.channelCount + \" \" + misc.codec + \" \" + misc.conf);\n\n this._SampleRate = misc.samplingRate;\n this._ChannelNum = misc.channelCount;\n\n if (this._isInitialMetadataDispatched()) {\n // Non-initial metadata, force dispatch (or flush) parsed frames to remuxer\n if (this._dispatch && (this._audioTrack.length || this._videoTrack.length)) {\n this._onDataAvailable(this._audioTrack, this._videoTrack);\n }\n } else {\n this._audioInitialMetadataDispatched = true;\n } // then notify new metadata\n\n\n this._dispatch = false;\n\n this._onTrackMetadata('audio', meta);\n\n var mi = this._mediaInfo;\n mi.audioCodec = meta.originalCodec;\n mi.audioSampleRate = meta.audioSampleRate;\n mi.audioChannelCount = meta.channelCount;\n\n if (mi.hasVideo) {\n if (mi.videoCodec != null) {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.videoCodec + ',' + mi.audioCodec + '\"';\n }\n } else {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.audioCodec + '\"';\n }\n\n if (mi.isComplete()) {\n console.log('this._onMediaInfo audio:', mi);\n\n this._onMediaInfo(mi);\n }\n } else if (aacData.packetType === 1) {\n // AAC raw frame data\n var dts = this._timestampBase + tagTimestamp; // console.log('FLV:Audio DTS:' + dts , aacData.data);\n\n var aacSample = {\n unit: aacData.data,\n length: aacData.data.byteLength,\n dts: dts,\n pts: dts\n };\n track.samples.push(aacSample);\n track.length += aacData.data.length;\n\n if (aacData.data.length > this._AudioMaxFrameSize) {\n this._AudioMaxFrameSize = aacData.data.length; //console.log(\"max audio frame size: \" + aacData.data.length);\n } //console.log(\"flv-demuxer.js:: audio dts: \" + dts);\n\n } else {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].e(this.TAG, \"Flv: Unsupported AAC data type \" + aacData.packetType);\n }\n } else if (soundFormat === 2) {\n // MP3\n if (!meta.codec) {\n // We need metadata for mp3 audio track, extract info from frame header\n var _misc = this._parseMP3AudioData(arrayBuffer, dataOffset + 1, dataSize - 1, true);\n\n if (_misc == undefined) {\n return 0;\n }\n\n meta.audioSampleRate = _misc.samplingRate;\n meta.channelCount = _misc.channelCount;\n meta.codec = _misc.codec;\n meta.originalCodec = _misc.originalCodec; // The decode result of an mp3 sample is 1152 PCM samples\n\n meta.refSampleDuration = 1152 / meta.audioSampleRate * meta.timescale;\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].v(this.TAG, 'Parsed MPEG Audio Frame Header');\n this._audioInitialMetadataDispatched = true;\n\n this._onTrackMetadata('audio', meta);\n\n var _mi = this._mediaInfo;\n _mi.audioCodec = meta.codec;\n _mi.audioSampleRate = meta.audioSampleRate;\n _mi.audioChannelCount = meta.channelCount;\n _mi.audioDataRate = _misc.bitRate;\n\n if (_mi.hasVideo) {\n if (_mi.videoCodec != null) {\n _mi.mimeType = 'video/x-flv; codecs=\"' + _mi.videoCodec + ',' + _mi.audioCodec + '\"';\n }\n } else {\n _mi.mimeType = 'video/x-flv; codecs=\"' + _mi.audioCodec + '\"';\n }\n\n if (_mi.isComplete()) {\n this._onMediaInfo(_mi);\n }\n } // This packet is always a valid audio packet, extract it\n\n\n var data = this._parseMP3AudioData(arrayBuffer, dataOffset + 1, dataSize - 1, false);\n\n if (data == undefined) {\n return 0;\n }\n\n var _dts = this._timestampBase + tagTimestamp;\n\n var mp3Sample = {\n unit: data,\n length: data.byteLength,\n dts: _dts,\n pts: _dts\n };\n track.samples.push(mp3Sample);\n track.length += data.length;\n }\n\n return soundFormat;\n };\n\n _proto._parseAACAudioData = function _parseAACAudioData(arrayBuffer, dataOffset, dataSize) {\n if (dataSize <= 1) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'Flv: Invalid AAC packet, missing AACPacketType or/and Data!');\n return;\n }\n\n var result = {};\n var array = new Uint8Array(arrayBuffer, dataOffset, dataSize);\n result.packetType = array[0];\n\n if (array[0] === 0) {\n result.data = this._parseAACAudioSpecificConfig(arrayBuffer, dataOffset + 1, dataSize - 1);\n } else {\n result.data = array.subarray(1); // console.log(\"_parseAACAudioData:\", result.data);\n }\n\n return result;\n };\n\n _proto._parseAACAudioSpecificConfig = function _parseAACAudioSpecificConfig(arrayBuffer, dataOffset, dataSize) {\n var array = new Uint8Array(arrayBuffer, dataOffset, dataSize);\n var config = null;\n /* Audio Object Type:\n 0: Null\n 1: AAC Main\n 2: AAC LC\n 3: AAC SSR (Scalable Sample Rate)\n 4: AAC LTP (Long Term Prediction)\n 5: HE-AAC / SBR (Spectral Band Replication)\n 6: AAC Scalable\n */\n\n var audioObjectType = 0;\n var originalAudioObjectType = 0;\n var audioExtensionObjectType = null;\n var samplingIndex = 0;\n var extensionSamplingIndex = null; // 5 bits\n\n audioObjectType = originalAudioObjectType = array[0] >>> 3; // 4 bits\n\n samplingIndex = (array[0] & 0x07) << 1 | array[1] >>> 7;\n\n if (samplingIndex < 0 || samplingIndex >= this._mpegSamplingRates.length) {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].FORMAT_ERROR, 'Flv: AAC invalid sampling frequency index!');\n\n return;\n }\n\n var samplingFrequence = this._mpegSamplingRates[samplingIndex]; // 4 bits\n\n var channelConfig = (array[1] & 0x78) >>> 3;\n\n if (channelConfig < 0 || channelConfig >= 8) {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].FORMAT_ERROR, 'Flv: AAC invalid channel configuration');\n\n return;\n }\n\n if (audioObjectType === 5) {\n // HE-AAC?\n // 4 bits\n extensionSamplingIndex = (array[1] & 0x07) << 1 | array[2] >>> 7; // 5 bits\n\n audioExtensionObjectType = (array[2] & 0x7C) >>> 2;\n } // workarounds for various browsers\n\n\n var userAgent = self.navigator.userAgent.toLowerCase();\n\n if (userAgent.indexOf('firefox') !== -1) {\n // firefox: use SBR (HE-AAC) if freq less than 24kHz\n if (samplingIndex >= 6) {\n audioObjectType = 5;\n config = new Array(4);\n extensionSamplingIndex = samplingIndex - 3;\n } else {\n // use LC-AAC\n audioObjectType = 2;\n config = new Array(2);\n extensionSamplingIndex = samplingIndex;\n }\n } else if (userAgent.indexOf('android') !== -1) {\n // android: always use LC-AAC\n audioObjectType = 2;\n config = new Array(2);\n extensionSamplingIndex = samplingIndex;\n } else {\n // for other browsers, e.g. chrome...\n // Always use HE-AAC to make it easier to switch aac codec profile\n audioObjectType = 5;\n extensionSamplingIndex = samplingIndex;\n config = new Array(4);\n\n if (samplingIndex >= 6) {\n extensionSamplingIndex = samplingIndex - 3;\n } else if (channelConfig === 1) {\n // Mono channel\n audioObjectType = 2;\n config = new Array(2);\n extensionSamplingIndex = samplingIndex;\n }\n }\n\n config[0] = audioObjectType << 3;\n config[0] |= (samplingIndex & 0x0F) >>> 1;\n config[1] = (samplingIndex & 0x0F) << 7;\n config[1] |= (channelConfig & 0x0F) << 3;\n\n if (audioObjectType === 5) {\n config[1] |= (extensionSamplingIndex & 0x0F) >>> 1;\n config[2] = (extensionSamplingIndex & 0x01) << 7; // extended audio object type: force to 2 (LC-AAC)\n\n config[2] |= 2 << 2;\n config[3] = 0;\n }\n\n return {\n config: config,\n samplingRate: samplingFrequence,\n channelCount: channelConfig,\n codec: 'mp4a.40.' + audioObjectType,\n originalCodec: 'mp4a.40.' + originalAudioObjectType\n };\n };\n\n _proto._parseMP3AudioData = function _parseMP3AudioData(arrayBuffer, dataOffset, dataSize, requestHeader) {\n if (dataSize < 4) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'Flv: Invalid MP3 packet, header missing!');\n return;\n }\n\n var le = this._littleEndian;\n var array = new Uint8Array(arrayBuffer, dataOffset, dataSize);\n var result = null;\n\n if (requestHeader) {\n if (array[0] !== 0xFF) {\n return;\n }\n\n var ver = array[1] >>> 3 & 0x03;\n var layer = (array[1] & 0x06) >> 1;\n var bitrate_index = (array[2] & 0xF0) >>> 4;\n var sampling_freq_index = (array[2] & 0x0C) >>> 2;\n var channel_mode = array[3] >>> 6 & 0x03;\n var channel_count = channel_mode !== 3 ? 2 : 1;\n var sample_rate = 0;\n var bit_rate = 0;\n var object_type = 34; // Layer-3, listed in MPEG-4 Audio Object Types\n\n var codec = 'mp3';\n\n switch (ver) {\n case 0:\n // MPEG 2.5\n sample_rate = this._mpegAudioV25SampleRateTable[sampling_freq_index];\n break;\n\n case 2:\n // MPEG 2\n sample_rate = this._mpegAudioV20SampleRateTable[sampling_freq_index];\n break;\n\n case 3:\n // MPEG 1\n sample_rate = this._mpegAudioV10SampleRateTable[sampling_freq_index];\n break;\n }\n\n switch (layer) {\n case 1:\n // Layer 3\n object_type = 34;\n\n if (bitrate_index < this._mpegAudioL3BitRateTable.length) {\n bit_rate = this._mpegAudioL3BitRateTable[bitrate_index];\n }\n\n break;\n\n case 2:\n // Layer 2\n object_type = 33;\n\n if (bitrate_index < this._mpegAudioL2BitRateTable.length) {\n bit_rate = this._mpegAudioL2BitRateTable[bitrate_index];\n }\n\n break;\n\n case 3:\n // Layer 1\n object_type = 32;\n\n if (bitrate_index < this._mpegAudioL1BitRateTable.length) {\n bit_rate = this._mpegAudioL1BitRateTable[bitrate_index];\n }\n\n break;\n }\n\n result = {\n bitRate: bit_rate,\n samplingRate: sample_rate,\n channelCount: channel_count,\n codec: codec,\n originalCodec: codec\n };\n } else {\n result = array;\n }\n\n return result;\n };\n\n _proto._parseVideoData = function _parseVideoData(arrayBuffer, dataOffset, dataSize, tagTimestamp, tagPosition) {\n if (dataSize <= 1) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'Flv: Invalid video packet, missing VideoData payload!');\n return;\n }\n\n if (this._hasVideoFlagOverrided === true && this._hasVideo === false) {\n // If hasVideo: false indicated explicitly in MediaDataSource,\n // Ignore all the video packets\n return;\n }\n\n var spec = new Uint8Array(arrayBuffer, dataOffset, dataSize)[0];\n var frameType = (spec & 240) >>> 4;\n var codecId = spec & 15; //7:H264 12:HEVC\n\n if (codecId !== 7 && codecId !== 12) {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].CODEC_UNSUPPORTED, \"Flv: Unsupported codec in video frame: \" + codecId);\n\n return;\n }\n\n this._parseAVCAndHEVCVideoPacket(codecId, arrayBuffer, dataOffset + 1, dataSize - 1, tagTimestamp, tagPosition, frameType);\n\n return codecId;\n };\n\n _proto._parseAVCAndHEVCVideoPacket = function _parseAVCAndHEVCVideoPacket(codecId, arrayBuffer, dataOffset, dataSize, tagTimestamp, tagPosition, frameType) {\n if (dataSize < 4) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'Flv: Invalid AVC packet, missing AVCPacketType or/and CompositionTime');\n return;\n }\n\n var le = this._littleEndian;\n var v = new DataView(arrayBuffer, dataOffset, dataSize);\n var packetType = v.getUint8(0);\n var cts_unsigned = v.getUint32(0, !le) & 0x00FFFFFF;\n var cts = cts_unsigned << 8 >> 8; // convert to 24-bit signed int\n\n if (packetType === 0) {\n // AVCDecoderConfigurationRecord\n if (codecId == 7) //H264\n {\n _common_common__WEBPACK_IMPORTED_MODULE_6__[\"setCodecTypeStr\"]('H264');\n\n this._parseAVCDecoderConfigurationRecord(arrayBuffer, dataOffset + 4, dataSize - 4);\n } else {\n //H265\n _common_common__WEBPACK_IMPORTED_MODULE_6__[\"setCodecTypeStr\"]('H265'); //console.log(\"_parseHEVCDecoderConfigurationRecord\");\n\n this._parseHEVCDecoderConfigurationRecord(arrayBuffer, dataOffset + 4, dataSize - 4);\n }\n } else if (packetType === 1) {\n // One or more Nalus\n if (codecId == 7) {\n //H264\n this._parseAVCVideoData(arrayBuffer, dataOffset + 4, dataSize - 4, tagTimestamp, tagPosition, frameType, cts);\n } else {\n //H265\n //console.log(\"_parseHEVCVideoData\");\n this._parseHEVCVideoData(arrayBuffer, dataOffset + 4, dataSize - 4, tagTimestamp, tagPosition, frameType, cts);\n }\n } else if (packetType === 2) {// empty, AVC end of sequence\n } else {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].FORMAT_ERROR, \"Flv: Invalid video packet type \" + packetType);\n\n return;\n }\n };\n\n _proto._parseAVCDecoderConfigurationRecord = function _parseAVCDecoderConfigurationRecord(arrayBuffer, dataOffset, dataSize) {\n if (dataSize < 7) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'Flv: Invalid AVCDecoderConfigurationRecord, lack of data!');\n return;\n }\n\n var meta = this._videoMetadata;\n var track = this._videoTrack;\n var le = this._littleEndian;\n var v = new DataView(arrayBuffer, dataOffset, dataSize);\n\n if (!meta) {\n if (this._hasVideo === false && this._hasVideoFlagOverrided === false) {\n this._hasVideo = true;\n this._mediaInfo.hasVideo = true;\n }\n\n meta = this._videoMetadata = {};\n meta.type = 'video';\n meta.id = track.id;\n meta.timescale = this._timescale;\n meta.duration = this._duration;\n } else {\n if (typeof meta.avcc !== 'undefined') {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'Found another AVCDecoderConfigurationRecord!');\n }\n }\n\n var version = v.getUint8(0); // configurationVersion\n\n var avcProfile = v.getUint8(1); // avcProfileIndication\n\n var profileCompatibility = v.getUint8(2); // profile_compatibility\n\n var avcLevel = v.getUint8(3); // AVCLevelIndication\n\n if (version !== 1 || avcProfile === 0) {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].FORMAT_ERROR, 'Flv: Invalid AVCDecoderConfigurationRecord');\n\n return;\n }\n\n this._naluLengthSize = (v.getUint8(4) & 3) + 1; // lengthSizeMinusOne\n\n if (this._naluLengthSize !== 3 && this._naluLengthSize !== 4) {\n // holy shit!!!\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].FORMAT_ERROR, \"Flv: Strange NaluLengthSizeMinusOne: \" + (this._naluLengthSize - 1));\n\n return;\n }\n\n var spsCount = v.getUint8(5) & 31; // numOfSequenceParameterSets\n\n if (spsCount === 0) {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].FORMAT_ERROR, 'Flv: Invalid AVCDecoderConfigurationRecord: No SPS');\n\n return;\n } else if (spsCount > 1) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, \"Flv: Strange AVCDecoderConfigurationRecord: SPS Count = \" + spsCount);\n }\n\n var offset = 6;\n\n for (var i = 0; i < spsCount; i++) {\n var len = v.getUint16(offset, !le); // sequenceParameterSetLength\n\n offset += 2;\n\n if (len === 0) {\n continue;\n } // Notice: Nalu without startcode header (00 00 00 01)\n\n\n var sps = new Uint8Array(arrayBuffer, dataOffset + offset, len);\n this._AVC_SPS = new Uint8Array(len + 4);\n offset += len;\n\n this._AVC_SPS.set(this._StartCode, 0);\n\n this._AVC_SPS.set(sps, 4); //console.log(\"SPS: \" + this._AVC_SPS);\n\n\n var config = _sps_parser_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].parseSPS(sps);\n\n if (i !== 0) {\n // ignore other sps's config\n continue;\n }\n\n meta.codecWidth = config.codec_size.width;\n meta.codecHeight = config.codec_size.height;\n meta.presentWidth = config.present_size.width;\n meta.presentHeight = config.present_size.height;\n meta.profile = config.profile_string;\n meta.level = config.level_string;\n meta.bitDepth = config.bit_depth;\n meta.chromaFormat = config.chroma_format;\n meta.sarRatio = config.sar_ratio;\n meta.frameRate = config.frame_rate;\n\n if (config.frame_rate.fixed === false || config.frame_rate.fps_num === 0 || config.frame_rate.fps_den === 0) {\n meta.frameRate = this._referenceFrameRate;\n }\n\n var fps_den = meta.frameRate.fps_den;\n var fps_num = meta.frameRate.fps_num;\n meta.refSampleDuration = meta.timescale * (fps_den / fps_num);\n var codecArray = sps.subarray(1, 4);\n var codecString = 'avc1.';\n\n for (var j = 0; j < 3; j++) {\n var h = codecArray[j].toString(16);\n\n if (h.length < 2) {\n h = '0' + h;\n }\n\n codecString += h;\n }\n\n meta.codec = codecString;\n var mi = this._mediaInfo;\n mi.width = meta.codecWidth;\n mi.height = meta.codecHeight;\n mi.fps = meta.frameRate.fps;\n mi.profile = meta.profile;\n mi.level = meta.level;\n mi.refFrames = config.ref_frames;\n mi.chromaFormat = config.chroma_format_string;\n mi.sarNum = meta.sarRatio.width;\n mi.sarDen = meta.sarRatio.height;\n mi.videoCodec = codecString;\n\n if (mi.hasAudio) {\n if (mi.audioCodec != null) {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.videoCodec + ',' + mi.audioCodec + '\"';\n }\n } else {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.videoCodec + '\"';\n }\n\n if (mi.isComplete()) {\n console.log('this._onMediaInfo video:', mi);\n\n this._onMediaInfo(mi);\n }\n }\n\n var ppsCount = v.getUint8(offset); // numOfPictureParameterSets\n\n if (ppsCount === 0) {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].FORMAT_ERROR, 'Flv: Invalid AVCDecoderConfigurationRecord: No PPS');\n\n return;\n } else if (ppsCount > 1) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, \"Flv: Strange AVCDecoderConfigurationRecord: PPS Count = \" + ppsCount);\n }\n\n offset++;\n\n for (var _i = 0; _i < ppsCount; _i++) {\n var _len = v.getUint16(offset, !le); // pictureParameterSetLength\n\n\n offset += 2;\n\n if (_len === 0) {\n continue;\n }\n\n var pps = new Uint8Array(arrayBuffer, dataOffset + offset, _len);\n this._AVC_PPS = new Uint8Array(_len + 4);\n\n this._AVC_PPS.set(this._StartCode, 0);\n\n this._AVC_PPS.set(pps, 4); //console.log(\"PPS: \" + this._AVC_PPS);\n // pps is useless for extracting video information\n\n\n offset += _len;\n }\n\n meta.avcc = new Uint8Array(dataSize);\n meta.avcc.set(new Uint8Array(arrayBuffer, dataOffset, dataSize), 0); //Log.v(this.TAG, 'Parsed AVCDecoderConfigurationRecord');\n\n if (this._isInitialMetadataDispatched()) {\n // flush parsed frames\n if (this._dispatch && (this._audioTrack.length || this._videoTrack.length)) {\n this._onDataAvailable(this._audioTrack, this._videoTrack);\n }\n } else {\n this._videoInitialMetadataDispatched = true;\n } // notify new metadata\n\n\n this._dispatch = false;\n\n this._onTrackMetadata('video', meta);\n\n if (this.getVideoInfoCallbackFunc && this.getVideoInfoCallbackFunc != undefined) {\n this.getVideoInfoCallbackFunc(this._callbackPlaybackTimeUserPtr, 'H264', meta.codecWidth, meta.codecHeight);\n } //Log.i(this.TAG, `Video resolution: ${meta.codecWidth} x ${meta.codecHeight}`);\n\n };\n\n _proto.uint8arrayToBase64 = function uint8arrayToBase64(u8Arr) {\n var CHUNK_SIZE = 0x8000; //arbitrary number\n\n var index = 0;\n var length = u8Arr.length;\n var result = '';\n var slice;\n\n while (index < length) {\n slice = u8Arr.subarray(index, Math.min(index + CHUNK_SIZE, length));\n result += String.fromCharCode.apply(null, slice);\n index += CHUNK_SIZE;\n } // web image base64ͼƬ��ʽ: \"data:image/png;base64,\" + b64encoded;\n // return \"data:image/png;base64,\" + btoa(result);\n\n\n return btoa(result);\n };\n\n _proto._parseAVCVideoData = function _parseAVCVideoData(arrayBuffer, dataOffset, dataSize, tagTimestamp, tagPosition, frameType, cts) {\n var le = this._littleEndian;\n var v = new DataView(arrayBuffer, dataOffset, dataSize);\n var units = [],\n length = 0; //console.log(\"_parseAVCVideoData timestampBase:\" + this._timestampBase + \" tagTimestamp:\" + tagTimestamp);\n\n var offset = 0;\n var lengthSize = this._naluLengthSize;\n var dts = this._timestampBase + tagTimestamp;\n var keyframe = frameType === 1; // from FLV Frame Type constants\n\n var bAddStart = true;\n\n if (this.videoCodecId == 7) {\n //H264\n if (this._config.decodeType === 'auto' || this._config.decodeType === 'hard') {\n bAddStart = false;\n }\n }\n\n while (offset < dataSize) {\n if (offset + 4 >= dataSize) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, \"Malformed Nalu near timestamp \" + dts + \", offset = \" + offset + \", dataSize = \" + dataSize);\n break; // data not enough for next Nalu\n } // Nalu with length-header (AVC1)\n\n\n var naluSize = v.getUint32(offset, !le); // Big-Endian read\n\n if (lengthSize === 3) {\n naluSize >>>= 8;\n }\n\n if (naluSize > dataSize - lengthSize) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, \"Malformed Nalus near timestamp \" + dts + \", NaluSize > DataSize!\");\n return;\n }\n\n var unitType = v.getUint8(offset + lengthSize) & 0x1F;\n\n if (unitType === 5) {\n // IDR\n keyframe = true; //���û��sps & pps\n\n if (units.length < 1 && this._AVC_SPS && this._AVC_SPS.length > 0) {\n if (bAddStart) {\n //���\n var unitSps = {\n type: 7,\n data: this._AVC_SPS\n };\n units.push(unitSps);\n length += unitSps.data.length;\n var unitPps = {\n type: 8,\n data: this._AVC_PPS\n };\n units.push(unitPps);\n length += unitPps.data.length;\n } else {\n //Ӳ��\n //ǰ4���ֽ�Ϊ����\n var datSps = this._AVC_SPS.subarray(0, this._AVC_SPS.length);\n\n var datSpsSize = datSps.length - 4;\n datSps[0] = datSpsSize >> 24;\n datSps[1] = datSpsSize >> 16;\n datSps[2] = datSpsSize >> 8;\n datSps[3] = datSpsSize & 255;\n var _unitSps = {\n type: 7,\n data: datSps\n };\n units.push(_unitSps);\n length += _unitSps.data.length; //ǰ4���ֽ�Ϊ����\n\n var datPps = this._AVC_PPS.subarray(0, this._AVC_PPS.length);\n\n var datPpsSize = datPps.length - 4;\n datPps[0] = datPpsSize >> 24;\n datPps[1] = datPpsSize >> 16;\n datPps[2] = datPpsSize >> 8;\n datPps[3] = datPpsSize & 255;\n var _unitPps = {\n type: 8,\n data: datPps\n };\n units.push(_unitPps);\n length += _unitPps.data.length;\n } //console.log(\"add sps & pps...\");\n //���ڿ���\n\n\n if (this.snapshotCount > 0 && this.fullFrameData && this.fullFrameData != undefined) {\n this.fullFrameData.set(this._AVC_SPS, 0);\n this.fullFrameData[0] = 0;\n this.fullFrameData[1] = 0;\n this.fullFrameData[2] = 0;\n this.fullFrameData[3] = 1;\n this.fullFramePos = this._AVC_SPS.length; //console.log(\"fullFramedata sps:\", this.fullFrameData);\n\n this.fullFrameData.set(this._AVC_PPS, this.fullFramePos);\n this.fullFramePos += this._AVC_PPS.length;\n this.fullFrameData[this._AVC_SPS.length + 0] = 0;\n this.fullFrameData[this._AVC_SPS.length + 1] = 0;\n this.fullFrameData[this._AVC_SPS.length + 2] = 0;\n this.fullFrameData[this._AVC_SPS.length + 3] = 1; //console.log(\"fullFramedata pps:\", this._AVC_PPS);\n //console.log(\"fullFramedata:\", this.fullFrameData);\n }\n }\n }\n\n var data = new Uint8Array(arrayBuffer, dataOffset + offset, lengthSize + naluSize);\n var unit = {\n type: unitType,\n data: data\n };\n units.push(unit);\n length += data.byteLength;\n offset += lengthSize + naluSize; //���ڿ���\n //==========================================================\n\n if (keyframe && this.snapshotCount > 0 && this.fullFrameData && this.fullFrameData != undefined && this.fullFramePos > 0 && window.vssModuleInitialized) {\n this.snapshotCount--; //console.log(\"this.framePos:\", this.framePos);\n //console.log(\"tmpF.length:\", tmpF.length);\n //console.log(\"data:\", data);\n\n this.fullFrameData.set(data, this.fullFramePos);\n this.fullFrameData[this.fullFramePos] = 0;\n this.fullFrameData[this.fullFramePos + 1] = 0;\n this.fullFrameData[this.fullFramePos + 2] = 0;\n this.fullFrameData[this.fullFramePos + 3] = 1;\n this.fullFramePos += data.length; //console.log(\"fullFramedata:\", this.fullFrameData);\n //console.log(\"fullFramePos:\" + this.fullFramePos+\" framedata:\", this.fullFrameData);\n\n var mModule = window.vssPlayerModule;\n var wasmKits = window.VssPlayerWasmKits;\n\n if (mModule && mModule != undefined && wasmKits && wasmKits != undefined) {\n var typedArray = new Uint8Array(this.fullFrameData);\n\n if (typedArray.length > 0) {\n var _offset = mModule._malloc(typedArray.length);\n\n mModule.HEAP8.set(typedArray, _offset); //console.log(\"offset:\", offset);\n\n var n = wasmKits.convertFrame2Image(0, _offset, this.fullFramePos, wasmKits.yuvData, 0);\n\n if (n < 1) {\n console.log('Convert fail.');\n } else {\n var outImageData = mModule.HEAPU8.subarray(wasmKits.yuvData, wasmKits.yuvData + n); //console.log(\"imagedata:\", outImageData);\n //const b64encoded = btoa(String.fromCharCode.apply(null, typedArray));\n\n var b64encoded = this.uint8arrayToBase64(outImageData);\n /*\n const image = document.createElement('img');\n image.src = 'data:image/jpeg;base64,' + b64encoded;\n image.style = \"width:500px;height: 250px\";\n document.querySelector(\"body\").append(image);\n */\n //��������\n\n var downloadFileA = document.createElement('a');\n document.body.append(downloadFileA);\n downloadFileA.href = 'data:image/jpeg;base64,' + b64encoded;\n downloadFileA.download = 'snapshot.jpg';\n downloadFileA.rel = 'noopener noreferrer';\n downloadFileA.click();\n document.body.removeChild(downloadFileA);\n }\n\n mModule._free(_offset);\n }\n }\n\n this.fullFramePos = 0;\n } //==========================================================\n\n }\n\n if (units.length) {\n //\n var track = this._videoTrack;\n var avcSample = {\n units: units,\n length: length,\n isKeyframe: keyframe,\n dts: dts,\n cts: cts,\n pts: dts + cts\n };\n\n if (keyframe) {\n avcSample.fileposition = tagPosition;\n } //console.log(\"flv-demuer.js::_parseAVCVideoData:\" + keyframe + \" tagPosition: \" + tagPosition + \" length:\" + length + \" dts:\" + dts + \" cts:\" + cts);\n\n\n track.samples.push(avcSample);\n track.length += length; //console.log(\"flv-demuer.js::_parseAVCVideoData: \" + track.samples.length);\n }\n } //==================================================================\n ;\n\n _proto._parseHEVCDecoderConfigurationRecord = function _parseHEVCDecoderConfigurationRecord(arrayBuffer, dataOffset, dataSize) {\n if (dataSize < 7) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'Flv: Invalid AVCDecoderConfigurationRecord, lack of data!');\n return;\n }\n\n var meta = this._videoMetadata;\n var track = this._videoTrack;\n var le = this._littleEndian;\n var v = new DataView(arrayBuffer, dataOffset, dataSize);\n\n if (!meta) {\n if (this._hasVideo === false && this._hasVideoFlagOverrided === false) {\n this._hasVideo = true;\n this._mediaInfo.hasVideo = true;\n }\n\n meta = this._videoMetadata = {};\n meta.type = 'video';\n meta.id = track.id;\n meta.timescale = this._timescale;\n meta.duration = this._duration;\n } else {\n if (typeof meta.avcc !== 'undefined') {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'Found another AVCDecoderConfigurationRecord!');\n }\n }\n\n var startCode1 = v.getUint8(0);\n var startCode2 = v.getUint8(1);\n var startCode3 = v.getUint8(2);\n var startCode4 = v.getUint8(3);\n\n if (startCode1 === 0 && startCode2 === 0 && startCode3 === 0 && startCode4 === 1) {\n console.log('H265 1');\n } else {\n var _offset2 = 22;\n var num = v.getUint8(_offset2);\n _offset2 += 1; //console.log(\"H265::num: \" + num);\n\n for (var idx = 0; idx < num; idx++) {\n var ucTmp = v.getUint8(_offset2);\n _offset2 += 1;\n var number = v.getUint16(_offset2, !le);\n _offset2 += 2;\n var len = v.getUint16(_offset2, !le);\n _offset2 += 2; //console.log(\"uctmp:\", ucTmp);\n\n if (ucTmp === 32 || ucTmp == 160) {\n //VPS\n // Notice: Nalu without startcode header (00 00 00 01)\n var vps = new Uint8Array(arrayBuffer, dataOffset + _offset2, len);\n this._HEVC_VPS = new Uint8Array(len + 4);\n\n this._HEVC_VPS.set(this._StartCode, 0);\n\n this._HEVC_VPS.set(vps, 4); //this._HEVC_VPS = new Uint8Array(arrayBuffer, dataOffset + offset, len);\n // console.log('VPS[' + len + '] : ' + this._HEVC_VPS);\n\n } else if (ucTmp === 33 || ucTmp == 161) {\n //SPS\n var sps = new Uint8Array(arrayBuffer, dataOffset + _offset2, len);\n this._HEVC_SPS = new Uint8Array(len + 4);\n\n this._HEVC_SPS.set(this._StartCode, 0);\n\n this._HEVC_SPS.set(sps, 4); //this._HEVC_SPS = new Uint8Array(arrayBuffer, dataOffset + offset, len);\n // console.log('SPS[' + len + '] : ' + this._HEVC_SPS);\n\n } else if (ucTmp === 34 || ucTmp == 162) {\n //PPS\n var pps = new Uint8Array(arrayBuffer, dataOffset + _offset2, len);\n this._HEVC_PPS = new Uint8Array(len + 4);\n\n this._HEVC_PPS.set(this._StartCode, 0);\n\n this._HEVC_PPS.set(pps, 4); //this._HEVC_PPS = new Uint8Array(arrayBuffer, dataOffset + offset, len);\n // console.log('PPS[' + len + '] : ' + this._HEVC_PPS);\n\n }\n\n _offset2 += len;\n }\n }\n\n if (this._isInitialMetadataDispatched()) {\n // flush parsed frames\n if (this._dispatch && (this._audioTrack.length || this._videoTrack.length)) {\n this._onDataAvailable(this._audioTrack, this._videoTrack);\n }\n } else {\n this._videoInitialMetadataDispatched = true;\n } // notify new metadata\n\n\n this._dispatch = false;\n return;\n var version = v.getUint8(0); // configurationVersion\n\n var avcProfile = v.getUint8(1); // avcProfileIndication\n\n var profileCompatibility = v.getUint8(2); // profile_compatibility\n\n var avcLevel = v.getUint8(3); // AVCLevelIndication\n\n if (version !== 1 || avcProfile === 0) {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].FORMAT_ERROR, 'Flv: Invalid AVCDecoderConfigurationRecord');\n\n return;\n }\n\n this._naluLengthSize = (v.getUint8(4) & 3) + 1; // lengthSizeMinusOne\n\n if (this._naluLengthSize !== 3 && this._naluLengthSize !== 4) {\n // holy shit!!!\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].FORMAT_ERROR, \"Flv: Strange NaluLengthSizeMinusOne: \" + (this._naluLengthSize - 1));\n\n return;\n }\n\n var spsCount = v.getUint8(5) & 31; // numOfSequenceParameterSets\n\n if (spsCount === 0) {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].FORMAT_ERROR, 'Flv: Invalid AVCDecoderConfigurationRecord: No SPS');\n\n return;\n } else if (spsCount > 1) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, \"Flv: Strange AVCDecoderConfigurationRecord: SPS Count = \" + spsCount);\n }\n\n var offset = 6;\n\n for (var i = 0; i < spsCount; i++) {\n var _len2 = v.getUint16(offset, !le); // sequenceParameterSetLength\n\n\n offset += 2;\n\n if (_len2 === 0) {\n continue;\n } // Notice: Nalu without startcode header (00 00 00 01)\n\n\n var _sps = new Uint8Array(arrayBuffer, dataOffset + offset, _len2);\n\n offset += _len2;\n var config = _sps_parser_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].parseSPS(_sps);\n\n if (i !== 0) {\n // ignore other sps's config\n continue;\n }\n\n meta.codecWidth = config.codec_size.width;\n meta.codecHeight = config.codec_size.height;\n meta.presentWidth = config.present_size.width;\n meta.presentHeight = config.present_size.height;\n meta.profile = config.profile_string;\n meta.level = config.level_string;\n meta.bitDepth = config.bit_depth;\n meta.chromaFormat = config.chroma_format;\n meta.sarRatio = config.sar_ratio;\n meta.frameRate = config.frame_rate;\n\n if (config.frame_rate.fixed === false || config.frame_rate.fps_num === 0 || config.frame_rate.fps_den === 0) {\n meta.frameRate = this._referenceFrameRate;\n }\n\n var fps_den = meta.frameRate.fps_den;\n var fps_num = meta.frameRate.fps_num;\n meta.refSampleDuration = meta.timescale * (fps_den / fps_num);\n\n var codecArray = _sps.subarray(1, 4);\n\n var codecString = 'avc1.';\n\n for (var j = 0; j < 3; j++) {\n var h = codecArray[j].toString(16);\n\n if (h.length < 2) {\n h = '0' + h;\n }\n\n codecString += h;\n }\n\n meta.codec = codecString;\n var mi = this._mediaInfo;\n mi.width = meta.codecWidth;\n mi.height = meta.codecHeight;\n mi.fps = meta.frameRate.fps;\n mi.profile = meta.profile;\n mi.level = meta.level;\n mi.refFrames = config.ref_frames;\n mi.chromaFormat = config.chroma_format_string;\n mi.sarNum = meta.sarRatio.width;\n mi.sarDen = meta.sarRatio.height;\n mi.videoCodec = codecString;\n\n if (mi.hasAudio) {\n if (mi.audioCodec != null) {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.videoCodec + ',' + mi.audioCodec + '\"';\n }\n } else {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.videoCodec + '\"';\n }\n\n if (mi.isComplete()) {\n this._onMediaInfo(mi);\n }\n }\n\n var ppsCount = v.getUint8(offset); // numOfPictureParameterSets\n\n if (ppsCount === 0) {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].FORMAT_ERROR, 'Flv: Invalid AVCDecoderConfigurationRecord: No PPS');\n\n return;\n } else if (ppsCount > 1) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, \"Flv: Strange AVCDecoderConfigurationRecord: PPS Count = \" + ppsCount);\n }\n\n offset++;\n\n for (var _i2 = 0; _i2 < ppsCount; _i2++) {\n var _len3 = v.getUint16(offset, !le); // pictureParameterSetLength\n\n\n offset += 2;\n\n if (_len3 === 0) {\n continue;\n } // pps is useless for extracting video information\n\n\n offset += _len3;\n }\n\n meta.avcc = new Uint8Array(dataSize);\n meta.avcc.set(new Uint8Array(arrayBuffer, dataOffset, dataSize), 0);\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].v(this.TAG, 'Parsed AVCDecoderConfigurationRecord');\n\n if (this._isInitialMetadataDispatched()) {\n // flush parsed frames\n if (this._dispatch && (this._audioTrack.length || this._videoTrack.length)) {\n this._onDataAvailable(this._audioTrack, this._videoTrack);\n }\n } else {\n this._videoInitialMetadataDispatched = true;\n } // notify new metadata\n\n\n this._dispatch = false;\n\n this._onTrackMetadata('video', meta);\n };\n\n _proto.snapshot = function snapshot() {\n this.snapshotCount++;\n } //#define H265_Get_NalType(c)\t (((c) & 0x7E) >> 1);\n ;\n\n _proto._makeH265Header = function _makeH265Header(buf) {\n var frameType = 0x02;\n\n switch (buf) {\n case 0x4E:\n //Prefix SEI\n {\n frameType = 0x01;\n }\n break;\n\n case 0x50:\n //Suffix SEI\n {\n frameType = 0x01;\n }\n break;\n\n case 0x40: //VPS\n\n case 0x42: //SPS\n\n case 0x20: //I frame 16\n\n case 0x22: //I frame 17\n\n case 0x24: //I frame 18\n\n case 0x26: //I frame 19\n\n case 0x28: //I frame 20\n\n case 0x2A:\n //I frame 21(acturally we should find naltype 16-21)\n {\n frameType = 0x01;\n }\n break;\n\n case 0x44:\n //PPS\n break;\n\n default:\n break;\n }\n\n return frameType;\n };\n\n _proto._parseHEVCVideoData = function _parseHEVCVideoData(arrayBuffer, dataOffset, dataSize, tagTimestamp, tagPosition, frameType, cts) {\n var le = this._littleEndian;\n var v = new DataView(arrayBuffer, dataOffset, dataSize); //console.log(\"Parse HEVC Video data... \" + dataSize);\n\n var dts = this._timestampBase + tagTimestamp;\n var keyframe = frameType === 1; // from FLV Frame Type constants\n\n var units = [];\n var framePos = 0;\n var offset = 0;\n\n while (offset < dataSize) {\n if (offset + 4 >= dataSize) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, \"Malformed Nalu near timestamp \" + dts + \", offset = \" + offset + \", dataSize = \" + dataSize);\n break; // data not enough for next Nalu\n }\n\n var startCode1 = v.getUint8(offset);\n var startCode2 = v.getUint8(offset + 1);\n var startCode3 = v.getUint8(offset + 2);\n var startCode4 = v.getUint8(offset + 3);\n\n if (startCode1 === 0 && startCode2 === 0 && startCode3 === 0 && startCode4 === 1) {\n console.log('memcpy.....'); //������\n } else {\n // Nalu with length-header (AVC1)\n //let naluSize = v.getUint32(offset, !le); // Big-Endian read\n //if (lengthSize === 3) {\n // naluSize >>>= 8;\n //}\n //if (naluSize > dataSize - lengthSize) {\n // Log.w(this.TAG, `Malformed Nalus near timestamp ${dts}, NaluSize > DataSize!`);\n // return;\n //}\n var naluDataSize = v.getUint32(offset, !le);\n offset += 4;\n var ucTmp = v.getUint8(offset);\n offset += 1;\n\n if (naluDataSize > dataSize - 4) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, \"Malformed Nalus near timestamp \" + dts + \", NaluSize > DataSize!\");\n return;\n }\n\n var codecId = ucTmp & 15; //console.log(\"NaluDataSize: \" + naluDataSize);\n\n if (naluDataSize + offset - 1 > dataSize) {\n //console.log(\" > dataSize... need more data... \" + dataSize + \" / \" + naluDataSize);\n break;\n }\n\n var byte1 = v.getUint8(offset - 1);\n\n var _frameType = this._makeH265Header(byte1);\n\n var unitType = 0; //console.log(\"byte1:\", byte1);\n\n if (byte1 == 0x4E) {\n if (units.length < 1) {\n //console.log(\"length<1:\");\n if (this._HEVC_VPS) {\n var unitVps = {\n type: 5,\n data: this._HEVC_VPS\n };\n units.push(unitVps);\n framePos += this._HEVC_VPS.length; //console.log(\"has VPS\");\n }\n\n if (this._HEVC_SPS) {\n var unitSps = {\n type: 6,\n data: this._HEVC_SPS\n };\n units.push(unitSps);\n framePos += this._HEVC_SPS.length; //console.log(\"has SPS\");\n }\n\n if (this._HEVC_PPS) {\n var unitPps = {\n type: 7,\n data: this._HEVC_PPS\n };\n units.push(unitPps);\n framePos += this._HEVC_PPS.length; //console.log(\"has PPS\");\n }\n }\n\n if (dataOffset + offset - 1 - 4 >= 0 && naluDataSize > 0) {\n var data = new Uint8Array(arrayBuffer, dataOffset + offset - 1 - 4, naluDataSize + 4);\n data[0] = 0;\n data[1] = 0;\n data[2] = 0;\n data[3] = 1;\n var unit = {\n type: 5,\n data: data\n };\n units.push(unit); //console.log(\"data:\", data);\n\n framePos += data.length;\n }\n\n offset += naluDataSize - 1;\n continue;\n }\n\n if (byte1 === 0x20 || byte1 === 0x22 || byte1 === 0x24 || byte1 === 0x26 || byte1 === 0x28 || byte1 === 0x2A) {\n //console.log(\"###############:\", byte1);\n if (units.length < 1) {\n //console.log(\"length<1:\");\n if (this._HEVC_VPS) {\n var _unitVps = {\n type: 5,\n data: this._HEVC_VPS\n };\n units.push(_unitVps);\n framePos += this._HEVC_VPS.length; //console.log(\"has VPS\");\n }\n\n if (this._HEVC_SPS) {\n var _unitSps2 = {\n type: 6,\n data: this._HEVC_SPS\n };\n units.push(_unitSps2);\n framePos += this._HEVC_SPS.length; //console.log(\"has SPS\");\n }\n\n if (this._HEVC_PPS) {\n var _unitPps2 = {\n type: 7,\n data: this._HEVC_PPS\n };\n units.push(_unitPps2);\n framePos += this._HEVC_PPS.length; //console.log(\"has PPS\");\n }\n }\n }\n\n if (_frameType === 1 && this._HEVC_VPS && byte1 !== this._HEVC_VPS[0]) {//console.log(\"memcpy vps sps pps...\");\n } //console.log(\"naluDataSize: \" + naluDataSize);\n\n\n if (dataOffset + offset - 1 - 4 >= 0 && naluDataSize > 0) {\n var _data = new Uint8Array(arrayBuffer, dataOffset + offset - 1 - 4, naluDataSize + 4);\n\n _data[0] = 0;\n _data[1] = 0;\n _data[2] = 0;\n _data[3] = 1;\n var _unit = {\n type: 5,\n data: _data\n };\n units.push(_unit); //console.log(\"data:\", data);\n\n framePos += _data.length;\n }\n\n offset += naluDataSize - 1;\n }\n } //����Ϊ���Դ���\n\n\n if (this._DebugBuf) {\n if (this._DebugBufPos < 1024 * 1024) {\n this._DebugBuf.set(data2, this._DebugBufPos);\n\n this._DebugBufPos += data2.length;\n } else {\n console.log('DebugBuf: ' + this._DebugBuf);\n this._DebugBufPos = 0;\n }\n }\n /*\n if (bRet) {\n console.log(\"Frame data I[\" + framePos + \"]: \");// + data2);\n }\n else {\n console.log(\" Frame data P[\" + framePos + \"]: \");// + data2);\n }\n */\n //�������\n\n\n if (units.length) {\n var track = this._videoTrack;\n var avcSample = {\n units: units,\n length: framePos,\n isKeyframe: keyframe,\n dts: dts,\n cts: cts,\n pts: dts + cts\n };\n\n if (keyframe) {\n avcSample.fileposition = tagPosition;\n }\n\n track.samples.push(avcSample);\n track.length += framePos; //console.log(\"flv-demuer.js::_parseAVCVideoData: \" + track.samples.length);\n }\n\n return;\n /*\n let units = [], length = 0;\n //let offset = 0;\n const lengthSize = this._naluLengthSize;\n let dts = this._timestampBase + tagTimestamp;\n let keyframe = (frameType === 1); // from FLV Frame Type constants\n while (offset < dataSize) {\n if (offset + 4 >= dataSize) {\n Log.w(this.TAG, `Malformed Nalu near timestamp ${dts}, offset = ${offset}, dataSize = ${dataSize}`);\n break; // data not enough for next Nalu\n }\n // Nalu with length-header (AVC1)\n let naluSize = v.getUint32(offset, !le); // Big-Endian read\n if (lengthSize === 3) {\n naluSize >>>= 8;\n }\n if (naluSize > dataSize - lengthSize) {\n Log.w(this.TAG, `Malformed Nalus near timestamp ${dts}, NaluSize > DataSize!`);\n return;\n }\n let unitType = v.getUint8(offset + lengthSize) & 0x1F;\n if (unitType === 5) { // IDR\n keyframe = true;\n }\n let data = new Uint8Array(arrayBuffer, dataOffset + offset, lengthSize + naluSize);\n let unit = { type: unitType, data: data };\n units.push(unit);\n length += data.byteLength;\n offset += lengthSize + naluSize;\n }\n if (units.length) {\n let track = this._videoTrack;\n let avcSample = {\n units: units,\n length: length,\n isKeyframe: keyframe,\n dts: dts,\n cts: cts,\n pts: (dts + cts)\n };\n if (keyframe) {\n avcSample.fileposition = tagPosition;\n }\n track.samples.push(avcSample);\n track.length += length;\n //console.log(\"flv-demuer.js::_parseAVCVideoData: \" + track.samples.length);\n }\n */\n };\n\n _createClass(FLVDemuxer, [{\n key: \"onTrackMetadata\",\n get: function get() {\n console.log('onTrackMetadata:', this._onTrackMetadata);\n return this._onTrackMetadata;\n },\n set: function set(callback) {\n this._onTrackMetadata = callback;\n } // prototype: function(mediaInfo: MediaInfo): void\n\n }, {\n key: \"onMediaInfo\",\n get: function get() {\n console.log('onMediaInfo():', this._onMediaInfo);\n return this._onMediaInfo;\n },\n set: function set(callback) {\n this._onMediaInfo = callback;\n }\n }, {\n key: \"onMetaDataArrived\",\n get: function get() {\n return this._onMetaDataArrived;\n },\n set: function set(callback) {\n this._onMetaDataArrived = callback;\n }\n }, {\n key: \"onScriptDataArrived\",\n get: function get() {\n return this._onScriptDataArrived;\n },\n set: function set(callback) {\n this._onScriptDataArrived = callback;\n } // prototype: function(type: number, info: string): void\n\n }, {\n key: \"onError\",\n get: function get() {\n return this._onError;\n },\n set: function set(callback) {\n this._onError = callback;\n } // prototype: function(videoTrack: any, audioTrack: any): void\n\n }, {\n key: \"onDataAvailable\",\n get: function get() {\n return this._onDataAvailable;\n },\n set: function set(callback) {\n this._onDataAvailable = callback;\n } // timestamp base for output samples, must be in milliseconds\n\n }, {\n key: \"timestampBase\",\n get: function get() {\n return this._timestampBase;\n },\n set: function set(base) {\n this._timestampBase = base;\n }\n }, {\n key: \"overridedDuration\",\n get: function get() {\n return this._duration;\n } // Force-override media duration. Must be in milliseconds, int32\n ,\n set: function set(duration) {\n this._durationOverrided = true;\n this._duration = duration;\n this._mediaInfo.duration = duration;\n } // Force-override audio track present flag, boolean\n\n }, {\n key: \"overridedHasAudio\",\n set: function set(hasAudio) {\n this._hasAudioFlagOverrided = true;\n this._hasAudio = hasAudio;\n this._mediaInfo.hasAudio = hasAudio;\n } // Force-override video track present flag, boolean\n\n }, {\n key: \"overridedHasVideo\",\n set: function set(hasVideo) {\n this._hasVideoFlagOverrided = true;\n this._hasVideo = hasVideo;\n this._mediaInfo.hasVideo = hasVideo;\n }\n }]);\n\n return FLVDemuxer;\n}(); //==================================================================\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FLVDemuxer);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/demux/flv-demuxer.js?"); | ||
| 3221 | + | ||
| 3222 | +/***/ }), | ||
| 3223 | + | ||
| 3224 | +/***/ "./src/FlvPlayer/flv.js/demux/rtsp-demuxer.js": | ||
| 3225 | +/*!****************************************************!*\ | ||
| 3226 | + !*** ./src/FlvPlayer/flv.js/demux/rtsp-demuxer.js ***! | ||
| 3227 | + \****************************************************/ | ||
| 3228 | +/*! exports provided: default */ | ||
| 3229 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3230 | + | ||
| 3231 | +"use strict"; | ||
| 3232 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/FlvPlayer/flv.js/utils/logger.js\");\n/* harmony import */ var _sps_parser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sps-parser.js */ \"./src/FlvPlayer/flv.js/demux/sps-parser.js\");\n/* harmony import */ var _demux_errors_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./demux-errors.js */ \"./src/FlvPlayer/flv.js/demux/demux-errors.js\");\n/* harmony import */ var _core_media_info_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/media-info.js */ \"./src/FlvPlayer/flv.js/core/media-info.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/FlvPlayer/flv.js/utils/exception.js\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\n\n //import * as common from '../../../common/common';\n\nfunction Swap16(src) {\n return src >>> 8 & 0xFF | (src & 0xFF) << 8;\n}\n\nfunction Swap32(src) {\n return (src & 0xFF000000) >>> 24 | (src & 0x00FF0000) >>> 8 | (src & 0x0000FF00) << 8 | (src & 0x000000FF) << 24;\n}\n\nfunction ReadBig32(array, index) {\n return array[index] << 24 | array[index + 1] << 16 | array[index + 2] << 8 | array[index + 3];\n}\n\nvar RTSPDemuxer = /*#__PURE__*/function () {\n function RTSPDemuxer(probeData, config, callbackMediaDataFunc, callbackMediaDataUserPtr, callbackPlaybackTimePtr, callbackPlaybackTimeUserPtr, getVideoInfoCbFunc) {\n this.TAG = 'RTSPDemuxer';\n this._config = config;\n this._onError = null;\n this._onMediaInfo = null;\n this._onMetaDataArrived = null;\n this._onScriptDataArrived = null;\n this._onTrackMetadata = null;\n this._onDataAvailable = null; //this._onDataAvailableToSoftwareDecode = null;\n\n this._dataOffset = probeData.dataOffset;\n this._firstParse = true;\n this._dispatch = false;\n this._hasAudio = probeData.hasAudioTrack;\n this._hasVideo = probeData.hasVideoTrack;\n this._hasAudioFlagOverrided = false;\n this._hasVideoFlagOverrided = false;\n this._audioInitialMetadataDispatched = false;\n this._videoInitialMetadataDispatched = false;\n this._initVideoMetadata = false;\n this._initAudioMetadata = false;\n this._mediaInfo = new _core_media_info_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]();\n this._mediaInfo.hasAudio = this._hasAudio;\n this._mediaInfo.hasVideo = this._hasVideo;\n this._metadata = null;\n this._audioMetadata = null;\n this._videoMetadata = null;\n this._naluLengthSize = 4;\n this._timestampBase = 0; // int32, in milliseconds\n\n this._timescale = 1000;\n this._duration = 0; // int32, in milliseconds\n\n this._durationOverrided = false;\n this._referenceFrameRate = {\n fixed: true,\n fps: 23.976,\n fps_num: 23976,\n fps_den: 1000\n };\n this._flvSoundRateTable = [5500, 11025, 22050, 44100, 48000];\n this._mpegSamplingRates = [96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350];\n this._mpegAudioV10SampleRateTable = [44100, 48000, 32000, 0];\n this._mpegAudioV20SampleRateTable = [22050, 24000, 16000, 0];\n this._mpegAudioV25SampleRateTable = [11025, 12000, 8000, 0];\n this._mpegAudioL1BitRateTable = [0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, -1];\n this._mpegAudioL2BitRateTable = [0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, -1];\n this._mpegAudioL3BitRateTable = [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1];\n this._videoTrack = {\n type: 'video',\n id: 1,\n sequenceNumber: 0,\n samples: [],\n length: 0\n };\n this._audioTrack = {\n type: 'audio',\n id: 2,\n sequenceNumber: 0,\n samples: [],\n length: 0\n };\n\n this._littleEndian = function () {\n var buf = new ArrayBuffer(2);\n new DataView(buf).setInt16(0, 256, true); // little-endian write\n\n return new Int16Array(buf)[0] === 256; // platform-spec read, if equal then LE\n }();\n\n this.videoCodecId = probeData.videoCodecId;\n this.audioCodecId = probeData.audioCodecId;\n this._AVC_SPS = null;\n this._AVC_PPS = null;\n this._HEVC_VPS = null;\n this._HEVC_SPS = null;\n this._HEVC_PPS = null;\n this._StartCode = [0, 0, 0, 1];\n this._SampleRate = 8000;\n this._ChannelNum = 1;\n this._AVC_Config = null;\n this._pause = false;\n this._callbackInitFlag = false;\n this._callbackMediaDataFunc = callbackMediaDataFunc;\n this._callbackMediaDataUserPtr = callbackMediaDataUserPtr;\n this._callbackPlaybackTimePtr = callbackPlaybackTimePtr;\n this._callbackPlaybackTimeUserPtr = callbackPlaybackTimeUserPtr;\n this.getVideoInfoCallbackFunc = getVideoInfoCbFunc;\n this._debugProcCount = 0;\n this.ptsInterval = 40; //Ĭ��Ϊ25FPS\n\n this.packetData = null; //new Uint8Array(1024 * 16);\n\n this.packetPos = 0;\n this.frameData = new Uint8Array(1024 * 1024 * 2);\n this.fullFrameData = null; //new Uint8Array(1024 * 1024 * 2);\n\n this.fullFramePos = 0;\n this.snapshotCount = 0;\n this.framePos = 0;\n this.lastTimestamp = 0;\n this.currentIsKeyFrame = false;\n this.reset = 0;\n this.findKeyframe = true;\n this.syncVideoPts = 0;\n this.syncAudioPts = 0;\n this.startVideoPts = 0;\n this.startAudioPts = 0;\n this.lastNALType = 0;\n this._fileposition = 0;\n this._DebugBuf = null; //new Uint8Array(1024 * 1024 * 2);\n //this._DebugBuf = new Uint8Array(1024 * 1024 * 2);\n\n this._DebugBufPos = 0;\n }\n\n var _proto = RTSPDemuxer.prototype;\n\n _proto.destroy = function destroy() {\n this._mediaInfo = null;\n this._metadata = null;\n this._audioMetadata = null;\n this._videoMetadata = null;\n this._videoTrack = null;\n this._audioTrack = null;\n this._onError = null;\n this._onMediaInfo = null;\n this._onMetaDataArrived = null;\n this._onScriptDataArrived = null;\n this._onTrackMetadata = null;\n this._onDataAvailable = null;\n\n if (this.packetData) {\n delete this.packetData;\n this.packetData = null;\n }\n\n if (this.frameData) {\n delete this.frameData;\n this.frameData = null;\n }\n\n if (this.fullFrameData) {\n delete this.fullFrameData;\n this.fullFrameData = null;\n }\n };\n\n RTSPDemuxer.probe = function probe(buffer) {\n //�˴���bufferΪrtsp�е�mediainfo\n if (buffer.videoCodecId > 0) {\n return {\n match: true,\n consumed: 0,\n dataOffset: 0,\n hasAudioTrack: buffer.audioCodecId > 0 ? true : false,\n hasVideoTrack: buffer.videoCodecId > 0 ? true : false,\n videoCodecId: buffer.videoCodecId,\n audioCodecId: buffer.audioCodecId\n };\n }\n\n var data = new Uint8Array(buffer);\n var mismatch = {\n match: false\n };\n\n if (data[0] !== '$') {\n return mismatch;\n }\n\n var hasAudio = (data[4] & 4) >>> 2 !== 0;\n var hasVideo = (data[4] & 1) !== 0;\n var offset = ReadBig32(data, 5);\n\n if (offset < 9) {\n return mismatch;\n }\n\n return {\n match: true,\n consumed: offset,\n dataOffset: offset,\n hasAudioTrack: hasAudio,\n hasVideoTrack: hasVideo\n };\n };\n\n _proto.bindDataSource = function bindDataSource(loader) {\n loader.onDataArrival = this.parseChunks.bind(this);\n return this;\n } // prototype: function(type: string, metadata: any): void\n ;\n\n _proto.resetMediaInfo = function resetMediaInfo() {\n this._mediaInfo = new _core_media_info_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]();\n } //==================================================================================================\n ;\n\n _proto.pause = function pause() {\n this._pause = true;\n };\n\n _proto.resume = function resume() {\n this._pause = false;\n };\n\n _proto._onDataAvailableToSoftwareDecodeVideo = function _onDataAvailableToSoftwareDecodeVideo(codecId, videoTrack) {\n var track = videoTrack;\n var samples = track.samples;\n var idx = -1;\n\n if (samples.length > 1) {\n //console.log(\"frame num: \" + samples.length);\n idx = 0;\n }\n\n while (samples.length) {\n var sample = samples.shift();\n var frameLength = 0;\n\n for (var j = 0; j < sample.units.length; j++) {\n frameLength += sample.units[j].data.length;\n }\n\n var offset = 0;\n var bufdata = new Uint8Array(frameLength); //for (let j = 0; j < sample.units.length; j++) {\n\n while (sample.units.length) {\n var unit = sample.units.shift();\n\n if (codecId == 27) {\n unit.data[0] = 0;\n unit.data[1] = 0;\n unit.data[2] = 0;\n unit.data[3] = 1;\n }\n\n bufdata.set(unit.data, offset);\n offset += unit.data.length;\n } //isKeyframe\n\n\n if (this._callbackMediaDataFunc) {\n //console.log(\"Decode: \" + bufdata);\n //console.log(\"Decode: \" + frameLength);\n if (idx >= 0) {\n //console.log(\"frame idx \" + idx + \" length: \" + frameLength);// + \":\" + bufdata);\n idx++;\n } //console.log(\"Flv-Demuxer.js:: callback pts: \" + sample.pts);\n\n\n this._callbackMediaDataFunc(this._callbackMediaDataUserPtr, true, 1, codecId, sample.isKeyframe, bufdata, frameLength, sample.pts, 0, 0);\n }\n }\n };\n\n _proto._onDataAvailableToSoftwareDecodeAudio = function _onDataAvailableToSoftwareDecodeAudio(codecId, audioTrack) {\n //console.log(\"proc audio frame....\" + codecId + \" samples: \" + audioTrack.samples.length);\n var track = audioTrack;\n var samples = track.samples;\n var idx = -1;\n\n if (samples.length > 1) {\n //console.log(\"frame num: \" + samples.length);\n idx = 0;\n }\n\n while (samples.length) {\n var sample = samples.shift();\n\n if (this._callbackMediaDataFunc) {\n //console.log(\"Decode audio: \" + sample.unit);\n //console.log(\"Decode: \" + frameLength);\n if (idx >= 0) {\n //console.log(\"frame idx \" + idx + \" length: \" + frameLength);// + \":\" + bufdata);\n idx++;\n } //mediaType, codecId, framedata, framesize, samplerate, channels, bitPerSample) {\n\n\n this._callbackMediaDataFunc(this._callbackMediaDataUserPtr, true, 2, codecId, 0, sample.unit, sample.length, this._SampleRate, this._ChannelNum, this._SampleRate >= 44100 ? 32 : 16);\n }\n }\n } //==================================================================================================\n ;\n\n _proto._isInitialMetadataDispatched = function _isInitialMetadataDispatched() {\n if (this._hasAudio && this._hasVideo) {\n // both audio & video\n return this._audioInitialMetadataDispatched && this._videoInitialMetadataDispatched;\n }\n\n if (this._hasAudio && !this._hasVideo) {\n // audio only\n return this._audioInitialMetadataDispatched;\n }\n\n if (!this._hasAudio && this._hasVideo) {\n // video only\n return this._videoInitialMetadataDispatched;\n }\n\n return false;\n };\n\n _proto.procH264Packet = function procH264Packet(srcBuf, srcLen) {\n //unsigned char *dstbuf, unsigned int *bKeyFrame, unsigned int *bNaluEnd\n var StartCode = [0, 0, 0, 1]; //console.log(\"rtp data: \" + srcBuf);\n\n var offset = 0;\n var isKeyFrame = false;\n var nalType = srcBuf[0] & 0x1F; //console.log(\"nalType:\", nalType);\n\n if (nalType >= 1 && nalType <= 23) {\n if (nalType == 5) {\n isKeyFrame = true;\n }\n\n nalType = 1;\n }\n\n var result = {\n length: 0,\n keyframe: isKeyFrame,\n endBit: 0\n };\n\n switch (nalType) {\n case 0:\n console.log('nalType == 0.');\n break;\n\n case 1:\n {\n //console.log(\"naltype=1. data:\" + srcBuf);\n this.frameData.set(StartCode, this.framePos);\n this.framePos += 4;\n this.frameData.set(srcBuf, this.framePos);\n this.framePos += srcBuf.length;\n result.length = 4 + srcBuf.length; //console.log(\"nalType == 1. result.length:\" + result.length);\n\n if (this._AVC_SPS && this._AVC_PPS) {\n //console.log(\"this._AVC_SPS:\" + this._AVC_SPS.length + \" this._AVC_PPS:\" + this._AVC_PPS.length);\n if (result.length > this._AVC_SPS.length + this._AVC_PPS.length + 8) {\n result.endBit = 1;\n }\n }\n }\n break;\n\n case 24:\n {\n console.log('one packet, multiple nals...');\n offset++;\n\n for (var pass = 0; pass < 2; pass++) {\n var src_len = this.framePos - offset;\n\n do {\n var nal_size = srcBuf[offset] << 8 | srcBuf[offset + 1] & 0xFF;\n offset += 2;\n src_len -= 2;\n\n if (nal_size <= src_len) {}\n } while (src_len > 2);\n }\n }\n break;\n\n case 25:\n case 26:\n case 27:\n case 29:\n {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].e(this.TAG, 'Unhandled type(' + nalType + ') (See RFC for implementation details');\n }\n break;\n\n case 28:\n {\n // FU-A (fragmented nal)\n offset++;\n var fu_indicator = nalType;\n var fu_header = srcBuf[offset];\n var start_bit = fu_header >> 7;\n var end_bit = (fu_header & 0x40) >> 6;\n var fu_type = fu_header & 0x1F;\n var reconstructed_nal = fu_indicator & 0xE0;\n reconstructed_nal |= nalType;\n var nal_fua = fu_indicator & 0xe0 | fu_header & 0x1f;\n offset++; //console.log(\"fu_type:\" + fu_type + \" nal_fua:\" + nal_fua + \" startBit:\" + start_bit + \" end_bit:\" + end_bit);\n\n if (fu_type == 5 || fu_type == 6) {\n //2022.02.24 ����fu_type==6\n result.keyframe = true;\n }\n\n if (end_bit == 1) {\n var p = srcBuf.subarray(offset);\n this.frameData.set(p, this.framePos);\n this.framePos += p.length; //console.log(\"frame size:\" + this.framePos);\n\n result.endBit = 1;\n } else if (start_bit == 1) {\n //this.frameData[this.framePos] = nal_fua;\n //=====================================\n //�����SPS��PPS�����\n var p1 = srcBuf[0] & 0xE0 | srcBuf[1] & 0x1F;\n\n if (this._AVC_SPS && this._AVC_PPS) {\n //console.log(\"start:\" + p1 + \" sps[4]:\" + this._AVC_SPS[4] + \" nal_fua:\" + nal_fua + \" this._AVC_SPS.length:\" + this._AVC_SPS.length + \" this._AVC_PPS.length:\" + this._AVC_PPS.length);\n if (this._AVC_SPS[4] != p1 && nal_fua == 5 && (this.frameData[4] != this._AVC_SPS[4] || this.frameData[4] == this._AVC_SPS[4] && this.framePos < 1)) {\n this.frameData.set(this._AVC_SPS, this._AVC_SPS.length);\n this.framePos += this._AVC_SPS.length;\n this.frameData.set(this._AVC_PPS, this._AVC_PPS.length);\n this.framePos += this._AVC_PPS.length;\n }\n } //=====================================\n //\n\n\n this.frameData.set(StartCode, this.framePos);\n this.framePos += 4; //this.frameData[this.framePos] = (srcBuf[1] & 0xE0) | 28;\n\n this.frameData[this.framePos] = srcBuf[0] & 0xE0 | srcBuf[1] & 0x1F;\n this.framePos += 1; //this.frameData[this.framePos] = 0x80 | (srcBuf[1] & 0x1F);\n //this.framePos += 1;\n\n var _p = srcBuf.subarray(2, srcBuf.length);\n\n this.frameData.set(_p, this.framePos);\n this.framePos += _p.length;\n } else {\n var _p2 = srcBuf.subarray(2);\n\n this.frameData.set(_p2, this.framePos);\n this.framePos += _p2.length;\n }\n /*\n if (start_bit) {\n if (nal_type == 5) result.keyframe = true;\n //00 00 00 01\n this.frameData.set(StartCode, this.framePos);\n this.framePos += 4;\n //this.frameData.set(reconstructed_nal, this.framePos);\n this.frameData[this.framePos] = reconstructed_nal;\n this.framePos += 1;\n let p = srcBuf.subarray(offset);\n this.frameData.set(p, this.framePos);\n this.framePos += (p.length);\n result.length = 4 + 1 + p.length;\n }\n else {\n let p = srcBuf.subarray(offset);\n this.frameData.set(p, this.framePos);\n this.framePos += (p.length);\n }\n */\n\n }\n break;\n\n case 30:\n case 31:\n {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].e(this.TAG, 'Undefined type: ' + nalType);\n }\n break;\n\n default:\n {\n console.log('naltype: ' + nalType);\n }\n break;\n }\n\n return result;\n };\n\n _proto.procH264NALHeader = function procH264NALHeader(payload) {\n var naltype = payload[0] & 0x1F;\n this.lastNALType = naltype;\n\n if ((naltype == 7 || naltype == 8 || naltype == 6 || naltype == 5) && payload.length < 256) {\n var StartCode = [0, 0, 0, 1]; // this.frameData.set(StartCode, this.framePos);\n // this.framePos += 4;\n //this.waitKeyFrame = true;\n\n this.currentIsKeyFrame = true;\n\n if (naltype == 7) {\n if (!this._initVideoMetadata) {\n this._AVC_Config = _sps_parser_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].parseSPS(payload);\n var config = this._AVC_Config;\n var codecString = 'avc1.';\n\n if (config) {\n //console.log(\"config2: \" + config);\n var codecArray = payload.subarray(1, 4);\n\n for (var j = 0; j < 3; j++) {\n var h = codecArray[j].toString(16);\n\n if (h.length < 2) {\n h = '0' + h;\n }\n\n codecString += h;\n } //console.log(\"codecString: \" + codecString);\n\n }\n\n if (this._AVC_SPS == null) {\n this._AVC_SPS = new Uint8Array(payload.length + 4);\n\n this._AVC_SPS.set(StartCode, 0);\n\n this._AVC_SPS.set(payload, 4);\n }\n\n var meta = this._videoMetadata;\n var track = this._videoTrack; //let le = this._littleEndian;\n //let v = new DataView(arrayBuffer, dataOffset, dataSize);\n\n if (!meta) {\n if (this._hasVideo === false && this._hasVideoFlagOverrided === false) {\n this._hasVideo = true;\n this._mediaInfo.hasVideo = true;\n }\n\n meta = this._videoMetadata = {};\n meta.type = 'video';\n meta.id = track.id;\n meta.timescale = this._timescale;\n meta.duration = this._duration;\n } else {\n if (typeof meta.avcc !== 'undefined') {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'Found another AVCDecoderConfigurationRecord!');\n }\n }\n\n meta.codecWidth = config.codec_size.width;\n meta.codecHeight = config.codec_size.height;\n meta.presentWidth = config.present_size.width;\n meta.presentHeight = config.present_size.height; //console.log(\"codecWidth: \" + meta.codecWidth + \" x \" + meta.codecHeight);\n\n if (this.getVideoInfoCallbackFunc && this.getVideoInfoCallbackFunc != undefined) {\n this.getVideoInfoCallbackFunc(this._callbackPlaybackTimeUserPtr, 'H264', meta.codecWidth, meta.codecHeight);\n }\n\n meta.profile = config.profile_string;\n meta.level = config.level_string;\n meta.bitDepth = config.bit_depth;\n meta.chromaFormat = config.chroma_format;\n meta.sarRatio = config.sar_ratio;\n meta.frameRate = config.frame_rate;\n\n if (config.frame_rate.fixed === false || config.frame_rate.fps_num === 0 || config.frame_rate.fps_den === 0) {\n meta.frameRate = this._referenceFrameRate;\n }\n\n if (meta.frameRate !== undefined) {\n var fps_den = meta.frameRate.fps_den;\n var fps_num = meta.frameRate.fps_num;\n meta.refSampleDuration = meta.timescale * (fps_den / fps_num);\n }\n /*\n let codecArray = sps.subarray(1, 4);\n let codecString = 'avc1.';\n for (let j = 0; j < 3; j++) {\n let h = codecArray[j].toString(16);\n if (h.length < 2) {\n h = '0' + h;\n }\n codecString += h;\n }\n */\n\n\n meta.codec = codecString;\n var mi = this._mediaInfo;\n mi.width = meta.codecWidth;\n mi.height = meta.codecHeight;\n\n if (meta.frameRate !== undefined) {\n mi.fps = meta.frameRate.fps;\n }\n\n mi.profile = meta.profile;\n mi.level = meta.level;\n mi.refFrames = config.ref_frames;\n mi.chromaFormat = config.chroma_format_string;\n mi.sarNum = meta.sarRatio.width;\n mi.sarDen = meta.sarRatio.height;\n mi.videoCodec = codecString; //mi.duration = 40;\n //mi.metadata = meta;\n //mi.hasKeyframesIndex = true;\n\n if (mi.hasAudio) {\n if (mi.audioCodec != null) {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.videoCodec + ',' + mi.audioCodec + '\"';\n }\n } else {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.videoCodec + '\"';\n }\n\n if (mi.isComplete()) {\n console.log('this._onMediaInfo video:', mi);\n\n this._onMediaInfo(mi);\n }\n }\n } else if (naltype == 8) {\n if (this._AVC_PPS == null) {\n this._AVC_PPS = new Uint8Array(payload.length + 4);\n\n this._AVC_PPS.set(StartCode, 0);\n\n this._AVC_PPS.set(payload, 4);\n }\n\n if (!this._initVideoMetadata) {\n var _meta = this._videoMetadata;\n\n if (_meta.avcc == null) {\n /*\n var version = v.getUint8(0); // configurationVersion\n var avcProfile = v.getUint8(1); // avcProfileIndication\n var profileCompatibility = v.getUint8(2); // profile_compatibility\n var avcLevel = v.getUint8(3); // AVCLevelIndication\n */\n var datOffset = 0;\n var dataSize = 5 + 1 + 2 + (this._AVC_SPS.length - 4) + 1 + 2 + (this._AVC_PPS.length - 4);\n _meta.avcc = new Uint8Array(dataSize + 1);\n _meta.avcc[0] = 1;\n _meta.avcc[1] = this._AVC_SPS[4 + 1];\n _meta.avcc[2] = this._AVC_SPS[4 + 2];\n _meta.avcc[3] = this._AVC_SPS[4 + 3];\n _meta.avcc[4] = 255; //this._AVC_SPS[4 + 4];\n\n _meta.avcc[5] = 225;\n datOffset = 6; //let sps = new Uint8Array();\n\n _meta.avcc[datOffset++] = this._AVC_SPS.length - 4 >> 8;\n _meta.avcc[datOffset++] = this._AVC_SPS.length - 4 & 0xFF;\n\n var datSps = this._AVC_SPS.subarray(4, this._AVC_SPS.length);\n\n _meta.avcc.set(datSps, datOffset);\n\n datOffset += datSps.length;\n _meta.avcc[datOffset++] = 1; //pps����\n\n _meta.avcc[datOffset++] = this._AVC_PPS.length - 4 >> 8;\n _meta.avcc[datOffset++] = this._AVC_PPS.length - 4 & 0xFF;\n\n var datPps = this._AVC_PPS.subarray(4, this._AVC_PPS.length);\n\n _meta.avcc.set(datPps, datOffset);\n\n datOffset += datPps.length;\n _meta.avcc[dataSize] = 1;\n } //console.log(\"meta.avcc: \" + meta.avcc);\n\n\n this._onTrackMetadata('video', _meta);\n\n this._initVideoMetadata = true;\n }\n }\n } else {//this.currentIsKeyFrame = false;\n }\n };\n\n _proto.procH265Packet = function procH265Packet(srcBuf, srcLen, rtpMarkerBit) {\n //unsigned char *dstbuf, unsigned int *bKeyFrame, unsigned int *bNaluEnd\n var StartCode = [0, 0, 0, 1]; //console.log(\"rtp data: \" + srcBuf);\n\n var offset = 0;\n var isKeyFrame = false;\n var fu_header0 = srcBuf[0];\n var nalu_type = fu_header0 >> 1 & 0x3F;\n var result = {\n length: 0,\n keyframe: isKeyFrame,\n endBit: 0\n };\n\n if (nalu_type == 49) {\n var fu_header2 = srcBuf[2];\n var start_flag = fu_header2 & 0x80;\n var end_flag = fu_header2 & 0x40;\n nalu_type = fu_header2 & 0x3F;\n var nalu_header0 = nalu_type << 1;\n var nalu_header1 = 0x01; //console.log(\"nalu_header0:\" + nalu_header0 + \" nalu_header1:\" + nalu_header1);\n //�ж�֡����\n\n if (nalu_type == 16 || nalu_type == 17 || nalu_type == 18 || nalu_type == 19 || nalu_type == 20 || nalu_type == 21 || nalu_type == 39) {\n //2022.01.10 ����39, ¼��طŲ�����, ǰ���16-21ΪʵʱԤ������\n result.keyframe = true;\n }\n\n var _offset = 3;\n\n if (start_flag != 0) {\n this.framePos = 0;\n this.frameData.set(StartCode, this.framePos);\n this.framePos += 4; //console.log(\"reset framePos:\", this.framePos);\n //this.frameData.set(nalu_header0, this.framePos);\n //this.framePos += 1;\n //this.frameData.set(nalu_header1, this.framePos);\n //this.framePos += 1;\n\n srcBuf[1] = nalu_header0;\n srcBuf[2] = nalu_header1;\n _offset = 1;\n }\n\n if (end_flag != 0) {\n result.endBit = 1;\n }\n\n if (start_flag != 0 && end_flag != 0) {\n console.log('Small frame.');\n } //console.log(\"framePos+:\", this.framePos);\n\n\n var p = srcBuf.subarray(_offset);\n this.frameData.set(p, this.framePos);\n this.framePos += p.length;\n result.length = this.framePos; //console.log(\"framePos++: \", this.framePos);\n\n if (this.frameData[4] == 0x26) {\n result.keyframe = true; //console.log(\"keyframe.\");\n }\n } else if (nalu_type == 48) {\n console.log('nal_type==48....');\n } else if (nalu_type == 1 || nalu_type == 19 || nalu_type == 32 || nalu_type == 33 || nalu_type == 34 || nalu_type == 39) {\n /*\n value type\n 32 VPS\n 33 SPS\n 34 PPS\n 39 SEI\n 19 IDR ֡\n 1 ��IDR֡\n */\n var proc = false;\n\n if (nalu_type == 32) {\n if (this._AVC_VPS == null) this._AVC_VPS = new Uint8Array(srcBuf.length + 4);\n\n this._AVC_VPS.set(StartCode, 0);\n\n this._AVC_VPS.set(srcBuf, 4);\n\n proc = true; //console.log(\"VPS: \", srcBuf);\n } else if (nalu_type == 33) {\n if (this._AVC_SPS == null) this._AVC_SPS = new Uint8Array(srcBuf.length + 4);\n\n this._AVC_SPS.set(StartCode, 0);\n\n this._AVC_SPS.set(srcBuf, 4);\n\n proc = true; //console.log(\"SPS: \", srcBuf);\n } else if (nalu_type == 34) {\n if (this._AVC_PPS == null) this._AVC_PPS = new Uint8Array(srcBuf.length + 4);\n\n this._AVC_PPS.set(StartCode, 0);\n\n this._AVC_PPS.set(srcBuf, 4);\n\n proc = true; //console.log(\"PPS: \", srcBuf);\n } else if (nalu_type == 39) {//SEI\n } else if (nalu_type == 1) {\n //===================\n //(1)һ��NALU�����һ��RTP����ֻ��Ҫ��һ��12�ֽڵ�RTP��ͷ�����ȥ����ʼ���NALU����\n //������ģʽ��һ��NALU�Ĵ�СС��MTUʱʹ�ã������NALU������1��32��33��34��39��RTP����ֻ��Ҫ�ڲ����ʱ��ȥ��RTPͷ��Ȼ����������ʼ�뼴��\n var _offset2 = 0;\n this.framePos = 0;\n this.frameData.set(StartCode, this.framePos);\n this.framePos += 4;\n\n var _p3 = srcBuf.subarray(_offset2);\n\n this.frameData.set(_p3, this.framePos);\n this.framePos += _p3.length;\n result.length = this.framePos; //if (rtpMarkerBit == 1)\n\n result.endBit = 1; //===================\n } else {//console.log(\"Unknown nal_type:\" + nalu_type + \" length:\" + srcBuf.length);\n }\n\n if (proc) {\n result.length = 4 + srcBuf.length;\n result.keyframe = true;\n }\n }\n\n return result;\n };\n\n _proto.uint8arrayToBase64 = function uint8arrayToBase64(u8Arr) {\n var CHUNK_SIZE = 0x8000; //arbitrary number\n\n var index = 0;\n var length = u8Arr.length;\n var result = '';\n var slice;\n\n while (index < length) {\n slice = u8Arr.subarray(index, Math.min(index + CHUNK_SIZE, length));\n result += String.fromCharCode.apply(null, slice);\n index += CHUNK_SIZE;\n } // web image base64ͼƬ��ʽ: \"data:image/png;base64,\" + b64encoded;\n // return \"data:image/png;base64,\" + btoa(result);\n\n\n return btoa(result);\n } //����Video RTP��\n ;\n\n _proto.parseVideoRTPPacket = function parseVideoRTPPacket(rtpData) {\n var rtpPacketSize = rtpData.length;\n var offset = 0;\n var rtpHdr = ReadBig32(rtpData, offset) >>> 0;\n var rtpMarkerBit = (rtpHdr & 0x00800000) >> 23;\n offset += 4;\n var rtpTimestamp = ReadBig32(rtpData, offset) >>> 0;\n offset += 4;\n var rtpSSRC = ReadBig32(rtpData, offset) >>> 0;\n offset += 4; //if ((rtpHdr & 0xC0000000) != 0x80000000) return;\n\n var cc = rtpHdr >> 24 & 0xF;\n if (rtpData.length < cc) return;\n\n if (rtpHdr & 0x10000000) {\n if (rtpData.length < 4) return;\n var extHdr = ReadBig32(rtpData, offset) >>> 0;\n offset += 4;\n var extSize = 4 * (extHdr & 0xFFFF);\n if (rtpData.length < extSize) return;\n offset += extSize;\n }\n\n if (rtpHdr & 0x20000000) {\n if (rtpData.length < 1) return;\n var numPaddingBytes = rtpData[rtpData.length - 1];\n if (rtpData.length < numPaddingBytes) return;\n rtpPacketSize -= numPaddingBytes;\n }\n\n var payloadType = (rtpHdr & 0x007F0000) >> 16;\n var rtpSeqNo = rtpHdr & 0xFFFF;\n var t1 = rtpTimestamp >> 24 & 0xFF;\n var t2 = rtpTimestamp >> 16 & 0xFF;\n var t3 = rtpTimestamp >> 8 & 0xFF;\n var t4 = rtpTimestamp & 0xFF; //rtpTimestamp = ((t4 << 24) | (t3 << 16) | (t2 << 8) | t1) >>> 0;\n //console.log(t1 + \" \" + t2 + \" \" + t3 + \" \" + t4);\n //if (rtpMarkerBit) {\n //console.log(\"rtp size: \" + rtpData.length + \" rtpSeqNo:\" + rtpSeqNo + \" markerBit[\" + rtpMarkerBit + \"] timestamp[\" + rtpTimestamp + \"] SSRC[\" + rtpSSRC + \"]\");\n //}\n //return;\n //if (this.lastTimestamp != rtpTimestamp) {\n //}\n //this.lastTimestamp = rtpTimestamp;\n //let rtpHdr = Swap32();\n\n var payload = rtpData.subarray(offset, rtpPacketSize);\n var p = null; //H264\n\n if (this.videoCodecId == 7) {\n this.procH264NALHeader(payload);\n p = this.procH264Packet(payload, payload.length);\n } //H265\n else if (this.videoCodecId == 12) {\n //console.log(\"H265... procH265NALHeader...\");\n p = this.procH265Packet(payload, payload.length, rtpMarkerBit);\n } else {\n console.log('Unknown codecId: ' + this.videoCodecId);\n }\n\n if (p == null) return;\n\n if (p) {//console.log(\"payload.length:\" + payload.length + \" --> p.length:\" + p.length);\n //this.frameData.set(payload, this.framePos);\n //this.framePos += (payload.length);\n } //if (rtpData.length < 128) {\n //console.log(\"rtp data: \" + payload);\n //}\n //if (this._videoTrack.samples.length > 0) {\n // console.log(\"frame 1:\" + this._videoTrack.samples[0].units[2].data);\n //}\n //������֡\n\n\n if (rtpMarkerBit == 1 || p.endBit == 1) {\n //console.log(\"frame data: \" + this.frameData);\n var tmpUnits = [];\n var tmpLength = 0;\n var frameLength = 0; //����֡�� Ӳ��ʱΪ264Ϊ3��unit, �ֱ���sps, pps, idr, ǰ4�ֽھ�Ϊ����, �ִ���Ϊ��Ӳ��֮ǰȥ��sei\n\n var unitType = 1;\n var keyFrame = false; //this.currentIsKeyFrame;\n\n keyFrame = p.keyframe;\n var bAddStart = true;\n\n if (this.videoCodecId == 7) {\n //H264\n if (this._config.decodeType === 'auto' || this._config.decodeType === 'hard') {\n bAddStart = false;\n }\n } else if (this.videoCodecId == 12) {\n keyFrame = p.keyframe;\n }\n\n if (keyFrame) {\n //if (this.waitKeyFrame) {\n this.findKeyframe = false;\n this.fullFramePos = 0; //H265\n\n if (this.videoCodecId == 12) {\n if (this._AVC_VPS) {\n var tmpVpsDat = new Uint8Array(this._AVC_VPS.length);\n\n if (bAddStart) {\n //���\n tmpVpsDat.set(this._AVC_VPS, 0);\n }\n /*\n else { //Ӳ��\n let tmpSpsLen = this._AVC_SPS.length - 4;\n tmpSpsDat.set(this._AVC_SPS, 0);\n tmpSpsDat[0] = (tmpSpsLen >> 24) & 0xFF;\n tmpSpsDat[1] = (tmpSpsLen >> 16) & 0xFF;\n tmpSpsDat[2] = (tmpSpsLen >> 8) & 0xFF;\n tmpSpsDat[3] = tmpSpsLen & 0xFF;\n }\n */\n\n\n var tmpVpsUnit = {\n type: 7,\n data: tmpVpsDat\n };\n tmpUnits.push(tmpVpsUnit);\n tmpLength += tmpVpsDat.length;\n frameLength = tmpLength; //���ڿ���\n\n if (this.snapshotCount > 0 && this.fullFrameData && this.fullFrameData != undefined) {\n this.fullFrameData.set(this._AVC_VPS, 0);\n this.fullFramePos = this._AVC_VPS.length;\n }\n\n if (this._DebugBuf) {\n this._DebugBuf.set(tmpVpsDat, this._DebugBufPos);\n\n this._DebugBufPos += tmpVpsDat.length;\n }\n } else {\n console.log('Not found VPS.');\n }\n }\n\n if (this._AVC_SPS) {\n var tmpSpsDat = new Uint8Array(this._AVC_SPS.length);\n\n if (bAddStart) {\n //���\n tmpSpsDat.set(this._AVC_SPS, 0);\n } else {\n //Ӳ��\n var tmpSpsLen = this._AVC_SPS.length - 4;\n tmpSpsDat.set(this._AVC_SPS, 0);\n tmpSpsDat[0] = tmpSpsLen >> 24 & 0xFF;\n tmpSpsDat[1] = tmpSpsLen >> 16 & 0xFF;\n tmpSpsDat[2] = tmpSpsLen >> 8 & 0xFF;\n tmpSpsDat[3] = tmpSpsLen & 0xFF;\n } //���ڿ���\n\n\n if (this.snapshotCount > 0 && this.fullFrameData && this.fullFrameData != undefined) {\n this.fullFrameData.set(this._AVC_SPS, this.fullFramePos);\n this.fullFramePos += this._AVC_SPS.length;\n }\n\n var tmpSpsUnit = {\n type: 7,\n data: tmpSpsDat\n };\n tmpUnits.push(tmpSpsUnit);\n tmpLength += tmpSpsDat.length;\n frameLength += tmpSpsDat.length; //console.log(\"SPS:\" + tmpSpsDat);\n\n if (this._DebugBuf) {\n this._DebugBuf.set(tmpSpsDat, this._DebugBufPos);\n\n this._DebugBufPos += tmpSpsDat.length;\n }\n\n if (this._AVC_PPS) {\n var tmpPpsDat = new Uint8Array(this._AVC_PPS.length);\n\n if (bAddStart) {\n //���\n tmpPpsDat.set(this._AVC_PPS, 0);\n } else {\n //Ӳ��\n var tmpPpsLen = this._AVC_PPS.length - 4;\n tmpPpsDat.set(this._AVC_PPS, 0);\n tmpPpsDat[0] = tmpPpsLen >> 24 & 0xFF;\n tmpPpsDat[1] = tmpPpsLen >> 16 & 0xFF;\n tmpPpsDat[2] = tmpPpsLen >> 8 & 0xFF;\n tmpPpsDat[3] = tmpPpsLen & 0xFF;\n } //���ڿ���\n\n\n if (this.snapshotCount > 0 && this.fullFrameData && this.fullFrameData != undefined) {\n this.fullFrameData.set(this._AVC_PPS, this.fullFramePos);\n this.fullFramePos += this._AVC_PPS.length;\n }\n\n var tmpPpsUnit = {\n type: 8,\n data: tmpPpsDat\n };\n tmpUnits.push(tmpPpsUnit);\n tmpLength += tmpPpsDat.length;\n frameLength += tmpPpsDat.length; //console.log(\"PPS:\" + tmpPpsDat);\n\n if (this._DebugBuf) {\n this._DebugBuf.set(tmpPpsDat, this._DebugBufPos);\n\n this._DebugBufPos += tmpPpsDat.length;\n }\n } else {\n console.log('Not found PPS.');\n }\n } else {\n console.log('Not found SPS.');\n }\n\n if (this.frameData[tmpLength + 4] == 0x06) {\n for (var i = 0; i < tmpLength + 32; i++) {\n if (this.frameData[i + tmpLength + 4] == 0x00 && this.frameData[i + tmpLength + 4 + 1] == 0x00 && this.frameData[i + tmpLength + 4 + 2] == 0x00 && this.frameData[i + tmpLength + 4 + 3] == 0x01) {\n tmpLength = tmpLength + i + 4;\n break;\n }\n\n if (this.frameData[i + tmpLength + 4] == 0x00 && this.frameData[i + tmpLength + 4 + 1] == 0x00 && this.frameData[i + tmpLength + 4 + 2] == 0x01) {\n tmpLength = tmpLength + i + 3;\n break;\n }\n }\n }\n\n unitType = 5;\n this._videoInitialMetadataDispatched = true;\n }\n\n if (this.videoCodecId == 12) tmpLength = 0;\n\n if (p.endBit == 0) {\n return;\n } //let frame = this.frameData.subarray(tmpLength, this.framePos);\n\n\n var tmpF = this.frameData.subarray(tmpLength, this.framePos); //console.log(\"tmpF:\" + tmpF);\n //if (keyFrame) {\n // console.log(\"KeyFrame:\" + this.frameData);\n //}\n\n var frame = new Uint8Array(tmpF); //this.framePos-tmpLength+4);// this.frameData.subarray(tmpLength, this.framePos);\n //frame.set(this.frameData.subarray(tmpLength, this.framePos), 0);\n //this.frameData, tmpLength, this.framePos\n //==================================================\n //���ڿ���\n\n if (keyFrame && this.snapshotCount > 0 && this.fullFrameData && this.fullFrameData != undefined && this.fullFramePos > 0 && window.vssModuleInitialized) {\n this.snapshotCount--; //console.log(\"this.framePos:\", this.framePos);\n //console.log(\"tmpF.length:\", tmpF.length);\n\n this.fullFrameData.set(frame, this.fullFramePos);\n this.fullFramePos += frame.length; //console.log(\"fullFramePos:\" + this.fullFramePos+\" framedata:\", this.fullFrameData);\n\n var mModule = window.vssPlayerModule;\n var wasmKits = window.VssPlayerWasmKits;\n\n if (mModule && mModule != undefined && wasmKits && wasmKits != undefined) {\n var typedArray = new Uint8Array(this.fullFrameData);\n\n if (typedArray.length > 0) {\n var _offset3 = mModule._malloc(typedArray.length);\n\n mModule.HEAP8.set(typedArray, _offset3); //console.log(\"offset:\", offset);\n\n var n = wasmKits.convertFrame2Image(0, _offset3, this.fullFramePos, wasmKits.yuvData, 0);\n\n if (n < 1) {\n console.log('Convert fail.');\n } else {\n var outImageData = mModule.HEAPU8.subarray(wasmKits.yuvData, wasmKits.yuvData + n); //console.log(\"imagedata:\", outImageData);\n //const b64encoded = btoa(String.fromCharCode.apply(null, typedArray));\n\n var b64encoded = this.uint8arrayToBase64(outImageData);\n /*\n const image = document.createElement('img');\n image.src = 'data:image/jpeg;base64,' + b64encoded;\n image.style = \"width:500px;height: 250px\";\n document.querySelector(\"body\").append(image);\n */\n //��������\n\n var downloadFileA = document.createElement('a');\n document.body.append(downloadFileA);\n downloadFileA.href = 'data:image/jpeg;base64,' + b64encoded;\n downloadFileA.download = 'snapshot.jpg';\n downloadFileA.rel = 'noopener noreferrer';\n downloadFileA.click();\n document.body.removeChild(downloadFileA);\n }\n\n mModule._free(_offset3);\n }\n }\n\n this.fullFramePos = 0;\n } //==================================================\n\n\n frameLength += frame.length;\n\n if (unitType == 5) {//console.log(\"frame[\" + frame.length + \"] data:\" + frame);\n }\n\n if (bAddStart) {//���\n } else {\n //Ӳ��\n\n /*\n frame[0] = ((this.framePos - tmpLength - 4) >> 24) & 0xFF;\n frame[1] = ((this.framePos - tmpLength - 4) >> 16) & 0xFF;\n frame[2] = ((this.framePos - tmpLength - 4) >> 8) & 0xFF;\n frame[3] = ((this.framePos - tmpLength - 4)) & 0xFF;\n */\n var len = frame.length - 4;\n frame[0] = len >> 24 & 0xFF;\n frame[1] = len >> 16 & 0xFF;\n frame[2] = len >> 8 & 0xFF;\n frame[3] = len & 0xFF; //console.log(\"frame: \" + frame);\n //if (unitType == 5) {\n //console.log(frame[0] + \" \" + frame[1] + \" \" + frame[2] + \" \" + frame[3]);\n //console.log(\"frame[\" + frame.length + \"] data:\" + frame);\n //}\n }\n\n if (unitType == 1) {//console.log(\"P frame: \" + frame);\n } //����Ϊ���Դ���\n\n\n if (this._DebugBuf) {\n if (this._DebugBufPos + frame.length < 1024 * 1024 && (this._DebugBufPos > 0 || unitType == 5 || p.keyframe == true)) {\n this._DebugBuf.set(frame, this._DebugBufPos);\n\n this._DebugBufPos += frame.length;\n } //else\n\n\n {\n if (this._DebugBufPos > 0) {\n var _p4 = this._DebugBuf.subarray(0, this._DebugBufPos);\n\n console.log('DebugBuf: ' + _p4);\n }\n\n this._DebugBufPos = 0;\n }\n }\n\n var tmpFrame = {\n type: unitType,\n data: frame\n };\n tmpUnits.push(tmpFrame);\n tmpLength += frame.length;\n\n if (!this.findKeyframe) {//if (unitType == 5) {\n //console.log(frame[0] + \" \" + frame[1] + \" \" + frame[2] + \" \" + frame[3]);\n //console.log(\"frame[\" + frame.length + \"] data:\" + tmpFrame.data);\n } //if (this.syncVideoPts > 0) {\n //this.startVideoPts = rtpTimestamp - this.syncVideoPts;\n //this.startVideoPts += 40;\n //console.log(\"video pts: \" + this.startVideoPts);\n //}\n //let pts = 0;//this.startVideoPts;\n //if (this.syncVideoPts == 0) {\n // this.syncVideoPts = rtpTimestamp;\n //}\n //else {\n // //pts = (rtpTimestamp - this.syncVideoPts) / 90;\n // pts = (rtpTimestamp - this.syncVideoPts) / 90;\n // //this.syncVideoPts = rtpTimestamp;\n // //console.log(\"PTS: \" + pts);\n //}\n\n\n var pts = this.startVideoPts;\n this.startVideoPts += this.ptsInterval;\n if (this.startVideoPts >= 0x7FFFFFFF) this.startVideoPts = 0; //console.log(\"startVideoPts:\" + this.startVideoPts);\n //console.log(\"VIdeo PTS:\", pts);\n\n var track = this._videoTrack;\n var avcSample = {\n units: tmpUnits,\n length: frameLength,\n //tmpLength,//pes.len,//length,\n isKeyframe: keyFrame,\n //this.waitKeyFrame,\n dts: pts,\n //-40,// / 90,// - this.lastVideoPts + this.accurateTimeOffset,\n cts: 0,\n //40,//pes.pts,\n pts: pts,\n // / 90)// - this.lastVideoPts + this.accurateTimeOffset)\n fileposition: this._fileposition\n };\n\n if (keyFrame) {\n this._fileposition = 0;\n avcSample.fileposition = 0; //this.tagPosition;\n }\n\n this._fileposition += frameLength; //if (keyFrame) {\n // var v = 0;\n // for (var k = 0; k < 32; k++) {\n // var n = frame[k];\n // v += \" \" + n.toString(16);\n // }\n // console.log(\"frameLength: \" + tmpLength + \" dts:\" + avcSample.dts + \" data:\" + v);\n // //console.log(frame[0] + \" \" + frame[1] + \" \" + frame[2] + \" \" + frame[3] + \" \" + frame[4] + \" \" + frame[5] + \" \" + frame[6] + \" \" + frame[7] +\n // // \" \" + frame[8] + \" \" + frame[9] + \" \" + frame[10] + \" \" + frame[11] + \" \" + frame[12] + \" \" + frame[13] + \" \" + frame[14] + \" \" + frame[15]);\n // //console.log(\"tmpLength: \" + tmpLength + \" tagPosition: \" + this.tagPosition + \" pts[\" + avcSample.pts + \"] dts[\" + avcSample.dts + \"]\");\n //}\n //console.log(\"video pts: \" + pts);\n //let idx = 0;\n //for (idx = 0; idx < this._videoTrack.samples.length; idx++) {\n // let p = this._videoTrack.samples[idx];\n // for (let k = 0; k < p.units.length; k++) {\n // //console.log(\"rtsp-demuxer.js:: \" + (idx + 1) + \"/\" + this._videoTrack.samples.length + \" sample.length[\" + this._videoTrack.samples[idx].length + \"]: \" + this._videoTrack.samples[idx].data);\n // //console.log(\"rtsp-demuxer.js:: \" + (k + 1) + \"/\" + p.units.length + \" sample.length[\" + p.units[k].data.length + \"]: \");// + p.units[k].data);\n // }\n //}\n //�ص����ϲ�, �л�����\n\n if (!this._callbackInitFlag && this._callbackMediaDataFunc) {\n this._callbackInitFlag = true;\n\n if (this.videoCodecId == 12) {\n //HEVC\n this._callbackMediaDataFunc(this._callbackMediaDataUserPtr, true, 1, 0, 0, null, 0, 0, 0, 0);\n } else {\n if (this._config.decodeType === 'auto' || this._config.decodeType === 'hard') {\n this._callbackMediaDataFunc(this._callbackMediaDataUserPtr, false, 1, 0, 0, null, 0, 0, 0, 0);\n } else {\n this._callbackMediaDataFunc(this._callbackMediaDataUserPtr, true, 1, 0, 0, null, 0, 0, 0, 0);\n }\n }\n }\n\n if (this.videoCodecId == 7 || this.videoCodecId == 0) {\n //H264\n //if (keyFrame && this.reset === 0) {\n //if (this.waitKeyFrame && this.reset === 0) {\n if (this._config.decodeType === 'auto' || this._config.decodeType === 'hard') {\n //����codecIdΪ0, ��ʾ��ʱ������, ���ص����ϲ���������ʾ\n //this._onDataAvailableToSoftwareDecodeVideo(0, this._videoTrack);\n //��mp4-remuxer.js����\n //if (this._videoTrack.length > 0 && this._videoTrack.samples.length > 3 && keyFrame) {\n if (this._videoTrack.length > 0 && (this._videoTrack.samples.length >= 1 && !this.findKeyframe || keyFrame)) {\n //console.log(\"proc video frame num: \" + this._videoTrack.samples.length);\n this._onDataAvailable(this._audioTrack, this._videoTrack);\n }\n } else {\n //console.log(\"H264: Software Decode...\");\n if (this._videoTrack.samples.length > 0) {\n this._onDataAvailableToSoftwareDecodeVideo(27, this._videoTrack);\n }\n\n if (this._audioTrack.samples.length > 0) {\n this._onDataAvailableToSoftwareDecodeAudio(86018, this._audioTrack);\n }\n }\n } else if (this.videoCodecId == 12) {\n //H265\n //console.log(\"H265: Software Decode...\");\n if (this._videoTrack.samples.length > 0) {\n this._onDataAvailableToSoftwareDecodeVideo(173, this._videoTrack);\n }\n\n if (this._audioTrack.samples.length > 0) {\n this._onDataAvailableToSoftwareDecodeAudio(this.audioCodecId == 10 ? 86018 : 0, this._audioTrack);\n }\n } //console.log(\"pushAccessUnit....\");\n //}\n\n\n if (this.reset === 0 && !this.findKeyframe) {\n track.samples.push(avcSample);\n track.length += tmpLength; //pes.len;//length;\n //console.log(\"length:\" + track.samples.length);\n }\n\n {//let frame = this.frameData.subarray(0, this.framePos);\n //console.log(\"Frame data size:\" + frame.length + \" data:\" + frame);\n } //if (this.framePos > 1024 * 5) {\n //let frame = this.frameData.subarray(0, this.framePos);\n //console.log(\"Frame data:\" + frame);\n //}\n //else {\n //console.log(\"-------------------------------------------\");\n //}\n //console.log(\"reset framepos=0\");\n\n this.framePos = 0;\n\n if (tmpUnits.length > 1) {\n this.currentIsKeyFrame = false;\n } //this.waitKeyFrame = false;\n //if (this._videoTrack.samples.length > 0) {\n // console.log(\"frame 2:\" + this._videoTrack.samples[0].units[2].data);\n //}\n\n }\n };\n\n _proto._parseAACAudioSpecificConfig = function _parseAACAudioSpecificConfig(payload) {\n var array = payload; //new Uint8Array(payload, dataOffset, dataSize);\n\n var config = null;\n /* Audio Object Type:\n 0: Null\n 1: AAC Main\n 2: AAC LC\n 3: AAC SSR (Scalable Sample Rate)\n 4: AAC LTP (Long Term Prediction)\n 5: HE-AAC / SBR (Spectral Band Replication)\n 6: AAC Scalable\n */\n\n var audioObjectType = 0;\n var originalAudioObjectType = 0;\n var audioExtensionObjectType = null;\n var samplingIndex = 0;\n var extensionSamplingIndex = null; // 5 bits\n\n audioObjectType = originalAudioObjectType = 2; //array[0] >>> 3;\n // 4 bits\n\n samplingIndex = 5; //((array[0] & 0x07) << 1) | (array[1] >>> 7);\n\n if (samplingIndex < 0 || samplingIndex >= this._mpegSamplingRates.length) {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].FORMAT_ERROR, 'Flv: AAC invalid sampling frequency index!');\n\n return;\n }\n\n var samplingFrequence = 32000; //this._mpegSamplingRates[samplingIndex];\n // 4 bits\n\n var channelConfig = 2; //(array[1] & 0x78) >>> 3;\n\n if (channelConfig < 0 || channelConfig >= 8) {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].FORMAT_ERROR, 'Flv: AAC invalid channel configuration');\n\n return;\n }\n\n if (audioObjectType === 5) {\n // HE-AAC?\n // 4 bits\n extensionSamplingIndex = (array[1] & 0x07) << 1 | array[2] >>> 7; // 5 bits\n\n audioExtensionObjectType = (array[2] & 0x7C) >>> 2;\n } // workarounds for various browsers\n\n\n var userAgent = self.navigator.userAgent.toLowerCase();\n\n if (userAgent.indexOf('firefox') !== -1) {\n // firefox: use SBR (HE-AAC) if freq less than 24kHz\n if (samplingIndex >= 6) {\n audioObjectType = 5;\n config = new Array(4);\n extensionSamplingIndex = samplingIndex - 3;\n } else {\n // use LC-AAC\n audioObjectType = 2;\n config = new Array(2);\n extensionSamplingIndex = samplingIndex;\n }\n } else if (userAgent.indexOf('android') !== -1) {\n // android: always use LC-AAC\n audioObjectType = 2;\n config = new Array(2);\n extensionSamplingIndex = samplingIndex;\n } else {\n // for other browsers, e.g. chrome...\n // Always use HE-AAC to make it easier to switch aac codec profile\n audioObjectType = 5;\n extensionSamplingIndex = samplingIndex;\n config = new Array(4);\n\n if (samplingIndex >= 6) {\n extensionSamplingIndex = samplingIndex - 3;\n } else if (channelConfig === 1) {\n // Mono channel\n audioObjectType = 2;\n config = new Array(2);\n extensionSamplingIndex = samplingIndex;\n }\n }\n\n config[0] = audioObjectType << 3;\n config[0] |= (samplingIndex & 0x0F) >>> 1;\n config[1] = (samplingIndex & 0x0F) << 7;\n config[1] |= (channelConfig & 0x0F) << 3;\n\n if (audioObjectType === 5) {\n config[1] |= (extensionSamplingIndex & 0x0F) >>> 1;\n config[2] = (extensionSamplingIndex & 0x01) << 7; // extended audio object type: force to 2 (LC-AAC)\n\n config[2] |= 2 << 2;\n config[3] = 0;\n }\n\n return {\n config: config,\n samplingRate: samplingFrequence,\n channelCount: channelConfig,\n codec: 'mp4a.40.' + audioObjectType,\n originalCodec: 'mp4a.40.' + originalAudioObjectType\n };\n };\n\n _proto.procAACHeader = function procAACHeader(payload, dataOffset, dataSize) {\n var result = {};\n if (this._initAudioMetadata) return;\n var meta = this._audioMetadata;\n var track = this._audioTrack;\n\n if (!meta) {\n if (this._hasAudio === false && this._hasAudioFlagOverrided === false) {\n this._hasAudio = true;\n this._mediaInfo.hasAudio = true;\n } // initial metadata\n\n\n meta = this._audioMetadata = {};\n meta.type = 'audio';\n meta.id = track.id;\n meta.timescale = this._timescale > 0 ? this._timescale : 1000;\n meta.duration = this._duration > 0 ? this._duration : 32; //128;\n\n meta.audioSampleRate = 32000; //8000;//soundRate;\n\n meta.channelCount = 2; //1;//(soundType === 0 ? 1 : 2);\n } //let aacData = this._parseAACAudioData(arrayBuffer, dataOffset + 1, dataSize - 1);\n\n\n result.data = this._parseAACAudioSpecificConfig(payload, dataOffset + 1, dataSize - 1);\n\n if (!this._initAudioMetadata && this._initVideoMetadata) {\n //let array = new Uint8Array(arrayBuffer, dataOffset, dataSize);\n if (result.data == undefined) {\n return 0;\n }\n\n var misc = result.data;\n meta.audioSampleRate = misc.samplingRate;\n meta.channelCount = misc.channelCount;\n meta.codec = misc.codec;\n meta.originalCodec = misc.originalCodec;\n meta.config = misc.config; // The decode result of an aac sample is 1024 PCM samples\n\n meta.refSampleDuration = 1024 / meta.audioSampleRate * meta.timescale;\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].v(this.TAG, 'Parsed AudioSpecificConfig'); //console.log(\"AAC: \" + misc.samplingRate + \" \" + misc.channelCount + \" \" + misc.codec + \" \" + misc.conf);\n\n this._SampleRate = misc.samplingRate;\n this._ChannelNum = misc.channelCount;\n this._duration = 0; //meta.refSampleDuration; //2021.12.14\n\n console.log('Audio samplerate:' + misc.samplingRate + ' channel:' + misc.channelCount);\n\n if (this._isInitialMetadataDispatched()) {\n // Non-initial metadata, force dispatch (or flush) parsed frames to remuxer\n if (this._dispatch && (this._audioTrack.length || this._videoTrack.length)) {\n this._onDataAvailable(this._audioTrack, this._videoTrack);\n }\n } else {\n this._audioInitialMetadataDispatched = true;\n } // then notify new metadata\n\n\n this._dispatch = false;\n\n this._onTrackMetadata('audio', meta);\n\n var mi = this._mediaInfo;\n mi.audioCodec = meta.originalCodec;\n mi.audioSampleRate = meta.audioSampleRate;\n mi.audioChannelCount = meta.channelCount;\n\n if (mi.hasVideo) {\n if (mi.videoCodec != null) {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.videoCodec + ',' + mi.audioCodec + '\"';\n }\n } else {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.audioCodec + '\"';\n }\n\n if (mi.isComplete()) {\n console.log('this._onMediaInfo audio:', mi);\n\n this._onMediaInfo(mi);\n\n this._initAudioMetadata = true;\n }\n\n this._initAudioMetadata = true;\n }\n } //����Audio RTP��\n ;\n\n _proto.parseAudioRTPPacket = function parseAudioRTPPacket(rtpData) {\n var rtpPacketSize = rtpData.length;\n var offset = 0;\n var rtpHdr = ReadBig32(rtpData, offset) >>> 0;\n var rtpMarkerBit = (rtpHdr & 0x00800000) >> 23;\n offset += 4;\n var rtpTimestamp = ReadBig32(rtpData, offset) >>> 0;\n offset += 4;\n var rtpSSRC = ReadBig32(rtpData, offset) >>> 0;\n offset += 4; //if ((rtpHdr & 0xC0000000) != 0x80000000) return;\n\n var cc = rtpHdr >> 24 & 0xF;\n if (rtpData.length < cc) return;\n\n if (rtpHdr & 0x10000000) {\n if (rtpData.length < 4) return;\n var extHdr = ReadBig32(rtpData, offset) >>> 0;\n offset += 4;\n var extSize = 4 * (extHdr & 0xFFFF);\n if (rtpData.length < extSize) return;\n offset += extSize;\n }\n\n if (rtpHdr & 0x20000000) {\n if (rtpData.length < 1) return;\n var numPaddingBytes = rtpData[rtpData.length - 1];\n if (rtpData.length < numPaddingBytes) return;\n rtpPacketSize -= numPaddingBytes;\n }\n\n var payloadType = (rtpHdr & 0x007F0000) >> 16;\n var rtpSeqNo = rtpHdr & 0xFFFF;\n var t1 = rtpTimestamp >> 24 & 0xFF;\n var t2 = rtpTimestamp >> 16 & 0xFF;\n var t3 = rtpTimestamp >> 8 & 0xFF;\n var t4 = rtpTimestamp & 0xFF; //rtpTimestamp = ((t4 << 24) | (t3 << 16) | (t2 << 8) | t1) >>> 0;\n //console.log(t1 + \" \" + t2 + \" \" + t3 + \" \" + t4);\n //if (rtpMarkerBit) {\n //console.log(\"rtp size: \" + rtpData.length + \" rtpSeqNo:\" + rtpSeqNo + \" markerBit[\" + rtpMarkerBit + \"] timestamp[\" + rtpTimestamp + \"] SSRC[\" + rtpSSRC + \"]\");\n //}\n\n return; //if (this.lastTimestamp != rtpTimestamp) {\n //}\n //this.lastTimestamp = rtpTimestamp;\n //let rtpHdr = Swap32();\n //return;\n\n var payload = rtpData.subarray(offset, rtpPacketSize); //console.log(\"this.audioCodecId: \" + this.audioCodecId);\n //return;\n\n var p = null; //AAC\n\n if (this.audioCodecId == 10) {\n this.procAACHeader(payload + 4, 1, rtpPacketSize - 1); //p = this.procH264Packet(payload, payload.length);\n } else {\n console.log('Unknown audio codecId: ' + this.audioCodecId);\n } //if (p == null) return;\n //if (p) {\n //console.log(\"payload.length:\" + payload.length + \" --> p.length:\" + p.length);\n //this.frameData.set(payload, this.framePos);\n //this.framePos += (payload.length);\n //}\n //if (rtpData.length < 128) {\n //console.log(\"rtp data: \" + payload);\n //}\n //if (this._videoTrack.samples.length > 0) {\n // console.log(\"frame 1:\" + this._videoTrack.samples[0].units[2].data);\n //}\n\n\n if (!this._initVideoMetadata) return; //if (!this._initAudioMetadata) return;\n //������֡\n\n if (rtpMarkerBit == 1) {\n var pts = 0; //this.startAudioPts;\n //if (this.syncAudioPts == 0) {\n // this.syncAudioPts = rtpTimestamp;\n //}\n //else {\n // pts = (rtpTimestamp - this.syncAudioPts) / 8;\n // //this.syncVideoPts = rtpTimestamp;\n // console.log(\"Audio PTS: \" + pts);\n //}\n //if (this.startVideoPts - this.startAudioPts > 1024) {\n // this.startAudioPts += 1024;\n //}\n\n if (this.startAudioPts < 1) {\n this.startAudioPts = this.startVideoPts;\n }\n\n this.startAudioPts += 32;\n pts = this.startAudioPts; //console.log(\"Audio PTS: \" + pts);\n\n var track = this._audioTrack;\n var dts = pts; //let framedata = payload.subarray(4, rtpPacketSize-4);\n\n var framedata = payload.subarray(4 + 7, rtpPacketSize - 4 - 7);\n console.log('aac frame:', framedata);\n return;\n var aacSample = {\n unit: framedata,\n length: framedata.length,\n dts: dts,\n pts: dts\n };\n track.samples.push(aacSample);\n track.length += aacSample.length;\n\n if (this._config.decodeType === 'auto' || this._config.decodeType === 'hard') {\n //����codecIdΪ0, ��ʾ��ʱ������, ���ص����ϲ���������ʾ\n //this._onDataAvailableToSoftwareDecodeVideo(0, this._videoTrack);\n //��mp4-remuxer.js����\n if (this._audioTrack.length > 0 && this._audioTrack.samples.length > 0) {\n console.log('proc audio frame num: ' + this._audioTrack.samples.length); //this._onDataAvailable(this._audioTrack, this._videoTrack);\n }\n } else {//console.log(\"H264: Software Decode...\");\n //if (this._videoTrack.samples.length > 0) {\n // this._onDataAvailableToSoftwareDecodeVideo(27, this._videoTrack);\n //}\n //if (this._audioTrack.samples.length > 0) {\n // this._onDataAvailableToSoftwareDecodeAudio(86018, this._audioTrack);\n //}\n }\n }\n };\n\n _proto.parseChunks = function parseChunks(chunk, byteStart) {\n if (chunk === null) return 0;\n if (chunk.byteLength < 1) return 0;\n var data = new Uint8Array(chunk); //console.log(\"rtsp-demuxer.js::parseChunks...\" + byteStart + \" len:\" + chunk.byteLength + \" data:\" + data);\n\n /*\n let packetOffset = this.packetPos;\n this.packetData.set(data, packetOffset);\n packetOffset += data.length;\n */\n\n var offset = 0;\n\n if (data[offset] != 0x24) {\n console.log('data error...');\n\n for (var i = 0; i < data.length; i++) {\n var len = data[i + 2] << 8 | data[i + 3];\n\n if (data[i] == 0x24 && data[i + 1] == 0x00 && len <= 1460) {\n offset = i;\n console.log('Found 0x24... start proc data');\n break;\n }\n }\n\n if (offset < 1) {\n console.log('not found 0x24 $ ... continue');\n return 0;\n }\n } //��һ���ֽ�Ϊ$\n\n\n var channelId = data[offset + 1];\n var rtspLen = data[offset + 2] << 8 | data[offset + 3]; //if (this.packetPos < rtspLen + 4) break;\n\n if (data.length - offset < rtspLen + 4) {\n //if (rtspLen + 4 < 1460) {\n //console.log(\"data size error... waiting for more data... dataLength[\" + data.length + \"] offset[\" + offset + \"] rtspLen[\" + (rtspLen + 4) + \"]\");\n //}\n return 0; //����������\n }\n\n if (channelId == 0) {\n //��Ƶ rtp\n //����rtp\n //console.log(\"channelId:\" + channelId + \" rtspLen: \" + rtspLen + \" payloadSize:\" + (rtspLen - 12));\n var rtpPacket = data.subarray(4, rtspLen + 4);\n this.parseVideoRTPPacket(rtpPacket);\n } else if (channelId == 1) {//��Ƶ rtcp\n //console.log(\"video rtcp...\");\n } else if (channelId == 2) {\n //��Ƶ rtp\n //console.log(\"audio rtp...\");\n var _rtpPacket = data.subarray(4, rtspLen + 4);\n\n this.parseAudioRTPPacket(_rtpPacket);\n } else if (channelId == 3) {//��Ƶ rtcp\n //console.log(\"audio rtcp...\");\n } else if (channelId == 4) {\n var _rtpPacket2 = data.subarray(4 + 12 + 32, rtspLen + 4 + 12 + 32); //4�ֽ�rtspheader+12�ֽ�rtpheader+32�ֽ�payloadHeader\n //console.log(\"Metadata rtp...\" + rtpPacket);\n //this.parseVideoRTPPacket(rtpPacket);\n\n\n if (this._callbackPlaybackTimePtr) this._callbackPlaybackTimePtr(this._callbackPlaybackTimeUserPtr, 'rtspPlaybackTime', _rtpPacket2);\n } else if (channelId == 5) {//console.log(\"Metadata rtcp...\");\n }\n\n if (data.length > rtspLen + 4) {//console.log(\"dataLength[\" + data.length + \"] > rtspLen[\" + (rtspLen + 4) + \"] remain[\" + (data.length - rtspLen - 4) + \"]\");\n }\n\n return rtspLen + 4;\n /*\n if (rtspLen + 4 == data.length) {\n //console.log(\"PacketSize:\" + this.packetPos);\n this.packetPos = 0;\n //break;\n return data.length;\n }\n else {\n console.log(\"continues......\" + (rtspLen + 4) + \" --> \" + packetOffset);\n //�˴�ֻ�п������ж��������(��һ����������)\n let p = this.packetData.subarray(rtspLen + 4, packetOffset);\n this.packetData.set(p, 0);\n this.packetPos = packetOffset - rtspLen - 4;\n break;\n }\n */\n\n return;\n } //#define H265_Get_NalType(c)\t (((c) & 0x7E) >> 1);\n ;\n\n _proto._makeH265Header = function _makeH265Header(buf) {\n var frameType = 0x02;\n\n switch (buf) {\n case 0x4E:\n //Prefix SEI\n {\n frameType = 0x01;\n }\n break;\n\n case 0x50:\n //Suffix SEI\n {\n frameType = 0x01;\n }\n break;\n\n case 0x40: //VPS\n\n case 0x42: //SPS\n\n case 0x20: //I frame 16\n\n case 0x22: //I frame 17\n\n case 0x24: //I frame 18\n\n case 0x26: //I frame 19\n\n case 0x28: //I frame 20\n\n case 0x2A:\n //I frame 21(acturally we should find naltype 16-21)\n {\n frameType = 0x01;\n }\n break;\n\n case 0x44:\n //PPS\n break;\n\n default:\n break;\n }\n\n return frameType;\n };\n\n _proto.snapshot = function snapshot() {\n if (this.fullFrameData == null) {\n this.fullFrameData = new Uint8Array(1024 * 1024 * 2);\n }\n\n this.snapshotCount++;\n };\n\n _proto.changeSpeed = function changeSpeed(val) {\n this.ptsInterval = val;\n };\n\n _createClass(RTSPDemuxer, [{\n key: \"onTrackMetadata\",\n get: function get() {\n return this._onTrackMetadata;\n },\n set: function set(callback) {\n this._onTrackMetadata = callback;\n } // prototype: function(mediaInfo: MediaInfo): void\n\n }, {\n key: \"onMediaInfo\",\n get: function get() {\n return this._onMediaInfo;\n },\n set: function set(callback) {\n this._onMediaInfo = callback;\n }\n }, {\n key: \"onMetaDataArrived\",\n get: function get() {\n return this._onMetaDataArrived;\n },\n set: function set(callback) {\n this._onMetaDataArrived = callback;\n }\n }, {\n key: \"onScriptDataArrived\",\n get: function get() {\n return this._onScriptDataArrived;\n },\n set: function set(callback) {\n this._onScriptDataArrived = callback;\n } // prototype: function(type: number, info: string): void\n\n }, {\n key: \"onError\",\n get: function get() {\n return this._onError;\n },\n set: function set(callback) {\n this._onError = callback;\n } // prototype: function(videoTrack: any, audioTrack: any): void\n\n }, {\n key: \"onDataAvailable\",\n get: function get() {\n return this._onDataAvailable;\n },\n set: function set(callback) {\n this._onDataAvailable = callback;\n } // timestamp base for output samples, must be in milliseconds\n\n }, {\n key: \"timestampBase\",\n get: function get() {\n return this._timestampBase;\n },\n set: function set(base) {\n this._timestampBase = base;\n }\n }, {\n key: \"overridedDuration\",\n get: function get() {\n return this._duration;\n } // Force-override media duration. Must be in milliseconds, int32\n ,\n set: function set(duration) {\n this._durationOverrided = true;\n this._duration = duration;\n this._mediaInfo.duration = duration;\n } // Force-override audio track present flag, boolean\n\n }, {\n key: \"overridedHasAudio\",\n set: function set(hasAudio) {\n this._hasAudioFlagOverrided = true;\n this._hasAudio = hasAudio;\n this._mediaInfo.hasAudio = hasAudio;\n } // Force-override video track present flag, boolean\n\n }, {\n key: \"overridedHasVideo\",\n set: function set(hasVideo) {\n this._hasVideoFlagOverrided = true;\n this._hasVideo = hasVideo;\n this._mediaInfo.hasVideo = hasVideo;\n }\n }]);\n\n return RTSPDemuxer;\n}(); //==================================================================\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (RTSPDemuxer);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/demux/rtsp-demuxer.js?"); | ||
| 3233 | + | ||
| 3234 | +/***/ }), | ||
| 3235 | + | ||
| 3236 | +/***/ "./src/FlvPlayer/flv.js/demux/sps-parser.js": | ||
| 3237 | +/*!**************************************************!*\ | ||
| 3238 | + !*** ./src/FlvPlayer/flv.js/demux/sps-parser.js ***! | ||
| 3239 | + \**************************************************/ | ||
| 3240 | +/*! exports provided: default */ | ||
| 3241 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3242 | + | ||
| 3243 | +"use strict"; | ||
| 3244 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _exp_golomb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exp-golomb.js */ \"./src/FlvPlayer/flv.js/demux/exp-golomb.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nvar SPSParser = /*#__PURE__*/function () {\n function SPSParser() {}\n\n SPSParser._ebsp2rbsp = function _ebsp2rbsp(uint8array) {\n var src = uint8array;\n var src_length = src.byteLength;\n var dst = new Uint8Array(src_length);\n var dst_idx = 0;\n\n for (var i = 0; i < src_length; i++) {\n if (i >= 2) {\n // Unescape: Skip 0x03 after 00 00\n if (src[i] === 0x03 && src[i - 1] === 0x00 && src[i - 2] === 0x00) {\n continue;\n }\n }\n\n dst[dst_idx] = src[i];\n dst_idx++;\n }\n\n return new Uint8Array(dst.buffer, 0, dst_idx);\n };\n\n SPSParser.parseSPS = function parseSPS(uint8array) {\n var rbsp = SPSParser._ebsp2rbsp(uint8array);\n\n var gb = new _exp_golomb_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](rbsp);\n gb.readByte();\n var profile_idc = gb.readByte(); // profile_idc\n\n gb.readByte(); // constraint_set_flags[5] + reserved_zero[3]\n\n var level_idc = gb.readByte(); // level_idc\n\n gb.readUEG(); // seq_parameter_set_id\n\n var profile_string = SPSParser.getProfileString(profile_idc);\n var level_string = SPSParser.getLevelString(level_idc);\n var chroma_format_idc = 1;\n var chroma_format = 420;\n var chroma_format_table = [0, 420, 422, 444];\n var bit_depth = 8;\n\n if (profile_idc === 100 || profile_idc === 110 || profile_idc === 122 || profile_idc === 244 || profile_idc === 44 || profile_idc === 83 || profile_idc === 86 || profile_idc === 118 || profile_idc === 128 || profile_idc === 138 || profile_idc === 144) {\n chroma_format_idc = gb.readUEG();\n\n if (chroma_format_idc === 3) {\n gb.readBits(1); // separate_colour_plane_flag\n }\n\n if (chroma_format_idc <= 3) {\n chroma_format = chroma_format_table[chroma_format_idc];\n }\n\n bit_depth = gb.readUEG() + 8; // bit_depth_luma_minus8\n\n gb.readUEG(); // bit_depth_chroma_minus8\n\n gb.readBits(1); // qpprime_y_zero_transform_bypass_flag\n\n if (gb.readBool()) {\n // seq_scaling_matrix_present_flag\n var scaling_list_count = chroma_format_idc !== 3 ? 8 : 12;\n\n for (var i = 0; i < scaling_list_count; i++) {\n if (gb.readBool()) {\n // seq_scaling_list_present_flag\n if (i < 6) {\n SPSParser._skipScalingList(gb, 16);\n } else {\n SPSParser._skipScalingList(gb, 64);\n }\n }\n }\n }\n }\n\n gb.readUEG(); // log2_max_frame_num_minus4\n\n var pic_order_cnt_type = gb.readUEG();\n\n if (pic_order_cnt_type === 0) {\n gb.readUEG(); // log2_max_pic_order_cnt_lsb_minus_4\n } else if (pic_order_cnt_type === 1) {\n gb.readBits(1); // delta_pic_order_always_zero_flag\n\n gb.readSEG(); // offset_for_non_ref_pic\n\n gb.readSEG(); // offset_for_top_to_bottom_field\n\n var num_ref_frames_in_pic_order_cnt_cycle = gb.readUEG();\n\n for (var _i = 0; _i < num_ref_frames_in_pic_order_cnt_cycle; _i++) {\n gb.readSEG(); // offset_for_ref_frame\n }\n }\n\n var ref_frames = gb.readUEG(); // max_num_ref_frames\n\n gb.readBits(1); // gaps_in_frame_num_value_allowed_flag\n\n var pic_width_in_mbs_minus1 = gb.readUEG();\n var pic_height_in_map_units_minus1 = gb.readUEG();\n var frame_mbs_only_flag = gb.readBits(1);\n\n if (frame_mbs_only_flag === 0) {\n gb.readBits(1); // mb_adaptive_frame_field_flag\n }\n\n gb.readBits(1); // direct_8x8_inference_flag\n\n var frame_crop_left_offset = 0;\n var frame_crop_right_offset = 0;\n var frame_crop_top_offset = 0;\n var frame_crop_bottom_offset = 0;\n var frame_cropping_flag = gb.readBool();\n\n if (frame_cropping_flag) {\n frame_crop_left_offset = gb.readUEG();\n frame_crop_right_offset = gb.readUEG();\n frame_crop_top_offset = gb.readUEG();\n frame_crop_bottom_offset = gb.readUEG();\n }\n\n var sar_width = 1,\n sar_height = 1;\n var fps = 0,\n fps_fixed = true,\n fps_num = 0,\n fps_den = 0;\n var vui_parameters_present_flag = gb.readBool();\n\n if (vui_parameters_present_flag) {\n if (gb.readBool()) {\n // aspect_ratio_info_present_flag\n var aspect_ratio_idc = gb.readByte();\n var sar_w_table = [1, 12, 10, 16, 40, 24, 20, 32, 80, 18, 15, 64, 160, 4, 3, 2];\n var sar_h_table = [1, 11, 11, 11, 33, 11, 11, 11, 33, 11, 11, 33, 99, 3, 2, 1];\n\n if (aspect_ratio_idc > 0 && aspect_ratio_idc < 16) {\n sar_width = sar_w_table[aspect_ratio_idc - 1];\n sar_height = sar_h_table[aspect_ratio_idc - 1];\n } else if (aspect_ratio_idc === 255) {\n sar_width = gb.readByte() << 8 | gb.readByte();\n sar_height = gb.readByte() << 8 | gb.readByte();\n }\n }\n\n if (gb.readBool()) {\n // overscan_info_present_flag\n gb.readBool(); // overscan_appropriate_flag\n }\n\n if (gb.readBool()) {\n // video_signal_type_present_flag\n gb.readBits(4); // video_format & video_full_range_flag\n\n if (gb.readBool()) {\n // colour_description_present_flag\n gb.readBits(24); // colour_primaries & transfer_characteristics & matrix_coefficients\n }\n }\n\n if (gb.readBool()) {\n // chroma_loc_info_present_flag\n gb.readUEG(); // chroma_sample_loc_type_top_field\n\n gb.readUEG(); // chroma_sample_loc_type_bottom_field\n }\n\n if (gb.readBool()) {\n // timing_info_present_flag\n var num_units_in_tick = gb.readBits(32);\n var time_scale = gb.readBits(32);\n fps_fixed = gb.readBool(); // fixed_frame_rate_flag\n\n fps_num = time_scale;\n fps_den = num_units_in_tick * 2;\n fps = fps_num / fps_den;\n }\n }\n\n var sarScale = 1;\n\n if (sar_width !== 1 || sar_height !== 1) {\n sarScale = sar_width / sar_height;\n }\n\n var crop_unit_x = 0,\n crop_unit_y = 0;\n\n if (chroma_format_idc === 0) {\n crop_unit_x = 1;\n crop_unit_y = 2 - frame_mbs_only_flag;\n } else {\n var sub_wc = chroma_format_idc === 3 ? 1 : 2;\n var sub_hc = chroma_format_idc === 1 ? 2 : 1;\n crop_unit_x = sub_wc;\n crop_unit_y = sub_hc * (2 - frame_mbs_only_flag);\n }\n\n var codec_width = (pic_width_in_mbs_minus1 + 1) * 16;\n var codec_height = (2 - frame_mbs_only_flag) * ((pic_height_in_map_units_minus1 + 1) * 16);\n codec_width -= (frame_crop_left_offset + frame_crop_right_offset) * crop_unit_x;\n codec_height -= (frame_crop_top_offset + frame_crop_bottom_offset) * crop_unit_y;\n var present_width = Math.ceil(codec_width * sarScale);\n gb.destroy();\n gb = null;\n return {\n avc_profile: profile_idc,\n profile_string: profile_string,\n // baseline, high, high10, ...\n avc_level: level_idc,\n level_string: level_string,\n // 3, 3.1, 4, 4.1, 5, 5.1, ...\n bit_depth: bit_depth,\n // 8bit, 10bit, ...\n ref_frames: ref_frames,\n chroma_format: chroma_format,\n // 4:2:0, 4:2:2, ...\n chroma_format_string: SPSParser.getChromaFormatString(chroma_format),\n frame_rate: {\n fixed: fps_fixed,\n fps: fps,\n fps_den: fps_den,\n fps_num: fps_num\n },\n sar_ratio: {\n width: sar_width,\n height: sar_height\n },\n codec_size: {\n width: codec_width,\n height: codec_height\n },\n present_size: {\n width: present_width,\n height: codec_height\n }\n };\n };\n\n SPSParser._skipScalingList = function _skipScalingList(gb, count) {\n var last_scale = 8,\n next_scale = 8;\n var delta_scale = 0;\n\n for (var i = 0; i < count; i++) {\n if (next_scale !== 0) {\n delta_scale = gb.readSEG();\n next_scale = (last_scale + delta_scale + 256) % 256;\n }\n\n last_scale = next_scale === 0 ? last_scale : next_scale;\n }\n };\n\n SPSParser.getProfileString = function getProfileString(profile_idc) {\n switch (profile_idc) {\n case 66:\n return 'Baseline';\n\n case 77:\n return 'Main';\n\n case 88:\n return 'Extended';\n\n case 100:\n return 'High';\n\n case 110:\n return 'High10';\n\n case 122:\n return 'High422';\n\n case 244:\n return 'High444';\n\n default:\n return 'Unknown';\n }\n };\n\n SPSParser.getLevelString = function getLevelString(level_idc) {\n return (level_idc / 10).toFixed(1);\n };\n\n SPSParser.getChromaFormatString = function getChromaFormatString(chroma) {\n switch (chroma) {\n case 420:\n return '4:2:0';\n\n case 422:\n return '4:2:2';\n\n case 444:\n return '4:4:4';\n\n default:\n return 'Unknown';\n }\n };\n\n return SPSParser;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (SPSParser);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/demux/sps-parser.js?"); | ||
| 3245 | + | ||
| 3246 | +/***/ }), | ||
| 3247 | + | ||
| 3248 | +/***/ "./src/FlvPlayer/flv.js/io/fetch-stream-loader.js": | ||
| 3249 | +/*!********************************************************!*\ | ||
| 3250 | + !*** ./src/FlvPlayer/flv.js/io/fetch-stream-loader.js ***! | ||
| 3251 | + \********************************************************/ | ||
| 3252 | +/*! exports provided: default */ | ||
| 3253 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3254 | + | ||
| 3255 | +"use strict"; | ||
| 3256 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/FlvPlayer/flv.js/utils/logger.js\");\n/* harmony import */ var _utils_browser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/browser.js */ \"./src/FlvPlayer/flv.js/utils/browser.js\");\n/* harmony import */ var _loader_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loader.js */ \"./src/FlvPlayer/flv.js/io/loader.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/FlvPlayer/flv.js/utils/exception.js\");\n/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../common/common */ \"./src/common/common.js\");\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\n\n/* fetch + stream IO loader. Currently working on chrome 43+.\n * fetch provides a better alternative http API to XMLHttpRequest\n *\n * fetch spec https://fetch.spec.whatwg.org/\n * stream spec https://streams.spec.whatwg.org/\n */\n\nvar FetchStreamLoader = /*#__PURE__*/function (_BaseLoader) {\n _inheritsLoose(FetchStreamLoader, _BaseLoader);\n\n FetchStreamLoader.isSupported = function isSupported() {\n try {\n // fetch + stream is broken on Microsoft Edge. Disable before build 15048.\n // see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8196907/\n // Fixed in Jan 10, 2017. Build 15048+ removed from blacklist.\n var isWorkWellEdge = _utils_browser_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].msedge && _utils_browser_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].version.minor >= 15048;\n var browserNotBlacklisted = _utils_browser_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].msedge ? isWorkWellEdge : true;\n return self.fetch && self.ReadableStream && browserNotBlacklisted;\n } catch (e) {\n return false;\n }\n };\n\n function FetchStreamLoader(seekHandler, config) {\n var _this;\n\n _this = _BaseLoader.call(this, 'fetch-stream-loader') || this;\n _this.TAG = 'FetchStreamLoader';\n _this._seekHandler = seekHandler;\n _this._config = config;\n _this._needStash = true;\n _this._requestAbort = false;\n _this._contentLength = null;\n _this._receivedLength = 0;\n _this._retryConnectTimes = 0;\n _this._fetchUrl = null;\n _this._fetchParam = null;\n _this._triggerReconnectingNotify = true;\n _this._triggerReconnectSuccessNotify = true;\n return _this;\n }\n\n var _proto = FetchStreamLoader.prototype;\n\n _proto.destroy = function destroy() {\n if (this.isWorking()) {\n this.abort();\n }\n\n _BaseLoader.prototype.destroy.call(this);\n };\n\n _proto.fetchStream = function fetchStream() {\n var _this2 = this;\n\n var params = this._fetchParam;\n this._retryConnectTimes++; //֪ͨ�ϲ�, ��ǰ��������, 1Ϊ��һ������, ʹ�����еķ���_onDataArrival\n\n if (this._triggerReconnectingNotify) {\n this._triggerReconnectingNotify = false;\n\n if (this._onDataArrival) {\n this._onDataArrival(null, -this._retryConnectTimes, 0);\n }\n }\n\n this._triggerReconnectSuccessNotify = true;\n self.fetch(this._fetchUrl, params).then(function (res) {\n if (_this2._requestAbort) {\n _this2._requestAbort = false;\n _this2._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderStatus\"].kIdle;\n return;\n }\n\n if (res.ok && res.status >= 200 && res.status <= 299) {\n if (res.url !== _this2._fetchUrl) {\n if (_this2._onURLRedirect) {\n var redirectedURL = _this2._seekHandler.removeURLParameters(res.url);\n\n _this2._onURLRedirect(redirectedURL);\n }\n }\n\n var lengthHeader = res.headers.get('Content-Length');\n\n if (lengthHeader != null) {\n _this2._contentLength = parseInt(lengthHeader);\n\n if (_this2._contentLength !== 0) {\n if (_this2._onContentLengthKnown) {\n _this2._onContentLengthKnown(_this2._contentLength);\n }\n }\n }\n\n _this2._triggerReconnectingNotify = true;\n return _this2._pump.call(_this2, res.body.getReader());\n } else {\n _this2._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderStatus\"].kError;\n\n if (_this2._onError) {//this._onError(LoaderErrors.HTTP_STATUS_CODE_INVALID, { code: res.status, msg: res.statusText });\n } else {//throw new RuntimeException('FetchStreamLoader: Http code invalid, ' + res.status + ' ' + res.statusText);\n }\n\n _common_common__WEBPACK_IMPORTED_MODULE_4__[\"MediaWorkerLog\"]('fetch-stream: code:' + res.status + ' msg:' + res.statusText);\n var _self = _this2;\n _common_common__WEBPACK_IMPORTED_MODULE_4__[\"sleep\"](3000).then(function () {\n //console.log(\"fetch-stream-loader.js::Reopen...\");\n console.log('Reconnecting...');\n\n _self.fetchStream();\n });\n return;\n }\n }).catch(function (e) {\n _this2._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderStatus\"].kError;\n\n if (_this2._onError) {\n _this2._onError(_loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderErrors\"].EXCEPTION, {\n code: -1,\n msg: e.message\n });\n } else {\n throw e;\n }\n\n var self = _this2;\n _common_common__WEBPACK_IMPORTED_MODULE_4__[\"sleep\"](3000).then(function () {\n //console.log(\"fetch-stream-loader.js::Reopen...\");\n self.fetchStream();\n });\n return;\n });\n };\n\n _proto.open = function open(dataSource, range) {\n /*\n if (this._fetchUrl != null &&\n this._fetchParam != null) {\n this.fetchStream();\n return;\n }\n */\n this._dataSource = dataSource;\n this._range = range;\n var sourceURL = dataSource.url;\n\n if (this._config.reuseRedirectedURL && dataSource.redirectedURL != undefined) {\n sourceURL = dataSource.redirectedURL;\n }\n\n var seekConfig = this._seekHandler.getConfig(sourceURL, range);\n\n var headers = new self.Headers();\n\n if (typeof seekConfig.headers === 'object') {\n var configHeaders = seekConfig.headers;\n\n for (var key in configHeaders) {\n if (configHeaders.hasOwnProperty(key)) {\n headers.append(key, configHeaders[key]);\n }\n }\n }\n\n var params = {\n method: 'GET',\n headers: headers,\n mode: 'cors',\n cache: 'default',\n // The default policy of Fetch API in the whatwg standard\n // Safari incorrectly indicates 'no-referrer' as default policy, fuck it\n referrerPolicy: 'no-referrer-when-downgrade'\n }; // add additional headers\n\n if (typeof this._config.headers === 'object') {\n for (var _key in this._config.headers) {\n headers.append(_key, this._config.headers[_key]);\n }\n } // cors is enabled by default\n\n\n if (dataSource.cors === false) {\n // no-cors means 'disregard cors policy', which can only be used in ServiceWorker\n params.mode = 'same-origin';\n } // withCredentials is disabled by default\n\n\n if (dataSource.withCredentials) {\n params.credentials = 'include';\n } // referrerPolicy from config\n\n\n if (dataSource.referrerPolicy) {\n params.referrerPolicy = dataSource.referrerPolicy;\n }\n\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderStatus\"].kConnecting;\n this._fetchUrl = seekConfig.url;\n this._fetchParam = params;\n this.fetchStream();\n /*\n self.fetch(seekConfig.url, params).then((res) => {\n if (this._requestAbort) {\n this._requestAbort = false;\n this._status = LoaderStatus.kIdle;\n return;\n }\n if (res.ok && (res.status >= 200 && res.status <= 299)) {\n if (res.url !== seekConfig.url) {\n if (this._onURLRedirect) {\n let redirectedURL = this._seekHandler.removeURLParameters(res.url);\n this._onURLRedirect(redirectedURL);\n }\n }\n let lengthHeader = res.headers.get('Content-Length');\n if (lengthHeader != null) {\n this._contentLength = parseInt(lengthHeader);\n if (this._contentLength !== 0) {\n if (this._onContentLengthKnown) {\n this._onContentLengthKnown(this._contentLength);\n }\n }\n }\n return this._pump.call(this, res.body.getReader());\n } else {\n this._status = LoaderStatus.kError;\n if (this._onError) {\n this._onError(LoaderErrors.HTTP_STATUS_CODE_INVALID, { code: res.status, msg: res.statusText });\n } else {\n throw new RuntimeException('FetchStreamLoader: Http code invalid, ' + res.status + ' ' + res.statusText);\n }\n }\n }).catch((e) => {\n this._status = LoaderStatus.kError;\n if (this._onError) {\n this._onError(LoaderErrors.EXCEPTION, { code: -1, msg: e.message });\n } else {\n throw e;\n }\n });\n */\n };\n\n _proto.abort = function abort() {\n this._requestAbort = true;\n };\n\n _proto._pump = function _pump(reader) {\n var _this3 = this;\n\n // ReadableStreamReader\n return reader.read().then(function (result) {\n if (result.done) {\n // First check received length\n if (_this3._contentLength !== null && _this3._receivedLength < _this3._contentLength) {\n // Report Early-EOF\n _this3._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderStatus\"].kError;\n var type = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderErrors\"].EARLY_EOF;\n var info = {\n code: -1,\n msg: 'Fetch stream meet Early-EOF'\n };\n\n if (_this3._onError) {\n _this3._onError(type, info);\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_3__[\"RuntimeException\"](info.msg);\n } //������ļ�\n\n\n if (_this3._contentLength !== null && _this3._receivedLength === _this3._contentLength && _this3._receivedLength > 0) {\n _common_common__WEBPACK_IMPORTED_MODULE_4__[\"setLiveStreamType\"](false);\n\n _this3._onComplete(_this3._range.from, _this3._range.from + _this3._receivedLength - 1);\n } else {\n _this3._onComplete(-1, -1);\n }\n } else {\n // OK. Download complete\n _this3._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderStatus\"].kComplete;\n\n if (_this3._onComplete) {\n //������ļ�\n if (_this3._contentLength !== null && _this3._receivedLength === _this3._contentLength && _this3._receivedLength > 0) {\n _common_common__WEBPACK_IMPORTED_MODULE_4__[\"setLiveStreamType\"](false);\n\n _this3._onComplete(_this3._range.from, _this3._range.from + _this3._receivedLength - 1);\n } else {\n _this3._onComplete(-1, -1);\n }\n }\n }\n } else {\n if (_this3._requestAbort === true) {\n _this3._requestAbort = false;\n _this3._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderStatus\"].kComplete;\n return reader.cancel();\n }\n\n _this3._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderStatus\"].kBuffering;\n var chunk = result.value.buffer;\n var byteStart = _this3._range.from + _this3._receivedLength;\n _this3._receivedLength += chunk.byteLength;\n\n if (_this3._onDataArrival) {\n _this3._onDataArrival(chunk, byteStart, _this3._receivedLength);\n } //֪ͨ�ϲ�, ��ǰ��������, 1Ϊ��һ������, ʹ�����еķ���_onDataArrival\n\n\n if (_this3._triggerReconnectSuccessNotify) {\n _this3._triggerReconnectSuccessNotify = false;\n\n if (_this3._onDataArrival) {\n //console.log(\"fetch-stream-loader.js::Connected:\" + this._retryConnectTimes);\n _this3._onDataArrival(null, _this3._retryConnectTimes, 0);\n\n _this3._retryConnectTimes++;\n }\n }\n\n _this3._pump(reader);\n }\n }).catch(function (e) {\n console.log('fetch-stream-loader:: errCode:' + e.code + ' msg:' + e.message);\n\n _this3._onComplete(-1, -1);\n\n return;\n\n if (e.code === 11 && _utils_browser_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].msedge) {\n // InvalidStateError on Microsoft Edge\n // Workaround: Edge may throw InvalidStateError after ReadableStreamReader.cancel() call\n // Ignore the unknown exception.\n // Related issue: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11265202/\n return;\n }\n\n _this3._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderStatus\"].kError;\n var type = 0;\n var info = null;\n\n if ((e.code === 19 || e.message === 'network error') && ( // NETWORK_ERR\n _this3._contentLength === null || _this3._contentLength !== null && _this3._receivedLength < _this3._contentLength)) {\n type = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderErrors\"].EARLY_EOF;\n info = {\n code: e.code,\n msg: 'Fetch stream meet Early-EOF'\n };\n } else {\n type = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderErrors\"].EXCEPTION;\n info = {\n code: e.code,\n msg: e.message\n };\n }\n\n if (_this3._onError) {\n _this3._onError(type, info);\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_3__[\"RuntimeException\"](info.msg);\n }\n });\n };\n\n return FetchStreamLoader;\n}(_loader_js__WEBPACK_IMPORTED_MODULE_2__[\"BaseLoader\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FetchStreamLoader);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/io/fetch-stream-loader.js?"); | ||
| 3257 | + | ||
| 3258 | +/***/ }), | ||
| 3259 | + | ||
| 3260 | +/***/ "./src/FlvPlayer/flv.js/io/io-controller.js": | ||
| 3261 | +/*!**************************************************!*\ | ||
| 3262 | + !*** ./src/FlvPlayer/flv.js/io/io-controller.js ***! | ||
| 3263 | + \**************************************************/ | ||
| 3264 | +/*! exports provided: default */ | ||
| 3265 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3266 | + | ||
| 3267 | +"use strict"; | ||
| 3268 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/FlvPlayer/flv.js/utils/logger.js\");\n/* harmony import */ var _speed_sampler_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./speed-sampler.js */ \"./src/FlvPlayer/flv.js/io/speed-sampler.js\");\n/* harmony import */ var _loader_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loader.js */ \"./src/FlvPlayer/flv.js/io/loader.js\");\n/* harmony import */ var _fetch_stream_loader_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fetch-stream-loader.js */ \"./src/FlvPlayer/flv.js/io/fetch-stream-loader.js\");\n/* harmony import */ var _xhr_moz_chunked_loader_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./xhr-moz-chunked-loader.js */ \"./src/FlvPlayer/flv.js/io/xhr-moz-chunked-loader.js\");\n/* harmony import */ var _xhr_msstream_loader_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./xhr-msstream-loader.js */ \"./src/FlvPlayer/flv.js/io/xhr-msstream-loader.js\");\n/* harmony import */ var _xhr_range_loader_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./xhr-range-loader.js */ \"./src/FlvPlayer/flv.js/io/xhr-range-loader.js\");\n/* harmony import */ var _websocket_loader_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./websocket-loader.js */ \"./src/FlvPlayer/flv.js/io/websocket-loader.js\");\n/* harmony import */ var _range_seek_handler_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./range-seek-handler.js */ \"./src/FlvPlayer/flv.js/io/range-seek-handler.js\");\n/* harmony import */ var _param_seek_handler_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./param-seek-handler.js */ \"./src/FlvPlayer/flv.js/io/param-seek-handler.js\");\n/* harmony import */ var _m3u8_loader_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./m3u8-loader.js */ \"./src/FlvPlayer/flv.js/io/m3u8-loader.js\");\n/* harmony import */ var _rtsp_stream_loader_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./rtsp-stream-loader.js */ \"./src/FlvPlayer/flv.js/io/rtsp-stream-loader.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/FlvPlayer/flv.js/utils/exception.js\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * DataSource: {\n * url: string,\n * filesize: number,\n * cors: boolean,\n * withCredentials: boolean\n * }\n *\n */\n// Manage IO Loaders\n\nvar IOController = /*#__PURE__*/function () {\n function IOController(dataSource, config, extraData, startPlaySecs) {\n this.TAG = 'IOController';\n this._config = config;\n this._extraData = extraData;\n this._stashInitialSize = 1024 * 384; // default initial size: 384KB\n\n if (config.stashInitialSize != undefined && config.stashInitialSize > 0) {\n // apply from config\n this._stashInitialSize = config.stashInitialSize;\n }\n\n this._stashUsed = 0;\n this._stashSize = this._stashInitialSize;\n this._bufferSize = 1024 * 1024 * 3; // initial size: 3MB\n\n this._stashBuffer = new ArrayBuffer(this._bufferSize);\n this._stashByteStart = 0;\n this._enableStash = true;\n\n if (config.enableStashBuffer === false) {\n this._enableStash = false;\n } //add by gavin 2020.05.06\n //���û��� ��decodeTypeΪ'soft'ʱ, �˴�������Ϊfalse\n\n\n if (config.decodeType === 'soft') {\n this._enableStash = false;\n }\n\n this._loader = null;\n this._loaderClass = null;\n this._seekHandler = null;\n this._dataSource = dataSource;\n this._isWebSocketURL = /wss?:\\/\\/(.+?)/.test(dataSource.url);\n this._refTotalLength = dataSource.filesize ? dataSource.filesize : null;\n this._totalLength = this._refTotalLength;\n this._fullRequestFlag = false;\n this._currentRange = null;\n this._redirectedURL = null;\n this._speedNormalized = 0;\n this._speedSampler = new _speed_sampler_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]();\n this._speedNormalizeList = [64, 128, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096];\n this._isEarlyEofReconnecting = false;\n this._paused = false;\n this._resumeFrom = 0;\n this._onDataArrival = null;\n this._onSeeked = null;\n this._onError = null;\n this._onComplete = null;\n this._onRedirect = null;\n this._onRecoveredEarlyEof = null;\n\n this._selectSeekHandler();\n\n this._selectLoader();\n\n this._createLoader(startPlaySecs);\n }\n\n var _proto = IOController.prototype;\n\n _proto.destroy = function destroy() {\n if (this._loader.isWorking()) {\n this._loader.abort();\n }\n\n if (this._stashBuffer) {\n delete this._stashBuffer;\n this._stashBuffer = null;\n }\n\n this._loader.destroy();\n\n this._loader = null;\n this._loaderClass = null;\n this._dataSource = null;\n this._stashBuffer = null;\n this._stashUsed = this._stashSize = this._bufferSize = this._stashByteStart = 0;\n this._currentRange = null;\n this._speedSampler = null;\n this._isEarlyEofReconnecting = false;\n this._onDataArrival = null;\n this._onSeeked = null;\n this._onError = null;\n this._onComplete = null;\n this._onRedirect = null;\n this._onRecoveredEarlyEof = null;\n this._extraData = null;\n };\n\n _proto.isWorking = function isWorking() {\n return this._loader && this._loader.isWorking() && !this._paused;\n };\n\n _proto.isPaused = function isPaused() {\n return this._paused;\n };\n\n _proto._selectSeekHandler = function _selectSeekHandler() {\n var config = this._config;\n\n if (config.seekType === 'range') {\n this._seekHandler = new _range_seek_handler_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"](this._config.rangeLoadZeroStart);\n } else if (config.seekType === 'param') {\n var paramStart = config.seekParamStart || 'bstart';\n var paramEnd = config.seekParamEnd || 'bend';\n this._seekHandler = new _param_seek_handler_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"](paramStart, paramEnd);\n } else if (config.seekType === 'custom') {\n if (typeof config.customSeekHandler !== 'function') {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_12__[\"InvalidArgumentException\"]('Custom seekType specified in config but invalid customSeekHandler!');\n }\n\n this._seekHandler = new config.customSeekHandler();\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_12__[\"InvalidArgumentException\"](\"Invalid seekType in config: \" + config.seekType);\n }\n };\n\n _proto._selectLoader = function _selectLoader() {\n if (this._config.customLoader != null) {\n this._loaderClass = this._config.customLoader;\n } else if (this._config.streamType === 'm3u8') {\n this._loaderClass = _m3u8_loader_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"];\n } else if (this._config.streamType === 'rtsp') {\n this._loaderClass = _rtsp_stream_loader_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"];\n } else if (this._isWebSocketURL) {\n this._loaderClass = _websocket_loader_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\n } else if (_fetch_stream_loader_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].isSupported()) {\n this._loaderClass = _fetch_stream_loader_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n } else if (_xhr_moz_chunked_loader_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].isSupported()) {\n this._loaderClass = _xhr_moz_chunked_loader_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n } else if (_xhr_range_loader_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].isSupported()) {\n this._loaderClass = _xhr_range_loader_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_12__[\"RuntimeException\"]('Your browser doesn\\'t support xhr with arraybuffer responseType!');\n }\n };\n\n _proto._IsM3u8Loader = function _IsM3u8Loader() {\n return this._loaderClass == _m3u8_loader_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"] ? true : false;\n };\n\n _proto._GetM3u8Loader = function _GetM3u8Loader() {\n if (this._loaderClass == _m3u8_loader_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"]) return this._loader;\n return null;\n };\n\n _proto._IsRtspLoader = function _IsRtspLoader() {\n return this._loaderClass == _rtsp_stream_loader_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"] ? true : false;\n };\n\n _proto._createLoader = function _createLoader(startPlaySecs) {\n this._loader = new this._loaderClass(this._seekHandler, this._config);\n\n if (this._loader.needStashBuffer === false) {\n this._enableStash = false;\n }\n\n if (this._loaderClass == _m3u8_loader_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"]) {\n this._loader.setStartPlaySecs(startPlaySecs);\n }\n\n this._loader.onContentLengthKnown = this._onContentLengthKnown.bind(this);\n this._loader.onURLRedirect = this._onURLRedirect.bind(this);\n this._loader.onDataArrival = this._onLoaderChunkArrival.bind(this);\n this._loader.onComplete = this._onLoaderComplete.bind(this);\n this._loader.onError = this._onLoaderError.bind(this);\n };\n\n _proto.open = function open(optionalFrom) {\n this._currentRange = {\n from: 0,\n to: -1\n };\n\n if (optionalFrom) {\n this._currentRange.from = optionalFrom;\n }\n\n this._speedSampler.reset();\n\n if (!optionalFrom) {\n this._fullRequestFlag = true;\n }\n\n this._loader.open(this._dataSource, Object.assign({}, this._currentRange));\n };\n\n _proto.abort = function abort() {\n this._loader.abort();\n\n if (this._paused) {\n this._paused = false;\n this._resumeFrom = 0;\n }\n };\n\n _proto.pause = function pause() {\n if (this._IsRtspLoader()) {\n if (this._loader) {\n this._loader.pause();\n }\n\n return;\n }\n\n if (this.isWorking()) {\n this._loader.abort();\n\n if (this._stashUsed !== 0) {\n this._resumeFrom = this._stashByteStart;\n this._currentRange.to = this._stashByteStart - 1;\n } else {\n this._resumeFrom = this._currentRange.to + 1;\n }\n\n this._stashUsed = 0;\n this._stashByteStart = 0;\n this._paused = true;\n }\n };\n\n _proto.resume = function resume() {\n if (this._IsRtspLoader()) {\n if (this._loader) {\n this._loader.resume();\n }\n\n return;\n }\n\n if (this._paused) {\n this._paused = false;\n var bytes = this._resumeFrom;\n this._resumeFrom = 0;\n\n this._internalSeek(bytes, true);\n }\n };\n\n _proto.rtspScale = function rtspScale(scaleValue) {\n if (this._IsRtspLoader()) {\n if (this._loader) {\n this._loader.scale(scaleValue);\n }\n }\n };\n\n _proto.seek = function seek(bytes) {\n //console.log(\"io-controller.js::seek(bytes):\" + bytes);\n this._paused = false;\n this._stashUsed = 0;\n this._stashByteStart = 0;\n\n this._internalSeek(bytes, true);\n }\n /**\n * When seeking request is from media seeking, unconsumed stash data should be dropped\n * However, stash data shouldn't be dropped if seeking requested from http reconnection\n *\n * @dropUnconsumed: Ignore and discard all unconsumed data in stash buffer\n */\n ;\n\n _proto._internalSeek = function _internalSeek(bytes, dropUnconsumed) {\n if (this._loader.isWorking()) {\n this._loader.abort();\n } // dispatch & flush stash buffer before seek\n\n\n this._flushStashBuffer(dropUnconsumed);\n\n this._loader.destroy();\n\n this._loader = null;\n var requestRange = {\n from: bytes,\n to: -1\n };\n this._currentRange = {\n from: requestRange.from,\n to: -1\n };\n\n this._speedSampler.reset();\n\n this._stashSize = this._stashInitialSize;\n\n this._createLoader();\n\n this._loader.open(this._dataSource, requestRange);\n\n if (this._onSeeked) {\n this._onSeeked();\n }\n };\n\n _proto.updateUrl = function updateUrl(url) {\n if (!url || typeof url !== 'string' || url.length === 0) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_12__[\"InvalidArgumentException\"]('Url must be a non-empty string!');\n }\n\n this._dataSource.url = url; // TODO: replace with new url\n };\n\n _proto._expandBuffer = function _expandBuffer(expectedBytes) {\n var bufferNewSize = this._stashSize;\n\n while (bufferNewSize + 1024 * 1024 * 1 < expectedBytes) {\n bufferNewSize *= 2;\n }\n\n bufferNewSize += 1024 * 1024 * 1; // bufferSize = stashSize + 1MB\n\n if (bufferNewSize === this._bufferSize) {\n return;\n }\n\n console.log('io-controller.js::_expandBuffer' + bufferNewSize);\n var newBuffer = new ArrayBuffer(bufferNewSize);\n\n if (this._stashUsed > 0) {\n // copy existing data into new buffer\n var stashOldArray = new Uint8Array(this._stashBuffer, 0, this._stashUsed);\n var stashNewArray = new Uint8Array(newBuffer, 0, bufferNewSize);\n stashNewArray.set(stashOldArray, 0);\n }\n\n if (this._stashBuffer) {\n delete this._stashBuffer;\n this._stashBuffer = null;\n }\n\n this._stashBuffer = newBuffer;\n this._bufferSize = bufferNewSize;\n };\n\n _proto._normalizeSpeed = function _normalizeSpeed(input) {\n var list = this._speedNormalizeList;\n var last = list.length - 1;\n var mid = 0;\n var lbound = 0;\n var ubound = last;\n\n if (input < list[0]) {\n return list[0];\n } // binary search\n\n\n while (lbound <= ubound) {\n mid = lbound + Math.floor((ubound - lbound) / 2);\n\n if (mid === last || input >= list[mid] && input < list[mid + 1]) {\n return list[mid];\n } else if (list[mid] < input) {\n lbound = mid + 1;\n } else {\n ubound = mid - 1;\n }\n }\n };\n\n _proto._adjustStashSize = function _adjustStashSize(normalized) {\n var stashSizeKB = 0;\n\n if (this._config.isLive) {\n // live stream: always use single normalized speed for size of stashSizeKB\n stashSizeKB = normalized;\n } else {\n if (normalized < 512) {\n stashSizeKB = normalized;\n } else if (normalized >= 512 && normalized <= 1024) {\n stashSizeKB = Math.floor(normalized * 1.5);\n } else {\n stashSizeKB = normalized * 2;\n }\n }\n\n if (stashSizeKB > 8192) {\n stashSizeKB = 8192;\n }\n\n var bufferSize = stashSizeKB * 1024 + 1024 * 1024 * 1; // stashSize + 1MB\n //console.log(\"_adjustStashSize: \" + bufferSize);\n\n if (this._bufferSize < bufferSize) {\n this._expandBuffer(bufferSize);\n }\n\n this._stashSize = stashSizeKB * 1024;\n };\n\n _proto._dispatchChunks = function _dispatchChunks(chunks, byteStart) {\n if (chunks === null) {\n if (this._IsM3u8Loader()) {\n if (byteStart > 1 && this._onComplete) {\n this._onComplete(-1);\n }\n\n return;\n }\n\n return this._onDataArrival(chunks, byteStart);\n }\n\n this._currentRange.to = byteStart + chunks.byteLength - 1;\n return this._onDataArrival(chunks, byteStart);\n };\n\n _proto._onURLRedirect = function _onURLRedirect(redirectedURL) {\n this._redirectedURL = redirectedURL;\n\n if (this._onRedirect) {\n this._onRedirect(redirectedURL);\n }\n };\n\n _proto._onContentLengthKnown = function _onContentLengthKnown(contentLength) {\n if (contentLength && this._fullRequestFlag) {\n this._totalLength = contentLength;\n this._fullRequestFlag = false;\n }\n };\n\n _proto._onLoaderChunkArrival = function _onLoaderChunkArrival(chunk, byteStart, receivedLength) {\n if (!this._onDataArrival) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_12__[\"IllegalStateException\"]('IOController: No existing consumer (onDataArrival) callback!');\n }\n\n if (this._paused) {\n return;\n }\n\n if (this._isEarlyEofReconnecting) {\n // Auto-reconnect for EarlyEof succeed, notify to upper-layer by callback\n this._isEarlyEofReconnecting = false;\n\n if (this._onRecoveredEarlyEof) {\n this._onRecoveredEarlyEof();\n }\n }\n\n if (chunk === null && receivedLength < 1) {\n this._dispatchChunks(chunk, byteStart);\n\n return;\n }\n\n this._speedSampler.addBytes(chunk.byteLength); // adjust stash buffer size according to network speed dynamically\n\n\n var KBps = this._speedSampler.lastSecondKBps;\n\n if (KBps !== 0) {\n var normalized = this._normalizeSpeed(KBps);\n\n if (this._speedNormalized !== normalized) {\n this._speedNormalized = normalized;\n\n this._adjustStashSize(normalized);\n }\n }\n\n if (!this._enableStash) {\n // disable stash\n //console.log(\"this._stashUsed: \" + this._stashUsed + \" / \" + this._bufferSize);\n if (this._stashUsed === 0) {\n // dispatch chunk directly to consumer;\n // check ret value (consumed bytes) and stash unconsumed to stashBuffer\n var consumed = this._dispatchChunks(chunk, byteStart);\n\n if (consumed < chunk.byteLength) {\n // unconsumed data remain.\n var remain = chunk.byteLength - consumed;\n\n if (remain > this._bufferSize) {\n this._expandBuffer(remain);\n }\n\n var stashArray = new Uint8Array(this._stashBuffer, 0, this._bufferSize);\n stashArray.set(new Uint8Array(chunk, consumed), 0);\n this._stashUsed += remain;\n this._stashByteStart = byteStart + consumed;\n }\n } else {\n // else: Merge chunk into stashBuffer, and dispatch stashBuffer to consumer.\n if (this._stashUsed + chunk.byteLength > this._bufferSize) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, '_expandBuffer... ' + (this._stashUsed + chunk.byteLength));\n\n this._expandBuffer(this._stashUsed + chunk.byteLength);\n }\n\n var _stashArray = new Uint8Array(this._stashBuffer, 0, this._bufferSize);\n\n _stashArray.set(new Uint8Array(chunk), this._stashUsed);\n\n this._stashUsed += chunk.byteLength;\n\n var _consumed = this._dispatchChunks(this._stashBuffer.slice(0, this._stashUsed), this._stashByteStart);\n\n if (_consumed < this._stashUsed && _consumed > 0) {\n // unconsumed data remain\n var remainArray = new Uint8Array(this._stashBuffer, _consumed);\n\n _stashArray.set(remainArray, 0);\n }\n\n this._stashUsed -= _consumed;\n this._stashByteStart += _consumed; //console.log(\"this._stashUsed: \" + this._stashUsed + \" / \" + this._bufferSize);\n }\n } else {\n // enable stash\n if (this._stashUsed === 0 && this._stashByteStart === 0) {\n // seeked? or init chunk?\n // This is the first chunk after seek action\n this._stashByteStart = byteStart;\n }\n\n if (this._stashUsed + chunk.byteLength <= this._stashSize) {\n // just stash\n var _stashArray2 = new Uint8Array(this._stashBuffer, 0, this._stashSize);\n\n _stashArray2.set(new Uint8Array(chunk), this._stashUsed);\n\n this._stashUsed += chunk.byteLength;\n } else {\n // stashUsed + chunkSize > stashSize, size limit exceeded\n var _stashArray3 = new Uint8Array(this._stashBuffer, 0, this._bufferSize);\n\n if (this._stashUsed > 0) {\n // There're stash datas in buffer\n // dispatch the whole stashBuffer, and stash remain data\n // then append chunk to stashBuffer (stash)\n var buffer = this._stashBuffer.slice(0, this._stashUsed);\n\n var _consumed2 = this._dispatchChunks(buffer, this._stashByteStart);\n\n if (_consumed2 < buffer.byteLength) {\n if (_consumed2 > 0) {\n var _remainArray = new Uint8Array(buffer, _consumed2);\n\n _stashArray3.set(_remainArray, 0);\n\n this._stashUsed = _remainArray.byteLength;\n this._stashByteStart += _consumed2;\n }\n } else {\n this._stashUsed = 0;\n this._stashByteStart += _consumed2;\n }\n\n if (this._stashUsed + chunk.byteLength > this._bufferSize) {\n this._expandBuffer(this._stashUsed + chunk.byteLength);\n\n _stashArray3 = new Uint8Array(this._stashBuffer, 0, this._bufferSize);\n }\n\n _stashArray3.set(new Uint8Array(chunk), this._stashUsed);\n\n this._stashUsed += chunk.byteLength;\n } else {\n // stash buffer empty, but chunkSize > stashSize (oh, holy shit)\n // dispatch chunk directly and stash remain data\n var _consumed3 = this._dispatchChunks(chunk, byteStart);\n\n if (_consumed3 < chunk.byteLength) {\n var _remain = chunk.byteLength - _consumed3;\n\n if (_remain > this._bufferSize) {\n this._expandBuffer(_remain);\n\n _stashArray3 = new Uint8Array(this._stashBuffer, 0, this._bufferSize);\n }\n\n _stashArray3.set(new Uint8Array(chunk, _consumed3), 0);\n\n this._stashUsed += _remain;\n this._stashByteStart = byteStart + _consumed3;\n }\n }\n }\n }\n };\n\n _proto._flushStashBuffer = function _flushStashBuffer(dropUnconsumed) {\n if (this._stashUsed > 0) {\n var buffer = this._stashBuffer.slice(0, this._stashUsed);\n\n var consumed = this._dispatchChunks(buffer, this._stashByteStart);\n\n var remain = buffer.byteLength - consumed;\n\n if (consumed < buffer.byteLength) {\n if (dropUnconsumed) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, remain + \" bytes unconsumed data remain when flush buffer, dropped\");\n } else {\n if (consumed > 0) {\n var stashArray = new Uint8Array(this._stashBuffer, 0, this._bufferSize);\n var remainArray = new Uint8Array(buffer, consumed);\n stashArray.set(remainArray, 0);\n this._stashUsed = remainArray.byteLength;\n this._stashByteStart += consumed;\n }\n\n return 0;\n }\n }\n\n this._stashUsed = 0;\n this._stashByteStart = 0;\n return remain;\n }\n\n return 0;\n };\n\n _proto._onLoaderComplete = function _onLoaderComplete(from, to) {\n // Force-flush stash buffer, and drop unconsumed data\n this._flushStashBuffer(true);\n\n if (from == to && to == -1) {\n if (this._onComplete) {\n this._onComplete(-1);\n }\n\n return;\n }\n\n if (this._onComplete) {\n this._onComplete(this._extraData);\n }\n };\n\n _proto._onLoaderError = function _onLoaderError(type, data) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].e(this.TAG, \"Loader error, code = \" + data.code + \", msg = \" + data.msg);\n\n this._flushStashBuffer(false);\n\n if (this._isEarlyEofReconnecting) {\n // Auto-reconnect for EarlyEof failed, throw UnrecoverableEarlyEof error to upper-layer\n this._isEarlyEofReconnecting = false;\n type = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderErrors\"].UNRECOVERABLE_EARLY_EOF;\n }\n\n switch (type) {\n case _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderErrors\"].EARLY_EOF:\n {\n if (!this._config.isLive) {\n // Do internal http reconnect if not live stream\n if (this._totalLength) {\n var nextFrom = this._currentRange.to + 1;\n\n if (nextFrom < this._totalLength) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'Connection lost, trying reconnect...');\n this._isEarlyEofReconnecting = true;\n\n this._internalSeek(nextFrom, false);\n }\n\n return;\n } // else: We don't know totalLength, throw UnrecoverableEarlyEof\n\n } // live stream: throw UnrecoverableEarlyEof error to upper-layer\n\n\n type = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderErrors\"].UNRECOVERABLE_EARLY_EOF;\n break;\n }\n\n case _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderErrors\"].UNRECOVERABLE_EARLY_EOF:\n case _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderErrors\"].CONNECTING_TIMEOUT:\n case _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderErrors\"].HTTP_STATUS_CODE_INVALID:\n case _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderErrors\"].EXCEPTION:\n break;\n }\n\n if (this._onError) {\n this._onError(type, data);\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_12__[\"RuntimeException\"]('IOException: ' + data.msg);\n }\n };\n\n _createClass(IOController, [{\n key: \"status\",\n get: function get() {\n return this._loader.status;\n }\n }, {\n key: \"extraData\",\n get: function get() {\n return this._extraData;\n },\n set: function set(data) {\n this._extraData = data;\n } // prototype: function onDataArrival(chunks: ArrayBuffer, byteStart: number): number\n\n }, {\n key: \"onDataArrival\",\n get: function get() {\n return this._onDataArrival;\n },\n set: function set(callback) {\n this._onDataArrival = callback;\n }\n }, {\n key: \"onSeeked\",\n get: function get() {\n return this._onSeeked;\n },\n set: function set(callback) {\n this._onSeeked = callback;\n } // prototype: function onError(type: number, info: {code: number, msg: string}): void\n\n }, {\n key: \"onError\",\n get: function get() {\n return this._onError;\n },\n set: function set(callback) {\n this._onError = callback;\n }\n }, {\n key: \"onComplete\",\n get: function get() {\n return this._onComplete;\n },\n set: function set(callback) {\n this._onComplete = callback;\n }\n }, {\n key: \"onRedirect\",\n get: function get() {\n return this._onRedirect;\n },\n set: function set(callback) {\n this._onRedirect = callback;\n }\n }, {\n key: \"onRecoveredEarlyEof\",\n get: function get() {\n return this._onRecoveredEarlyEof;\n },\n set: function set(callback) {\n this._onRecoveredEarlyEof = callback;\n }\n }, {\n key: \"currentURL\",\n get: function get() {\n return this._dataSource.url;\n }\n }, {\n key: \"hasRedirect\",\n get: function get() {\n return this._redirectedURL != null || this._dataSource.redirectedURL != undefined;\n }\n }, {\n key: \"currentRedirectedURL\",\n get: function get() {\n return this._redirectedURL || this._dataSource.redirectedURL;\n } // in KB/s\n\n }, {\n key: \"currentSpeed\",\n get: function get() {\n if (this._loaderClass === _xhr_range_loader_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]) {\n // SpeedSampler is inaccuracy if loader is RangeLoader\n return this._loader.currentSpeed;\n }\n\n return this._speedSampler.lastSecondKBps;\n }\n }, {\n key: \"loaderType\",\n get: function get() {\n return this._loader.type;\n }\n }]);\n\n return IOController;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (IOController);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/io/io-controller.js?"); | ||
| 3269 | + | ||
| 3270 | +/***/ }), | ||
| 3271 | + | ||
| 3272 | +/***/ "./src/FlvPlayer/flv.js/io/loader.js": | ||
| 3273 | +/*!*******************************************!*\ | ||
| 3274 | + !*** ./src/FlvPlayer/flv.js/io/loader.js ***! | ||
| 3275 | + \*******************************************/ | ||
| 3276 | +/*! exports provided: LoaderStatus, LoaderErrors, BaseLoader */ | ||
| 3277 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3278 | + | ||
| 3279 | +"use strict"; | ||
| 3280 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LoaderStatus\", function() { return LoaderStatus; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LoaderErrors\", function() { return LoaderErrors; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BaseLoader\", function() { return BaseLoader; });\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/FlvPlayer/flv.js/utils/exception.js\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar LoaderStatus = {\n kIdle: 0,\n kConnecting: 1,\n kBuffering: 2,\n kError: 3,\n kComplete: 4\n};\nvar LoaderErrors = {\n OK: 'OK',\n EXCEPTION: 'Exception',\n HTTP_STATUS_CODE_INVALID: 'HttpStatusCodeInvalid',\n CONNECTING_TIMEOUT: 'ConnectingTimeout',\n EARLY_EOF: 'EarlyEof',\n UNRECOVERABLE_EARLY_EOF: 'UnrecoverableEarlyEof'\n};\n/* Loader has callbacks which have following prototypes:\n * function onContentLengthKnown(contentLength: number): void\n * function onURLRedirect(url: string): void\n * function onDataArrival(chunk: ArrayBuffer, byteStart: number, receivedLength: number): void\n * function onError(errorType: number, errorInfo: {code: number, msg: string}): void\n * function onComplete(rangeFrom: number, rangeTo: number): void\n */\n\nvar BaseLoader = /*#__PURE__*/function () {\n function BaseLoader(typeName) {\n this._type = typeName || 'undefined';\n this._status = LoaderStatus.kIdle;\n this._needStash = false; // callbacks\n\n this._onContentLengthKnown = null;\n this._onURLRedirect = null;\n this._onDataArrival = null;\n this._onError = null;\n this._onComplete = null;\n }\n\n var _proto = BaseLoader.prototype;\n\n _proto.destroy = function destroy() {\n this._status = LoaderStatus.kIdle;\n this._onContentLengthKnown = null;\n this._onURLRedirect = null;\n this._onDataArrival = null;\n this._onError = null;\n this._onComplete = null;\n };\n\n _proto.isWorking = function isWorking() {\n return this._status === LoaderStatus.kConnecting || this._status === LoaderStatus.kBuffering;\n };\n\n // pure virtual\n _proto.open = function open(dataSource, range) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_0__[\"NotImplementedException\"]('Unimplemented abstract function!');\n };\n\n _proto.abort = function abort() {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_0__[\"NotImplementedException\"]('Unimplemented abstract function!');\n };\n\n _createClass(BaseLoader, [{\n key: \"type\",\n get: function get() {\n return this._type;\n }\n }, {\n key: \"status\",\n get: function get() {\n return this._status;\n }\n }, {\n key: \"needStashBuffer\",\n get: function get() {\n return this._needStash;\n }\n }, {\n key: \"onContentLengthKnown\",\n get: function get() {\n return this._onContentLengthKnown;\n },\n set: function set(callback) {\n this._onContentLengthKnown = callback;\n }\n }, {\n key: \"onURLRedirect\",\n get: function get() {\n return this._onURLRedirect;\n },\n set: function set(callback) {\n this._onURLRedirect = callback;\n }\n }, {\n key: \"onDataArrival\",\n get: function get() {\n return this._onDataArrival;\n },\n set: function set(callback) {\n this._onDataArrival = callback;\n }\n }, {\n key: \"onError\",\n get: function get() {\n return this._onError;\n },\n set: function set(callback) {\n this._onError = callback;\n }\n }, {\n key: \"onComplete\",\n get: function get() {\n return this._onComplete;\n },\n set: function set(callback) {\n this._onComplete = callback;\n }\n }]);\n\n return BaseLoader;\n}();\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/io/loader.js?"); | ||
| 3281 | + | ||
| 3282 | +/***/ }), | ||
| 3283 | + | ||
| 3284 | +/***/ "./src/FlvPlayer/flv.js/io/m3u8-loader.js": | ||
| 3285 | +/*!************************************************!*\ | ||
| 3286 | + !*** ./src/FlvPlayer/flv.js/io/m3u8-loader.js ***! | ||
| 3287 | + \************************************************/ | ||
| 3288 | +/*! exports provided: default */ | ||
| 3289 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3290 | + | ||
| 3291 | +"use strict"; | ||
| 3292 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/FlvPlayer/flv.js/utils/logger.js\");\n/* harmony import */ var _loader_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loader.js */ \"./src/FlvPlayer/flv.js/io/loader.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/FlvPlayer/flv.js/utils/exception.js\");\n/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../common/common */ \"./src/common/common.js\");\n/* harmony import */ var webworkify_webpack__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! webworkify-webpack */ \"./node_modules/webworkify-webpack/index.js\");\n/* harmony import */ var webworkify_webpack__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(webworkify_webpack__WEBPACK_IMPORTED_MODULE_4__);\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\nvar M3U8Loader = /*#__PURE__*/function (_BaseLoader) {\n _inheritsLoose(M3U8Loader, _BaseLoader);\n\n M3U8Loader.isSupported = function isSupported() {\n return true;\n };\n\n function M3U8Loader() {\n var _this;\n\n _this = _BaseLoader.call(this, 'm3u8-loader') || this;\n _this.TAG = 'M3U8Loader';\n _this._needStash = true;\n _this.url = '';\n _this.startPlayTime = 0;\n _this._requestAbort = false;\n _this._receivedLength = 0;\n _this.getNextFileFlag = true;\n _this.pauseDisplay = false;\n _this.totalDuration = 0;\n _this.seeking = false;\n return _this;\n }\n\n var _proto = M3U8Loader.prototype;\n\n _proto.destroy = function destroy() {\n this.abort();\n\n _BaseLoader.prototype.destroy.call(this);\n };\n\n _proto.GetM3u8TotalDuration = function GetM3u8TotalDuration() {\n return this.totalDuration;\n };\n\n _proto.createDownloadWorker = function createDownloadWorker() {\n if (this.downloadWorker) return; // 2023-09-05 新增ts\n\n var ext = this.url.substr(this.url.lastIndexOf('.') + 1);\n\n if (ext) {\n var extLowerCase = ext.toLowerCase();\n\n if (extLowerCase.indexOf('ts') > -1) {\n if (typeof Worker !== 'undefined') {\n var w;\n\n try {\n w = this.downloadWorker = webworkify_webpack__WEBPACK_IMPORTED_MODULE_4__(/*require.resolve*/(/*! ../../downloadTsWorker.js */ \"./src/FlvPlayer/downloadTsWorker.js\"));\n this.onwmsg = this.onWorkerMessage.bind(this);\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_3__[\"tGetTsStream\"],\n url: this.url,\n time: this.startPlayTime,\n t: 0\n };\n w.postMessage(objData); //, [objData.canvas]);\n\n w.addEventListener('message', this.onwmsg);\n\n w.onerror = function (event) {};\n } catch (err) {\n console.log('Create download Worker fail: ' + err);\n\n if (w) {// revoke the Object URL that was used to create demuxer worker, so as not to leak it\n //global.URL.revokeObjectURL(w.objectURL);\n }\n\n this.downloadWorker = undefined;\n }\n } else {\n console.log('Unsupport worker...');\n }\n\n return;\n }\n }\n\n if (typeof Worker !== 'undefined') {\n var _w;\n\n try {\n _w = this.downloadWorker = webworkify_webpack__WEBPACK_IMPORTED_MODULE_4__(/*require.resolve*/(/*! ../../downloadWorker.js */ \"./src/FlvPlayer/downloadWorker.js\"));\n this.onwmsg = this.onWorkerMessage.bind(this);\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_3__[\"tOpenStream\"],\n url: this.url,\n time: this.startPlayTime\n };\n\n _w.postMessage(objData); //, [objData.canvas]);\n\n\n _w.addEventListener('message', this.onwmsg);\n\n _w.onerror = function (event) {};\n } catch (err) {\n console.log('Create download Worker fail: ' + err);\n\n if (_w) {// revoke the Object URL that was used to create demuxer worker, so as not to leak it\n //global.URL.revokeObjectURL(w.objectURL);\n }\n\n this.downloadWorker = undefined;\n }\n } else {\n console.log('Unsupport worker...');\n }\n };\n\n _proto.setStartPlaySecs = function setStartPlaySecs(secs) {\n this.startPlayTime = secs;\n };\n\n _proto.open = function open(dataSource) {\n try {\n this.url = dataSource.url; //this.startPlayTime = dataSource.startPlaySecs;\n\n this.createDownloadWorker();\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kConnecting;\n } catch (e) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kError;\n var info = {\n code: e.code,\n msg: e.message\n };\n\n if (this._onError) {\n this._onError(_loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderErrors\"].EXCEPTION, info);\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__[\"RuntimeException\"](info.msg);\n }\n }\n };\n\n _proto.abort = function abort() {\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_3__[\"tCloseStream\"]\n };\n\n if (this.downloadWorker && this.downloadWorker !== undefined) {\n this.downloadWorker.postMessage(objData);\n }\n\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kComplete;\n };\n\n _proto._onWebSocketOpen = function _onWebSocketOpen(e) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kBuffering;\n };\n\n _proto._onWebSocketClose = function _onWebSocketClose(e) {\n if (this._requestAbort === true) {\n this._requestAbort = false;\n return;\n }\n\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kComplete;\n\n if (this._onComplete) {\n this._onComplete(0, this._receivedLength - 1);\n }\n };\n\n _proto.seek = function seek(seekValue, seekType) {\n this.pauseDisplay = false;\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_3__[\"tSeekStream\"],\n type: seekType,\n time: seekValue\n };\n\n if (this.downloadWorker && this.downloadWorker !== undefined) {\n this.downloadWorker.postMessage(objData);\n this.seeking = true; //console.log(\"seeking...\");\n } else {}\n };\n\n _proto.pause = function pause() {\n this.pauseDisplay = true;\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_3__[\"tPauseStream\"]\n };\n\n if (this.downloadWorker && this.downloadWorker !== undefined) {\n this.downloadWorker.postMessage(objData);\n }\n };\n\n _proto.resume = function resume() {\n this.pauseDisplay = false;\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_3__[\"tResumeStream\"]\n };\n\n if (this.downloadWorker && this.downloadWorker !== undefined) {\n this.downloadWorker.postMessage(objData);\n }\n };\n\n _proto.onWorkerMessage = function onWorkerMessage(ev) {\n var data = ev.data; //console.log(\"FlvPlayer::MainThread: recv data.\");\n\n switch (data.cmd) {\n case _common_common__WEBPACK_IMPORTED_MODULE_3__[\"tOpenStream\"]:\n //case common.tGetTsStreamRsp:\n {\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_3__[\"tGetTsStream\"],\n t: 0\n };\n this.downloadWorker.postMessage(objData);\n }\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_3__[\"tGetTsStreamRsp\"]:\n //��һ��ts�ļ��������, �ᴫ�ݸ���Ϣ\n this.getNextFileFlag = true;\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_3__[\"tGetTsComplete\"]:\n this.playComplete = true; //�ط����\n\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_3__[\"tDisconnect\"]:\n {\n console.log('disconnect..');\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_3__[\"tReOpenStream\"]\n };\n this.downloadWorker.postMessage(objData);\n }\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_3__[\"tCloseStream\"]:\n if (data.workerId == _common_common__WEBPACK_IMPORTED_MODULE_3__[\"DOWNLOAD_WORKER_ID\"]) {\n this.downloadWorker.terminate();\n this.downloadWorker = null; //console.log(\"download worker terminate\");\n } else if (data.workerId == _common_common__WEBPACK_IMPORTED_MODULE_3__[\"DECODE_WORKER_ID\"]) {\n this.decodeWorker.terminate();\n this.decodeWorker = null; //console.log(\"Decode worker terminate.\");\n\n if (this.soundPlayer) {\n this.soundPlayer.destroy();\n delete this.soundPlayer;\n this.soundPlayer = null;\n }\n\n if (this.webGLPlayer) {\n this.webGLPlayer.renderVideoFrame(null, 0, 0);\n }\n } else if (data.workerId == _common_common__WEBPACK_IMPORTED_MODULE_3__[\"RENDER_WORKER_ID\"]) {\n this.renderWorker.terminate();\n this.renderWorker = null; //console.log(\"Render worker terminate.\");\n }\n\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_3__[\"tFrameData\"]:\n if (data.workerId == _common_common__WEBPACK_IMPORTED_MODULE_3__[\"DOWNLOAD_WORKER_ID\"]) {\n //�����̴߳�����������, ת�������߳�\n //������HLS, ���Դ˴����ݵ������ڶ�ʱ���ڻ�dz���, �˴������������߳�, �������л��洦��\n //console.log(\"ts frame...\");\n var chunk = data.dat;\n var byteStart = this._receivedLength;\n this._receivedLength += chunk.byteLength;\n\n if (this._onDataArrival) {\n this._onDataArrival(chunk, byteStart, this._receivedLength);\n } //console.log(\"Get Next ts file...\");\n\n /*\n if (!this.pauseDisplay) {\n if (this.getNextFileFlag) {\n var objData = {\n cmd: common.tGetTsStream\n };\n this.downloadWorker.postMessage(objData);\n this.getNextFileFlag = false;\n }\n }\n */\n\n\n break;\n\n if (this.decodeWorker) {\n console.log('send to decode worker...');\n\n if (this.lastPTS > 0) {\n var n = (data.pts - this.lastPTS) / 90;\n\n if (n != this.intervalMs) {\n this.intervalMs = n;\n\n if (n >= 2) {\n n *= 0.9;\n }\n\n var objData = {\n cmd: _common_common__WEBPACK_IMPORTED_MODULE_3__[\"tVidInterval\"],\n interval: n\n };\n this.decodeWorker.postMessage(objData);\n }\n }\n\n this.lastPTS = data.pts; //var bufdata = new Uint8Array(data.dat);\n //var objData = {\n //\tcmd: common.tFrameData,\n //\tmediaType: data.mediaType,\n //\tcodecId: data.codecId,\n //\tplayTimeSec: data.playTimeSec,\n //\tsamplerate: data.samplerate,\n //\tchannelNum: data.channelNum,\n //\tbitPerSample: data.bitPerSample,\n //\tdat: bufdata\n //};\n //this.decodeWorker.postMessage(objData, [objData.dat.buffer]);\n\n this.decodeWorker.postMessage(data);\n }\n } else if (data.workerId == _common_common__WEBPACK_IMPORTED_MODULE_3__[\"DECODE_WORKER_ID\"]) {\n //�����ǰ��ͣ, ����ʾ\n if (this.pauseDisplay) break; //�����̴߳�����������, ������ʾ\n\n if (data.mediaType == 1) {\n //VIDEO\n this.canvas.width = data.width;\n this.canvas.height = data.height;\n this.webGLPlayer.renderVideoFrame(data.dat, data.width, data.height);\n this.OnUpdatePlayInfo(data.playTimeSec, data.frameNum);\n } else if (data.mediaType == 2) {\n //AUDIO\n if (this.soundPlayer == null) {\n this.OpenAudioPlayer(data.fmt, data.ch, data.samplerate);\n }\n\n if (this.soundPlayer != null) {\n this.soundPlayer.play(data.dat);\n }\n }\n }\n\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_3__[\"tMediaInfo\"]:\n this.totalDuration = data.duration;\n _common_common__WEBPACK_IMPORTED_MODULE_3__[\"setLiveStreamType\"](data.live);\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_3__[\"tGetTsStream\"]:\n if (!this.pauseDisplay) {\n if (this.getNextFileFlag) {\n this.downloadWorker.postMessage(data);\n this.getNextFileFlag = false;\n }\n }\n\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_3__[\"tSeekStream\"]:\n this.seeking = false; //console.log(\"seek ok.\");\n //data.type\n\n break;\n\n case _common_common__WEBPACK_IMPORTED_MODULE_3__[\"tResetMSE\"]:\n //data.fileSequence;\n if (this._onDataArrival) {\n this._receivedLength = 0;\n\n this._onDataArrival(null, data.fileSequence, 0);\n }\n\n break;\n\n default:\n break;\n }\n };\n\n _proto._dispatchArrayBuffer = function _dispatchArrayBuffer(arraybuffer) {\n var chunk = arraybuffer;\n var byteStart = this._receivedLength;\n this._receivedLength += chunk.byteLength;\n\n if (this._onDataArrival) {\n this._onDataArrival(chunk, byteStart, this._receivedLength);\n }\n };\n\n _proto._onWebSocketError = function _onWebSocketError(e) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kError;\n var info = {\n code: e.code,\n msg: e.message\n };\n\n if (this._onError) {\n this._onError(_loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderErrors\"].EXCEPTION, info);\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__[\"RuntimeException\"](info.msg);\n }\n };\n\n return M3U8Loader;\n}(_loader_js__WEBPACK_IMPORTED_MODULE_1__[\"BaseLoader\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (M3U8Loader);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/io/m3u8-loader.js?"); | ||
| 3293 | + | ||
| 3294 | +/***/ }), | ||
| 3295 | + | ||
| 3296 | +/***/ "./src/FlvPlayer/flv.js/io/param-seek-handler.js": | ||
| 3297 | +/*!*******************************************************!*\ | ||
| 3298 | + !*** ./src/FlvPlayer/flv.js/io/param-seek-handler.js ***! | ||
| 3299 | + \*******************************************************/ | ||
| 3300 | +/*! exports provided: default */ | ||
| 3301 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3302 | + | ||
| 3303 | +"use strict"; | ||
| 3304 | +eval("__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar ParamSeekHandler = /*#__PURE__*/function () {\n function ParamSeekHandler(paramStart, paramEnd) {\n this._startName = paramStart;\n this._endName = paramEnd;\n }\n\n var _proto = ParamSeekHandler.prototype;\n\n _proto.getConfig = function getConfig(baseUrl, range) {\n var url = baseUrl;\n\n if (range.from !== 0 || range.to !== -1) {\n var needAnd = true;\n\n if (url.indexOf('?') === -1) {\n url += '?';\n needAnd = false;\n }\n\n if (needAnd) {\n url += '&';\n }\n\n url += this._startName + \"=\" + range.from.toString();\n\n if (range.to !== -1) {\n url += \"&\" + this._endName + \"=\" + range.to.toString();\n }\n }\n\n return {\n url: url,\n headers: {}\n };\n };\n\n _proto.removeURLParameters = function removeURLParameters(seekedURL) {\n var baseURL = seekedURL.split('?')[0];\n var params = undefined;\n var queryIndex = seekedURL.indexOf('?');\n\n if (queryIndex !== -1) {\n params = seekedURL.substring(queryIndex + 1);\n }\n\n var resultParams = '';\n\n if (params != undefined && params.length > 0) {\n var pairs = params.split('&');\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i].split('=');\n var requireAnd = i > 0;\n\n if (pair[0] !== this._startName && pair[0] !== this._endName) {\n if (requireAnd) {\n resultParams += '&';\n }\n\n resultParams += pairs[i];\n }\n }\n }\n\n return resultParams.length === 0 ? baseURL : baseURL + '?' + resultParams;\n };\n\n return ParamSeekHandler;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ParamSeekHandler);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/io/param-seek-handler.js?"); | ||
| 3305 | + | ||
| 3306 | +/***/ }), | ||
| 3307 | + | ||
| 3308 | +/***/ "./src/FlvPlayer/flv.js/io/range-seek-handler.js": | ||
| 3309 | +/*!*******************************************************!*\ | ||
| 3310 | + !*** ./src/FlvPlayer/flv.js/io/range-seek-handler.js ***! | ||
| 3311 | + \*******************************************************/ | ||
| 3312 | +/*! exports provided: default */ | ||
| 3313 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3314 | + | ||
| 3315 | +"use strict"; | ||
| 3316 | +eval("__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar RangeSeekHandler = /*#__PURE__*/function () {\n function RangeSeekHandler(zeroStart) {\n this._zeroStart = zeroStart || false;\n }\n\n var _proto = RangeSeekHandler.prototype;\n\n _proto.getConfig = function getConfig(url, range) {\n var headers = {};\n\n if (range.from !== 0 || range.to !== -1) {\n var param;\n\n if (range.to !== -1) {\n param = \"bytes=\" + range.from.toString() + \"-\" + range.to.toString();\n } else {\n param = \"bytes=\" + range.from.toString() + \"-\";\n }\n\n headers['Range'] = param;\n } else if (this._zeroStart) {\n headers['Range'] = 'bytes=0-';\n }\n\n return {\n url: url,\n headers: headers\n };\n };\n\n _proto.removeURLParameters = function removeURLParameters(seekedURL) {\n return seekedURL;\n };\n\n return RangeSeekHandler;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (RangeSeekHandler);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/io/range-seek-handler.js?"); | ||
| 3317 | + | ||
| 3318 | +/***/ }), | ||
| 3319 | + | ||
| 3320 | +/***/ "./src/FlvPlayer/flv.js/io/rtsp-stream-loader.js": | ||
| 3321 | +/*!*******************************************************!*\ | ||
| 3322 | + !*** ./src/FlvPlayer/flv.js/io/rtsp-stream-loader.js ***! | ||
| 3323 | + \*******************************************************/ | ||
| 3324 | +/*! exports provided: default */ | ||
| 3325 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3326 | + | ||
| 3327 | +"use strict"; | ||
| 3328 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/FlvPlayer/flv.js/utils/logger.js\");\n/* harmony import */ var _loader_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loader.js */ \"./src/FlvPlayer/flv.js/io/loader.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/FlvPlayer/flv.js/utils/exception.js\");\n/* harmony import */ var _rtspclient_rtspHandler_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rtspclient/rtspHandler.js */ \"./src/FlvPlayer/flv.js/io/rtspclient/rtspHandler.js\");\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n // For RTSP over WebSocket live stream\n\nvar RtspStreamLoader = /*#__PURE__*/function (_BaseLoader) {\n _inheritsLoose(RtspStreamLoader, _BaseLoader);\n\n RtspStreamLoader.isSupported = function isSupported() {\n try {\n return typeof self.WebSocket !== 'undefined';\n } catch (e) {\n return false;\n }\n };\n\n function RtspStreamLoader() {\n var _this;\n\n _this = _BaseLoader.call(this, 'RtspStream-loader') || this;\n _this.TAG = 'RtspStreamLoader';\n _this._needStash = true;\n _this._ws = null;\n _this._RtspHandler = null;\n _this._requestAbort = false;\n _this._receivedLength = 0;\n _this._retryConnectTimes = 0;\n _this._triggerReconnectingNotify = true;\n _this._triggerReconnectSuccessNotify = true;\n _this._procMediaInfo = true;\n _this._heartbeatTime = 0;\n return _this;\n }\n\n var _proto = RtspStreamLoader.prototype;\n\n _proto.destroy = function destroy() {\n if (this._ws) {\n this.abort();\n }\n\n _BaseLoader.prototype.destroy.call(this);\n };\n\n _proto.rtspCallbackEvent = function rtspCallbackEvent(self, eventCode, redirURL, dataSource) {\n //console.log(\"EventCode: \" + eventCode + \" redirect:\" + redirURL);\n self.abort();\n dataSource.url = redirURL;\n self.open(dataSource);\n };\n\n _proto.open = function open(dataSource) {\n try {\n this._retryConnectTimes++; //֪ͨ�ϲ�, ��ǰ��������, 1Ϊ��һ������, ʹ�����еķ���_onDataArrival\n\n if (this._triggerReconnectingNotify) {\n this._triggerReconnectingNotify = false;\n\n if (this._onDataArrival) {\n this._onDataArrival(null, -this._retryConnectTimes, 0);\n }\n }\n\n this._triggerReconnectSuccessNotify = true;\n var wsURL = dataSource.url.replace('rtsp', 'ws');\n ;\n var ws = this._ws = new self.WebSocket(wsURL);\n this._RtspHandler = new _rtspclient_rtspHandler_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"](dataSource.url, ws, this.rtspCallbackEvent, this, dataSource); //ws.binaryType = 'arraybuffer';\n\n ws.onopen = this._onWebSocketOpen.bind(this);\n ws.onclose = this._onWebSocketClose.bind(this);\n ws.onmessage = this._onWebSocketMessage.bind(this);\n ws.onerror = this._onWebSocketError.bind(this); //console.log(\"ws.binaryType:\" + ws.binaryType);\n\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kConnecting;\n } catch (e) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kError;\n var info = {\n code: e.code,\n msg: e.message\n };\n\n if (this._onError) {\n this._onError(_loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderErrors\"].EXCEPTION, info);\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__[\"RuntimeException\"](info.msg);\n }\n }\n };\n\n _proto.abort = function abort() {\n //console.log(\"rtsp-stream-loader.js::stop\");\n var ws = this._ws;\n\n if (ws && (ws.readyState === 0 || ws.readyState === 1)) {\n // CONNECTING || OPEN\n this._requestAbort = true;\n ws.close();\n }\n\n this._ws = null;\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kComplete;\n };\n\n _proto.pause = function pause() {\n if (this._RtspHandler) {\n this._RtspHandler.sendPause();\n }\n };\n\n _proto.resume = function resume() {\n if (this._RtspHandler) {\n this._RtspHandler.sendPlay();\n }\n };\n\n _proto.scale = function scale(scaleValue) {\n if (this._RtspHandler) {\n this._RtspHandler.sendScale(scaleValue);\n }\n };\n\n _proto._onWebSocketOpen = function _onWebSocketOpen(e) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kBuffering; //Log.i(this.TAG, 'WebSocketOpen: ' + e.target.url);\n\n this._RtspHandler.sendDescribe();\n };\n\n _proto._onWebSocketClose = function _onWebSocketClose(e) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].e(this.TAG, 'onWebSocketClose');\n\n if (this._requestAbort === true) {\n this._requestAbort = false;\n return;\n }\n\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kComplete;\n\n if (this._onComplete) {\n //this._onComplete(0, this._receivedLength - 1);\n this._onComplete(-1, -1); //this._receivedLength - 1);\n\n }\n };\n\n _proto._onWebSocketMessage = function _onWebSocketMessage(e) {\n var _this2 = this;\n\n //Log.e(this.TAG, '_onWebSocketMessage: ' + e);\n if (e.data instanceof ArrayBuffer) {\n console.log('RTP Data1: ' + e.data); //this._ws.binaryType = 'arraybuffer';\n\n this._dispatchArrayBuffer(e.data);\n } else if (e.data instanceof Blob) {\n var reader = new FileReader();\n\n reader.onload = function () {\n //var data = new Uint8Array(reader.result);\n //console.log(\"RTP Data2: \" + data);\n _this2._dispatchArrayBuffer(reader.result);\n };\n\n reader.readAsArrayBuffer(e.data);\n } else if (e.data instanceof String) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].d(this.TAG, 'response:' + e.data);\n } else if (e.type == 'message') {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].d(this.TAG, 'response message:' + e.data);\n\n this._RtspHandler.parseResponseStr(e.data);\n } else {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kError;\n var info = {\n code: -1,\n msg: 'Unsupported WebSocket message type: ' + e.data.constructor.name\n };\n\n if (this._onError) {\n this._onError(_loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderErrors\"].EXCEPTION, info);\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__[\"RuntimeException\"](info.msg);\n }\n }\n };\n\n _proto._dispatchArrayBuffer = function _dispatchArrayBuffer(arraybuffer) {\n //var data = new Uint8Array(reader.result);\n //let chunk = new Uint8Array(arraybuffer);\n var chunk = arraybuffer;\n var byteStart = this._receivedLength;\n this._receivedLength += chunk.byteLength;\n\n if (this._procMediaInfo) {\n this._procMediaInfo = false;\n\n var mediaInfo = this._RtspHandler.getMediaInfo();\n\n if (this._onDataArrival) {\n this._onDataArrival(mediaInfo, byteStart, 1);\n }\n }\n\n if (this._heartbeatTime < 1) {\n this._heartbeatTime = Date.parse(new Date());\n }\n\n var timestamp = Date.parse(new Date());\n\n if ((timestamp - this._heartbeatTime) / 1000 > 10) {\n //��������\n this._heartbeatTime = timestamp; //this._RtspHandler.sendOptions();\n }\n\n if (this._onDataArrival) {\n this._onDataArrival(chunk, byteStart, this._receivedLength);\n } //֪ͨ�ϲ�, ��ǰ��������, 1Ϊ��һ������, ʹ�����еķ���_onDataArrival\n\n\n if (this._triggerReconnectSuccessNotify) {\n this._triggerReconnectSuccessNotify = false;\n\n if (this._onDataArrival) {\n //console.log(\"fetch-stream-loader.js::Connected:\" + this._retryConnectTimes);\n this._onDataArrival(null, this._retryConnectTimes, 0);\n\n this._retryConnectTimes++;\n }\n }\n };\n\n _proto._onWebSocketError = function _onWebSocketError(e) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].e(this.TAG, '_onWebSocketError: ' + e);\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kError;\n var info = {\n code: e.code,\n msg: e.message\n };\n\n if (this._onError) {\n this._onError(_loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderErrors\"].EXCEPTION, info);\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__[\"RuntimeException\"](info.msg);\n }\n };\n\n return RtspStreamLoader;\n}(_loader_js__WEBPACK_IMPORTED_MODULE_1__[\"BaseLoader\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (RtspStreamLoader);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/io/rtsp-stream-loader.js?"); | ||
| 3329 | + | ||
| 3330 | +/***/ }), | ||
| 3331 | + | ||
| 3332 | +/***/ "./src/FlvPlayer/flv.js/io/rtspclient/rtspHandler.js": | ||
| 3333 | +/*!***********************************************************!*\ | ||
| 3334 | + !*** ./src/FlvPlayer/flv.js/io/rtspclient/rtspHandler.js ***! | ||
| 3335 | + \***********************************************************/ | ||
| 3336 | +/*! exports provided: default */ | ||
| 3337 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3338 | + | ||
| 3339 | +"use strict"; | ||
| 3340 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/logger.js */ \"./src/FlvPlayer/flv.js/utils/logger.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/exception.js */ \"./src/FlvPlayer/flv.js/utils/exception.js\");\n/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../common/common */ \"./src/common/common.js\");\n\n\n\nvar RTSP_CLIENT_NAME = 'SYNC RTSP CLIENT v2020.07.10';\nvar RTSP_AUTH_TYPE_BASIC = 1;\nvar RTSP_AUTH_TYPE_DIGEST = 2;\nvar RTSP_STATE_INIT = 0;\nvar RTSP_STATE_OPTIONS = 1;\nvar RTSP_STATE_DESCRIBE = 2;\nvar RTSP_STATE_SETUP = 3;\nvar RTSP_STATE_PLAY = 4;\nvar RTSP_STATE_PAUSE = 5;\nvar RTSP_STATE_TEARDOWN = 6;\nvar RTSP_STATE_HEARTBEAT = 7;\n\nvar RtspHandler = /*#__PURE__*/function () {\n function RtspHandler(rtspUrl, ws, callbackPtr, userPtr, dataSource) {\n this.TAG = 'RtspHandler';\n this._ws = ws;\n this.rtspUrl = rtspUrl;\n this.rtspSeq = 1;\n this.state = RTSP_STATE_INIT;\n this.authType = RTSP_AUTH_TYPE_BASIC;\n this.username = '';\n this.realm = '';\n this.nonce = '';\n this.authBasicStr = '';\n this.authDigestStr = '';\n this.videoTrack = '';\n this.audioTrack = '';\n this.metadataTrack = '';\n this.contentBaseStr = '';\n this.setupStreamNum = 0;\n this.videoSessionId = '';\n this.audioSessionId = '';\n this.metadataSessionId = '';\n this.mediaInfo = {\n videoCodecId: 0,\n audioCodecId: 0\n };\n this.RTSP_VER_STR = 'RTSP/1.0';\n this.callbackPtr = callbackPtr;\n this.userPtr = userPtr;\n this.dataSource = dataSource;\n }\n\n var _proto = RtspHandler.prototype;\n\n _proto.destroy = function destroy() {};\n\n _proto.getMediaInfo = function getMediaInfo() {\n return this.mediaInfo;\n };\n\n _proto.sendPacket = function sendPacket(commandStr) {\n //Log.i(this.TAG, \"REQUEST: \" + commandStr);\n //console.log(\"current ws.binaryType:\" + this._ws.binaryType);\n //this._ws.binaryType = 'blob';\n this._ws.send(commandStr);\n };\n\n _proto.makeHeader = function makeHeader(cmd, track) {\n var pbuf = '';\n\n if (this.contentBaseStr == '') {\n pbuf = cmd + ' ' + this.rtspUrl;\n } else {\n pbuf = cmd + ' ' + this.contentBaseStr;\n }\n\n if (track && track != undefined) {\n var len = this.contentBaseStr.length;\n\n if (this.contentBaseStr[len - 1] != '/') {\n pbuf += '/' + track;\n } else {\n pbuf += track;\n }\n }\n\n pbuf += ' ' + this.RTSP_VER_STR + '\\r\\n';\n pbuf += 'CSeq: ' + this.rtspSeq + '\\r\\n';\n this.rtspSeq++;\n return pbuf;\n };\n\n _proto.getLineString = function getLineString(str, symbol) {\n var i = 0;\n var pbuf = '';\n\n for (i = 0; i < str.length; i++) {\n if (str[i] == '\\r' || str[i] == '\\n' || symbol && symbol != undefined && symbol == str[i] || i + 1 == str.length) {\n return pbuf;\n } else {\n pbuf += str[i];\n }\n }\n\n return pbuf;\n };\n\n _proto.FindStringByStr = function FindStringByStr(responseStr, indexStr) {\n var indexOfValue = responseStr.indexOf(indexStr);\n\n if (indexOfValue >= 0) {\n var mSubStr = responseStr.substr(indexOfValue);\n return mSubStr;\n }\n\n return null;\n };\n\n _proto.rtspParseDESCRIBE = function rtspParseDESCRIBE(responseStr) {\n var videoPayloadCodec = '';\n var videoPayloadValue = 0;\n var audioPayloadCodec = '';\n var audioPayloadValue = 0;\n var metadataPayloadCodec = '';\n var metadataPayloadValue = 0;\n var videoTrack = '';\n var audioTrack = '';\n var metadataTrack = '';\n var contentBaseStr = '';\n var indexOfValue = responseStr.indexOf('RTSP/1.0 401 Unauthorized');\n\n if (indexOfValue >= 0) {\n //console.log(\"Unauthorized\");\n var authType = responseStr.indexOf('WWW-Authenticate: Digest');\n\n if (authType > 0) {} else {\n authType = responseStr.indexOf('WWW-Authenticate: Basic');\n }\n\n return 401;\n }\n\n indexOfValue = responseStr.indexOf('RTSP/1.0 302');\n\n if (indexOfValue >= 0) {\n var url = '';\n indexOfValue = responseStr.indexOf('Location: ');\n\n if (indexOfValue >= 0) {\n var s = responseStr.substring(indexOfValue, responseStr.length);\n var endPos = s.indexOf('\\r', 0);\n url = s.substring(10, endPos); //console.log(\"Location:\" + url);\n }\n\n if (this.callbackPtr && this.userPtr) {\n this.callbackPtr(this.userPtr, 302, url, this.dataSource);\n }\n\n return 302;\n }\n\n indexOfValue = responseStr.indexOf('200 OK');\n\n if (indexOfValue < 0) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].e(this.TAG, 'DESCRIBE ERROR');\n return -1;\n } //var itemArray = responseStr.split(\"\\r\\n\");\n //var i=0;\n //for (i=0; i<itemArray.length; i++)\n //{\n //if (itemArray[i] ==\n //}\n\n\n var mString = this.FindStringByStr(responseStr, 'm=video'); //console.log(\"mVideo: \" + mString);\n\n if (mString) {\n var rtpmapStr = this.FindStringByStr(mString, 'a=rtpmap');\n\n if (rtpmapStr) {\n var lineStr = this.getLineString(rtpmapStr); //console.log(\"lineStr:\" + lineStr);\n\n var array = lineStr.split(' ');\n\n if (array.length > 0) {\n var payloadValue = array[0].substr(9); //console.log(\"payloadValue: \" + payloadValue);\n\n videoPayloadValue = parseInt(payloadValue);\n }\n\n if (array.length > 1) {\n var payloadCode = array[1].split('/');\n\n if (payloadCode.length > 0) {\n //console.log(\"payloadCode: \" + payloadCode[0]);\n videoPayloadCodec = payloadCode[0];\n }\n }\n }\n\n var trackIdStr = this.FindStringByStr(mString, 'trackID=');\n\n if (trackIdStr) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'not process');\n } else {\n trackIdStr = this.FindStringByStr(mString, 'a=control:');\n\n if (trackIdStr) {\n var lineStr = this.getLineString(trackIdStr);\n var arr = lineStr.split(':');\n\n if (arr.length > 1) {\n videoTrack = arr[1];\n }\n }\n }\n /*\n m=video 0 RTP/AVP 96\n c=IN IP4 0.0.0.0\n b=AS:2097152\n a=rtpmap:96 H264/90000\n a=fmtp:96 packetization-mode=1;sprop-parameter-sets=\n a=control:track1\n m=audio 0 RTP/AVP 0\n c=IN IP4 0.0.0.0\n b=AS:500\n a=control:track2\n */\n\n }\n\n mString = this.FindStringByStr(responseStr, 'm=audio'); //console.log(\"mAudio: \" + mString);\n\n if (mString) {\n var rtpmapStr = this.FindStringByStr(mString, 'a=rtpmap');\n\n if (rtpmapStr) {\n var lineStr = this.getLineString(rtpmapStr); //console.log(\"lineStr:\" + lineStr);\n\n var array = lineStr.split(' ');\n\n if (array.length > 0) {\n var payloadValue = array[0].substr(9); //console.log(\"payloadValue: \" + payloadValue);\n\n audioPayloadValue = parseInt(payloadValue);\n }\n\n if (array.length > 1) {\n var payloadCode = array[1].split('/');\n\n if (payloadCode.length > 0) {\n //console.log(\"payloadCode: \" + payloadCode[0]);\n audioPayloadCodec = payloadCode[0];\n }\n }\n }\n\n var trackIdStr = this.FindStringByStr(mString, 'trackID=');\n\n if (trackIdStr) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'not process');\n } else {\n trackIdStr = this.FindStringByStr(mString, 'a=control:');\n\n if (trackIdStr) {\n var lineStr = this.getLineString(trackIdStr);\n var arr = lineStr.split(':');\n\n if (arr.length > 1) {\n audioTrack = arr[1];\n }\n }\n }\n /*\n m=video 0 RTP/AVP 96\n c=IN IP4 0.0.0.0\n b=AS:2097152\n a=rtpmap:96 H264/90000\n a=fmtp:96 packetization-mode=1;sprop-parameter-sets=\n a=control:track1\n m=audio 0 RTP/AVP 0\n c=IN IP4 0.0.0.0\n b=AS:500\n a=control:track2\n */\n\n } //===============\n\n\n mString = this.FindStringByStr(responseStr, 'm=metadata');\n\n if (mString) {\n var rtpmapStr = this.FindStringByStr(mString, 'a=rtpmap');\n\n if (rtpmapStr) {\n var lineStr = this.getLineString(rtpmapStr); //console.log(\"lineStr:\" + lineStr);\n\n var array = lineStr.split(' ');\n\n if (array.length > 0) {\n var payloadValue = array[0].substr(9); //console.log(\"payloadValue: \" + payloadValue);\n\n metadataPayloadValue = parseInt(payloadValue);\n }\n\n if (array.length > 1) {\n var payloadCode = array[1].split('/');\n\n if (payloadCode.length > 0) {\n //console.log(\"payloadCode: \" + payloadCode[0]);\n metadataPayloadCodec = payloadCode[0];\n }\n }\n }\n\n var trackIdStr = this.FindStringByStr(mString, 'trackID=');\n\n if (trackIdStr) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'not process');\n } else {\n trackIdStr = this.FindStringByStr(mString, 'a=control:');\n\n if (trackIdStr) {\n var lineStr = this.getLineString(trackIdStr);\n var arr = lineStr.split(':');\n\n if (arr.length > 1) {\n metadataTrack = arr[1];\n }\n }\n }\n /*\n m=video 0 RTP/AVP 96\n c=IN IP4 0.0.0.0\n b=AS:2097152\n a=rtpmap:96 H264/90000\n a=fmtp:96 packetization-mode=1;sprop-parameter-sets=\n a=control:track1\n m=audio 0 RTP/AVP 0\n c=IN IP4 0.0.0.0\n b=AS:500\n a=control:track2\n */\n\n }\n\n mString = this.FindStringByStr(responseStr, 'Content-Base: ');\n\n if (mString) {\n var lineStr = this.getLineString(mString);\n contentBaseStr = lineStr.substr(14);\n } //console.log(\"Video : \" + videoTrack + \" \" + videoPayloadCodec + \" \" + videoPayloadValue);\n //console.log(\"Audio : \" + audioTrack);\n\n\n if (metadataTrack) {//console.log(\"metadata : \" + metadataTrack);\n } //console.log(\"Content-Base: \" + contentBaseStr);\n\n\n if (videoPayloadCodec == 'H264') {\n this.mediaInfo.videoCodecId = 7; //ʹ��FLV�еı� 7ΪH264, 12ΪH265\n\n _common_common__WEBPACK_IMPORTED_MODULE_2__[\"setCodecTypeStr\"]('H264');\n } else if (videoPayloadCodec == 'H265') {\n this.mediaInfo.videoCodecId = 12;\n _common_common__WEBPACK_IMPORTED_MODULE_2__[\"setCodecTypeStr\"]('H265');\n }\n\n if (audioPayloadCodec == 'MPEG4-GENERIC') {\n this.mediaInfo.audioCodecId = 10; //AAC\n } else if (audioPayloadCodec == 'PCMU') {\n this.mediaInfo.audioCodecId = 1;\n } else if (audioPayloadCodec == 'PCMA') {\n this.mediaInfo.audioCodecId = 2;\n }\n\n this.videoTrack = videoTrack;\n this.audioTrack = audioTrack;\n this.metadataTrack = metadataTrack;\n this.contentBaseStr = contentBaseStr;\n return 0;\n };\n\n _proto.rtspParseSETUP = function rtspParseSETUP(responseStr) {\n var sessionId = '0';\n var mString = this.FindStringByStr(responseStr, 'Session:');\n\n if (mString) {\n var lineStr = this.getLineString(mString);\n var arr = lineStr.split(';');\n\n if (arr.length > 0) {\n //\"Session: 54C0C122;timeout=65\"\n var s = arr[0].substr(9);\n sessionId = s;\n }\n\n if (this.setupStreamNum == 1) {\n this.videoSessionId = sessionId; //console.log(\"Video SessionId: \" + this.videoSessionId);\n } else if (this.setupStreamNum == 2) {\n this.audioSessionId = sessionId; //console.log(\"Audio SessionId: \" + this.audioSessionId);\n } else if (this.setupStreamNum == 3) {\n this.metadataSessionId = sessionId; //console.log(\"Metadata SessionId: \" + this.audioSessionId);\n }\n }\n };\n\n _proto.rtspParsePLAY = function rtspParsePLAY(responseStr) {\n var sessionId = '0';\n var indexOfValue = responseStr.indexOf('200 OK');\n\n if (indexOfValue < 0) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].e(this.TAG, 'PLAY ERROR: ' + responseStr);\n return -1;\n }\n\n var mString = this.FindStringByStr(responseStr, 'Session:');\n\n if (mString) {\n var lineStr = this.getLineString(mString);\n var arr = lineStr.split(';');\n\n if (arr.length > 0) {\n //\"Session: 54C0C122;timeout=65\"\n var s = arr[0].substr(9);\n sessionId = s;\n }\n\n this.videoSessionId = sessionId; //console.log(\"Update Video SessionId: \" + this.videoSessionId);\n }\n\n this.state = RTSP_STATE_HEARTBEAT;\n };\n\n _proto.sendOptions = function sendOptions() {\n var pbuf = this.makeHeader('OPTIONS', null);\n\n if (this.authType == RTSP_AUTH_TYPE_BASIC) {\n pbuf += 'WWW-Authorization: Basic ' + this.authBasicStr + '\\r\\n';\n } else if (this.authType == RTSP_AUTH_TYPE_DIGEST) {\n pbuf += 'WWW-Authorization: Digest ';\n pbuf += 'username = \"' + this.username + '\"' + ',';\n pbuf += 'realm = \"' + this.realm + '\"' + ',';\n pbuf += 'nonce = \"' + this.nonce + '\"' + ',';\n pbuf += 'uri = \"' + this.rtspUrl + '\"' + ',';\n pbuf += 'response = \"' + this.authDigestStr + '\"' + '\\r\\n';\n } //pbuf += \"User-Agent: \" + RTSP_CLIENT_NAME + \"\\r\\n\";\n\n\n pbuf += '\\r\\n';\n this.sendPacket(pbuf); //this.state = RTSP_STATE_OPTIONS;\n };\n\n _proto.sendDescribe = function sendDescribe() {\n var pbuf = this.makeHeader('DESCRIBE', null);\n\n if (this.authType == RTSP_AUTH_TYPE_BASIC) {\n pbuf += 'WWW-Authorization: Basic ' + this.authBasicStr + '\\r\\n';\n } else if (this.authType == RTSP_AUTH_TYPE_DIGEST) {\n pbuf += 'WWW-Authorization: Digest ';\n pbuf += 'username = \"' + this.username + '\"' + ',';\n pbuf += 'realm = \"' + this.realm + '\"' + ',';\n pbuf += 'nonce = \"' + this.nonce + '\"' + ',';\n pbuf += 'uri = \"' + this.rtspUrl + '\"' + ',';\n pbuf += 'response = \"' + this.authDigestStr + '\"' + '\\r\\n';\n }\n\n pbuf += 'Accept: application/sdp\\r\\n';\n pbuf += 'User-Agent: ' + RTSP_CLIENT_NAME + '\\r\\n';\n pbuf += '\\r\\n';\n this.sendPacket(pbuf);\n this.state = RTSP_STATE_DESCRIBE;\n };\n\n _proto.sendSetup = function sendSetup(trackId) {\n //console.log(\"send SETUP: \" + trackId);\n var pbuf = this.makeHeader('SETUP', trackId);\n\n if (this.videoSessionId != '') {\n pbuf += 'Session: ' + this.videoSessionId + '\\r\\n';\n }\n /*\n if (this.authType == RTSP_AUTH_TYPE_BASIC) {\n pbuf += \"WWW-Authorization: Basic \" + this.authBasicStr + \"\\r\\n\";\n }\n else if (this.authType == RTSP_AUTH_TYPE_DIGEST) {\n pbuf += \"WWW-Authorization: Digest \";\n pbuf += \"username = \\\"\" + this.username + \"\\\"\" + \",\";\n pbuf += \"realm = \\\"\" + this.realm + \"\\\"\" + \",\";\n pbuf += \"nonce = \\\"\" + this.nonce + \"\\\"\" + \",\";\n pbuf += \"uri = \\\"\" + this.rtspUrl + \"\\\"\" + \",\";\n pbuf += \"response = \\\"\" + this.authDigestStr + \"\\\"\" + \"\\r\\n\";\n }\n */\n\n\n pbuf += 'User-Agent: ' + RTSP_CLIENT_NAME + '\\r\\n'; //��֧��TCP\n\n if (trackId == this.videoTrack) {\n pbuf += 'Transport: RTP/AVP/TCP;unicast;interleaved=0-1\\r\\n\\r\\n';\n\n if (this.audioTrack != '') {//this.state = RTSP_STATE_SETUP;\n } else {//this.state = RTSP_STATE_PLAY;\n }\n\n this.setupStreamNum++;\n } else if (trackId == this.audioTrack) {\n pbuf += 'Transport: RTP/AVP/TCP;unicast;interleaved=2-3\\r\\n\\r\\n'; //this.state = RTSP_STATE_PLAY;\n\n this.setupStreamNum++;\n } else if (trackId == this.metadataTrack) {\n pbuf += 'Transport: RTP/AVP/TCP;unicast;interleaved=4-5\\r\\n\\r\\n'; //this.state = RTSP_STATE_PLAY;\n\n this.setupStreamNum++;\n }\n\n this.state = RTSP_STATE_SETUP;\n this.sendPacket(pbuf);\n };\n\n _proto.sendPlay = function sendPlay() {\n var pbuf = this.makeHeader('PLAY', null);\n pbuf += 'Session: ' + this.videoSessionId + '\\r\\n';\n\n if (this.authType == RTSP_AUTH_TYPE_BASIC) {\n pbuf += 'WWW-Authorization: Basic ' + this.authBasicStr + '\\r\\n';\n } else if (this.authType == RTSP_AUTH_TYPE_DIGEST) {\n pbuf += 'WWW-Authorization: Digest ';\n pbuf += 'username = \"' + this.username + '\"' + ',';\n pbuf += 'realm = \"' + this.realm + '\"' + ',';\n pbuf += 'nonce = \"' + this.nonce + '\"' + ',';\n pbuf += 'uri = \"' + this.rtspUrl + '\"' + ',';\n pbuf += 'response = \"' + this.authDigestStr + '\"' + '\\r\\n';\n }\n\n pbuf += 'Range: npt=0.000-\\r\\n\\r\\n';\n this.state = RTSP_STATE_PLAY;\n this.sendPacket(pbuf);\n };\n\n _proto.sendPause = function sendPause() {\n console.log('rtsp pause...');\n var pbuf = this.makeHeader('PAUSE', null);\n pbuf += 'Session: ' + this.videoSessionId + '\\r\\n';\n\n if (this.authType == RTSP_AUTH_TYPE_BASIC) {\n pbuf += 'WWW-Authorization: Basic ' + this.authBasicStr + '\\r\\n';\n } else if (this.authType == RTSP_AUTH_TYPE_DIGEST) {\n pbuf += 'WWW-Authorization: Digest ';\n pbuf += 'username = \"' + this.username + '\"' + ',';\n pbuf += 'realm = \"' + this.realm + '\"' + ',';\n pbuf += 'nonce = \"' + this.nonce + '\"' + ',';\n pbuf += 'uri = \"' + this.rtspUrl + '\"' + ',';\n pbuf += 'response = \"' + this.authDigestStr + '\"' + '\\r\\n';\n }\n\n this.state = RTSP_STATE_PAUSE; //const buffer = new ArrayBuffer(pbuf.length);\n //let blob = new Blob([pbuf], {type:\"text/plain\"});\n\n this.sendPacket(pbuf);\n };\n\n _proto.sendScale = function sendScale(scaleValue) {\n var pbuf = this.makeHeader('PLAY', null);\n pbuf += 'Session: ' + this.videoSessionId + '\\r\\n';\n\n if (this.authType == RTSP_AUTH_TYPE_BASIC) {\n pbuf += 'WWW-Authorization: Basic ' + this.authBasicStr + '\\r\\n';\n } else if (this.authType == RTSP_AUTH_TYPE_DIGEST) {\n pbuf += 'WWW-Authorization: Digest ';\n pbuf += 'username = \"' + this.username + '\"' + ',';\n pbuf += 'realm = \"' + this.realm + '\"' + ',';\n pbuf += 'nonce = \"' + this.nonce + '\"' + ',';\n pbuf += 'uri = \"' + this.rtspUrl + '\"' + ',';\n pbuf += 'response = \"' + this.authDigestStr + '\"' + '\\r\\n';\n }\n\n pbuf += 'Scale: ' + scaleValue + '\\r\\n';\n pbuf += 'Range: npt=0.000-\\r\\n\\r\\n';\n this.state = RTSP_STATE_PLAY;\n this.sendPacket(pbuf);\n };\n\n _proto.abort = function abort() {\n var ws = this._ws;\n\n if (ws && (ws.readyState === 0 || ws.readyState === 1)) {\n // CONNECTING || OPEN\n this._requestAbort = true;\n ws.close();\n }\n\n this._ws = null;\n this._status = LoaderStatus.kComplete;\n };\n\n _proto._onWebSocketOpen = function _onWebSocketOpen(e) {\n this._status = LoaderStatus.kBuffering;\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].e(this.TAG, '_onWebSocketOpen: ' + e.target.url); //this._ws.send(\"DESCRIBE rtsp://192.168.0.106/ch1\\r\\n\");\n };\n\n _proto._onWebSocketClose = function _onWebSocketClose(e) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].e(this.TAG, 'onWebSocketClose');\n\n if (this._requestAbort === true) {\n this._requestAbort = false;\n return;\n }\n\n this._status = LoaderStatus.kComplete;\n\n if (this._onComplete) {\n //this._onComplete(0, this._receivedLength - 1);\n this._onComplete(-1, -1); //this._receivedLength - 1);\n\n }\n };\n\n _proto._onWebSocketMessage = function _onWebSocketMessage(e) {\n var _this = this;\n\n //Log.e(this.TAG, '_onWebSocketMessage: ' + e);\n if (e.data instanceof ArrayBuffer) {\n this._dispatchArrayBuffer(e.data);\n } else if (e.data instanceof Blob) {\n var reader = new FileReader();\n\n reader.onload = function () {\n _this._dispatchArrayBuffer(reader.result);\n };\n\n reader.readAsArrayBuffer(e.data);\n } else {\n this._status = LoaderStatus.kError;\n var info = {\n code: -1,\n msg: 'Unsupported WebSocket message type: ' + e.data.constructor.name\n };\n\n if (this._onError) {\n this._onError(LoaderErrors.EXCEPTION, info);\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_1__[\"RuntimeException\"](info.msg);\n }\n }\n };\n\n _proto._dispatchArrayBuffer = function _dispatchArrayBuffer(arraybuffer) {\n var chunk = arraybuffer;\n var byteStart = this._receivedLength;\n this._receivedLength += chunk.byteLength;\n\n if (this._onDataArrival) {\n this._onDataArrival(chunk, byteStart, this._receivedLength);\n } //֪ͨ�ϲ�, ��ǰ��������, 1Ϊ��һ������, ʹ�����еķ���_onDataArrival\n\n\n if (this._triggerReconnectSuccessNotify) {\n this._triggerReconnectSuccessNotify = false;\n\n if (this._onDataArrival) {\n //console.log(\"fetch-stream-loader.js::Connected:\" + this._retryConnectTimes);\n this._onDataArrival(null, this._retryConnectTimes, 0);\n\n this._retryConnectTimes++;\n }\n }\n };\n\n _proto._onWebSocketError = function _onWebSocketError(e) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].e(this.TAG, '_onWebSocketError: ' + e);\n this._status = LoaderStatus.kError;\n var info = {\n code: e.code,\n msg: e.message\n };\n\n if (this._onError) {\n this._onError(LoaderErrors.EXCEPTION, info);\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_1__[\"RuntimeException\"](info.msg);\n }\n };\n\n _proto.parseResponseStr = function parseResponseStr(responseStr) {\n //Log.d(this.TAG, \"RESPONSE: \" + responseStr);\n //console.log(\"RESPONSE: \" + responseStr);\n if (this.state == RTSP_STATE_DESCRIBE) {\n var ret = this.rtspParseDESCRIBE(responseStr); //console.log(\"contentBaseStr: \" + this.contentBaseStr);\n\n if (ret == 0) {\n this.sendSetup(this.videoTrack);\n }\n } else if (this.state == RTSP_STATE_SETUP) {\n this.rtspParseSETUP(responseStr);\n\n if (this.setupStreamNum < 2 && this.audioTrack != '') {\n this.sendSetup(this.audioTrack);\n } else if (this.setupStreamNum < 3 && this.metadataTrack != '') {\n this.sendSetup(this.metadataTrack);\n } else {\n this.sendPlay();\n }\n } else if (this.state == RTSP_STATE_PLAY) {\n this.rtspParsePLAY(responseStr);\n } else if (this.state == RTSP_STATE_HEARTBEAT) {//console.log(\"recv heartbeat data...\" + responseStr);\n } else if (this.state == RTSP_STATE_PAUSE) {\n console.log('recv pause data...' + responseStr);\n }\n };\n\n return RtspHandler;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (RtspHandler);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/io/rtspclient/rtspHandler.js?"); | ||
| 3341 | + | ||
| 3342 | +/***/ }), | ||
| 3343 | + | ||
| 3344 | +/***/ "./src/FlvPlayer/flv.js/io/speed-sampler.js": | ||
| 3345 | +/*!**************************************************!*\ | ||
| 3346 | + !*** ./src/FlvPlayer/flv.js/io/speed-sampler.js ***! | ||
| 3347 | + \**************************************************/ | ||
| 3348 | +/*! exports provided: default */ | ||
| 3349 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3350 | + | ||
| 3351 | +"use strict"; | ||
| 3352 | +eval("__webpack_require__.r(__webpack_exports__);\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Utility class to calculate realtime network I/O speed\nvar SpeedSampler = /*#__PURE__*/function () {\n function SpeedSampler() {\n // milliseconds\n this._firstCheckpoint = 0;\n this._lastCheckpoint = 0;\n this._intervalBytes = 0;\n this._totalBytes = 0;\n this._lastSecondBytes = 0; // compatibility detection\n\n if (self.performance && self.performance.now) {\n this._now = self.performance.now.bind(self.performance);\n } else {\n this._now = Date.now;\n }\n }\n\n var _proto = SpeedSampler.prototype;\n\n _proto.reset = function reset() {\n this._firstCheckpoint = this._lastCheckpoint = 0;\n this._totalBytes = this._intervalBytes = 0;\n this._lastSecondBytes = 0;\n };\n\n _proto.addBytes = function addBytes(bytes) {\n if (this._firstCheckpoint === 0) {\n this._firstCheckpoint = this._now();\n this._lastCheckpoint = this._firstCheckpoint;\n this._intervalBytes += bytes;\n this._totalBytes += bytes;\n } else if (this._now() - this._lastCheckpoint < 1000) {\n this._intervalBytes += bytes;\n this._totalBytes += bytes;\n } else {\n // duration >= 1000\n this._lastSecondBytes = this._intervalBytes;\n this._intervalBytes = bytes;\n this._totalBytes += bytes;\n this._lastCheckpoint = this._now();\n }\n };\n\n _createClass(SpeedSampler, [{\n key: \"currentKBps\",\n get: function get() {\n this.addBytes(0);\n var durationSeconds = (this._now() - this._lastCheckpoint) / 1000;\n if (durationSeconds == 0) durationSeconds = 1;\n return this._intervalBytes / durationSeconds / 1024;\n }\n }, {\n key: \"lastSecondKBps\",\n get: function get() {\n this.addBytes(0);\n\n if (this._lastSecondBytes !== 0) {\n return this._lastSecondBytes / 1024;\n } else {\n // lastSecondBytes === 0\n if (this._now() - this._lastCheckpoint >= 500) {\n // if time interval since last checkpoint has exceeded 500ms\n // the speed is nearly accurate\n return this.currentKBps;\n } else {\n // We don't know\n return 0;\n }\n }\n }\n }, {\n key: \"averageKBps\",\n get: function get() {\n var durationSeconds = (this._now() - this._firstCheckpoint) / 1000;\n return this._totalBytes / durationSeconds / 1024;\n }\n }]);\n\n return SpeedSampler;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (SpeedSampler);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/io/speed-sampler.js?"); | ||
| 3353 | + | ||
| 3354 | +/***/ }), | ||
| 3355 | + | ||
| 3356 | +/***/ "./src/FlvPlayer/flv.js/io/websocket-loader.js": | ||
| 3357 | +/*!*****************************************************!*\ | ||
| 3358 | + !*** ./src/FlvPlayer/flv.js/io/websocket-loader.js ***! | ||
| 3359 | + \*****************************************************/ | ||
| 3360 | +/*! exports provided: default */ | ||
| 3361 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3362 | + | ||
| 3363 | +"use strict"; | ||
| 3364 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/FlvPlayer/flv.js/utils/logger.js\");\n/* harmony import */ var _loader_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loader.js */ \"./src/FlvPlayer/flv.js/io/loader.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/FlvPlayer/flv.js/utils/exception.js\");\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n // For FLV over WebSocket live stream\n\nvar WebSocketLoader = /*#__PURE__*/function (_BaseLoader) {\n _inheritsLoose(WebSocketLoader, _BaseLoader);\n\n WebSocketLoader.isSupported = function isSupported() {\n try {\n return typeof self.WebSocket !== 'undefined';\n } catch (e) {\n return false;\n }\n };\n\n function WebSocketLoader() {\n var _this;\n\n _this = _BaseLoader.call(this, 'websocket-loader') || this;\n _this.TAG = 'WebSocketLoader';\n _this._needStash = true;\n _this._ws = null;\n _this._requestAbort = false;\n _this._receivedLength = 0;\n _this._retryConnectTimes = 0;\n _this._triggerReconnectingNotify = true;\n _this._triggerReconnectSuccessNotify = true;\n return _this;\n }\n\n var _proto = WebSocketLoader.prototype;\n\n _proto.destroy = function destroy() {\n if (this._ws) {\n this.abort();\n }\n\n _BaseLoader.prototype.destroy.call(this);\n };\n\n _proto.open = function open(dataSource) {\n try {\n this._retryConnectTimes++; //֪ͨ�ϲ�, ��ǰ��������, 1Ϊ��һ������, ʹ�����еķ���_onDataArrival\n\n if (this._triggerReconnectingNotify) {\n this._triggerReconnectingNotify = false;\n\n if (this._onDataArrival) {\n this._onDataArrival(null, -this._retryConnectTimes, 0);\n }\n }\n\n this._triggerReconnectSuccessNotify = true;\n var ws = this._ws = new self.WebSocket(dataSource.url);\n ws.binaryType = 'arraybuffer';\n ws.onopen = this._onWebSocketOpen.bind(this);\n ws.onclose = this._onWebSocketClose.bind(this);\n ws.onmessage = this._onWebSocketMessage.bind(this);\n ws.onerror = this._onWebSocketError.bind(this);\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kConnecting;\n } catch (e) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kError;\n var info = {\n code: e.code,\n msg: e.message\n };\n\n if (this._onError) {\n this._onError(_loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderErrors\"].EXCEPTION, info);\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__[\"RuntimeException\"](info.msg);\n }\n }\n };\n\n _proto.abort = function abort() {\n var ws = this._ws;\n\n if (ws && (ws.readyState === 0 || ws.readyState === 1)) {\n // CONNECTING || OPEN\n this._requestAbort = true;\n ws.close();\n }\n\n this._ws = null;\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kComplete;\n };\n\n _proto._onWebSocketOpen = function _onWebSocketOpen(e) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kBuffering;\n };\n\n _proto._onWebSocketClose = function _onWebSocketClose(e) {\n if (this._requestAbort === true) {\n this._requestAbort = false;\n return;\n }\n\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kComplete;\n\n if (this._onComplete) {\n //this._onComplete(0, this._receivedLength - 1);\n this._onComplete(-1, -1); //this._receivedLength - 1);\n\n }\n };\n\n _proto._onWebSocketMessage = function _onWebSocketMessage(e) {\n var _this2 = this;\n\n if (e.data instanceof ArrayBuffer) {\n this._dispatchArrayBuffer(e.data);\n } else if (e.data instanceof Blob) {\n var reader = new FileReader();\n\n reader.onload = function () {\n _this2._dispatchArrayBuffer(reader.result);\n };\n\n reader.readAsArrayBuffer(e.data);\n } else {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kError;\n var info = {\n code: -1,\n msg: 'Unsupported WebSocket message type: ' + e.data.constructor.name\n };\n\n if (this._onError) {\n this._onError(_loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderErrors\"].EXCEPTION, info);\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__[\"RuntimeException\"](info.msg);\n }\n }\n };\n\n _proto._dispatchArrayBuffer = function _dispatchArrayBuffer(arraybuffer) {\n var chunk = arraybuffer;\n var byteStart = this._receivedLength;\n this._receivedLength += chunk.byteLength;\n\n if (this._onDataArrival) {\n this._onDataArrival(chunk, byteStart, this._receivedLength);\n } //֪ͨ�ϲ�, ��ǰ��������, 1Ϊ��һ������, ʹ�����еķ���_onDataArrival\n\n\n if (this._triggerReconnectSuccessNotify) {\n this._triggerReconnectSuccessNotify = false;\n\n if (this._onDataArrival) {\n //console.log(\"fetch-stream-loader.js::Connected:\" + this._retryConnectTimes);\n this._onDataArrival(null, this._retryConnectTimes, 0);\n\n this._retryConnectTimes++;\n }\n }\n };\n\n _proto._onWebSocketError = function _onWebSocketError(e) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kError;\n var info = {\n code: e.code,\n msg: e.message\n };\n\n if (this._onError) {\n this._onError(_loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderErrors\"].EXCEPTION, info);\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__[\"RuntimeException\"](info.msg);\n }\n };\n\n return WebSocketLoader;\n}(_loader_js__WEBPACK_IMPORTED_MODULE_1__[\"BaseLoader\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (WebSocketLoader);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/io/websocket-loader.js?"); | ||
| 3365 | + | ||
| 3366 | +/***/ }), | ||
| 3367 | + | ||
| 3368 | +/***/ "./src/FlvPlayer/flv.js/io/xhr-moz-chunked-loader.js": | ||
| 3369 | +/*!***********************************************************!*\ | ||
| 3370 | + !*** ./src/FlvPlayer/flv.js/io/xhr-moz-chunked-loader.js ***! | ||
| 3371 | + \***********************************************************/ | ||
| 3372 | +/*! exports provided: default */ | ||
| 3373 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3374 | + | ||
| 3375 | +"use strict"; | ||
| 3376 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/FlvPlayer/flv.js/utils/logger.js\");\n/* harmony import */ var _loader_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loader.js */ \"./src/FlvPlayer/flv.js/io/loader.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/FlvPlayer/flv.js/utils/exception.js\");\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n // For FireFox browser which supports `xhr.responseType = 'moz-chunked-arraybuffer'`\n\nvar MozChunkedLoader = /*#__PURE__*/function (_BaseLoader) {\n _inheritsLoose(MozChunkedLoader, _BaseLoader);\n\n MozChunkedLoader.isSupported = function isSupported() {\n try {\n var xhr = new XMLHttpRequest(); // Firefox 37- requires .open() to be called before setting responseType\n\n xhr.open('GET', 'https://example.com', true);\n xhr.responseType = 'moz-chunked-arraybuffer';\n return xhr.responseType === 'moz-chunked-arraybuffer';\n } catch (e) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w('MozChunkedLoader', e.message);\n return false;\n }\n };\n\n function MozChunkedLoader(seekHandler, config) {\n var _this;\n\n _this = _BaseLoader.call(this, 'xhr-moz-chunked-loader') || this;\n _this.TAG = 'MozChunkedLoader';\n _this._seekHandler = seekHandler;\n _this._config = config;\n _this._needStash = true;\n _this._xhr = null;\n _this._requestAbort = false;\n _this._contentLength = null;\n _this._receivedLength = 0;\n return _this;\n }\n\n var _proto = MozChunkedLoader.prototype;\n\n _proto.destroy = function destroy() {\n if (this.isWorking()) {\n this.abort();\n }\n\n if (this._xhr) {\n this._xhr.onreadystatechange = null;\n this._xhr.onprogress = null;\n this._xhr.onloadend = null;\n this._xhr.onerror = null;\n this._xhr = null;\n }\n\n _BaseLoader.prototype.destroy.call(this);\n };\n\n _proto.open = function open(dataSource, range) {\n this._dataSource = dataSource;\n this._range = range;\n var sourceURL = dataSource.url;\n\n if (this._config.reuseRedirectedURL && dataSource.redirectedURL != undefined) {\n sourceURL = dataSource.redirectedURL;\n }\n\n var seekConfig = this._seekHandler.getConfig(sourceURL, range);\n\n this._requestURL = seekConfig.url;\n var xhr = this._xhr = new XMLHttpRequest();\n xhr.open('GET', seekConfig.url, true);\n xhr.responseType = 'moz-chunked-arraybuffer';\n xhr.onreadystatechange = this._onReadyStateChange.bind(this);\n xhr.onprogress = this._onProgress.bind(this);\n xhr.onloadend = this._onLoadEnd.bind(this);\n xhr.onerror = this._onXhrError.bind(this); // cors is auto detected and enabled by xhr\n // withCredentials is disabled by default\n\n if (dataSource.withCredentials) {\n xhr.withCredentials = true;\n }\n\n if (typeof seekConfig.headers === 'object') {\n var headers = seekConfig.headers;\n\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n } // add additional headers\n\n\n if (typeof this._config.headers === 'object') {\n var _headers = this._config.headers;\n\n for (var _key in _headers) {\n if (_headers.hasOwnProperty(_key)) {\n xhr.setRequestHeader(_key, _headers[_key]);\n }\n }\n }\n\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kConnecting;\n xhr.send();\n };\n\n _proto.abort = function abort() {\n this._requestAbort = true;\n\n if (this._xhr) {\n this._xhr.abort();\n }\n\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kComplete;\n };\n\n _proto._onReadyStateChange = function _onReadyStateChange(e) {\n var xhr = e.target;\n\n if (xhr.readyState === 2) {\n // HEADERS_RECEIVED\n if (xhr.responseURL != undefined && xhr.responseURL !== this._requestURL) {\n if (this._onURLRedirect) {\n var redirectedURL = this._seekHandler.removeURLParameters(xhr.responseURL);\n\n this._onURLRedirect(redirectedURL);\n }\n }\n\n if (xhr.status !== 0 && (xhr.status < 200 || xhr.status > 299)) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kError;\n\n if (this._onError) {\n this._onError(_loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderErrors\"].HTTP_STATUS_CODE_INVALID, {\n code: xhr.status,\n msg: xhr.statusText\n });\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__[\"RuntimeException\"]('MozChunkedLoader: Http code invalid, ' + xhr.status + ' ' + xhr.statusText);\n }\n } else {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kBuffering;\n }\n }\n };\n\n _proto._onProgress = function _onProgress(e) {\n if (this._status === _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kError) {\n // Ignore error response\n return;\n }\n\n if (this._contentLength === null) {\n if (e.total !== null && e.total !== 0) {\n this._contentLength = e.total;\n\n if (this._onContentLengthKnown) {\n this._onContentLengthKnown(this._contentLength);\n }\n }\n }\n\n var chunk = e.target.response;\n var byteStart = this._range.from + this._receivedLength;\n this._receivedLength += chunk.byteLength;\n\n if (this._onDataArrival) {\n this._onDataArrival(chunk, byteStart, this._receivedLength);\n }\n };\n\n _proto._onLoadEnd = function _onLoadEnd(e) {\n if (this._requestAbort === true) {\n this._requestAbort = false;\n return;\n } else if (this._status === _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kError) {\n return;\n }\n\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kComplete;\n\n if (this._onComplete) {\n this._onComplete(this._range.from, this._range.from + this._receivedLength - 1);\n }\n };\n\n _proto._onXhrError = function _onXhrError(e) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kError;\n var type = 0;\n var info = null;\n\n if (this._contentLength && e.loaded < this._contentLength) {\n type = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderErrors\"].EARLY_EOF;\n info = {\n code: -1,\n msg: 'Moz-Chunked stream meet Early-Eof'\n };\n } else {\n type = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderErrors\"].EXCEPTION;\n info = {\n code: -1,\n msg: e.constructor.name + ' ' + e.type\n };\n }\n\n if (this._onError) {\n this._onError(type, info);\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__[\"RuntimeException\"](info.msg);\n }\n };\n\n return MozChunkedLoader;\n}(_loader_js__WEBPACK_IMPORTED_MODULE_1__[\"BaseLoader\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (MozChunkedLoader);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/io/xhr-moz-chunked-loader.js?"); | ||
| 3377 | + | ||
| 3378 | +/***/ }), | ||
| 3379 | + | ||
| 3380 | +/***/ "./src/FlvPlayer/flv.js/io/xhr-msstream-loader.js": | ||
| 3381 | +/*!********************************************************!*\ | ||
| 3382 | + !*** ./src/FlvPlayer/flv.js/io/xhr-msstream-loader.js ***! | ||
| 3383 | + \********************************************************/ | ||
| 3384 | +/*! exports provided: default */ | ||
| 3385 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3386 | + | ||
| 3387 | +"use strict"; | ||
| 3388 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/FlvPlayer/flv.js/utils/logger.js\");\n/* harmony import */ var _loader_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loader.js */ \"./src/FlvPlayer/flv.js/io/loader.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/FlvPlayer/flv.js/utils/exception.js\");\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n/* Notice: ms-stream may cause IE/Edge browser crash if seek too frequently!!!\n * The browser may crash in wininet.dll. Disable for now.\n *\n * For IE11/Edge browser by microsoft which supports `xhr.responseType = 'ms-stream'`\n * Notice that ms-stream API sucks. The buffer is always expanding along with downloading.\n *\n * We need to abort the xhr if buffer size exceeded limit size (e.g. 16 MiB), then do reconnect.\n * in order to release previous ArrayBuffer to avoid memory leak\n *\n * Otherwise, the ArrayBuffer will increase to a terrible size that equals final file size.\n */\n\nvar MSStreamLoader = /*#__PURE__*/function (_BaseLoader) {\n _inheritsLoose(MSStreamLoader, _BaseLoader);\n\n MSStreamLoader.isSupported = function isSupported() {\n try {\n if (typeof self.MSStream === 'undefined' || typeof self.MSStreamReader === 'undefined') {\n return false;\n }\n\n var xhr = new XMLHttpRequest();\n xhr.open('GET', 'https://example.com', true);\n xhr.responseType = 'ms-stream';\n return xhr.responseType === 'ms-stream';\n } catch (e) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w('MSStreamLoader', e.message);\n return false;\n }\n };\n\n function MSStreamLoader(seekHandler, config) {\n var _this;\n\n _this = _BaseLoader.call(this, 'xhr-msstream-loader') || this;\n _this.TAG = 'MSStreamLoader';\n _this._seekHandler = seekHandler;\n _this._config = config;\n _this._needStash = true;\n _this._xhr = null;\n _this._reader = null; // MSStreamReader\n\n _this._totalRange = null;\n _this._currentRange = null;\n _this._currentRequestURL = null;\n _this._currentRedirectedURL = null;\n _this._contentLength = null;\n _this._receivedLength = 0;\n _this._bufferLimit = 16 * 1024 * 1024; // 16MB\n\n _this._lastTimeBufferSize = 0;\n _this._isReconnecting = false;\n return _this;\n }\n\n var _proto = MSStreamLoader.prototype;\n\n _proto.destroy = function destroy() {\n if (this.isWorking()) {\n this.abort();\n }\n\n if (this._reader) {\n this._reader.onprogress = null;\n this._reader.onload = null;\n this._reader.onerror = null;\n this._reader = null;\n }\n\n if (this._xhr) {\n this._xhr.onreadystatechange = null;\n this._xhr = null;\n }\n\n _BaseLoader.prototype.destroy.call(this);\n };\n\n _proto.open = function open(dataSource, range) {\n this._internalOpen(dataSource, range, false);\n };\n\n _proto._internalOpen = function _internalOpen(dataSource, range, isSubrange) {\n this._dataSource = dataSource;\n\n if (!isSubrange) {\n this._totalRange = range;\n } else {\n this._currentRange = range;\n }\n\n var sourceURL = dataSource.url;\n\n if (this._config.reuseRedirectedURL) {\n if (this._currentRedirectedURL != undefined) {\n sourceURL = this._currentRedirectedURL;\n } else if (dataSource.redirectedURL != undefined) {\n sourceURL = dataSource.redirectedURL;\n }\n }\n\n var seekConfig = this._seekHandler.getConfig(sourceURL, range);\n\n this._currentRequestURL = seekConfig.url;\n var reader = this._reader = new self.MSStreamReader();\n reader.onprogress = this._msrOnProgress.bind(this);\n reader.onload = this._msrOnLoad.bind(this);\n reader.onerror = this._msrOnError.bind(this);\n var xhr = this._xhr = new XMLHttpRequest();\n xhr.open('GET', seekConfig.url, true);\n xhr.responseType = 'ms-stream';\n xhr.onreadystatechange = this._xhrOnReadyStateChange.bind(this);\n xhr.onerror = this._xhrOnError.bind(this);\n\n if (dataSource.withCredentials) {\n xhr.withCredentials = true;\n }\n\n if (typeof seekConfig.headers === 'object') {\n var headers = seekConfig.headers;\n\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n } // add additional headers\n\n\n if (typeof this._config.headers === 'object') {\n var _headers = this._config.headers;\n\n for (var _key in _headers) {\n if (_headers.hasOwnProperty(_key)) {\n xhr.setRequestHeader(_key, _headers[_key]);\n }\n }\n }\n\n if (this._isReconnecting) {\n this._isReconnecting = false;\n } else {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kConnecting;\n }\n\n xhr.send();\n };\n\n _proto.abort = function abort() {\n this._internalAbort();\n\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kComplete;\n };\n\n _proto._internalAbort = function _internalAbort() {\n if (this._reader) {\n if (this._reader.readyState === 1) {\n // LOADING\n this._reader.abort();\n }\n\n this._reader.onprogress = null;\n this._reader.onload = null;\n this._reader.onerror = null;\n this._reader = null;\n }\n\n if (this._xhr) {\n this._xhr.abort();\n\n this._xhr.onreadystatechange = null;\n this._xhr = null;\n }\n };\n\n _proto._xhrOnReadyStateChange = function _xhrOnReadyStateChange(e) {\n var xhr = e.target;\n\n if (xhr.readyState === 2) {\n // HEADERS_RECEIVED\n if (xhr.status >= 200 && xhr.status <= 299) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kBuffering;\n\n if (xhr.responseURL != undefined) {\n var redirectedURL = this._seekHandler.removeURLParameters(xhr.responseURL);\n\n if (xhr.responseURL !== this._currentRequestURL && redirectedURL !== this._currentRedirectedURL) {\n this._currentRedirectedURL = redirectedURL;\n\n if (this._onURLRedirect) {\n this._onURLRedirect(redirectedURL);\n }\n }\n }\n\n var lengthHeader = xhr.getResponseHeader('Content-Length');\n\n if (lengthHeader != null && this._contentLength == null) {\n var length = parseInt(lengthHeader);\n\n if (length > 0) {\n this._contentLength = length;\n\n if (this._onContentLengthKnown) {\n this._onContentLengthKnown(this._contentLength);\n }\n }\n }\n } else {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kError;\n\n if (this._onError) {\n this._onError(_loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderErrors\"].HTTP_STATUS_CODE_INVALID, {\n code: xhr.status,\n msg: xhr.statusText\n });\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__[\"RuntimeException\"]('MSStreamLoader: Http code invalid, ' + xhr.status + ' ' + xhr.statusText);\n }\n }\n } else if (xhr.readyState === 3) {\n // LOADING\n if (xhr.status >= 200 && xhr.status <= 299) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kBuffering;\n var msstream = xhr.response;\n\n this._reader.readAsArrayBuffer(msstream);\n }\n }\n };\n\n _proto._xhrOnError = function _xhrOnError(e) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kError;\n var type = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderErrors\"].EXCEPTION;\n var info = {\n code: -1,\n msg: e.constructor.name + ' ' + e.type\n };\n\n if (this._onError) {\n this._onError(type, info);\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__[\"RuntimeException\"](info.msg);\n }\n };\n\n _proto._msrOnProgress = function _msrOnProgress(e) {\n var reader = e.target;\n var bigbuffer = reader.result;\n\n if (bigbuffer == null) {\n // result may be null, workaround for buggy M$\n this._doReconnectIfNeeded();\n\n return;\n }\n\n var slice = bigbuffer.slice(this._lastTimeBufferSize);\n this._lastTimeBufferSize = bigbuffer.byteLength;\n var byteStart = this._totalRange.from + this._receivedLength;\n this._receivedLength += slice.byteLength;\n\n if (this._onDataArrival) {\n this._onDataArrival(slice, byteStart, this._receivedLength);\n }\n\n if (bigbuffer.byteLength >= this._bufferLimit) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].v(this.TAG, \"MSStream buffer exceeded max size near \" + (byteStart + slice.byteLength) + \", reconnecting...\");\n\n this._doReconnectIfNeeded();\n }\n };\n\n _proto._doReconnectIfNeeded = function _doReconnectIfNeeded() {\n if (this._contentLength == null || this._receivedLength < this._contentLength) {\n this._isReconnecting = true;\n this._lastTimeBufferSize = 0;\n\n this._internalAbort();\n\n var range = {\n from: this._totalRange.from + this._receivedLength,\n to: -1\n };\n\n this._internalOpen(this._dataSource, range, true);\n }\n };\n\n _proto._msrOnLoad = function _msrOnLoad(e) {\n // actually it is onComplete event\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kComplete;\n\n if (this._onComplete) {\n this._onComplete(this._totalRange.from, this._totalRange.from + this._receivedLength - 1);\n }\n };\n\n _proto._msrOnError = function _msrOnError(e) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderStatus\"].kError;\n var type = 0;\n var info = null;\n\n if (this._contentLength && this._receivedLength < this._contentLength) {\n type = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderErrors\"].EARLY_EOF;\n info = {\n code: -1,\n msg: 'MSStream meet Early-Eof'\n };\n } else {\n type = _loader_js__WEBPACK_IMPORTED_MODULE_1__[\"LoaderErrors\"].EARLY_EOF;\n info = {\n code: -1,\n msg: e.constructor.name + ' ' + e.type\n };\n }\n\n if (this._onError) {\n this._onError(type, info);\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__[\"RuntimeException\"](info.msg);\n }\n };\n\n return MSStreamLoader;\n}(_loader_js__WEBPACK_IMPORTED_MODULE_1__[\"BaseLoader\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (MSStreamLoader);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/io/xhr-msstream-loader.js?"); | ||
| 3389 | + | ||
| 3390 | +/***/ }), | ||
| 3391 | + | ||
| 3392 | +/***/ "./src/FlvPlayer/flv.js/io/xhr-range-loader.js": | ||
| 3393 | +/*!*****************************************************!*\ | ||
| 3394 | + !*** ./src/FlvPlayer/flv.js/io/xhr-range-loader.js ***! | ||
| 3395 | + \*****************************************************/ | ||
| 3396 | +/*! exports provided: default */ | ||
| 3397 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3398 | + | ||
| 3399 | +"use strict"; | ||
| 3400 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/FlvPlayer/flv.js/utils/logger.js\");\n/* harmony import */ var _speed_sampler_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./speed-sampler.js */ \"./src/FlvPlayer/flv.js/io/speed-sampler.js\");\n/* harmony import */ var _loader_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loader.js */ \"./src/FlvPlayer/flv.js/io/loader.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/FlvPlayer/flv.js/utils/exception.js\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n // Universal IO Loader, implemented by adding Range header in xhr's request header\n\nvar RangeLoader = /*#__PURE__*/function (_BaseLoader) {\n _inheritsLoose(RangeLoader, _BaseLoader);\n\n RangeLoader.isSupported = function isSupported() {\n try {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', 'https://example.com', true);\n xhr.responseType = 'arraybuffer';\n return xhr.responseType === 'arraybuffer';\n } catch (e) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w('RangeLoader', e.message);\n return false;\n }\n };\n\n function RangeLoader(seekHandler, config) {\n var _this;\n\n _this = _BaseLoader.call(this, 'xhr-range-loader') || this;\n _this.TAG = 'RangeLoader';\n _this._seekHandler = seekHandler;\n _this._config = config;\n _this._needStash = false;\n _this._chunkSizeKBList = [128, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192];\n _this._currentChunkSizeKB = 384;\n _this._currentSpeedNormalized = 0;\n _this._zeroSpeedChunkCount = 0;\n _this._xhr = null;\n _this._speedSampler = new _speed_sampler_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]();\n _this._requestAbort = false;\n _this._waitForTotalLength = false;\n _this._totalLengthReceived = false;\n _this._currentRequestURL = null;\n _this._currentRedirectedURL = null;\n _this._currentRequestRange = null;\n _this._totalLength = null; // size of the entire file\n\n _this._contentLength = null; // Content-Length of entire request range\n\n _this._receivedLength = 0; // total received bytes\n\n _this._lastTimeLoaded = 0; // received bytes of current request sub-range\n\n return _this;\n }\n\n var _proto = RangeLoader.prototype;\n\n _proto.destroy = function destroy() {\n if (this.isWorking()) {\n this.abort();\n }\n\n if (this._xhr) {\n this._xhr.onreadystatechange = null;\n this._xhr.onprogress = null;\n this._xhr.onload = null;\n this._xhr.onerror = null;\n this._xhr = null;\n }\n\n _BaseLoader.prototype.destroy.call(this);\n };\n\n _proto.open = function open(dataSource, range) {\n this._dataSource = dataSource;\n this._range = range;\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderStatus\"].kConnecting;\n var useRefTotalLength = false;\n\n if (this._dataSource.filesize != undefined && this._dataSource.filesize !== 0) {\n useRefTotalLength = true;\n this._totalLength = this._dataSource.filesize;\n }\n\n if (!this._totalLengthReceived && !useRefTotalLength) {\n // We need total filesize\n this._waitForTotalLength = true;\n\n this._internalOpen(this._dataSource, {\n from: 0,\n to: -1\n });\n } else {\n // We have filesize, start loading\n this._openSubRange();\n }\n };\n\n _proto._openSubRange = function _openSubRange() {\n var chunkSize = this._currentChunkSizeKB * 1024;\n var from = this._range.from + this._receivedLength;\n var to = from + chunkSize;\n\n if (this._contentLength != null) {\n if (to - this._range.from >= this._contentLength) {\n to = this._range.from + this._contentLength - 1;\n }\n }\n\n this._currentRequestRange = {\n from: from,\n to: to\n };\n\n this._internalOpen(this._dataSource, this._currentRequestRange);\n };\n\n _proto._internalOpen = function _internalOpen(dataSource, range) {\n this._lastTimeLoaded = 0;\n var sourceURL = dataSource.url;\n\n if (this._config.reuseRedirectedURL) {\n if (this._currentRedirectedURL != undefined) {\n sourceURL = this._currentRedirectedURL;\n } else if (dataSource.redirectedURL != undefined) {\n sourceURL = dataSource.redirectedURL;\n }\n }\n\n var seekConfig = this._seekHandler.getConfig(sourceURL, range);\n\n this._currentRequestURL = seekConfig.url;\n var xhr = this._xhr = new XMLHttpRequest();\n xhr.open('GET', seekConfig.url, true);\n xhr.responseType = 'arraybuffer';\n xhr.onreadystatechange = this._onReadyStateChange.bind(this);\n xhr.onprogress = this._onProgress.bind(this);\n xhr.onload = this._onLoad.bind(this);\n xhr.onerror = this._onXhrError.bind(this);\n\n if (dataSource.withCredentials) {\n xhr.withCredentials = true;\n }\n\n if (typeof seekConfig.headers === 'object') {\n var headers = seekConfig.headers;\n\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n } // add additional headers\n\n\n if (typeof this._config.headers === 'object') {\n var _headers = this._config.headers;\n\n for (var _key in _headers) {\n if (_headers.hasOwnProperty(_key)) {\n xhr.setRequestHeader(_key, _headers[_key]);\n }\n }\n }\n\n xhr.send();\n };\n\n _proto.abort = function abort() {\n this._requestAbort = true;\n\n this._internalAbort();\n\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderStatus\"].kComplete;\n };\n\n _proto._internalAbort = function _internalAbort() {\n if (this._xhr) {\n this._xhr.onreadystatechange = null;\n this._xhr.onprogress = null;\n this._xhr.onload = null;\n this._xhr.onerror = null;\n\n this._xhr.abort();\n\n this._xhr = null;\n }\n };\n\n _proto._onReadyStateChange = function _onReadyStateChange(e) {\n var xhr = e.target;\n\n if (xhr.readyState === 2) {\n // HEADERS_RECEIVED\n if (xhr.responseURL != undefined) {\n // if the browser support this property\n var redirectedURL = this._seekHandler.removeURLParameters(xhr.responseURL);\n\n if (xhr.responseURL !== this._currentRequestURL && redirectedURL !== this._currentRedirectedURL) {\n this._currentRedirectedURL = redirectedURL;\n\n if (this._onURLRedirect) {\n this._onURLRedirect(redirectedURL);\n }\n }\n }\n\n if (xhr.status >= 200 && xhr.status <= 299) {\n if (this._waitForTotalLength) {\n return;\n }\n\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderStatus\"].kBuffering;\n } else {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderStatus\"].kError;\n\n if (this._onError) {\n this._onError(_loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderErrors\"].HTTP_STATUS_CODE_INVALID, {\n code: xhr.status,\n msg: xhr.statusText\n });\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_3__[\"RuntimeException\"]('RangeLoader: Http code invalid, ' + xhr.status + ' ' + xhr.statusText);\n }\n }\n }\n };\n\n _proto._onProgress = function _onProgress(e) {\n if (this._status === _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderStatus\"].kError) {\n // Ignore error response\n return;\n }\n\n if (this._contentLength === null) {\n var openNextRange = false;\n\n if (this._waitForTotalLength) {\n this._waitForTotalLength = false;\n this._totalLengthReceived = true;\n openNextRange = true;\n var total = e.total;\n\n this._internalAbort();\n\n if (total != null & total !== 0) {\n this._totalLength = total;\n }\n } // calculate currrent request range's contentLength\n\n\n if (this._range.to === -1) {\n this._contentLength = this._totalLength - this._range.from;\n } else {\n // to !== -1\n this._contentLength = this._range.to - this._range.from + 1;\n }\n\n if (openNextRange) {\n this._openSubRange();\n\n return;\n }\n\n if (this._onContentLengthKnown) {\n this._onContentLengthKnown(this._contentLength);\n }\n }\n\n var delta = e.loaded - this._lastTimeLoaded;\n this._lastTimeLoaded = e.loaded;\n\n this._speedSampler.addBytes(delta);\n };\n\n _proto._normalizeSpeed = function _normalizeSpeed(input) {\n var list = this._chunkSizeKBList;\n var last = list.length - 1;\n var mid = 0;\n var lbound = 0;\n var ubound = last;\n\n if (input < list[0]) {\n return list[0];\n }\n\n while (lbound <= ubound) {\n mid = lbound + Math.floor((ubound - lbound) / 2);\n\n if (mid === last || input >= list[mid] && input < list[mid + 1]) {\n return list[mid];\n } else if (list[mid] < input) {\n lbound = mid + 1;\n } else {\n ubound = mid - 1;\n }\n }\n };\n\n _proto._onLoad = function _onLoad(e) {\n if (this._status === _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderStatus\"].kError) {\n // Ignore error response\n return;\n }\n\n if (this._waitForTotalLength) {\n this._waitForTotalLength = false;\n return;\n }\n\n this._lastTimeLoaded = 0;\n var KBps = this._speedSampler.lastSecondKBps;\n\n if (KBps === 0) {\n this._zeroSpeedChunkCount++;\n\n if (this._zeroSpeedChunkCount >= 3) {\n // Try get currentKBps after 3 chunks\n KBps = this._speedSampler.currentKBps;\n }\n }\n\n if (KBps !== 0) {\n var normalized = this._normalizeSpeed(KBps);\n\n if (this._currentSpeedNormalized !== normalized) {\n this._currentSpeedNormalized = normalized;\n this._currentChunkSizeKB = normalized;\n }\n }\n\n var chunk = e.target.response;\n var byteStart = this._range.from + this._receivedLength;\n this._receivedLength += chunk.byteLength;\n var reportComplete = false;\n\n if (this._contentLength != null && this._receivedLength < this._contentLength) {\n // continue load next chunk\n this._openSubRange();\n } else {\n reportComplete = true;\n } // dispatch received chunk\n\n\n if (this._onDataArrival) {\n this._onDataArrival(chunk, byteStart, this._receivedLength);\n }\n\n if (reportComplete) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderStatus\"].kComplete;\n\n if (this._onComplete) {\n this._onComplete(this._range.from, this._range.from + this._receivedLength - 1);\n }\n }\n };\n\n _proto._onXhrError = function _onXhrError(e) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderStatus\"].kError;\n var type = 0;\n var info = null;\n\n if (this._contentLength && this._receivedLength > 0 && this._receivedLength < this._contentLength) {\n type = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderErrors\"].EARLY_EOF;\n info = {\n code: -1,\n msg: 'RangeLoader meet Early-Eof'\n };\n } else {\n type = _loader_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderErrors\"].EXCEPTION;\n info = {\n code: -1,\n msg: e.constructor.name + ' ' + e.type\n };\n }\n\n if (this._onError) {\n this._onError(type, info);\n } else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_3__[\"RuntimeException\"](info.msg);\n }\n };\n\n _createClass(RangeLoader, [{\n key: \"currentSpeed\",\n get: function get() {\n return this._speedSampler.lastSecondKBps;\n }\n }]);\n\n return RangeLoader;\n}(_loader_js__WEBPACK_IMPORTED_MODULE_2__[\"BaseLoader\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (RangeLoader);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/io/xhr-range-loader.js?"); | ||
| 3401 | + | ||
| 3402 | +/***/ }), | ||
| 3403 | + | ||
| 3404 | +/***/ "./src/FlvPlayer/flv.js/player/flv-player.js": | ||
| 3405 | +/*!***************************************************!*\ | ||
| 3406 | + !*** ./src/FlvPlayer/flv.js/player/flv-player.js ***! | ||
| 3407 | + \***************************************************/ | ||
| 3408 | +/*! exports provided: default */ | ||
| 3409 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3410 | + | ||
| 3411 | +"use strict"; | ||
| 3412 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! events */ \"./node_modules/node-libs-browser/node_modules/events/events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/FlvPlayer/flv.js/utils/logger.js\");\n/* harmony import */ var _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/browser.js */ \"./src/FlvPlayer/flv.js/utils/browser.js\");\n/* harmony import */ var _player_events_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./player-events.js */ \"./src/FlvPlayer/flv.js/player/player-events.js\");\n/* harmony import */ var _core_transmuxer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/transmuxer.js */ \"./src/FlvPlayer/flv.js/core/transmuxer.js\");\n/* harmony import */ var _core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/transmuxing-events.js */ \"./src/FlvPlayer/flv.js/core/transmuxing-events.js\");\n/* harmony import */ var _core_mse_controller_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../core/mse-controller.js */ \"./src/FlvPlayer/flv.js/core/mse-controller.js\");\n/* harmony import */ var _core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../core/mse-events.js */ \"./src/FlvPlayer/flv.js/core/mse-events.js\");\n/* harmony import */ var _player_errors_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./player-errors.js */ \"./src/FlvPlayer/flv.js/player/player-errors.js\");\n/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../config.js */ \"./src/FlvPlayer/flv.js/config.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/FlvPlayer/flv.js/utils/exception.js\");\n/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../common/common */ \"./src/common/common.js\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar FlvPlayer = /*#__PURE__*/function () {\n function FlvPlayer(mediaDataSource, config) {\n this.TAG = 'FlvPlayer';\n this._type = 'FlvPlayer';\n this._emitter = new events__WEBPACK_IMPORTED_MODULE_0___default.a();\n this._IsWasm = false;\n this.callbackFunc = null;\n this.callbackPlayTimeFunc = null;\n this.callbackConnectStatusFunc = null;\n this.callbackUserPtr = null;\n this.getVideoInfoCallbackFunc = null;\n this.needCallPlay = false;\n this.waitingForData = false;\n this.playTally = 0;\n this._config = Object(_config_js__WEBPACK_IMPORTED_MODULE_9__[\"createDefaultConfig\"])();\n\n if (typeof config === 'object') {\n Object.assign(this._config, config);\n }\n\n if (config.decodeType === 'soft') {\n this._IsWasm = true;\n }\n\n if (mediaDataSource.type.toLowerCase() !== 'flv' && mediaDataSource.type.toLowerCase() !== 'm3u8' && mediaDataSource.type.toLowerCase() !== 'rtsp') {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_10__[\"InvalidArgumentException\"]('FlvPlayer requires an flv MediaDataSource input!');\n }\n\n this.isFlv = true;\n\n if (mediaDataSource.type.toLowerCase() === 'm3u8') {\n this.isFlv = false;\n }\n\n if (mediaDataSource.isLive === true) {\n this._config.isLive = true;\n }\n\n this.e = {\n onvLoadedMetadata: this._onvLoadedMetadata.bind(this),\n onvSeeking: this._onvSeeking.bind(this),\n onvCanPlay: this._onvCanPlay.bind(this),\n onvStalled: this._onvStalled.bind(this),\n onvProgress: this._onvProgress.bind(this),\n onvWaiting: this._onvWaiting.bind(this),\n onvPlaying: this._onvPlaying.bind(this)\n };\n\n if (self.performance && self.performance.now) {\n this._now = self.performance.now.bind(self.performance);\n } else {\n this._now = Date.now;\n }\n\n this._pendingSeekTime = null; // in seconds\n\n this._requestSetTime = false;\n this._seekpointRecord = null;\n this._progressChecker = null;\n this._mediaDataSource = mediaDataSource;\n this._mediaCanvas = null;\n this._mediaElement = null;\n this._msectl = null;\n this._transmuxer = null;\n this._initFlag = false;\n this._msectlInitSegmentVideoParams = null;\n this._msectlInitSegmentAudioParams = null;\n this._msectlResetComplete = true;\n this._mseSourceOpened = false;\n this._hasPendingLoad = false;\n this._receivedCanPlay = false;\n this._mediaInfo = null;\n this._statisticsInfo = null;\n var chromeNeedIDRFix = _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].chrome && (_utils_browser_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].version.major < 50 || _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].version.major === 50 && _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].version.build < 2661);\n this._alwaysSeekKeyframe = chromeNeedIDRFix || _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].msedge || _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].msie ? true : false;\n\n if (this._alwaysSeekKeyframe) {\n this._config.accurateSeek = false;\n }\n }\n\n var _proto = FlvPlayer.prototype;\n\n _proto.destroy = function destroy() {\n if (this._progressChecker != null) {\n window.clearInterval(this._progressChecker);\n this._progressChecker = null;\n }\n\n if (this._transmuxer) {\n this.unload();\n }\n\n if (this._mediaElement) {\n this.detachMediaElement();\n }\n\n this.e = null;\n this._mediaDataSource = null;\n\n this._emitter.removeAllListeners();\n\n this._emitter = null;\n };\n\n _proto.on = function on(event, listener) {\n var _this2 = this;\n\n if (event === _player_events_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].MEDIA_INFO) {\n if (this._mediaInfo != null) {\n Promise.resolve().then(function () {\n _this2._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].MEDIA_INFO, _this2.mediaInfo);\n });\n }\n } else if (event === _player_events_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].STATISTICS_INFO) {\n if (this._statisticsInfo != null) {\n Promise.resolve().then(function () {\n _this2._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].STATISTICS_INFO, _this2.statisticsInfo);\n });\n }\n }\n\n this._emitter.addListener(event, listener);\n };\n\n _proto.off = function off(event, listener) {\n this._emitter.removeListener(event, listener);\n };\n\n _proto.attachMediaElement = function attachMediaElement(mediaElement, mediaCanvas) {\n var _this3 = this;\n\n this._mediaCanvas = mediaCanvas;\n\n if (!this._IsWasm) {\n this._mediaElement = mediaElement;\n mediaElement.addEventListener('loadedmetadata', this.e.onvLoadedMetadata);\n mediaElement.addEventListener('seeking', this.e.onvSeeking);\n mediaElement.addEventListener('canplay', this.e.onvCanPlay);\n mediaElement.addEventListener('stalled', this.e.onvStalled);\n mediaElement.addEventListener('progress', this.e.onvProgress);\n mediaElement.addEventListener('waiting', this.e.onvWaiting);\n mediaElement.addEventListener('playing', this.e.onvPlaying);\n this._msectl = new _core_mse_controller_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"](this._config);\n\n this._msectl.setSeekPlayTime(this._mediaDataSource.startPlaySecs);\n\n this._msectl.on(_core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].CB_PLAY_INFO, this._onmseCbPlayInfo.bind(this));\n\n this._msectl.on(_core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].UPDATE_END, this._onmseUpdateEnd.bind(this));\n\n this._msectl.on(_core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].BUFFER_FULL, this._onmseBufferFull.bind(this));\n\n this._msectl.on(_core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].SOURCE_OPEN, function () {\n _this3._mseSourceOpened = true;\n\n if (_this3._hasPendingLoad) {\n _this3._hasPendingLoad = false;\n\n _this3.load();\n }\n });\n\n this._msectl.on(_core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].ERROR, function (info) {\n //console.log(\"FLV-Player.js::MSEEvents.ERROR\");\n _this3.ReCreateMSECtl();\n /*\n this._emitter.emit(PlayerEvents.ERROR,\n ErrorTypes.MEDIA_ERROR,\n ErrorDetails.MEDIA_MSE_ERROR,\n info\n );\n */\n\n });\n\n this._msectl.on(_core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].CHANGE_SPEED, function (info) {\n //console.log(\"ChangeSpeed: \" + info.speed);\n if (_this3._transmuxer) {\n _this3._transmuxer.changeSpeed(info.speed);\n }\n });\n\n this._msectl.attachMediaElement(mediaElement);\n\n if (this._pendingSeekTime != null) {\n try {\n mediaElement.currentTime = this._pendingSeekTime;\n this._pendingSeekTime = null;\n } catch (e) {// IE11 may throw InvalidStateError if readyState === 0\n // We can defer set currentTime operation after loadedmetadata\n }\n }\n } else {//alert(\"apple browse\");\n }\n };\n\n _proto.detachMediaElement = function detachMediaElement() {\n if (!this._IsWasm) {\n if (this._mediaElement) {\n this._msectl.detachMediaElement();\n\n this._mediaElement.removeEventListener('loadedmetadata', this.e.onvLoadedMetadata);\n\n this._mediaElement.removeEventListener('seeking', this.e.onvSeeking);\n\n this._mediaElement.removeEventListener('canplay', this.e.onvCanPlay);\n\n this._mediaElement.removeEventListener('stalled', this.e.onvStalled);\n\n this._mediaElement.removeEventListener('progress', this.e.onvProgress);\n\n this._mediaElement = null;\n }\n\n if (this._msectl) {\n this._msectl.destroy();\n\n this._msectl = null;\n }\n }\n };\n\n _proto.ReCreateMSECtl = function ReCreateMSECtl() {\n var _this4 = this;\n\n this._msectlResetComplete = false; //console.log(\"ReCreateMSECtl...\");\n\n if (this._msectl) {\n if (this._mediaElement) {\n this._msectl.detachMediaElement();\n }\n\n this._msectl.destroy();\n\n this._msectl = null;\n }\n\n this._msectl = new _core_mse_controller_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"](this._config);\n\n this._msectl.setSeekPlayTime(this._mediaDataSource.startPlaySecs);\n\n this._msectl.on(_core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].CB_PLAY_INFO, this._onmseCbPlayInfo.bind(this));\n\n this._msectl.on(_core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].UPDATE_END, this._onmseUpdateEnd.bind(this));\n\n this._msectl.on(_core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].BUFFER_FULL, this._onmseBufferFull.bind(this));\n\n this._msectl.on(_core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].SOURCE_OPEN, function () {\n _this4._mseSourceOpened = true; //if (this._hasPendingLoad) {\n //this._hasPendingLoad = false;\n //this.load();\n //}\n\n if (_this4._msectlInitSegmentVideoParams) {\n _this4._msectl.appendInitSegment(_this4._msectlInitSegmentVideoParams);\n }\n\n if (_this4._msectlInitSegmentAudioParams && !_common_common__WEBPACK_IMPORTED_MODULE_11__[\"GetAppendBufferError\"]().audio) {\n _this4._msectl.appendInitSegment(_this4._msectlInitSegmentAudioParams);\n } else if (_this4._msectlInitSegmentAudioParams && _common_common__WEBPACK_IMPORTED_MODULE_11__[\"GetAppendBufferError\"]().audio) {\n console.log('Discard audio: Error playing audio...');\n _common_common__WEBPACK_IMPORTED_MODULE_11__[\"SetEnableAudio\"](false);\n }\n\n _common_common__WEBPACK_IMPORTED_MODULE_11__[\"ClearAppendBufferError\"]();\n _this4._msectlResetComplete = true;\n });\n\n this._msectl.on(_core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].ERROR, function (info) {\n //console.log(\"FLV-Player.js::MSEEvents.ERROR ReCreateMSECtl\");\n _this4.ReCreateMSECtl();\n /*\n this._emitter.emit(PlayerEvents.ERROR,\n ErrorTypes.MEDIA_ERROR,\n ErrorDetails.MEDIA_MSE_ERROR,\n info\n );\n */\n\n });\n\n this._msectl.on(_core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].CHANGE_SPEED, function (info) {\n //console.log(\"ChangeSpeed: \" + info.speed);\n if (_this4._transmuxer) {\n _this4._transmuxer.changeSpeed(info.speed);\n }\n });\n\n this._msectl.attachMediaElement(this._mediaElement);\n\n if (this._transmuxer) {\n this._transmuxer.seekToSecs(0, 0);\n }\n } //��transmuxer.js �лص�����, �Ƿ�Ϊwasm����, ���ݸñ�ʶ��ȷ�Ϻ�������\n ;\n\n _proto.callbackWasmType = function callbackWasmType(_this, isWasm) {\n _this._IsWasm = isWasm;\n\n _this.callbackToParent();\n\n if (_this.needCallPlay) {\n _this.needCallPlay = false;\n\n if (!isWasm) {\n _this.play();\n }\n }\n };\n\n _proto.callbackToParent = function callbackToParent() {\n if (this.callbackFunc) {\n this.callbackFunc(this.callbackUserPtr, this.isFlv ? 'flv' : 'm3u8', this._IsWasm);\n }\n };\n\n _proto.setCallback = function setCallback(func, cbPlayTimeFunc, cbConnectStatusFunc, userPtr, cbGetVideoInfoFunc) {\n this.callbackFunc = func;\n this.callbackPlayTimeFunc = cbPlayTimeFunc;\n this.callbackConnectStatusFunc = cbConnectStatusFunc;\n this.callbackUserPtr = userPtr;\n this.getVideoInfoCallbackFunc = cbGetVideoInfoFunc;\n };\n\n _proto.load = function load() {\n var _this5 = this;\n\n if (!this._IsWasm) {\n if (!this._mediaElement) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_10__[\"IllegalStateException\"]('HTMLMediaElement must be attached before load()!');\n }\n\n if (this._transmuxer) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_10__[\"IllegalStateException\"]('FlvPlayer.load() has been called, please call unload() first!');\n }\n\n if (this._hasPendingLoad) {\n return;\n }\n\n if (this._config.deferLoadAfterSourceOpen && this._mseSourceOpened === false) {\n this._hasPendingLoad = true;\n return;\n }\n\n if (this._mediaElement.readyState > 0) {\n this._requestSetTime = true; // IE11 may throw InvalidStateError if readyState === 0\n\n this._mediaElement.currentTime = 0;\n }\n }\n\n this._transmuxer = new _core_transmuxer_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"](this._mediaDataSource, this._config, this._mediaCanvas, this, this.callbackWasmType, this.callbackPlayTimeFunc, this.callbackUserPtr, this.getVideoInfoCallbackFunc);\n\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].INIT_SEGMENT, function (type, is) {\n if (!_this5._IsWasm) {\n // && !this._initFlag) {\n _this5._initFlag = true;\n\n _this5._msectl.appendInitSegment(is);\n\n if (type === 'video') {\n _this5._msectlInitSegmentVideoParams = is;\n } else if (type === 'audio') {\n _this5._msectlInitSegmentAudioParams = is;\n } //let p = new Uint8Array(is.data);\n //console.log(\"mp4 header:\" + p);\n\n }\n });\n\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].MEDIA_SEGMENT, function (type, ms) {\n if (!_this5._IsWasm) {\n if (_this5._msectlResetComplete) {\n _this5._msectl.appendMediaSegment(ms);\n }\n } // lazyLoad check\n\n\n if (_this5._config.lazyLoad && !_this5._config.isLive) {\n var currentTime = _this5._mediaElement.currentTime;\n\n if (ms.info.endDts >= (currentTime + _this5._config.lazyLoadMaxDuration) * 1000) {\n if (_this5._progressChecker == null) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].v(_this5.TAG, 'Maximum buffering duration exceeded, suspend transmuxing task');\n\n _this5._suspendTransmuxer();\n }\n }\n }\n });\n\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].LOADING_COMPLETE, function () {\n if (!_this5._IsWasm) {\n _this5._msectl.endOfStream();\n }\n\n _this5._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].LOADING_COMPLETE);\n });\n\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].RECOVERED_EARLY_EOF, function () {\n _this5._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].RECOVERED_EARLY_EOF);\n });\n\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].IO_ERROR, function (detail, info) {\n _this5._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ERROR, _player_errors_js__WEBPACK_IMPORTED_MODULE_8__[\"ErrorTypes\"].NETWORK_ERROR, detail, info);\n });\n\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].DEMUX_ERROR, function (detail, info) {\n _this5._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ERROR, _player_errors_js__WEBPACK_IMPORTED_MODULE_8__[\"ErrorTypes\"].MEDIA_ERROR, detail, {\n code: -1,\n msg: info\n });\n });\n\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].MEDIA_INFO, function (mediaInfo) {\n _this5._mediaInfo = mediaInfo;\n\n _this5._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].MEDIA_INFO, Object.assign({}, mediaInfo));\n });\n\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].METADATA_ARRIVED, function (metadata) {\n _this5._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].METADATA_ARRIVED, metadata);\n });\n\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].SCRIPTDATA_ARRIVED, function (data) {\n _this5._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].SCRIPTDATA_ARRIVED, data);\n });\n\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].STATISTICS_INFO, function (statInfo) {\n _this5._statisticsInfo = _this5._fillStatisticsInfo(statInfo);\n\n _this5._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].STATISTICS_INFO, Object.assign({}, _this5._statisticsInfo));\n });\n\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].RECOMMEND_SEEKPOINT, function (milliseconds) {\n if (_this5._mediaElement && !_this5._config.accurateSeek) {\n _this5._requestSetTime = true;\n _this5._mediaElement.currentTime = milliseconds / 1000;\n }\n });\n\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].RECONNECT_ING, function (reconnectTimes) {\n //������\n if (_this5.callbackConnectStatusFunc) {\n _this5.callbackConnectStatusFunc(_this5.callbackUserPtr, 0);\n }\n });\n\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].RECONNECT_SUCCESS, function (reconnectTimes) {\n if (!_this5._IsWasm) {\n //console.log(\"Get Reconnect times...\" + reconnectTimes + \" play...\");\n if (reconnectTimes > 1 && _this5._msectl) {\n _this5._transmuxer.seekToSecs(0, 0); //console.log(\"msectl.reset...\");\n\n\n _this5._msectl.reset(true); //\n\n } //��һ������ʱ, ����play\n\n\n if (_this5._mediaElement && reconnectTimes == 1) {//this._mediaElement.play();\n }\n } //���ӳɹ�\n\n\n if (_this5.callbackConnectStatusFunc) {\n _this5.callbackConnectStatusFunc(_this5.callbackUserPtr, 1);\n }\n });\n\n this._transmuxer.on(_core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].CB_PLAY_INFO, this._onmseCbPlayInfo.bind(this));\n\n this._transmuxer.open();\n };\n\n _proto.unload = function unload() {\n if (!this._IsWasm) {\n if (this._mediaElement) {\n this._mediaElement.pause();\n }\n\n if (this._msectl) {\n this._msectl.seek(0);\n }\n }\n\n if (this._transmuxer) {\n this._transmuxer.close();\n\n this._transmuxer.destroy();\n\n this._transmuxer = null;\n }\n\n this._initFlag = false;\n };\n\n _proto.play = function play() {\n if (this._transmuxer == null) {\n this.needCallPlay = true;\n\n if (this._mediaElement) {\n this._mediaElement.volume = 0;\n }\n\n return false;\n }\n\n if (this._mediaElement) {\n this.needCallPlay = false; //this._mediaElement.volume = 0;\n\n return this._mediaElement.play();\n }\n };\n\n _proto.pause = function pause() {\n //if (this._IsWasm) {\n if (this._transmuxer) {\n this._transmuxer.pause();\n } //}\n //else\n\n\n if (this._mediaElement) {\n this._mediaElement.pause();\n }\n\n if (this._msectl) {\n this._msectl.pause();\n }\n };\n\n _proto.resume = function resume() {\n if (this._transmuxer) {\n this._transmuxer.resume();\n }\n\n if (this._msectl) {\n if (_common_common__WEBPACK_IMPORTED_MODULE_11__[\"GetLiveStreamType\"]()) {\n this._msectl.reset(false);\n }\n\n this._msectl.resume();\n }\n\n if (this._mediaElement) {\n this._mediaElement.play();\n }\n };\n\n _proto.rtspScale = function rtspScale(scaleValue, ptsInterval) {\n if (this._transmuxer) {\n this._transmuxer.rtspScale(scaleValue, ptsInterval);\n }\n };\n\n //===================\n _proto.openAudio = function openAudio() {\n if (this._IsWasm) {\n if (this._transmuxer) {\n return this._transmuxer.openAudio();\n }\n } else if (this._mediaElement) {\n this._mediaElement.volume = 1;\n return true;\n }\n\n return false;\n };\n\n _proto.closeAudio = function closeAudio() {\n if (this._IsWasm) {\n if (this._transmuxer) {\n return this._transmuxer.closeAudio();\n }\n } else if (this._mediaElement) {\n this._mediaElement.volume = 0;\n return true;\n }\n\n return false;\n };\n\n _proto.seek = function seek(seekValue, seekType) {\n //Ӳ�� && FLV\n if (!this._IsWasm && this.isFlv && this._mediaElement && this._mediaElement.duration > 0) {\n var secs = Math.floor(seekValue / 100 * this._mediaElement.duration);\n\n if (this._mediaElement) {\n this._internalSeek(secs);\n } else {\n this._pendingSeekTime = secs;\n }\n\n return true;\n }\n\n if (this._transmuxer) {\n var _secs = Math.floor(seekValue / 100 * this._transmuxer.getTotalDuration());\n\n if (this._msectl) {\n if (this._msectl.getCurrentPlayTime() == _secs) {\n return true;\n } //this._msectl._doCleanupSourceBuffer(); //gavin\n //this._msectl.reset(true);\n //if (this._mediaElement) this._mediaElement.play();\n\n }\n\n this._transmuxer.seekToSecs(seekValue, seekType);\n\n if (this._msectl) {\n this._msectl.setSeekPlayTime(_secs); //this._msectl._doCleanupSourceBuffer(); //gavin\n\n\n this._msectl.reset(true); //if (this._mediaElement) this._mediaElement.play();\n //this._mediaElement.currentTime = 0;\n\n }\n\n if (this._mediaElement) {\n //this._internalSeek(secs);\n //this._mediaElement.pause();\n //console.log(\"Media duration: \" + this._mediaElement.duration);\n //this._requestSetTime = true;\n if (Math.floor(this._mediaElement.currentTime) !== Math.floor(_secs)) {//console.log(\"Seek[\" + seekValue + \"%] Set CurrentTime: \" + this._mediaElement.currentTime + \" --> \" + secs);\n //this._mediaElement.currentTime = Math.floor(secs);\n } else {//console.log(\"Seek time: \" + Math.floor(this._mediaElement.currentTime) + \" === \" + Math.floor(secs));\n } //this._mediaElement.fastSeek(secs); //chrome��֧��\n //this._mediaElement.play();\n\n\n if (this._progressChecker != null) {//this._checkProgressAndResume();\n }\n } else {\n this._pendingSeekTime = _secs;\n }\n\n return true;\n }\n } //===================\n ;\n\n _proto._fillStatisticsInfo = function _fillStatisticsInfo(statInfo) {\n statInfo.playerType = this._type;\n\n if (!(this._mediaElement instanceof HTMLVideoElement)) {\n return statInfo;\n }\n\n var hasQualityInfo = true;\n var decoded = 0;\n var dropped = 0;\n\n if (this._mediaElement.getVideoPlaybackQuality) {\n var quality = this._mediaElement.getVideoPlaybackQuality();\n\n decoded = quality.totalVideoFrames;\n dropped = quality.droppedVideoFrames;\n } else if (this._mediaElement.webkitDecodedFrameCount != undefined) {\n decoded = this._mediaElement.webkitDecodedFrameCount;\n dropped = this._mediaElement.webkitDroppedFrameCount;\n } else {\n hasQualityInfo = false;\n }\n\n if (hasQualityInfo) {\n statInfo.decodedFrames = decoded;\n statInfo.droppedFrames = dropped;\n }\n\n return statInfo;\n } //�ص���ǰ����ʱ��\n ;\n\n _proto._onmseCbPlayInfo = function _onmseCbPlayInfo() {\n //console.log(\"onmse_CBPlayInfo...\");\n if (this._transmuxer) {\n var currentTime = 0;\n var duration = 0;\n\n if (!this._IsWasm && this._msectl) {\n currentTime = this._msectl.getCurrentPlayTime();\n duration = this._msectl.getTotalDuration(); // / 1000;\n\n if (duration == Infinity && !_common_common__WEBPACK_IMPORTED_MODULE_11__[\"GetLiveStreamType\"]()) {\n //H264�Ļط�, msectl��duration��ΪInfinity, ���Դ˴���ȡtransmuxer����ʱ��\n duration = this._transmuxer.getTotalDuration(); // / 1000;\n }\n } else {\n currentTime = this._transmuxer.getCurrentPlayTime();\n if (currentTime < 0) currentTime = 0;\n duration = this._transmuxer.getTotalDuration(); // / 1000;\n } //duration = this._transmuxer.getTotalDuration();// / 1000;\n //console.log(\"Callback play info...\" + currentTime + \" / \" + duration);\n\n\n if (this.callbackPlayTimeFunc) {\n //_this, streamType, currentTime, totalDuration\n this.callbackPlayTimeFunc(this.callbackUserPtr, this.isFlv ? 'flv' : 'm3u8', currentTime, duration);\n }\n }\n };\n\n _proto._onmseUpdateEnd = function _onmseUpdateEnd() {\n if (!this._config.lazyLoad || this._config.isLive) {\n return;\n }\n\n var buffered = this._mediaElement.buffered;\n var currentTime = this._mediaElement.currentTime;\n var currentRangeStart = 0;\n var currentRangeEnd = 0;\n\n for (var i = 0; i < buffered.length; i++) {\n var start = buffered.start(i);\n var end = buffered.end(i);\n\n if (start <= currentTime && currentTime < end) {\n currentRangeStart = start;\n currentRangeEnd = end;\n break;\n }\n }\n\n if (currentRangeEnd >= currentTime + this._config.lazyLoadMaxDuration && this._progressChecker == null) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].v(this.TAG, 'onmseUpdateEnd::Maximum buffering duration exceeded, suspend transmuxing task');\n\n this._suspendTransmuxer();\n }\n };\n\n _proto._onmseBufferFull = function _onmseBufferFull() {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].v(this.TAG, 'MSE SourceBuffer is full, suspend transmuxing task');\n\n if (this._progressChecker == null) {\n this._suspendTransmuxer();\n }\n };\n\n _proto._suspendTransmuxer = function _suspendTransmuxer() {\n if (this._transmuxer) {\n this._transmuxer.pause();\n\n if (this._progressChecker == null) {\n this._progressChecker = window.setInterval(this._checkProgressAndResume.bind(this), 1000);\n }\n }\n };\n\n _proto._checkProgressAndResume = function _checkProgressAndResume() {\n if (this._mediaElement == null) return;\n var currentTime = this._mediaElement.currentTime;\n var buffered = this._mediaElement.buffered;\n var needResume = false;\n\n for (var i = 0; i < buffered.length; i++) {\n var from = buffered.start(i);\n var to = buffered.end(i);\n\n if (currentTime >= from && currentTime < to) {\n if (currentTime >= to - this._config.lazyLoadRecoverDuration) {\n needResume = true;\n }\n\n break;\n }\n }\n\n if (needResume) {\n window.clearInterval(this._progressChecker);\n this._progressChecker = null;\n\n if (needResume) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].v(this.TAG, 'Continue loading from paused position');\n\n this._transmuxer.resume();\n }\n }\n };\n\n _proto._isTimepointBuffered = function _isTimepointBuffered(seconds) {\n var buffered = this._mediaElement.buffered;\n\n for (var i = 0; i < buffered.length; i++) {\n var from = buffered.start(i);\n var to = buffered.end(i);\n\n if (seconds >= from && seconds < to) {\n return true;\n }\n }\n\n return false;\n };\n\n _proto._internalSeek = function _internalSeek(seconds) {\n // console.log('_internalSeek: ' + seconds);\n var directSeek = this._isTimepointBuffered(seconds);\n\n var directSeekBegin = false;\n var directSeekBeginTime = 0;\n\n if (seconds < 1.0 && this._mediaElement.buffered.length > 0) {\n var videoBeginTime = this._mediaElement.buffered.start(0);\n\n if (videoBeginTime < 1.0 && seconds < videoBeginTime || _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].safari) {\n directSeekBegin = true; // also workaround for Safari: Seek to 0 may cause video stuck, use 0.1 to avoid\n\n directSeekBeginTime = _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].safari ? 0.1 : videoBeginTime;\n }\n }\n\n if (directSeekBegin) {\n // seek to video begin, set currentTime directly if beginPTS buffered\n this._requestSetTime = true;\n this._mediaElement.currentTime = directSeekBeginTime;\n } else if (directSeek) {\n // buffered position\n if (!this._alwaysSeekKeyframe) {\n this._requestSetTime = true;\n this._mediaElement.currentTime = seconds;\n } else {\n var idr = this._msectl.getNearestKeyframe(Math.floor(seconds * 1000));\n\n this._requestSetTime = true;\n\n if (idr != null) {\n this._mediaElement.currentTime = idr.dts / 1000;\n } else {\n this._mediaElement.currentTime = seconds;\n }\n }\n\n if (this._progressChecker != null) {\n this._checkProgressAndResume();\n }\n } else {\n if (this._progressChecker != null) {\n window.clearInterval(this._progressChecker);\n this._progressChecker = null;\n }\n\n this._msectl.seek(seconds);\n\n this._transmuxer.seek(Math.floor(seconds * 1000)); // in milliseconds\n // no need to set mediaElement.currentTime if non-accurateSeek,\n // just wait for the recommend_seekpoint callback\n\n\n if (this._config.accurateSeek) {\n this._requestSetTime = true;\n this._mediaElement.currentTime = seconds;\n }\n }\n };\n\n _proto._checkAndApplyUnbufferedSeekpoint = function _checkAndApplyUnbufferedSeekpoint() {\n return;\n\n if (this.isFlv && this.playTally > 0 && _common_common__WEBPACK_IMPORTED_MODULE_11__[\"GetLiveStreamType\"]()) {\n console.log('_checkAndApplyUnbufferedSeekpoint. RETURN...');\n\n if (this._progressChecker != null) {\n window.clearTimeout(this._progressChecker);\n this._progressChecker = null;\n }\n\n var paused = false;\n\n if (this._transmuxer) {\n paused = this._transmuxer.isPaused();\n }\n\n if (this._mediaElement && !paused) {\n this._mediaElement.play();\n }\n\n return;\n }\n\n if (this._seekpointRecord) {\n console.log('_checkAndApplyUnbufferedSeekpoint seekpointRecord');\n\n if (this._seekpointRecord.recordTime <= this._now() - 100) {\n var target = this._mediaElement.currentTime;\n this._seekpointRecord = null;\n\n if (!this._isTimepointBuffered(target)) {\n if (this._progressChecker != null) {\n window.clearTimeout(this._progressChecker);\n this._progressChecker = null;\n } // .currentTime is consists with .buffered timestamp\n // Chrome/Edge use DTS, while FireFox/Safari use PTS\n\n\n this._msectl.seek(target);\n\n this._transmuxer.seek(Math.floor(target * 1000)); // set currentTime if accurateSeek, or wait for recommend_seekpoint callback\n\n\n if (this._config.accurateSeek) {\n this._requestSetTime = true;\n this._mediaElement.currentTime = target; //gavin\n\n if (this.isFlv && this.playTally > 0) {//console.log(\"_checkAndApplyUnbufferedSeekpoint. RETURN...\");\n // this._transmuxer.seek(0);\n //return;\n }\n }\n }\n } else {\n console.log('_checkAndApplyUnbufferedSeekpoint setTimeout(50)');\n window.setTimeout(this._checkAndApplyUnbufferedSeekpoint.bind(this), 50);\n }\n }\n };\n\n _proto._checkAndResumeStuckPlayback = function _checkAndResumeStuckPlayback(stalled) {\n return;\n console.log('_checkAndResumeStuckPlayback: ' + stalled);\n var media = this._mediaElement;\n\n if (stalled || !this._receivedCanPlay || media.readyState < 2) {\n // HAVE_CURRENT_DATA\n var buffered = media.buffered;\n\n if (buffered.length > 0 && media.currentTime < buffered.start(0)) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].w(this.TAG, \"Playback seems stuck at \" + media.currentTime + \", seek to \" + buffered.start(0));\n this._requestSetTime = true; //this._mediaElement.pause(); //gavin\n\n this._mediaElement.currentTime = buffered.start(0); //this._mediaElement.play(); //gavin\n\n this._mediaElement.removeEventListener('progress', this.e.onvProgress);\n }\n } else {\n // Playback didn't stuck, remove progress event listener\n this._mediaElement.removeEventListener('progress', this.e.onvProgress); //console.log(\"this._mediaElement.removeEventListener('progress'\");\n\n }\n };\n\n _proto._onvLoadedMetadata = function _onvLoadedMetadata(e) {\n if (this._pendingSeekTime != null) {\n this._mediaElement.currentTime = this._pendingSeekTime;\n this._pendingSeekTime = null;\n }\n };\n\n _proto._onvSeeking = function _onvSeeking(e) {\n // handle seeking request from browser's progress bar\n var target = this._mediaElement.currentTime;\n var buffered = this._mediaElement.buffered; //console.log(\"_onvSeeking: target:\" + target + \" buffered.length: \" + buffered.length);\n\n if (this._requestSetTime) {\n this._requestSetTime = false;\n return;\n }\n\n if (target < 1.0 && buffered.length > 0) {\n // seek to video begin, set currentTime directly if beginPTS buffered\n var videoBeginTime = buffered.start(0);\n\n if (videoBeginTime < 1.0 && target < videoBeginTime || _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].safari) {\n this._requestSetTime = true; // also workaround for Safari: Seek to 0 may cause video stuck, use 0.1 to avoid\n\n this._mediaElement.currentTime = _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].safari ? 0.1 : videoBeginTime;\n console.log('this._mediaElement.currentTime: ' + this._mediaElement.currentTime);\n return;\n }\n }\n\n if (this._isTimepointBuffered(target)) {\n if (this._alwaysSeekKeyframe) {\n var idr = this._msectl.getNearestKeyframe(Math.floor(target * 1000));\n\n if (idr != null) {\n this._requestSetTime = true;\n this._mediaElement.currentTime = idr.dts / 1000;\n console.log('_isTimepointBuffered this._mediaElement.currentTime: ' + this._mediaElement.currentTime);\n }\n }\n\n if (this._progressChecker != null) {\n this._checkProgressAndResume();\n }\n\n return;\n }\n\n this._seekpointRecord = {\n seekPoint: target,\n recordTime: this._now()\n };\n window.setTimeout(this._checkAndApplyUnbufferedSeekpoint.bind(this), 50);\n };\n\n _proto._onvCanPlay = function _onvCanPlay(e) {\n this._receivedCanPlay = true;\n\n this._mediaElement.removeEventListener('canplay', this.e.onvCanPlay);\n };\n\n _proto._onvStalled = function _onvStalled(e) {\n this._checkAndResumeStuckPlayback(true);\n };\n\n _proto._onvProgress = function _onvProgress(e) {\n this._checkAndResumeStuckPlayback();\n };\n\n _proto._onvWaiting = function _onvWaiting(e) {\n //console.log(\"wait for data....\");\n return;\n this.waitingForData = true;\n\n if (this.playTally >= 1) {\n //this._checkAndResumeStuckPlayback(true);\n var media = this._mediaElement;\n var buffered = media.buffered;\n\n if (buffered.length > 0) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].w(this.TAG, \"waiting... Playback seems stuck at \" + media.currentTime + \", seek to \" + buffered.start(0));\n this._requestSetTime = true;\n var end = buffered.end(buffered.length - 1);\n this._mediaElement.currentTime = end - 1; // buffered.start(0) + (buffered.end(0) - buffered.start(0) / 2);\n\n console.log('waiting... set currentTime: ' + (end - 1)); //buffered.end(0));\n } else {\n console.log('waiting... no buffer'); //this._transmuxer.seekToSecs(0, 0);\n //this._msectl._doAppendSegments();\n //this._mediaElement.play();\n //this._mediaElement.currentTime += 3;\n } //this._mediaElement.currentTime = this._msectl.GetSourceBufferStartTime();\n //this._mediaElement.currentTime = 0;\n //this._msectl.reset(true);\n\n }\n };\n\n _proto._onvPlaying = function _onvPlaying(e) {\n //console.log(\"Playing...\");\n this.waitingForData = false;\n this.playTally++;\n };\n\n _proto.snapshot = function snapshot() {\n if (this._transmuxer && this._transmuxer != undefined) {\n this._transmuxer.snapshot();\n }\n };\n\n _createClass(FlvPlayer, [{\n key: \"type\",\n get: function get() {\n return this._type;\n }\n }, {\n key: \"buffered\",\n get: function get() {\n return this._mediaElement.buffered;\n }\n }, {\n key: \"duration\",\n get: function get() {\n return this._mediaElement.duration;\n }\n }, {\n key: \"volume\",\n get: function get() {\n return this._mediaElement.volume;\n },\n set: function set(value) {\n this._mediaElement.volume = value;\n }\n }, {\n key: \"muted\",\n get: function get() {\n return this._mediaElement.muted;\n },\n set: function set(muted) {\n this._mediaElement.muted = muted;\n }\n }, {\n key: \"currentTime\",\n get: function get() {\n if (this._mediaElement) {\n return this._mediaElement.currentTime;\n }\n\n return 0;\n },\n set: function set(seconds) {\n if (this._mediaElement) {\n this._internalSeek(seconds);\n } else {\n this._pendingSeekTime = seconds;\n }\n }\n }, {\n key: \"mediaInfo\",\n get: function get() {\n return Object.assign({}, this._mediaInfo);\n }\n }, {\n key: \"statisticsInfo\",\n get: function get() {\n if (this._statisticsInfo == null) {\n this._statisticsInfo = {};\n }\n\n this._statisticsInfo = this._fillStatisticsInfo(this._statisticsInfo);\n return Object.assign({}, this._statisticsInfo);\n }\n }]);\n\n return FlvPlayer;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FlvPlayer);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/player/flv-player.js?"); | ||
| 3413 | + | ||
| 3414 | +/***/ }), | ||
| 3415 | + | ||
| 3416 | +/***/ "./src/FlvPlayer/flv.js/player/native-player.js": | ||
| 3417 | +/*!******************************************************!*\ | ||
| 3418 | + !*** ./src/FlvPlayer/flv.js/player/native-player.js ***! | ||
| 3419 | + \******************************************************/ | ||
| 3420 | +/*! exports provided: default */ | ||
| 3421 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3422 | + | ||
| 3423 | +"use strict"; | ||
| 3424 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! events */ \"./node_modules/node-libs-browser/node_modules/events/events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _player_events_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./player-events.js */ \"./src/FlvPlayer/flv.js/player/player-events.js\");\n/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../config.js */ \"./src/FlvPlayer/flv.js/config.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/FlvPlayer/flv.js/utils/exception.js\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n // Player wrapper for browser's native player (HTMLVideoElement) without MediaSource src.\n\nvar NativePlayer = /*#__PURE__*/function () {\n function NativePlayer(mediaDataSource, h5Video, callbackPlayTimeFunc, callbackUserPtr, config) {\n this.TAG = 'NativePlayer';\n this._type = 'NativePlayer';\n this._emitter = new events__WEBPACK_IMPORTED_MODULE_0___default.a();\n this._config = Object(_config_js__WEBPACK_IMPORTED_MODULE_2__[\"createDefaultConfig\"])();\n\n if (typeof config === 'object') {\n Object.assign(this._config, config);\n }\n\n if (mediaDataSource.type.toLowerCase() === 'flv') {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_3__[\"InvalidArgumentException\"]('NativePlayer does\\'t support flv MediaDataSource input!');\n }\n\n if (mediaDataSource.hasOwnProperty('segments')) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_3__[\"InvalidArgumentException\"](\"NativePlayer(\" + mediaDataSource.type + \") doesn't support multipart playback!\");\n }\n\n this.e = {\n onvLoadedMetadata: this._onvLoadedMetadata.bind(this)\n };\n this._pendingSeekTime = null;\n this._statisticsReporter = null;\n this._mediaDataSource = mediaDataSource;\n this._mediaElement = null;\n this.pauseDisplay = false;\n this.h5Video = h5Video;\n this.callbackPlayTimeFunc = callbackPlayTimeFunc;\n this.callbackUserPtr = callbackUserPtr;\n }\n\n var _proto = NativePlayer.prototype;\n\n _proto.destroy = function destroy() {\n if (this._mediaElement) {\n this.unload();\n this.detachMediaElement();\n }\n\n this.e = null;\n this._mediaDataSource = null;\n\n this._emitter.removeAllListeners();\n\n this._emitter = null;\n };\n\n _proto.on = function on(event, listener) {\n var _this = this;\n\n if (event === _player_events_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].MEDIA_INFO) {\n if (this._mediaElement != null && this._mediaElement.readyState !== 0) {\n // HAVE_NOTHING\n Promise.resolve().then(function () {\n _this._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].MEDIA_INFO, _this.mediaInfo);\n });\n }\n } else if (event === _player_events_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].STATISTICS_INFO) {\n if (this._mediaElement != null && this._mediaElement.readyState !== 0) {\n Promise.resolve().then(function () {\n _this._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].STATISTICS_INFO, _this.statisticsInfo);\n });\n }\n }\n\n this._emitter.addListener(event, listener);\n };\n\n _proto.off = function off(event, listener) {\n this._emitter.removeListener(event, listener);\n };\n\n _proto.attachMediaElement = function attachMediaElement(mediaElement) {\n this._mediaElement = mediaElement;\n mediaElement.addEventListener('loadedmetadata', this.e.onvLoadedMetadata);\n\n if (this._pendingSeekTime != null) {\n try {\n mediaElement.currentTime = this._pendingSeekTime;\n this._pendingSeekTime = null;\n } catch (e) {// IE11 may throw InvalidStateError if readyState === 0\n // Defer set currentTime operation after loadedmetadata\n }\n }\n };\n\n _proto.detachMediaElement = function detachMediaElement() {\n if (this._mediaElement) {\n this._mediaElement.src = '';\n\n this._mediaElement.removeAttribute('src');\n\n this._mediaElement.removeEventListener('loadedmetadata', this.e.onvLoadedMetadata);\n\n this._mediaElement = null;\n }\n\n if (this._statisticsReporter != null) {\n window.clearInterval(this._statisticsReporter);\n this._statisticsReporter = null;\n }\n };\n\n _proto.load = function load() {\n if (!this._mediaElement) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_3__[\"IllegalStateException\"]('HTMLMediaElement must be attached before load()!');\n }\n\n this._mediaElement.src = this._mediaDataSource.url;\n\n if (this._mediaElement.readyState > 0) {\n this._mediaElement.currentTime = 0;\n }\n\n this._mediaElement.preload = 'auto';\n\n this._mediaElement.load();\n\n this._statisticsReporter = window.setInterval(this._reportStatisticsInfo.bind(this), this._config.statisticsInfoReportInterval);\n };\n\n _proto.unload = function unload() {\n if (this._mediaElement) {\n this._mediaElement.src = '';\n\n this._mediaElement.removeAttribute('src');\n }\n\n if (this._statisticsReporter != null) {\n window.clearInterval(this._statisticsReporter);\n this._statisticsReporter = null;\n }\n };\n\n _proto.play = function play() {\n if (!this.pauseDisplay) {\n this.attachMediaElement(this.h5Video);\n this.load();\n }\n\n this.pauseDisplay = false;\n return this._mediaElement.play();\n };\n\n _proto.stop = function stop() {\n this.unload();\n this.detachMediaElement();\n };\n\n _proto.pause = function pause() {\n this._mediaElement.pause();\n\n this.pauseDisplay = true;\n };\n\n _proto.isPause = function isPause() {\n return this.pauseDisplay;\n };\n\n _proto.openAudio = function openAudio() {\n this._mediaElement.volume = 1;\n return true;\n };\n\n _proto.closeAudio = function closeAudio() {\n this._mediaElement.volume = 0;\n return true;\n };\n\n _proto.seek = function seek(seekValue, seekType) {\n var seekTimeSecs = seekValue; //Ĭ��Ϊ�ⲿ��ֵ(��)\n\n if (seekType == 1) {\n //�϶�������, Ϊ�ٷֱ�, ������ת��Ϊ��\n seekTimeSecs = seekValue / 100 * this._mediaElement.duration;\n }\n\n if (this._mediaElement) {\n this._mediaElement.currentTime = seekTimeSecs;\n } else {\n this._pendingSeekTime = seekTimeSecs;\n }\n };\n\n _proto._onvLoadedMetadata = function _onvLoadedMetadata(e) {\n if (this._pendingSeekTime != null) {\n this._mediaElement.currentTime = this._pendingSeekTime;\n this._pendingSeekTime = null;\n }\n\n this._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].MEDIA_INFO, this.mediaInfo);\n };\n\n _proto._reportStatisticsInfo = function _reportStatisticsInfo() {\n this._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].STATISTICS_INFO, this.statisticsInfo);\n };\n\n _createClass(NativePlayer, [{\n key: \"type\",\n get: function get() {\n return this._type;\n }\n }, {\n key: \"buffered\",\n get: function get() {\n return this._mediaElement.buffered;\n }\n }, {\n key: \"duration\",\n get: function get() {\n return this._mediaElement.duration;\n }\n }, {\n key: \"volume\",\n get: function get() {\n return this._mediaElement.volume;\n },\n set: function set(value) {\n this._mediaElement.volume = value;\n }\n }, {\n key: \"muted\",\n get: function get() {\n return this._mediaElement.muted;\n },\n set: function set(muted) {\n this._mediaElement.muted = muted;\n }\n }, {\n key: \"currentTime\",\n get: function get() {\n if (this._mediaElement) {\n return this._mediaElement.currentTime;\n }\n\n return 0;\n },\n set: function set(seconds) {\n if (this._mediaElement) {\n this._mediaElement.currentTime = seconds;\n } else {\n this._pendingSeekTime = seconds;\n }\n }\n }, {\n key: \"mediaInfo\",\n get: function get() {\n var mediaPrefix = this._mediaElement instanceof HTMLAudioElement ? 'audio/' : 'video/';\n var info = {\n mimeType: mediaPrefix + this._mediaDataSource.type\n };\n\n if (this._mediaElement) {\n info.duration = Math.floor(this._mediaElement.duration * 1000);\n\n if (this._mediaElement instanceof HTMLVideoElement) {\n info.width = this._mediaElement.videoWidth;\n info.height = this._mediaElement.videoHeight;\n }\n\n if (this.callbackPlayTimeFunc) {\n this.callbackPlayTimeFunc(this.callbackUserPtr, 'mp4', this._mediaElement.currentTime, info.duration / 1000);\n }\n\n var self = this;\n var currentPlayTime = 0;\n var totalDuration = info.duration / 1000;\n\n this._mediaElement.addEventListener('timeupdate', function () {\n //����������ʾ��ǰ���Ž���\n if (self._mediaElement) {\n var t = self._mediaElement.currentTime;\n\n if (t != null) {\n var timeDisplay = Math.floor(t);\n\n if (currentPlayTime != timeDisplay) {\n //self._currentPlayTime = Math.floor(mediaElement.currentTime);\n currentPlayTime = timeDisplay;\n self.callbackPlayTimeFunc(self.callbackUserPtr, 'mp4', currentPlayTime, totalDuration);\n }\n }\n }\n }, false);\n }\n\n return info;\n }\n }, {\n key: \"statisticsInfo\",\n get: function get() {\n var info = {\n playerType: this._type,\n url: this._mediaDataSource.url\n };\n\n if (!(this._mediaElement instanceof HTMLVideoElement)) {\n return info;\n }\n\n var hasQualityInfo = true;\n var decoded = 0;\n var dropped = 0;\n\n if (this._mediaElement.getVideoPlaybackQuality) {\n var quality = this._mediaElement.getVideoPlaybackQuality();\n\n decoded = quality.totalVideoFrames;\n dropped = quality.droppedVideoFrames;\n } else if (this._mediaElement.webkitDecodedFrameCount != undefined) {\n decoded = this._mediaElement.webkitDecodedFrameCount;\n dropped = this._mediaElement.webkitDroppedFrameCount;\n } else {\n hasQualityInfo = false;\n }\n\n if (hasQualityInfo) {\n info.decodedFrames = decoded;\n info.droppedFrames = dropped;\n }\n\n return info;\n }\n }]);\n\n return NativePlayer;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (NativePlayer);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/player/native-player.js?"); | ||
| 3425 | + | ||
| 3426 | +/***/ }), | ||
| 3427 | + | ||
| 3428 | +/***/ "./src/FlvPlayer/flv.js/player/player-errors.js": | ||
| 3429 | +/*!******************************************************!*\ | ||
| 3430 | + !*** ./src/FlvPlayer/flv.js/player/player-errors.js ***! | ||
| 3431 | + \******************************************************/ | ||
| 3432 | +/*! exports provided: ErrorTypes, ErrorDetails */ | ||
| 3433 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3434 | + | ||
| 3435 | +"use strict"; | ||
| 3436 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ErrorTypes\", function() { return ErrorTypes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ErrorDetails\", function() { return ErrorDetails; });\n/* harmony import */ var _io_loader_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../io/loader.js */ \"./src/FlvPlayer/flv.js/io/loader.js\");\n/* harmony import */ var _demux_demux_errors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../demux/demux-errors.js */ \"./src/FlvPlayer/flv.js/demux/demux-errors.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nvar ErrorTypes = {\n NETWORK_ERROR: 'NetworkError',\n MEDIA_ERROR: 'MediaError',\n OTHER_ERROR: 'OtherError'\n};\nvar ErrorDetails = {\n NETWORK_EXCEPTION: _io_loader_js__WEBPACK_IMPORTED_MODULE_0__[\"LoaderErrors\"].EXCEPTION,\n NETWORK_STATUS_CODE_INVALID: _io_loader_js__WEBPACK_IMPORTED_MODULE_0__[\"LoaderErrors\"].HTTP_STATUS_CODE_INVALID,\n NETWORK_TIMEOUT: _io_loader_js__WEBPACK_IMPORTED_MODULE_0__[\"LoaderErrors\"].CONNECTING_TIMEOUT,\n NETWORK_UNRECOVERABLE_EARLY_EOF: _io_loader_js__WEBPACK_IMPORTED_MODULE_0__[\"LoaderErrors\"].UNRECOVERABLE_EARLY_EOF,\n MEDIA_MSE_ERROR: 'MediaMSEError',\n MEDIA_FORMAT_ERROR: _demux_demux_errors_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].FORMAT_ERROR,\n MEDIA_FORMAT_UNSUPPORTED: _demux_demux_errors_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].FORMAT_UNSUPPORTED,\n MEDIA_CODEC_UNSUPPORTED: _demux_demux_errors_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].CODEC_UNSUPPORTED\n};\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/player/player-errors.js?"); | ||
| 3437 | + | ||
| 3438 | +/***/ }), | ||
| 3439 | + | ||
| 3440 | +/***/ "./src/FlvPlayer/flv.js/player/player-events.js": | ||
| 3441 | +/*!******************************************************!*\ | ||
| 3442 | + !*** ./src/FlvPlayer/flv.js/player/player-events.js ***! | ||
| 3443 | + \******************************************************/ | ||
| 3444 | +/*! exports provided: default */ | ||
| 3445 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3446 | + | ||
| 3447 | +"use strict"; | ||
| 3448 | +eval("__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar PlayerEvents = {\n ERROR: 'error',\n LOADING_COMPLETE: 'loading_complete',\n RECOVERED_EARLY_EOF: 'recovered_early_eof',\n MEDIA_INFO: 'media_info',\n METADATA_ARRIVED: 'metadata_arrived',\n SCRIPTDATA_ARRIVED: 'scriptdata_arrived',\n STATISTICS_INFO: 'statistics_info'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (PlayerEvents);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/player/player-events.js?"); | ||
| 3449 | + | ||
| 3450 | +/***/ }), | ||
| 3451 | + | ||
| 3452 | +/***/ "./src/FlvPlayer/flv.js/remux/aac-silent.js": | ||
| 3453 | +/*!**************************************************!*\ | ||
| 3454 | + !*** ./src/FlvPlayer/flv.js/remux/aac-silent.js ***! | ||
| 3455 | + \**************************************************/ | ||
| 3456 | +/*! exports provided: default */ | ||
| 3457 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3458 | + | ||
| 3459 | +"use strict"; | ||
| 3460 | +eval("__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * This file is modified from dailymotion's hls.js library (hls.js/src/helper/aac.js)\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar AAC = /*#__PURE__*/function () {\n function AAC() {}\n\n AAC.getSilentFrame = function getSilentFrame(codec, channelCount) {\n if (codec === 'mp4a.40.2') {\n // handle LC-AAC\n if (channelCount === 1) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x23, 0x80]);\n } else if (channelCount === 2) {\n return new Uint8Array([0x21, 0x00, 0x49, 0x90, 0x02, 0x19, 0x00, 0x23, 0x80]);\n } else if (channelCount === 3) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x8e]);\n } else if (channelCount === 4) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x80, 0x2c, 0x80, 0x08, 0x02, 0x38]);\n } else if (channelCount === 5) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x38]);\n } else if (channelCount === 6) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x00, 0xb2, 0x00, 0x20, 0x08, 0xe0]);\n }\n } else {\n // handle HE-AAC (mp4a.40.5 / mp4a.40.29)\n if (channelCount === 1) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0:d=0.05\" -c:a libfdk_aac -profile:a aac_he -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x4e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x1c, 0x6, 0xf1, 0xc1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n } else if (channelCount === 2) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0|0:d=0.05\" -c:a libfdk_aac -profile:a aac_he_v2 -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n } else if (channelCount === 3) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0|0|0:d=0.05\" -c:a libfdk_aac -profile:a aac_he_v2 -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n }\n }\n\n return null;\n };\n\n return AAC;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (AAC);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/remux/aac-silent.js?"); | ||
| 3461 | + | ||
| 3462 | +/***/ }), | ||
| 3463 | + | ||
| 3464 | +/***/ "./src/FlvPlayer/flv.js/remux/mp4-generator.js": | ||
| 3465 | +/*!*****************************************************!*\ | ||
| 3466 | + !*** ./src/FlvPlayer/flv.js/remux/mp4-generator.js ***! | ||
| 3467 | + \*****************************************************/ | ||
| 3468 | +/*! exports provided: default */ | ||
| 3469 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3470 | + | ||
| 3471 | +"use strict"; | ||
| 3472 | +eval("__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * This file is derived from dailymotion's hls.js library (hls.js/src/remux/mp4-generator.js)\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// MP4 boxes generator for ISO BMFF (ISO Base Media File Format, defined in ISO/IEC 14496-12)\nvar MP4 = /*#__PURE__*/function () {\n function MP4() {}\n\n MP4.init = function init() {\n MP4.types = {\n avc1: [],\n avcC: [],\n btrt: [],\n dinf: [],\n dref: [],\n esds: [],\n ftyp: [],\n hdlr: [],\n mdat: [],\n mdhd: [],\n mdia: [],\n mfhd: [],\n minf: [],\n moof: [],\n moov: [],\n mp4a: [],\n mvex: [],\n mvhd: [],\n sdtp: [],\n stbl: [],\n stco: [],\n stsc: [],\n stsd: [],\n stsz: [],\n stts: [],\n tfdt: [],\n tfhd: [],\n traf: [],\n trak: [],\n trun: [],\n trex: [],\n tkhd: [],\n vmhd: [],\n smhd: [],\n '.mp3': []\n };\n\n for (var name in MP4.types) {\n if (MP4.types.hasOwnProperty(name)) {\n MP4.types[name] = [name.charCodeAt(0), name.charCodeAt(1), name.charCodeAt(2), name.charCodeAt(3)];\n }\n }\n\n var constants = MP4.constants = {};\n constants.FTYP = new Uint8Array([0x69, 0x73, 0x6F, 0x6D, // major_brand: isom\n 0x0, 0x0, 0x0, 0x1, // minor_version: 0x01\n 0x69, 0x73, 0x6F, 0x6D, // isom\n 0x61, 0x76, 0x63, 0x31 // avc1\n ]);\n constants.STSD_PREFIX = new Uint8Array([0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x01 // entry_count\n ]);\n constants.STTS = new Uint8Array([0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00 // entry_count\n ]);\n constants.STSC = constants.STCO = constants.STTS;\n constants.STSZ = new Uint8Array([0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // sample_size\n 0x00, 0x00, 0x00, 0x00 // sample_count\n ]);\n constants.HDLR_VIDEO = new Uint8Array([0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // pre_defined\n 0x76, 0x69, 0x64, 0x65, // handler_type: 'vide'\n 0x00, 0x00, 0x00, 0x00, // reserved: 3 * 4 bytes\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x69, 0x64, 0x65, 0x6F, 0x48, 0x61, 0x6E, 0x64, 0x6C, 0x65, 0x72, 0x00 // name: VideoHandler\n ]);\n constants.HDLR_AUDIO = new Uint8Array([0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // pre_defined\n 0x73, 0x6F, 0x75, 0x6E, // handler_type: 'soun'\n 0x00, 0x00, 0x00, 0x00, // reserved: 3 * 4 bytes\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x6F, 0x75, 0x6E, 0x64, 0x48, 0x61, 0x6E, 0x64, 0x6C, 0x65, 0x72, 0x00 // name: SoundHandler\n ]);\n constants.DREF = new Uint8Array([0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x01, // entry_count\n 0x00, 0x00, 0x00, 0x0C, // entry_size\n 0x75, 0x72, 0x6C, 0x20, // type 'url '\n 0x00, 0x00, 0x00, 0x01 // version(0) + flags\n ]); // Sound media header\n\n constants.SMHD = new Uint8Array([0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00 // balance(2) + reserved(2)\n ]); // video media header\n\n constants.VMHD = new Uint8Array([0x00, 0x00, 0x00, 0x01, // version(0) + flags\n 0x00, 0x00, // graphicsmode: 2 bytes\n 0x00, 0x00, 0x00, 0x00, // opcolor: 3 * 2 bytes\n 0x00, 0x00]);\n } // Generate a box\n ;\n\n MP4.box = function box(type) {\n var size = 8;\n var result = null;\n var datas = Array.prototype.slice.call(arguments, 1);\n var arrayCount = datas.length;\n\n for (var i = 0; i < arrayCount; i++) {\n size += datas[i].byteLength;\n }\n\n result = new Uint8Array(size);\n result[0] = size >>> 24 & 0xFF; // size\n\n result[1] = size >>> 16 & 0xFF;\n result[2] = size >>> 8 & 0xFF;\n result[3] = size & 0xFF;\n result.set(type, 4); // type\n\n var offset = 8;\n\n for (var _i = 0; _i < arrayCount; _i++) {\n // data body\n result.set(datas[_i], offset);\n offset += datas[_i].byteLength;\n }\n\n return result;\n } // emit ftyp & moov\n ;\n\n MP4.generateInitSegment = function generateInitSegment(meta) {\n var ftyp = MP4.box(MP4.types.ftyp, MP4.constants.FTYP);\n var moov = MP4.moov(meta);\n var result = new Uint8Array(ftyp.byteLength + moov.byteLength);\n result.set(ftyp, 0);\n result.set(moov, ftyp.byteLength);\n return result;\n } // Movie metadata box\n ;\n\n MP4.moov = function moov(meta) {\n var mvhd = MP4.mvhd(meta.timescale, meta.duration);\n var trak = MP4.trak(meta);\n var mvex = MP4.mvex(meta);\n return MP4.box(MP4.types.moov, mvhd, trak, mvex);\n } // Movie header box\n ;\n\n MP4.mvhd = function mvhd(timescale, duration) {\n return MP4.box(MP4.types.mvhd, new Uint8Array([0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // creation_time\n 0x00, 0x00, 0x00, 0x00, // modification_time\n timescale >>> 24 & 0xFF, // timescale: 4 bytes\n timescale >>> 16 & 0xFF, timescale >>> 8 & 0xFF, timescale & 0xFF, duration >>> 24 & 0xFF, // duration: 4 bytes\n duration >>> 16 & 0xFF, duration >>> 8 & 0xFF, duration & 0xFF, 0x00, 0x01, 0x00, 0x00, // Preferred rate: 1.0\n 0x01, 0x00, 0x00, 0x00, // PreferredVolume(1.0, 2bytes) + reserved(2bytes)\n 0x00, 0x00, 0x00, 0x00, // reserved: 4 + 4 bytes\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ----begin composition matrix----\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // ----end composition matrix----\n 0x00, 0x00, 0x00, 0x00, // ----begin pre_defined 6 * 4 bytes----\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ----end pre_defined 6 * 4 bytes----\n 0xFF, 0xFF, 0xFF, 0xFF // next_track_ID\n ]));\n } // Track box\n ;\n\n MP4.trak = function trak(meta) {\n return MP4.box(MP4.types.trak, MP4.tkhd(meta), MP4.mdia(meta));\n } // Track header box\n ;\n\n MP4.tkhd = function tkhd(meta) {\n var trackId = meta.id,\n duration = meta.duration;\n var width = meta.presentWidth,\n height = meta.presentHeight;\n return MP4.box(MP4.types.tkhd, new Uint8Array([0x00, 0x00, 0x00, 0x07, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // creation_time\n 0x00, 0x00, 0x00, 0x00, // modification_time\n trackId >>> 24 & 0xFF, // track_ID: 4 bytes\n trackId >>> 16 & 0xFF, trackId >>> 8 & 0xFF, trackId & 0xFF, 0x00, 0x00, 0x00, 0x00, // reserved: 4 bytes\n duration >>> 24 & 0xFF, // duration: 4 bytes\n duration >>> 16 & 0xFF, duration >>> 8 & 0xFF, duration & 0xFF, 0x00, 0x00, 0x00, 0x00, // reserved: 2 * 4 bytes\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // layer(2bytes) + alternate_group(2bytes)\n 0x00, 0x00, 0x00, 0x00, // volume(2bytes) + reserved(2bytes)\n 0x00, 0x01, 0x00, 0x00, // ----begin composition matrix----\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // ----end composition matrix----\n width >>> 8 & 0xFF, // width and height\n width & 0xFF, 0x00, 0x00, height >>> 8 & 0xFF, height & 0xFF, 0x00, 0x00]));\n } // Media Box\n ;\n\n MP4.mdia = function mdia(meta) {\n return MP4.box(MP4.types.mdia, MP4.mdhd(meta), MP4.hdlr(meta), MP4.minf(meta));\n } // Media header box\n ;\n\n MP4.mdhd = function mdhd(meta) {\n var timescale = meta.timescale;\n var duration = meta.duration;\n return MP4.box(MP4.types.mdhd, new Uint8Array([0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // creation_time\n 0x00, 0x00, 0x00, 0x00, // modification_time\n timescale >>> 24 & 0xFF, // timescale: 4 bytes\n timescale >>> 16 & 0xFF, timescale >>> 8 & 0xFF, timescale & 0xFF, duration >>> 24 & 0xFF, // duration: 4 bytes\n duration >>> 16 & 0xFF, duration >>> 8 & 0xFF, duration & 0xFF, 0x55, 0xC4, // language: und (undetermined)\n 0x00, 0x00 // pre_defined = 0\n ]));\n } // Media handler reference box\n ;\n\n MP4.hdlr = function hdlr(meta) {\n var data = null;\n\n if (meta.type === 'audio') {\n data = MP4.constants.HDLR_AUDIO;\n } else {\n data = MP4.constants.HDLR_VIDEO;\n }\n\n return MP4.box(MP4.types.hdlr, data);\n } // Media infomation box\n ;\n\n MP4.minf = function minf(meta) {\n var xmhd = null;\n\n if (meta.type === 'audio') {\n xmhd = MP4.box(MP4.types.smhd, MP4.constants.SMHD);\n } else {\n xmhd = MP4.box(MP4.types.vmhd, MP4.constants.VMHD);\n }\n\n return MP4.box(MP4.types.minf, xmhd, MP4.dinf(), MP4.stbl(meta));\n } // Data infomation box\n ;\n\n MP4.dinf = function dinf() {\n var result = MP4.box(MP4.types.dinf, MP4.box(MP4.types.dref, MP4.constants.DREF));\n return result;\n } // Sample table box\n ;\n\n MP4.stbl = function stbl(meta) {\n var result = MP4.box(MP4.types.stbl, // type: stbl\n MP4.stsd(meta), // Sample Description Table\n MP4.box(MP4.types.stts, MP4.constants.STTS), // Time-To-Sample\n MP4.box(MP4.types.stsc, MP4.constants.STSC), // Sample-To-Chunk\n MP4.box(MP4.types.stsz, MP4.constants.STSZ), // Sample size\n MP4.box(MP4.types.stco, MP4.constants.STCO) // Chunk offset\n );\n return result;\n } // Sample description box\n ;\n\n MP4.stsd = function stsd(meta) {\n if (meta.type === 'audio') {\n if (meta.codec === 'mp3') {\n return MP4.box(MP4.types.stsd, MP4.constants.STSD_PREFIX, MP4.mp3(meta));\n } // else: aac -> mp4a\n\n\n return MP4.box(MP4.types.stsd, MP4.constants.STSD_PREFIX, MP4.mp4a(meta));\n } else {\n return MP4.box(MP4.types.stsd, MP4.constants.STSD_PREFIX, MP4.avc1(meta));\n }\n };\n\n MP4.mp3 = function mp3(meta) {\n var channelCount = meta.channelCount;\n var sampleRate = meta.audioSampleRate;\n var data = new Uint8Array([0x00, 0x00, 0x00, 0x00, // reserved(4)\n 0x00, 0x00, 0x00, 0x01, // reserved(2) + data_reference_index(2)\n 0x00, 0x00, 0x00, 0x00, // reserved: 2 * 4 bytes\n 0x00, 0x00, 0x00, 0x00, 0x00, channelCount, // channelCount(2)\n 0x00, 0x10, // sampleSize(2)\n 0x00, 0x00, 0x00, 0x00, // reserved(4)\n sampleRate >>> 8 & 0xFF, // Audio sample rate\n sampleRate & 0xFF, 0x00, 0x00]);\n return MP4.box(MP4.types['.mp3'], data);\n };\n\n MP4.mp4a = function mp4a(meta) {\n var channelCount = meta.channelCount;\n var sampleRate = meta.audioSampleRate;\n var data = new Uint8Array([0x00, 0x00, 0x00, 0x00, // reserved(4)\n 0x00, 0x00, 0x00, 0x01, // reserved(2) + data_reference_index(2)\n 0x00, 0x00, 0x00, 0x00, // reserved: 2 * 4 bytes\n 0x00, 0x00, 0x00, 0x00, 0x00, channelCount, // channelCount(2)\n 0x00, 0x10, // sampleSize(2)\n 0x00, 0x00, 0x00, 0x00, // reserved(4)\n sampleRate >>> 8 & 0xFF, // Audio sample rate\n sampleRate & 0xFF, 0x00, 0x00]);\n return MP4.box(MP4.types.mp4a, data, MP4.esds(meta));\n };\n\n MP4.esds = function esds(meta) {\n var config = meta.config || [];\n var configSize = config.length;\n var data = new Uint8Array([0x00, 0x00, 0x00, 0x00, // version 0 + flags\n 0x03, // descriptor_type\n 0x17 + configSize, // length3\n 0x00, 0x01, // es_id\n 0x00, // stream_priority\n 0x04, // descriptor_type\n 0x0F + configSize, // length\n 0x40, // codec: mpeg4_audio\n 0x15, // stream_type: Audio\n 0x00, 0x00, 0x00, // buffer_size\n 0x00, 0x00, 0x00, 0x00, // maxBitrate\n 0x00, 0x00, 0x00, 0x00, // avgBitrate\n 0x05 // descriptor_type\n ].concat([configSize]).concat(config).concat([0x06, 0x01, 0x02 // GASpecificConfig\n ]));\n return MP4.box(MP4.types.esds, data);\n };\n\n MP4.avc1 = function avc1(meta) {\n var avcc = meta.avcc;\n var width = meta.codecWidth,\n height = meta.codecHeight;\n var data = new Uint8Array([0x00, 0x00, 0x00, 0x00, // reserved(4)\n 0x00, 0x00, 0x00, 0x01, // reserved(2) + data_reference_index(2)\n 0x00, 0x00, 0x00, 0x00, // pre_defined(2) + reserved(2)\n 0x00, 0x00, 0x00, 0x00, // pre_defined: 3 * 4 bytes\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, width >>> 8 & 0xFF, // width: 2 bytes\n width & 0xFF, height >>> 8 & 0xFF, // height: 2 bytes\n height & 0xFF, 0x00, 0x48, 0x00, 0x00, // horizresolution: 4 bytes\n 0x00, 0x48, 0x00, 0x00, // vertresolution: 4 bytes\n 0x00, 0x00, 0x00, 0x00, // reserved: 4 bytes\n 0x00, 0x01, // frame_count\n 0x0A, // strlen\n 0x78, 0x71, 0x71, 0x2F, // compressorname: 32 bytes\n 0x66, 0x6C, 0x76, 0x2E, 0x6A, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, // depth\n 0xFF, 0xFF // pre_defined = -1\n ]);\n return MP4.box(MP4.types.avc1, data, MP4.box(MP4.types.avcC, avcc));\n } // Movie Extends box\n ;\n\n MP4.mvex = function mvex(meta) {\n return MP4.box(MP4.types.mvex, MP4.trex(meta));\n } // Track Extends box\n ;\n\n MP4.trex = function trex(meta) {\n var trackId = meta.id;\n var data = new Uint8Array([0x00, 0x00, 0x00, 0x00, // version(0) + flags\n trackId >>> 24 & 0xFF, // track_ID\n trackId >>> 16 & 0xFF, trackId >>> 8 & 0xFF, trackId & 0xFF, 0x00, 0x00, 0x00, 0x01, // default_sample_description_index\n 0x00, 0x00, 0x00, 0x00, // default_sample_duration\n 0x00, 0x00, 0x00, 0x00, // default_sample_size\n 0x00, 0x01, 0x00, 0x01 // default_sample_flags\n ]);\n return MP4.box(MP4.types.trex, data);\n } // Movie fragment box\n ;\n\n MP4.moof = function moof(track, baseMediaDecodeTime) {\n return MP4.box(MP4.types.moof, MP4.mfhd(track.sequenceNumber), MP4.traf(track, baseMediaDecodeTime));\n };\n\n MP4.mfhd = function mfhd(sequenceNumber) {\n var data = new Uint8Array([0x00, 0x00, 0x00, 0x00, sequenceNumber >>> 24 & 0xFF, // sequence_number: int32\n sequenceNumber >>> 16 & 0xFF, sequenceNumber >>> 8 & 0xFF, sequenceNumber & 0xFF]);\n return MP4.box(MP4.types.mfhd, data);\n } // Track fragment box\n ;\n\n MP4.traf = function traf(track, baseMediaDecodeTime) {\n var trackId = track.id; // Track fragment header box\n\n var tfhd = MP4.box(MP4.types.tfhd, new Uint8Array([0x00, 0x00, 0x00, 0x00, // version(0) & flags\n trackId >>> 24 & 0xFF, // track_ID\n trackId >>> 16 & 0xFF, trackId >>> 8 & 0xFF, trackId & 0xFF])); // Track Fragment Decode Time\n\n var tfdt = MP4.box(MP4.types.tfdt, new Uint8Array([0x00, 0x00, 0x00, 0x00, // version(0) & flags\n baseMediaDecodeTime >>> 24 & 0xFF, // baseMediaDecodeTime: int32\n baseMediaDecodeTime >>> 16 & 0xFF, baseMediaDecodeTime >>> 8 & 0xFF, baseMediaDecodeTime & 0xFF]));\n var sdtp = MP4.sdtp(track);\n var trun = MP4.trun(track, sdtp.byteLength + 16 + 16 + 8 + 16 + 8 + 8);\n return MP4.box(MP4.types.traf, tfhd, tfdt, trun, sdtp);\n } // Sample Dependency Type box\n ;\n\n MP4.sdtp = function sdtp(track) {\n var samples = track.samples || [];\n var sampleCount = samples.length;\n var data = new Uint8Array(4 + sampleCount); // 0~4 bytes: version(0) & flags\n\n for (var i = 0; i < sampleCount; i++) {\n var flags = samples[i].flags;\n data[i + 4] = flags.isLeading << 6 // is_leading: 2 (bit)\n | flags.dependsOn << 4 // sample_depends_on\n | flags.isDependedOn << 2 // sample_is_depended_on\n | flags.hasRedundancy; // sample_has_redundancy\n }\n\n return MP4.box(MP4.types.sdtp, data);\n } // Track fragment run box\n ;\n\n MP4.trun = function trun(track, offset) {\n var samples = track.samples || [];\n var sampleCount = samples.length;\n var dataSize = 12 + 16 * sampleCount;\n var data = new Uint8Array(dataSize);\n offset += 8 + dataSize;\n data.set([0x00, 0x00, 0x0F, 0x01, // version(0) & flags\n sampleCount >>> 24 & 0xFF, // sample_count\n sampleCount >>> 16 & 0xFF, sampleCount >>> 8 & 0xFF, sampleCount & 0xFF, offset >>> 24 & 0xFF, // data_offset\n offset >>> 16 & 0xFF, offset >>> 8 & 0xFF, offset & 0xFF], 0);\n\n for (var i = 0; i < sampleCount; i++) {\n var duration = samples[i].duration;\n var size = samples[i].size;\n var flags = samples[i].flags;\n var cts = samples[i].cts;\n data.set([duration >>> 24 & 0xFF, // sample_duration\n duration >>> 16 & 0xFF, duration >>> 8 & 0xFF, duration & 0xFF, size >>> 24 & 0xFF, // sample_size\n size >>> 16 & 0xFF, size >>> 8 & 0xFF, size & 0xFF, flags.isLeading << 2 | flags.dependsOn, // sample_flags\n flags.isDependedOn << 6 | flags.hasRedundancy << 4 | flags.isNonSync, 0x00, 0x00, // sample_degradation_priority\n cts >>> 24 & 0xFF, // sample_composition_time_offset\n cts >>> 16 & 0xFF, cts >>> 8 & 0xFF, cts & 0xFF], 12 + 16 * i);\n }\n\n return MP4.box(MP4.types.trun, data);\n };\n\n MP4.mdat = function mdat(data) {\n return MP4.box(MP4.types.mdat, data);\n };\n\n return MP4;\n}();\n\nMP4.init();\n/* harmony default export */ __webpack_exports__[\"default\"] = (MP4);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/remux/mp4-generator.js?"); | ||
| 3473 | + | ||
| 3474 | +/***/ }), | ||
| 3475 | + | ||
| 3476 | +/***/ "./src/FlvPlayer/flv.js/remux/mp4-remuxer.js": | ||
| 3477 | +/*!***************************************************!*\ | ||
| 3478 | + !*** ./src/FlvPlayer/flv.js/remux/mp4-remuxer.js ***! | ||
| 3479 | + \***************************************************/ | ||
| 3480 | +/*! exports provided: default */ | ||
| 3481 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3482 | + | ||
| 3483 | +"use strict"; | ||
| 3484 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/FlvPlayer/flv.js/utils/logger.js\");\n/* harmony import */ var _mp4_generator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mp4-generator.js */ \"./src/FlvPlayer/flv.js/remux/mp4-generator.js\");\n/* harmony import */ var _aac_silent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./aac-silent.js */ \"./src/FlvPlayer/flv.js/remux/aac-silent.js\");\n/* harmony import */ var _utils_browser_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/browser.js */ \"./src/FlvPlayer/flv.js/utils/browser.js\");\n/* harmony import */ var _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/media-segment-info.js */ \"./src/FlvPlayer/flv.js/core/media-segment-info.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/FlvPlayer/flv.js/utils/exception.js\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\n\n // Fragmented mp4 remuxer\n\nvar MP4Remuxer = /*#__PURE__*/function () {\n function MP4Remuxer(config) {\n this.TAG = 'MP4Remuxer';\n this._config = config;\n this._isLive = config.isLive === true ? true : false;\n this._dtsBase = -1;\n this._dtsBaseInited = false;\n this._audioDtsBase = Infinity;\n this._videoDtsBase = Infinity;\n this._audioNextDts = undefined;\n this._videoNextDts = undefined;\n this._audioStashedLastSample = null;\n this._videoStashedLastSample = null;\n this._audioMeta = null;\n this._videoMeta = null;\n this._adjustPts = 0; //gavin\n\n this._lastAdjustVideoPts = 0;\n this._lastVideoPts = 0;\n this._audioSegmentInfoList = new _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__[\"MediaSegmentInfoList\"]('audio');\n this._videoSegmentInfoList = new _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__[\"MediaSegmentInfoList\"]('video');\n this._onInitSegment = null;\n this._onMediaSegment = null; // Workaround for chrome < 50: Always force first sample as a Random Access Point in media segment\n // see https://bugs.chromium.org/p/chromium/issues/detail?id=229412\n\n this._forceFirstIDR = _utils_browser_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].chrome && (_utils_browser_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].version.major < 50 || _utils_browser_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].version.major === 50 && _utils_browser_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].version.build < 2661) ? true : false; // Workaround for IE11/Edge: Fill silent aac frame after keyframe-seeking\n // Make audio beginDts equals with video beginDts, in order to fix seek freeze\n\n this._fillSilentAfterSeek = _utils_browser_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].msedge || _utils_browser_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].msie; // While only FireFox supports 'audio/mp4, codecs=\"mp3\"', use 'audio/mpeg' for chrome, safari, ...\n\n this._mp3UseMpegAudio = !_utils_browser_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].firefox;\n this._fillAudioTimestampGap = this._config.fixAudioTimestampGap;\n }\n\n var _proto = MP4Remuxer.prototype;\n\n _proto.destroy = function destroy() {\n this._dtsBase = -1;\n this._dtsBaseInited = false;\n this._audioMeta = null;\n this._videoMeta = null;\n\n this._audioSegmentInfoList.clear();\n\n this._audioSegmentInfoList = null;\n\n this._videoSegmentInfoList.clear();\n\n this._videoSegmentInfoList = null;\n this._onInitSegment = null;\n this._onMediaSegment = null;\n };\n\n _proto.bindDataSource = function bindDataSource(producer) {\n producer.onDataAvailable = this.remux.bind(this);\n producer.onTrackMetadata = this._onTrackMetadataReceived.bind(this);\n return this;\n }\n /* prototype: function onInitSegment(type: string, initSegment: ArrayBuffer): void\n InitSegment: {\n type: string,\n data: ArrayBuffer,\n codec: string,\n container: string\n }\n */\n ;\n\n _proto.insertDiscontinuity = function insertDiscontinuity() {\n this._audioNextDts = this._videoNextDts = undefined;\n };\n\n _proto.changeSpeed = function changeSpeed(speedValue) {\n this._adjustPts = speedValue; // console.log('ChangeSpeed: ' + speedValue);\n };\n\n _proto.seek = function seek(originalDts) {\n //console.log(\"MP4-Remuxer.js:: Reset...\");\n this._audioStashedLastSample = null;\n this._videoStashedLastSample = null;\n\n this._videoSegmentInfoList.clear();\n\n this._audioSegmentInfoList.clear();\n\n this._dtsBase = -1;\n this._dtsBaseInited = false; //gavin\n\n this._audioDtsBase = Infinity;\n this._videoDtsBase = Infinity;\n this._audioNextDts = undefined;\n this._videoNextDts = undefined;\n this._audioStashedLastSample = null;\n this._videoStashedLastSample = null;\n this._adjustPts = 0; //gavin\n\n this._lastAdjustVideoPts = 0;\n this._lastVideoPts = 0;\n };\n\n _proto.remux = function remux(audioTrack, videoTrack) {\n if (!this._onMediaSegment) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_5__[\"IllegalStateException\"]('MP4Remuxer: onMediaSegment callback must be specificed!');\n }\n\n if (!this._dtsBaseInited) {\n if (!this._calculateDtsBase(audioTrack, videoTrack)) {\n videoTrack.samples = [];\n audioTrack.samples = [];\n return;\n }\n } //console.log(\"Enter remux video...\");\n\n\n this._remuxVideo(videoTrack); //console.log(\" Leave remux video...\");\n\n\n this._remuxAudio(audioTrack);\n };\n\n _proto._onTrackMetadataReceived = function _onTrackMetadataReceived(type, metadata) {\n var metabox = null; // console.log('mp4-remuxer.js::_onTrackMetadataReceived... type[' + type + '] metadata:', metadata);\n\n var container = 'mp4';\n var codec = metadata.codec;\n\n if (type === 'audio') {\n this._audioMeta = metadata;\n\n if (metadata.codec === 'mp3' && this._mp3UseMpegAudio) {\n // 'audio/mpeg' for MP3 audio track\n container = 'mpeg';\n codec = '';\n metabox = new Uint8Array();\n } else {\n // 'audio/mp4, codecs=\"codec\"'\n metabox = _mp4_generator_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].generateInitSegment(metadata);\n }\n } else if (type === 'video') {\n this._videoMeta = metadata;\n metabox = _mp4_generator_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].generateInitSegment(metadata);\n } else {\n return;\n } // dispatch metabox (Initialization Segment)\n\n\n if (!this._onInitSegment) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_5__[\"IllegalStateException\"]('MP4Remuxer: onInitSegment callback must be specified!');\n }\n\n this._onInitSegment(type, {\n type: type,\n data: metabox.buffer,\n codec: codec,\n container: type + \"/\" + container,\n mediaDuration: metadata.duration // in timescale 1000 (milliseconds)\n\n });\n };\n\n _proto._calculateDtsBase = function _calculateDtsBase(audioTrack, videoTrack) {\n if (this._dtsBaseInited) {\n return;\n }\n\n if (audioTrack.samples && audioTrack.samples.length) {\n this._audioDtsBase = audioTrack.samples[0].dts;\n }\n\n if (videoTrack.samples && videoTrack.samples.length) {\n this._videoDtsBase = videoTrack.samples[0].dts;\n }\n\n this._dtsBase = Math.min(this._audioDtsBase, this._videoDtsBase);\n this._dtsBaseInited = true;\n if (this._dtsBase < 0) return false; //console.log(\"mp4-remuxer.js::set dtsbase: \" + this._dtsBase);\n\n return true;\n };\n\n _proto.flushStashedSamples = function flushStashedSamples() {\n var videoSample = this._videoStashedLastSample;\n var audioSample = this._audioStashedLastSample; //console.log(\"flushStashedSamples...\");\n\n var videoTrack = {\n type: 'video',\n id: 1,\n sequenceNumber: 0,\n samples: [],\n length: 0\n };\n\n if (videoSample != null) {\n videoTrack.samples.push(videoSample);\n videoTrack.length = videoSample.length;\n }\n\n var audioTrack = {\n type: 'audio',\n id: 2,\n sequenceNumber: 0,\n samples: [],\n length: 0\n };\n\n if (audioSample != null) {\n audioTrack.samples.push(audioSample);\n audioTrack.length = audioSample.length;\n }\n\n this._videoStashedLastSample = null;\n this._audioStashedLastSample = null;\n\n this._remuxVideo(videoTrack, true);\n\n this._remuxAudio(audioTrack, true);\n };\n\n _proto._remuxAudio = function _remuxAudio(audioTrack, force) {\n if (this._audioMeta == null) {\n return;\n }\n\n var track = audioTrack;\n var samples = track.samples;\n var dtsCorrection = undefined;\n var firstDts = -1,\n lastDts = -1,\n lastPts = -1;\n var refSampleDuration = this._audioMeta.refSampleDuration; //console.log(\"refSampleDuration:\", refSampleDuration);\n\n var mpegRawTrack = this._audioMeta.codec === 'mp3' && this._mp3UseMpegAudio;\n var firstSegmentAfterSeek = this._dtsBaseInited && this._audioNextDts === undefined;\n var insertPrefixSilentFrame = false;\n\n if (!samples || samples.length === 0) {\n return;\n }\n\n if (samples.length === 1 && !force) {\n // If [sample count in current batch] === 1 && (force != true)\n // Ignore and keep in demuxer's queue\n return;\n } // else if (force === true) do remux\n\n\n var offset = 0;\n var mdatbox = null;\n var mdatBytes = 0; // calculate initial mdat size\n\n if (mpegRawTrack) {\n // for raw mpeg buffer\n offset = 0;\n mdatBytes = track.length;\n } else {\n // for fmp4 mdat box\n offset = 8; // size + type\n\n mdatBytes = 8 + track.length;\n }\n\n var lastSample = null; // Pop the lastSample and waiting for stash\n\n if (samples.length > 1) {\n lastSample = samples.pop();\n mdatBytes -= lastSample.length;\n } // Insert [stashed lastSample in the previous batch] to the front\n\n\n if (this._audioStashedLastSample != null) {\n var sample = this._audioStashedLastSample;\n this._audioStashedLastSample = null;\n samples.unshift(sample);\n mdatBytes += sample.length;\n } // Stash the lastSample of current batch, waiting for next batch\n\n\n if (lastSample != null) {\n this._audioStashedLastSample = lastSample;\n }\n\n var firstSampleOriginalDts = samples[0].dts - this._dtsBase; // calculate dtsCorrection\n\n if (this._audioNextDts) {\n dtsCorrection = firstSampleOriginalDts - this._audioNextDts;\n } else {\n // this._audioNextDts == undefined\n if (this._audioSegmentInfoList.isEmpty()) {\n dtsCorrection = 0;\n\n if (this._fillSilentAfterSeek && !this._videoSegmentInfoList.isEmpty()) {\n if (this._audioMeta.originalCodec !== 'mp3') {\n insertPrefixSilentFrame = true;\n }\n }\n } else {\n var _lastSample = this._audioSegmentInfoList.getLastSampleBefore(firstSampleOriginalDts);\n\n if (_lastSample != null) {\n var distance = firstSampleOriginalDts - (_lastSample.originalDts + _lastSample.duration);\n\n if (distance <= 3) {\n distance = 0;\n }\n\n var expectedDts = _lastSample.dts + _lastSample.duration + distance;\n dtsCorrection = firstSampleOriginalDts - expectedDts;\n } else {\n // lastSample == null, cannot found\n dtsCorrection = 0;\n }\n }\n }\n\n if (insertPrefixSilentFrame) {\n // align audio segment beginDts to match with current video segment's beginDts\n var firstSampleDts = firstSampleOriginalDts - dtsCorrection;\n\n var videoSegment = this._videoSegmentInfoList.getLastSegmentBefore(firstSampleOriginalDts);\n\n if (videoSegment != null && videoSegment.beginDts < firstSampleDts) {\n var silentUnit = _aac_silent_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getSilentFrame(this._audioMeta.originalCodec, this._audioMeta.channelCount);\n\n if (silentUnit) {\n var dts = videoSegment.beginDts;\n var silentFrameDuration = firstSampleDts - videoSegment.beginDts;\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].v(this.TAG, \"InsertPrefixSilentAudio: dts: \" + dts + \", duration: \" + silentFrameDuration);\n samples.unshift({\n unit: silentUnit,\n dts: dts,\n pts: dts\n });\n mdatBytes += silentUnit.byteLength;\n } // silentUnit == null: Cannot generate, skip\n\n } else {\n insertPrefixSilentFrame = false;\n }\n }\n\n var mp4Samples = []; // Correct dts for each sample, and calculate sample duration. Then output to mp4Samples\n\n for (var i = 0; i < samples.length; i++) {\n var _sample = samples[i];\n var unit = _sample.unit;\n var originalDts = _sample.dts - this._dtsBase;\n\n var _dts = originalDts - dtsCorrection;\n\n if (firstDts === -1) {\n firstDts = _dts;\n }\n\n var sampleDuration = 0;\n\n if (i !== samples.length - 1) {\n var nextDts = samples[i + 1].dts - this._dtsBase - dtsCorrection;\n sampleDuration = nextDts - _dts;\n } else {\n // the last sample\n if (lastSample != null) {\n // use stashed sample's dts to calculate sample duration\n var _nextDts = lastSample.dts - this._dtsBase - dtsCorrection;\n\n sampleDuration = _nextDts - _dts;\n } else if (mp4Samples.length >= 1) {\n // use second last sample duration\n sampleDuration = mp4Samples[mp4Samples.length - 1].duration;\n } else {\n // the only one sample, use reference sample duration\n sampleDuration = Math.floor(refSampleDuration);\n }\n }\n\n var needFillSilentFrames = false;\n var silentFrames = null; // Silent frame generation, if large timestamp gap detected && config.fixAudioTimestampGap\n\n if (sampleDuration > refSampleDuration * 1.5 && this._audioMeta.codec !== 'mp3' && this._fillAudioTimestampGap && !_utils_browser_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].safari) {\n // We need to insert silent frames to fill timestamp gap\n needFillSilentFrames = true;\n var delta = Math.abs(sampleDuration - refSampleDuration);\n var frameCount = Math.ceil(delta / refSampleDuration);\n var currentDts = _dts + refSampleDuration; // Notice: in float\n\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'Large audio timestamp gap detected, may cause AV sync to drift. ' + 'Silent frames will be generated to avoid unsync.\\n' + (\"dts: \" + (_dts + sampleDuration) + \" ms, expected: \" + (_dts + Math.round(refSampleDuration)) + \" ms, \") + (\"delta: \" + Math.round(delta) + \" ms, generate: \" + frameCount + \" frames\") + (\"sampleDuration: \" + sampleDuration + \" ms, refSampleDuration: \" + refSampleDuration));\n\n var _silentUnit = _aac_silent_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getSilentFrame(this._audioMeta.originalCodec, this._audioMeta.channelCount);\n\n if (_silentUnit == null) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].w(this.TAG, 'Unable to generate silent frame for ' + (this._audioMeta.originalCodec + \" with \" + this._audioMeta.channelCount + \" channels, repeat last frame\")); // Repeat last frame\n\n _silentUnit = unit;\n }\n\n silentFrames = [];\n\n for (var j = 0; j < frameCount; j++) {\n var intDts = Math.round(currentDts); // round to integer\n\n if (silentFrames.length > 0) {\n // Set previous frame sample duration\n var previousFrame = silentFrames[silentFrames.length - 1];\n previousFrame.duration = intDts - previousFrame.dts;\n }\n\n var frame = {\n dts: intDts,\n pts: intDts,\n cts: 0,\n unit: _silentUnit,\n size: _silentUnit.byteLength,\n duration: 0,\n // wait for next sample\n originalDts: originalDts,\n flags: {\n isLeading: 0,\n dependsOn: 1,\n isDependedOn: 0,\n hasRedundancy: 0\n }\n };\n silentFrames.push(frame);\n mdatBytes += frame.size;\n currentDts += refSampleDuration;\n } // last frame: align end time to next frame dts\n\n\n var lastFrame = silentFrames[silentFrames.length - 1];\n lastFrame.duration = _dts + sampleDuration - lastFrame.dts; // silentFrames.forEach((frame) => {\n // Log.w(this.TAG, `SilentAudio: dts: ${frame.dts}, duration: ${frame.duration}`);\n // });\n // Set correct sample duration for current frame\n\n sampleDuration = Math.round(refSampleDuration);\n } //console.log(\"mp4-remuxer.js:: audio length: \" + sample.unit.byteLength + \" sampleDuration:\" + sampleDuration + \" sample.pts[\" + dts + \"]\");\n\n\n mp4Samples.push({\n dts: _dts,\n pts: _dts,\n cts: 0,\n unit: _sample.unit,\n size: _sample.unit.byteLength,\n duration: sampleDuration,\n originalDts: originalDts,\n flags: {\n isLeading: 0,\n dependsOn: 1,\n isDependedOn: 0,\n hasRedundancy: 0\n }\n });\n\n if (needFillSilentFrames) {\n // Silent frames should be inserted after wrong-duration frame\n mp4Samples.push.apply(mp4Samples, silentFrames);\n }\n } // allocate mdatbox\n\n\n if (mpegRawTrack) {\n // allocate for raw mpeg buffer\n mdatbox = new Uint8Array(mdatBytes);\n } else {\n // allocate for fmp4 mdat box\n mdatbox = new Uint8Array(mdatBytes); // size field\n\n mdatbox[0] = mdatBytes >>> 24 & 0xFF;\n mdatbox[1] = mdatBytes >>> 16 & 0xFF;\n mdatbox[2] = mdatBytes >>> 8 & 0xFF;\n mdatbox[3] = mdatBytes & 0xFF; // type field (fourCC)\n\n mdatbox.set(_mp4_generator_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].types.mdat, 4);\n } // Write samples into mdatbox\n\n\n for (var _i = 0; _i < mp4Samples.length; _i++) {\n var _unit = mp4Samples[_i].unit;\n mdatbox.set(_unit, offset);\n offset += _unit.byteLength;\n }\n\n var latest = mp4Samples[mp4Samples.length - 1];\n lastDts = latest.dts + latest.duration;\n this._audioNextDts = lastDts; // fill media segment info & add to info list\n\n var info = new _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__[\"MediaSegmentInfo\"]();\n info.beginDts = firstDts;\n info.endDts = lastDts;\n info.beginPts = firstDts;\n info.endPts = lastDts;\n info.originalBeginDts = mp4Samples[0].originalDts;\n info.originalEndDts = latest.originalDts + latest.duration;\n info.firstSample = new _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__[\"SampleInfo\"](mp4Samples[0].dts, mp4Samples[0].pts, mp4Samples[0].duration, mp4Samples[0].originalDts, false);\n info.lastSample = new _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__[\"SampleInfo\"](latest.dts, latest.pts, latest.duration, latest.originalDts, false);\n\n if (!this._isLive) {\n this._audioSegmentInfoList.append(info);\n }\n\n track.samples = mp4Samples;\n track.sequenceNumber++;\n var moofbox = null;\n\n if (mpegRawTrack) {\n // Generate empty buffer, because useless for raw mpeg\n moofbox = new Uint8Array();\n } else {\n // Generate moof for fmp4 segment\n moofbox = _mp4_generator_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].moof(track, firstDts);\n }\n\n track.samples = [];\n track.length = 0;\n var segment = {\n type: 'audio',\n data: this._mergeBoxes(moofbox, mdatbox).buffer,\n sampleCount: mp4Samples.length,\n info: info\n };\n\n if (mpegRawTrack && firstSegmentAfterSeek) {\n // For MPEG audio stream in MSE, if seeking occurred, before appending new buffer\n // We need explicitly set timestampOffset to the desired point in timeline for mpeg SourceBuffer.\n segment.timestampOffset = firstDts;\n }\n\n this._onMediaSegment('audio', segment);\n };\n\n _proto._remuxVideo = function _remuxVideo(videoTrack, force) {\n if (this._videoMeta == null) {\n return;\n }\n\n var track = videoTrack;\n var samples = track.samples;\n var dtsCorrection = undefined;\n var firstDts = -1,\n lastDts = -1;\n var firstPts = -1,\n lastPts = -1;\n\n if (!samples || samples.length === 0) {\n return;\n } //console.log(\"mp4-remuxer.js::remuxVideo: \" + samples.length);\n\n\n if (samples.length === 1 && !force) {// If [sample count in current batch] === 1 && (force != true)\n // Ignore and keep in demuxer's queue\n //return; //Gavin 2021.11.16 ע����, ��Ϊrtsp�������������ǵ�֡��������, �粻ע��, ��Chrome�������ֿ���\n } // else if (force === true) do remux\n\n\n var offset = 8;\n var mdatbox = null;\n var mdatBytes = 8 + videoTrack.length; //console.log(\"mdatBytes: videoTrack.length: 8+\" + videoTrack.length + \" = \" + mdatBytes);\n\n var lastSample = null; // Pop the lastSample and waiting for stash\n //if (samples.length > 1) {\n\n if (samples.length > 0) {\n //Gavin 2021.11.16\n lastSample = samples.pop();\n mdatBytes -= lastSample.length; //console.log(\" mdatBytes-: \" + lastSample.length + \" = \" + mdatBytes);\n } // Insert [stashed lastSample in the previous batch] to the front\n\n\n if (this._videoStashedLastSample != null) {\n var sample = this._videoStashedLastSample;\n this._videoStashedLastSample = null;\n samples.unshift(sample);\n mdatBytes += sample.length; //console.log(\" mdatBytes+ \" + sample.length + \" = \" + mdatBytes);\n } // Stash the lastSample of current batch, waiting for next batch\n\n\n if (lastSample != null) {\n this._videoStashedLastSample = lastSample;\n }\n\n if (samples.length < 1) {\n //console.log(\"samples.length < 1\");\n return;\n }\n\n var firstSampleOriginalDts = samples[0].dts - this._dtsBase; // calculate dtsCorrection\n\n if (this._videoNextDts) {\n dtsCorrection = firstSampleOriginalDts - this._videoNextDts;\n } else {\n // this._videoNextDts == undefined\n if (this._videoSegmentInfoList.isEmpty()) {\n dtsCorrection = 0;\n } else {\n var _lastSample2 = this._videoSegmentInfoList.getLastSampleBefore(firstSampleOriginalDts);\n\n if (_lastSample2 != null) {\n var distance = firstSampleOriginalDts - (_lastSample2.originalDts + _lastSample2.duration);\n\n if (distance <= 3) {\n distance = 0;\n }\n\n var expectedDts = _lastSample2.dts + _lastSample2.duration + distance;\n dtsCorrection = firstSampleOriginalDts - expectedDts;\n } else {\n // lastSample == null, cannot found\n dtsCorrection = 0;\n }\n }\n }\n\n var fastPlay = false;\n\n if (this._adjustPts > 0) {\n console.log('dtsCorrection: ' + dtsCorrection);\n dtsCorrection = 10;\n fastPlay = true;\n }\n\n var info = new _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__[\"MediaSegmentInfo\"]();\n var mp4Samples = []; //console.log(\"samples.length: \" + samples.length);\n // Correct dts for each sample, and calculate sample duration. Then output to mp4Samples\n\n for (var i = 0; i < samples.length; i++) {\n var _sample2 = samples[i];\n var originalDts = _sample2.dts - this._dtsBase;\n\n if (originalDts < 0) {//console.log(\"ERROR: originalDts<0: \" + originalDts);\n }\n\n var isKeyframe = _sample2.isKeyframe;\n var dts = originalDts - dtsCorrection;\n var cts = _sample2.cts;\n var pts = dts + cts;\n\n if (firstDts === -1) {\n firstDts = dts;\n firstPts = pts;\n }\n\n var sampleDuration = 0;\n\n if (i !== samples.length - 1) {\n var nextDts = samples[i + 1].dts - this._dtsBase - dtsCorrection;\n sampleDuration = nextDts - dts;\n } else {\n // the last sample\n if (lastSample != null) {\n // use stashed sample's dts to calculate sample duration\n var _nextDts2 = lastSample.dts - this._dtsBase - dtsCorrection;\n\n sampleDuration = _nextDts2 - dts;\n } else if (mp4Samples.length >= 1) {\n // use second last sample duration\n sampleDuration = mp4Samples[mp4Samples.length - 1].duration;\n } else {\n // the only one sample, use reference sample duration\n sampleDuration = Math.floor(this._videoMeta.refSampleDuration);\n }\n }\n\n if (isKeyframe) {\n var syncPoint = new _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__[\"SampleInfo\"](dts, pts, sampleDuration, _sample2.dts, true);\n syncPoint.fileposition = _sample2.fileposition;\n info.appendSyncPoint(syncPoint);\n } //if (sample.units.length > 0) {\n // let idx = 0;\n // for (idx = 0; idx < sample.units.length; idx++) {\n // console.log(\"mp4-remuxer.js:: video sampleDuration[\" + sampleDuration + \"] fileposition[\" + sample.fileposition + \"]\");\n // console.log(\"mp4-remuxer.js:: \" + (idx + 1) + \"/\" + sample.units.length + \" sample.length[\" + sample.units[idx].data.length + \"/\" + sample.length + \"] pts[\" + pts + \"] cts[\" + cts + \"]\");//: \" + sample.units[idx].data);\n // //console.log(\"mp4-remuxer.js:: \" + (idx + 1) + \"/\" + sample.units.length + \" sample.length[\" + sample.units[idx].data.length + \"/\" + sample.length + \"] pts[\" + pts + \"] cts[\" + cts + \"]: \" + sample.units[idx].data);\n // }\n //}\n\n\n if (fastPlay) {\n sampleDuration = Math.floor(sampleDuration * 0.8);\n }\n /*\n //�ȼ�¼������pts\n let currentPts = pts;\n if (currentPts < this._lastVideoPts) {\n console.log(\"pts error... currentPts[\" + currentPts + \"] --> [\" + this._lastVideoPts + \"]\");\n }\n let bAdjustSpeed = false;\n if (this._adjustPts > 0) {\n if (this._lastAdjustVideoPts < 1) {\n let n = currentPts - this._lastVideoPts;\n n *= 0.8;\n this._lastAdjustVideoPts = Math.floor(this._lastVideoPts + n);\n bAdjustSpeed = true;\n sampleDuration = Math.floor(sampleDuration * 0.8);\n pts = Math.floor(this._lastAdjustVideoPts);\n }\n console.log(\"raw pts[\" + currentPts + \"] --> [\" + pts + \"]\");\n }\n if (this._lastAdjustVideoPts > 0 && !bAdjustSpeed) {\n let n = currentPts - this._lastVideoPts;\n if (n < 1) {\n console.log(\"ERROR.\");\n }\n if (this._adjustPts > 0) {\n n *= 0.8;\n sampleDuration = Math.floor(sampleDuration * 0.8);\n //n *= 0.2;\n }\n this._lastAdjustVideoPts += Math.floor(n);\n pts = Math.floor(this._lastAdjustVideoPts);\n //console.log(\"Video pts: \" + currentPts + \" --> \" + (pts) + \" dts:\" + dts + \" cts:\" + cts);\n console.log(\"raw pts[\" + currentPts + \"] --> [\" + pts + \"] lastPts[\" + this._lastVideoPts + \"]\");\n }\n dts = pts;\n this._lastVideoPts = currentPts;\n */\n\n\n mp4Samples.push({\n dts: dts,\n pts: pts,\n cts: cts,\n units: _sample2.units,\n size: _sample2.length,\n isKeyframe: isKeyframe,\n duration: sampleDuration,\n originalDts: originalDts,\n flags: {\n isLeading: 0,\n dependsOn: isKeyframe ? 2 : 1,\n isDependedOn: isKeyframe ? 1 : 0,\n hasRedundancy: 0,\n isNonSync: isKeyframe ? 0 : 1\n }\n });\n } //console.log(\"new mdatbox size: \" + mdatBytes);\n //let newMdatBytes = 8;\n //for (let i = 0; i < mp4Samples.length; i++) {\n // let units = mp4Samples[i].units;\n // for (let j = 0; j < units.length; j++) {\n // let unit = units[j];\n // let data = unit.data;\n // newMdatBytes += data.byteLength;\n // }\n //}\n //console.log(\"newMdatBytes: \" + newMdatBytes);\n // allocate mdatbox\n\n\n mdatbox = new Uint8Array(mdatBytes); //mdatbox = new Uint8Array(newMdatBytes);\n\n mdatbox[0] = mdatBytes >>> 24 & 0xFF;\n mdatbox[1] = mdatBytes >>> 16 & 0xFF;\n mdatbox[2] = mdatBytes >>> 8 & 0xFF;\n mdatbox[3] = mdatBytes & 0xFF;\n mdatbox.set(_mp4_generator_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].types.mdat, 4); // Write samples into mdatbox\n\n for (var _i2 = 0; _i2 < mp4Samples.length; _i2++) {\n var units = mp4Samples[_i2].units;\n\n while (units.length) {\n var unit = units.shift();\n var data = unit.data; //console.log(\"mdatbox.set offset: \" + offset + \" data size:\" + data.byteLength);\n\n mdatbox.set(data, offset);\n offset += data.byteLength;\n }\n }\n\n var latest = mp4Samples[mp4Samples.length - 1];\n lastDts = latest.dts + latest.duration;\n lastPts = latest.pts + latest.duration;\n this._videoNextDts = lastDts; // fill media segment info & add to info list\n\n info.beginDts = firstDts;\n info.endDts = lastDts;\n info.beginPts = firstPts;\n info.endPts = lastPts;\n info.originalBeginDts = mp4Samples[0].originalDts;\n info.originalEndDts = latest.originalDts + latest.duration;\n info.firstSample = new _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__[\"SampleInfo\"](mp4Samples[0].dts, mp4Samples[0].pts, mp4Samples[0].duration, mp4Samples[0].originalDts, mp4Samples[0].isKeyframe);\n info.lastSample = new _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__[\"SampleInfo\"](latest.dts, latest.pts, latest.duration, latest.originalDts, latest.isKeyframe);\n\n if (!this._isLive) {\n this._videoSegmentInfoList.append(info);\n }\n\n track.samples = mp4Samples;\n track.sequenceNumber++; // workaround for chrome < 50: force first sample as a random access point\n // see https://bugs.chromium.org/p/chromium/issues/detail?id=229412\n\n if (this._forceFirstIDR) {\n var flags = mp4Samples[0].flags;\n flags.dependsOn = 2;\n flags.isNonSync = 0;\n }\n\n var moofbox = _mp4_generator_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].moof(track, firstDts);\n track.samples = [];\n track.length = 0;\n\n this._onMediaSegment('video', {\n type: 'video',\n data: this._mergeBoxes(moofbox, mdatbox).buffer,\n sampleCount: mp4Samples.length,\n info: info\n });\n };\n\n _proto._mergeBoxes = function _mergeBoxes(moof, mdat) {\n var result = new Uint8Array(moof.byteLength + mdat.byteLength);\n result.set(moof, 0);\n result.set(mdat, moof.byteLength);\n return result;\n };\n\n _createClass(MP4Remuxer, [{\n key: \"onInitSegment\",\n get: function get() {\n return this._onInitSegment;\n },\n set: function set(callback) {\n this._onInitSegment = callback;\n }\n /* prototype: function onMediaSegment(type: string, mediaSegment: MediaSegment): void\n MediaSegment: {\n type: string,\n data: ArrayBuffer,\n sampleCount: int32\n info: MediaSegmentInfo\n }\n */\n\n }, {\n key: \"onMediaSegment\",\n get: function get() {\n return this._onMediaSegment;\n },\n set: function set(callback) {\n this._onMediaSegment = callback;\n }\n }]);\n\n return MP4Remuxer;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (MP4Remuxer);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/remux/mp4-remuxer.js?"); | ||
| 3485 | + | ||
| 3486 | +/***/ }), | ||
| 3487 | + | ||
| 3488 | +/***/ "./src/FlvPlayer/flv.js/utils/browser.js": | ||
| 3489 | +/*!***********************************************!*\ | ||
| 3490 | + !*** ./src/FlvPlayer/flv.js/utils/browser.js ***! | ||
| 3491 | + \***********************************************/ | ||
| 3492 | +/*! exports provided: default */ | ||
| 3493 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3494 | + | ||
| 3495 | +"use strict"; | ||
| 3496 | +eval("__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar Browser = {}; //import * as Object from '../../../../node_modules/es6-object-assign/dist/object-assign.js';\n//import assign from 'core-js/modules/es.object.assign';\n//import assign from 'object-assign';\n//assign({}, {});\n\nfunction detect() {\n // modified from jquery-browser-plugin\n var ua = self.navigator.userAgent.toLowerCase();\n var match = /(edge)\\/([\\w.]+)/.exec(ua) || /(opr)[\\/]([\\w.]+)/.exec(ua) || /(chrome)[ \\/]([\\w.]+)/.exec(ua) || /(iemobile)[\\/]([\\w.]+)/.exec(ua) || /(version)(applewebkit)[ \\/]([\\w.]+).*(safari)[ \\/]([\\w.]+)/.exec(ua) || /(webkit)[ \\/]([\\w.]+).*(version)[ \\/]([\\w.]+).*(safari)[ \\/]([\\w.]+)/.exec(ua) || /(webkit)[ \\/]([\\w.]+)/.exec(ua) || /(opera)(?:.*version|)[ \\/]([\\w.]+)/.exec(ua) || /(msie) ([\\w.]+)/.exec(ua) || ua.indexOf('trident') >= 0 && /(rv)(?::| )([\\w.]+)/.exec(ua) || ua.indexOf('compatible') < 0 && /(firefox)[ \\/]([\\w.]+)/.exec(ua) || [];\n var platform_match = /(ipad)/.exec(ua) || /(ipod)/.exec(ua) || /(windows phone)/.exec(ua) || /(iphone)/.exec(ua) || /(kindle)/.exec(ua) || /(android)/.exec(ua) || /(windows)/.exec(ua) || /(mac)/.exec(ua) || /(linux)/.exec(ua) || /(cros)/.exec(ua) || [];\n var matched = {\n browser: match[5] || match[3] || match[1] || '',\n version: match[2] || match[4] || '0',\n majorVersion: match[4] || match[2] || '0',\n platform: platform_match[0] || ''\n };\n var browser = {};\n\n if (matched.browser) {\n browser[matched.browser] = true;\n var versionArray = matched.majorVersion.split('.');\n browser.version = {\n major: parseInt(matched.majorVersion, 10),\n string: matched.version\n };\n\n if (versionArray.length > 1) {\n browser.version.minor = parseInt(versionArray[1], 10);\n }\n\n if (versionArray.length > 2) {\n browser.version.build = parseInt(versionArray[2], 10);\n }\n }\n\n if (matched.platform) {\n browser[matched.platform] = true;\n }\n\n if (browser.chrome || browser.opr || browser.safari) {\n browser.webkit = true;\n } // MSIE. IE11 has 'rv' identifer\n\n\n if (browser.rv || browser.iemobile) {\n if (browser.rv) {\n delete browser.rv;\n }\n\n var msie = 'msie';\n matched.browser = msie;\n browser[msie] = true;\n } // Microsoft Edge\n\n\n if (browser.edge) {\n delete browser.edge;\n var msedge = 'msedge';\n matched.browser = msedge;\n browser[msedge] = true;\n } // Opera 15+\n\n\n if (browser.opr) {\n var opera = 'opera';\n matched.browser = opera;\n browser[opera] = true;\n } // Stock android browsers are marked as Safari\n\n\n if (browser.safari && browser.android) {\n var android = 'android';\n matched.browser = android;\n browser[android] = true;\n }\n\n browser.name = matched.browser;\n browser.platform = matched.platform;\n\n for (var key in Browser) {\n if (Browser.hasOwnProperty(key)) {\n delete Browser[key];\n }\n }\n /*\n if (typeof Object.assign != 'function') {\n Object.assign = function (target) {\n 'use strict';\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n target = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source != null) {\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n }\n return target;\n };\n }\n */\n\n\n Object.assign(Browser, browser);\n}\n\ndetect();\n/* harmony default export */ __webpack_exports__[\"default\"] = (Browser);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/utils/browser.js?"); | ||
| 3497 | + | ||
| 3498 | +/***/ }), | ||
| 3499 | + | ||
| 3500 | +/***/ "./src/FlvPlayer/flv.js/utils/exception.js": | ||
| 3501 | +/*!*************************************************!*\ | ||
| 3502 | + !*** ./src/FlvPlayer/flv.js/utils/exception.js ***! | ||
| 3503 | + \*************************************************/ | ||
| 3504 | +/*! exports provided: RuntimeException, IllegalStateException, InvalidArgumentException, NotImplementedException */ | ||
| 3505 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3506 | + | ||
| 3507 | +"use strict"; | ||
| 3508 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RuntimeException\", function() { return RuntimeException; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IllegalStateException\", function() { return IllegalStateException; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InvalidArgumentException\", function() { return InvalidArgumentException; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NotImplementedException\", function() { return NotImplementedException; });\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar RuntimeException = /*#__PURE__*/function () {\n function RuntimeException(message) {\n this._message = message;\n }\n\n var _proto = RuntimeException.prototype;\n\n _proto.toString = function toString() {\n return this.name + ': ' + this.message;\n };\n\n _createClass(RuntimeException, [{\n key: \"name\",\n get: function get() {\n return 'RuntimeException';\n }\n }, {\n key: \"message\",\n get: function get() {\n return this._message;\n }\n }]);\n\n return RuntimeException;\n}();\nvar IllegalStateException = /*#__PURE__*/function (_RuntimeException) {\n _inheritsLoose(IllegalStateException, _RuntimeException);\n\n function IllegalStateException(message) {\n return _RuntimeException.call(this, message) || this;\n }\n\n _createClass(IllegalStateException, [{\n key: \"name\",\n get: function get() {\n return 'IllegalStateException';\n }\n }]);\n\n return IllegalStateException;\n}(RuntimeException);\nvar InvalidArgumentException = /*#__PURE__*/function (_RuntimeException2) {\n _inheritsLoose(InvalidArgumentException, _RuntimeException2);\n\n function InvalidArgumentException(message) {\n return _RuntimeException2.call(this, message) || this;\n }\n\n _createClass(InvalidArgumentException, [{\n key: \"name\",\n get: function get() {\n return 'InvalidArgumentException';\n }\n }]);\n\n return InvalidArgumentException;\n}(RuntimeException);\nvar NotImplementedException = /*#__PURE__*/function (_RuntimeException3) {\n _inheritsLoose(NotImplementedException, _RuntimeException3);\n\n function NotImplementedException(message) {\n return _RuntimeException3.call(this, message) || this;\n }\n\n _createClass(NotImplementedException, [{\n key: \"name\",\n get: function get() {\n return 'NotImplementedException';\n }\n }]);\n\n return NotImplementedException;\n}(RuntimeException);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/utils/exception.js?"); | ||
| 3509 | + | ||
| 3510 | +/***/ }), | ||
| 3511 | + | ||
| 3512 | +/***/ "./src/FlvPlayer/flv.js/utils/logger.js": | ||
| 3513 | +/*!**********************************************!*\ | ||
| 3514 | + !*** ./src/FlvPlayer/flv.js/utils/logger.js ***! | ||
| 3515 | + \**********************************************/ | ||
| 3516 | +/*! exports provided: default */ | ||
| 3517 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3518 | + | ||
| 3519 | +"use strict"; | ||
| 3520 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! events */ \"./node_modules/node-libs-browser/node_modules/events/events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nvar Log = /*#__PURE__*/function () {\n function Log() {}\n\n Log.e = function e(tag, msg) {\n if (!tag || Log.FORCE_GLOBAL_TAG) tag = Log.GLOBAL_TAG;\n var str = \"[\" + tag + \"] > \" + msg;\n\n if (Log.ENABLE_CALLBACK) {\n Log.emitter.emit('log', 'error', str);\n }\n\n if (!Log.ENABLE_ERROR) {\n return;\n }\n\n if (console.error) {\n console.error(str);\n } else if (console.warn) {\n console.warn(str);\n } else {\n console.log(str);\n }\n };\n\n Log.i = function i(tag, msg) {\n if (!tag || Log.FORCE_GLOBAL_TAG) tag = Log.GLOBAL_TAG;\n var str = \"[\" + tag + \"] > \" + msg;\n\n if (Log.ENABLE_CALLBACK) {\n Log.emitter.emit('log', 'info', str);\n }\n\n if (!Log.ENABLE_INFO) {\n return;\n }\n\n if (console.info) {\n console.info(str);\n } else {\n console.log(str);\n }\n };\n\n Log.w = function w(tag, msg) {\n if (!tag || Log.FORCE_GLOBAL_TAG) tag = Log.GLOBAL_TAG;\n var str = \"[\" + tag + \"] > \" + msg;\n\n if (Log.ENABLE_CALLBACK) {\n Log.emitter.emit('log', 'warn', str);\n }\n\n if (!Log.ENABLE_WARN) {\n return;\n }\n\n if (console.warn) {\n console.warn(str);\n } else {\n console.log(str);\n }\n };\n\n Log.d = function d(tag, msg) {\n if (!tag || Log.FORCE_GLOBAL_TAG) tag = Log.GLOBAL_TAG;\n var str = \"[\" + tag + \"] > \" + msg;\n\n if (Log.ENABLE_CALLBACK) {\n Log.emitter.emit('log', 'debug', str);\n }\n\n if (!Log.ENABLE_DEBUG) {\n return;\n }\n\n if (console.debug) {\n console.debug(str);\n } else {\n console.log(str);\n }\n };\n\n Log.v = function v(tag, msg) {\n if (!tag || Log.FORCE_GLOBAL_TAG) tag = Log.GLOBAL_TAG;\n var str = \"[\" + tag + \"] > \" + msg;\n\n if (Log.ENABLE_CALLBACK) {\n Log.emitter.emit('log', 'verbose', str);\n }\n\n if (!Log.ENABLE_VERBOSE) {\n return;\n }\n\n console.log(str);\n };\n\n return Log;\n}();\n\nLog.GLOBAL_TAG = 'SyncPlayer.js';\nLog.FORCE_GLOBAL_TAG = false;\nLog.ENABLE_ERROR = true;\nLog.ENABLE_INFO = true;\nLog.ENABLE_WARN = true;\nLog.ENABLE_DEBUG = true;\nLog.ENABLE_VERBOSE = true;\nLog.ENABLE_CALLBACK = false;\nLog.emitter = new events__WEBPACK_IMPORTED_MODULE_0___default.a();\n/* harmony default export */ __webpack_exports__[\"default\"] = (Log);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/utils/logger.js?"); | ||
| 3521 | + | ||
| 3522 | +/***/ }), | ||
| 3523 | + | ||
| 3524 | +/***/ "./src/FlvPlayer/flv.js/utils/logging-control.js": | ||
| 3525 | +/*!*******************************************************!*\ | ||
| 3526 | + !*** ./src/FlvPlayer/flv.js/utils/logging-control.js ***! | ||
| 3527 | + \*******************************************************/ | ||
| 3528 | +/*! exports provided: default */ | ||
| 3529 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3530 | + | ||
| 3531 | +"use strict"; | ||
| 3532 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! events */ \"./node_modules/node-libs-browser/node_modules/events/events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _logger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger.js */ \"./src/FlvPlayer/flv.js/utils/logger.js\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\nvar LoggingControl = /*#__PURE__*/function () {\n function LoggingControl() {}\n\n LoggingControl.getConfig = function getConfig() {\n return {\n globalTag: _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].GLOBAL_TAG,\n forceGlobalTag: _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].FORCE_GLOBAL_TAG,\n enableVerbose: _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_VERBOSE,\n enableDebug: _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_DEBUG,\n enableInfo: _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_INFO,\n enableWarn: _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_WARN,\n enableError: _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_ERROR,\n enableCallback: _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_CALLBACK\n };\n };\n\n LoggingControl.applyConfig = function applyConfig(config) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].GLOBAL_TAG = config.globalTag;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].FORCE_GLOBAL_TAG = config.forceGlobalTag;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_VERBOSE = config.enableVerbose;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_DEBUG = config.enableDebug;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_INFO = config.enableInfo;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_WARN = config.enableWarn;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_ERROR = config.enableError;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_CALLBACK = config.enableCallback;\n };\n\n LoggingControl._notifyChange = function _notifyChange() {\n var emitter = LoggingControl.emitter;\n\n if (emitter.listenerCount('change') > 0) {\n var config = LoggingControl.getConfig();\n emitter.emit('change', config);\n }\n };\n\n LoggingControl.registerListener = function registerListener(listener) {\n LoggingControl.emitter.addListener('change', listener);\n };\n\n LoggingControl.removeListener = function removeListener(listener) {\n LoggingControl.emitter.removeListener('change', listener);\n };\n\n LoggingControl.addLogListener = function addLogListener(listener) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].emitter.addListener('log', listener);\n\n if (_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].emitter.listenerCount('log') > 0) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_CALLBACK = true;\n\n LoggingControl._notifyChange();\n }\n };\n\n LoggingControl.removeLogListener = function removeLogListener(listener) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].emitter.removeListener('log', listener);\n\n if (_logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].emitter.listenerCount('log') === 0) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_CALLBACK = false;\n\n LoggingControl._notifyChange();\n }\n };\n\n _createClass(LoggingControl, null, [{\n key: \"forceGlobalTag\",\n get: function get() {\n return _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].FORCE_GLOBAL_TAG;\n },\n set: function set(enable) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].FORCE_GLOBAL_TAG = enable;\n\n LoggingControl._notifyChange();\n }\n }, {\n key: \"globalTag\",\n get: function get() {\n return _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].GLOBAL_TAG;\n },\n set: function set(tag) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].GLOBAL_TAG = tag;\n\n LoggingControl._notifyChange();\n }\n }, {\n key: \"enableAll\",\n get: function get() {\n return _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_VERBOSE && _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_DEBUG && _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_INFO && _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_WARN && _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_ERROR;\n },\n set: function set(enable) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_VERBOSE = enable;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_DEBUG = enable;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_INFO = enable;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_WARN = enable;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_ERROR = enable;\n\n LoggingControl._notifyChange();\n }\n }, {\n key: \"enableDebug\",\n get: function get() {\n return _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_DEBUG;\n },\n set: function set(enable) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_DEBUG = enable;\n\n LoggingControl._notifyChange();\n }\n }, {\n key: \"enableVerbose\",\n get: function get() {\n return _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_VERBOSE;\n },\n set: function set(enable) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_VERBOSE = enable;\n\n LoggingControl._notifyChange();\n }\n }, {\n key: \"enableInfo\",\n get: function get() {\n return _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_INFO;\n },\n set: function set(enable) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_INFO = enable;\n\n LoggingControl._notifyChange();\n }\n }, {\n key: \"enableWarn\",\n get: function get() {\n return _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_WARN;\n },\n set: function set(enable) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_WARN = enable;\n\n LoggingControl._notifyChange();\n }\n }, {\n key: \"enableError\",\n get: function get() {\n return _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_ERROR;\n },\n set: function set(enable) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ENABLE_ERROR = enable;\n\n LoggingControl._notifyChange();\n }\n }]);\n\n return LoggingControl;\n}();\n\nLoggingControl.emitter = new events__WEBPACK_IMPORTED_MODULE_0___default.a();\n/* harmony default export */ __webpack_exports__[\"default\"] = (LoggingControl);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/utils/logging-control.js?"); | ||
| 3533 | + | ||
| 3534 | +/***/ }), | ||
| 3535 | + | ||
| 3536 | +/***/ "./src/FlvPlayer/flv.js/utils/polyfill.js": | ||
| 3537 | +/*!************************************************!*\ | ||
| 3538 | + !*** ./src/FlvPlayer/flv.js/utils/polyfill.js ***! | ||
| 3539 | + \************************************************/ | ||
| 3540 | +/*! exports provided: default */ | ||
| 3541 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3542 | + | ||
| 3543 | +"use strict"; | ||
| 3544 | +eval("__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar Polyfill = /*#__PURE__*/function () {\n function Polyfill() {}\n\n Polyfill.install = function install() {\n // ES6 Object.setPrototypeOf\n Object.setPrototypeOf = Object.setPrototypeOf || function (obj, proto) {\n obj.__proto__ = proto;\n return obj;\n }; // ES6 Object.assign\n\n\n Object.assign = Object.assign || function (target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n if (source !== undefined && source !== null) {\n for (var key in source) {\n if (source.hasOwnProperty(key)) {\n output[key] = source[key];\n }\n }\n }\n }\n\n return output;\n }; // ES6 Promise (missing support in IE11)\n\n\n if (typeof self.Promise !== 'function') {\n __webpack_require__(/*! es6-promise */ \"./node_modules/es6-promise/dist/es6-promise.js\").polyfill();\n }\n };\n\n return Polyfill;\n}();\n\nPolyfill.install();\n/* harmony default export */ __webpack_exports__[\"default\"] = (Polyfill);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/utils/polyfill.js?"); | ||
| 3545 | + | ||
| 3546 | +/***/ }), | ||
| 3547 | + | ||
| 3548 | +/***/ "./src/FlvPlayer/flv.js/utils/utf8-conv.js": | ||
| 3549 | +/*!*************************************************!*\ | ||
| 3550 | + !*** ./src/FlvPlayer/flv.js/utils/utf8-conv.js ***! | ||
| 3551 | + \*************************************************/ | ||
| 3552 | +/*! exports provided: default */ | ||
| 3553 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3554 | + | ||
| 3555 | +"use strict"; | ||
| 3556 | +eval("__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * This file is derived from C++ project libWinTF8 (https://github.com/m13253/libWinTF8)\n * @author zheng qian <xqq@xqq.im>\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction checkContinuation(uint8array, start, checkLength) {\n var array = uint8array;\n\n if (start + checkLength < array.length) {\n while (checkLength--) {\n if ((array[++start] & 0xC0) !== 0x80) return false;\n }\n\n return true;\n } else {\n return false;\n }\n}\n\nfunction decodeUTF8(uint8array) {\n var out = [];\n var input = uint8array;\n var i = 0;\n var length = uint8array.length;\n\n while (i < length) {\n if (input[i] < 0x80) {\n out.push(String.fromCharCode(input[i]));\n ++i;\n continue;\n } else if (input[i] < 0xC0) {// fallthrough\n } else if (input[i] < 0xE0) {\n if (checkContinuation(input, i, 1)) {\n var ucs4 = (input[i] & 0x1F) << 6 | input[i + 1] & 0x3F;\n\n if (ucs4 >= 0x80) {\n out.push(String.fromCharCode(ucs4 & 0xFFFF));\n i += 2;\n continue;\n }\n }\n } else if (input[i] < 0xF0) {\n if (checkContinuation(input, i, 2)) {\n var _ucs = (input[i] & 0xF) << 12 | (input[i + 1] & 0x3F) << 6 | input[i + 2] & 0x3F;\n\n if (_ucs >= 0x800 && (_ucs & 0xF800) !== 0xD800) {\n out.push(String.fromCharCode(_ucs & 0xFFFF));\n i += 3;\n continue;\n }\n }\n } else if (input[i] < 0xF8) {\n if (checkContinuation(input, i, 3)) {\n var _ucs2 = (input[i] & 0x7) << 18 | (input[i + 1] & 0x3F) << 12 | (input[i + 2] & 0x3F) << 6 | input[i + 3] & 0x3F;\n\n if (_ucs2 > 0x10000 && _ucs2 < 0x110000) {\n _ucs2 -= 0x10000;\n out.push(String.fromCharCode(_ucs2 >>> 10 | 0xD800));\n out.push(String.fromCharCode(_ucs2 & 0x3FF | 0xDC00));\n i += 4;\n continue;\n }\n }\n }\n\n out.push(String.fromCharCode(0xFFFD));\n ++i;\n }\n\n return out.join('');\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (decodeUTF8);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/flv.js/utils/utf8-conv.js?"); | ||
| 3557 | + | ||
| 3558 | +/***/ }), | ||
| 3559 | + | ||
| 3560 | +/***/ "./src/FlvPlayer/m3u8parser/line-stream.js": | ||
| 3561 | +/*!*************************************************!*\ | ||
| 3562 | + !*** ./src/FlvPlayer/m3u8parser/line-stream.js ***! | ||
| 3563 | + \*************************************************/ | ||
| 3564 | +/*! exports provided: default */ | ||
| 3565 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3566 | + | ||
| 3567 | +"use strict"; | ||
| 3568 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return LineStream; });\n/* harmony import */ var _videojs_vhs_utils_dist_stream_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @videojs/vhs-utils/dist/stream.js */ \"./node_modules/@videojs/vhs-utils/dist/stream.js\");\n/* harmony import */ var _videojs_vhs_utils_dist_stream_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_videojs_vhs_utils_dist_stream_js__WEBPACK_IMPORTED_MODULE_0__);\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @file m3u8/line-stream.js\n */\n\n/**\n * A stream that buffers string input and generates a `data` event for each\n * line.\n *\n * @class LineStream\n * @extends Stream\n */\n\nvar LineStream = /*#__PURE__*/function (_Stream) {\n _inheritsLoose(LineStream, _Stream);\n\n function LineStream() {\n var _this;\n\n _this = _Stream.call(this) || this;\n _this.buffer = '';\n return _this;\n }\n /**\n * Add new data to be parsed.\n *\n * @param {string} data the text to process\n */\n\n\n var _proto = LineStream.prototype;\n\n _proto.push = function push(data) {\n var nextNewline;\n this.buffer += data;\n nextNewline = this.buffer.indexOf('\\n');\n\n for (; nextNewline > -1; nextNewline = this.buffer.indexOf('\\n')) {\n this.trigger('data', this.buffer.substring(0, nextNewline));\n this.buffer = this.buffer.substring(nextNewline + 1);\n }\n };\n\n return LineStream;\n}(_videojs_vhs_utils_dist_stream_js__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/m3u8parser/line-stream.js?"); | ||
| 3569 | + | ||
| 3570 | +/***/ }), | ||
| 3571 | + | ||
| 3572 | +/***/ "./src/FlvPlayer/m3u8parser/parse-stream.js": | ||
| 3573 | +/*!**************************************************!*\ | ||
| 3574 | + !*** ./src/FlvPlayer/m3u8parser/parse-stream.js ***! | ||
| 3575 | + \**************************************************/ | ||
| 3576 | +/*! exports provided: default */ | ||
| 3577 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3578 | + | ||
| 3579 | +"use strict"; | ||
| 3580 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ParseStream; });\n/* harmony import */ var _videojs_vhs_utils_dist_stream_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @videojs/vhs-utils/dist/stream.js */ \"./node_modules/@videojs/vhs-utils/dist/stream.js\");\n/* harmony import */ var _videojs_vhs_utils_dist_stream_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_videojs_vhs_utils_dist_stream_js__WEBPACK_IMPORTED_MODULE_0__);\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @file m3u8/parse-stream.js\n */\n\n/**\n * \"forgiving\" attribute list psuedo-grammar:\n * attributes -> keyvalue (',' keyvalue)*\n * keyvalue -> key '=' value\n * key -> [^=]*\n * value -> '\"' [^\"]* '\"' | [^,]*\n */\n\nvar attributeSeparator = function attributeSeparator() {\n var key = '[^=]*';\n var value = '\"[^\"]*\"|[^,]*';\n var keyvalue = '(?:' + key + ')=(?:' + value + ')';\n return new RegExp('(?:^|,)(' + keyvalue + ')');\n};\n/**\n * Parse attributes from a line given the separator\n *\n * @param {string} attributes the attribute line to parse\n */\n\n\nvar parseAttributes = function parseAttributes(attributes) {\n // split the string using attributes as the separator\n var attrs = attributes.split(attributeSeparator());\n var result = {};\n var i = attrs.length;\n var attr;\n\n while (i--) {\n // filter out unmatched portions of the string\n if (attrs[i] === '') {\n continue;\n } // split the key and value\n\n\n attr = /([^=]*)=(.*)/.exec(attrs[i]).slice(1); // trim whitespace and remove optional quotes around the value\n\n attr[0] = attr[0].replace(/^\\s+|\\s+$/g, '');\n attr[1] = attr[1].replace(/^\\s+|\\s+$/g, '');\n attr[1] = attr[1].replace(/^['\"](.*)['\"]$/g, '$1');\n result[attr[0]] = attr[1];\n }\n\n return result;\n};\n/**\n * A line-level M3U8 parser event stream. It expects to receive input one\n * line at a time and performs a context-free parse of its contents. A stream\n * interpretation of a manifest can be useful if the manifest is expected to\n * be too large to fit comfortably into memory or the entirety of the input\n * is not immediately available. Otherwise, it's probably much easier to work\n * with a regular `Parser` object.\n *\n * Produces `data` events with an object that captures the parser's\n * interpretation of the input. That object has a property `tag` that is one\n * of `uri`, `comment`, or `tag`. URIs only have a single additional\n * property, `line`, which captures the entirety of the input without\n * interpretation. Comments similarly have a single additional property\n * `text` which is the input without the leading `#`.\n *\n * Tags always have a property `tagType` which is the lower-cased version of\n * the M3U8 directive without the `#EXT` or `#EXT-X-` prefix. For instance,\n * `#EXT-X-MEDIA-SEQUENCE` becomes `media-sequence` when parsed. Unrecognized\n * tags are given the tag type `unknown` and a single additional property\n * `data` with the remainder of the input.\n *\n * @class ParseStream\n * @extends Stream\n */\n\n\nvar ParseStream = /*#__PURE__*/function (_Stream) {\n _inheritsLoose(ParseStream, _Stream);\n\n function ParseStream() {\n var _this;\n\n _this = _Stream.call(this) || this;\n _this.customParsers = [];\n _this.tagMappers = [];\n return _this;\n }\n /**\n * Parses an additional line of input.\n *\n * @param {string} line a single line of an M3U8 file to parse\n */\n\n\n var _proto = ParseStream.prototype;\n\n _proto.push = function push(line) {\n var _this2 = this;\n\n var match;\n var event; // strip whitespace\n\n line = line.trim();\n\n if (line.length === 0) {\n // ignore empty lines\n return;\n } // URIs\n\n\n if (line[0] !== '#') {\n this.trigger('data', {\n type: 'uri',\n uri: line\n });\n return;\n } // map tags\n\n\n var newLines = this.tagMappers.reduce(function (acc, mapper) {\n var mappedLine = mapper(line); // skip if unchanged\n\n if (mappedLine === line) {\n return acc;\n }\n\n return acc.concat([mappedLine]);\n }, [line]);\n newLines.forEach(function (newLine) {\n for (var i = 0; i < _this2.customParsers.length; i++) {\n if (_this2.customParsers[i].call(_this2, newLine)) {\n return;\n }\n } // Comments\n\n\n if (newLine.indexOf('#EXT') !== 0) {\n _this2.trigger('data', {\n type: 'comment',\n text: newLine.slice(1)\n });\n\n return;\n } // strip off any carriage returns here so the regex matching\n // doesn't have to account for them.\n\n\n newLine = newLine.replace('\\r', ''); // Tags\n\n match = /^#EXTM3U/.exec(newLine);\n\n if (match) {\n _this2.trigger('data', {\n type: 'tag',\n tagType: 'm3u'\n });\n\n return;\n }\n\n match = /^#EXTINF:?([0-9\\.]*)?,?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'inf'\n };\n\n if (match[1]) {\n event.duration = parseFloat(match[1]);\n }\n\n if (match[2]) {\n event.title = match[2];\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-TARGETDURATION:?([0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'targetduration'\n };\n\n if (match[1]) {\n event.duration = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#ZEN-TOTAL-DURATION:?([0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'totalduration'\n };\n\n if (match[1]) {\n event.duration = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-VERSION:?([0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'version'\n };\n\n if (match[1]) {\n event.version = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-MEDIA-SEQUENCE:?(\\-?[0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'media-sequence'\n };\n\n if (match[1]) {\n event.number = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-DISCONTINUITY-SEQUENCE:?(\\-?[0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'discontinuity-sequence'\n };\n\n if (match[1]) {\n event.number = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-PLAYLIST-TYPE:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'playlist-type'\n };\n\n if (match[1]) {\n event.playlistType = match[1];\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-BYTERANGE:?([0-9.]*)?@?([0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'byterange'\n };\n\n if (match[1]) {\n event.length = parseInt(match[1], 10);\n }\n\n if (match[2]) {\n event.offset = parseInt(match[2], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-ALLOW-CACHE:?(YES|NO)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'allow-cache'\n };\n\n if (match[1]) {\n event.allowed = !/NO/.test(match[1]);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-MAP:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'map'\n };\n\n if (match[1]) {\n var attributes = parseAttributes(match[1]);\n\n if (attributes.URI) {\n event.uri = attributes.URI;\n }\n\n if (attributes.BYTERANGE) {\n var _attributes$BYTERANGE = attributes.BYTERANGE.split('@'),\n length = _attributes$BYTERANGE[0],\n offset = _attributes$BYTERANGE[1];\n\n event.byterange = {};\n\n if (length) {\n event.byterange.length = parseInt(length, 10);\n }\n\n if (offset) {\n event.byterange.offset = parseInt(offset, 10);\n }\n }\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-STREAM-INF:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'stream-inf'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]);\n\n if (event.attributes.RESOLUTION) {\n var split = event.attributes.RESOLUTION.split('x');\n var resolution = {};\n\n if (split[0]) {\n resolution.width = parseInt(split[0], 10);\n }\n\n if (split[1]) {\n resolution.height = parseInt(split[1], 10);\n }\n\n event.attributes.RESOLUTION = resolution;\n }\n\n if (event.attributes.BANDWIDTH) {\n event.attributes.BANDWIDTH = parseInt(event.attributes.BANDWIDTH, 10);\n }\n\n if (event.attributes['PROGRAM-ID']) {\n event.attributes['PROGRAM-ID'] = parseInt(event.attributes['PROGRAM-ID'], 10);\n }\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-MEDIA:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'media'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-ENDLIST/.exec(newLine);\n\n if (match) {\n _this2.trigger('data', {\n type: 'tag',\n tagType: 'endlist'\n });\n\n return;\n }\n\n match = /^#EXT-X-DISCONTINUITY/.exec(newLine);\n\n if (match) {\n _this2.trigger('data', {\n type: 'tag',\n tagType: 'discontinuity'\n });\n\n return;\n }\n\n match = /^#EXT-X-PROGRAM-DATE-TIME:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'program-date-time'\n };\n\n if (match[1]) {\n event.dateTimeString = match[1];\n event.dateTimeObject = new Date(match[1]);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-KEY:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'key'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]); // parse the IV string into a Uint32Array\n\n if (event.attributes.IV) {\n if (event.attributes.IV.substring(0, 2).toLowerCase() === '0x') {\n event.attributes.IV = event.attributes.IV.substring(2);\n }\n\n event.attributes.IV = event.attributes.IV.match(/.{8}/g);\n event.attributes.IV[0] = parseInt(event.attributes.IV[0], 16);\n event.attributes.IV[1] = parseInt(event.attributes.IV[1], 16);\n event.attributes.IV[2] = parseInt(event.attributes.IV[2], 16);\n event.attributes.IV[3] = parseInt(event.attributes.IV[3], 16);\n event.attributes.IV = new Uint32Array(event.attributes.IV);\n }\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-START:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'start'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]);\n event.attributes['TIME-OFFSET'] = parseFloat(event.attributes['TIME-OFFSET']);\n event.attributes.PRECISE = /YES/.test(event.attributes.PRECISE);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-CUE-OUT-CONT:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'cue-out-cont'\n };\n\n if (match[1]) {\n event.data = match[1];\n } else {\n event.data = '';\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-CUE-OUT:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'cue-out'\n };\n\n if (match[1]) {\n event.data = match[1];\n } else {\n event.data = '';\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-CUE-IN:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'cue-in'\n };\n\n if (match[1]) {\n event.data = match[1];\n } else {\n event.data = '';\n }\n\n _this2.trigger('data', event);\n\n return;\n } // unknown tag type\n\n\n _this2.trigger('data', {\n type: 'tag',\n data: newLine.slice(4)\n });\n });\n }\n /**\n * Add a parser for custom headers\n *\n * @param {Object} options a map of options for the added parser\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {string} options.customType the custom type to register to the output\n * @param {Function} [options.dataParser] function to parse the line into an object\n * @param {boolean} [options.segment] should tag data be attached to the segment object\n */\n ;\n\n _proto.addParser = function addParser(_ref) {\n var _this3 = this;\n\n var expression = _ref.expression,\n customType = _ref.customType,\n dataParser = _ref.dataParser,\n segment = _ref.segment;\n\n if (typeof dataParser !== 'function') {\n dataParser = function dataParser(line) {\n return line;\n };\n }\n\n this.customParsers.push(function (line) {\n var match = expression.exec(line);\n\n if (match) {\n _this3.trigger('data', {\n type: 'custom',\n data: dataParser(line),\n customType: customType,\n segment: segment\n });\n\n return true;\n }\n });\n }\n /**\n * Add a custom header mapper\n *\n * @param {Object} options\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {Function} options.map function to translate tag into a different tag\n */\n ;\n\n _proto.addTagMapper = function addTagMapper(_ref2) {\n var expression = _ref2.expression,\n map = _ref2.map;\n\n var mapFn = function mapFn(line) {\n if (expression.test(line)) {\n return map(line);\n }\n\n return line;\n };\n\n this.tagMappers.push(mapFn);\n };\n\n return ParseStream;\n}(_videojs_vhs_utils_dist_stream_js__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/m3u8parser/parse-stream.js?"); | ||
| 3581 | + | ||
| 3582 | +/***/ }), | ||
| 3583 | + | ||
| 3584 | +/***/ "./src/FlvPlayer/m3u8parser/parser.js": | ||
| 3585 | +/*!********************************************!*\ | ||
| 3586 | + !*** ./src/FlvPlayer/m3u8parser/parser.js ***! | ||
| 3587 | + \********************************************/ | ||
| 3588 | +/*! exports provided: default */ | ||
| 3589 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3590 | + | ||
| 3591 | +"use strict"; | ||
| 3592 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Parser; });\n/* harmony import */ var _videojs_vhs_utils_dist_stream_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @videojs/vhs-utils/dist/stream.js */ \"./node_modules/@videojs/vhs-utils/dist/stream.js\");\n/* harmony import */ var _videojs_vhs_utils_dist_stream_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_videojs_vhs_utils_dist_stream_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _videojs_vhs_utils_dist_decode_b64_to_uint8_array_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @videojs/vhs-utils/dist/decode-b64-to-uint8-array.js */ \"./node_modules/@videojs/vhs-utils/dist/decode-b64-to-uint8-array.js\");\n/* harmony import */ var _videojs_vhs_utils_dist_decode_b64_to_uint8_array_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_videojs_vhs_utils_dist_decode_b64_to_uint8_array_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _line_stream__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./line-stream */ \"./src/FlvPlayer/m3u8parser/line-stream.js\");\n/* harmony import */ var _parse_stream__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parse-stream */ \"./src/FlvPlayer/m3u8parser/parse-stream.js\");\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @file m3u8/parser.js\n */\n\n\n\n\n/**\n * A parser for M3U8 files. The current interpretation of the input is\n * exposed as a property `manifest` on parser objects. It's just two lines to\n * create and parse a manifest once you have the contents available as a string:\n *\n * ```js\n * var parser = new m3u8.Parser();\n * parser.push(xhr.responseText);\n * ```\n *\n * New input can later be applied to update the manifest object by calling\n * `push` again.\n *\n * The parser attempts to create a usable manifest object even if the\n * underlying input is somewhat nonsensical. It emits `info` and `warning`\n * events during the parse if it encounters input that seems invalid or\n * requires some property of the manifest object to be defaulted.\n *\n * @class Parser\n * @extends Stream\n */\n\nvar Parser = /*#__PURE__*/function (_Stream) {\n _inheritsLoose(Parser, _Stream);\n\n function Parser() {\n var _this;\n\n _this = _Stream.call(this) || this;\n _this.lineStream = new _line_stream__WEBPACK_IMPORTED_MODULE_2__[\"default\"]();\n _this.parseStream = new _parse_stream__WEBPACK_IMPORTED_MODULE_3__[\"default\"]();\n\n _this.lineStream.pipe(_this.parseStream);\n /* eslint-disable consistent-this */\n\n\n var self = _assertThisInitialized(_this);\n /* eslint-enable consistent-this */\n\n\n var uris = [];\n var currentUri = {}; // if specified, the active EXT-X-MAP definition\n\n var currentMap; // if specified, the active decryption key\n\n var _key;\n\n var noop = function noop() {};\n\n var defaultMediaGroups = {\n 'AUDIO': {},\n 'VIDEO': {},\n 'CLOSED-CAPTIONS': {},\n 'SUBTITLES': {}\n }; // This is the Widevine UUID from DASH IF IOP. The same exact string is\n // used in MPDs with Widevine encrypted streams.\n\n var widevineUuid = 'urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed'; // group segments into numbered timelines delineated by discontinuities\n\n var currentTimeline = 0; // the manifest is empty until the parse stream begins delivering data\n\n _this.manifest = {\n allowCache: true,\n discontinuityStarts: [],\n segments: []\n }; // update the manifest with the m3u8 entry from the parse stream\n\n _this.parseStream.on('data', function (entry) {\n var mediaGroup;\n var rendition;\n ({\n tag: function tag() {\n // switch based on the tag type\n (({\n 'allow-cache': function allowCache() {\n this.manifest.allowCache = entry.allowed;\n\n if (!('allowed' in entry)) {\n this.trigger('info', {\n message: 'defaulting allowCache to YES'\n });\n this.manifest.allowCache = true;\n }\n },\n byterange: function byterange() {\n var byterange = {};\n\n if ('length' in entry) {\n currentUri.byterange = byterange;\n byterange.length = entry.length;\n\n if (!('offset' in entry)) {\n this.trigger('info', {\n message: 'defaulting offset to zero'\n });\n entry.offset = 0;\n }\n }\n\n if ('offset' in entry) {\n currentUri.byterange = byterange;\n byterange.offset = entry.offset;\n }\n },\n endlist: function endlist() {\n this.manifest.endList = true;\n },\n inf: function inf() {\n if (!('mediaSequence' in this.manifest)) {\n this.manifest.mediaSequence = 0;\n this.trigger('info', {\n message: 'defaulting media sequence to zero'\n });\n }\n\n if (!('discontinuitySequence' in this.manifest)) {\n this.manifest.discontinuitySequence = 0;\n this.trigger('info', {\n message: 'defaulting discontinuity sequence to zero'\n });\n }\n\n if (entry.duration > 0) {\n currentUri.duration = entry.duration;\n }\n\n if (entry.duration === 0) {\n currentUri.duration = 0.01;\n this.trigger('info', {\n message: 'updating zero segment duration to a small value'\n });\n }\n\n this.manifest.segments = uris;\n },\n key: function key() {\n if (!entry.attributes) {\n this.trigger('warn', {\n message: 'ignoring key declaration without attribute list'\n });\n return;\n } // clear the active encryption key\n\n\n if (entry.attributes.METHOD === 'NONE') {\n _key = null;\n return;\n }\n\n if (!entry.attributes.URI) {\n this.trigger('warn', {\n message: 'ignoring key declaration without URI'\n });\n return;\n } // check if the content is encrypted for Widevine\n // Widevine/HLS spec: https://storage.googleapis.com/wvdocs/Widevine_DRM_HLS.pdf\n\n\n if (entry.attributes.KEYFORMAT === widevineUuid) {\n var VALID_METHODS = ['SAMPLE-AES', 'SAMPLE-AES-CTR', 'SAMPLE-AES-CENC'];\n\n if (VALID_METHODS.indexOf(entry.attributes.METHOD) === -1) {\n this.trigger('warn', {\n message: 'invalid key method provided for Widevine'\n });\n return;\n }\n\n if (entry.attributes.METHOD === 'SAMPLE-AES-CENC') {\n this.trigger('warn', {\n message: 'SAMPLE-AES-CENC is deprecated, please use SAMPLE-AES-CTR instead'\n });\n }\n\n if (entry.attributes.URI.substring(0, 23) !== 'data:text/plain;base64,') {\n this.trigger('warn', {\n message: 'invalid key URI provided for Widevine'\n });\n return;\n }\n\n if (!(entry.attributes.KEYID && entry.attributes.KEYID.substring(0, 2) === '0x')) {\n this.trigger('warn', {\n message: 'invalid key ID provided for Widevine'\n });\n return;\n } // if Widevine key attributes are valid, store them as `contentProtection`\n // on the manifest to emulate Widevine tag structure in a DASH mpd\n\n\n this.manifest.contentProtection = {\n 'com.widevine.alpha': {\n attributes: {\n schemeIdUri: entry.attributes.KEYFORMAT,\n // remove '0x' from the key id string\n keyId: entry.attributes.KEYID.substring(2)\n },\n // decode the base64-encoded PSSH box\n pssh: _videojs_vhs_utils_dist_decode_b64_to_uint8_array_js__WEBPACK_IMPORTED_MODULE_1___default()(entry.attributes.URI.split(',')[1])\n }\n };\n return;\n }\n\n if (!entry.attributes.METHOD) {\n this.trigger('warn', {\n message: 'defaulting key method to AES-128'\n });\n } // setup an encryption key for upcoming segments\n\n\n _key = {\n method: entry.attributes.METHOD || 'AES-128',\n uri: entry.attributes.URI\n };\n\n if (typeof entry.attributes.IV !== 'undefined') {\n _key.iv = entry.attributes.IV;\n }\n },\n 'media-sequence': function mediaSequence() {\n if (!isFinite(entry.number)) {\n this.trigger('warn', {\n message: 'ignoring invalid media sequence: ' + entry.number\n });\n return;\n }\n\n this.manifest.mediaSequence = entry.number;\n },\n 'discontinuity-sequence': function discontinuitySequence() {\n if (!isFinite(entry.number)) {\n this.trigger('warn', {\n message: 'ignoring invalid discontinuity sequence: ' + entry.number\n });\n return;\n }\n\n this.manifest.discontinuitySequence = entry.number;\n currentTimeline = entry.number;\n },\n 'playlist-type': function playlistType() {\n if (!/VOD|EVENT/.test(entry.playlistType)) {\n this.trigger('warn', {\n message: 'ignoring unknown playlist type: ' + entry.playlist\n });\n return;\n }\n\n this.manifest.playlistType = entry.playlistType;\n },\n map: function map() {\n currentMap = {};\n\n if (entry.uri) {\n currentMap.uri = entry.uri;\n }\n\n if (entry.byterange) {\n currentMap.byterange = entry.byterange;\n }\n },\n 'stream-inf': function streamInf() {\n this.manifest.playlists = uris;\n this.manifest.mediaGroups = this.manifest.mediaGroups || defaultMediaGroups;\n\n if (!entry.attributes) {\n this.trigger('warn', {\n message: 'ignoring empty stream-inf attributes'\n });\n return;\n }\n\n if (!currentUri.attributes) {\n currentUri.attributes = {};\n }\n\n Object.assign(currentUri.attributes, entry.attributes);\n },\n media: function media() {\n this.manifest.mediaGroups = this.manifest.mediaGroups || defaultMediaGroups;\n\n if (!(entry.attributes && entry.attributes.TYPE && entry.attributes['GROUP-ID'] && entry.attributes.NAME)) {\n this.trigger('warn', {\n message: 'ignoring incomplete or missing media group'\n });\n return;\n } // find the media group, creating defaults as necessary\n\n\n var mediaGroupType = this.manifest.mediaGroups[entry.attributes.TYPE];\n mediaGroupType[entry.attributes['GROUP-ID']] = mediaGroupType[entry.attributes['GROUP-ID']] || {};\n mediaGroup = mediaGroupType[entry.attributes['GROUP-ID']]; // collect the rendition metadata\n\n rendition = {\n default: /yes/i.test(entry.attributes.DEFAULT)\n };\n\n if (rendition.default) {\n rendition.autoselect = true;\n } else {\n rendition.autoselect = /yes/i.test(entry.attributes.AUTOSELECT);\n }\n\n if (entry.attributes.LANGUAGE) {\n rendition.language = entry.attributes.LANGUAGE;\n }\n\n if (entry.attributes.URI) {\n rendition.uri = entry.attributes.URI;\n }\n\n if (entry.attributes['INSTREAM-ID']) {\n rendition.instreamId = entry.attributes['INSTREAM-ID'];\n }\n\n if (entry.attributes.CHARACTERISTICS) {\n rendition.characteristics = entry.attributes.CHARACTERISTICS;\n }\n\n if (entry.attributes.FORCED) {\n rendition.forced = /yes/i.test(entry.attributes.FORCED);\n } // insert the new rendition\n\n\n mediaGroup[entry.attributes.NAME] = rendition;\n },\n discontinuity: function discontinuity() {\n currentTimeline += 1;\n currentUri.discontinuity = true;\n this.manifest.discontinuityStarts.push(uris.length);\n },\n 'program-date-time': function programDateTime() {\n if (typeof this.manifest.dateTimeString === 'undefined') {\n // PROGRAM-DATE-TIME is a media-segment tag, but for backwards\n // compatibility, we add the first occurence of the PROGRAM-DATE-TIME tag\n // to the manifest object\n // TODO: Consider removing this in future major version\n this.manifest.dateTimeString = entry.dateTimeString;\n this.manifest.dateTimeObject = entry.dateTimeObject;\n }\n\n currentUri.dateTimeString = entry.dateTimeString;\n currentUri.dateTimeObject = entry.dateTimeObject;\n },\n targetduration: function targetduration() {\n if (!isFinite(entry.duration) || entry.duration < 0) {\n this.trigger('warn', {\n message: 'ignoring invalid target duration: ' + entry.duration\n });\n return;\n }\n\n this.manifest.targetDuration = entry.duration;\n },\n totalduration: function totalduration() {\n if (!isFinite(entry.duration) || entry.duration < 0) {\n this.trigger('warn', {\n message: 'ignoring invalid total duration: ' + entry.duration\n });\n return;\n }\n\n this.manifest.totalDuration = entry.duration;\n },\n start: function start() {\n if (!entry.attributes || isNaN(entry.attributes['TIME-OFFSET'])) {\n this.trigger('warn', {\n message: 'ignoring start declaration without appropriate attribute list'\n });\n return;\n }\n\n this.manifest.start = {\n timeOffset: entry.attributes['TIME-OFFSET'],\n precise: entry.attributes.PRECISE\n };\n },\n 'cue-out': function cueOut() {\n currentUri.cueOut = entry.data;\n },\n 'cue-out-cont': function cueOutCont() {\n currentUri.cueOutCont = entry.data;\n },\n 'cue-in': function cueIn() {\n currentUri.cueIn = entry.data;\n }\n })[entry.tagType] || noop).call(self);\n },\n uri: function uri() {\n currentUri.uri = entry.uri;\n uris.push(currentUri); // if no explicit duration was declared, use the target duration\n\n if (this.manifest.targetDuration && !('duration' in currentUri)) {\n this.trigger('warn', {\n message: 'defaulting segment duration to the target duration'\n });\n currentUri.duration = this.manifest.targetDuration;\n } // annotate with encryption information, if necessary\n\n\n if (_key) {\n currentUri.key = _key;\n }\n\n currentUri.timeline = currentTimeline; // annotate with initialization segment information, if necessary\n\n if (currentMap) {\n currentUri.map = currentMap;\n } // prepare for the next URI\n\n\n currentUri = {};\n },\n comment: function comment() {// comments are not important for playback\n },\n custom: function custom() {\n // if this is segment-level data attach the output to the segment\n if (entry.segment) {\n currentUri.custom = currentUri.custom || {};\n currentUri.custom[entry.customType] = entry.data; // if this is manifest-level data attach to the top level manifest object\n } else {\n this.manifest.custom = this.manifest.custom || {};\n this.manifest.custom[entry.customType] = entry.data;\n }\n }\n })[entry.type].call(self);\n });\n\n return _this;\n }\n /**\n * Parse the input string and update the manifest object.\n *\n * @param {string} chunk a potentially incomplete portion of the manifest\n */\n\n\n var _proto = Parser.prototype;\n\n _proto.push = function push(chunk) {\n this.lineStream.push(chunk);\n }\n /**\n * Flush any remaining input. This can be handy if the last line of an M3U8\n * manifest did not contain a trailing newline but the file has been\n * completely received.\n */\n ;\n\n _proto.end = function end() {\n // flush any buffered input\n this.lineStream.push('\\n');\n }\n /**\n * Add an additional parser for non-standard tags\n *\n * @param {Object} options a map of options for the added parser\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {string} options.type the type to register to the output\n * @param {Function} [options.dataParser] function to parse the line into an object\n * @param {boolean} [options.segment] should tag data be attached to the segment object\n */\n ;\n\n _proto.addParser = function addParser(options) {\n this.parseStream.addParser(options);\n }\n /**\n * Add a custom header mapper\n *\n * @param {Object} options\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {Function} options.map function to translate tag into a different tag\n */\n ;\n\n _proto.addTagMapper = function addTagMapper(options) {\n this.parseStream.addTagMapper(options);\n };\n\n return Parser;\n}(_videojs_vhs_utils_dist_stream_js__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n\n\n//# sourceURL=webpack://WebMediaPlayer/./src/FlvPlayer/m3u8parser/parser.js?"); | ||
| 3593 | + | ||
| 3594 | +/***/ }), | ||
| 3595 | + | ||
| 3596 | +/***/ "./src/common/DecodeWorker.js": | ||
| 3597 | +/*!************************************!*\ | ||
| 3598 | + !*** ./src/common/DecodeWorker.js ***! | ||
| 3599 | + \************************************/ | ||
| 3600 | +/*! exports provided: default, VSSModule, VSSLoadWasmModule, VSSModuleInitialized */ | ||
| 3601 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3602 | + | ||
| 3603 | +"use strict"; | ||
| 3604 | +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(process, __dirname, module, Buffer) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VSSModule\", function() { return VSSModule; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VSSLoadWasmModule\", function() { return VSSLoadWasmModule; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VSSModuleInitialized\", function() { return VSSModuleInitialized; });\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common */ \"./src/common/common.js\");\n //import wasmWorker from 'wasm-worker';\n//import * as wasmjs from './wasm.js';\n\nvar ModuleInitialized = false;\nvar fullURL = '';\nvar Module = typeof Module !== 'undefined' ? Module : {}; //var moduleOverrides = {};\n\nvar noExitRuntime = true;\n\nfunction LoadWasmModule() {\n //console.log(\"LoadWasmModule\");\n //console.log(\"ModuleInitialized:\", ModuleInitialized);\n //if (window.wasmModule == undefined) {\n if (!ModuleInitialized) {\n var locateFile = function locateFile(path) {\n if (Module['locateFile']) {\n return Module['locateFile'](path, scriptDirectory);\n }\n\n return scriptDirectory + path;\n };\n\n var dynamicAlloc = function dynamicAlloc(size) {\n assert(DYNAMICTOP_PTR);\n var ret = HEAP32[DYNAMICTOP_PTR >> 2];\n var end = ret + size + 15 & -16;\n\n if (end > _emscripten_get_heap_size()) {\n abort('failure to dynamicAlloc - memory growth etc. is not supported there, call malloc/sbrk directly');\n }\n\n HEAP32[DYNAMICTOP_PTR >> 2] = end;\n return ret;\n };\n\n var getNativeTypeSize = function getNativeTypeSize(type) {\n switch (type) {\n case 'i1':\n case 'i8':\n return 1;\n\n case 'i16':\n return 2;\n\n case 'i32':\n return 4;\n\n case 'i64':\n return 8;\n\n case 'float':\n return 4;\n\n case 'double':\n return 8;\n\n default:\n {\n if (type[type.length - 1] === '*') {\n return 4;\n } else if (type[0] === 'i') {\n var bits = parseInt(type.substr(1));\n assert(bits % 8 === 0, 'getNativeTypeSize invalid bits ' + bits + ', type ' + type);\n return bits / 8;\n } else {\n return 0;\n }\n }\n }\n };\n\n var warnOnce = function warnOnce(text) {\n if (!warnOnce.shown) warnOnce.shown = {};\n\n if (!warnOnce.shown[text]) {\n warnOnce.shown[text] = 1;\n err(text);\n }\n };\n\n var convertJsFunctionToWasm = function convertJsFunctionToWasm(func, sig) {\n var typeSection = [1, 0, 1, 96];\n var sigRet = sig.slice(0, 1);\n var sigParam = sig.slice(1);\n var typeCodes = {\n 'i': 127,\n 'j': 126,\n 'f': 125,\n 'd': 124\n };\n typeSection.push(sigParam.length);\n\n for (var i = 0; i < sigParam.length; ++i) {\n typeSection.push(typeCodes[sigParam[i]]);\n }\n\n if (sigRet == 'v') {\n typeSection.push(0);\n } else {\n typeSection = typeSection.concat([1, typeCodes[sigRet]]);\n }\n\n typeSection[1] = typeSection.length - 2;\n var bytes = new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0].concat(typeSection, [2, 7, 1, 1, 101, 1, 102, 0, 0, 7, 5, 1, 1, 102, 0, 0]));\n var module = new WebAssembly.Module(bytes);\n var instance = new WebAssembly.Instance(module, {\n e: {\n f: func\n }\n });\n var wrappedFunc = instance.exports.f;\n return wrappedFunc;\n };\n\n var addFunctionWasm = function addFunctionWasm(func, sig) {\n var table = wasmTable;\n var ret = table.length;\n\n try {\n table.grow(1);\n } catch (err) {\n if (!err instanceof RangeError) {\n throw err;\n }\n\n throw 'Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH.';\n }\n\n try {\n table.set(ret, func);\n } catch (err) {\n if (!err instanceof TypeError) {\n throw err;\n }\n\n assert(typeof sig !== 'undefined', 'Missing signature argument to addFunction');\n var wrapped = convertJsFunctionToWasm(func, sig);\n table.set(ret, wrapped);\n }\n\n return ret;\n };\n\n var addFunction = function addFunction(func, sig) {\n assert(typeof func !== 'undefined');\n return addFunctionWasm(func, sig);\n };\n\n var setValue = function setValue(ptr, value, type, noSafe) {\n type = type || 'i8';\n if (type.charAt(type.length - 1) === '*') type = 'i32';\n\n switch (type) {\n case 'i1':\n HEAP8[ptr >> 0] = value;\n break;\n\n case 'i8':\n HEAP8[ptr >> 0] = value;\n break;\n\n case 'i16':\n HEAP16[ptr >> 1] = value;\n break;\n\n case 'i32':\n HEAP32[ptr >> 2] = value;\n break;\n\n case 'i64':\n tempI64 = [value >>> 0, (tempDouble = value, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[ptr >> 2] = tempI64[0], HEAP32[ptr + 4 >> 2] = tempI64[1];\n break;\n\n case 'float':\n HEAPF32[ptr >> 2] = value;\n break;\n\n case 'double':\n HEAPF64[ptr >> 3] = value;\n break;\n\n default:\n abort('invalid type for setValue: ' + type);\n }\n };\n\n var assert = function assert(condition, text) {\n if (!condition) {\n abort('Assertion failed: ' + text);\n }\n };\n\n var getCFunc = function getCFunc(ident) {\n var func = Module['_' + ident];\n assert(func, 'Cannot call unknown function ' + ident + ', make sure it is exported');\n return func;\n };\n\n var ccall = function ccall(ident, returnType, argTypes, args, opts) {\n var toC = {\n 'string': function string(str) {\n var ret = 0;\n\n if (str !== null && str !== undefined && str !== 0) {\n var len = (str.length << 2) + 1;\n ret = stackAlloc(len);\n stringToUTF8(str, ret, len);\n }\n\n return ret;\n },\n 'array': function array(arr) {\n var ret = stackAlloc(arr.length);\n writeArrayToMemory(arr, ret);\n return ret;\n }\n };\n\n function convertReturnValue(ret) {\n if (returnType === 'string') return UTF8ToString(ret);\n if (returnType === 'boolean') return Boolean(ret);\n return ret;\n }\n\n var func = getCFunc(ident);\n var cArgs = [];\n var stack = 0;\n assert(returnType !== 'array', 'Return type should not be \"array\".');\n\n if (args) {\n for (var i = 0; i < args.length; i++) {\n var converter = toC[argTypes[i]];\n\n if (converter) {\n if (stack === 0) stack = stackSave();\n cArgs[i] = converter(args[i]);\n } else {\n cArgs[i] = args[i];\n }\n }\n }\n\n var ret = func.apply(null, cArgs);\n ret = convertReturnValue(ret);\n if (stack !== 0) stackRestore(stack);\n return ret;\n };\n\n var cwrap = function cwrap(ident, returnType, argTypes, opts) {\n return function () {\n return ccall(ident, returnType, argTypes, arguments, opts);\n };\n };\n\n var allocate = function allocate(slab, types, allocator, ptr) {\n var zeroinit, size;\n\n if (typeof slab === 'number') {\n zeroinit = true;\n size = slab;\n } else {\n zeroinit = false;\n size = slab.length;\n }\n\n var singleType = typeof types === 'string' ? types : null;\n var ret;\n\n if (allocator == ALLOC_NONE) {\n ret = ptr;\n } else {\n ret = [_malloc, stackAlloc, dynamicAlloc][allocator](Math.max(size, singleType ? 1 : types.length));\n }\n\n if (zeroinit) {\n var stop;\n ptr = ret;\n assert((ret & 3) == 0);\n stop = ret + (size & ~3);\n\n for (; ptr < stop; ptr += 4) {\n HEAP32[ptr >> 2] = 0;\n }\n\n stop = ret + size;\n\n while (ptr < stop) {\n HEAP8[ptr++ >> 0] = 0;\n }\n\n return ret;\n }\n\n if (singleType === 'i8') {\n if (slab.subarray || slab.slice) {\n HEAPU8.set(slab, ret);\n } else {\n HEAPU8.set(new Uint8Array(slab), ret);\n }\n\n return ret;\n }\n\n var i = 0,\n type,\n typeSize,\n previousType;\n\n while (i < size) {\n var curr = slab[i];\n type = singleType || types[i];\n\n if (type === 0) {\n i++;\n continue;\n }\n\n assert(type, 'Must know what type to store in allocate!');\n if (type == 'i64') type = 'i32';\n setValue(ret + i, curr, type);\n\n if (previousType !== type) {\n typeSize = getNativeTypeSize(type);\n previousType = type;\n }\n\n i += typeSize;\n }\n\n return ret;\n };\n\n var UTF8ArrayToString = function UTF8ArrayToString(u8Array, idx, maxBytesToRead) {\n var endIdx = idx + maxBytesToRead;\n var endPtr = idx;\n\n while (u8Array[endPtr] && !(endPtr >= endIdx)) {\n ++endPtr;\n }\n\n if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {\n return UTF8Decoder.decode(u8Array.subarray(idx, endPtr));\n } else {\n var str = '';\n\n while (idx < endPtr) {\n var u0 = u8Array[idx++];\n\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue;\n }\n\n var u1 = u8Array[idx++] & 63;\n\n if ((u0 & 224) == 192) {\n str += String.fromCharCode((u0 & 31) << 6 | u1);\n continue;\n }\n\n var u2 = u8Array[idx++] & 63;\n\n if ((u0 & 240) == 224) {\n u0 = (u0 & 15) << 12 | u1 << 6 | u2;\n } else {\n if ((u0 & 248) != 240) warnOnce('Invalid UTF-8 leading byte 0x' + u0.toString(16) + ' encountered when deserializing a UTF-8 string on the asm.js/wasm heap to a JS string!');\n u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | u8Array[idx++] & 63;\n }\n\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n } else {\n var ch = u0 - 65536;\n str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n }\n }\n }\n\n return str;\n };\n\n var UTF8ToString = function UTF8ToString(ptr, maxBytesToRead) {\n return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : '';\n };\n\n var stringToUTF8Array = function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {\n if (!(maxBytesToWrite > 0)) return 0;\n var startIdx = outIdx;\n var endIdx = outIdx + maxBytesToWrite - 1;\n\n for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);\n\n if (u >= 55296 && u <= 57343) {\n var u1 = str.charCodeAt(++i);\n u = 65536 + ((u & 1023) << 10) | u1 & 1023;\n }\n\n if (u <= 127) {\n if (outIdx >= endIdx) break;\n outU8Array[outIdx++] = u;\n } else if (u <= 2047) {\n if (outIdx + 1 >= endIdx) break;\n outU8Array[outIdx++] = 192 | u >> 6;\n outU8Array[outIdx++] = 128 | u & 63;\n } else if (u <= 65535) {\n if (outIdx + 2 >= endIdx) break;\n outU8Array[outIdx++] = 224 | u >> 12;\n outU8Array[outIdx++] = 128 | u >> 6 & 63;\n outU8Array[outIdx++] = 128 | u & 63;\n } else {\n if (outIdx + 3 >= endIdx) break;\n if (u >= 2097152) warnOnce('Invalid Unicode code point 0x' + u.toString(16) + ' encountered when serializing a JS string to an UTF-8 string on the asm.js/wasm heap! (Valid unicode code points should be in range 0-0x1FFFFF).');\n outU8Array[outIdx++] = 240 | u >> 18;\n outU8Array[outIdx++] = 128 | u >> 12 & 63;\n outU8Array[outIdx++] = 128 | u >> 6 & 63;\n outU8Array[outIdx++] = 128 | u & 63;\n }\n }\n\n outU8Array[outIdx] = 0;\n return outIdx - startIdx;\n };\n\n var stringToUTF8 = function stringToUTF8(str, outPtr, maxBytesToWrite) {\n assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!');\n return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);\n };\n\n var lengthBytesUTF8 = function lengthBytesUTF8(str) {\n var len = 0;\n\n for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);\n if (u >= 55296 && u <= 57343) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023;\n if (u <= 127) ++len;else if (u <= 2047) len += 2;else if (u <= 65535) len += 3;else len += 4;\n }\n\n return len;\n };\n\n var writeArrayToMemory = function writeArrayToMemory(array, buffer) {\n assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)');\n HEAP8.set(array, buffer);\n };\n\n var writeAsciiToMemory = function writeAsciiToMemory(str, buffer, dontAddNull) {\n for (var i = 0; i < str.length; ++i) {\n assert(str.charCodeAt(i) === str.charCodeAt(i) & 255);\n HEAP8[buffer++ >> 0] = str.charCodeAt(i);\n }\n\n if (!dontAddNull) HEAP8[buffer >> 0] = 0;\n };\n\n var alignUp = function alignUp(x, multiple) {\n if (x % multiple > 0) {\n x += multiple - x % multiple;\n }\n\n return x;\n };\n\n var updateGlobalBufferAndViews = function updateGlobalBufferAndViews(buf) {\n buffer = buf;\n Module['HEAP8'] = HEAP8 = new Int8Array(buf);\n Module['HEAP16'] = HEAP16 = new Int16Array(buf);\n Module['HEAP32'] = HEAP32 = new Int32Array(buf);\n Module['HEAPU8'] = HEAPU8 = new Uint8Array(buf);\n Module['HEAPU16'] = HEAPU16 = new Uint16Array(buf);\n Module['HEAPU32'] = HEAPU32 = new Uint32Array(buf);\n Module['HEAPF32'] = HEAPF32 = new Float32Array(buf);\n Module['HEAPF64'] = HEAPF64 = new Float64Array(buf);\n };\n\n var writeStackCookie = function writeStackCookie() {\n assert((STACK_MAX & 3) == 0);\n HEAPU32[(STACK_MAX >> 2) + 1] = 34821223;\n HEAPU32[(STACK_MAX >> 2) + 2] = 2310721022;\n HEAP32[0] = 1668509029;\n };\n\n var checkStackCookie = function checkStackCookie() {\n var cookie1 = HEAPU32[(STACK_MAX >> 2) + 1];\n var cookie2 = HEAPU32[(STACK_MAX >> 2) + 2];\n\n if (cookie1 != 34821223 || cookie2 != 2310721022) {\n abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + cookie2.toString(16) + ' ' + cookie1.toString(16));\n }\n\n if (HEAP32[0] !== 1668509029) abort('Runtime error: The application has corrupted its heap memory area (address zero)!');\n };\n\n var abortStackOverflow = function abortStackOverflow(allocSize) {\n abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - stackSave() + allocSize) + ' bytes available!');\n };\n\n var callRuntimeCallbacks = function callRuntimeCallbacks(callbacks) {\n while (callbacks.length > 0) {\n var callback = callbacks.shift();\n\n if (typeof callback == 'function') {\n callback();\n continue;\n }\n\n var func = callback.func;\n\n if (typeof func === 'number') {\n if (callback.arg === undefined) {\n Module['dynCall_v'](func);\n } else {\n Module['dynCall_vi'](func, callback.arg);\n }\n } else {\n func(callback.arg === undefined ? null : callback.arg);\n }\n }\n };\n\n var preRun = function preRun() {\n if (Module['preRun']) {\n if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];\n\n while (Module['preRun'].length) {\n addOnPreRun(Module['preRun'].shift());\n }\n }\n\n callRuntimeCallbacks(__ATPRERUN__);\n };\n\n var initRuntime = function initRuntime() {\n checkStackCookie();\n assert(!runtimeInitialized);\n runtimeInitialized = true;\n if (!Module['noFSInit'] && !FS.init.initialized) FS.init();\n TTY.init();\n callRuntimeCallbacks(__ATINIT__);\n };\n\n var preMain = function preMain() {\n checkStackCookie();\n FS.ignorePermissions = false;\n callRuntimeCallbacks(__ATMAIN__);\n };\n\n var exitRuntime = function exitRuntime() {\n checkStackCookie();\n runtimeExited = true;\n };\n\n var postRun = function postRun() {\n checkStackCookie();\n\n if (Module['postRun']) {\n if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];\n\n while (Module['postRun'].length) {\n addOnPostRun(Module['postRun'].shift());\n }\n }\n\n callRuntimeCallbacks(__ATPOSTRUN__);\n };\n\n var addOnPreRun = function addOnPreRun(cb) {\n __ATPRERUN__.unshift(cb);\n };\n\n var addOnPostRun = function addOnPostRun(cb) {\n __ATPOSTRUN__.unshift(cb);\n };\n\n var getUniqueRunDependency = function getUniqueRunDependency(id) {\n var orig = id;\n\n while (1) {\n if (!runDependencyTracking[id]) return id;\n id = orig + Math.random();\n }\n\n return id;\n };\n\n var addRunDependency = function addRunDependency(id) {\n runDependencies++;\n\n if (Module['monitorRunDependencies']) {\n Module['monitorRunDependencies'](runDependencies);\n }\n\n if (id) {\n assert(!runDependencyTracking[id]);\n runDependencyTracking[id] = 1;\n\n if (runDependencyWatcher === null && typeof setInterval !== 'undefined') {\n runDependencyWatcher = setInterval(function () {\n if (ABORT) {\n clearInterval(runDependencyWatcher);\n runDependencyWatcher = null;\n return;\n }\n\n var shown = false;\n\n for (var dep in runDependencyTracking) {\n if (!shown) {\n shown = true;\n err('still waiting on run dependencies:');\n }\n\n err('dependency: ' + dep);\n }\n\n if (shown) {\n err('(end of list)');\n }\n }, 1e4);\n }\n } else {\n err('warning: run dependency added without ID');\n }\n };\n\n var removeRunDependency = function removeRunDependency(id) {\n runDependencies--;\n\n if (Module['monitorRunDependencies']) {\n Module['monitorRunDependencies'](runDependencies);\n }\n\n if (id) {\n assert(runDependencyTracking[id]);\n delete runDependencyTracking[id];\n } else {\n err('warning: run dependency removed without ID');\n }\n\n if (runDependencies == 0) {\n if (runDependencyWatcher !== null) {\n clearInterval(runDependencyWatcher);\n runDependencyWatcher = null;\n }\n\n if (dependenciesFulfilled) {\n var callback = dependenciesFulfilled;\n dependenciesFulfilled = null;\n callback();\n }\n }\n };\n\n var abort = function abort(what) {\n if (Module['onAbort']) {\n Module['onAbort'](what);\n }\n\n what += '';\n out(what);\n err(what);\n ABORT = true;\n EXITSTATUS = 1;\n var output = 'abort(' + what + ') at ' + stackTrace();\n what = output;\n throw new WebAssembly.RuntimeError(what);\n };\n\n var isDataURI = function isDataURI(filename) {\n return String.prototype.startsWith ? filename.startsWith(dataURIPrefix) : filename.indexOf(dataURIPrefix) === 0;\n };\n\n var getBinary = function getBinary() {\n try {\n if (wasmBinary) {\n return new Uint8Array(wasmBinary);\n }\n\n if (readBinary) {\n return readBinary(wasmBinaryFile);\n } else {\n throw 'both async and sync fetching of the wasm failed';\n }\n } catch (err) {\n abort(err);\n }\n };\n\n var getBinaryPromise = function getBinaryPromise() {\n if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === 'function') {\n return fetch(wasmBinaryFile, {\n credentials: 'same-origin'\n }).then(function (response) {\n if (!response['ok']) {\n throw 'failed to load wasm binary file at \\'' + wasmBinaryFile + '\\'';\n }\n\n return response['arrayBuffer']();\n }).catch(function () {\n return getBinary();\n });\n }\n\n return new Promise(function (resolve, reject) {\n resolve(getBinary());\n });\n };\n\n var createWasm = function createWasm() {\n var info = {\n 'env': asmLibraryArg,\n 'wasi_unstable': asmLibraryArg\n };\n\n function receiveInstance(instance, module) {\n var exports = instance.exports;\n Module['asm'] = exports;\n removeRunDependency('wasm-instantiate');\n }\n\n addRunDependency('wasm-instantiate');\n var trueModule = Module;\n\n function receiveInstantiatedSource(output) {\n assert(Module === trueModule, 'the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?');\n trueModule = null;\n receiveInstance(output['instance']);\n }\n\n function instantiateArrayBuffer(receiver) {\n return getBinaryPromise().then(function (binary) {\n return WebAssembly.instantiate(binary, info);\n }).then(receiver, function (reason) {\n err('failed to asynchronously prepare wasm: ' + reason);\n abort(reason);\n });\n }\n\n function instantiateAsync() {\n if (!wasmBinary && typeof WebAssembly.instantiateStreaming === 'function' && !isDataURI(wasmBinaryFile) && typeof fetch === 'function') {\n fetch(wasmBinaryFile, {\n credentials: 'same-origin'\n }).then(function (response) {\n var result = WebAssembly.instantiateStreaming(response, info);\n return result.then(receiveInstantiatedSource, function (reason) {\n err('wasm streaming compile failed: ' + reason);\n err('falling back to ArrayBuffer instantiation');\n instantiateArrayBuffer(receiveInstantiatedSource);\n });\n });\n } else {\n return instantiateArrayBuffer(receiveInstantiatedSource);\n }\n }\n\n if (Module['instantiateWasm']) {\n try {\n var exports = Module['instantiateWasm'](info, receiveInstance);\n return exports;\n } catch (e) {\n err('Module.instantiateWasm callback failed with error: ' + e);\n return false;\n }\n }\n\n instantiateAsync();\n return {};\n };\n\n var demangle = function demangle(func) {\n warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling');\n return func;\n };\n\n var demangleAll = function demangleAll(text) {\n var regex = /\\b_Z[\\w\\d_]+/g;\n return text.replace(regex, function (x) {\n var y = demangle(x);\n return x === y ? x : y + ' [' + x + ']';\n });\n };\n\n var jsStackTrace = function jsStackTrace() {\n var err = new Error();\n\n if (!err.stack) {\n try {\n throw new Error(0);\n } catch (e) {\n err = e;\n }\n\n if (!err.stack) {\n return '(no stack trace available)';\n }\n }\n\n return err.stack.toString();\n };\n\n var stackTrace = function stackTrace() {\n var js = jsStackTrace();\n if (Module['extraStackTrace']) js += '\\n' + Module['extraStackTrace']();\n return demangleAll(js);\n };\n\n var ___cxa_allocate_exception = function ___cxa_allocate_exception(size) {\n return _malloc(size);\n };\n\n var ___cxa_throw = function ___cxa_throw(ptr, type, destructor) {\n ___exception_infos[ptr] = {\n ptr: ptr,\n adjusted: [ptr],\n type: type,\n destructor: destructor,\n refcount: 0,\n caught: false,\n rethrown: false\n };\n ___exception_last = ptr;\n\n if (!('uncaught_exception' in __ZSt18uncaught_exceptionv)) {\n __ZSt18uncaught_exceptionv.uncaught_exceptions = 1;\n } else {\n __ZSt18uncaught_exceptionv.uncaught_exceptions++;\n }\n\n throw ptr + ' - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.';\n };\n\n var ___lock = function ___lock() {};\n\n var ___setErrNo = function ___setErrNo(value) {\n if (Module['___errno_location']) HEAP32[Module['___errno_location']() >> 2] = value;else err('failed to set errno from JS');\n return value;\n };\n\n var ___syscall221 = function ___syscall221(which, varargs) {\n SYSCALLS.varargs = varargs;\n\n try {\n var stream = SYSCALLS.getStreamFromFD(),\n cmd = SYSCALLS.get();\n\n switch (cmd) {\n case 0:\n {\n var arg = SYSCALLS.get();\n\n if (arg < 0) {\n return -28;\n }\n\n var newStream;\n newStream = FS.open(stream.path, stream.flags, 0, arg);\n return newStream.fd;\n }\n\n case 1:\n case 2:\n return 0;\n\n case 3:\n return stream.flags;\n\n case 4:\n {\n var arg = SYSCALLS.get();\n stream.flags |= arg;\n return 0;\n }\n\n case 12:\n {\n var arg = SYSCALLS.get();\n var offset = 0;\n HEAP16[arg + offset >> 1] = 2;\n return 0;\n }\n\n case 13:\n case 14:\n return 0;\n\n case 16:\n case 8:\n return -28;\n\n case 9:\n ___setErrNo(28);\n\n return -1;\n\n default:\n {\n return -28;\n }\n }\n } catch (e) {\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n };\n\n var ___syscall3 = function ___syscall3(which, varargs) {\n SYSCALLS.varargs = varargs;\n\n try {\n var stream = SYSCALLS.getStreamFromFD(),\n buf = SYSCALLS.get(),\n count = SYSCALLS.get();\n return FS.read(stream, HEAP8, buf, count);\n } catch (e) {\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n };\n\n var ___syscall5 = function ___syscall5(which, varargs) {\n SYSCALLS.varargs = varargs;\n\n try {\n var pathname = SYSCALLS.getStr(),\n flags = SYSCALLS.get(),\n mode = SYSCALLS.get();\n var stream = FS.open(pathname, flags, mode);\n return stream.fd;\n } catch (e) {\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n };\n\n var ___unlock = function ___unlock() {};\n\n var _abort = function _abort() {\n abort();\n };\n\n var _clock = function _clock() {\n if (_clock.start === undefined) _clock.start = Date.now();\n return (Date.now() - _clock.start) * (1e6 / 1e3) | 0;\n };\n\n var _emscripten_get_heap_size = function _emscripten_get_heap_size() {\n return HEAP8.length;\n };\n\n var _emscripten_memcpy_big = function _emscripten_memcpy_big(dest, src, num) {\n HEAPU8.set(HEAPU8.subarray(src, src + num), dest);\n };\n\n var emscripten_realloc_buffer = function emscripten_realloc_buffer(size) {\n try {\n wasmMemory.grow(size - buffer.byteLength + 65535 >> 16);\n updateGlobalBufferAndViews(wasmMemory.buffer);\n return 1;\n } catch (e) {\n console.error('emscripten_realloc_buffer: Attempted to grow heap from ' + buffer.byteLength + ' bytes to ' + size + ' bytes, but got error: ' + e);\n }\n };\n\n var _emscripten_resize_heap = function _emscripten_resize_heap(requestedSize) {\n var oldSize = _emscripten_get_heap_size();\n\n assert(requestedSize > oldSize);\n var PAGE_MULTIPLE = 65536;\n var LIMIT = 2147483648 - PAGE_MULTIPLE;\n\n if (requestedSize > LIMIT) {\n err('Cannot enlarge memory, asked to go up to ' + requestedSize + ' bytes, but the limit is ' + LIMIT + ' bytes!');\n return false;\n }\n\n var MIN_TOTAL_MEMORY = 16777216;\n var newSize = Math.max(oldSize, MIN_TOTAL_MEMORY);\n\n while (newSize < requestedSize) {\n if (newSize <= 536870912) {\n newSize = alignUp(2 * newSize, PAGE_MULTIPLE);\n } else {\n newSize = Math.min(alignUp((3 * newSize + 2147483648) / 4, PAGE_MULTIPLE), LIMIT);\n }\n\n if (newSize === oldSize) {\n warnOnce('Cannot ask for more memory since we reached the practical limit in browsers (which is just below 2GB), so the request would have failed. Requesting only ' + HEAP8.length);\n }\n }\n\n var replacement = emscripten_realloc_buffer(newSize);\n\n if (!replacement) {\n err('Failed to grow the heap from ' + oldSize + ' bytes to ' + newSize + ' bytes, not enough memory!');\n return false;\n }\n\n return true;\n };\n\n var _emscripten_get_environ = function _emscripten_get_environ() {\n if (!_emscripten_get_environ.strings) {\n var env = {\n 'USER': 'web_user',\n 'LOGNAME': 'web_user',\n 'PATH': '/',\n 'PWD': '/',\n 'HOME': '/home/web_user',\n 'LANG': (typeof navigator === 'object' && navigator.languages && navigator.languages[0] || 'C').replace('-', '_') + '.UTF-8',\n '_': thisProgram\n };\n\n for (var x in ENV) {\n env[x] = ENV[x];\n }\n\n var strings = [];\n\n for (var x in env) {\n strings.push(x + '=' + env[x]);\n }\n\n _emscripten_get_environ.strings = strings;\n }\n\n return _emscripten_get_environ.strings;\n };\n\n var _environ_get = function _environ_get(__environ, environ_buf) {\n var strings = _emscripten_get_environ();\n\n var bufSize = 0;\n strings.forEach(function (string, i) {\n var ptr = environ_buf + bufSize;\n HEAP32[__environ + i * 4 >> 2] = ptr;\n writeAsciiToMemory(string, ptr);\n bufSize += string.length + 1;\n });\n return 0;\n };\n\n var _environ_sizes_get = function _environ_sizes_get(penviron_count, penviron_buf_size) {\n var strings = _emscripten_get_environ();\n\n HEAP32[penviron_count >> 2] = strings.length;\n var bufSize = 0;\n strings.forEach(function (string) {\n bufSize += string.length + 1;\n });\n HEAP32[penviron_buf_size >> 2] = bufSize;\n return 0;\n };\n\n var _fd_close = function _fd_close(fd) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n FS.close(stream);\n return 0;\n } catch (e) {\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n };\n\n var _fd_fdstat_get = function _fd_fdstat_get(fd, pbuf) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var type = stream.tty ? 2 : FS.isDir(stream.mode) ? 3 : FS.isLink(stream.mode) ? 7 : 4;\n HEAP8[pbuf >> 0] = type;\n return 0;\n } catch (e) {\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n };\n\n var _fd_seek = function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var HIGH_OFFSET = 4294967296;\n var offset = offset_high * HIGH_OFFSET + (offset_low >>> 0);\n var DOUBLE_LIMIT = 9007199254740992;\n\n if (offset <= -DOUBLE_LIMIT || offset >= DOUBLE_LIMIT) {\n return -61;\n }\n\n FS.llseek(stream, offset, whence);\n tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[newOffset >> 2] = tempI64[0], HEAP32[newOffset + 4 >> 2] = tempI64[1];\n if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null;\n return 0;\n } catch (e) {\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n };\n\n var _fd_write = function _fd_write(fd, iov, iovcnt, pnum) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var num = SYSCALLS.doWritev(stream, iov, iovcnt);\n HEAP32[pnum >> 2] = num;\n return 0;\n } catch (e) {\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n };\n\n var _gettimeofday = function _gettimeofday(ptr) {\n var now = Date.now();\n HEAP32[ptr >> 2] = now / 1e3 | 0;\n HEAP32[ptr + 4 >> 2] = now % 1e3 * 1e3 | 0;\n return 0;\n };\n\n var _round = function _round(d) {\n d = +d;\n return d >= +0 ? +Math_floor(d + +.5) : +Math_ceil(d - +.5);\n };\n\n var _setTempRet0 = function _setTempRet0($i) {\n setTempRet0($i | 0);\n };\n\n var _time = function _time(ptr) {\n var ret = Date.now() / 1e3 | 0;\n\n if (ptr) {\n HEAP32[ptr >> 2] = ret;\n }\n\n return ret;\n };\n\n var intArrayFromString = function intArrayFromString(stringy, dontAddNull, length) {\n var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;\n var u8array = new Array(len);\n var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);\n if (dontAddNull) u8array.length = numBytesWritten;\n return u8array;\n };\n\n var ExitStatus = function ExitStatus(status) {\n this.name = 'ExitStatus';\n this.message = 'Program terminated with exit(' + status + ')';\n this.status = status;\n };\n\n var callMain = function callMain(args) {\n assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on Module[\"onRuntimeInitialized\"])');\n assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called');\n var entryFunction = Module['_main'];\n var argc = 0;\n var argv = 0;\n\n try {\n var ret = entryFunction(argc, argv);\n exit(ret, true);\n } catch (e) {\n if (e instanceof ExitStatus) {\n return;\n } else if (e == 'SimulateInfiniteLoop') {\n noExitRuntime = true;\n return;\n } else {\n var toLog = e;\n\n if (e && typeof e === 'object' && e.stack) {\n toLog = [e, e.stack];\n }\n\n err('exception thrown: ' + toLog);\n quit_(1, e);\n }\n } finally {\n calledMain = true;\n }\n };\n\n var run = function run(args) {\n args = args || arguments_;\n\n if (runDependencies > 0) {\n return;\n }\n\n writeStackCookie();\n preRun();\n if (runDependencies > 0) return;\n\n function doRun() {\n if (calledRun) return;\n calledRun = true;\n if (ABORT) return;\n initRuntime();\n preMain();\n if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized']();\n if (shouldRunNow) callMain(args);\n postRun();\n }\n\n if (Module['setStatus']) {\n Module['setStatus']('Running...');\n setTimeout(function () {\n setTimeout(function () {\n Module['setStatus']('');\n }, 1);\n doRun();\n }, 1);\n } else {\n doRun();\n }\n\n checkStackCookie();\n };\n\n var checkUnflushedContent = function checkUnflushedContent() {\n var print = out;\n var printErr = err;\n var has = false;\n\n out = err = function err(x) {\n has = true;\n };\n\n try {\n var flush = Module['_fflush'];\n if (flush) flush(0);\n ['stdout', 'stderr'].forEach(function (name) {\n var info = FS.analyzePath('/dev/' + name);\n if (!info) return;\n var stream = info.object;\n var rdev = stream.rdev;\n var tty = TTY.ttys[rdev];\n\n if (tty && tty.output && tty.output.length) {\n has = true;\n }\n });\n } catch (e) {}\n\n out = print;\n err = printErr;\n\n if (has) {\n warnOnce('stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.');\n }\n };\n\n var exit = function exit(status, implicit) {\n checkUnflushedContent();\n\n if (implicit && noExitRuntime && status === 0) {\n return;\n }\n\n if (noExitRuntime) {\n if (!implicit) {\n err('program exited (with status: ' + status + '), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)');\n }\n } else {\n ABORT = true;\n EXITSTATUS = status;\n exitRuntime();\n if (Module['onExit']) Module['onExit'](status);\n }\n\n quit_(status, new ExitStatus(status));\n };\n\n var moduleOverrides = {};\n var key;\n\n for (key in Module) {\n if (Module.hasOwnProperty(key)) {\n moduleOverrides[key] = Module[key];\n }\n }\n\n var arguments_ = [];\n var thisProgram = './this.program';\n\n var quit_ = function quit_(status, toThrow) {\n throw toThrow;\n };\n\n var ENVIRONMENT_IS_WEB = false;\n var ENVIRONMENT_IS_WORKER = false;\n var ENVIRONMENT_IS_NODE = false;\n var ENVIRONMENT_HAS_NODE = false;\n var ENVIRONMENT_IS_SHELL = false;\n ENVIRONMENT_IS_WEB = typeof window === 'object';\n ENVIRONMENT_IS_WORKER = typeof importScripts === 'function';\n ENVIRONMENT_HAS_NODE = typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string';\n ENVIRONMENT_IS_NODE = ENVIRONMENT_HAS_NODE && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;\n ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;\n\n if (Module['ENVIRONMENT']) {\n throw new Error('Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)');\n }\n\n var scriptDirectory = '';\n var read_, readAsync, readBinary, setWindowTitle;\n\n if (ENVIRONMENT_IS_NODE) {\n scriptDirectory = __dirname + '/';\n var nodeFS;\n var nodePath;\n\n read_ = function shell_read(filename, binary) {\n var ret;\n if (!nodeFS) nodeFS = __webpack_require__(/*! fs */ \"./node_modules/node-libs-browser/mock/empty.js\");\n if (!nodePath) nodePath = __webpack_require__(/*! path */ \"./node_modules/path-browserify/index.js\");\n filename = nodePath['normalize'](filename);\n ret = nodeFS['readFileSync'](filename);\n return binary ? ret : ret.toString();\n };\n\n readBinary = function readBinary(filename) {\n var ret = read_(filename, true);\n\n if (!ret.buffer) {\n ret = new Uint8Array(ret);\n }\n\n assert(ret.buffer);\n return ret;\n };\n\n if (process['argv'].length > 1) {\n thisProgram = process['argv'][1].replace(/\\\\/g, '/');\n }\n\n arguments_ = process['argv'].slice(2);\n\n if (true) {\n module['exports'] = Module;\n }\n\n process['on']('uncaughtException', function (ex) {\n if (!(ex instanceof ExitStatus)) {\n throw ex;\n }\n });\n process['on']('unhandledRejection', abort);\n\n quit_ = function quit_(status) {\n process['exit'](status);\n };\n\n Module['inspect'] = function () {\n return '[Emscripten Module object]';\n };\n } else if (ENVIRONMENT_IS_SHELL) {\n if (typeof read != 'undefined') {\n read_ = function shell_read(f) {\n return read(f);\n };\n }\n\n readBinary = function readBinary(f) {\n var data;\n\n if (typeof readbuffer === 'function') {\n return new Uint8Array(readbuffer(f));\n }\n\n data = read(f, 'binary');\n assert(typeof data === 'object');\n return data;\n };\n\n if (typeof scriptArgs != 'undefined') {\n arguments_ = scriptArgs;\n } else if (typeof arguments != 'undefined') {\n arguments_ = arguments;\n }\n\n if (typeof quit === 'function') {\n quit_ = function quit_(status) {\n quit(status);\n };\n }\n\n if (typeof print !== 'undefined') {\n if (typeof console === 'undefined') console = {};\n console.log = print;\n console.warn = console.error = typeof printErr !== 'undefined' ? printErr : print;\n }\n } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\n if (ENVIRONMENT_IS_WORKER) {\n scriptDirectory = self.location.href;\n } else if (document.currentScript) {\n scriptDirectory = document.currentScript.src;\n }\n\n if (scriptDirectory.indexOf('blob:') !== 0) {\n scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf('/') + 1);\n } else {\n scriptDirectory = '';\n }\n\n read_ = function shell_read(url) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, false);\n xhr.send(null);\n return xhr.responseText;\n };\n\n if (ENVIRONMENT_IS_WORKER) {\n readBinary = function readBinary(url) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, false);\n xhr.responseType = 'arraybuffer';\n xhr.send(null);\n return new Uint8Array(xhr.response);\n };\n }\n\n readAsync = function readAsync(url, onload, onerror) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.responseType = 'arraybuffer';\n\n xhr.onload = function xhr_onload() {\n if (xhr.status == 200 || xhr.status == 0 && xhr.response) {\n onload(xhr.response);\n return;\n }\n\n onerror();\n };\n\n xhr.onerror = onerror;\n xhr.send(null);\n };\n\n setWindowTitle = function setWindowTitle(title) {\n document.title = title;\n };\n } else {\n throw new Error('environment detection error');\n }\n\n var out = Module['print'] || console.log.bind(console);\n var err = Module['printErr'] || console.warn.bind(console);\n\n for (key in moduleOverrides) {\n if (moduleOverrides.hasOwnProperty(key)) {\n Module[key] = moduleOverrides[key];\n }\n }\n\n moduleOverrides = null;\n if (Module['arguments']) arguments_ = Module['arguments'];\n if (!Object.getOwnPropertyDescriptor(Module, 'arguments')) Object.defineProperty(Module, 'arguments', {\n configurable: true,\n get: function get() {\n abort('Module.arguments has been replaced with plain arguments_');\n }\n });\n if (Module['thisProgram']) thisProgram = Module['thisProgram'];\n if (!Object.getOwnPropertyDescriptor(Module, 'thisProgram')) Object.defineProperty(Module, 'thisProgram', {\n configurable: true,\n get: function get() {\n abort('Module.thisProgram has been replaced with plain thisProgram');\n }\n });\n if (Module['quit']) quit_ = Module['quit'];\n if (!Object.getOwnPropertyDescriptor(Module, 'quit')) Object.defineProperty(Module, 'quit', {\n configurable: true,\n get: function get() {\n abort('Module.quit has been replaced with plain quit_');\n }\n });\n assert(typeof Module['memoryInitializerPrefixURL'] === 'undefined', 'Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead');\n assert(typeof Module['pthreadMainPrefixURL'] === 'undefined', 'Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead');\n assert(typeof Module['cdInitializerPrefixURL'] === 'undefined', 'Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead');\n assert(typeof Module['filePackagePrefixURL'] === 'undefined', 'Module.filePackagePrefixURL option was removed, use Module.locateFile instead');\n assert(typeof Module['read'] === 'undefined', 'Module.read option was removed (modify read_ in JS)');\n assert(typeof Module['readAsync'] === 'undefined', 'Module.readAsync option was removed (modify readAsync in JS)');\n assert(typeof Module['readBinary'] === 'undefined', 'Module.readBinary option was removed (modify readBinary in JS)');\n assert(typeof Module['setWindowTitle'] === 'undefined', 'Module.setWindowTitle option was removed (modify setWindowTitle in JS)');\n if (!Object.getOwnPropertyDescriptor(Module, 'read')) Object.defineProperty(Module, 'read', {\n configurable: true,\n get: function get() {\n abort('Module.read has been replaced with plain read_');\n }\n });\n if (!Object.getOwnPropertyDescriptor(Module, 'readAsync')) Object.defineProperty(Module, 'readAsync', {\n configurable: true,\n get: function get() {\n abort('Module.readAsync has been replaced with plain readAsync');\n }\n });\n if (!Object.getOwnPropertyDescriptor(Module, 'readBinary')) Object.defineProperty(Module, 'readBinary', {\n configurable: true,\n get: function get() {\n abort('Module.readBinary has been replaced with plain readBinary');\n }\n });\n\n stackSave = stackRestore = stackAlloc = function stackAlloc() {\n abort('cannot use the stack before compiled code is ready to run, and has provided stack access');\n };\n\n var tempRet0 = 0;\n\n var setTempRet0 = function setTempRet0(value) {\n tempRet0 = value;\n };\n\n var wasmBinary;\n if (Module['wasmBinary']) wasmBinary = Module['wasmBinary'];\n if (!Object.getOwnPropertyDescriptor(Module, 'wasmBinary')) Object.defineProperty(Module, 'wasmBinary', {\n configurable: true,\n get: function get() {\n abort('Module.wasmBinary has been replaced with plain wasmBinary');\n }\n });\n var noExitRuntime;\n if (Module['noExitRuntime']) noExitRuntime = Module['noExitRuntime'];\n if (!Object.getOwnPropertyDescriptor(Module, 'noExitRuntime')) Object.defineProperty(Module, 'noExitRuntime', {\n configurable: true,\n get: function get() {\n abort('Module.noExitRuntime has been replaced with plain noExitRuntime');\n }\n });\n\n if (typeof WebAssembly !== 'object') {\n abort('No WebAssembly support found. Build with -s WASM=0 to target JavaScript instead.');\n }\n\n var wasmMemory;\n var wasmTable = new WebAssembly.Table({\n 'initial': 2542,\n 'maximum': 2542 + 10,\n 'element': 'anyfunc'\n });\n var ABORT = false;\n var EXITSTATUS = 0;\n var ALLOC_NONE = 3;\n var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined;\n var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined;\n var WASM_PAGE_SIZE = 65536;\n var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;\n var STACK_BASE = 6584080,\n STACK_MAX = 1341200,\n DYNAMIC_BASE = 6584080,\n DYNAMICTOP_PTR = 1341040;\n assert(STACK_BASE % 16 === 0, 'stack must start aligned');\n assert(DYNAMIC_BASE % 16 === 0, 'heap must start aligned');\n var TOTAL_STACK = 5242880;\n if (Module['TOTAL_STACK']) assert(TOTAL_STACK === Module['TOTAL_STACK'], 'the stack size can no longer be determined at runtime');\n var INITIAL_TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 67108864;\n if (!Object.getOwnPropertyDescriptor(Module, 'TOTAL_MEMORY')) Object.defineProperty(Module, 'TOTAL_MEMORY', {\n configurable: true,\n get: function get() {\n abort('Module.TOTAL_MEMORY has been replaced with plain INITIAL_TOTAL_MEMORY');\n }\n });\n assert(INITIAL_TOTAL_MEMORY >= TOTAL_STACK, 'TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + INITIAL_TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')');\n assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray !== undefined && Int32Array.prototype.set !== undefined, 'JS engine does not provide full typed array support');\n\n if (Module['wasmMemory']) {\n wasmMemory = Module['wasmMemory'];\n } else {\n wasmMemory = new WebAssembly.Memory({\n 'initial': INITIAL_TOTAL_MEMORY / WASM_PAGE_SIZE\n });\n }\n\n if (wasmMemory) {\n buffer = wasmMemory.buffer;\n }\n\n INITIAL_TOTAL_MEMORY = buffer.byteLength;\n assert(INITIAL_TOTAL_MEMORY % WASM_PAGE_SIZE === 0);\n updateGlobalBufferAndViews(buffer);\n HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE;\n\n (function () {\n var h16 = new Int16Array(1);\n var h8 = new Int8Array(h16.buffer);\n h16[0] = 25459;\n if (h8[0] !== 115 || h8[1] !== 99) throw 'Runtime error: expected the system to be little-endian!';\n })();\n\n var __ATPRERUN__ = [];\n var __ATINIT__ = [];\n var __ATMAIN__ = [];\n var __ATPOSTRUN__ = [];\n var runtimeInitialized = false;\n var runtimeExited = false;\n assert(Math.imul, 'This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill');\n assert(Math.fround, 'This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill');\n assert(Math.clz32, 'This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill');\n assert(Math.trunc, 'This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill');\n var Math_abs = Math.abs;\n var Math_ceil = Math.ceil;\n var Math_floor = Math.floor;\n var Math_min = Math.min;\n var runDependencies = 0;\n var runDependencyWatcher = null;\n var dependenciesFulfilled = null;\n var runDependencyTracking = {};\n Module['preloadedImages'] = {};\n Module['preloadedAudios'] = {};\n var dataURIPrefix = 'data:application/octet-stream;base64,';\n var wasmBinaryFile = fullURL + \"libVSS.wasm\"; // var wasmBinaryFile = fullURL + 'SkeyeWebPlayerSourceCode/demo/libVSS.wasm';\n\n if (!isDataURI(wasmBinaryFile)) {\n wasmBinaryFile = locateFile(wasmBinaryFile);\n }\n\n var tempDouble;\n var tempI64;\n\n __ATINIT__.push({\n func: function func() {\n ___wasm_call_ctors();\n }\n });\n\n var ___exception_infos = {};\n var ___exception_last = 0;\n var PATH = {\n splitPath: function splitPath(filename) {\n var splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\n return splitPathRe.exec(filename).slice(1);\n },\n normalizeArray: function normalizeArray(parts, allowAboveRoot) {\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n if (allowAboveRoot) {\n for (; up; up--) {\n parts.unshift('..');\n }\n }\n\n return parts;\n },\n normalize: function normalize(path) {\n var isAbsolute = path.charAt(0) === '/',\n trailingSlash = path.substr(-1) === '/';\n path = PATH.normalizeArray(path.split('/').filter(function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n },\n dirname: function dirname(path) {\n var result = PATH.splitPath(path),\n root = result[0],\n dir = result[1];\n\n if (!root && !dir) {\n return '.';\n }\n\n if (dir) {\n dir = dir.substr(0, dir.length - 1);\n }\n\n return root + dir;\n },\n basename: function basename(path) {\n if (path === '/') return '/';\n var lastSlash = path.lastIndexOf('/');\n if (lastSlash === -1) return path;\n return path.substr(lastSlash + 1);\n },\n extname: function extname(path) {\n return PATH.splitPath(path)[3];\n },\n join: function join() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return PATH.normalize(paths.join('/'));\n },\n join2: function join2(l, r) {\n return PATH.normalize(l + '/' + r);\n }\n };\n var PATH_FS = {\n resolve: function resolve() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : FS.cwd();\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n return '';\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n },\n relative: function relative(from, to) {\n from = PATH_FS.resolve(from).substr(1);\n to = PATH_FS.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n }\n };\n var TTY = {\n ttys: [],\n init: function init() {},\n shutdown: function shutdown() {},\n register: function register(dev, ops) {\n TTY.ttys[dev] = {\n input: [],\n output: [],\n ops: ops\n };\n FS.registerDevice(dev, TTY.stream_ops);\n },\n stream_ops: {\n open: function open(stream) {\n var tty = TTY.ttys[stream.node.rdev];\n\n if (!tty) {\n throw new FS.ErrnoError(43);\n }\n\n stream.tty = tty;\n stream.seekable = false;\n },\n close: function close(stream) {\n stream.tty.ops.flush(stream.tty);\n },\n flush: function flush(stream) {\n stream.tty.ops.flush(stream.tty);\n },\n read: function read(stream, buffer, offset, length, pos) {\n if (!stream.tty || !stream.tty.ops.get_char) {\n throw new FS.ErrnoError(60);\n }\n\n var bytesRead = 0;\n\n for (var i = 0; i < length; i++) {\n var result;\n\n try {\n result = stream.tty.ops.get_char(stream.tty);\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n\n if (result === undefined && bytesRead === 0) {\n throw new FS.ErrnoError(6);\n }\n\n if (result === null || result === undefined) break;\n bytesRead++;\n buffer[offset + i] = result;\n }\n\n if (bytesRead) {\n stream.node.timestamp = Date.now();\n }\n\n return bytesRead;\n },\n write: function write(stream, buffer, offset, length, pos) {\n if (!stream.tty || !stream.tty.ops.put_char) {\n throw new FS.ErrnoError(60);\n }\n\n try {\n for (var i = 0; i < length; i++) {\n stream.tty.ops.put_char(stream.tty, buffer[offset + i]);\n }\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n\n if (length) {\n stream.node.timestamp = Date.now();\n }\n\n return i;\n }\n },\n default_tty_ops: {\n get_char: function get_char(tty) {\n if (!tty.input.length) {\n var result = null;\n\n if (ENVIRONMENT_IS_NODE) {\n var BUFSIZE = 256;\n var buf = Buffer.alloc ? Buffer.alloc(BUFSIZE) : new Buffer(BUFSIZE);\n var bytesRead = 0;\n\n try {\n bytesRead = nodeFS.readSync(process.stdin.fd, buf, 0, BUFSIZE, null);\n } catch (e) {\n if (e.toString().indexOf('EOF') != -1) bytesRead = 0;else throw e;\n }\n\n if (bytesRead > 0) {\n result = buf.slice(0, bytesRead).toString('utf-8');\n } else {\n result = null;\n }\n } else if (typeof window != 'undefined' && typeof window.prompt == 'function') {\n result = window.prompt('Input: ');\n\n if (result !== null) {\n result += '\\n';\n }\n } else if (typeof readline == 'function') {\n result = readline();\n\n if (result !== null) {\n result += '\\n';\n }\n }\n\n if (!result) {\n return null;\n }\n\n tty.input = intArrayFromString(result, true);\n }\n\n return tty.input.shift();\n },\n put_char: function put_char(tty, val) {\n if (val === null || val === 10) {\n out(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n } else {\n if (val != 0) tty.output.push(val);\n }\n },\n flush: function flush(tty) {\n if (tty.output && tty.output.length > 0) {\n out(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n }\n }\n },\n default_tty1_ops: {\n put_char: function put_char(tty, val) {\n if (val === null || val === 10) {\n err(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n } else {\n if (val != 0) tty.output.push(val);\n }\n },\n flush: function flush(tty) {\n if (tty.output && tty.output.length > 0) {\n err(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n }\n }\n }\n };\n var MEMFS = {\n ops_table: null,\n mount: function mount(_mount) {\n return MEMFS.createNode(null, '/', 16384 | 511, 0);\n },\n createNode: function createNode(parent, name, mode, dev) {\n if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {\n throw new FS.ErrnoError(63);\n }\n\n if (!MEMFS.ops_table) {\n MEMFS.ops_table = {\n dir: {\n node: {\n getattr: MEMFS.node_ops.getattr,\n setattr: MEMFS.node_ops.setattr,\n lookup: MEMFS.node_ops.lookup,\n mknod: MEMFS.node_ops.mknod,\n rename: MEMFS.node_ops.rename,\n unlink: MEMFS.node_ops.unlink,\n rmdir: MEMFS.node_ops.rmdir,\n readdir: MEMFS.node_ops.readdir,\n symlink: MEMFS.node_ops.symlink\n },\n stream: {\n llseek: MEMFS.stream_ops.llseek\n }\n },\n file: {\n node: {\n getattr: MEMFS.node_ops.getattr,\n setattr: MEMFS.node_ops.setattr\n },\n stream: {\n llseek: MEMFS.stream_ops.llseek,\n read: MEMFS.stream_ops.read,\n write: MEMFS.stream_ops.write,\n allocate: MEMFS.stream_ops.allocate,\n mmap: MEMFS.stream_ops.mmap,\n msync: MEMFS.stream_ops.msync\n }\n },\n link: {\n node: {\n getattr: MEMFS.node_ops.getattr,\n setattr: MEMFS.node_ops.setattr,\n readlink: MEMFS.node_ops.readlink\n },\n stream: {}\n },\n chrdev: {\n node: {\n getattr: MEMFS.node_ops.getattr,\n setattr: MEMFS.node_ops.setattr\n },\n stream: FS.chrdev_stream_ops\n }\n };\n }\n\n var node = FS.createNode(parent, name, mode, dev);\n\n if (FS.isDir(node.mode)) {\n node.node_ops = MEMFS.ops_table.dir.node;\n node.stream_ops = MEMFS.ops_table.dir.stream;\n node.contents = {};\n } else if (FS.isFile(node.mode)) {\n node.node_ops = MEMFS.ops_table.file.node;\n node.stream_ops = MEMFS.ops_table.file.stream;\n node.usedBytes = 0;\n node.contents = null;\n } else if (FS.isLink(node.mode)) {\n node.node_ops = MEMFS.ops_table.link.node;\n node.stream_ops = MEMFS.ops_table.link.stream;\n } else if (FS.isChrdev(node.mode)) {\n node.node_ops = MEMFS.ops_table.chrdev.node;\n node.stream_ops = MEMFS.ops_table.chrdev.stream;\n }\n\n node.timestamp = Date.now();\n\n if (parent) {\n parent.contents[name] = node;\n }\n\n return node;\n },\n getFileDataAsRegularArray: function getFileDataAsRegularArray(node) {\n if (node.contents && node.contents.subarray) {\n var arr = [];\n\n for (var i = 0; i < node.usedBytes; ++i) {\n arr.push(node.contents[i]);\n }\n\n return arr;\n }\n\n return node.contents;\n },\n getFileDataAsTypedArray: function getFileDataAsTypedArray(node) {\n if (!node.contents) return new Uint8Array();\n if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes);\n return new Uint8Array(node.contents);\n },\n expandFileStorage: function expandFileStorage(node, newCapacity) {\n var prevCapacity = node.contents ? node.contents.length : 0;\n if (prevCapacity >= newCapacity) return;\n var CAPACITY_DOUBLING_MAX = 1024 * 1024;\n newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) | 0);\n if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256);\n var oldContents = node.contents;\n node.contents = new Uint8Array(newCapacity);\n if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0);\n return;\n },\n resizeFileStorage: function resizeFileStorage(node, newSize) {\n if (node.usedBytes == newSize) return;\n\n if (newSize == 0) {\n node.contents = null;\n node.usedBytes = 0;\n return;\n }\n\n if (!node.contents || node.contents.subarray) {\n var oldContents = node.contents;\n node.contents = new Uint8Array(new ArrayBuffer(newSize));\n\n if (oldContents) {\n node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes)));\n }\n\n node.usedBytes = newSize;\n return;\n }\n\n if (!node.contents) node.contents = [];\n if (node.contents.length > newSize) node.contents.length = newSize;else while (node.contents.length < newSize) {\n node.contents.push(0);\n }\n node.usedBytes = newSize;\n },\n node_ops: {\n getattr: function getattr(node) {\n var attr = {};\n attr.dev = FS.isChrdev(node.mode) ? node.id : 1;\n attr.ino = node.id;\n attr.mode = node.mode;\n attr.nlink = 1;\n attr.uid = 0;\n attr.gid = 0;\n attr.rdev = node.rdev;\n\n if (FS.isDir(node.mode)) {\n attr.size = 4096;\n } else if (FS.isFile(node.mode)) {\n attr.size = node.usedBytes;\n } else if (FS.isLink(node.mode)) {\n attr.size = node.link.length;\n } else {\n attr.size = 0;\n }\n\n attr.atime = new Date(node.timestamp);\n attr.mtime = new Date(node.timestamp);\n attr.ctime = new Date(node.timestamp);\n attr.blksize = 4096;\n attr.blocks = Math.ceil(attr.size / attr.blksize);\n return attr;\n },\n setattr: function setattr(node, attr) {\n if (attr.mode !== undefined) {\n node.mode = attr.mode;\n }\n\n if (attr.timestamp !== undefined) {\n node.timestamp = attr.timestamp;\n }\n\n if (attr.size !== undefined) {\n MEMFS.resizeFileStorage(node, attr.size);\n }\n },\n lookup: function lookup(parent, name) {\n throw FS.genericErrors[44];\n },\n mknod: function mknod(parent, name, mode, dev) {\n return MEMFS.createNode(parent, name, mode, dev);\n },\n rename: function rename(old_node, new_dir, new_name) {\n if (FS.isDir(old_node.mode)) {\n var new_node;\n\n try {\n new_node = FS.lookupNode(new_dir, new_name);\n } catch (e) {}\n\n if (new_node) {\n for (var i in new_node.contents) {\n throw new FS.ErrnoError(55);\n }\n }\n }\n\n delete old_node.parent.contents[old_node.name];\n old_node.name = new_name;\n new_dir.contents[new_name] = old_node;\n old_node.parent = new_dir;\n },\n unlink: function unlink(parent, name) {\n delete parent.contents[name];\n },\n rmdir: function rmdir(parent, name) {\n var node = FS.lookupNode(parent, name);\n\n for (var i in node.contents) {\n throw new FS.ErrnoError(55);\n }\n\n delete parent.contents[name];\n },\n readdir: function readdir(node) {\n var entries = ['.', '..'];\n\n for (var key in node.contents) {\n if (!node.contents.hasOwnProperty(key)) {\n continue;\n }\n\n entries.push(key);\n }\n\n return entries;\n },\n symlink: function symlink(parent, newname, oldpath) {\n var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);\n node.link = oldpath;\n return node;\n },\n readlink: function readlink(node) {\n if (!FS.isLink(node.mode)) {\n throw new FS.ErrnoError(28);\n }\n\n return node.link;\n }\n },\n stream_ops: {\n read: function read(stream, buffer, offset, length, position) {\n var contents = stream.node.contents;\n if (position >= stream.node.usedBytes) return 0;\n var size = Math.min(stream.node.usedBytes - position, length);\n assert(size >= 0);\n\n if (size > 8 && contents.subarray) {\n buffer.set(contents.subarray(position, position + size), offset);\n } else {\n for (var i = 0; i < size; i++) {\n buffer[offset + i] = contents[position + i];\n }\n }\n\n return size;\n },\n write: function write(stream, buffer, offset, length, position, canOwn) {\n if (canOwn) {\n warnOnce('file packager has copied file data into memory, but in memory growth we are forced to copy it again (see --no-heap-copy)');\n }\n\n canOwn = false;\n if (!length) return 0;\n var node = stream.node;\n node.timestamp = Date.now();\n\n if (buffer.subarray && (!node.contents || node.contents.subarray)) {\n if (canOwn) {\n assert(position === 0, 'canOwn must imply no weird position inside the file');\n node.contents = buffer.subarray(offset, offset + length);\n node.usedBytes = length;\n return length;\n } else if (node.usedBytes === 0 && position === 0) {\n node.contents = new Uint8Array(buffer.subarray(offset, offset + length));\n node.usedBytes = length;\n return length;\n } else if (position + length <= node.usedBytes) {\n node.contents.set(buffer.subarray(offset, offset + length), position);\n return length;\n }\n }\n\n MEMFS.expandFileStorage(node, position + length);\n if (node.contents.subarray && buffer.subarray) node.contents.set(buffer.subarray(offset, offset + length), position);else {\n for (var i = 0; i < length; i++) {\n node.contents[position + i] = buffer[offset + i];\n }\n }\n node.usedBytes = Math.max(node.usedBytes, position + length);\n return length;\n },\n llseek: function llseek(stream, offset, whence) {\n var position = offset;\n\n if (whence === 1) {\n position += stream.position;\n } else if (whence === 2) {\n if (FS.isFile(stream.node.mode)) {\n position += stream.node.usedBytes;\n }\n }\n\n if (position < 0) {\n throw new FS.ErrnoError(28);\n }\n\n return position;\n },\n allocate: function allocate(stream, offset, length) {\n MEMFS.expandFileStorage(stream.node, offset + length);\n stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);\n },\n mmap: function mmap(stream, buffer, offset, length, position, prot, flags) {\n if (!FS.isFile(stream.node.mode)) {\n throw new FS.ErrnoError(43);\n }\n\n var ptr;\n var allocated;\n var contents = stream.node.contents;\n\n if (!(flags & 2) && (contents.buffer === buffer || contents.buffer === buffer.buffer)) {\n allocated = false;\n ptr = contents.byteOffset;\n } else {\n if (position > 0 || position + length < stream.node.usedBytes) {\n if (contents.subarray) {\n contents = contents.subarray(position, position + length);\n } else {\n contents = Array.prototype.slice.call(contents, position, position + length);\n }\n }\n\n allocated = true;\n var fromHeap = buffer.buffer == HEAP8.buffer;\n ptr = _malloc(length);\n\n if (!ptr) {\n throw new FS.ErrnoError(48);\n }\n\n (fromHeap ? HEAP8 : buffer).set(contents, ptr);\n }\n\n return {\n ptr: ptr,\n allocated: allocated\n };\n },\n msync: function msync(stream, buffer, offset, length, mmapFlags) {\n if (!FS.isFile(stream.node.mode)) {\n throw new FS.ErrnoError(43);\n }\n\n if (mmapFlags & 2) {\n return 0;\n }\n\n var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);\n return 0;\n }\n }\n };\n var ERRNO_MESSAGES = {\n 0: 'Success',\n 1: 'Arg list too long',\n 2: 'Permission denied',\n 3: 'Address already in use',\n 4: 'Address not available',\n 5: 'Address family not supported by protocol family',\n 6: 'No more processes',\n 7: 'Socket already connected',\n 8: 'Bad file number',\n 9: 'Trying to read unreadable message',\n 10: 'Mount device busy',\n 11: 'Operation canceled',\n 12: 'No children',\n 13: 'Connection aborted',\n 14: 'Connection refused',\n 15: 'Connection reset by peer',\n 16: 'File locking deadlock error',\n 17: 'Destination address required',\n 18: 'Math arg out of domain of func',\n 19: 'Quota exceeded',\n 20: 'File exists',\n 21: 'Bad address',\n 22: 'File too large',\n 23: 'Host is unreachable',\n 24: 'Identifier removed',\n 25: 'Illegal byte sequence',\n 26: 'Connection already in progress',\n 27: 'Interrupted system call',\n 28: 'Invalid argument',\n 29: 'I/O error',\n 30: 'Socket is already connected',\n 31: 'Is a directory',\n 32: 'Too many symbolic links',\n 33: 'Too many open files',\n 34: 'Too many links',\n 35: 'Message too long',\n 36: 'Multihop attempted',\n 37: 'File or path name too long',\n 38: 'Network interface is not configured',\n 39: 'Connection reset by network',\n 40: 'Network is unreachable',\n 41: 'Too many open files in system',\n 42: 'No buffer space available',\n 43: 'No such device',\n 44: 'No such file or directory',\n 45: 'Exec format error',\n 46: 'No record locks available',\n 47: 'The link has been severed',\n 48: 'Not enough core',\n 49: 'No message of desired type',\n 50: 'Protocol not available',\n 51: 'No space left on device',\n 52: 'Function not implemented',\n 53: 'Socket is not connected',\n 54: 'Not a directory',\n 55: 'Directory not empty',\n 56: 'State not recoverable',\n 57: 'Socket operation on non-socket',\n 59: 'Not a typewriter',\n 60: 'No such device or address',\n 61: 'Value too large for defined data type',\n 62: 'Previous owner died',\n 63: 'Not super-user',\n 64: 'Broken pipe',\n 65: 'Protocol error',\n 66: 'Unknown protocol',\n 67: 'Protocol wrong type for socket',\n 68: 'Math result not representable',\n 69: 'Read only file system',\n 70: 'Illegal seek',\n 71: 'No such process',\n 72: 'Stale file handle',\n 73: 'Connection timed out',\n 74: 'Text file busy',\n 75: 'Cross-device link',\n 100: 'Device not a stream',\n 101: 'Bad font file fmt',\n 102: 'Invalid slot',\n 103: 'Invalid request code',\n 104: 'No anode',\n 105: 'Block device required',\n 106: 'Channel number out of range',\n 107: 'Level 3 halted',\n 108: 'Level 3 reset',\n 109: 'Link number out of range',\n 110: 'Protocol driver not attached',\n 111: 'No CSI structure available',\n 112: 'Level 2 halted',\n 113: 'Invalid exchange',\n 114: 'Invalid request descriptor',\n 115: 'Exchange full',\n 116: 'No data (for no delay io)',\n 117: 'Timer expired',\n 118: 'Out of streams resources',\n 119: 'Machine is not on the network',\n 120: 'Package not installed',\n 121: 'The object is remote',\n 122: 'Advertise error',\n 123: 'Srmount error',\n 124: 'Communication error on send',\n 125: 'Cross mount point (not really error)',\n 126: 'Given log. name not unique',\n 127: 'f.d. invalid for this operation',\n 128: 'Remote address changed',\n 129: 'Can access a needed shared lib',\n 130: 'Accessing a corrupted shared lib',\n 131: '.lib section in a.out corrupted',\n 132: 'Attempting to link in too many libs',\n 133: 'Attempting to exec a shared library',\n 135: 'Streams pipe error',\n 136: 'Too many users',\n 137: 'Socket type not supported',\n 138: 'Not supported',\n 139: 'Protocol family not supported',\n 140: 'Can\\'t send after socket shutdown',\n 141: 'Too many references',\n 142: 'Host is down',\n 148: 'No medium (in tape drive)',\n 156: 'Level 2 not synchronized'\n };\n var ERRNO_CODES = {\n EPERM: 63,\n ENOENT: 44,\n ESRCH: 71,\n EINTR: 27,\n EIO: 29,\n ENXIO: 60,\n E2BIG: 1,\n ENOEXEC: 45,\n EBADF: 8,\n ECHILD: 12,\n EAGAIN: 6,\n EWOULDBLOCK: 6,\n ENOMEM: 48,\n EACCES: 2,\n EFAULT: 21,\n ENOTBLK: 105,\n EBUSY: 10,\n EEXIST: 20,\n EXDEV: 75,\n ENODEV: 43,\n ENOTDIR: 54,\n EISDIR: 31,\n EINVAL: 28,\n ENFILE: 41,\n EMFILE: 33,\n ENOTTY: 59,\n ETXTBSY: 74,\n EFBIG: 22,\n ENOSPC: 51,\n ESPIPE: 70,\n EROFS: 69,\n EMLINK: 34,\n EPIPE: 64,\n EDOM: 18,\n ERANGE: 68,\n ENOMSG: 49,\n EIDRM: 24,\n ECHRNG: 106,\n EL2NSYNC: 156,\n EL3HLT: 107,\n EL3RST: 108,\n ELNRNG: 109,\n EUNATCH: 110,\n ENOCSI: 111,\n EL2HLT: 112,\n EDEADLK: 16,\n ENOLCK: 46,\n EBADE: 113,\n EBADR: 114,\n EXFULL: 115,\n ENOANO: 104,\n EBADRQC: 103,\n EBADSLT: 102,\n EDEADLOCK: 16,\n EBFONT: 101,\n ENOSTR: 100,\n ENODATA: 116,\n ETIME: 117,\n ENOSR: 118,\n ENONET: 119,\n ENOPKG: 120,\n EREMOTE: 121,\n ENOLINK: 47,\n EADV: 122,\n ESRMNT: 123,\n ECOMM: 124,\n EPROTO: 65,\n EMULTIHOP: 36,\n EDOTDOT: 125,\n EBADMSG: 9,\n ENOTUNIQ: 126,\n EBADFD: 127,\n EREMCHG: 128,\n ELIBACC: 129,\n ELIBBAD: 130,\n ELIBSCN: 131,\n ELIBMAX: 132,\n ELIBEXEC: 133,\n ENOSYS: 52,\n ENOTEMPTY: 55,\n ENAMETOOLONG: 37,\n ELOOP: 32,\n EOPNOTSUPP: 138,\n EPFNOSUPPORT: 139,\n ECONNRESET: 15,\n ENOBUFS: 42,\n EAFNOSUPPORT: 5,\n EPROTOTYPE: 67,\n ENOTSOCK: 57,\n ENOPROTOOPT: 50,\n ESHUTDOWN: 140,\n ECONNREFUSED: 14,\n EADDRINUSE: 3,\n ECONNABORTED: 13,\n ENETUNREACH: 40,\n ENETDOWN: 38,\n ETIMEDOUT: 73,\n EHOSTDOWN: 142,\n EHOSTUNREACH: 23,\n EINPROGRESS: 26,\n EALREADY: 7,\n EDESTADDRREQ: 17,\n EMSGSIZE: 35,\n EPROTONOSUPPORT: 66,\n ESOCKTNOSUPPORT: 137,\n EADDRNOTAVAIL: 4,\n ENETRESET: 39,\n EISCONN: 30,\n ENOTCONN: 53,\n ETOOMANYREFS: 141,\n EUSERS: 136,\n EDQUOT: 19,\n ESTALE: 72,\n ENOTSUP: 138,\n ENOMEDIUM: 148,\n EILSEQ: 25,\n EOVERFLOW: 61,\n ECANCELED: 11,\n ENOTRECOVERABLE: 56,\n EOWNERDEAD: 62,\n ESTRPIPE: 135\n };\n var FS = {\n root: null,\n mounts: [],\n devices: {},\n streams: [],\n nextInode: 1,\n nameTable: null,\n currentPath: '/',\n initialized: false,\n ignorePermissions: true,\n trackingDelegate: {},\n tracking: {\n openFlags: {\n READ: 1,\n WRITE: 2\n }\n },\n ErrnoError: null,\n genericErrors: {},\n filesystems: null,\n syncFSRequests: 0,\n handleFSError: function handleFSError(e) {\n if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace();\n return ___setErrNo(e.errno);\n },\n lookupPath: function lookupPath(path, opts) {\n path = PATH_FS.resolve(FS.cwd(), path);\n opts = opts || {};\n if (!path) return {\n path: '',\n node: null\n };\n var defaults = {\n follow_mount: true,\n recurse_count: 0\n };\n\n for (var key in defaults) {\n if (opts[key] === undefined) {\n opts[key] = defaults[key];\n }\n }\n\n if (opts.recurse_count > 8) {\n throw new FS.ErrnoError(32);\n }\n\n var parts = PATH.normalizeArray(path.split('/').filter(function (p) {\n return !!p;\n }), false);\n var current = FS.root;\n var current_path = '/';\n\n for (var i = 0; i < parts.length; i++) {\n var islast = i === parts.length - 1;\n\n if (islast && opts.parent) {\n break;\n }\n\n current = FS.lookupNode(current, parts[i]);\n current_path = PATH.join2(current_path, parts[i]);\n\n if (FS.isMountpoint(current)) {\n if (!islast || islast && opts.follow_mount) {\n current = current.mounted.root;\n }\n }\n\n if (!islast || opts.follow) {\n var count = 0;\n\n while (FS.isLink(current.mode)) {\n var link = FS.readlink(current_path);\n current_path = PATH_FS.resolve(PATH.dirname(current_path), link);\n var lookup = FS.lookupPath(current_path, {\n recurse_count: opts.recurse_count\n });\n current = lookup.node;\n\n if (count++ > 40) {\n throw new FS.ErrnoError(32);\n }\n }\n }\n }\n\n return {\n path: current_path,\n node: current\n };\n },\n getPath: function getPath(node) {\n var path;\n\n while (true) {\n if (FS.isRoot(node)) {\n var mount = node.mount.mountpoint;\n if (!path) return mount;\n return mount[mount.length - 1] !== '/' ? mount + '/' + path : mount + path;\n }\n\n path = path ? node.name + '/' + path : node.name;\n node = node.parent;\n }\n },\n hashName: function hashName(parentid, name) {\n var hash = 0;\n\n for (var i = 0; i < name.length; i++) {\n hash = (hash << 5) - hash + name.charCodeAt(i) | 0;\n }\n\n return (parentid + hash >>> 0) % FS.nameTable.length;\n },\n hashAddNode: function hashAddNode(node) {\n var hash = FS.hashName(node.parent.id, node.name);\n node.name_next = FS.nameTable[hash];\n FS.nameTable[hash] = node;\n },\n hashRemoveNode: function hashRemoveNode(node) {\n var hash = FS.hashName(node.parent.id, node.name);\n\n if (FS.nameTable[hash] === node) {\n FS.nameTable[hash] = node.name_next;\n } else {\n var current = FS.nameTable[hash];\n\n while (current) {\n if (current.name_next === node) {\n current.name_next = node.name_next;\n break;\n }\n\n current = current.name_next;\n }\n }\n },\n lookupNode: function lookupNode(parent, name) {\n var err = FS.mayLookup(parent);\n\n if (err) {\n throw new FS.ErrnoError(err, parent);\n }\n\n var hash = FS.hashName(parent.id, name);\n\n for (var node = FS.nameTable[hash]; node; node = node.name_next) {\n var nodeName = node.name;\n\n if (node.parent.id === parent.id && nodeName === name) {\n return node;\n }\n }\n\n return FS.lookup(parent, name);\n },\n createNode: function createNode(parent, name, mode, rdev) {\n if (!FS.FSNode) {\n FS.FSNode = function (parent, name, mode, rdev) {\n if (!parent) {\n parent = this;\n }\n\n this.parent = parent;\n this.mount = parent.mount;\n this.mounted = null;\n this.id = FS.nextInode++;\n this.name = name;\n this.mode = mode;\n this.node_ops = {};\n this.stream_ops = {};\n this.rdev = rdev;\n };\n\n FS.FSNode.prototype = {};\n var readMode = 292 | 73;\n var writeMode = 146;\n Object.defineProperties(FS.FSNode.prototype, {\n read: {\n get: function get() {\n return (this.mode & readMode) === readMode;\n },\n set: function set(val) {\n val ? this.mode |= readMode : this.mode &= ~readMode;\n }\n },\n write: {\n get: function get() {\n return (this.mode & writeMode) === writeMode;\n },\n set: function set(val) {\n val ? this.mode |= writeMode : this.mode &= ~writeMode;\n }\n },\n isFolder: {\n get: function get() {\n return FS.isDir(this.mode);\n }\n },\n isDevice: {\n get: function get() {\n return FS.isChrdev(this.mode);\n }\n }\n });\n }\n\n var node = new FS.FSNode(parent, name, mode, rdev);\n FS.hashAddNode(node);\n return node;\n },\n destroyNode: function destroyNode(node) {\n FS.hashRemoveNode(node);\n },\n isRoot: function isRoot(node) {\n return node === node.parent;\n },\n isMountpoint: function isMountpoint(node) {\n return !!node.mounted;\n },\n isFile: function isFile(mode) {\n return (mode & 61440) === 32768;\n },\n isDir: function isDir(mode) {\n return (mode & 61440) === 16384;\n },\n isLink: function isLink(mode) {\n return (mode & 61440) === 40960;\n },\n isChrdev: function isChrdev(mode) {\n return (mode & 61440) === 8192;\n },\n isBlkdev: function isBlkdev(mode) {\n return (mode & 61440) === 24576;\n },\n isFIFO: function isFIFO(mode) {\n return (mode & 61440) === 4096;\n },\n isSocket: function isSocket(mode) {\n return (mode & 49152) === 49152;\n },\n flagModes: {\n 'r': 0,\n 'rs': 1052672,\n 'r+': 2,\n 'w': 577,\n 'wx': 705,\n 'xw': 705,\n 'w+': 578,\n 'wx+': 706,\n 'xw+': 706,\n 'a': 1089,\n 'ax': 1217,\n 'xa': 1217,\n 'a+': 1090,\n 'ax+': 1218,\n 'xa+': 1218\n },\n modeStringToFlags: function modeStringToFlags(str) {\n var flags = FS.flagModes[str];\n\n if (typeof flags === 'undefined') {\n throw new Error('Unknown file open mode: ' + str);\n }\n\n return flags;\n },\n flagsToPermissionString: function flagsToPermissionString(flag) {\n var perms = ['r', 'w', 'rw'][flag & 3];\n\n if (flag & 512) {\n perms += 'w';\n }\n\n return perms;\n },\n nodePermissions: function nodePermissions(node, perms) {\n if (FS.ignorePermissions) {\n return 0;\n }\n\n if (perms.indexOf('r') !== -1 && !(node.mode & 292)) {\n return 2;\n } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) {\n return 2;\n } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) {\n return 2;\n }\n\n return 0;\n },\n mayLookup: function mayLookup(dir) {\n var err = FS.nodePermissions(dir, 'x');\n if (err) return err;\n if (!dir.node_ops.lookup) return 2;\n return 0;\n },\n mayCreate: function mayCreate(dir, name) {\n try {\n var node = FS.lookupNode(dir, name);\n return 20;\n } catch (e) {}\n\n return FS.nodePermissions(dir, 'wx');\n },\n mayDelete: function mayDelete(dir, name, isdir) {\n var node;\n\n try {\n node = FS.lookupNode(dir, name);\n } catch (e) {\n return e.errno;\n }\n\n var err = FS.nodePermissions(dir, 'wx');\n\n if (err) {\n return err;\n }\n\n if (isdir) {\n if (!FS.isDir(node.mode)) {\n return 54;\n }\n\n if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {\n return 10;\n }\n } else {\n if (FS.isDir(node.mode)) {\n return 31;\n }\n }\n\n return 0;\n },\n mayOpen: function mayOpen(node, flags) {\n if (!node) {\n return 44;\n }\n\n if (FS.isLink(node.mode)) {\n return 32;\n } else if (FS.isDir(node.mode)) {\n if (FS.flagsToPermissionString(flags) !== 'r' || flags & 512) {\n return 31;\n }\n }\n\n return FS.nodePermissions(node, FS.flagsToPermissionString(flags));\n },\n MAX_OPEN_FDS: 4096,\n nextfd: function nextfd(fd_start, fd_end) {\n fd_start = fd_start || 0;\n fd_end = fd_end || FS.MAX_OPEN_FDS;\n\n for (var fd = fd_start; fd <= fd_end; fd++) {\n if (!FS.streams[fd]) {\n return fd;\n }\n }\n\n throw new FS.ErrnoError(33);\n },\n getStream: function getStream(fd) {\n return FS.streams[fd];\n },\n createStream: function createStream(stream, fd_start, fd_end) {\n if (!FS.FSStream) {\n FS.FSStream = function () {};\n\n FS.FSStream.prototype = {};\n Object.defineProperties(FS.FSStream.prototype, {\n object: {\n get: function get() {\n return this.node;\n },\n set: function set(val) {\n this.node = val;\n }\n },\n isRead: {\n get: function get() {\n return (this.flags & 2097155) !== 1;\n }\n },\n isWrite: {\n get: function get() {\n return (this.flags & 2097155) !== 0;\n }\n },\n isAppend: {\n get: function get() {\n return this.flags & 1024;\n }\n }\n });\n }\n\n var newStream = new FS.FSStream();\n\n for (var p in stream) {\n newStream[p] = stream[p];\n }\n\n stream = newStream;\n var fd = FS.nextfd(fd_start, fd_end);\n stream.fd = fd;\n FS.streams[fd] = stream;\n return stream;\n },\n closeStream: function closeStream(fd) {\n FS.streams[fd] = null;\n },\n chrdev_stream_ops: {\n open: function open(stream) {\n var device = FS.getDevice(stream.node.rdev);\n stream.stream_ops = device.stream_ops;\n\n if (stream.stream_ops.open) {\n stream.stream_ops.open(stream);\n }\n },\n llseek: function llseek() {\n throw new FS.ErrnoError(70);\n }\n },\n major: function major(dev) {\n return dev >> 8;\n },\n minor: function minor(dev) {\n return dev & 255;\n },\n makedev: function makedev(ma, mi) {\n return ma << 8 | mi;\n },\n registerDevice: function registerDevice(dev, ops) {\n FS.devices[dev] = {\n stream_ops: ops\n };\n },\n getDevice: function getDevice(dev) {\n return FS.devices[dev];\n },\n getMounts: function getMounts(mount) {\n var mounts = [];\n var check = [mount];\n\n while (check.length) {\n var m = check.pop();\n mounts.push(m);\n check.push.apply(check, m.mounts);\n }\n\n return mounts;\n },\n syncfs: function syncfs(populate, callback) {\n if (typeof populate === 'function') {\n callback = populate;\n populate = false;\n }\n\n FS.syncFSRequests++;\n\n if (FS.syncFSRequests > 1) {\n console.log('warning: ' + FS.syncFSRequests + ' FS.syncfs operations in flight at once, probably just doing extra work');\n }\n\n var mounts = FS.getMounts(FS.root.mount);\n var completed = 0;\n\n function doCallback(err) {\n assert(FS.syncFSRequests > 0);\n FS.syncFSRequests--;\n return callback(err);\n }\n\n function done(err) {\n if (err) {\n if (!done.errored) {\n done.errored = true;\n return doCallback(err);\n }\n\n return;\n }\n\n if (++completed >= mounts.length) {\n doCallback(null);\n }\n }\n\n mounts.forEach(function (mount) {\n if (!mount.type.syncfs) {\n return done(null);\n }\n\n mount.type.syncfs(mount, populate, done);\n });\n },\n mount: function mount(type, opts, mountpoint) {\n if (typeof type === 'string') {\n throw type;\n }\n\n var root = mountpoint === '/';\n var pseudo = !mountpoint;\n var node;\n\n if (root && FS.root) {\n throw new FS.ErrnoError(10);\n } else if (!root && !pseudo) {\n var lookup = FS.lookupPath(mountpoint, {\n follow_mount: false\n });\n mountpoint = lookup.path;\n node = lookup.node;\n\n if (FS.isMountpoint(node)) {\n throw new FS.ErrnoError(10);\n }\n\n if (!FS.isDir(node.mode)) {\n throw new FS.ErrnoError(54);\n }\n }\n\n var mount = {\n type: type,\n opts: opts,\n mountpoint: mountpoint,\n mounts: []\n };\n var mountRoot = type.mount(mount);\n mountRoot.mount = mount;\n mount.root = mountRoot;\n\n if (root) {\n FS.root = mountRoot;\n } else if (node) {\n node.mounted = mount;\n\n if (node.mount) {\n node.mount.mounts.push(mount);\n }\n }\n\n return mountRoot;\n },\n unmount: function unmount(mountpoint) {\n var lookup = FS.lookupPath(mountpoint, {\n follow_mount: false\n });\n\n if (!FS.isMountpoint(lookup.node)) {\n throw new FS.ErrnoError(28);\n }\n\n var node = lookup.node;\n var mount = node.mounted;\n var mounts = FS.getMounts(mount);\n Object.keys(FS.nameTable).forEach(function (hash) {\n var current = FS.nameTable[hash];\n\n while (current) {\n var next = current.name_next;\n\n if (mounts.indexOf(current.mount) !== -1) {\n FS.destroyNode(current);\n }\n\n current = next;\n }\n });\n node.mounted = null;\n var idx = node.mount.mounts.indexOf(mount);\n assert(idx !== -1);\n node.mount.mounts.splice(idx, 1);\n },\n lookup: function lookup(parent, name) {\n return parent.node_ops.lookup(parent, name);\n },\n mknod: function mknod(path, mode, dev) {\n var lookup = FS.lookupPath(path, {\n parent: true\n });\n var parent = lookup.node;\n var name = PATH.basename(path);\n\n if (!name || name === '.' || name === '..') {\n throw new FS.ErrnoError(28);\n }\n\n var err = FS.mayCreate(parent, name);\n\n if (err) {\n throw new FS.ErrnoError(err);\n }\n\n if (!parent.node_ops.mknod) {\n throw new FS.ErrnoError(63);\n }\n\n return parent.node_ops.mknod(parent, name, mode, dev);\n },\n create: function create(path, mode) {\n mode = mode !== undefined ? mode : 438;\n mode &= 4095;\n mode |= 32768;\n return FS.mknod(path, mode, 0);\n },\n mkdir: function mkdir(path, mode) {\n mode = mode !== undefined ? mode : 511;\n mode &= 511 | 512;\n mode |= 16384;\n return FS.mknod(path, mode, 0);\n },\n mkdirTree: function mkdirTree(path, mode) {\n var dirs = path.split('/');\n var d = '';\n\n for (var i = 0; i < dirs.length; ++i) {\n if (!dirs[i]) continue;\n d += '/' + dirs[i];\n\n try {\n FS.mkdir(d, mode);\n } catch (e) {\n if (e.errno != 20) throw e;\n }\n }\n },\n mkdev: function mkdev(path, mode, dev) {\n if (typeof dev === 'undefined') {\n dev = mode;\n mode = 438;\n }\n\n mode |= 8192;\n return FS.mknod(path, mode, dev);\n },\n symlink: function symlink(oldpath, newpath) {\n if (!PATH_FS.resolve(oldpath)) {\n throw new FS.ErrnoError(44);\n }\n\n var lookup = FS.lookupPath(newpath, {\n parent: true\n });\n var parent = lookup.node;\n\n if (!parent) {\n throw new FS.ErrnoError(44);\n }\n\n var newname = PATH.basename(newpath);\n var err = FS.mayCreate(parent, newname);\n\n if (err) {\n throw new FS.ErrnoError(err);\n }\n\n if (!parent.node_ops.symlink) {\n throw new FS.ErrnoError(63);\n }\n\n return parent.node_ops.symlink(parent, newname, oldpath);\n },\n rename: function rename(old_path, new_path) {\n var old_dirname = PATH.dirname(old_path);\n var new_dirname = PATH.dirname(new_path);\n var old_name = PATH.basename(old_path);\n var new_name = PATH.basename(new_path);\n var lookup, old_dir, new_dir;\n\n try {\n lookup = FS.lookupPath(old_path, {\n parent: true\n });\n old_dir = lookup.node;\n lookup = FS.lookupPath(new_path, {\n parent: true\n });\n new_dir = lookup.node;\n } catch (e) {\n throw new FS.ErrnoError(10);\n }\n\n if (!old_dir || !new_dir) throw new FS.ErrnoError(44);\n\n if (old_dir.mount !== new_dir.mount) {\n throw new FS.ErrnoError(75);\n }\n\n var old_node = FS.lookupNode(old_dir, old_name);\n var relative = PATH_FS.relative(old_path, new_dirname);\n\n if (relative.charAt(0) !== '.') {\n throw new FS.ErrnoError(28);\n }\n\n relative = PATH_FS.relative(new_path, old_dirname);\n\n if (relative.charAt(0) !== '.') {\n throw new FS.ErrnoError(55);\n }\n\n var new_node;\n\n try {\n new_node = FS.lookupNode(new_dir, new_name);\n } catch (e) {}\n\n if (old_node === new_node) {\n return;\n }\n\n var isdir = FS.isDir(old_node.mode);\n var err = FS.mayDelete(old_dir, old_name, isdir);\n\n if (err) {\n throw new FS.ErrnoError(err);\n }\n\n err = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name);\n\n if (err) {\n throw new FS.ErrnoError(err);\n }\n\n if (!old_dir.node_ops.rename) {\n throw new FS.ErrnoError(63);\n }\n\n if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) {\n throw new FS.ErrnoError(10);\n }\n\n if (new_dir !== old_dir) {\n err = FS.nodePermissions(old_dir, 'w');\n\n if (err) {\n throw new FS.ErrnoError(err);\n }\n }\n\n try {\n if (FS.trackingDelegate['willMovePath']) {\n FS.trackingDelegate['willMovePath'](old_path, new_path);\n }\n } catch (e) {\n console.log('FS.trackingDelegate[\\'willMovePath\\'](\\'' + old_path + '\\', \\'' + new_path + '\\') threw an exception: ' + e.message);\n }\n\n FS.hashRemoveNode(old_node);\n\n try {\n old_dir.node_ops.rename(old_node, new_dir, new_name);\n } catch (e) {\n throw e;\n } finally {\n FS.hashAddNode(old_node);\n }\n\n try {\n if (FS.trackingDelegate['onMovePath']) FS.trackingDelegate['onMovePath'](old_path, new_path);\n } catch (e) {\n console.log('FS.trackingDelegate[\\'onMovePath\\'](\\'' + old_path + '\\', \\'' + new_path + '\\') threw an exception: ' + e.message);\n }\n },\n rmdir: function rmdir(path) {\n var lookup = FS.lookupPath(path, {\n parent: true\n });\n var parent = lookup.node;\n var name = PATH.basename(path);\n var node = FS.lookupNode(parent, name);\n var err = FS.mayDelete(parent, name, true);\n\n if (err) {\n throw new FS.ErrnoError(err);\n }\n\n if (!parent.node_ops.rmdir) {\n throw new FS.ErrnoError(63);\n }\n\n if (FS.isMountpoint(node)) {\n throw new FS.ErrnoError(10);\n }\n\n try {\n if (FS.trackingDelegate['willDeletePath']) {\n FS.trackingDelegate['willDeletePath'](path);\n }\n } catch (e) {\n console.log('FS.trackingDelegate[\\'willDeletePath\\'](\\'' + path + '\\') threw an exception: ' + e.message);\n }\n\n parent.node_ops.rmdir(parent, name);\n FS.destroyNode(node);\n\n try {\n if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path);\n } catch (e) {\n console.log('FS.trackingDelegate[\\'onDeletePath\\'](\\'' + path + '\\') threw an exception: ' + e.message);\n }\n },\n readdir: function readdir(path) {\n var lookup = FS.lookupPath(path, {\n follow: true\n });\n var node = lookup.node;\n\n if (!node.node_ops.readdir) {\n throw new FS.ErrnoError(54);\n }\n\n return node.node_ops.readdir(node);\n },\n unlink: function unlink(path) {\n var lookup = FS.lookupPath(path, {\n parent: true\n });\n var parent = lookup.node;\n var name = PATH.basename(path);\n var node = FS.lookupNode(parent, name);\n var err = FS.mayDelete(parent, name, false);\n\n if (err) {\n throw new FS.ErrnoError(err);\n }\n\n if (!parent.node_ops.unlink) {\n throw new FS.ErrnoError(63);\n }\n\n if (FS.isMountpoint(node)) {\n throw new FS.ErrnoError(10);\n }\n\n try {\n if (FS.trackingDelegate['willDeletePath']) {\n FS.trackingDelegate['willDeletePath'](path);\n }\n } catch (e) {\n console.log('FS.trackingDelegate[\\'willDeletePath\\'](\\'' + path + '\\') threw an exception: ' + e.message);\n }\n\n parent.node_ops.unlink(parent, name);\n FS.destroyNode(node);\n\n try {\n if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path);\n } catch (e) {\n console.log('FS.trackingDelegate[\\'onDeletePath\\'](\\'' + path + '\\') threw an exception: ' + e.message);\n }\n },\n readlink: function readlink(path) {\n var lookup = FS.lookupPath(path);\n var link = lookup.node;\n\n if (!link) {\n throw new FS.ErrnoError(44);\n }\n\n if (!link.node_ops.readlink) {\n throw new FS.ErrnoError(28);\n }\n\n return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link));\n },\n stat: function stat(path, dontFollow) {\n var lookup = FS.lookupPath(path, {\n follow: !dontFollow\n });\n var node = lookup.node;\n\n if (!node) {\n throw new FS.ErrnoError(44);\n }\n\n if (!node.node_ops.getattr) {\n throw new FS.ErrnoError(63);\n }\n\n return node.node_ops.getattr(node);\n },\n lstat: function lstat(path) {\n return FS.stat(path, true);\n },\n chmod: function chmod(path, mode, dontFollow) {\n var node;\n\n if (typeof path === 'string') {\n var lookup = FS.lookupPath(path, {\n follow: !dontFollow\n });\n node = lookup.node;\n } else {\n node = path;\n }\n\n if (!node.node_ops.setattr) {\n throw new FS.ErrnoError(63);\n }\n\n node.node_ops.setattr(node, {\n mode: mode & 4095 | node.mode & ~4095,\n timestamp: Date.now()\n });\n },\n lchmod: function lchmod(path, mode) {\n FS.chmod(path, mode, true);\n },\n fchmod: function fchmod(fd, mode) {\n var stream = FS.getStream(fd);\n\n if (!stream) {\n throw new FS.ErrnoError(8);\n }\n\n FS.chmod(stream.node, mode);\n },\n chown: function chown(path, uid, gid, dontFollow) {\n var node;\n\n if (typeof path === 'string') {\n var lookup = FS.lookupPath(path, {\n follow: !dontFollow\n });\n node = lookup.node;\n } else {\n node = path;\n }\n\n if (!node.node_ops.setattr) {\n throw new FS.ErrnoError(63);\n }\n\n node.node_ops.setattr(node, {\n timestamp: Date.now()\n });\n },\n lchown: function lchown(path, uid, gid) {\n FS.chown(path, uid, gid, true);\n },\n fchown: function fchown(fd, uid, gid) {\n var stream = FS.getStream(fd);\n\n if (!stream) {\n throw new FS.ErrnoError(8);\n }\n\n FS.chown(stream.node, uid, gid);\n },\n truncate: function truncate(path, len) {\n if (len < 0) {\n throw new FS.ErrnoError(28);\n }\n\n var node;\n\n if (typeof path === 'string') {\n var lookup = FS.lookupPath(path, {\n follow: true\n });\n node = lookup.node;\n } else {\n node = path;\n }\n\n if (!node.node_ops.setattr) {\n throw new FS.ErrnoError(63);\n }\n\n if (FS.isDir(node.mode)) {\n throw new FS.ErrnoError(31);\n }\n\n if (!FS.isFile(node.mode)) {\n throw new FS.ErrnoError(28);\n }\n\n var err = FS.nodePermissions(node, 'w');\n\n if (err) {\n throw new FS.ErrnoError(err);\n }\n\n node.node_ops.setattr(node, {\n size: len,\n timestamp: Date.now()\n });\n },\n ftruncate: function ftruncate(fd, len) {\n var stream = FS.getStream(fd);\n\n if (!stream) {\n throw new FS.ErrnoError(8);\n }\n\n if ((stream.flags & 2097155) === 0) {\n throw new FS.ErrnoError(28);\n }\n\n FS.truncate(stream.node, len);\n },\n utime: function utime(path, atime, mtime) {\n var lookup = FS.lookupPath(path, {\n follow: true\n });\n var node = lookup.node;\n node.node_ops.setattr(node, {\n timestamp: Math.max(atime, mtime)\n });\n },\n open: function open(path, flags, mode, fd_start, fd_end) {\n if (path === '') {\n throw new FS.ErrnoError(44);\n }\n\n flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags;\n mode = typeof mode === 'undefined' ? 438 : mode;\n\n if (flags & 64) {\n mode = mode & 4095 | 32768;\n } else {\n mode = 0;\n }\n\n var node;\n\n if (typeof path === 'object') {\n node = path;\n } else {\n path = PATH.normalize(path);\n\n try {\n var lookup = FS.lookupPath(path, {\n follow: !(flags & 131072)\n });\n node = lookup.node;\n } catch (e) {}\n }\n\n var created = false;\n\n if (flags & 64) {\n if (node) {\n if (flags & 128) {\n throw new FS.ErrnoError(20);\n }\n } else {\n node = FS.mknod(path, mode, 0);\n created = true;\n }\n }\n\n if (!node) {\n throw new FS.ErrnoError(44);\n }\n\n if (FS.isChrdev(node.mode)) {\n flags &= ~512;\n }\n\n if (flags & 65536 && !FS.isDir(node.mode)) {\n throw new FS.ErrnoError(54);\n }\n\n if (!created) {\n var err = FS.mayOpen(node, flags);\n\n if (err) {\n throw new FS.ErrnoError(err);\n }\n }\n\n if (flags & 512) {\n FS.truncate(node, 0);\n }\n\n flags &= ~(128 | 512);\n var stream = FS.createStream({\n node: node,\n path: FS.getPath(node),\n flags: flags,\n seekable: true,\n position: 0,\n stream_ops: node.stream_ops,\n ungotten: [],\n error: false\n }, fd_start, fd_end);\n\n if (stream.stream_ops.open) {\n stream.stream_ops.open(stream);\n }\n\n if (Module['logReadFiles'] && !(flags & 1)) {\n if (!FS.readFiles) FS.readFiles = {};\n\n if (!(path in FS.readFiles)) {\n FS.readFiles[path] = 1;\n console.log('FS.trackingDelegate error on read file: ' + path);\n }\n }\n\n try {\n if (FS.trackingDelegate['onOpenFile']) {\n var trackingFlags = 0;\n\n if ((flags & 2097155) !== 1) {\n trackingFlags |= FS.tracking.openFlags.READ;\n }\n\n if ((flags & 2097155) !== 0) {\n trackingFlags |= FS.tracking.openFlags.WRITE;\n }\n\n FS.trackingDelegate['onOpenFile'](path, trackingFlags);\n }\n } catch (e) {\n console.log('FS.trackingDelegate[\\'onOpenFile\\'](\\'' + path + '\\', flags) threw an exception: ' + e.message);\n }\n\n return stream;\n },\n close: function close(stream) {\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n\n if (stream.getdents) stream.getdents = null;\n\n try {\n if (stream.stream_ops.close) {\n stream.stream_ops.close(stream);\n }\n } catch (e) {\n throw e;\n } finally {\n FS.closeStream(stream.fd);\n }\n\n stream.fd = null;\n },\n isClosed: function isClosed(stream) {\n return stream.fd === null;\n },\n llseek: function llseek(stream, offset, whence) {\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n\n if (!stream.seekable || !stream.stream_ops.llseek) {\n throw new FS.ErrnoError(70);\n }\n\n if (whence != 0 && whence != 1 && whence != 2) {\n throw new FS.ErrnoError(28);\n }\n\n stream.position = stream.stream_ops.llseek(stream, offset, whence);\n stream.ungotten = [];\n return stream.position;\n },\n read: function read(stream, buffer, offset, length, position) {\n if (length < 0 || position < 0) {\n throw new FS.ErrnoError(28);\n }\n\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n\n if ((stream.flags & 2097155) === 1) {\n throw new FS.ErrnoError(8);\n }\n\n if (FS.isDir(stream.node.mode)) {\n throw new FS.ErrnoError(31);\n }\n\n if (!stream.stream_ops.read) {\n throw new FS.ErrnoError(28);\n }\n\n var seeking = typeof position !== 'undefined';\n\n if (!seeking) {\n position = stream.position;\n } else if (!stream.seekable) {\n throw new FS.ErrnoError(70);\n }\n\n var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);\n if (!seeking) stream.position += bytesRead;\n return bytesRead;\n },\n write: function write(stream, buffer, offset, length, position, canOwn) {\n if (length < 0 || position < 0) {\n throw new FS.ErrnoError(28);\n }\n\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n\n if ((stream.flags & 2097155) === 0) {\n throw new FS.ErrnoError(8);\n }\n\n if (FS.isDir(stream.node.mode)) {\n throw new FS.ErrnoError(31);\n }\n\n if (!stream.stream_ops.write) {\n throw new FS.ErrnoError(28);\n }\n\n if (stream.flags & 1024) {\n FS.llseek(stream, 0, 2);\n }\n\n var seeking = typeof position !== 'undefined';\n\n if (!seeking) {\n position = stream.position;\n } else if (!stream.seekable) {\n throw new FS.ErrnoError(70);\n }\n\n var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);\n if (!seeking) stream.position += bytesWritten;\n\n try {\n if (stream.path && FS.trackingDelegate['onWriteToFile']) FS.trackingDelegate['onWriteToFile'](stream.path);\n } catch (e) {\n console.log('FS.trackingDelegate[\\'onWriteToFile\\'](\\'' + stream.path + '\\') threw an exception: ' + e.message);\n }\n\n return bytesWritten;\n },\n allocate: function allocate(stream, offset, length) {\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n\n if (offset < 0 || length <= 0) {\n throw new FS.ErrnoError(28);\n }\n\n if ((stream.flags & 2097155) === 0) {\n throw new FS.ErrnoError(8);\n }\n\n if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) {\n throw new FS.ErrnoError(43);\n }\n\n if (!stream.stream_ops.allocate) {\n throw new FS.ErrnoError(138);\n }\n\n stream.stream_ops.allocate(stream, offset, length);\n },\n mmap: function mmap(stream, buffer, offset, length, position, prot, flags) {\n if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) {\n throw new FS.ErrnoError(2);\n }\n\n if ((stream.flags & 2097155) === 1) {\n throw new FS.ErrnoError(2);\n }\n\n if (!stream.stream_ops.mmap) {\n throw new FS.ErrnoError(43);\n }\n\n return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags);\n },\n msync: function msync(stream, buffer, offset, length, mmapFlags) {\n if (!stream || !stream.stream_ops.msync) {\n return 0;\n }\n\n return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags);\n },\n munmap: function munmap(stream) {\n return 0;\n },\n ioctl: function ioctl(stream, cmd, arg) {\n if (!stream.stream_ops.ioctl) {\n throw new FS.ErrnoError(59);\n }\n\n return stream.stream_ops.ioctl(stream, cmd, arg);\n },\n readFile: function readFile(path, opts) {\n opts = opts || {};\n opts.flags = opts.flags || 'r';\n opts.encoding = opts.encoding || 'binary';\n\n if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') {\n throw new Error('Invalid encoding type \"' + opts.encoding + '\"');\n }\n\n var ret;\n var stream = FS.open(path, opts.flags);\n var stat = FS.stat(path);\n var length = stat.size;\n var buf = new Uint8Array(length);\n FS.read(stream, buf, 0, length, 0);\n\n if (opts.encoding === 'utf8') {\n ret = UTF8ArrayToString(buf, 0);\n } else if (opts.encoding === 'binary') {\n ret = buf;\n }\n\n FS.close(stream);\n return ret;\n },\n writeFile: function writeFile(path, data, opts) {\n opts = opts || {};\n opts.flags = opts.flags || 'w';\n var stream = FS.open(path, opts.flags, opts.mode);\n\n if (typeof data === 'string') {\n var buf = new Uint8Array(lengthBytesUTF8(data) + 1);\n var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);\n FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn);\n } else if (ArrayBuffer.isView(data)) {\n FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn);\n } else {\n throw new Error('Unsupported data type');\n }\n\n FS.close(stream);\n },\n cwd: function cwd() {\n return FS.currentPath;\n },\n chdir: function chdir(path) {\n var lookup = FS.lookupPath(path, {\n follow: true\n });\n\n if (lookup.node === null) {\n throw new FS.ErrnoError(44);\n }\n\n if (!FS.isDir(lookup.node.mode)) {\n throw new FS.ErrnoError(54);\n }\n\n var err = FS.nodePermissions(lookup.node, 'x');\n\n if (err) {\n throw new FS.ErrnoError(err);\n }\n\n FS.currentPath = lookup.path;\n },\n createDefaultDirectories: function createDefaultDirectories() {\n FS.mkdir('/tmp');\n FS.mkdir('/home');\n FS.mkdir('/home/web_user');\n },\n createDefaultDevices: function createDefaultDevices() {\n FS.mkdir('/dev');\n FS.registerDevice(FS.makedev(1, 3), {\n read: function read() {\n return 0;\n },\n write: function write(stream, buffer, offset, length, pos) {\n return length;\n }\n });\n FS.mkdev('/dev/null', FS.makedev(1, 3));\n TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);\n TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);\n FS.mkdev('/dev/tty', FS.makedev(5, 0));\n FS.mkdev('/dev/tty1', FS.makedev(6, 0));\n var random_device;\n\n if (typeof crypto === 'object' && typeof crypto['getRandomValues'] === 'function') {\n var randomBuffer = new Uint8Array(1);\n\n random_device = function random_device() {\n crypto.getRandomValues(randomBuffer);\n return randomBuffer[0];\n };\n } else if (ENVIRONMENT_IS_NODE) {\n try {\n var crypto_module = __webpack_require__(/*! crypto */ \"./node_modules/crypto-browserify/index.js\");\n\n random_device = function random_device() {\n return crypto_module['randomBytes'](1)[0];\n };\n } catch (e) {}\n } else {}\n\n if (!random_device) {\n random_device = function random_device() {\n abort('no cryptographic support found for random_device. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };');\n };\n }\n\n FS.createDevice('/dev', 'random', random_device);\n FS.createDevice('/dev', 'urandom', random_device);\n FS.mkdir('/dev/shm');\n FS.mkdir('/dev/shm/tmp');\n },\n createSpecialDirectories: function createSpecialDirectories() {\n FS.mkdir('/proc');\n FS.mkdir('/proc/self');\n FS.mkdir('/proc/self/fd');\n FS.mount({\n mount: function mount() {\n var node = FS.createNode('/proc/self', 'fd', 16384 | 511, 73);\n node.node_ops = {\n lookup: function lookup(parent, name) {\n var fd = +name;\n var stream = FS.getStream(fd);\n if (!stream) throw new FS.ErrnoError(8);\n var ret = {\n parent: null,\n mount: {\n mountpoint: 'fake'\n },\n node_ops: {\n readlink: function readlink() {\n return stream.path;\n }\n }\n };\n ret.parent = ret;\n return ret;\n }\n };\n return node;\n }\n }, {}, '/proc/self/fd');\n },\n createStandardStreams: function createStandardStreams() {\n if (Module['stdin']) {\n FS.createDevice('/dev', 'stdin', Module['stdin']);\n } else {\n FS.symlink('/dev/tty', '/dev/stdin');\n }\n\n if (Module['stdout']) {\n FS.createDevice('/dev', 'stdout', null, Module['stdout']);\n } else {\n FS.symlink('/dev/tty', '/dev/stdout');\n }\n\n if (Module['stderr']) {\n FS.createDevice('/dev', 'stderr', null, Module['stderr']);\n } else {\n FS.symlink('/dev/tty1', '/dev/stderr');\n }\n\n var stdin = FS.open('/dev/stdin', 'r');\n var stdout = FS.open('/dev/stdout', 'w');\n var stderr = FS.open('/dev/stderr', 'w');\n assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')');\n assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')');\n assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')');\n },\n ensureErrnoError: function ensureErrnoError() {\n if (FS.ErrnoError) return;\n\n FS.ErrnoError = function ErrnoError(errno, node) {\n this.node = node;\n\n this.setErrno = function (errno) {\n this.errno = errno;\n\n for (var key in ERRNO_CODES) {\n if (ERRNO_CODES[key] === errno) {\n this.code = key;\n break;\n }\n }\n };\n\n this.setErrno(errno);\n this.message = ERRNO_MESSAGES[errno];\n\n if (this.stack) {\n Object.defineProperty(this, 'stack', {\n value: new Error().stack,\n writable: true\n });\n this.stack = demangleAll(this.stack);\n }\n };\n\n FS.ErrnoError.prototype = new Error();\n FS.ErrnoError.prototype.constructor = FS.ErrnoError;\n [44].forEach(function (code) {\n FS.genericErrors[code] = new FS.ErrnoError(code);\n FS.genericErrors[code].stack = '<generic error, no stack>';\n });\n },\n staticInit: function staticInit() {\n FS.ensureErrnoError();\n FS.nameTable = new Array(4096);\n FS.mount(MEMFS, {}, '/');\n FS.createDefaultDirectories();\n FS.createDefaultDevices();\n FS.createSpecialDirectories();\n FS.filesystems = {\n 'MEMFS': MEMFS\n };\n },\n init: function init(input, output, error) {\n assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)');\n FS.init.initialized = true;\n FS.ensureErrnoError();\n Module['stdin'] = input || Module['stdin'];\n Module['stdout'] = output || Module['stdout'];\n Module['stderr'] = error || Module['stderr'];\n FS.createStandardStreams();\n },\n quit: function quit() {\n FS.init.initialized = false;\n var fflush = Module['_fflush'];\n if (fflush) fflush(0);\n\n for (var i = 0; i < FS.streams.length; i++) {\n var stream = FS.streams[i];\n\n if (!stream) {\n continue;\n }\n\n FS.close(stream);\n }\n },\n getMode: function getMode(canRead, canWrite) {\n var mode = 0;\n if (canRead) mode |= 292 | 73;\n if (canWrite) mode |= 146;\n return mode;\n },\n joinPath: function joinPath(parts, forceRelative) {\n var path = PATH.join.apply(null, parts);\n if (forceRelative && path[0] == '/') path = path.substr(1);\n return path;\n },\n absolutePath: function absolutePath(relative, base) {\n return PATH_FS.resolve(base, relative);\n },\n standardizePath: function standardizePath(path) {\n return PATH.normalize(path);\n },\n findObject: function findObject(path, dontResolveLastLink) {\n var ret = FS.analyzePath(path, dontResolveLastLink);\n\n if (ret.exists) {\n return ret.object;\n } else {\n ___setErrNo(ret.error);\n\n return null;\n }\n },\n analyzePath: function analyzePath(path, dontResolveLastLink) {\n try {\n var lookup = FS.lookupPath(path, {\n follow: !dontResolveLastLink\n });\n path = lookup.path;\n } catch (e) {}\n\n var ret = {\n isRoot: false,\n exists: false,\n error: 0,\n name: null,\n path: null,\n object: null,\n parentExists: false,\n parentPath: null,\n parentObject: null\n };\n\n try {\n var lookup = FS.lookupPath(path, {\n parent: true\n });\n ret.parentExists = true;\n ret.parentPath = lookup.path;\n ret.parentObject = lookup.node;\n ret.name = PATH.basename(path);\n lookup = FS.lookupPath(path, {\n follow: !dontResolveLastLink\n });\n ret.exists = true;\n ret.path = lookup.path;\n ret.object = lookup.node;\n ret.name = lookup.node.name;\n ret.isRoot = lookup.path === '/';\n } catch (e) {\n ret.error = e.errno;\n }\n\n return ret;\n },\n createFolder: function createFolder(parent, name, canRead, canWrite) {\n var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);\n var mode = FS.getMode(canRead, canWrite);\n return FS.mkdir(path, mode);\n },\n createPath: function createPath(parent, path, canRead, canWrite) {\n parent = typeof parent === 'string' ? parent : FS.getPath(parent);\n var parts = path.split('/').reverse();\n\n while (parts.length) {\n var part = parts.pop();\n if (!part) continue;\n var current = PATH.join2(parent, part);\n\n try {\n FS.mkdir(current);\n } catch (e) {}\n\n parent = current;\n }\n\n return current;\n },\n createFile: function createFile(parent, name, properties, canRead, canWrite) {\n var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);\n var mode = FS.getMode(canRead, canWrite);\n return FS.create(path, mode);\n },\n createDataFile: function createDataFile(parent, name, data, canRead, canWrite, canOwn) {\n var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent;\n var mode = FS.getMode(canRead, canWrite);\n var node = FS.create(path, mode);\n\n if (data) {\n if (typeof data === 'string') {\n var arr = new Array(data.length);\n\n for (var i = 0, len = data.length; i < len; ++i) {\n arr[i] = data.charCodeAt(i);\n }\n\n data = arr;\n }\n\n FS.chmod(node, mode | 146);\n var stream = FS.open(node, 'w');\n FS.write(stream, data, 0, data.length, 0, canOwn);\n FS.close(stream);\n FS.chmod(node, mode);\n }\n\n return node;\n },\n createDevice: function createDevice(parent, name, input, output) {\n var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);\n var mode = FS.getMode(!!input, !!output);\n if (!FS.createDevice.major) FS.createDevice.major = 64;\n var dev = FS.makedev(FS.createDevice.major++, 0);\n FS.registerDevice(dev, {\n open: function open(stream) {\n stream.seekable = false;\n },\n close: function close(stream) {\n if (output && output.buffer && output.buffer.length) {\n output(10);\n }\n },\n read: function read(stream, buffer, offset, length, pos) {\n var bytesRead = 0;\n\n for (var i = 0; i < length; i++) {\n var result;\n\n try {\n result = input();\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n\n if (result === undefined && bytesRead === 0) {\n throw new FS.ErrnoError(6);\n }\n\n if (result === null || result === undefined) break;\n bytesRead++;\n buffer[offset + i] = result;\n }\n\n if (bytesRead) {\n stream.node.timestamp = Date.now();\n }\n\n return bytesRead;\n },\n write: function write(stream, buffer, offset, length, pos) {\n for (var i = 0; i < length; i++) {\n try {\n output(buffer[offset + i]);\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n }\n\n if (length) {\n stream.node.timestamp = Date.now();\n }\n\n return i;\n }\n });\n return FS.mkdev(path, mode, dev);\n },\n createLink: function createLink(parent, name, target, canRead, canWrite) {\n var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);\n return FS.symlink(target, path);\n },\n forceLoadFile: function forceLoadFile(obj) {\n if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;\n var success = true;\n\n if (typeof XMLHttpRequest !== 'undefined') {\n throw new Error('Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.');\n } else if (read_) {\n try {\n obj.contents = intArrayFromString(read_(obj.url), true);\n obj.usedBytes = obj.contents.length;\n } catch (e) {\n success = false;\n }\n } else {\n throw new Error('Cannot load without read() or XMLHttpRequest.');\n }\n\n if (!success) ___setErrNo(29);\n return success;\n },\n createLazyFile: function createLazyFile(parent, name, url, canRead, canWrite) {\n function LazyUint8Array() {\n this.lengthKnown = false;\n this.chunks = [];\n }\n\n LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {\n if (idx > this.length - 1 || idx < 0) {\n return undefined;\n }\n\n var chunkOffset = idx % this.chunkSize;\n var chunkNum = idx / this.chunkSize | 0;\n return this.getter(chunkNum)[chunkOffset];\n };\n\n LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {\n this.getter = getter;\n };\n\n LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {\n var xhr = new XMLHttpRequest();\n xhr.open('HEAD', url, false);\n xhr.send(null);\n if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error('Couldn\\'t load ' + url + '. Status: ' + xhr.status);\n var datalength = Number(xhr.getResponseHeader('Content-length'));\n var header;\n var hasByteServing = (header = xhr.getResponseHeader('Accept-Ranges')) && header === 'bytes';\n var usesGzip = (header = xhr.getResponseHeader('Content-Encoding')) && header === 'gzip';\n var chunkSize = 1024 * 1024;\n if (!hasByteServing) chunkSize = datalength;\n\n var doXHR = function doXHR(from, to) {\n if (from > to) throw new Error('invalid range (' + from + ', ' + to + ') or no bytes requested!');\n if (to > datalength - 1) throw new Error('only ' + datalength + ' bytes available! programmer error!');\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, false);\n if (datalength !== chunkSize) xhr.setRequestHeader('Range', 'bytes=' + from + '-' + to);\n if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer';\n\n if (xhr.overrideMimeType) {\n xhr.overrideMimeType('text/plain; charset=x-user-defined');\n }\n\n xhr.send(null);\n if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error('Couldn\\'t load ' + url + '. Status: ' + xhr.status);\n\n if (xhr.response !== undefined) {\n return new Uint8Array(xhr.response || []);\n } else {\n return intArrayFromString(xhr.responseText || '', true);\n }\n };\n\n var lazyArray = this;\n lazyArray.setDataGetter(function (chunkNum) {\n var start = chunkNum * chunkSize;\n var end = (chunkNum + 1) * chunkSize - 1;\n end = Math.min(end, datalength - 1);\n\n if (typeof lazyArray.chunks[chunkNum] === 'undefined') {\n lazyArray.chunks[chunkNum] = doXHR(start, end);\n }\n\n if (typeof lazyArray.chunks[chunkNum] === 'undefined') throw new Error('doXHR failed!');\n return lazyArray.chunks[chunkNum];\n });\n\n if (usesGzip || !datalength) {\n chunkSize = datalength = 1;\n datalength = this.getter(0).length;\n chunkSize = datalength;\n console.log('LazyFiles on gzip forces download of the whole file when length is accessed');\n }\n\n this._length = datalength;\n this._chunkSize = chunkSize;\n this.lengthKnown = true;\n };\n\n if (typeof XMLHttpRequest !== 'undefined') {\n if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc';\n var lazyArray = new LazyUint8Array();\n Object.defineProperties(lazyArray, {\n length: {\n get: function get() {\n if (!this.lengthKnown) {\n this.cacheLength();\n }\n\n return this._length;\n }\n },\n chunkSize: {\n get: function get() {\n if (!this.lengthKnown) {\n this.cacheLength();\n }\n\n return this._chunkSize;\n }\n }\n });\n var properties = {\n isDevice: false,\n contents: lazyArray\n };\n } else {\n var properties = {\n isDevice: false,\n url: url\n };\n }\n\n var node = FS.createFile(parent, name, properties, canRead, canWrite);\n\n if (properties.contents) {\n node.contents = properties.contents;\n } else if (properties.url) {\n node.contents = null;\n node.url = properties.url;\n }\n\n Object.defineProperties(node, {\n usedBytes: {\n get: function get() {\n return this.contents.length;\n }\n }\n });\n var stream_ops = {};\n var keys = Object.keys(node.stream_ops);\n keys.forEach(function (key) {\n var fn = node.stream_ops[key];\n\n stream_ops[key] = function forceLoadLazyFile() {\n if (!FS.forceLoadFile(node)) {\n throw new FS.ErrnoError(29);\n }\n\n return fn.apply(null, arguments);\n };\n });\n\n stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) {\n if (!FS.forceLoadFile(node)) {\n throw new FS.ErrnoError(29);\n }\n\n var contents = stream.node.contents;\n if (position >= contents.length) return 0;\n var size = Math.min(contents.length - position, length);\n assert(size >= 0);\n\n if (contents.slice) {\n for (var i = 0; i < size; i++) {\n buffer[offset + i] = contents[position + i];\n }\n } else {\n for (var i = 0; i < size; i++) {\n buffer[offset + i] = contents.get(position + i);\n }\n }\n\n return size;\n };\n\n node.stream_ops = stream_ops;\n return node;\n },\n createPreloadedFile: function createPreloadedFile(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) {\n Browser.init();\n var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent;\n var dep = getUniqueRunDependency('cp ' + fullname);\n\n function processData(byteArray) {\n function finish(byteArray) {\n if (preFinish) preFinish();\n\n if (!dontCreateFile) {\n FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn);\n }\n\n if (onload) onload();\n removeRunDependency(dep);\n }\n\n var handled = false;\n Module['preloadPlugins'].forEach(function (plugin) {\n if (handled) return;\n\n if (plugin['canHandle'](fullname)) {\n plugin['handle'](byteArray, fullname, finish, function () {\n if (onerror) onerror();\n removeRunDependency(dep);\n });\n handled = true;\n }\n });\n if (!handled) finish(byteArray);\n }\n\n addRunDependency(dep);\n\n if (typeof url == 'string') {\n Browser.asyncLoad(url, function (byteArray) {\n processData(byteArray);\n }, onerror);\n } else {\n processData(url);\n }\n },\n indexedDB: function indexedDB() {\n return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;\n },\n DB_NAME: function DB_NAME() {\n return 'EM_FS_' + window.location.pathname;\n },\n DB_VERSION: 20,\n DB_STORE_NAME: 'FILE_DATA',\n saveFilesToDB: function saveFilesToDB(paths, onload, onerror) {\n onload = onload || function () {};\n\n onerror = onerror || function () {};\n\n var indexedDB = FS.indexedDB();\n\n try {\n var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);\n } catch (e) {\n return onerror(e);\n }\n\n openRequest.onupgradeneeded = function openRequest_onupgradeneeded() {\n console.log('creating db');\n var db = openRequest.result;\n db.createObjectStore(FS.DB_STORE_NAME);\n };\n\n openRequest.onsuccess = function openRequest_onsuccess() {\n var db = openRequest.result;\n var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite');\n var files = transaction.objectStore(FS.DB_STORE_NAME);\n var ok = 0,\n fail = 0,\n total = paths.length;\n\n function finish() {\n if (fail == 0) onload();else onerror();\n }\n\n paths.forEach(function (path) {\n var putRequest = files.put(FS.analyzePath(path).object.contents, path);\n\n putRequest.onsuccess = function putRequest_onsuccess() {\n ok++;\n if (ok + fail == total) finish();\n };\n\n putRequest.onerror = function putRequest_onerror() {\n fail++;\n if (ok + fail == total) finish();\n };\n });\n transaction.onerror = onerror;\n };\n\n openRequest.onerror = onerror;\n },\n loadFilesFromDB: function loadFilesFromDB(paths, onload, onerror) {\n onload = onload || function () {};\n\n onerror = onerror || function () {};\n\n var indexedDB = FS.indexedDB();\n\n try {\n var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);\n } catch (e) {\n return onerror(e);\n }\n\n openRequest.onupgradeneeded = onerror;\n\n openRequest.onsuccess = function openRequest_onsuccess() {\n var db = openRequest.result;\n\n try {\n var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly');\n } catch (e) {\n onerror(e);\n return;\n }\n\n var files = transaction.objectStore(FS.DB_STORE_NAME);\n var ok = 0,\n fail = 0,\n total = paths.length;\n\n function finish() {\n if (fail == 0) onload();else onerror();\n }\n\n paths.forEach(function (path) {\n var getRequest = files.get(path);\n\n getRequest.onsuccess = function getRequest_onsuccess() {\n if (FS.analyzePath(path).exists) {\n FS.unlink(path);\n }\n\n FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);\n ok++;\n if (ok + fail == total) finish();\n };\n\n getRequest.onerror = function getRequest_onerror() {\n fail++;\n if (ok + fail == total) finish();\n };\n });\n transaction.onerror = onerror;\n };\n\n openRequest.onerror = onerror;\n }\n };\n var SYSCALLS = {\n DEFAULT_POLLMASK: 5,\n mappings: {},\n umask: 511,\n calculateAt: function calculateAt(dirfd, path) {\n if (path[0] !== '/') {\n var dir;\n\n if (dirfd === -100) {\n dir = FS.cwd();\n } else {\n var dirstream = FS.getStream(dirfd);\n if (!dirstream) throw new FS.ErrnoError(8);\n dir = dirstream.path;\n }\n\n path = PATH.join2(dir, path);\n }\n\n return path;\n },\n doStat: function doStat(func, path, buf) {\n try {\n var stat = func(path);\n } catch (e) {\n if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) {\n return -54;\n }\n\n throw e;\n }\n\n HEAP32[buf >> 2] = stat.dev;\n HEAP32[buf + 4 >> 2] = 0;\n HEAP32[buf + 8 >> 2] = stat.ino;\n HEAP32[buf + 12 >> 2] = stat.mode;\n HEAP32[buf + 16 >> 2] = stat.nlink;\n HEAP32[buf + 20 >> 2] = stat.uid;\n HEAP32[buf + 24 >> 2] = stat.gid;\n HEAP32[buf + 28 >> 2] = stat.rdev;\n HEAP32[buf + 32 >> 2] = 0;\n tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 40 >> 2] = tempI64[0], HEAP32[buf + 44 >> 2] = tempI64[1];\n HEAP32[buf + 48 >> 2] = 4096;\n HEAP32[buf + 52 >> 2] = stat.blocks;\n HEAP32[buf + 56 >> 2] = stat.atime.getTime() / 1e3 | 0;\n HEAP32[buf + 60 >> 2] = 0;\n HEAP32[buf + 64 >> 2] = stat.mtime.getTime() / 1e3 | 0;\n HEAP32[buf + 68 >> 2] = 0;\n HEAP32[buf + 72 >> 2] = stat.ctime.getTime() / 1e3 | 0;\n HEAP32[buf + 76 >> 2] = 0;\n tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 80 >> 2] = tempI64[0], HEAP32[buf + 84 >> 2] = tempI64[1];\n return 0;\n },\n doMsync: function doMsync(addr, stream, len, flags) {\n var buffer = new Uint8Array(HEAPU8.subarray(addr, addr + len));\n FS.msync(stream, buffer, 0, len, flags);\n },\n doMkdir: function doMkdir(path, mode) {\n path = PATH.normalize(path);\n if (path[path.length - 1] === '/') path = path.substr(0, path.length - 1);\n FS.mkdir(path, mode, 0);\n return 0;\n },\n doMknod: function doMknod(path, mode, dev) {\n switch (mode & 61440) {\n case 32768:\n case 8192:\n case 24576:\n case 4096:\n case 49152:\n break;\n\n default:\n return -28;\n }\n\n FS.mknod(path, mode, dev);\n return 0;\n },\n doReadlink: function doReadlink(path, buf, bufsize) {\n if (bufsize <= 0) return -28;\n var ret = FS.readlink(path);\n var len = Math.min(bufsize, lengthBytesUTF8(ret));\n var endChar = HEAP8[buf + len];\n stringToUTF8(ret, buf, bufsize + 1);\n HEAP8[buf + len] = endChar;\n return len;\n },\n doAccess: function doAccess(path, amode) {\n if (amode & ~7) {\n return -28;\n }\n\n var node;\n var lookup = FS.lookupPath(path, {\n follow: true\n });\n node = lookup.node;\n\n if (!node) {\n return -44;\n }\n\n var perms = '';\n if (amode & 4) perms += 'r';\n if (amode & 2) perms += 'w';\n if (amode & 1) perms += 'x';\n\n if (perms && FS.nodePermissions(node, perms)) {\n return -2;\n }\n\n return 0;\n },\n doDup: function doDup(path, flags, suggestFD) {\n var suggest = FS.getStream(suggestFD);\n if (suggest) FS.close(suggest);\n return FS.open(path, flags, 0, suggestFD, suggestFD).fd;\n },\n doReadv: function doReadv(stream, iov, iovcnt, offset) {\n var ret = 0;\n\n for (var i = 0; i < iovcnt; i++) {\n var ptr = HEAP32[iov + i * 8 >> 2];\n var len = HEAP32[iov + (i * 8 + 4) >> 2];\n var curr = FS.read(stream, HEAP8, ptr, len, offset);\n if (curr < 0) return -1;\n ret += curr;\n if (curr < len) break;\n }\n\n return ret;\n },\n doWritev: function doWritev(stream, iov, iovcnt, offset) {\n var ret = 0;\n\n for (var i = 0; i < iovcnt; i++) {\n var ptr = HEAP32[iov + i * 8 >> 2];\n var len = HEAP32[iov + (i * 8 + 4) >> 2];\n var curr = FS.write(stream, HEAP8, ptr, len, offset);\n if (curr < 0) return -1;\n ret += curr;\n }\n\n return ret;\n },\n varargs: 0,\n get: function get(varargs) {\n SYSCALLS.varargs += 4;\n var ret = HEAP32[SYSCALLS.varargs - 4 >> 2];\n return ret;\n },\n getStr: function getStr() {\n var ret = UTF8ToString(SYSCALLS.get());\n return ret;\n },\n getStreamFromFD: function getStreamFromFD(fd) {\n if (fd === undefined) fd = SYSCALLS.get();\n var stream = FS.getStream(fd);\n if (!stream) throw new FS.ErrnoError(8);\n return stream;\n },\n get64: function get64() {\n var low = SYSCALLS.get(),\n high = SYSCALLS.get();\n if (low >= 0) assert(high === 0);else assert(high === -1);\n return low;\n },\n getZero: function getZero() {\n assert(SYSCALLS.get() === 0);\n }\n };\n var ENV = {};\n\n var ___tm_timezone = (stringToUTF8('GMT', 1341104, 4), 1341104);\n\n FS.staticInit();\n var asmLibraryArg = {\n '__cxa_allocate_exception': ___cxa_allocate_exception,\n '__cxa_throw': ___cxa_throw,\n '__lock': ___lock,\n '__syscall221': ___syscall221,\n '__syscall3': ___syscall3,\n '__syscall5': ___syscall5,\n '__unlock': ___unlock,\n 'abort': _abort,\n 'clock': _clock,\n 'emscripten_memcpy_big': _emscripten_memcpy_big,\n 'emscripten_resize_heap': _emscripten_resize_heap,\n 'environ_get': _environ_get,\n 'environ_sizes_get': _environ_sizes_get,\n 'fd_close': _fd_close,\n 'fd_fdstat_get': _fd_fdstat_get,\n 'fd_seek': _fd_seek,\n 'fd_write': _fd_write,\n 'gettimeofday': _gettimeofday,\n 'memory': wasmMemory,\n 'round': _round,\n 'setTempRet0': _setTempRet0,\n 'table': wasmTable,\n 'time': _time\n };\n var asm = createWasm();\n var real____wasm_call_ctors = asm['__wasm_call_ctors'];\n\n asm['__wasm_call_ctors'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real____wasm_call_ctors.apply(null, arguments);\n };\n\n var real__VSSDecoder_Check = asm['VSSDecoder_Check'];\n\n asm['VSSDecoder_Check'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__VSSDecoder_Check.apply(null, arguments);\n };\n\n var real__VSSDecoder_Init = asm['VSSDecoder_Init'];\n\n asm['VSSDecoder_Init'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__VSSDecoder_Init.apply(null, arguments);\n };\n\n var real__VSSDecoder_Deinit = asm['VSSDecoder_Deinit'];\n\n asm['VSSDecoder_Deinit'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__VSSDecoder_Deinit.apply(null, arguments);\n };\n\n var real__VSSDecoder_OpenChannel = asm['VSSDecoder_OpenChannel'];\n\n asm['VSSDecoder_OpenChannel'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__VSSDecoder_OpenChannel.apply(null, arguments);\n };\n\n var real__VSSDecoder_OpenVideoDecoder = asm['VSSDecoder_OpenVideoDecoder'];\n\n asm['VSSDecoder_OpenVideoDecoder'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__VSSDecoder_OpenVideoDecoder.apply(null, arguments);\n };\n\n var real__VSSDecoder_OpenAudioDecoder = asm['VSSDecoder_OpenAudioDecoder'];\n\n asm['VSSDecoder_OpenAudioDecoder'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__VSSDecoder_OpenAudioDecoder.apply(null, arguments);\n };\n\n var real__VSSDecoder_DecodeVideoFrame = asm['VSSDecoder_DecodeVideoFrame'];\n\n asm['VSSDecoder_DecodeVideoFrame'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__VSSDecoder_DecodeVideoFrame.apply(null, arguments);\n };\n\n var real__VSSDecoder_DecodeAudioFrame = asm['VSSDecoder_DecodeAudioFrame'];\n\n asm['VSSDecoder_DecodeAudioFrame'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__VSSDecoder_DecodeAudioFrame.apply(null, arguments);\n };\n\n var real__VSSDecoder_CloseChannel = asm['VSSDecoder_CloseChannel'];\n\n asm['VSSDecoder_CloseChannel'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__VSSDecoder_CloseChannel.apply(null, arguments);\n };\n\n var real__VSSDecoder_ConvertFrame2Image = asm['VSSDecoder_ConvertFrame2Image'];\n\n asm['VSSDecoder_ConvertFrame2Image'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__VSSDecoder_ConvertFrame2Image.apply(null, arguments);\n };\n\n var real__VSSDecoder_ReleaseImageData = asm['VSSDecoder_ReleaseImageData'];\n\n asm['VSSDecoder_ReleaseImageData'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__VSSDecoder_ReleaseImageData.apply(null, arguments);\n };\n\n var real__VSSDecoder_CreateMP4File = asm['VSSDecoder_CreateMP4File'];\n\n asm['VSSDecoder_CreateMP4File'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__VSSDecoder_CreateMP4File.apply(null, arguments);\n };\n\n var real__VSSDecoder_WriteData = asm['VSSDecoder_WriteData'];\n\n asm['VSSDecoder_WriteData'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__VSSDecoder_WriteData.apply(null, arguments);\n };\n\n var real__VSSDecoder_ReleaseMP4File = asm['VSSDecoder_ReleaseMP4File'];\n\n asm['VSSDecoder_ReleaseMP4File'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__VSSDecoder_ReleaseMP4File.apply(null, arguments);\n };\n\n var real__main = asm['main'];\n\n asm['main'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__main.apply(null, arguments);\n };\n\n var real__free = asm['free'];\n\n asm['free'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__free.apply(null, arguments);\n };\n\n var real__malloc = asm['malloc'];\n\n asm['malloc'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__malloc.apply(null, arguments);\n };\n\n var real____errno_location = asm['__errno_location'];\n\n asm['__errno_location'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real____errno_location.apply(null, arguments);\n };\n\n var real__fflush = asm['fflush'];\n\n asm['fflush'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__fflush.apply(null, arguments);\n };\n\n var real___get_tzname = asm['_get_tzname'];\n\n asm['_get_tzname'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real___get_tzname.apply(null, arguments);\n };\n\n var real___get_daylight = asm['_get_daylight'];\n\n asm['_get_daylight'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real___get_daylight.apply(null, arguments);\n };\n\n var real___get_timezone = asm['_get_timezone'];\n\n asm['_get_timezone'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real___get_timezone.apply(null, arguments);\n };\n\n var real__setThrew = asm['setThrew'];\n\n asm['setThrew'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__setThrew.apply(null, arguments);\n };\n\n var real___ZSt18uncaught_exceptionv = asm['_ZSt18uncaught_exceptionv'];\n\n asm['_ZSt18uncaught_exceptionv'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real___ZSt18uncaught_exceptionv.apply(null, arguments);\n };\n\n var real_stackSave = asm['stackSave'];\n\n asm['stackSave'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_stackSave.apply(null, arguments);\n };\n\n var real_stackAlloc = asm['stackAlloc'];\n\n asm['stackAlloc'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_stackAlloc.apply(null, arguments);\n };\n\n var real_stackRestore = asm['stackRestore'];\n\n asm['stackRestore'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_stackRestore.apply(null, arguments);\n };\n\n var real___growWasmMemory = asm['__growWasmMemory'];\n\n asm['__growWasmMemory'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real___growWasmMemory.apply(null, arguments);\n };\n\n var real_dynCall_ii = asm['dynCall_ii'];\n\n asm['dynCall_ii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_ii.apply(null, arguments);\n };\n\n var real_dynCall_viiiii = asm['dynCall_viiiii'];\n\n asm['dynCall_viiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_viiiii.apply(null, arguments);\n };\n\n var real_dynCall_viiiiiifi = asm['dynCall_viiiiiifi'];\n\n asm['dynCall_viiiiiifi'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_viiiiiifi.apply(null, arguments);\n };\n\n var real_dynCall_viiii = asm['dynCall_viiii'];\n\n asm['dynCall_viiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_viiii.apply(null, arguments);\n };\n\n var real_dynCall_viii = asm['dynCall_viii'];\n\n asm['dynCall_viii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_viii.apply(null, arguments);\n };\n\n var real_dynCall_iiiiiii = asm['dynCall_iiiiiii'];\n\n asm['dynCall_iiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_iiiiiii.apply(null, arguments);\n };\n\n var real_dynCall_iiiiii = asm['dynCall_iiiiii'];\n\n asm['dynCall_iiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_iiiiii.apply(null, arguments);\n };\n\n var real_dynCall_vii = asm['dynCall_vii'];\n\n asm['dynCall_vii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_vii.apply(null, arguments);\n };\n\n var real_dynCall_iii = asm['dynCall_iii'];\n\n asm['dynCall_iii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_iii.apply(null, arguments);\n };\n\n var real_dynCall_iiii = asm['dynCall_iiii'];\n\n asm['dynCall_iiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_iiii.apply(null, arguments);\n };\n\n var real_dynCall_viiiiii = asm['dynCall_viiiiii'];\n\n asm['dynCall_viiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_viiiiii.apply(null, arguments);\n };\n\n var real_dynCall_viiiiiiiii = asm['dynCall_viiiiiiiii'];\n\n asm['dynCall_viiiiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_viiiiiiiii.apply(null, arguments);\n };\n\n var real_dynCall_viiiiiiii = asm['dynCall_viiiiiiii'];\n\n asm['dynCall_viiiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_viiiiiiii.apply(null, arguments);\n };\n\n var real_dynCall_iiiii = asm['dynCall_iiiii'];\n\n asm['dynCall_iiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_iiiii.apply(null, arguments);\n };\n\n var real_dynCall_viiiiiiiiiiiiii = asm['dynCall_viiiiiiiiiiiiii'];\n\n asm['dynCall_viiiiiiiiiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_viiiiiiiiiiiiii.apply(null, arguments);\n };\n\n var real_dynCall_viiiiiiiiiii = asm['dynCall_viiiiiiiiiii'];\n\n asm['dynCall_viiiiiiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_viiiiiiiiiii.apply(null, arguments);\n };\n\n var real_dynCall_viiiiiii = asm['dynCall_viiiiiii'];\n\n asm['dynCall_viiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_viiiiiii.apply(null, arguments);\n };\n\n var real_dynCall_viiiiiiiiiiii = asm['dynCall_viiiiiiiiiiii'];\n\n asm['dynCall_viiiiiiiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_viiiiiiiiiiii.apply(null, arguments);\n };\n\n var real_dynCall_vi = asm['dynCall_vi'];\n\n asm['dynCall_vi'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_vi.apply(null, arguments);\n };\n\n var real_dynCall_iiiiiiiii = asm['dynCall_iiiiiiiii'];\n\n asm['dynCall_iiiiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_iiiiiiiii.apply(null, arguments);\n };\n\n var real_dynCall_viiiifii = asm['dynCall_viiiifii'];\n\n asm['dynCall_viiiifii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_viiiifii.apply(null, arguments);\n };\n\n var real_dynCall_fii = asm['dynCall_fii'];\n\n asm['dynCall_fii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_fii.apply(null, arguments);\n };\n\n var real_dynCall_viiiiiiiiii = asm['dynCall_viiiiiiiiii'];\n\n asm['dynCall_viiiiiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_viiiiiiiiii.apply(null, arguments);\n };\n\n var real_dynCall_dd = asm['dynCall_dd'];\n\n asm['dynCall_dd'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_dd.apply(null, arguments);\n };\n\n var real_dynCall_viifi = asm['dynCall_viifi'];\n\n asm['dynCall_viifi'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_viifi.apply(null, arguments);\n };\n\n var real_dynCall_fiii = asm['dynCall_fiii'];\n\n asm['dynCall_fiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_fiii.apply(null, arguments);\n };\n\n var real_dynCall_viidi = asm['dynCall_viidi'];\n\n asm['dynCall_viidi'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_viidi.apply(null, arguments);\n };\n\n var real_dynCall_iiiiiiii = asm['dynCall_iiiiiiii'];\n\n asm['dynCall_iiiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_iiiiiiii.apply(null, arguments);\n };\n\n var real_dynCall_did = asm['dynCall_did'];\n\n asm['dynCall_did'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_did.apply(null, arguments);\n };\n\n var real_dynCall_v = asm['dynCall_v'];\n\n asm['dynCall_v'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_v.apply(null, arguments);\n };\n\n var real_dynCall_viiijj = asm['dynCall_viiijj'];\n\n asm['dynCall_viiijj'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_viiijj.apply(null, arguments);\n };\n\n var real_dynCall_iiiiiiidiiddii = asm['dynCall_iiiiiiidiiddii'];\n\n asm['dynCall_iiiiiiidiiddii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_iiiiiiidiiddii.apply(null, arguments);\n };\n\n var real_dynCall_jij = asm['dynCall_jij'];\n\n asm['dynCall_jij'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_jij.apply(null, arguments);\n };\n\n var real_dynCall_jii = asm['dynCall_jii'];\n\n asm['dynCall_jii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_jii.apply(null, arguments);\n };\n\n var real_dynCall_iidiiii = asm['dynCall_iidiiii'];\n\n asm['dynCall_iidiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_iidiiii.apply(null, arguments);\n };\n\n var real_dynCall_jiji = asm['dynCall_jiji'];\n\n asm['dynCall_jiji'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_dynCall_jiji.apply(null, arguments);\n };\n\n Module['asm'] = asm;\n\n var ___wasm_call_ctors = Module['___wasm_call_ctors'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['__wasm_call_ctors'].apply(null, arguments);\n };\n\n var _VSSDecoder_Check = Module['_VSSDecoder_Check'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['VSSDecoder_Check'].apply(null, arguments);\n };\n\n var _VSSDecoder_Init = Module['_VSSDecoder_Init'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['VSSDecoder_Init'].apply(null, arguments);\n };\n\n var _VSSDecoder_Deinit = Module['_VSSDecoder_Deinit'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['VSSDecoder_Deinit'].apply(null, arguments);\n };\n\n var _VSSDecoder_OpenChannel = Module['_VSSDecoder_OpenChannel'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['VSSDecoder_OpenChannel'].apply(null, arguments);\n };\n\n var _VSSDecoder_OpenVideoDecoder = Module['_VSSDecoder_OpenVideoDecoder'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['VSSDecoder_OpenVideoDecoder'].apply(null, arguments);\n };\n\n var _VSSDecoder_OpenAudioDecoder = Module['_VSSDecoder_OpenAudioDecoder'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['VSSDecoder_OpenAudioDecoder'].apply(null, arguments);\n };\n\n var _VSSDecoder_DecodeVideoFrame = Module['_VSSDecoder_DecodeVideoFrame'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['VSSDecoder_DecodeVideoFrame'].apply(null, arguments);\n };\n\n var _VSSDecoder_DecodeAudioFrame = Module['_VSSDecoder_DecodeAudioFrame'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['VSSDecoder_DecodeAudioFrame'].apply(null, arguments);\n };\n\n var _VSSDecoder_CloseChannel = Module['_VSSDecoder_CloseChannel'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['VSSDecoder_CloseChannel'].apply(null, arguments);\n };\n\n var _VSSDecoder_ConvertFrame2Image = Module['_VSSDecoder_ConvertFrame2Image'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['VSSDecoder_ConvertFrame2Image'].apply(null, arguments);\n };\n\n var _VSSDecoder_ReleaseImageData = Module['_VSSDecoder_ReleaseImageData'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['VSSDecoder_ReleaseImageData'].apply(null, arguments);\n };\n\n var _VSSDecoder_CreateMP4File = Module['_VSSDecoder_CreateMP4File'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['VSSDecoder_CreateMP4File'].apply(null, arguments);\n };\n\n var _VSSDecoder_WriteData = Module['_VSSDecoder_WriteData'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['VSSDecoder_WriteData'].apply(null, arguments);\n };\n\n var _VSSDecoder_ReleaseMP4File = Module['_VSSDecoder_ReleaseMP4File'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['VSSDecoder_ReleaseMP4File'].apply(null, arguments);\n };\n\n var _main = Module['_main'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['main'].apply(null, arguments);\n };\n\n var _free = Module['_free'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['free'].apply(null, arguments);\n };\n\n var _malloc = Module['_malloc'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['malloc'].apply(null, arguments);\n };\n\n var ___errno_location = Module['___errno_location'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['__errno_location'].apply(null, arguments);\n };\n\n var _fflush = Module['_fflush'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['fflush'].apply(null, arguments);\n };\n\n var __get_tzname = Module['__get_tzname'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['_get_tzname'].apply(null, arguments);\n };\n\n var __get_daylight = Module['__get_daylight'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['_get_daylight'].apply(null, arguments);\n };\n\n var __get_timezone = Module['__get_timezone'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['_get_timezone'].apply(null, arguments);\n };\n\n var _setThrew = Module['_setThrew'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['setThrew'].apply(null, arguments);\n };\n\n var __ZSt18uncaught_exceptionv = Module['__ZSt18uncaught_exceptionv'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['_ZSt18uncaught_exceptionv'].apply(null, arguments);\n };\n\n var stackSave = Module['stackSave'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['stackSave'].apply(null, arguments);\n };\n\n var stackAlloc = Module['stackAlloc'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['stackAlloc'].apply(null, arguments);\n };\n\n var stackRestore = Module['stackRestore'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['stackRestore'].apply(null, arguments);\n };\n\n var __growWasmMemory = Module['__growWasmMemory'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['__growWasmMemory'].apply(null, arguments);\n };\n\n var dynCall_ii = Module['dynCall_ii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_ii'].apply(null, arguments);\n };\n\n var dynCall_viiiii = Module['dynCall_viiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_viiiii'].apply(null, arguments);\n };\n\n var dynCall_viiiiiifi = Module['dynCall_viiiiiifi'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_viiiiiifi'].apply(null, arguments);\n };\n\n var dynCall_viiii = Module['dynCall_viiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_viiii'].apply(null, arguments);\n };\n\n var dynCall_viii = Module['dynCall_viii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_viii'].apply(null, arguments);\n };\n\n var dynCall_iiiiiii = Module['dynCall_iiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_iiiiiii'].apply(null, arguments);\n };\n\n var dynCall_iiiiii = Module['dynCall_iiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_iiiiii'].apply(null, arguments);\n };\n\n var dynCall_vii = Module['dynCall_vii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_vii'].apply(null, arguments);\n };\n\n var dynCall_iii = Module['dynCall_iii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_iii'].apply(null, arguments);\n };\n\n var dynCall_iiii = Module['dynCall_iiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_iiii'].apply(null, arguments);\n };\n\n var dynCall_viiiiii = Module['dynCall_viiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_viiiiii'].apply(null, arguments);\n };\n\n var dynCall_viiiiiiiii = Module['dynCall_viiiiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_viiiiiiiii'].apply(null, arguments);\n };\n\n var dynCall_viiiiiiii = Module['dynCall_viiiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_viiiiiiii'].apply(null, arguments);\n };\n\n var dynCall_iiiii = Module['dynCall_iiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_iiiii'].apply(null, arguments);\n };\n\n var dynCall_viiiiiiiiiiiiii = Module['dynCall_viiiiiiiiiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_viiiiiiiiiiiiii'].apply(null, arguments);\n };\n\n var dynCall_viiiiiiiiiii = Module['dynCall_viiiiiiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_viiiiiiiiiii'].apply(null, arguments);\n };\n\n var dynCall_viiiiiii = Module['dynCall_viiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_viiiiiii'].apply(null, arguments);\n };\n\n var dynCall_viiiiiiiiiiii = Module['dynCall_viiiiiiiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_viiiiiiiiiiii'].apply(null, arguments);\n };\n\n var dynCall_vi = Module['dynCall_vi'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_vi'].apply(null, arguments);\n };\n\n var dynCall_iiiiiiiii = Module['dynCall_iiiiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_iiiiiiiii'].apply(null, arguments);\n };\n\n var dynCall_viiiifii = Module['dynCall_viiiifii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_viiiifii'].apply(null, arguments);\n };\n\n var dynCall_fii = Module['dynCall_fii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_fii'].apply(null, arguments);\n };\n\n var dynCall_viiiiiiiiii = Module['dynCall_viiiiiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_viiiiiiiiii'].apply(null, arguments);\n };\n\n var dynCall_dd = Module['dynCall_dd'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_dd'].apply(null, arguments);\n };\n\n var dynCall_viifi = Module['dynCall_viifi'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_viifi'].apply(null, arguments);\n };\n\n var dynCall_fiii = Module['dynCall_fiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_fiii'].apply(null, arguments);\n };\n\n var dynCall_viidi = Module['dynCall_viidi'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_viidi'].apply(null, arguments);\n };\n\n var dynCall_iiiiiiii = Module['dynCall_iiiiiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_iiiiiiii'].apply(null, arguments);\n };\n\n var dynCall_did = Module['dynCall_did'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_did'].apply(null, arguments);\n };\n\n var dynCall_v = Module['dynCall_v'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_v'].apply(null, arguments);\n };\n\n var dynCall_viiijj = Module['dynCall_viiijj'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_viiijj'].apply(null, arguments);\n };\n\n var dynCall_iiiiiiidiiddii = Module['dynCall_iiiiiiidiiddii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_iiiiiiidiiddii'].apply(null, arguments);\n };\n\n var dynCall_jij = Module['dynCall_jij'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_jij'].apply(null, arguments);\n };\n\n var dynCall_jii = Module['dynCall_jii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_jii'].apply(null, arguments);\n };\n\n var dynCall_iidiiii = Module['dynCall_iidiiii'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_iidiiii'].apply(null, arguments);\n };\n\n var dynCall_jiji = Module['dynCall_jiji'] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module['asm']['dynCall_jiji'].apply(null, arguments);\n };\n\n Module['asm'] = asm;\n if (!Object.getOwnPropertyDescriptor(Module, 'intArrayFromString')) Module['intArrayFromString'] = function () {\n abort('\\'intArrayFromString\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'intArrayToString')) Module['intArrayToString'] = function () {\n abort('\\'intArrayToString\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n Module['ccall'] = ccall;\n Module['cwrap'] = cwrap;\n if (!Object.getOwnPropertyDescriptor(Module, 'setValue')) Module['setValue'] = function () {\n abort('\\'setValue\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'getValue')) Module['getValue'] = function () {\n abort('\\'getValue\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'allocate')) Module['allocate'] = function () {\n abort('\\'allocate\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'getMemory')) Module['getMemory'] = function () {\n abort('\\'getMemory\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'AsciiToString')) Module['AsciiToString'] = function () {\n abort('\\'AsciiToString\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'stringToAscii')) Module['stringToAscii'] = function () {\n abort('\\'stringToAscii\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'UTF8ArrayToString')) Module['UTF8ArrayToString'] = function () {\n abort('\\'UTF8ArrayToString\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'UTF8ToString')) Module['UTF8ToString'] = function () {\n abort('\\'UTF8ToString\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'stringToUTF8Array')) Module['stringToUTF8Array'] = function () {\n abort('\\'stringToUTF8Array\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'stringToUTF8')) Module['stringToUTF8'] = function () {\n abort('\\'stringToUTF8\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'lengthBytesUTF8')) Module['lengthBytesUTF8'] = function () {\n abort('\\'lengthBytesUTF8\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'UTF16ToString')) Module['UTF16ToString'] = function () {\n abort('\\'UTF16ToString\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'stringToUTF16')) Module['stringToUTF16'] = function () {\n abort('\\'stringToUTF16\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'lengthBytesUTF16')) Module['lengthBytesUTF16'] = function () {\n abort('\\'lengthBytesUTF16\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'UTF32ToString')) Module['UTF32ToString'] = function () {\n abort('\\'UTF32ToString\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'stringToUTF32')) Module['stringToUTF32'] = function () {\n abort('\\'stringToUTF32\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'lengthBytesUTF32')) Module['lengthBytesUTF32'] = function () {\n abort('\\'lengthBytesUTF32\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'allocateUTF8')) Module['allocateUTF8'] = function () {\n abort('\\'allocateUTF8\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'stackTrace')) Module['stackTrace'] = function () {\n abort('\\'stackTrace\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'addOnPreRun')) Module['addOnPreRun'] = function () {\n abort('\\'addOnPreRun\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'addOnInit')) Module['addOnInit'] = function () {\n abort('\\'addOnInit\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'addOnPreMain')) Module['addOnPreMain'] = function () {\n abort('\\'addOnPreMain\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'addOnExit')) Module['addOnExit'] = function () {\n abort('\\'addOnExit\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'addOnPostRun')) Module['addOnPostRun'] = function () {\n abort('\\'addOnPostRun\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'writeStringToMemory')) Module['writeStringToMemory'] = function () {\n abort('\\'writeStringToMemory\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'writeArrayToMemory')) Module['writeArrayToMemory'] = function () {\n abort('\\'writeArrayToMemory\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'writeAsciiToMemory')) Module['writeAsciiToMemory'] = function () {\n abort('\\'writeAsciiToMemory\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'addRunDependency')) Module['addRunDependency'] = function () {\n abort('\\'addRunDependency\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'removeRunDependency')) Module['removeRunDependency'] = function () {\n abort('\\'removeRunDependency\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'ENV')) Module['ENV'] = function () {\n abort('\\'ENV\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'FS')) Module['FS'] = function () {\n abort('\\'FS\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'FS_createFolder')) Module['FS_createFolder'] = function () {\n abort('\\'FS_createFolder\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'FS_createPath')) Module['FS_createPath'] = function () {\n abort('\\'FS_createPath\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'FS_createDataFile')) Module['FS_createDataFile'] = function () {\n abort('\\'FS_createDataFile\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'FS_createPreloadedFile')) Module['FS_createPreloadedFile'] = function () {\n abort('\\'FS_createPreloadedFile\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'FS_createLazyFile')) Module['FS_createLazyFile'] = function () {\n abort('\\'FS_createLazyFile\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'FS_createLink')) Module['FS_createLink'] = function () {\n abort('\\'FS_createLink\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'FS_createDevice')) Module['FS_createDevice'] = function () {\n abort('\\'FS_createDevice\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'FS_unlink')) Module['FS_unlink'] = function () {\n abort('\\'FS_unlink\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'GL')) Module['GL'] = function () {\n abort('\\'GL\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'dynamicAlloc')) Module['dynamicAlloc'] = function () {\n abort('\\'dynamicAlloc\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'loadDynamicLibrary')) Module['loadDynamicLibrary'] = function () {\n abort('\\'loadDynamicLibrary\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'loadWebAssemblyModule')) Module['loadWebAssemblyModule'] = function () {\n abort('\\'loadWebAssemblyModule\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'getLEB')) Module['getLEB'] = function () {\n abort('\\'getLEB\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'getFunctionTables')) Module['getFunctionTables'] = function () {\n abort('\\'getFunctionTables\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'alignFunctionTables')) Module['alignFunctionTables'] = function () {\n abort('\\'alignFunctionTables\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'registerFunctions')) Module['registerFunctions'] = function () {\n abort('\\'registerFunctions\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n Module['addFunction'] = addFunction;\n if (!Object.getOwnPropertyDescriptor(Module, 'removeFunction')) Module['removeFunction'] = function () {\n abort('\\'removeFunction\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'getFuncWrapper')) Module['getFuncWrapper'] = function () {\n abort('\\'getFuncWrapper\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'prettyPrint')) Module['prettyPrint'] = function () {\n abort('\\'prettyPrint\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'makeBigInt')) Module['makeBigInt'] = function () {\n abort('\\'makeBigInt\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'dynCall')) Module['dynCall'] = function () {\n abort('\\'dynCall\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'getCompilerSetting')) Module['getCompilerSetting'] = function () {\n abort('\\'getCompilerSetting\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'stackSave')) Module['stackSave'] = function () {\n abort('\\'stackSave\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'stackRestore')) Module['stackRestore'] = function () {\n abort('\\'stackRestore\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'stackAlloc')) Module['stackAlloc'] = function () {\n abort('\\'stackAlloc\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'establishStackSpace')) Module['establishStackSpace'] = function () {\n abort('\\'establishStackSpace\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'print')) Module['print'] = function () {\n abort('\\'print\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'printErr')) Module['printErr'] = function () {\n abort('\\'printErr\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'getTempRet0')) Module['getTempRet0'] = function () {\n abort('\\'getTempRet0\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'setTempRet0')) Module['setTempRet0'] = function () {\n abort('\\'setTempRet0\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n Module['callMain'] = callMain;\n if (!Object.getOwnPropertyDescriptor(Module, 'abort')) Module['abort'] = function () {\n abort('\\'abort\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'Pointer_stringify')) Module['Pointer_stringify'] = function () {\n abort('\\'Pointer_stringify\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n if (!Object.getOwnPropertyDescriptor(Module, 'warnOnce')) Module['warnOnce'] = function () {\n abort('\\'warnOnce\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n };\n Module['writeStackCookie'] = writeStackCookie;\n Module['checkStackCookie'] = checkStackCookie;\n Module['abortStackOverflow'] = abortStackOverflow;\n if (!Object.getOwnPropertyDescriptor(Module, 'ALLOC_NORMAL')) Object.defineProperty(Module, 'ALLOC_NORMAL', {\n configurable: true,\n get: function get() {\n abort('\\'ALLOC_NORMAL\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n }\n });\n if (!Object.getOwnPropertyDescriptor(Module, 'ALLOC_STACK')) Object.defineProperty(Module, 'ALLOC_STACK', {\n configurable: true,\n get: function get() {\n abort('\\'ALLOC_STACK\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n }\n });\n if (!Object.getOwnPropertyDescriptor(Module, 'ALLOC_DYNAMIC')) Object.defineProperty(Module, 'ALLOC_DYNAMIC', {\n configurable: true,\n get: function get() {\n abort('\\'ALLOC_DYNAMIC\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n }\n });\n if (!Object.getOwnPropertyDescriptor(Module, 'ALLOC_NONE')) Object.defineProperty(Module, 'ALLOC_NONE', {\n configurable: true,\n get: function get() {\n abort('\\'ALLOC_NONE\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)');\n }\n });\n if (!Object.getOwnPropertyDescriptor(Module, 'calledRun')) Object.defineProperty(Module, 'calledRun', {\n configurable: true,\n get: function get() {\n abort('\\'calledRun\\' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you');\n }\n });\n var calledRun;\n var calledMain = false;\n\n dependenciesFulfilled = function runCaller() {\n if (!calledRun) run();\n if (!calledRun) dependenciesFulfilled = runCaller;\n };\n\n Module['run'] = run;\n\n if (Module['preInit']) {\n if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];\n\n while (Module['preInit'].length > 0) {\n Module['preInit'].pop()();\n }\n }\n\n var shouldRunNow = true;\n if (Module['noInitialRun']) shouldRunNow = false;\n noExitRuntime = true;\n run();\n } //}\n\n} //LoadWasmModule();\n\n\nvar _VideoWorker = function VideoWorker(self) {\n //console.log(\"new VideoWorker.js\");\n self.isFlvStream = true;\n self.enableAudio = false;\n self.pause = false; //HLS���õ���ͣ,��Ϊ���������DecodeWorker��\n\n self.exitFlag = false;\n self.needMoreData = false;\n self.wasmDecoderId = -1;\n self.wasmInitVideoDecoder = false;\n self.wasmInitAudioDecoder = false;\n self.videoQueue = [];\n self.audioQueue = [];\n self.videoFrameNum = 0;\n self.videoRawData = null;\n self.audioRawData = null;\n self.videoPacketData = null;\n self.audioPacketData = null;\n self.findKeyFrame = true;\n self.videoIntervalHandle = -1;\n self.videoIntervalValue = 40;\n self.audioIntervalHandle = -1;\n self.audioIntervalValue = 21;\n self.lastPTS = 0;\n self.ptsCount = 0;\n self.maxCacheFrameNum = 0;\n self.calcDelayFlag = true;\n self.procVideoFlag = false;\n self.procAudioFlag = false;\n\n var createBuf = function createBuf() {\n if (self.videoRawData == null) {\n self.videoRawData = Module._malloc(1920 * 1080 * 4); //self.videoRawData = Module._malloc(4000 * 3000 * 2);\n }\n\n if (self.audioRawData == null) {\n self.audioRawData = Module._malloc(1024 * 16);\n }\n\n if (self.videoPacketData == null) {\n self.videoPacketData = Module._malloc(1024 * 1024);\n }\n\n if (self.audioPacketData == null) {\n self.audioPacketData = Module._malloc(1024 * 2);\n }\n\n if (self.wasmDecoderId < 0) {\n self.wasmDecoderId = Module._VSSDecoder_OpenChannel(); //console.log(\"openChannel: \" + self.wasmDecoderId);\n }\n };\n\n var deleteBuf = function deleteBuf() {\n if (self.wasmDecoderId > 0) {\n //console.log(\"closeChannel: \" + self.wasmDecoderId);\n Module._VSSDecoder_CloseChannel(self.wasmDecoderId);\n\n self.wasmDecoderId = -1;\n }\n\n if (self.videoRawData != null) {\n Module._free(self.videoRawData);\n\n self.videoRawData = null;\n }\n\n if (self.audioRawData != null) {\n Module._free(self.audioRawData);\n\n self.audioRawData = null;\n }\n\n if (self.videoPacketData != null) {\n Module._free(self.videoPacketData);\n\n self.videoPacketData = null;\n }\n\n if (self.audioPacketData != null) {\n Module._free(self.audioPacketData);\n\n self.audioPacketData = null;\n }\n };\n\n var onProcStreamData = function onProcStreamData(mediaType, codecId, frameType, playTimeSecs, samplerate, channelNum, bitPerSample, pbuf, bufsize) {\n //console.log(\"DecodeWorker: onProcStreamData:\" + bufsize);\n //console.log(\"frame data: \" + pbuf);\n if (self.procVideoFlag) return -1;\n self.procVideoFlag = true;\n Module.HEAPU8.set(pbuf, self.videoPacketData);\n var videoRenderFormat = _common__WEBPACK_IMPORTED_MODULE_0__[\"tVideoRenderYV12\"];\n var outputFormat = 0;\n if (videoRenderFormat == _common__WEBPACK_IMPORTED_MODULE_0__[\"tVideoRenderYV12\"]) outputFormat = 0;else if (videoRenderFormat == _common__WEBPACK_IMPORTED_MODULE_0__[\"tVideoRenderRGB\"]) outputFormat = 2;else if (videoRenderFormat == _common__WEBPACK_IMPORTED_MODULE_0__[\"tVideoRenderRGBA\"]) outputFormat = 26; //Decoder\n //mediaType, codecId, samplerate, channelNum, bitPerSample, pbuf, bufsize\n\n if (mediaType == 1) {\n if (self.videoFrameNum > 0) self.videoFrameNum -= 1;\n }\n\n if (mediaType == 1 && !self.wasmInitVideoDecoder && frameType) {\n //open video decoder..\n var ret = Module._VSSDecoder_OpenVideoDecoder(self.wasmDecoderId, codecId, 0, 0, outputFormat);\n\n if (ret == 0) self.wasmInitVideoDecoder = true;\n } else if (mediaType == 2 && !self.wasmInitAudioDecoder) {\n //open audio decoder\n var ret = Module._VSSDecoder_OpenAudioDecoder(self.wasmDecoderId, codecId, samplerate, bitPerSample, channelNum);\n\n if (ret == 0) self.wasmInitAudioDecoder = true;\n }\n\n var ptr = null;\n\n if (mediaType == 1 && self.wasmInitVideoDecoder) {\n ptr = Module._VSSDecoder_DecodeVideoFrame(self.wasmDecoderId, self.videoPacketData, bufsize, 0, 0, self.videoRawData, 0);\n } else if (mediaType == 2 && self.wasmInitAudioDecoder && self.enableAudio) {\n ptr = Module._VSSDecoder_DecodeAudioFrame(self.wasmDecoderId, self.videoPacketData, bufsize, self.audioRawData, 0);\n }\n\n if (ptr != 0 && ptr != null) {\n var _mediaType = Module.HEAPU32[ptr / 4],\n mediaCodec = Module.HEAPU32[ptr / 4 + 1],\n frameLength = Module.HEAPU32[ptr / 4 + 2],\n vidFrameType = Module.HEAPU32[ptr / 4 + 3],\n vidWidth = Module.HEAPU32[ptr / 4 + 4],\n vidHeight = Module.HEAPU32[ptr / 4 + 5],\n vidBitrate = Module.HEAPU32[ptr / 4 + 6],\n vidFps = Module.HEAPU32[ptr / 4 + 7],\n vidInterval = Module.HEAPU32[ptr / 4 + 8],\n audChannel = Module.HEAPU32[ptr / 4 + 9],\n audSampleRate = Module.HEAPU32[ptr / 4 + 10],\n audBitPerSample = Module.HEAPU32[ptr / 4 + 11],\n audBitrate = Module.HEAPU32[ptr / 4 + 12],\n timestamp = Module.HEAPU32[ptr / 4 + 13];\n\n if (frameLength < 1) {\n //console.log(\"framelength<1: \" + frameLength);\n self.procVideoFlag = false;\n return;\n }\n\n if (_mediaType == 1) {\n //Video\n //procVideoFrame++;\n var outputDataSize = 0;\n if (outputFormat == 0) outputDataSize = vidWidth * vidHeight * 3 / 2;else if (outputFormat == 2) outputDataSize = vidWidth * vidHeight * 3;else if (outputFormat == 25) outputDataSize = vidWidth * vidHeight * 4;else if (outputFormat == 26) outputDataSize = vidWidth * vidHeight * 4;\n var outArray = Module.HEAPU8.subarray(self.videoRawData, self.videoRawData + outputDataSize);\n var data = new Uint8Array(outArray);\n var objData = {\n cmd: _common__WEBPACK_IMPORTED_MODULE_0__[\"tFrameData\"],\n workerId: _common__WEBPACK_IMPORTED_MODULE_0__[\"DECODE_WORKER_ID\"],\n mediaType: 1,\n ts: timestamp,\n width: vidWidth,\n height: vidHeight,\n framesize: bufsize,\n rawsize: outputDataSize,\n fps: vidFps,\n interval: vidInterval,\n playTimeSec: playTimeSecs,\n frameNum: self.videoFrameNum,\n dat: data\n };\n self.postMessage(objData, [objData.dat.buffer]);\n\n if (vidWidth >= 1920 && vidHeight >= 720) {\n self.procVideoFlag = false;\n return 1;\n }\n } else if (_mediaType == 2) {\n var outArray = Module.HEAPU8.subarray(self.audioRawData, self.audioRawData + frameLength);\n var data = new Uint8Array(outArray);\n var sampleFmt = 0; //default: 8bits\n\n if (audBitPerSample == 8) sampleFmt = 0;else if (audBitPerSample == 16) sampleFmt = 1;else if (audBitPerSample == 32) sampleFmt = 2;\n var objData = {\n cmd: _common__WEBPACK_IMPORTED_MODULE_0__[\"tFrameData\"],\n workerId: _common__WEBPACK_IMPORTED_MODULE_0__[\"DECODE_WORKER_ID\"],\n mediaType: 2,\n fmt: sampleFmt,\n ch: audChannel,\n samplerate: audSampleRate,\n ts: timestamp,\n framesize: frameLength,\n dat: data\n };\n self.postMessage(objData, [objData.dat.buffer]);\n }\n }\n\n self.procVideoFlag = false;\n return 0;\n };\n\n var onProcAudioStreamData = function onProcAudioStreamData(codecId, samplerate, channelNum, bitPerSample, pbuf, bufsize) {\n Module.HEAPU8.set(pbuf, self.audioPacketData);\n {\n //Decoder\n if (!self.wasmInitAudioDecoder) {\n //channelNum = 2;\n //console.log(\"Audio samplerate[\" + samplerate + \"] bitPerSample[\" + bitPerSample + \"] ChannelNum: \" + channelNum);\n var ret = Module._VSSDecoder_OpenAudioDecoder(self.wasmDecoderId, codecId, samplerate, bitPerSample, channelNum);\n\n if (ret == 0) self.wasmInitAudioDecoder = true;\n }\n\n var ptr = null;\n\n if (self.wasmInitAudioDecoder && self.enableAudio) {\n ptr = Module._VSSDecoder_DecodeAudioFrame(self.wasmDecoderId, self.audioPacketData, bufsize, self.audioRawData, 0);\n }\n\n if (ptr != 0 && ptr != null) {\n var mediaType = Module.HEAPU32[ptr / 4],\n mediaCodec = Module.HEAPU32[ptr / 4 + 1],\n frameLength = Module.HEAPU32[ptr / 4 + 2],\n vidFrameType = Module.HEAPU32[ptr / 4 + 3],\n vidWidth = Module.HEAPU32[ptr / 4 + 4],\n vidHeight = Module.HEAPU32[ptr / 4 + 5],\n vidBitrate = Module.HEAPU32[ptr / 4 + 6],\n vidFps = Module.HEAPU32[ptr / 4 + 7],\n vidInterval = Module.HEAPU32[ptr / 4 + 8],\n audChannel = Module.HEAPU32[ptr / 4 + 9],\n audSampleRate = Module.HEAPU32[ptr / 4 + 10],\n audBitPerSample = Module.HEAPU32[ptr / 4 + 11],\n audBitrate = Module.HEAPU32[ptr / 4 + 12],\n timestamp = Module.HEAPU32[ptr / 4 + 13];\n\n if (frameLength < 1) {\n //console.log(\"framelength<1: \" + frameLength);\n return;\n }\n\n var outArray = Module.HEAPU8.subarray(self.audioRawData, self.audioRawData + frameLength);\n var data = new Uint8Array(outArray);\n var sampleFmt = 0; //default: 8bits\n\n if (audBitPerSample == 8) sampleFmt = 0;else if (audBitPerSample == 16) sampleFmt = 1;else if (audBitPerSample == 32) sampleFmt = 2;\n audChannel = 2; //console.log(\"Audio: sampleFmt[\" + sampleFmt + \"] + ch[\" + audChannel + \"]\");\n //console.log(\"pbuf:\", pbuf);\n //unsigned short usTmp = GetU16((unsigned char *)pbuf + offset); offset += 2;\n //unsigned char audioObjectType = (usTmp >> 11) & 0x1F;\t\t//1:AAC MAIN 2:AAC LC 3:AAC SSR\n //unsigned char sampleingFrequencyIndex = (usTmp >> 7) & 0x0F;\n //unsigned char channelConfiguration = (usTmp >> 3) & 0x0F;\n //unsigned char frameLengthFlag = (usTmp >> 2) & 0x03;\n //unsigned char dependsOnCoreCoder = (usTmp >> 1) & 0x01;\n //unsigned char extensionFlag = usTmp & 0x01;\n\n var objData = {\n cmd: _common__WEBPACK_IMPORTED_MODULE_0__[\"tFrameData\"],\n workerId: _common__WEBPACK_IMPORTED_MODULE_0__[\"DECODE_WORKER_ID\"],\n mediaType: 2,\n fmt: sampleFmt,\n ch: audChannel,\n samplerate: audSampleRate,\n ts: timestamp,\n framesize: frameLength,\n dat: data\n };\n self.postMessage(objData, [objData.dat.buffer]);\n }\n }\n };\n\n var VideoDecodeLoop = function VideoDecodeLoop() {\n if (self.wasmDecoderId < 0) {\n createBuf(); //����buf\n //console.log(\"wasm already loaded... Create buff...\");\n }\n\n if (self.wasmDecoderId > 0) {\n if (self.videoQueue.length > 0) {\n //console.log(\"videoQueue.length: \" + self.videoQueue.length);\n //if (self.calcDelayFlag && self.maxCacheFrameNum < self.videoQueue.length) {\n // self.maxCacheFrameNum = self.videoQueue.length;\n //}\n //else if (self.calcDelayFlag){\n // self.calcDelayFlag = false;\n // console.log(\"videoQueue.length: \" + self.maxCacheFrameNum + \" interval:\" + self.videoIntervalValue);\n //}\n //����ͣ״̬\n if (!self.pause) {\n var frame = null;\n var ret = -1;\n\n if (self.isFlvStream) {\n //FLV ����֡��̫��������ǰGOP\n //���ҹؼ�֡\n if (self.findKeyFrame) {\n while (self.videoQueue.length > 0) {\n frame = self.videoQueue[0]; //console.log(\"frameCount\" + self.videoQueue.length + \" drop frame: \" + frame.dat.length);\n\n if (frame.frameType && self.videoQueue.length < 60) {\n self.findKeyFrame = false;\n break;\n }\n\n self.videoQueue.shift();\n }\n } else {\n if (self.videoQueue.length > 60) {\n self.findKeyFrame = true;\n }\n }\n\n if (self.videoQueue.length > 0) {\n if (frame == null) {\n frame = self.videoQueue[0];\n } //if (frame.frameType) {\n // console.log(\"videoQueue.length: \" + self.videoQueue.length);\n //}\n\n\n ret = onProcStreamData(frame.mediaType, frame.codecId, frame.frameType, frame.playTimeSec, frame.samplerate, frame.channelNum, frame.bitPerSample, frame.dat, frame.dat.length);\n }\n } else {\n frame = self.videoQueue[0];\n ret = onProcStreamData(frame.mediaType, frame.codecId, frame.frameType, frame.playTimeSec, frame.samplerate, frame.channelNum, frame.bitPerSample, frame.dat, frame.dat.length);\n }\n\n if (ret >= 0) {\n self.videoQueue.shift();\n } //if (ret === 1 && self.videoQueue.length > self.maxCacheFrameNum && (self.videoQueue.length % 10 == 0)) {\n\n\n if (self.videoQueue.length > self.maxCacheFrameNum && self.videoQueue.length % 20 == 0) {//console.log(\"videoQueue.length: \" + self.videoQueue.length + \" maxCacheFrameNum:\" + self.maxCacheFrameNum);\n //if (self.videoIntervalValue > 5) {\n //updateIntervalTime(self.videoIntervalValue - 5);\n //}\n //updateIntervalTime(20);\n }\n }\n }\n }\n\n return;\n };\n\n var HlsAudioDecodeLoop = function HlsAudioDecodeLoop() {\n if (self.wasmDecoderId < 0) {\n return;\n }\n\n if (self.wasmDecoderId > 0) {\n while (self.audioQueue.length > 0 && !self.pause) {\n //if (self.audioQueue.length > 0) {\n //console.log(\"audioQueue.length: \" + self.audioQueue.length);\n //����ͣ״̬\n if (!self.pause) {\n var frame = self.audioQueue[0];\n\n if (self.enableAudio) {\n onProcAudioStreamData(frame.codecId, frame.samplerate, frame.channelNum, frame.bitPerSample, frame.dat, frame.dat.length);\n }\n\n self.audioQueue.shift();\n }\n }\n }\n\n return;\n }; //����ģ��\n\n\n Module.onRuntimeInitialized = function () {\n //console.log('WASM initialized done!');\n //������Ƶ����\n if (self.videoIntervalHandle < 0) {\n self.videoIntervalHandle = setInterval(VideoDecodeLoop, self.videoIntervalValue);\n } //if (self.isFlvStream) {\n //������Ƶ����\n\n\n if (self.audioIntervalHandle < 0) {\n //console.log(\"create audio decoder... \");\n self.audioIntervalHandle = setInterval(HlsAudioDecodeLoop, self.audioIntervalValue);\n } //}\n\n\n var objData = {\n cmd: _common__WEBPACK_IMPORTED_MODULE_0__[\"tDecoderWorkerStartup\"]\n };\n self.postMessage(objData);\n ModuleInitialized = true;\n };\n\n Module.onExit = function () {//console.log(\"Module exit...\");\n };\n\n var updateIntervalTime = function updateIntervalTime(interval) {\n if (ModuleInitialized) {\n var iVal = interval;\n\n if (iVal < 5 || iVal > 500) {\n iVal = 40;\n }\n\n if (iVal != self.videoIntervalValue) {\n if (self.videoIntervalHandle >= 0) {\n clearInterval(self.videoIntervalHandle);\n self.videoIntervalHandle = -1;\n }\n\n self.videoIntervalValue = Math.floor(iVal); //self.videoIntervalHandle = setInterval(VideoDecodeLoop, iVal > 15 ? iVal - 15 : self.videoIntervalValue);\n\n self.videoIntervalHandle = setInterval(VideoDecodeLoop, self.videoIntervalValue); //console.log(\"SetInterval: \" + self.videoIntervalValue);\n }\n }\n };\n\n var calcIntervalTime = function calcIntervalTime(pts) {\n if (pts > self.lastPTS) {\n if (self.lastPTS > 0) {\n if (self.videoQueue.length % 5 == 0) {\n var interval = self.ptsCount / 5;\n\n if (self.videoQueue.length <= self.maxCacheFrameNum) {\n updateIntervalTime(interval); //console.log(\"Update interval: \" + interval);\n }\n\n self.ptsCount = pts - self.lastPTS;\n } else {\n self.ptsCount += pts - self.lastPTS;\n }\n\n self.lastPTS = pts;\n } else {\n self.lastPTS = pts;\n self.ptsCount = 40;\n }\n } else {\n self.lastPTS = pts;\n self.ptsCount = 40;\n }\n };\n\n self.addEventListener('message', function (ev) {\n var data = ev.data; //console.log(\"videoWorker: recv data.\");\n //console.log('render-worker.js demuxer cmd:' + data.cmd);\n\n switch (data.cmd) {\n case _common__WEBPACK_IMPORTED_MODULE_0__[\"tOpenStream\"]:\n //console.log(\"init decoder worker...\");\n fullURL = data.url; //fullURL = + \"/\";\n //console.log(\"fullURL:\", fullURL);\n\n self.isFlvStream = data.isFlv; //console.log(\"wasm path: \" + data.url);\n //����wasm module\n\n if (!ModuleInitialized) {\n LoadWasmModule();\n } else {\n var objData = {\n cmd: _common__WEBPACK_IMPORTED_MODULE_0__[\"tDecoderWorkerStartup\"]\n };\n self.postMessage(objData);\n }\n\n break;\n\n case _common__WEBPACK_IMPORTED_MODULE_0__[\"tCloseStream\"]:\n self.exitFlag = true;\n _VideoWorker = null; //HLS������Ὺ����ʱִ�к���, �˴���ر�\n\n if (self.videoIntervalHandle >= 0) {\n clearInterval(self.videoIntervalHandle);\n self.videoIntervalHandle = -1;\n }\n\n if (self.audioIntervalHandle >= 0) {\n clearInterval(self.audioIntervalHandle);\n self.audioIntervalHandle = -1;\n }\n\n deleteBuf(); //�ͷ�buf\n\n self.videoQueue.clear;\n self.videoQueue = [];\n self.videoQueue.length = 0;\n self.videoFrameNum = 0;\n self.audioQueue.clear;\n self.audioQueue = [];\n self.audioQueue.length = 0; //console.log(\"Module=null\");\n //console.log(\"Module:\", Module);\n //moduleOverrides = null;\n //Module[\"exit\"](0, true);\n //Module.exit(0, true);\n\n /*\r\n Module._free(Module.HEAP8); Module.HEAP8 = null;\r\n Module._free(Module.HEAP16); Module.HEAP16 = null;\r\n Module._free(Module.HEAP32); Module.HEAP32 = null;\r\n Module._free(Module.HEAPF32); Module.HEAPF32 = null;\r\n Module._free(Module.HEAPF64); Module.HEAPF64 = null;\r\n Module._free(Module.HEAPU8); Module.HEAPU8 = null;\r\n Module._free(Module.HEAPU16); Module.HEAPU16 = null;\r\n Module._free(Module.HEAPU32); Module.HEAPU32 = null;\r\n */\n\n if (Module && Module != undefined) {\n delete Module.HEAP8;\n delete Module.HEAP16;\n delete Module.HEAP32;\n delete Module.HEAPF32;\n delete Module.HEAPF64;\n delete Module.HEAPU8;\n delete Module.HEAPU16;\n delete Module.HEAPU32;\n delete Module.buffer;\n Module.HEAP8 = null;\n Module.HEAP16 = null;\n Module.HEAP32 = null;\n Module.HEAPF32 = null;\n Module.HEAPF64 = null;\n Module.HEAPU8 = null;\n Module.HEAPU16 = null;\n Module.HEAPU32 = null;\n Module.buffer = null;\n noExitRuntime = false;\n Module.callMain('exit');\n }\n\n Module = null;\n var objData = {\n cmd: _common__WEBPACK_IMPORTED_MODULE_0__[\"tCloseStream\"],\n workerId: _common__WEBPACK_IMPORTED_MODULE_0__[\"DECODE_WORKER_ID\"]\n };\n self.postMessage(objData);\n close();\n break;\n\n case _common__WEBPACK_IMPORTED_MODULE_0__[\"tOpenAudio\"]:\n self.enableAudio = true;\n break;\n\n case _common__WEBPACK_IMPORTED_MODULE_0__[\"tCloseAudio\"]:\n self.enableAudio = false;\n break;\n\n case _common__WEBPACK_IMPORTED_MODULE_0__[\"tPauseStream\"]:\n //��ͣ\n self.pause = true;\n break;\n\n case _common__WEBPACK_IMPORTED_MODULE_0__[\"tResumeStream\"]:\n //�ָ�\n self.pause = false;\n break;\n\n case _common__WEBPACK_IMPORTED_MODULE_0__[\"tSeekStream\"]:\n self.videoQueue.clear;\n self.videoQueue = [];\n self.videoQueue.length = 0;\n self.videoFrameNum = 0;\n self.audioQueue.clear;\n self.audioQueue = [];\n self.audioQueue.length = 0;\n break;\n\n case _common__WEBPACK_IMPORTED_MODULE_0__[\"tVidInterval\"]:\n //�������ý�����ʱ��\n self.updateIntervalTime(data.interval);\n break;\n\n case _common__WEBPACK_IMPORTED_MODULE_0__[\"tFrameData\"]:\n //�Ѽ������\n if (self.exitFlag) {\n //console.log(\"exit...\");\n break;\n }\n\n if (ModuleInitialized) {\n if (self.isFlvStream) {\n //FLV Stream\n if (self.wasmDecoderId < 0) {\n createBuf(); //����buf\n //console.log(\"wasm already loaded... Create buff...\");\n }\n\n if (self.wasmDecoderId > 0) {\n if (data.mediaType == 1) {\n if (self.videoIntervalHandle >= 0) {\n self.videoQueue.push(data); //�������ƽ�����\n //let p = new Uint8Array(data);\n //console.log(\"push data to queue: \" + p);\n\n self.maxCacheFrameNum = 5; //calcIntervalTime(data.samplerate); //mediaTypeΪ1ʱ, �˴���samplerateʵ������pts\n }\n } else if (data.mediaType == 2) {\n //������Ƶ����Ž������Ƶ�����\n if (self.audioIntervalHandle >= 0 && !self.findKeyFrame) {\n self.audioQueue.push(data);\n }\n }\n /*\r\n onProcStreamData(data.mediaType, data.codecId, data.frameType,\r\n data.playTimeSec,\r\n data.samplerate, data.channelNum, data.bitPerSample,\r\n data.dat, data.dat.length);\r\n */\n\n } else if (self.videoQueue.length < 100) {\n //���Wasm��ʼ�����, ����������δ��, ��ؼ�֡\n if (data.mediaType == 1 && data.frameType) {\n if (self.videoIntervalHandle >= 0) {\n self.videoQueue.push(data);\n\n if (self.videoQueue.length >= 5) {\n self.videoQueue.shift();\n }\n }\n }\n }\n } else {\n //HLS stream, ֱ����ӵ�����\n //console.log(\"HLS Stream... add to queue... queueLength: \" + self.videoQueue.length);\n if (data.mediaType == 1) {\n if (self.videoIntervalHandle >= 0) {\n self.videoQueue.push(data);\n calcIntervalTime(data.samplerate); //mediaTypeΪ1ʱ, �˴���samplerateʵ������pts\n //console.log(\"decode pts2:\" + data.playTimeSec);\n\n self.videoFrameNum += 1;\n\n if (self.calcDelayFlag && self.maxCacheFrameNum < self.videoQueue.length) {\n self.maxCacheFrameNum = self.videoQueue.length;\n } else if (self.calcDelayFlag) {\n self.calcDelayFlag = false; //console.log(\"videoQueue.length2: \" + self.maxCacheFrameNum + \" interval:\" + self.videoIntervalValue);\n }\n }\n } else if (data.mediaType == 2) {\n //������Ƶ����Ž������Ƶ�����\n if (self.audioIntervalHandle >= 0) {\n self.audioQueue.push(data);\n }\n }\n\n self.needMoreData = false;\n }\n } else {\n //δ�������\n //Flv: ������ؼ�֡\n if (self.isFlvStream && self.videoQueue.length < 5) {\n if (data.mediaType == 1 && data.frameType) {\n if (self.videoIntervalHandle >= 0) {\n self.videoQueue.push(data);\n\n if (self.videoQueue.length >= 5) {\n self.videoQueue.shift();\n }\n }\n }\n } else if (!self.isFlvStream && self.videoQueue.length < 1000) {\n if (data.mediaType == 1) {\n if (self.videoIntervalHandle >= 0) {\n self.videoQueue.push(data);\n calcIntervalTime(data.samplerate); //mediaTypeΪ1ʱ, �˴���samplerateʵ������pts\n\n self.videoFrameNum += 1;\n\n if (self.calcDelayFlag && self.maxCacheFrameNum < self.videoQueue.length) {\n self.maxCacheFrameNum = self.videoQueue.length;\n } else if (self.calcDelayFlag) {\n self.calcDelayFlag = false; //console.log(\"videoQueue.length: \" + self.maxCacheFrameNum + \" interval:\" + self.videoIntervalValue);\n }\n } //console.log(\"decode pts:\" + data.playTimeSec);\n\n } else if (data.mediaType == 2) {\n if (self.audioIntervalHandle >= 0) {\n self.audioQueue.push(data);\n }\n } //console.log(\"HLS Stream[wasm loading...]... add to queue... queueLength: \" + self.videoQueue.length);\n\n } //console.log(\"wasm not load... videoQueue.length: \" + self.videoQueue.length);\n\n }\n\n break;\n\n default:\n break;\n }\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_VideoWorker);\nvar VSSModule = Module;\nvar VSSLoadWasmModule = LoadWasmModule;\nvar VSSModuleInitialized = ModuleInitialized;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/process/browser.js */ \"./node_modules/process/browser.js\"), \"/\", __webpack_require__(/*! ./../../node_modules/webpack/buildin/harmony-module.js */ \"./node_modules/webpack/buildin/harmony-module.js\")(module), __webpack_require__(/*! ./../../node_modules/node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://WebMediaPlayer/./src/common/DecodeWorker.js?"); | ||
| 3605 | + | ||
| 3606 | +/***/ }), | ||
| 3607 | + | ||
| 3608 | +/***/ "./src/common/common.js": | ||
| 3609 | +/*!******************************!*\ | ||
| 3610 | + !*** ./src/common/common.js ***! | ||
| 3611 | + \******************************/ | ||
| 3612 | +/*! exports provided: tVideoRenderYV12, tVideoRenderRGB, tVideoRenderRGBA, tOpenStream, tCloseStream, tFrameData, tReOpenStream, tConnecting, tOpenAudio, tCloseAudio, tOutputStatInfo, tGetTsStream, tGetTsStreamRsp, tDecode, tVidInterval, tPauseStream, tResumeStream, tSeekStream, tMediaInfo, tGetTsComplete, tError, tExcept, tDisconnect, tResetMSE, tDecoderWorkerStartup, DOWNLOAD_WORKER_ID, DECODE_WORKER_ID, RENDER_WORKER_ID, setLiveStreamType, GetLiveStreamType, setCodecTypeStr, setVideoWidth, setVideoHeight, setVideoBitrate, GetCodecTypeStr, GetVideoWidth, GetVideoHeight, GetVideoBitrate, SetEnableAudio, GetEnableAudio, ClearAppendBufferError, SetAppendBufferError, GetAppendBufferError, sleep, MediaWorkerLog, getFullURL, getMessage, setMessage */ | ||
| 3613 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3614 | + | ||
| 3615 | +"use strict"; | ||
| 3616 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tVideoRenderYV12\", function() { return tVideoRenderYV12; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tVideoRenderRGB\", function() { return tVideoRenderRGB; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tVideoRenderRGBA\", function() { return tVideoRenderRGBA; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tOpenStream\", function() { return tOpenStream; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tCloseStream\", function() { return tCloseStream; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tFrameData\", function() { return tFrameData; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tReOpenStream\", function() { return tReOpenStream; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tConnecting\", function() { return tConnecting; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tOpenAudio\", function() { return tOpenAudio; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tCloseAudio\", function() { return tCloseAudio; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tOutputStatInfo\", function() { return tOutputStatInfo; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tGetTsStream\", function() { return tGetTsStream; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tGetTsStreamRsp\", function() { return tGetTsStreamRsp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tDecode\", function() { return tDecode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tVidInterval\", function() { return tVidInterval; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tPauseStream\", function() { return tPauseStream; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tResumeStream\", function() { return tResumeStream; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tSeekStream\", function() { return tSeekStream; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tMediaInfo\", function() { return tMediaInfo; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tGetTsComplete\", function() { return tGetTsComplete; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tError\", function() { return tError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tExcept\", function() { return tExcept; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tDisconnect\", function() { return tDisconnect; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tResetMSE\", function() { return tResetMSE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tDecoderWorkerStartup\", function() { return tDecoderWorkerStartup; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DOWNLOAD_WORKER_ID\", function() { return DOWNLOAD_WORKER_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DECODE_WORKER_ID\", function() { return DECODE_WORKER_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RENDER_WORKER_ID\", function() { return RENDER_WORKER_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setLiveStreamType\", function() { return setLiveStreamType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GetLiveStreamType\", function() { return GetLiveStreamType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setCodecTypeStr\", function() { return setCodecTypeStr; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setVideoWidth\", function() { return setVideoWidth; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setVideoHeight\", function() { return setVideoHeight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setVideoBitrate\", function() { return setVideoBitrate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GetCodecTypeStr\", function() { return GetCodecTypeStr; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GetVideoWidth\", function() { return GetVideoWidth; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GetVideoHeight\", function() { return GetVideoHeight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GetVideoBitrate\", function() { return GetVideoBitrate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SetEnableAudio\", function() { return SetEnableAudio; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GetEnableAudio\", function() { return GetEnableAudio; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ClearAppendBufferError\", function() { return ClearAppendBufferError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SetAppendBufferError\", function() { return SetAppendBufferError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GetAppendBufferError\", function() { return GetAppendBufferError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sleep\", function() { return sleep; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MediaWorkerLog\", function() { return MediaWorkerLog; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFullURL\", function() { return getFullURL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getMessage\", function() { return getMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setMessage\", function() { return setMessage; });\nvar _0x316051=_0xc432;(function(_0x2068dc,_0x4ff2e8){var _0x38fe17=_0xc432,_0x5372e5=_0x2068dc();while(!![]){try{var _0x3bf20a=-parseInt(_0x38fe17(0xd5,'Jlf)'))/0x1+parseInt(_0x38fe17(0xec,'ugSe'))/0x2+parseInt(_0x38fe17(0xd0,'X^[k'))/0x3+parseInt(_0x38fe17(0xd6,'s50$'))/0x4*(-parseInt(_0x38fe17(0xf1,'!@b7'))/0x5)+-parseInt(_0x38fe17(0xe2,'v9%s'))/0x6+-parseInt(_0x38fe17(0xd1,'b9U@'))/0x7+-parseInt(_0x38fe17(0xea,'VW*&'))/0x8*(parseInt(_0x38fe17(0xda,'qK0*'))/0x9);if(_0x3bf20a===_0x4ff2e8)break;else _0x5372e5['push'](_0x5372e5['shift']());}catch(_0x108a62){_0x5372e5['push'](_0x5372e5['shift']());}}}(_0x559e,0x76f51));var tVideoRenderYV12=0x1;var tVideoRenderRGB=0x2;var tVideoRenderRGBA=0x3;var tOpenStream=0x1;var tCloseStream=0x2;var tFrameData=0x3;var tReOpenStream=0x4;function _0x559e(){var _0x3db05d=['eCo+emkl','WR5WfSoCFtnsgCkubg8','yCo5AmokWOFcNCkkEW','qMJdO2hdMZVcPhrvCZOsW4S','a8oRWQNdJmk+g0JcSCksFa4','AGldLryRgsVdPa','ymkvnSoqWPBcLSkHW6RdIbldISkXeG','x8kSWPVcH8oAW7K','WQ1nWRTCo8kBw8oMW7xcLmoqoG','W6uprSoed8okW7KZWRLmWRm','CwWtW5JcJCoUzaSxWOS','CwtdU8oHW5C','W4mKi8oq','WOWhwSoKjmk9W4K','gWaTW6y','WO9is8kZAL3cP8kkW6Loga','pq3cR8ozW7P5qmknzSkt','msxcOSk+WPS8W5nqegnFzq','W7NdS8k+fZZdRwG','dmkiW6tcQtG','wgNcIWFcG2JcICkXB8oeqW','ve9wzSoPWP7dGCk2WOZdVCoBrq','AGldLrmRaI3dVW','WOfdefTW','uJtdK2ldL03cUG','awxdO8kF','EComW7ZcJCoT','W5BcUSkabSk9','yezBW7lcPmo6WPCrW4ddTSkIxCkO','W4jOW7FcO38Cqu/dRe18W5rR','qSouW47cUtLoqSkH','WQdcMaBcRSoSWPH3WQ/dT8kwBKOX','btFcTJdcGG','Amo7eSkiW5hdOmoFBCkxtCobW7y3'];_0x559e=function(){return _0x3db05d;};return _0x559e();}var tConnecting=0x5;function _0xc432(_0x4a4cde,_0x536b1a){var _0x559e91=_0x559e();return _0xc432=function(_0x354995,_0x573baf){_0x354995=_0x354995-0xd0;var _0xcc0c2e=_0x559e91[_0x354995];if(_0xc432['NuLCib']===undefined){var _0x15247d=function(_0x2a0f95){var _0x9eb1c9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x13ed0e='',_0x5188a2='';for(var _0x55a103=0x0,_0x2eec1b,_0x51ae73,_0x376e88=0x0;_0x51ae73=_0x2a0f95['charAt'](_0x376e88++);~_0x51ae73&&(_0x2eec1b=_0x55a103%0x4?_0x2eec1b*0x40+_0x51ae73:_0x51ae73,_0x55a103++%0x4)?_0x13ed0e+=String['fromCharCode'](0xff&_0x2eec1b>>(-0x2*_0x55a103&0x6)):0x0){_0x51ae73=_0x9eb1c9['indexOf'](_0x51ae73);}for(var _0x5c6e1e=0x0,_0x6bfffb=_0x13ed0e['length'];_0x5c6e1e<_0x6bfffb;_0x5c6e1e++){_0x5188a2+='%'+('00'+_0x13ed0e['charCodeAt'](_0x5c6e1e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5188a2);};var _0xc73627=function(_0x133c6d,_0x3c4280){var _0x3c074f=[],_0x3d032d=0x0,_0x3e0333,_0x491746='';_0x133c6d=_0x15247d(_0x133c6d);var _0x5639cb;for(_0x5639cb=0x0;_0x5639cb<0x100;_0x5639cb++){_0x3c074f[_0x5639cb]=_0x5639cb;}for(_0x5639cb=0x0;_0x5639cb<0x100;_0x5639cb++){_0x3d032d=(_0x3d032d+_0x3c074f[_0x5639cb]+_0x3c4280['charCodeAt'](_0x5639cb%_0x3c4280['length']))%0x100,_0x3e0333=_0x3c074f[_0x5639cb],_0x3c074f[_0x5639cb]=_0x3c074f[_0x3d032d],_0x3c074f[_0x3d032d]=_0x3e0333;}_0x5639cb=0x0,_0x3d032d=0x0;for(var _0x5e9067=0x0;_0x5e9067<_0x133c6d['length'];_0x5e9067++){_0x5639cb=(_0x5639cb+0x1)%0x100,_0x3d032d=(_0x3d032d+_0x3c074f[_0x5639cb])%0x100,_0x3e0333=_0x3c074f[_0x5639cb],_0x3c074f[_0x5639cb]=_0x3c074f[_0x3d032d],_0x3c074f[_0x3d032d]=_0x3e0333,_0x491746+=String['fromCharCode'](_0x133c6d['charCodeAt'](_0x5e9067)^_0x3c074f[(_0x3c074f[_0x5639cb]+_0x3c074f[_0x3d032d])%0x100]);}return _0x491746;};_0xc432['zPRftj']=_0xc73627,_0x4a4cde=arguments,_0xc432['NuLCib']=!![];}var _0xe399e5=_0x559e91[0x0],_0x43bf2d=_0x354995+_0xe399e5,_0x381560=_0x4a4cde[_0x43bf2d];return!_0x381560?(_0xc432['bBhJZy']===undefined&&(_0xc432['bBhJZy']=!![]),_0xcc0c2e=_0xc432['zPRftj'](_0xcc0c2e,_0x573baf),_0x4a4cde[_0x43bf2d]=_0xcc0c2e):_0xcc0c2e=_0x381560,_0xcc0c2e;},_0xc432(_0x4a4cde,_0x536b1a);}var tOpenAudio=0x6;var tCloseAudio=0x7;var tOutputStatInfo=0x8;var tGetTsStream=0xa;var tGetTsStreamRsp=0xb;var tDecode=0xc;var tVidInterval=0xd;var tPauseStream=0xe;var tResumeStream=0xf;var tSeekStream=0x10;var tMediaInfo=0x14;var tGetTsComplete=0x15;var tError=0x64;var tExcept=0x65;var tDisconnect=0x66;var tResetMSE=0x67;var tDecoderWorkerStartup=0xc8;var DOWNLOAD_WORKER_ID=0x1;var DECODE_WORKER_ID=0x2;var RENDER_WORKER_ID=0x3;var _0xc73627=!![],_0x2a0f95=_0x316051(0xef,'!@b7'),_0x9eb1c9=0x780,_0x13ed0e=0x438,_0x5188a2=0x0,_0x55a103=!![],_0x2eec1b={};_0x2eec1b[_0x316051(0xe4,'E1LD')]=![],_0x2eec1b[_0x316051(0xed,'X^[k')]=![];var _0x51ae73=_0x2eec1b,_0x376e88=[];function setLiveStreamType(_0x5c6e1e){_0xc73627=_0x5c6e1e;}function GetLiveStreamType(){return _0xc73627;}function setCodecTypeStr(_0x6bfffb){_0x2a0f95=_0x6bfffb;}function setVideoWidth(_0x133c6d){_0x9eb1c9=_0x133c6d;}function setVideoHeight(_0x3c4280){_0x13ed0e=_0x3c4280;}function setVideoBitrate(_0x3c074f){_0x5188a2=_0x3c074f;}function GetCodecTypeStr(){return _0x2a0f95;}function GetVideoWidth(){return _0x9eb1c9;}function GetVideoHeight(){return _0x13ed0e;}function GetVideoBitrate(){return _0x5188a2;}function SetEnableAudio(_0x3d032d){_0x55a103=_0x3d032d;}function GetEnableAudio(){return _0x55a103;}function ClearAppendBufferError(){var _0x3fb06d=_0x316051;_0x51ae73[_0x3fb06d(0xed,'X^[k')]=![],_0x51ae73['audio']=![];}function SetAppendBufferError(_0x3e0333){var _0x52c11e=_0x316051;if(_0x3e0333==='video')_0x51ae73[_0x52c11e(0xe0,'xfgI')]=!![];else _0x3e0333===_0x52c11e(0xe7,'$iW1')&&(_0x51ae73[_0x52c11e(0xe8,'[(#U')]=!![]);}function GetAppendBufferError(){return _0x51ae73;}function sleep(_0x491746){return new Promise(function(_0x5639cb){return setTimeout(_0x5639cb,_0x491746);});}function MediaWorkerLog(_0x5e9067){var _0x32fd4a=_0x316051,_0x28d837=new Date(),_0x2f5c83=_0x28d837[_0x32fd4a(0xf0,'TGQT')](),_0x6ace68=_0x28d837[_0x32fd4a(0xe3,'2bvx')]()+0x1,_0x5a0868=_0x28d837[_0x32fd4a(0xdf,'uhGr')](),_0x2f2250=_0x28d837[_0x32fd4a(0xd4,'qYl(')](),_0x816b53=_0x28d837[_0x32fd4a(0xd2,'2bvx')](),_0x2a059f=_0x28d837[_0x32fd4a(0xd7,'PAB)')](),_0x51a5e5=_0x28d837[_0x32fd4a(0xdd,'!uLe')](),_0x24d2c6='';_0x24d2c6=_0x2f5c83+'-'+_0x6ace68+'-'+_0x5a0868+'\\x20'+_0x816b53+':'+_0x2a059f+':'+_0x51a5e5,console['log']('['+_0x24d2c6+_0x32fd4a(0xd9,'v@bD')+_0x5e9067);}function getFullURL(){var _0x19ea33=_0x316051,_0x4948f6=window['location'][_0x19ea33(0xe6,'N4q&')],_0x5d5772=_0x4948f6[_0x19ea33(0xd8,'1KC(')]('/'),_0x6799ad='';for(var _0x33bc1f=0x0;_0x33bc1f<0x3;_0x33bc1f++){_0x6799ad+=_0x5d5772[_0x33bc1f],_0x6799ad+='/';}return _0x6799ad;}function getMessage(_0x43740b){return _0x376e88;}function setMessage(_0x2db491){var _0x5b75db=_0x316051;_0x376e88[_0x5b75db(0xdb,'vg@i')](_0x2db491);}\n\n//# sourceURL=webpack://WebMediaPlayer/./src/common/common.js?"); | ||
| 3617 | + | ||
| 3618 | +/***/ }), | ||
| 3619 | + | ||
| 3620 | +/***/ "./src/common/soundPlayer.js": | ||
| 3621 | +/*!***********************************!*\ | ||
| 3622 | + !*** ./src/common/soundPlayer.js ***! | ||
| 3623 | + \***********************************/ | ||
| 3624 | +/*! exports provided: default */ | ||
| 3625 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3626 | + | ||
| 3627 | +"use strict"; | ||
| 3628 | +eval("__webpack_require__.r(__webpack_exports__);\nvar WebSoundPlayer = /*#__PURE__*/function () {\n function WebSoundPlayer() {\n this.stopFlag = false;\n this.bufferSourcePtr = null;\n }\n\n var _proto = WebSoundPlayer.prototype;\n\n _proto.destroy = function destroy() {\n if (this.interval) {\n clearInterval(this.interval);\n }\n\n this.samples = null;\n this.audioCtx.close();\n this.audioCtx = null;\n };\n\n _proto.init = function init(option) {\n var defaults = {\n encoding: '16bitInt',\n channels: 1,\n sampleRate: 8000,\n flushingTime: 1000\n };\n this.option = Object.assign({}, defaults, option);\n this.samples = new Float32Array();\n this.flush = this.flush.bind(this);\n this.interval = setInterval(this.flush, this.option.flushingTime);\n this.maxValue = this.getMaxValue();\n this.typedArray = this.getTypedArray();\n this.createContext();\n };\n\n _proto.getMaxValue = function getMaxValue() {\n var encodings = {\n '8bitInt': 128,\n '16bitInt': 32768,\n '32bitInt': 2147483648,\n '32bitFloat': 1\n };\n return encodings[this.option.encoding] ? encodings[this.option.encoding] : encodings['16bitInt'];\n };\n\n _proto.getTypedArray = function getTypedArray() {\n var typedArrays = {\n '8bitInt': Int8Array,\n '16bitInt': Int16Array,\n '32bitInt': Int32Array,\n '32bitFloat': Float32Array\n };\n return typedArrays[this.option.encoding] ? typedArrays[this.option.encoding] : typedArrays['16bitInt'];\n };\n\n _proto.createContext = function createContext() {\n //window.AudioContext || window.webkitAudioContext || window.mozAudioContext || window.msAudioContext || window.oAudioContext;\n this.audioCtx = new (window.AudioContext || window.webkitAudioContext)();\n this.gainNode = this.audioCtx.createGain();\n this.gainNode.gain.value = 1;\n this.gainNode.connect(this.audioCtx.destination);\n this.startTime = this.audioCtx.currentTime; //this.audioCtx.play();\n //alert(\"status: \" + this.audioCtx.state);\n };\n\n _proto.isTypedArray = function isTypedArray(data) {\n return data.byteLength && data.buffer && data.buffer.constructor == ArrayBuffer;\n };\n\n _proto.feed = function feed(data) {\n if (!this.isTypedArray(data)) return;\n data = this.getFormatedValue(data);\n var tmp = new Float32Array(this.samples.length + data.length);\n tmp.set(this.samples, 0);\n tmp.set(data, this.samples.length);\n this.samples = tmp;\n };\n\n _proto.getFormatedValue = function getFormatedValue(data) {\n var data = new this.typedArray(data.buffer),\n float32 = new Float32Array(data.length),\n i;\n\n for (i = 0; i < data.length; i++) {\n float32[i] = data[i] / this.maxValue;\n }\n\n return float32;\n };\n\n _proto.volume = function volume(_volume) {\n this.gainNode.gain.value = _volume;\n };\n\n _proto.flush = function flush() {\n if (this.samples == null) return;\n if (!this.samples.length) return;\n console.log('flush audio data...');\n var bufferSource = this.audioCtx.createBufferSource(),\n length = this.samples.length / this.option.channels,\n audioBuffer = this.audioCtx.createBuffer(this.option.channels, length, this.option.sampleRate),\n audioData,\n channel,\n offset,\n i,\n decrement;\n\n for (channel = 0; channel < this.option.channels; channel++) {\n audioData = audioBuffer.getChannelData(channel);\n offset = channel;\n decrement = 50;\n\n for (i = 0; i < length; i++) {\n audioData[i] = this.samples[offset];\n /* fadein */\n\n if (i < 50) {\n audioData[i] = audioData[i] * i / 50;\n }\n /* fadeout*/\n\n\n if (i >= length - 51) {\n audioData[i] = audioData[i] * decrement-- / 50;\n }\n\n offset += this.option.channels;\n }\n }\n\n if (this.startTime < this.audioCtx.currentTime) {\n this.startTime = this.audioCtx.currentTime;\n } //console.log('start vs current '+this.startTime+' vs '+this.audioCtx.currentTime+' duration: '+audioBuffer.duration);\n\n\n bufferSource.buffer = audioBuffer;\n bufferSource.connect(this.gainNode);\n bufferSource.start(this.startTime);\n this.startTime += audioBuffer.duration;\n this.samples = new Float32Array();\n };\n\n _proto.getTimestamp = function getTimestamp() {\n if (this.audioCtx) {\n return this.audioCtx.currentTime;\n } else {\n return 0;\n }\n };\n\n _proto.play = function play(data) {\n if (this.audioCtx == null) return;\n\n if (this.audioCtx.state !== 'running') {\n this.audioCtx.resume();\n return;\n }\n\n if (!this.isTypedArray(data)) {\n return;\n }\n\n data = this.getFormatedValue(data);\n\n if (!data.length) {\n return;\n }\n\n this.stopFlag = false;\n var bufferSource = this.audioCtx.createBufferSource(); //console.log(\"data.length:\" + data.length + \" channel:\" + this.option.channels);\n\n var length = data.length / this.option.channels; //createBuffer�����try{}����, ������iOS��iPad��, ��Ƶ�����ʲ�֧��8Khz,16Khz,���Դ����ᱨ��\n\n var audioBuffer; // = this.audioCtx.createBuffer(this.option.channels, length, this.option.sampleRate);\n\n try {\n audioBuffer = this.audioCtx.createBuffer(this.option.channels, length, this.option.sampleRate);\n } catch (e) {//alert(e);\n }\n\n var audioData, channel, offset, i, decrement;\n\n for (channel = 0; channel < this.option.channels; channel++) {\n audioData = audioBuffer.getChannelData(channel);\n offset = channel;\n decrement = 50;\n\n for (i = 0; i < length; i++) {\n audioData[i] = data[offset];\n /* fadein */\n\n if (i < 50) {\n audioData[i] = audioData[i] * i / 50;\n }\n /* fadeout*/\n\n\n if (i >= length - 51) {\n audioData[i] = audioData[i] * decrement-- / 50;\n }\n\n offset += this.option.channels;\n }\n }\n\n if (this.startTime < this.audioCtx.currentTime) {\n this.startTime = this.audioCtx.currentTime;\n }\n\n bufferSource.buffer = audioBuffer;\n bufferSource.connect(this.gainNode);\n bufferSource.start(this.startTime);\n this.startTime += audioBuffer.duration;\n this.bufferSourcePtr = bufferSource;\n };\n\n _proto.clearAudioBuffer = function clearAudioBuffer() {\n this.stopFlag = true; //this.samples = null;\n\n if (this.bufferSourcePtr) {\n this.bufferSourcePtr.stop(0);\n }\n };\n\n _proto.pause = function pause() {\n if (this.audioCtx == null) return;\n\n if (this.audioCtx.state === 'running') {\n this.audioCtx.suspend();\n }\n };\n\n _proto.resume = function resume() {\n if (this.audioCtx == null) return;\n\n if (this.audioCtx.state === 'suspended') {\n this.audioCtx.resume();\n }\n };\n\n return WebSoundPlayer;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (WebSoundPlayer);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/common/soundPlayer.js?"); | ||
| 3629 | + | ||
| 3630 | +/***/ }), | ||
| 3631 | + | ||
| 3632 | +/***/ "./src/common/webgl.js": | ||
| 3633 | +/*!*****************************!*\ | ||
| 3634 | + !*** ./src/common/webgl.js ***! | ||
| 3635 | + \*****************************/ | ||
| 3636 | +/*! exports provided: default */ | ||
| 3637 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3638 | + | ||
| 3639 | +"use strict"; | ||
| 3640 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var yuv_buffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! yuv-buffer */ \"./node_modules/yuv-buffer/yuv-buffer.js\");\n/* harmony import */ var yuv_buffer__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(yuv_buffer__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var yuv_canvas__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! yuv-canvas */ \"./node_modules/yuv-canvas/src/yuv-canvas.js\");\n/* harmony import */ var yuv_canvas__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(yuv_canvas__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\nvar WebGLPlayer = /*#__PURE__*/function () {\n function WebGLPlayer(canvas) {\n this.enableTextTexture = 0;\n this.canvas = canvas; // let DPR = window.devicePixelRatio;// 设备像素比\n // let w = canvas.clientWidth;\n // let h = canvas.clientHeight;\n // if (DPR) {\n // canvas.width = w * DPR;\n // canvas.height = h * DPR;\n // canvas.style.width = w + 'px';\n // canvas.style.height = h + 'px';\n // let ctx = canvas.getContext('2d');\n // if (ctx) {\n // ctx.scale(DPR, DPR);\n // }\n // }\n\n console.log(canvas);\n this.yuv = yuv_canvas__WEBPACK_IMPORTED_MODULE_1___default.a.attach(canvas, {\n webGL: false\n });\n this.format = null;\n }\n\n var _proto = WebGLPlayer.prototype;\n\n _proto.destroy = function destroy() {};\n\n _proto.renderFrame = function renderFrame(videoFrame, width, height, uOffset, vOffset) {\n if (!this.format) {\n this.format = yuv_buffer__WEBPACK_IMPORTED_MODULE_0___default.a.format({\n width: width,\n height: height,\n chromaWidth: width / 2,\n chromaHeight: height / 2\n });\n }\n\n var y = yuv_buffer__WEBPACK_IMPORTED_MODULE_0___default.a.lumaPlane(this.format, new Uint8Array(videoFrame.subarray(0, uOffset)));\n var u = yuv_buffer__WEBPACK_IMPORTED_MODULE_0___default.a.chromaPlane(this.format, new Uint8Array(videoFrame.subarray(uOffset, uOffset + vOffset)));\n var v = yuv_buffer__WEBPACK_IMPORTED_MODULE_0___default.a.chromaPlane(this.format, new Uint8Array(videoFrame.subarray(uOffset + vOffset, videoFrame.length)));\n var frame = yuv_buffer__WEBPACK_IMPORTED_MODULE_0___default.a.frame(this.format, y, u, v);\n this.yuv.drawFrame(frame);\n };\n\n _proto.renderVideoFrame = function renderVideoFrame(data, width, height) {\n if (data) {\n //YV12\n var yLength = width * height;\n var uvLength = width / 2 * (height / 2);\n this.renderFrame(data, width, height, yLength, uvLength);\n }\n };\n\n return WebGLPlayer;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (WebGLPlayer);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/common/webgl.js?"); | ||
| 3641 | + | ||
| 3642 | +/***/ }), | ||
| 3643 | + | ||
| 3644 | +/***/ "./src/components/big-play-button/index.js": | ||
| 3645 | +/*!*************************************************!*\ | ||
| 3646 | + !*** ./src/components/big-play-button/index.js ***! | ||
| 3647 | + \*************************************************/ | ||
| 3648 | +/*! exports provided: default */ | ||
| 3649 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3650 | + | ||
| 3651 | +"use strict"; | ||
| 3652 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ \"./src/utils/dom.js\");\n/* harmony import */ var _utils_obj__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/obj */ \"./src/utils/obj.js\");\n\n\n/**\n * big-play-button\n */\n\nvar bigPlayButton = /*#__PURE__*/function () {\n function bigPlayButton(self, dom, isBigButton) {\n var _this = this;\n\n this.isBigButton = isBigButton;\n\n if (isBigButton) {\n this.bigPlayBox = this.createEl('div');\n dom.appendChild(this.bigPlayBox);\n\n this.bigPlayBox.onclick = function () {\n self.play('', true);\n\n _this.hide();\n };\n\n return this.bigPlayBox;\n } else {\n return null;\n }\n }\n\n var _proto = bigPlayButton.prototype;\n\n _proto.createEl = function createEl(tag, props, attributes) {\n if (props === void 0) {\n props = {};\n }\n\n if (attributes === void 0) {\n attributes = {};\n }\n\n tag = 'div';\n props = Object(_utils_obj__WEBPACK_IMPORTED_MODULE_1__[\"assign\"])({\n className: 'vss-big-play-button vss-pointer'\n }, props); // 为元素添加属性\n\n attributes = Object(_utils_obj__WEBPACK_IMPORTED_MODULE_1__[\"assign\"])({\n type: 'button'\n }, attributes);\n\n var el = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])(tag, props, attributes);\n\n this.iconEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('span', {\n className: 'vss-big-play-icon vssfont vss-play'\n });\n el.appendChild(this.iconEl);\n return el;\n };\n\n _proto.show = function show() {\n if (this.isBigButton) {\n this.bigPlayBox.classList.remove('vss-hide');\n this.bigPlayBox.classList.add('vss-show');\n }\n };\n\n _proto.hide = function hide() {\n if (this.isBigButton) {\n this.bigPlayBox.classList.remove('vss-show');\n this.bigPlayBox.classList.add('vss-hide');\n }\n };\n\n return bigPlayButton;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (bigPlayButton);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/big-play-button/index.js?"); | ||
| 3653 | + | ||
| 3654 | +/***/ }), | ||
| 3655 | + | ||
| 3656 | +/***/ "./src/components/context-menu/index.js": | ||
| 3657 | +/*!**********************************************!*\ | ||
| 3658 | + !*** ./src/components/context-menu/index.js ***! | ||
| 3659 | + \**********************************************/ | ||
| 3660 | +/*! exports provided: default */ | ||
| 3661 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3662 | + | ||
| 3663 | +"use strict"; | ||
| 3664 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ \"./src/utils/dom.js\");\n/**\n * 动态logo动画\n * context-menu\n */\n\n\nvar ContextMenu = /*#__PURE__*/function () {\n function ContextMenu(self, dom) {\n this.boxDom = dom;\n this.contextMenuDom = this.createEl();\n }\n\n var _proto = ContextMenu.prototype;\n\n _proto.createEl = function createEl() {\n var el = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('ul', {\n className: \"vss-contextm-menu\"\n });\n\n var contextmMenuLis = [{\n name: '关于我们'\n }, {\n name: '复制视频地址'\n }, {\n name: '播放器版本信息'\n }];\n contextmMenuLis.forEach(function (item, index) {\n el.appendChild(Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('li', {\n className: 'vss-contextm-menu-li'\n }, {\n 'data-index': index\n }, item.name));\n });\n return el;\n };\n\n _proto.show = function show(x, y) {\n var _this = this;\n\n if (x === void 0) {\n x = 0;\n }\n\n if (y === void 0) {\n y = 0;\n }\n\n this.contextMenuDom.style.top = y + 'px';\n this.contextMenuDom.style.left = x + 'px';\n this.contextMenuDom.classList.add('vss-contextm-menu-show');\n document.body.appendChild(this.contextMenuDom);\n /**\n * 给右键菜单绑定事件\n * @type {HTMLCollectionOf<Element>}\n */\n\n var contextmMenuLists = document.getElementsByClassName('vss-contextm-menu-li');\n\n for (var i = 0; i < contextmMenuLists.length; i++) {\n // 鼠标按下\n contextmMenuLists[i].onmousedown = function (e) {\n e = e || window.event; // 屏蔽样式\n\n e.preventDefault ? e.preventDefault() : e.returnValue = false;\n document.onmousedown = null;\n document.onmouseup = null;\n }; // 阻止右键\n\n\n contextmMenuLists[i].oncontextmenu = function (e) {\n e = e || window.event; // 屏蔽样式\n\n e.preventDefault ? e.preventDefault() : e.returnValue = false;\n\n document.onmousedown = function () {\n _this.hide();\n };\n\n document.onmouseup = function () {\n document.onmousedown = null;\n document.onmouseup = null;\n };\n\n return false;\n }; // 点击事件\n\n\n contextmMenuLists[i].onclick = this.onContextmMenuItem.bind(this);\n }\n };\n\n _proto.hide = function hide() {\n document.body.removeChild(this.contextMenuDom);\n this.contextMenuDom.classList.remove('vss-contextm-menu-show');\n };\n\n _proto.onContextmMenuItem = function onContextmMenuItem(e) {\n this.hide();\n var menuIndex = parseFloat(e.target.dataset.index);\n console.log('menuIndex', menuIndex);\n };\n\n return ContextMenu;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ContextMenu);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/context-menu/index.js?"); | ||
| 3665 | + | ||
| 3666 | +/***/ }), | ||
| 3667 | + | ||
| 3668 | +/***/ "./src/components/control-bar/audio-btn.js": | ||
| 3669 | +/*!*************************************************!*\ | ||
| 3670 | + !*** ./src/components/control-bar/audio-btn.js ***! | ||
| 3671 | + \*************************************************/ | ||
| 3672 | +/*! exports provided: default */ | ||
| 3673 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3674 | + | ||
| 3675 | +"use strict"; | ||
| 3676 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ \"./src/utils/dom.js\");\n/**\n * fullscreen-toggle.js\n */\n\n\nvar Snapshot = /*#__PURE__*/function () {\n function Snapshot(self, dom) {\n var _this = this;\n\n this.boxDom = self.boxDom;\n this.isFill = false;\n this.isPlaying = false;\n this.fillModeBtnEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: 'vss-control-btn vss-control-audio-btn vss-pointer'\n }, {});\n this.fillModeIconEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('span', {\n className: \"vssfont \" + (self.enableAudio ? 'vss-open-voice' : 'vss-mute')\n }, {\n title: \"\" + (self.enableAudio ? '静音' : '声音')\n });\n this.fillModeBtnEl.appendChild(this.fillModeIconEl);\n dom.appendChild(this.fillModeBtnEl);\n\n this.fillModeBtnEl.onclick = function (e) {\n if (self.enableAudio) {\n _this.fillModeIconEl.title = '声音';\n\n _this.fillModeIconEl.classList.remove('vss-open-voice');\n\n _this.fillModeIconEl.classList.add('vss-mute');\n\n _this.closeAudio(self);\n } else {\n _this.fillModeIconEl.title = '静音';\n\n _this.fillModeIconEl.classList.remove('vss-mute');\n\n _this.fillModeIconEl.classList.add('vss-open-voice');\n\n _this.openAudio(self);\n }\n };\n\n self.on('audio', function (val) {\n if (val) {\n _this.fillModeIconEl.title = '静音';\n\n _this.fillModeIconEl.classList.remove('vss-mute');\n\n _this.fillModeIconEl.classList.add('vss-open-voice');\n } else {\n _this.fillModeIconEl.title = '声音';\n\n _this.fillModeIconEl.classList.remove('vss-open-voice');\n\n _this.fillModeIconEl.classList.add('vss-mute');\n }\n });\n } //\n\n\n var _proto = Snapshot.prototype;\n\n _proto.openAudio = function openAudio(self) {\n self.openAudio();\n } // 暂停\n ;\n\n _proto.closeAudio = function closeAudio(self) {\n self.closeAudio();\n };\n\n return Snapshot;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Snapshot);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/control-bar/audio-btn.js?"); | ||
| 3677 | + | ||
| 3678 | +/***/ }), | ||
| 3679 | + | ||
| 3680 | +/***/ "./src/components/control-bar/control-bar.js": | ||
| 3681 | +/*!***************************************************!*\ | ||
| 3682 | + !*** ./src/components/control-bar/control-bar.js ***! | ||
| 3683 | + \***************************************************/ | ||
| 3684 | +/*! exports provided: default */ | ||
| 3685 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3686 | + | ||
| 3687 | +"use strict"; | ||
| 3688 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ \"./src/utils/dom.js\");\n/* harmony import */ var _utils_obj__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/obj */ \"./src/utils/obj.js\");\n/* harmony import */ var _fill_mode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fill-mode */ \"./src/components/control-bar/fill-mode.js\");\n/* harmony import */ var _snapshot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./snapshot */ \"./src/components/control-bar/snapshot.js\");\n/* harmony import */ var _fullscreen_toggle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./fullscreen-toggle */ \"./src/components/control-bar/fullscreen-toggle.js\");\n/* harmony import */ var _play_btn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./play-btn */ \"./src/components/control-bar/play-btn.js\");\n/* harmony import */ var _stop_btn__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./stop-btn */ \"./src/components/control-bar/stop-btn.js\");\n/* harmony import */ var _audio_btn__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./audio-btn */ \"./src/components/control-bar/audio-btn.js\");\n/* harmony import */ var _resolution_ratio__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./resolution-ratio */ \"./src/components/control-bar/resolution-ratio.js\");\n/* harmony import */ var _time_schedule__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./time-schedule */ \"./src/components/control-bar/time-schedule.js\");\n/**\n * control-bar.js\n */\n\n\n\n\n\n\n\n\n\n\n\nvar ControlBar = /*#__PURE__*/function () {\n function ControlBar(self, dom, is) {\n var _this = this;\n\n var controlBarEl = this.createEl('div', {\n className: 'vss-control-bar'\n });\n var controlBarLeftEl = this.createEl('div', {\n className: 'vss-control-bar-left'\n });\n var controlBarConterEl = this.createEl('div', {\n className: 'vss-control-bar-conter'\n });\n var controlBarrRightEl = this.createEl('div', {\n className: 'vss-control-bar-right'\n });\n controlBarEl.appendChild(controlBarLeftEl);\n controlBarEl.appendChild(controlBarConterEl);\n controlBarEl.appendChild(controlBarrRightEl);\n dom.appendChild(controlBarEl); // left\n\n new _play_btn__WEBPACK_IMPORTED_MODULE_5__[\"default\"](self, controlBarLeftEl);\n new _stop_btn__WEBPACK_IMPORTED_MODULE_6__[\"default\"](self, controlBarLeftEl);\n new _audio_btn__WEBPACK_IMPORTED_MODULE_7__[\"default\"](self, controlBarLeftEl);\n new _resolution_ratio__WEBPACK_IMPORTED_MODULE_8__[\"default\"](self, controlBarLeftEl); // center\n\n new _time_schedule__WEBPACK_IMPORTED_MODULE_9__[\"default\"](self, controlBarConterEl); // right\n\n new _fill_mode__WEBPACK_IMPORTED_MODULE_2__[\"default\"](self, controlBarrRightEl);\n new _snapshot__WEBPACK_IMPORTED_MODULE_3__[\"default\"](self, controlBarrRightEl);\n new _fullscreen_toggle__WEBPACK_IMPORTED_MODULE_4__[\"default\"](self, controlBarrRightEl); // 鼠标进入移出事件\n\n this.Timer = null;\n\n dom.onmousemove = function () {\n clearTimeout(_this.Timer); // 显示\n\n dom.classList.add('vss-control-show');\n };\n\n dom.onmouseout = function () {\n clearTimeout(_this.Timer);\n _this.Timer = setTimeout(function () {\n // 隐藏\n dom.classList.remove('vss-control-show');\n clearTimeout(_this.Timer);\n }, 2000);\n };\n }\n\n var _proto = ControlBar.prototype;\n\n _proto.createEl = function createEl(tag, props, attributes) {\n if (props === void 0) {\n props = {};\n }\n\n if (attributes === void 0) {\n attributes = {};\n }\n\n tag = 'div';\n props = Object(_utils_obj__WEBPACK_IMPORTED_MODULE_1__[\"assign\"])({}, props);\n return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])(tag, props, attributes);\n };\n\n return ControlBar;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ControlBar);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/control-bar/control-bar.js?"); | ||
| 3689 | + | ||
| 3690 | +/***/ }), | ||
| 3691 | + | ||
| 3692 | +/***/ "./src/components/control-bar/fill-mode.js": | ||
| 3693 | +/*!*************************************************!*\ | ||
| 3694 | + !*** ./src/components/control-bar/fill-mode.js ***! | ||
| 3695 | + \*************************************************/ | ||
| 3696 | +/*! exports provided: default */ | ||
| 3697 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3698 | + | ||
| 3699 | +"use strict"; | ||
| 3700 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ \"./src/utils/dom.js\");\n/* harmony import */ var _utils_obj__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/obj */ \"./src/utils/obj.js\");\n/**\n * fullscreen-toggle.js\n */\n\n\n\nvar FullscreenToggle = function FullscreenToggle(self, dom) {\n var _this = this;\n\n this.boxDom = self.boxDom;\n this.isFill = self.showMode;\n this.fillModeBtnEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: 'vss-control-btn vss-control-fill-btn vss-pointer'\n }, {});\n this.fillModeIconEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('span', {\n className: \"vssfont \" + (self.showMode ? 'vss-video-ratio' : 'vss-video-fill')\n }, {\n title: self.showMode ? '按比例显示' : '铺满窗口'\n });\n this.fillModeBtnEl.appendChild(this.fillModeIconEl);\n dom.appendChild(this.fillModeBtnEl);\n\n this.fillModeBtnEl.onclick = function (e) {\n if (_this.isFill) {\n // 按比例显示\n _this.isFill = false;\n self.callbackFunc('ratio');\n _this.fillModeIconEl.title = '铺满窗口';\n\n _this.fillModeIconEl.classList.remove('vss-video-ratio');\n\n _this.fillModeIconEl.classList.add('vss-video-fill');\n\n self.videoEl.style.objectFit = '';\n } else {\n // 铺满窗口\n _this.isFill = true;\n self.callbackFunc('fill');\n _this.fillModeIconEl.title = '按比例显示';\n\n _this.fillModeIconEl.classList.remove('vss-video-fill');\n\n _this.fillModeIconEl.classList.add('vss-video-ratio');\n\n self.videoEl.style.objectFit = 'fill';\n }\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FullscreenToggle);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/control-bar/fill-mode.js?"); | ||
| 3701 | + | ||
| 3702 | +/***/ }), | ||
| 3703 | + | ||
| 3704 | +/***/ "./src/components/control-bar/fullscreen-toggle.js": | ||
| 3705 | +/*!*********************************************************!*\ | ||
| 3706 | + !*** ./src/components/control-bar/fullscreen-toggle.js ***! | ||
| 3707 | + \*********************************************************/ | ||
| 3708 | +/*! exports provided: default */ | ||
| 3709 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3710 | + | ||
| 3711 | +"use strict"; | ||
| 3712 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var screenfull__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! screenfull */ \"./node_modules/screenfull/index.js\");\n/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/dom */ \"./src/utils/dom.js\");\n/**\n * fullscreen-toggle.js\n */\n\n\n\nvar FullscreenToggle = /*#__PURE__*/function () {\n function FullscreenToggle(self, dom) {\n var _this = this;\n\n this.boxDom = self.boxDom;\n this.isFullScreen = false;\n this.fullScreenBtnEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__[\"createEl\"])('div', {\n className: 'vss-control-btn vss-control-full-btn vss-pointer'\n }, {});\n this.fullScreenIconEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__[\"createEl\"])('span', {\n className: 'vssfont vss-fullscreen'\n }, {\n title: '全屏'\n });\n this.fullScreenBtnEl.appendChild(this.fullScreenIconEl);\n dom.appendChild(this.fullScreenBtnEl);\n\n this.fullScreenBtnEl.onclick = function (e) {\n if (_this.isFullScreen) {\n // 取消全屏\n // self.callbackFunc('unFull');\n _this.exitFullScreen();\n } else {\n // 全屏\n // self.callbackFunc('full');\n _this.requestFullscreen();\n }\n }; // 监听播放器是否为全屏状态\n\n\n if (screenfull__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isEnabled) {\n screenfull__WEBPACK_IMPORTED_MODULE_0__[\"default\"].on('change', this.screenfullChange.bind(this));\n }\n } // 全屏\n\n\n var _proto = FullscreenToggle.prototype;\n\n _proto.requestFullscreen = function requestFullscreen() {\n if (!screenfull__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isEnabled) {\n console.log('您的浏览器不能工作!');\n return false;\n }\n\n screenfull__WEBPACK_IMPORTED_MODULE_0__[\"default\"].request(this.boxDom);\n } // 取消全屏\n ;\n\n _proto.exitFullScreen = function exitFullScreen() {\n screenfull__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toggle();\n };\n\n _proto.screenfullChange = function screenfullChange() {\n this.isFullScreen = screenfull__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFullscreen;\n\n if (this.isFullScreen) {\n // self.callbackFunc('full');\n this.fullScreenIconEl.title = '取消全屏';\n this.fullScreenIconEl.classList.remove('vss-fullscreen');\n this.fullScreenIconEl.classList.add('vss-cancel-fullscreen');\n } else {\n // 全屏\n // self.callbackFunc('unFull');\n this.fullScreenIconEl.title = '全屏';\n this.fullScreenIconEl.classList.remove('vss-cancel-fullscreen');\n this.fullScreenIconEl.classList.add('vss-fullscreen');\n }\n };\n\n return FullscreenToggle;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FullscreenToggle);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/control-bar/fullscreen-toggle.js?"); | ||
| 3713 | + | ||
| 3714 | +/***/ }), | ||
| 3715 | + | ||
| 3716 | +/***/ "./src/components/control-bar/icon/loading.svg": | ||
| 3717 | +/*!*****************************************************!*\ | ||
| 3718 | + !*** ./src/components/control-bar/icon/loading.svg ***! | ||
| 3719 | + \*****************************************************/ | ||
| 3720 | +/*! exports provided: default */ | ||
| 3721 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3722 | + | ||
| 3723 | +"use strict"; | ||
| 3724 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MHB4IiBoZWlnaHQ9IjUwcHgiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCIKICAgICBjbGFzcz0idWlsLWRlZmF1bHQiPgogICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9Im5vbmUiIGNsYXNzPSJiayIvPgogICAgPHJlY3QgeD0iNDciIHk9IjQwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyMCIgcng9IjUiIHJ5PSI1IiBmaWxsPSIjZmZmZmZmIiB0cmFuc2Zvcm09InJvdGF0ZSgwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApIj4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiBmcm9tPSIxIiB0bz0iMCIgZHVyPSIxcyIgYmVnaW49Ii0xcyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICAgIDwvcmVjdD4KICAgIDxyZWN0IHg9IjQ3IiB5PSI0MCIgd2lkdGg9IjYiIGhlaWdodD0iMjAiIHJ4PSI1IiByeT0iNSIgZmlsbD0iI2ZmZmZmZiIKICAgICAgICAgIHRyYW5zZm9ybT0icm90YXRlKDMwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApIj4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiBmcm9tPSIxIiB0bz0iMCIgZHVyPSIxcyIgYmVnaW49Ii0wLjkxNjY2NjY2NjY2NjY2NjZzIgogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgICA8L3JlY3Q+CiAgICA8cmVjdCB4PSI0NyIgeT0iNDAiIHdpZHRoPSI2IiBoZWlnaHQ9IjIwIiByeD0iNSIgcnk9IjUiIGZpbGw9IiNmZmZmZmYiCiAgICAgICAgICB0cmFuc2Zvcm09InJvdGF0ZSg2MCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ib3BhY2l0eSIgZnJvbT0iMSIgdG89IjAiIGR1cj0iMXMiIGJlZ2luPSItMC44MzMzMzMzMzMzMzMzMzM0cyIKICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0iNDciIHk9IjQwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyMCIgcng9IjUiIHJ5PSI1IiBmaWxsPSIjZmZmZmZmIgogICAgICAgICAgdHJhbnNmb3JtPSJyb3RhdGUoOTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCkiPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGZyb209IjEiIHRvPSIwIiBkdXI9IjFzIiBiZWdpbj0iLTAuNzVzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0iNDciIHk9IjQwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyMCIgcng9IjUiIHJ5PSI1IiBmaWxsPSIjZmZmZmZmIgogICAgICAgICAgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApIj4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiBmcm9tPSIxIiB0bz0iMCIgZHVyPSIxcyIgYmVnaW49Ii0wLjY2NjY2NjY2NjY2NjY2NjZzIgogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgICA8L3JlY3Q+CiAgICA8cmVjdCB4PSI0NyIgeT0iNDAiIHdpZHRoPSI2IiBoZWlnaHQ9IjIwIiByeD0iNSIgcnk9IjUiIGZpbGw9IiNmZmZmZmYiCiAgICAgICAgICB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCkiPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGZyb209IjEiIHRvPSIwIiBkdXI9IjFzIiBiZWdpbj0iLTAuNTgzMzMzMzMzMzMzMzMzNHMiCiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICAgIDwvcmVjdD4KICAgIDxyZWN0IHg9IjQ3IiB5PSI0MCIgd2lkdGg9IjYiIGhlaWdodD0iMjAiIHJ4PSI1IiByeT0iNSIgZmlsbD0iI2ZmZmZmZiIKICAgICAgICAgIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ib3BhY2l0eSIgZnJvbT0iMSIgdG89IjAiIGR1cj0iMXMiIGJlZ2luPSItMC41cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICAgIDwvcmVjdD4KICAgIDxyZWN0IHg9IjQ3IiB5PSI0MCIgd2lkdGg9IjYiIGhlaWdodD0iMjAiIHJ4PSI1IiByeT0iNSIgZmlsbD0iI2ZmZmZmZiIKICAgICAgICAgIHRyYW5zZm9ybT0icm90YXRlKDIxMCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ib3BhY2l0eSIgZnJvbT0iMSIgdG89IjAiIGR1cj0iMXMiIGJlZ2luPSItMC40MTY2NjY2NjY2NjY2NjY3cyIKICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0iNDciIHk9IjQwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyMCIgcng9IjUiIHJ5PSI1IiBmaWxsPSIjZmZmZmZmIgogICAgICAgICAgdHJhbnNmb3JtPSJyb3RhdGUoMjQwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApIj4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiBmcm9tPSIxIiB0bz0iMCIgZHVyPSIxcyIgYmVnaW49Ii0wLjMzMzMzMzMzMzMzMzMzMzNzIgogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgICA8L3JlY3Q+CiAgICA8cmVjdCB4PSI0NyIgeT0iNDAiIHdpZHRoPSI2IiBoZWlnaHQ9IjIwIiByeD0iNSIgcnk9IjUiIGZpbGw9IiNmZmZmZmYiCiAgICAgICAgICB0cmFuc2Zvcm09InJvdGF0ZSgyNzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCkiPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGZyb209IjEiIHRvPSIwIiBkdXI9IjFzIiBiZWdpbj0iLTAuMjVzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0iNDciIHk9IjQwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyMCIgcng9IjUiIHJ5PSI1IiBmaWxsPSIjZmZmZmZmIgogICAgICAgICAgdHJhbnNmb3JtPSJyb3RhdGUoMzAwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApIj4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiBmcm9tPSIxIiB0bz0iMCIgZHVyPSIxcyIgYmVnaW49Ii0wLjE2NjY2NjY2NjY2NjY2NjY2cyIKICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0iNDciIHk9IjQwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyMCIgcng9IjUiIHJ5PSI1IiBmaWxsPSIjZmZmZmZmIgogICAgICAgICAgdHJhbnNmb3JtPSJyb3RhdGUoMzMwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApIj4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiBmcm9tPSIxIiB0bz0iMCIgZHVyPSIxcyIgYmVnaW49Ii0wLjA4MzMzMzMzMzMzMzMzMzMzcyIKICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9yZWN0Pgo8L3N2Zz4K\");\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/control-bar/icon/loading.svg?"); | ||
| 3725 | + | ||
| 3726 | +/***/ }), | ||
| 3727 | + | ||
| 3728 | +/***/ "./src/components/control-bar/play-btn.js": | ||
| 3729 | +/*!************************************************!*\ | ||
| 3730 | + !*** ./src/components/control-bar/play-btn.js ***! | ||
| 3731 | + \************************************************/ | ||
| 3732 | +/*! exports provided: default */ | ||
| 3733 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3734 | + | ||
| 3735 | +"use strict"; | ||
| 3736 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ \"./src/utils/dom.js\");\n/**\n * fullscreen-toggle.js\n */\n\n\nvar Snapshot = /*#__PURE__*/function () {\n function Snapshot(self, dom) {\n var _this = this;\n\n this.boxDom = self.boxDom;\n this.isFill = false;\n this.isPlaying = false;\n this.fillModeBtnEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: 'vss-control-btn vss-control-play-btn vss-pointer'\n }, {});\n this.fillModeIconEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('span', {\n className: 'vssfont vss-play'\n }, {\n title: '播放'\n });\n this.fillModeBtnEl.appendChild(this.fillModeIconEl);\n dom.appendChild(this.fillModeBtnEl);\n\n this.fillModeBtnEl.onclick = function (e) {\n console.log(_this.isPlaying);\n\n if (self.url) {\n if (_this.isPlaying) {\n console.log('暂停');\n _this.isPlaying = false;\n _this.fillModeIconEl.title = '播放';\n\n _this.fillModeIconEl.classList.remove('vss-pause');\n\n _this.fillModeIconEl.classList.add('vss-play');\n\n _this.pause(self);\n } else {\n console.log('播放');\n _this.isPlaying = true;\n _this.fillModeIconEl.title = '暂停';\n\n _this.fillModeIconEl.classList.remove('vss-play');\n\n _this.fillModeIconEl.classList.add('vss-pause');\n\n var ext = self.url.substr(self.url.lastIndexOf('.') + 1);\n\n if (ext) {\n var extLowerCase = ext.toLowerCase();\n\n if (extLowerCase.indexOf('ts') > -1) {\n self.h5Video.play();\n return;\n }\n }\n\n _this.play(self);\n }\n } else {\n console.log('url is empty');\n }\n };\n\n self.on('status', function (status) {\n if (status === 100) {\n _this.isPlaying = true;\n _this.fillModeIconEl.title = '暂停';\n\n _this.fillModeIconEl.classList.remove('vss-play');\n\n _this.fillModeIconEl.classList.add('vss-pause');\n }\n });\n } // 播放\n\n\n var _proto = Snapshot.prototype;\n\n _proto.play = function play(self) {\n self.play(self.url, 1, self.seekTimeSecs);\n } // 暂停\n ;\n\n _proto.pause = function pause(self) {\n self.pause();\n };\n\n return Snapshot;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Snapshot);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/control-bar/play-btn.js?"); | ||
| 3737 | + | ||
| 3738 | +/***/ }), | ||
| 3739 | + | ||
| 3740 | +/***/ "./src/components/control-bar/resolution-ratio.js": | ||
| 3741 | +/*!********************************************************!*\ | ||
| 3742 | + !*** ./src/components/control-bar/resolution-ratio.js ***! | ||
| 3743 | + \********************************************************/ | ||
| 3744 | +/*! exports provided: default */ | ||
| 3745 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3746 | + | ||
| 3747 | +"use strict"; | ||
| 3748 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ \"./src/utils/dom.js\");\n/**\n * resolution-ratio.js\n */\n\n\nvar Snapshot = function Snapshot(self, dom) {\n var _this = this;\n\n this.boxDom = self.boxDom;\n this.isFill = false;\n this.isPlaying = false;\n this.fillModeBtnEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: 'vss-item-box'\n }, {});\n this.fillModeIconEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('span', {\n className: ''\n }, {}, '');\n this.fillModeBtnEl.appendChild(this.fillModeIconEl);\n dom.appendChild(this.fillModeBtnEl);\n self.on('resolutionRatio', function (data) {\n if (data.code && data.width && data.height) {\n _this.fillModeIconEl.innerText = \"LIVE [\" + data.code + \":\" + data.width + \"\\xD7\" + data.height + \"]\";\n } else {\n _this.fillModeIconEl.innerText = '';\n }\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Snapshot);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/control-bar/resolution-ratio.js?"); | ||
| 3749 | + | ||
| 3750 | +/***/ }), | ||
| 3751 | + | ||
| 3752 | +/***/ "./src/components/control-bar/snapshot.js": | ||
| 3753 | +/*!************************************************!*\ | ||
| 3754 | + !*** ./src/components/control-bar/snapshot.js ***! | ||
| 3755 | + \************************************************/ | ||
| 3756 | +/*! exports provided: default */ | ||
| 3757 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3758 | + | ||
| 3759 | +"use strict"; | ||
| 3760 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ \"./src/utils/dom.js\");\n/**\n * fullscreen-toggle.js\n */\n\n\nvar Snapshot = /*#__PURE__*/function () {\n function Snapshot(self, dom) {\n var _this = this;\n\n this.boxDom = self.boxDom;\n this.h5Video = self.h5Video;\n this.canvasVideo = self.screenCanvas.canvas;\n this.isFill = false;\n this.fillModeBtnEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: 'vss-control-btn vss-control-snap-btn vss-pointer'\n }, {});\n this.fillModeIconEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('span', {\n className: 'vssfont vss-snapshot'\n }, {\n title: '快照'\n });\n this.fillModeBtnEl.appendChild(this.fillModeIconEl);\n dom.appendChild(this.fillModeBtnEl);\n\n this.fillModeBtnEl.onclick = function (e) {\n _this.snapshotDown(self);\n };\n } // 快照下载\n\n\n var _proto = Snapshot.prototype;\n\n _proto.snapshotDown = function snapshotDown(self) {\n // if (window.VssPlayerWasmKits) {\n // if (self.playerInstance) {\n // self.playerInstance.snapshot();\n // }\n // } else {\n // self.InitWasmModule();\n // this.snapshotDown(self);\n // }\n var newCanvas = null;\n var img = document.createElement('img');\n var dataURL = null;\n\n if (this.h5Video) {\n newCanvas = document.createElement('canvas'); //canvas.getContext(\"2d\").scale(ratio, ratio);\n\n newCanvas.width = this.h5Video.videoWidth; //offsetWidth * ratio;\n\n newCanvas.height = this.h5Video.videoHeight; //offsetHeight * ratio;\n\n newCanvas.getContext('2d').drawImage(this.h5Video, 0, 0, newCanvas.width, newCanvas.height); //截\n\n dataURL = newCanvas.toDataURL('image/png'); //将图片转成base64格式\n\n img.src = dataURL;\n img.width = this.h5Video.clientWidth; //控制截出来的图片宽的大小\n\n img.height = this.h5Video.clientHeight; //控制截出来的图片高的大小\n }\n\n if (dataURL === 'data:,') {\n dataURL = this.canvasVideo.toDataURL('image/png'); //将图片转成base64格式\n\n img.src = dataURL;\n img.width = this.canvasVideo.width; //控制截出来的图片宽的大小\n\n img.height = this.canvasVideo.height; //控制截出来的图片高的大小\n\n img.style.border = '1px solid #333333'; //控制截出来的图片边框的样式\n }\n\n if (!dataURL) {\n return false;\n }\n\n var downloadFileA = document.createElement('a');\n downloadFileA.href = dataURL;\n downloadFileA.download = 'snapshot.jpg';\n downloadFileA.rel = 'noopener noreferrer';\n downloadFileA.click();\n };\n\n return Snapshot;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Snapshot);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/control-bar/snapshot.js?"); | ||
| 3761 | + | ||
| 3762 | +/***/ }), | ||
| 3763 | + | ||
| 3764 | +/***/ "./src/components/control-bar/stop-btn.js": | ||
| 3765 | +/*!************************************************!*\ | ||
| 3766 | + !*** ./src/components/control-bar/stop-btn.js ***! | ||
| 3767 | + \************************************************/ | ||
| 3768 | +/*! exports provided: default */ | ||
| 3769 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3770 | + | ||
| 3771 | +"use strict"; | ||
| 3772 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ \"./src/utils/dom.js\");\n/* harmony import */ var _utils_obj__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/obj */ \"./src/utils/obj.js\");\n/**\n * fullscreen-toggle.js\n */\n\n\n\nvar FullscreenToggle = function FullscreenToggle(self, dom) {\n var _this = this;\n\n this.boxDom = self.boxDom;\n this.isFill = false;\n this.isPlaying = false;\n this.fillModeBtnEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: 'vss-control-btn vss-control-stop-btn vss-pointer'\n }, {});\n this.fillModeIconEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('span', {\n className: 'vssfont vss-stop'\n }, {\n title: '停止'\n });\n this.fillModeBtnEl.appendChild(this.fillModeIconEl);\n dom.appendChild(this.fillModeBtnEl);\n\n this.fillModeBtnEl.onclick = function (e) {\n if (_this.isPlaying) {\n // 按比例显示\n _this.isPlaying = false;\n self.callbackFunc('stop');\n self.stop(); // 改变播放按钮的状态\n // ...\n } else {}\n };\n\n self.on('status', function (status) {\n if (status === 100) {\n _this.isPlaying = true;\n } else {\n _this.isPlaying = false;\n }\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FullscreenToggle);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/control-bar/stop-btn.js?"); | ||
| 3773 | + | ||
| 3774 | +/***/ }), | ||
| 3775 | + | ||
| 3776 | +/***/ "./src/components/control-bar/time-schedule.js": | ||
| 3777 | +/*!*****************************************************!*\ | ||
| 3778 | + !*** ./src/components/control-bar/time-schedule.js ***! | ||
| 3779 | + \*****************************************************/ | ||
| 3780 | +/*! exports provided: default */ | ||
| 3781 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3782 | + | ||
| 3783 | +"use strict"; | ||
| 3784 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ \"./src/utils/dom.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils */ \"./src/utils/index.js\");\n/**\n * 时间进度条\n * time-schedule.js\n */\n\n\n\nvar TimeSchedule = /*#__PURE__*/function () {\n function TimeSchedule(self, dom) {\n var _this = this;\n\n this.boxDom = self.boxDom;\n this.isFill = false;\n this.isPlaying = false;\n this.duration = 0;\n this.isMousedown = false;\n this.isMousemove = false;\n this.mousedownCursor = 0;\n this.show = false;\n this.timeBoxEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: 'vss-item-box vss-time-box vss-hide'\n }, {});\n this.timeScheduleEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: 'vss-time-schedule'\n }, {});\n this.leftTimeEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: 'vss-time-left-text'\n }, {}, '00:00:00');\n this.rightTimeEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: 'vss-time-right-text'\n }, {}, '00:00:00');\n this.timeBoxEl.appendChild(this.leftTimeEl);\n this.timeBoxEl.appendChild(this.timeScheduleEl);\n this.timeBoxEl.appendChild(this.rightTimeEl);\n this.timeTrackOutEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: 'vss-time-track-out'\n }, {});\n this.timeTrackEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: 'vss-time-track'\n }, {});\n this.timeProgressEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: 'vss-time-progress'\n }, {});\n this.timeProgressButtonBoxEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: 'vss-time-button-wrapper'\n }, {});\n this.timeProgressButtonEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: 'vss-time-button-wrapper_button'\n }, {});\n this.timeProgressTipEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('span', {\n className: 'vss-time-button-wrapper_tip vss-hide'\n }, {});\n this.timeProgressButtonBoxEl.appendChild(this.timeProgressButtonEl);\n this.timeProgressButtonBoxEl.appendChild(this.timeProgressTipEl);\n this.timeTrackEl.appendChild(this.timeProgressEl);\n this.timeTrackOutEl.appendChild(this.timeTrackEl);\n this.timeTrackOutEl.appendChild(this.timeProgressButtonBoxEl);\n this.timeScheduleEl.appendChild(this.timeTrackOutEl);\n dom.appendChild(this.timeBoxEl); // 点击时间轨道\n\n this.timeTrackEl.onmousedown = function (e) {\n console.log(99);\n e = e || window.event;\n e.stopPropagation();\n\n if (e.button !== 0) {\n return false;\n } // 先暂停\n // self.pause();\n\n\n if (_this.isPlaying) {\n var pos = e.layerX;\n var width = _this.timeTrackEl.offsetWidth;\n var left = pos / width * 100;\n\n if (left <= 0) {\n left = 0;\n } else if (left >= 100) {\n left = 100;\n }\n\n var currentTime = parseInt(_this.duration * (pos / width) * 1000) / 1000;\n _this.leftTimeEl.innerText = Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"ChangeHourMinutestr\"])(currentTime * 1000);\n _this.timeProgressTipEl.innerText = Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"ChangeHourMinutestr\"])(currentTime * 1000);\n\n if (!_this.isMousemove) {\n _this.timeProgressEl.style.width = left + \"%\";\n _this.timeProgressButtonBoxEl.style.left = left + \"%\";\n }\n\n document.onmouseup = function (e) {\n _this.seekToPre(self, left);\n\n e.stopPropagation(); // 继续播放\n // self.continuePlay();\n\n document.onmouseup = null;\n return false;\n };\n\n return false;\n }\n\n return false;\n };\n\n this.timeProgressButtonEl.onmousedown = function (e) {\n e = e || window.event;\n e.stopPropagation();\n\n if (e.button !== 0) {\n return false;\n } // 先暂停\n // self.pause();\n\n\n _this.isMousedown = true;\n _this.mousedownCursor = _this.getCursorPositionX(e);\n var timeTrackWidth = _this.timeTrackEl.offsetWidth;\n var left = 0;\n var buttonBoxLeft = parseFloat(_this.timeProgressButtonBoxEl.style.left || 0); // 鼠标移动事件\n\n document.onmousemove = Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"throttle\"])(function (e) {\n e.stopPropagation();\n _this.isMousemove = true;\n\n var posX = _this.getCursorPositionX(e);\n\n var diffX = posX - _this.mousedownCursor;\n var leftToPx = buttonBoxLeft / 100 * timeTrackWidth;\n leftToPx = leftToPx + diffX;\n\n if (leftToPx >= timeTrackWidth) {\n leftToPx = timeTrackWidth;\n } else if (leftToPx <= 0) {\n leftToPx = 0;\n }\n\n var pxToPer = leftToPx / timeTrackWidth;\n left = pxToPer * 100;\n var currentTime = parseInt(_this.duration * pxToPer * 1000) / 1000;\n _this.timeProgressEl.style.width = left + \"%\";\n _this.leftTimeEl.innerText = Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"ChangeHourMinutestr\"])(currentTime * 1000);\n _this.timeProgressButtonBoxEl.style.left = left + \"%\";\n _this.timeProgressTipEl.innerText = Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"ChangeHourMinutestr\"])(currentTime * 1000);\n\n _this.seekToPre(self, left);\n }, 25);\n\n document.onmouseup = function (e) {\n e.stopPropagation();\n _this.isMousedown = false;\n _this.isMousemove = false;\n var buttonBoxLeft = parseFloat(_this.timeProgressButtonBoxEl.style.left || 0);\n\n _this.seekToPre(self, buttonBoxLeft); // 继续播放\n // self.continuePlay();\n\n\n document.onmousemove = null;\n document.onmouseup = null;\n return false;\n };\n };\n\n self.on('timeSchedule', function (data) {\n if (!_this.show) {\n _this.timeBoxEl.classList.remove('vss-hide');\n }\n\n self.emit('status', 100);\n _this.isPlaying = true;\n _this.duration = data.duration;\n\n _this.timeProgressTipEl.classList.remove('vss-hide');\n\n _this.leftTimeEl.innerText = Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"ChangeHourMinutestr\"])(data.currentTime * 1000);\n _this.rightTimeEl.innerText = Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"ChangeHourMinutestr\"])(data.duration * 1000);\n _this.timeProgressTipEl.innerText = Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"ChangeHourMinutestr\"])(data.currentTime * 1000);\n\n if (!_this.isMousemove) {\n _this.timeProgressEl.style.width = data.currentTime * 1000 / (data.duration * 1000) * 100 + \"%\";\n _this.timeProgressButtonBoxEl.style.left = data.currentTime * 1000 / (data.duration * 1000) * 100 + \"%\";\n }\n });\n self.on('timeended', function (data) {\n _this.isPlaying = false;\n\n _this.timeProgressTipEl.classList.add('vss-hide');\n\n _this.leftTimeEl.innerText = Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"ChangeHourMinutestr\"])(data.currentTime * 1000);\n _this.rightTimeEl.innerText = Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"ChangeHourMinutestr\"])(data.duration * 1000);\n _this.timeProgressTipEl.innerText = Object(_utils__WEBPACK_IMPORTED_MODULE_1__[\"ChangeHourMinutestr\"])(data.currentTime * 1000);\n\n if (!_this.isMousemove) {\n _this.timeProgressEl.style.width = data.currentTime * 1000 / (data.duration * 1000) * 100 + \"%\";\n _this.timeProgressButtonBoxEl.style.left = data.currentTime * 1000 / (data.duration * 1000) * 100 + \"%\";\n }\n });\n }\n\n var _proto = TimeSchedule.prototype;\n\n _proto.getCursorPositionX = function getCursorPositionX(e) {\n var posx = 0;\n\n if (!e) {\n e = window.event;\n }\n\n if (e.pageX || e.pageY) {\n posx = e.pageX;\n } else if (e.clientX || e.clientY) {\n posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;\n }\n\n return posx;\n }\n /**\n * 进度条跳转到百分比\n * @param self\n * @param percentage\n */\n ;\n\n _proto.seekToPre = function seekToPre(self, percentage) {\n self.seekToPercent(percentage);\n };\n\n return TimeSchedule;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (TimeSchedule);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/control-bar/time-schedule.js?"); | ||
| 3785 | + | ||
| 3786 | +/***/ }), | ||
| 3787 | + | ||
| 3788 | +/***/ "./src/components/export-message/index.js": | ||
| 3789 | +/*!************************************************!*\ | ||
| 3790 | + !*** ./src/components/export-message/index.js ***! | ||
| 3791 | + \************************************************/ | ||
| 3792 | +/*! exports provided: default */ | ||
| 3793 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3794 | + | ||
| 3795 | +"use strict"; | ||
| 3796 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ExportMessage; });\n/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ \"./src/utils/dom.js\");\n/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/common */ \"./src/common/common.js\");\n/**\n * off-screen-canvas\n */\n\n\n\nvar ExportMessage = /*#__PURE__*/function () {\n function ExportMessage(self, dom) {\n var _this = this;\n\n this.Timer = null;\n this.exportMessageDom = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: \"vss-export-message-box\"\n });\n dom.appendChild(this.exportMessageDom);\n this.messageLists = [];\n this.index = 0;\n self.on('exportMessage', function (data) {\n _this.messageLists[_this.index] = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: \"vss-export-message-item\"\n }, {}, \"\" + data.message);\n\n _this.exportMessageDom.appendChild(_this.messageLists[_this.index]);\n\n if (data.duration > 0) {\n _this.removeChildDom(_this.index, data.duration);\n }\n\n data.callback(_this.index);\n _this.index++;\n });\n self.on('clearMessage', function (index) {\n if (index >= 0) {\n if (_this.messageLists[index]) {\n _this.exportMessageDom.removeChild(_this.messageLists[index]);\n\n _this.messageLists.splice(index, 1);\n }\n } else {\n _this.exportMessageDom.innerHTML = '';\n _this.messageLists = [];\n }\n });\n }\n\n var _proto = ExportMessage.prototype;\n\n _proto.removeChildDom = function removeChildDom(index, duration) {\n var _this2 = this;\n\n setTimeout(function () {\n if (_this2.messageLists[index]) {\n _this2.exportMessageDom.removeChild(_this2.messageLists[index]);\n\n _this2.messageLists.splice(index, 1);\n }\n }, duration);\n };\n\n return ExportMessage;\n}();\n\n\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/export-message/index.js?"); | ||
| 3797 | + | ||
| 3798 | +/***/ }), | ||
| 3799 | + | ||
| 3800 | +/***/ "./src/components/index.js": | ||
| 3801 | +/*!*********************************!*\ | ||
| 3802 | + !*** ./src/components/index.js ***! | ||
| 3803 | + \*********************************/ | ||
| 3804 | +/*! exports provided: default */ | ||
| 3805 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3806 | + | ||
| 3807 | +"use strict"; | ||
| 3808 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return element; });\n/* harmony import */ var _context_menu__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./context-menu */ \"./src/components/context-menu/index.js\");\n/* harmony import */ var _init_message__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./init-message */ \"./src/components/init-message/index.js\");\n/* harmony import */ var _export_message__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./export-message */ \"./src/components/export-message/index.js\");\n/* harmony import */ var _osd_message__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./osd-message */ \"./src/components/osd-message/index.js\");\n\n\n\n\n\nvar element = /*#__PURE__*/function () {\n function element(self, dom, _ref) {\n var _this = this;\n\n var height = _ref.height,\n isFill = _ref.isFill;\n\n if (!dom) {\n return '';\n }\n\n if (height) {\n dom.style.position = 'relative';\n dom.style.backgroundColor = '#000000';\n dom.style.overflow = 'hidden';\n dom.style.paddingTop = '56.25%';\n } else {\n dom.style.position = 'relative';\n dom.style.backgroundColor = '#000000';\n dom.style.width = '100%';\n dom.style.height = '100%';\n dom.style.overflow = 'hidden';\n }\n\n dom.classList.add('vss-shade');\n dom.classList.add('vss-player');\n this.elDom = dom;\n this.isFill = isFill;\n this.videoEl = null;\n this.videoEl = document.createElement('video');\n this.videoEl.style.width = '100%';\n this.videoEl.style.height = '100%';\n this.videoEl.style.position = 'absolute';\n this.videoEl.style.top = '0';\n this.videoEl.style.left = '0';\n this.videoEl.style.background = '#000000';\n this.elDom.appendChild(this.videoEl);\n this.fill(); // this.videoEl.setAttribute('controls', 'controls');\n // this.videoEl.setAttribute('webkit-playsinline', 'true');\n // this.videoEl.setAttribute('playsinline', 'true');\n // this.videoEl.style.width = '100%';\n // this.videoEl.style.height = '100%';\n // this.videoBoxEl.appendChild(this.videoEl);\n\n this.InitMessage = new _init_message__WEBPACK_IMPORTED_MODULE_1__[\"default\"](self, dom);\n this.ExportMessage = new _export_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"](self, dom);\n this.OsdMessage = new _osd_message__WEBPACK_IMPORTED_MODULE_3__[\"default\"](self, dom); // // 创建右键菜单\n // this.ContextMenu = new ContextMenu(self, dom);\n //\n // this.elDom.oncontextmenu = (e) => {\n // e = e || window.event;\n // // 屏蔽样式\n // e.preventDefault ? e.preventDefault() : (e.returnValue = false);\n // // 获取坐标\n // let x = e.clientX; // 视口的位置\n // let y = e.clientY;\n //\n // // 显示菜单\n //\n // this.ContextMenu.show(x, y);\n //\n // document.onmousedown = () => {\n // this.ContextMenu.hide();\n // };\n // document.onmouseup = () => {\n // document.onmousedown = null;\n // document.onmouseup = null;\n // };\n //\n // return false;\n // };\n\n self.on('play', function () {});\n self.on('setfill', function () {\n _this.isFill = true;\n\n _this.fill();\n });\n }\n\n var _proto = element.prototype;\n\n _proto.fill = function fill() {\n if (this.videoEl && this.isFill) {\n this.videoEl.style.objectFit = 'fill';\n } else {\n this.videoEl.style.objectFit = '';\n }\n };\n\n return element;\n}();\n\n\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/index.js?"); | ||
| 3809 | + | ||
| 3810 | +/***/ }), | ||
| 3811 | + | ||
| 3812 | +/***/ "./src/components/init-message/index.js": | ||
| 3813 | +/*!**********************************************!*\ | ||
| 3814 | + !*** ./src/components/init-message/index.js ***! | ||
| 3815 | + \**********************************************/ | ||
| 3816 | +/*! exports provided: default */ | ||
| 3817 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3818 | + | ||
| 3819 | +"use strict"; | ||
| 3820 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ \"./src/utils/dom.js\");\n/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/common */ \"./src/common/common.js\");\n/**\n * off-screen-canvas\n */\n\n\n\nvar offscreenCanvas = function offscreenCanvas(self, dom) {\n var _this = this;\n\n this.Timer = null;\n this.messageBoxDom = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: \"vss-message-box\"\n });\n dom.appendChild(this.messageBoxDom);\n self.on('message', function (data) {\n _common_common__WEBPACK_IMPORTED_MODULE_1__[\"setMessage\"](data);\n\n _this.messageBoxDom.appendChild(Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: \"vss-message-item\"\n }, {}, \"[\\u64AD\\u653E\\u5668]:\" + data.name));\n });\n self.on('play', function (data) {\n _this.Timer = setTimeout(function () {\n // 隐藏\n _this.messageBoxDom.classList.add('vss-message-hide');\n\n clearTimeout(_this.Timer);\n }, 5000);\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (offscreenCanvas);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/init-message/index.js?"); | ||
| 3821 | + | ||
| 3822 | +/***/ }), | ||
| 3823 | + | ||
| 3824 | +/***/ "./src/components/loading-logo/index.js": | ||
| 3825 | +/*!**********************************************!*\ | ||
| 3826 | + !*** ./src/components/loading-logo/index.js ***! | ||
| 3827 | + \**********************************************/ | ||
| 3828 | +/*! exports provided: default */ | ||
| 3829 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3830 | + | ||
| 3831 | +"use strict"; | ||
| 3832 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ \"./src/utils/dom.js\");\n/* harmony import */ var _static_loading_logo_gif__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../static/loading-logo.gif */ \"./src/static/loading-logo.gif\");\n/* harmony import */ var _static_loading_logo_png__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../static/loading-logo.png */ \"./src/static/loading-logo.png\");\n/**\n * 动态logo动画\n * loading-logo\n */\n\n\n\n\nvar LoadingLogo = /*#__PURE__*/function () {\n function LoadingLogo(self, dom) {\n var _this = this;\n\n this.loadingLogoDom = this.createEl();\n dom.appendChild(this.loadingLogoDom);\n this.boxDom = dom;\n self.on('status', function (status) {\n _this.open(status);\n });\n }\n\n var _proto = LoadingLogo.prototype;\n\n _proto.createEl = function createEl() {\n var el = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: \"vss-mask vss-show\"\n });\n\n this.center = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: 'vss-mask-center'\n });\n this.loadingLogoImg = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('img', {\n className: 'vss-loading-logo-img'\n }, {\n src: _static_loading_logo_png__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n });\n this.loadingLogoText = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('span', {\n className: 'vss-loading-logo-text'\n }, {}, '成都视开信息科技');\n\n if (true) {\n this.center.appendChild(this.loadingLogoImg);\n this.center.appendChild(this.loadingLogoText);\n }\n\n el.appendChild(this.center);\n return el;\n };\n\n _proto.open = function open(status) {\n if (this.loadingLogoDom) {\n if (status === 99) {\n this.hide();\n }\n }\n };\n\n _proto.show = function show() {\n this.loadingLogoDom.classList.remove('vss-hide');\n this.loadingLogoDom.classList.add('vss-show');\n };\n\n _proto.hide = function hide() {\n this.loadingLogoDom.classList.remove('vss-show');\n this.loadingLogoDom.classList.add('vss-hide');\n };\n\n return LoadingLogo;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (LoadingLogo);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/loading-logo/index.js?"); | ||
| 3833 | + | ||
| 3834 | +/***/ }), | ||
| 3835 | + | ||
| 3836 | +/***/ "./src/components/loading/index.js": | ||
| 3837 | +/*!*****************************************!*\ | ||
| 3838 | + !*** ./src/components/loading/index.js ***! | ||
| 3839 | + \*****************************************/ | ||
| 3840 | +/*! exports provided: default */ | ||
| 3841 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3842 | + | ||
| 3843 | +"use strict"; | ||
| 3844 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ \"./src/utils/dom.js\");\n/* harmony import */ var _utils_obj__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/obj */ \"./src/utils/obj.js\");\n/* harmony import */ var _control_bar_icon_loading_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../control-bar/icon/loading.svg */ \"./src/components/control-bar/icon/loading.svg\");\n/**\n * loading\n */\n\n\n\n\nvar Loading = /*#__PURE__*/function () {\n function Loading(self, dom) {\n var _this = this;\n\n this.loadingEl = this.createEl();\n dom.appendChild(this.loadingEl);\n self.on('status', function (status) {\n _this.open(status);\n });\n }\n\n var _proto = Loading.prototype;\n\n _proto.createEl = function createEl(tag, props, attributes) {\n if (props === void 0) {\n props = {};\n }\n\n if (attributes === void 0) {\n attributes = {};\n }\n\n tag = 'div';\n props = Object(_utils_obj__WEBPACK_IMPORTED_MODULE_1__[\"assign\"])({\n className: this.buildCSSClass()\n }, props); // 为元素添加属性\n\n attributes = Object(_utils_obj__WEBPACK_IMPORTED_MODULE_1__[\"assign\"])({\n type: 'loading'\n }, attributes);\n\n var el = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])(tag, props, attributes);\n\n this.center = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: 'vss-loading-center'\n }, {\n 'aria-type': 'center'\n });\n this.loading = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('img', {\n className: 'vss-loading-img'\n }, {\n src: _control_bar_icon_loading_svg__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n });\n this.loadingText = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('span', {\n className: 'vss-loading-text'\n }, {}, '视频加载中...');\n this.center.appendChild(this.loading); // this.center.appendChild(this.loadingText);\n\n el.appendChild(this.center);\n return el;\n };\n\n _proto.buildCSSClass = function buildCSSClass() {\n return \"vss-loading vss-hide\";\n };\n\n _proto.open = function open(status) {\n if (this.loadingEl) {\n if (status === 100) {\n this.loadingText.innerHTML = '播放中...';\n this.hide();\n } else if (status === 99) {\n this.hide();\n this.loadingText.innerHTML = '已停止';\n } else if (status === 0) {\n //连接中\n this.loadingText.innerHTML = '连接中...';\n this.show();\n } else if (status === 1) {\n //连接成功\n this.loadingText.innerHTML = '视频加载中...';\n this.hide();\n } else if (status === 2) {\n this.loadingText.innerHTML = '状态为2';\n this.show();\n } else {\n this.loadingText.innerHTML = '未知状态:' + status;\n this.show();\n }\n }\n };\n\n _proto.show = function show() {\n this.loadingEl.classList.remove('vss-hide');\n this.loadingEl.classList.add('vss-show');\n };\n\n _proto.hide = function hide() {\n this.loadingEl.classList.remove('vss-show');\n this.loadingEl.classList.add('vss-hide');\n };\n\n return Loading;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Loading);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/loading/index.js?"); | ||
| 3845 | + | ||
| 3846 | +/***/ }), | ||
| 3847 | + | ||
| 3848 | +/***/ "./src/components/off-screen-canvas/index.js": | ||
| 3849 | +/*!***************************************************!*\ | ||
| 3850 | + !*** ./src/components/off-screen-canvas/index.js ***! | ||
| 3851 | + \***************************************************/ | ||
| 3852 | +/*! exports provided: default */ | ||
| 3853 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3854 | + | ||
| 3855 | +"use strict"; | ||
| 3856 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_obj__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/obj */ \"./src/utils/obj.js\");\n/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/dom */ \"./src/utils/dom.js\");\n\n\n/**\n * off-screen-canvas\n */\n\nvar offscreenCanvas = /*#__PURE__*/function () {\n function offscreenCanvas(self, dom) {\n this.canvas = this.createEl();\n dom.appendChild(this.canvas);\n }\n\n var _proto = offscreenCanvas.prototype;\n\n _proto.createEl = function createEl(tag, props, attributes) {\n if (props === void 0) {\n props = {};\n }\n\n if (attributes === void 0) {\n attributes = {};\n }\n\n tag = 'canvas';\n props = Object(_utils_obj__WEBPACK_IMPORTED_MODULE_0__[\"assign\"])({\n className: \"vss-canvas\"\n }, props);\n return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__[\"createEl\"])(tag, props, attributes);\n };\n\n return offscreenCanvas;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (offscreenCanvas);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/off-screen-canvas/index.js?"); | ||
| 3857 | + | ||
| 3858 | +/***/ }), | ||
| 3859 | + | ||
| 3860 | +/***/ "./src/components/osd-message/index.js": | ||
| 3861 | +/*!*********************************************!*\ | ||
| 3862 | + !*** ./src/components/osd-message/index.js ***! | ||
| 3863 | + \*********************************************/ | ||
| 3864 | +/*! exports provided: default */ | ||
| 3865 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3866 | + | ||
| 3867 | +"use strict"; | ||
| 3868 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return osdMessage; });\n/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ \"./src/utils/dom.js\");\n/**\n * off-screen-canvas\n */\n\n\nvar osdMessage = /*#__PURE__*/function () {\n function osdMessage(self, dom) {\n var _this = this;\n\n this.Timer = null;\n this.osdMessageDom = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: \"vss-osd-message-box vss-osd-message-hide\"\n });\n dom.appendChild(this.osdMessageDom);\n this.messageLists = [];\n this.index = 0;\n self.on('osdMessage', function (data, pos, duration) {\n if (!(data instanceof Array)) {\n return false;\n }\n\n if (!data.length) {\n return false;\n }\n\n pos = pos || 'lefttop'; // 先清空\n\n _this.osdMessageDom.innerHTML = '';\n\n _this.osdMessageDom.classList.remove('pos_lefttop');\n\n _this.osdMessageDom.classList.remove('pos_leftbottom');\n\n _this.osdMessageDom.classList.remove('pos_righttop');\n\n _this.osdMessageDom.classList.remove('pos_rightbottom');\n\n _this.osdMessageDom.classList.remove('pos_center');\n\n data.forEach(function (item, index) {\n // if (this.osdMessageDom.children.length >= 5) {\n // this.osdMessageDom.removeChild(this.osdMessageDom.children[0])\n // }\n _this.osdMessageDom.appendChild(Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__[\"createEl\"])('div', {\n className: \"vss-osd-message-item\"\n }, {\n 'data-index': index\n }, item.name + \"\\uFF1A\" + item.value));\n });\n\n _this.osdMessageDom.classList.add(\"pos_\" + pos);\n\n _this.osdMessageDom.classList.remove('vss-osd-message-hide'); // if (duration) {\n // this.removeChildDom(duration)\n // }\n\n });\n }\n\n var _proto = osdMessage.prototype;\n\n _proto.removeChildDom = function removeChildDom(duration) {\n var _this2 = this;\n\n setTimeout(function () {\n _this2.osdMessageDom.classList.add(\"vss-osd-message-hide\");\n\n setTimeout(function () {\n _this2.osdMessageDom.innerHTML = '';\n }, 200);\n }, duration);\n };\n\n return osdMessage;\n}();\n\n\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/osd-message/index.js?"); | ||
| 3869 | + | ||
| 3870 | +/***/ }), | ||
| 3871 | + | ||
| 3872 | +/***/ "./src/components/poster-image/index.js": | ||
| 3873 | +/*!**********************************************!*\ | ||
| 3874 | + !*** ./src/components/poster-image/index.js ***! | ||
| 3875 | + \**********************************************/ | ||
| 3876 | +/*! exports provided: default */ | ||
| 3877 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3878 | + | ||
| 3879 | +"use strict"; | ||
| 3880 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_obj__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/obj */ \"./src/utils/obj.js\");\n/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/dom */ \"./src/utils/dom.js\");\n\n\n/**\n * off-screen-canvas\n */\n\nvar offscreenCanvas = /*#__PURE__*/function () {\n function offscreenCanvas(self, dom) {\n var posterImageBoxEl = this.createEl();\n dom.appendChild(posterImageBoxEl);\n }\n\n var _proto = offscreenCanvas.prototype;\n\n _proto.createEl = function createEl(tag, props, attributes) {\n if (props === void 0) {\n props = {};\n }\n\n if (attributes === void 0) {\n attributes = {};\n }\n\n tag = 'div';\n props = Object(_utils_obj__WEBPACK_IMPORTED_MODULE_0__[\"assign\"])({\n className: \"vss-poster-box\"\n }, props);\n this.posterImageBoxEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__[\"createEl\"])(tag, props, attributes);\n this.posterimageEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__[\"createEl\"])('img', {\n className: \"vss-poster-image\"\n }, {});\n this.posterImageBoxEl.appendChild(this.posterimageEl);\n return this.posterImageBoxEl;\n };\n\n _proto.setPosterImage = function setPosterImage(src) {\n this.posterimageEl.setAttribute('src', src);\n };\n\n return offscreenCanvas;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (offscreenCanvas);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/components/poster-image/index.js?"); | ||
| 3881 | + | ||
| 3882 | +/***/ }), | ||
| 3883 | + | ||
| 3884 | +/***/ "./src/font/iconfont.css": | ||
| 3885 | +/*!*******************************!*\ | ||
| 3886 | + !*** ./src/font/iconfont.css ***! | ||
| 3887 | + \*******************************/ | ||
| 3888 | +/*! no static exports found */ | ||
| 3889 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 3890 | + | ||
| 3891 | +eval("var api = __webpack_require__(/*! ../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js!./iconfont.css */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/font/iconfont.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.i, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};\n\n//# sourceURL=webpack://WebMediaPlayer/./src/font/iconfont.css?"); | ||
| 3892 | + | ||
| 3893 | +/***/ }), | ||
| 3894 | + | ||
| 3895 | +/***/ "./src/font/iconfont.ttf?t=1650593394582": | ||
| 3896 | +/*!***********************************************!*\ | ||
| 3897 | + !*** ./src/font/iconfont.ttf?t=1650593394582 ***! | ||
| 3898 | + \***********************************************/ | ||
| 3899 | +/*! exports provided: default */ | ||
| 3900 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3901 | + | ||
| 3902 | +"use strict"; | ||
| 3903 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:font/ttf;base64,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\");\n\n//# sourceURL=webpack://WebMediaPlayer/./src/font/iconfont.ttf?"); | ||
| 3904 | + | ||
| 3905 | +/***/ }), | ||
| 3906 | + | ||
| 3907 | +/***/ "./src/font/iconfont.woff?t=1650593394582": | ||
| 3908 | +/*!************************************************!*\ | ||
| 3909 | + !*** ./src/font/iconfont.woff?t=1650593394582 ***! | ||
| 3910 | + \************************************************/ | ||
| 3911 | +/*! exports provided: default */ | ||
| 3912 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3913 | + | ||
| 3914 | +"use strict"; | ||
| 3915 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:font/woff;base64,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\");\n\n//# sourceURL=webpack://WebMediaPlayer/./src/font/iconfont.woff?"); | ||
| 3916 | + | ||
| 3917 | +/***/ }), | ||
| 3918 | + | ||
| 3919 | +/***/ "./src/index.js": | ||
| 3920 | +/*!**********************!*\ | ||
| 3921 | + !*** ./src/index.js ***! | ||
| 3922 | + \**********************/ | ||
| 3923 | +/*! exports provided: default */ | ||
| 3924 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3925 | + | ||
| 3926 | +"use strict"; | ||
| 3927 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _0x5483a9; });\n/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common/common */ \"./src/common/common.js\");\n/* harmony import */ var _FlvPlayer_WebMediaFlvPlayer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FlvPlayer/WebMediaFlvPlayer */ \"./src/FlvPlayer/WebMediaFlvPlayer.js\");\n/* harmony import */ var _FlvPlayer_flv_js_player_native_player_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FlvPlayer/flv.js/player/native-player.js */ \"./src/FlvPlayer/flv.js/player/native-player.js\");\n/* harmony import */ var _common_DecodeWorker_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./common/DecodeWorker.js */ \"./src/common/DecodeWorker.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils */ \"./src/utils/index.js\");\n/* harmony import */ var _FlvPlayer_flv_js_core_features_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FlvPlayer/flv.js/core/features.js */ \"./src/FlvPlayer/flv.js/core/features.js\");\n/* harmony import */ var _components_control_bar_control_bar__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/control-bar/control-bar */ \"./src/components/control-bar/control-bar.js\");\n/* harmony import */ var _components_loading__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/loading */ \"./src/components/loading/index.js\");\n/* harmony import */ var _components_off_screen_canvas__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components/off-screen-canvas */ \"./src/components/off-screen-canvas/index.js\");\n/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./components */ \"./src/components/index.js\");\n/* harmony import */ var _components_big_play_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./components/big-play-button */ \"./src/components/big-play-button/index.js\");\n/* harmony import */ var _components_loading_logo__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./components/loading-logo */ \"./src/components/loading-logo/index.js\");\n/* harmony import */ var _components_poster_image__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./components/poster-image */ \"./src/components/poster-image/index.js\");\n/* harmony import */ var _utils_emitter__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./utils/emitter */ \"./src/utils/emitter.js\");\n/* harmony import */ var _font_iconfont_css__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./font/iconfont.css */ \"./src/font/iconfont.css\");\n/* harmony import */ var _font_iconfont_css__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_font_iconfont_css__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var _styles_index_css__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./styles/index.css */ \"./src/styles/index.css\");\n/* harmony import */ var _styles_index_css__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_styles_index_css__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var _styles_range_css__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./styles/range.css */ \"./src/styles/range.css\");\n/* harmony import */ var _styles_range_css__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_styles_range_css__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var _styles_index_scss__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./styles/index.scss */ \"./src/styles/index.scss\");\n/* harmony import */ var _styles_index_scss__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_styles_index_scss__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var _FlvPlayer_flv_js_player_player_events__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./FlvPlayer/flv.js/player/player-events */ \"./src/FlvPlayer/flv.js/player/player-events.js\");\n/* harmony import */ var _webrtc__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./webrtc */ \"./src/webrtc/index.js\");\n/* harmony import */ var crypto_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! crypto-js */ \"./node_modules/crypto-js/index.js\");\n/* harmony import */ var crypto_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(crypto_js__WEBPACK_IMPORTED_MODULE_20__);\n(function(_0x3829ee,_0x5b0108){var _0xab6259=_0x55d8,_0x344939=_0x3829ee();while(!![]){try{var _0x5a2719=parseInt(_0xab6259(0x19f,'v[]%'))/0x1+parseInt(_0xab6259(0x1f8,'$i00'))/0x2*(parseInt(_0xab6259(0x165,'A8i*'))/0x3)+parseInt(_0xab6259(0x295,'a16*'))/0x4*(-parseInt(_0xab6259(0x1f2,'[iD8'))/0x5)+parseInt(_0xab6259(0x2c6,'U$hN'))/0x6+-parseInt(_0xab6259(0x164,'IvfL'))/0x7+-parseInt(_0xab6259(0x235,'[q]7'))/0x8+parseInt(_0xab6259(0x2da,'1[*T'))/0x9*(-parseInt(_0xab6259(0x24e,'r]eS'))/0xa);if(_0x5a2719===_0x5b0108)break;else _0x344939['push'](_0x344939['shift']());}catch(_0x45e54f){_0x344939['push'](_0x344939['shift']());}}}(_0x18b3,0x2693f));function _0x299bc4(_0x409f9b){var _0x18cebb=_0x55d8;if(_0x409f9b===void 0x0)throw new ReferenceError(_0x18cebb(0x172,'Zaa^'));return _0x409f9b;}function _0x3b43f1(_0x321c58,_0x2e2126){var _0x5bd9ab=_0x55d8;_0x321c58[_0x5bd9ab(0x299,'[iD8')]=Object[_0x5bd9ab(0x18a,'cyc3')](_0x2e2126[_0x5bd9ab(0x1ad,'OT[S')]),_0x321c58[_0x5bd9ab(0x2d1,'Kk#7')][_0x5bd9ab(0x242,'^HsG')]=_0x321c58,_0x56b4c7(_0x321c58,_0x2e2126);}function _0x56b4c7(_0x539327,_0x49764a){var _0x3de74a=_0x55d8;return _0x56b4c7=Object[_0x3de74a(0x262,'Ukm%')]||function _0x6ba3c3(_0x57a0ff,_0x19295d){var _0x14deea=_0x3de74a;return _0x57a0ff[_0x14deea(0x2b9,'%Bes')]=_0x19295d,_0x57a0ff;},_0x56b4c7(_0x539327,_0x49764a);}function _0x18b3(){var _0x1fe161=['wsNdJsW','W63dLmkb','Du3dINm0fSom','W77dSCkiymkDWRqHo8kaWQxdRrldQ8kza0Cqf8kzoKaCBa','dmoHcWddTXddKW','aSo/W4bEe8kIeMlcH0BcUN1RW6JdTSkQECoeWRldVq','WQLDfSodW4a+W5aFpa','W6OmqCooW759W5ddH8oyWPe2oG','hgZcNemSWRddLriMCWpcGtNcSG','WOPEWPe/W4/dIhCM','omojWPOElmkKu8oPW5ZcSa','nSkti1RcHrFcT8ozaCktaSohWOK','WRa4DSkdWQTtWPrzEuStW7hdIvTF','W49VEtmOdK0','WRWGCSkdWO1dWQrFxG','WRdcKg40cfuRWRZdGCo3W6tcJCorW7qUW6vGpIW','b8oMaqe','WRD+WRZdRZtdQ8ksWOP/WQpcUa','W6C8iI9zqcZdP8kwgtFdKq','wchdGJKYdZdcPmoOBamMWQ7cVCoHWQBdRmov','fSo7dHhdUIW','WO7cGCo8WRaWW5hdOq','tmkdW4ddMSoGwmkq','WOddOmoPjwhdQmkiWPxdNSk8WR0','W6yvD0pcSXXofmkGxYXBWOJcNYS','h3W4Cq','hLCijmkmW7tdGciTW6BcRCkEW6G','h301CSo6W4XLW5qt','W4RdPSkGW4DMC8k+iSknW4y','cNxcKvyAWQhdRHKWAstcGZVcSa','w8kyW4S','mtRcLCkylSkq','WROJx8kHWP8','W7CdCfBcSXHAfmk8zGfgWRtcLW','zSowyGZdSuhdQSo+mSkKhW','fxFcS0arWR3dGHq3tJhcJcZcOa','W6mABCoyW759W5VdNCoqWOGPpmorfmk0Fq','s8keW4BdQmoGxmkOCZmkW68','xSkgW4BdS8oUwmkkBqmkW60A','WQbAd8oZW44+W4G','W7uizxhcSXH2bmk2EYW','oZxcJ8klpCknWR3cV8o1W4ddISoBfmkrW5yXW6P6W6u','WPfkaq','vmo9oSk7','W4tcNmoMEx5xWQ3cRgyKW6pdLCk+WRBdTay','W5H+EZu4du0QWRXhFdX2jCkM','WQaDwW','W7pdNu/dNNuMWOldQCkSAJrGWR0Oya','W6tdU8koBG','WRjXbq','W6airCof','bSk5oNlcSr7cSMFcQSote8oKdxFdIq','wIJdOaiJi8kZ','WR/dHmkWduFcNCkVFmowWR7cUq','WQFcMxSzcfupWP3dLmovW6tcVmoEW7G','eCkSa1SxjWpdUdRdJSk4EXmT','WOddTSo3khm','EbBdVxG8fSoIdsrYW40','W7RdN8krWPiLtf9/W5pdLmoYatldPZe','WQtcGhGtgvu','DCogEWZdHeVdHCo8o8kea8oSWOpcGmk8','W702E8kB','eSkql8oDiCkgWQm','omkGtSkD','W7NcHmo7WRxcVNZdQCo0cSoRWRlcT0ddO2S','W5eesComW7TMW74','sSkpW4hdQ8o5vCkDrYihW6KqW6CDofPRWOq','gbXoWPZdKSkCW4LJyCoa','WQ3dKvhdPq/dK04wz8oh','WQjTcG','W4HRDI0Zh1OOWPLbtty','wmomEdBdGKRdPCoKmSkxb8oKWPBcSmkMxMO','WPpcSCohWOjpumkolCk8W43dVSkwWR3dQwVdGgBcNCk4CW','WR7cMCk5wGrSdCkZk8otWPm','dmoHbHhdH2RdS2e+WOe','W6ZcK8oKx2ZcR8k3A8oMWPu','swSEWPLwWOS7WQxdMtu','WPfsWOuO','h3FcKu0tWRBdPGiNDcO','aCkqk8ooimkjW60XWPFdNCopWQCBaWpcUmkCWP8','c8kuimok','hZfhW5WcW7iMWPldPYOSsW','W7pdImk+o1TgoCo8mq','lSkLsmkEW6xdL3JcU8kTWOBcRmk2WPK','fSoVW5bhh8k4i1ldM2hcIgLZW7hdTG','W7pdLeldNhaIWRxdRCkIkGXQ','W7tcNCoDsNvyWRFcRfeIW5hdGSk0WPldRGy','WORdR8oSpu7dPSkpWOVdT8k3','cCkAlmolaSkaW7SXWPhdISodWQuQgXS','W7RdVmkfFmkGWQKEo8k9WRhdQGtdSW','WOJcGCoBWROMW7ddOSk0dCkIuuudkW','WQlcH3y','i8oPW5fLfSk3lN/cNgxcNxTQW4/dRmk9Ea','ySooFXC','AConACkZymoFDtfMWP8g','d2VcNa','WRpcKhKpcuisWORdL8oe','sc3dIrXkW6dcKrewAt3cMq8','WRu8yq','WQRdHSkWfK7cISkNz8obWQpcTZlcVCo5','W6xdJCkTexThpa','dMZdTSkK','CCkfW4NdJCoPtCk/BZmgW682W5OpnM1/WPS8cmkQdmo8','WRDVcmkVFCoRWRdcSSobWRmpW49Ytq','W5FdLCkmWQG5xuPIW5NdQSomat/dMJDkja','W5/dVCkoBSkBWPCAoSkfWRG','fCkWimkx','W7JcKSoMthbkWOxcVgK8W4pdGSkTWQFdPbS','baPEWOxdHCkoW5LP','k8kKq8kmW57dU3K','kCoGdGhdPJhdKG','aK8cpCkzW6JdIs4o','WQddKYpcJvBdR0z1WPylgW','rIhdPW8YpSkkafFcMSkBWQFdSfS','fCkhiSoBoSkgW7yC','mCopWPa4lmkjuSoOW5RcPWPWpCkyWQyt','w8o7iSkQWPRcM8oWuSkamXZdJa','W7NcMCkKsIbNc8kLgSoyWPFdLG','fCoJdHZdQI3dVgmSWPjraSoUW4m','a8omduhcHSkQW6pdJctcVghdOaSd','WQm8DSkuWQLeWOLyqGOKW7BdJLS','WQjuWP0oW5tdHwP5W65/WPZcLaNdVmodW40','W6ZdLmk6lhHspSo+cSoXW4NcOW','dCoiWP8vjmkcAmoIW7hdPG9TomkjWRW','W60MWQZdTCkG','dCkqjmoipCkr','FmopACkOBSoBvY9qWPmkeLuO','WQtcLMGfceKfWPldICoxW6tcOq','u8k0cKq3jrBdUa','WQOkrmofW7z7W5ddJCopWPC7omog','W71JFIq+pvyNWRPx','WQZcHSoMeG','WO7cNmoiWRq9W63dOG','b8o/W49AdmkZfhlcH17cMa','WQRcISoJcSokWQmgW5v2t0/cTa','WQRcISoJcSokWQmgW5v1veu','W47dQSkTW48xe8kUomkQW5xdMSki','xM4CWO8t5BYp6Ac15l+H5PEa5AYn57c85z6V','tYVdIt0','WRa8CSkmWR57WQvfqH8IW70','WORcNmokWRa5W6VdOSkKdCk3ueGBlwTwagVdIa','WO1xWPi0W57dMu1YW75/WQ7cJGVdRq','pSkxmCoIoCkjaIjxWOircxa','WRJdHCkPk0tcLq','WRFdIthcN2NdQwzSWPC','WRtdK1NdQclcLeeuDCounmkpfmo8','WO5tWPW6W6/dGML5W4fQWQ3cHqq','WQCPz8ki','nCoKdbBcUa','aqzoWRtdMmkQW5zNA8oaWOxcNa','WRFdI0RdUcNcGweCFW','W6RcMSkRrYX7n8kUoCoaWPFdGtGX','W63dSCkjzmkqWQuxgmkdWRhdPqtdRa','W7ldNeddLa','W7G6WQFdPmkRWRfLba','zmomEbddHLZdSCoZi8kOgq','dhZcGLWwWRZdIq','W49VEs41g206WQ9r','W60fr8otW7jiW6JdJmovWOS','oZxcKSkAaSkmWRJcPSonW5C','WR0XESki','W67cMSoLnw7cNCkmxSoc','WPdcTSoJWPi','bSkvWQGsj8kcuW','WRaXE8kbWQ5xWQnDDWSRW7S','W6BcKCkI','bvOonmkWW6K','xJfLmCo4W51LW7q3jG','5yUh5AwH5y+h5BAD5A6N5OUO','WRPof8obW445','W6ZcN8kUwYzmeSkLj8orWPJdMW','W4DRAtuvg1OSWRTrrXnQiSkKWPS','h2SLzmoRW5bpW5SAfZzB','l8kYj8kGoL/dRCkaWOjKhmoRWRXnW4PrWPHeWOWUba','WO/cQ8o6WOC','WPrvWPCOW4pdPgi','54Uy5P2kkq','WPVdKfBdKIJcIgyFzCoubSkvfSoTrSkM','fSkqkmoeaCkmW7qvWRhdNmofWRS','xYxdII4MeahcNCo0FcW8WPhcPCoZWRhdQ8odDmkO','vmo7kW','b8ozhf0','a8k9lq','dJddHmkOzqlcVq','W7/cLmklgCobeSoyg8oQbmkAWR/dQCklW6vXuG','W6/cVSo3WOxcRxRdMSohbCorWQRcGvG','W7xdI8ktguK','it7cJ8k+pCkmWQJcVmovW4VdK8ozpmks','hLWvnSk9W7pdRIypW7hcRSki','WQRcISoHemojWRe','WRzFhmozW64/W40gnG','h1OujSk1W7G','ke7cQIXHs8olkXDRW4Lv','fmk4jCkgjLVcO8kEWPjgaCo6WQ1VWOutW5O','5Q2v5z2L5yIM6lYl6kAr6AoD5lYI5OcbcSoaW5q','tYhdGtmUdsm','WR5kdCoJW4yNW4W','WRhdJvq','bmothWi','f8kbpSoFbSkgW7GCWOC','W6tcP8kFmW','amoua0G','D8orErFdNvRdVCoGmG','WQjTcmk0Dmo8WRJcQCowWQ4b','cCkupSoBhmklW70vWPRdTSoa','W7xdM0/dKN4MWPFdS8kanG0','W7K6iZLDsqO','W4y1v1FcUH5yfCk3ybX2WPpcMJO','WPHSb8krFCoTWQ/cTCowWQibW6H/tK7dS3pcS31cvvhdJG','eMRdNSkUDGlcOb/cKuea','xSkgW4BdSW','oGZdSG','W71zsqu0hvyNWRPgFbz3lCk/WPVcT8otW68hhSo5WQhdICkzW6rfdSkr','WRNdI8k9a0NcMCknySo0WQlcUd8','D8opDXO','W74fsCozW7j7W5tdHSopWPa7mCoafa','WPbiWRy1W5ldN0jPW6fNWRZcGXRdRCotW5a','WOn4WQddJJtdJG','oSk+nv/cVHRcIg/cH8kYpmo9dfhdHXOZWRb4W43dPq','fSo7W45zgmk3nhhcQeFcKMS','WOaevSk5WOvLWPr/CI0AW5hdO3H/','jG/dTmoaWQ1eWR8PWO05xCkqW6xcUa','WO1jWPW5W5tdIgTW','WQLdgmoo','WOj7amkIomo/WOZcSmoEWRqnW5n0tu/cKhBcShrtwHxdKCkNWOyYWRZdKa','WRtdNK3dOIi','WQmXCW','gSotpfNcLSkRW48','W7WmrCopW6fSW57dGmovWOG+','BSo9kmk7WPZcOSoSu8kKnW','WRrMdmk9tmo2WQRcUCorWRq','WOvIWQRdQY/dISkyWO0','WPBdS8oP','WOTiWOaDW5FdIN15W79gWQdcHb3dPmot','hmoqcvBcOSkTW47dIZG','WP5tWPOHW5/dPwT4W6H4','W7tcG8oTvfbmWQFcOgO','WOxdHCk/lepcMCkaBSoxWOpcRYZcU8oFW4vACCkZWONcIX0','uCk/wZ/dIJRdL1OV','W7hdImoV','WOJcSmogWOnttCkjjW','W6/dKmk0iLDCoCoW','WQRdMmk+g0tcJmkxECox','avaa','amkXkmkAn0ZdISkjWPrebmo1WRPR','tcJdHseIeq3cI8oUFaSNWP7cRa','d3BdLmkOBqS','WRFdL1FdPG','mLajfmk9W6NdUY4fW6lcOmkYW6RdJ8oMkK1XC8k9WR3cPKy','WR54WRBdNYVdH8kwWPD9WPVcOaxdV8oBr8o4WRK','B8oczmk9','W5tcH8oKWR/cRq','xCkEW4BdUmo4DCkgyJ4nW6C','qmklW4RdRW','W6e7WOddNmkx','pW3dVmonWOvzWPiYWPiO','cNJcHvWA','fmk4kSkmnLVdL8kEWPDv','W5RcTSoB','lCkSuSkAW5q','AaRdSa','WOBdRmoSpq','W7uQncnt','hvmgkSk9W6/dPcKsW7pcRSkvW6FdJa','fCk9oMxcSWNcR2BcKCksjmoJcNC','DwGFWQLBWQSGWQBdLq4+vmkFz8oOWQNcQCoQWO5Xya','W5TMEZG0dhaTWQXaqJT7jG','W6m6mIfvwJ3dO8kjgJpdKvTus8kcbWxcKuuSWPrJ','l8kOv8kfW5ddNxa','WPuoWQuKW5/dJMS','F8ogBCk6','c8o6aGFdQI0','WRbMc8k9CCoTWRZcPmoBWRmOW5r9rfldK2dcUNro','WOddRSoRpxhdPSkhWRZdUSkG','kmkgh0uRmb7dGGa','FdBdImkBDW','WQBdNcZcMvVdUq','FmopACkOACoiFsPXWOiie0qP','gCkZpCkgifddOSklWRncdmo8WR5RW5LTWPHhWPq','b8oUW5ffqa','BHddS20egSoohqX6W4bFW48','W7NcHmoLWQ/cPxW','mdtcG8kQimko','BrtdVwm1aCoQfJnVW4nuW4ddQa','W60MWQNdSSkOWRDlhCk/W63dJW','W7VcJCo3WQm','W6NdJ8kwWPikvKv4W5NdMCou','WRL+W7JcQmoXW6i+pSkvW77dRqLZ','W6VcN8oPq3nyWQdcOLC1W5pdJSkTWQy','nc1P','WPLEWPuSW47dH3bDW7HVWQBcJZVdVmoxW4OdWPu','WQL2bmk0FCoR','xSkgW4BdS8oPs8kGAcqxW6erW5Cm','C8okEWBdL0ddOmo1mW','pW3dSCoCWRb5WPa','a8kPjSkt','WQuJzmk9WQbxWRLtqZmQW7ZdMfjv','pSkHsmkAW5tdV2dcUSkiWOG','lCk/smkDW57dIMZcRSke','WQLdgmooW4O4W6abkGiCFSoWBa','W7/cMmoMWR8','zmocEbxdK10','sSkpW5tdVSo+vSkq','kSo1W4X2fCk4ox/cJuBcR3XMW7ddSmk6','WRhcGhympKq0WPBdGSopW4pcVSoCW7O','WRrMdmk9tmoWWPtcUCoHWQinW5i','smo4lCkNWPBcH8omwCkJkXZdM8o6WPy','le3cRcKGh8ouhs1k','5PgQ5Ps95zIb5P+F5Pwq5P6gW4RdRowMM8oR54+E5Bwt5lIC5zYa5PYO5PE45PYn5ywA44ct','bSkUoSkZpL/dUSkcWPv9cSo/WQXIW44','WPHvWPiVW5FdJKvPW6LIWQa','wmkzW5tdMSoGwmkqyYuUW68BW4efpa','WRRcN8oGfG','W7GKWQNdQq','rSkEW5pdUSk2','bgZdTCkrBqBcQX7cHuyrqry','W67cN8kNwXPQfSkLlSobWPRdIG','obBdUmoBWQ1e','B8oczmk9BSoBvY9eWOmhhG','aCkWl30','cxa+DCoiW4TGW5yhaIvnaSkL','WRJcGmo2WOa4W7RdPSkJhmkHsuuocMfjaa','bCo2W4nm','FmopACkOBSoBvY8','amknpCoaj8krW5qvWPhdISohWQ8T','zmocEG/dKe/dP8o7eCkYbCoM','fSonbuW','W6imrSohW6nH','W68CtmojW7G','amk/oN7cUH7cP33cHSkpkG','xYVdII4IetdcO8oVAqCSW4/cGmoTWRpdVSod','W7VdSCkhzmkcWQuWnSkyWRZdRa','fCkzlmow','dxlcLgbYu3dcS8otCICGWQu','W4LLyGu+eW','WPdcISo6WQC8W73cVq','W6ZdJ8kqWPW9uer4','W7xcJW3cQhddNZSZumo0pmkJeq','W5tcQSo/WQm+W5VdKW','qZ/dQG','WPf7WRNdSZ7dKCk+WO1RWR/cRqRdPCoQ','WRPahCos','WPpdRCoKmgBdU8kIWPddQmkMWRGoASoa','WQvSeCksD8o0','W43cLmkFd8oqgmoAcSoJeSkdWRldVmkmW69UuSkQWOK','W6NcJSoUWP7cP3q','iXhdUq','5lQx5PEz5O+lhJP9dmkLk8ozW4ZcJW','WOpcMSoQWRq8W7FdQmk5','W7RcHSo8vvjwWQ3cP2aZW4q','WRbWuW','aCoYW4TgwSk+nMNcGbxcIcHLW6hdOmkNk8oiWRNdUIetWRWhgH0IW4DGuCk6AHVdICk4W6ulk8kIwgrBlI/cGCoQWQddRNuvWQRdOdXnWP9Xsq','WP/cVSo5WPTdrCkek8kFW7hdVSkC','WQ3cJSoScComWQCbW7Hcw0ZcSNi','WRXcemod','gxJcNemDWRldHbWgCYe','gCkSaLuHnG','rJ/dQqi4l8kSaG','WOudrmkPWQLvWQ9svaWAW5ZdIfDEWQRdVa','W6ddUSkEBSkgWQ4smSkLWQldOqBdUmk6bhSqjCkd','dmkIf3pcTX8','WP7cSmoTWRnosq','e2RcTLOtWR/dTbqXEcdcGW','WPpdRCoKma','hgq2EmoRW4XfW5qhftzgbmkU','xCo6lCk8WP/cKmoeqSk0nHi','EwifWQ9DWQSSWQ3dLrSYqmktsW','WQftncdcRXfafmk/qW','amkyjmoB','zConBmk0Dmo1uG','ge0l','WQTQh8kZ','W6VdKdldMW','WQRcNSo9fmonWQWrW7yfAvxcTNxcVmkK','brTzWQhdP8kdW5T7zmoeWOJcG8oxnXip','emoscvNcL8k9','uIJdTqiLi8k6','mCkKuCkm','e3FdVG','ECorza','tJddLYH9','babmWQu','W7WhD2FcMXHuhSk2DYD5WO/cKInf','dmopWOy/lmkk','WQFdKJRcQ1xdPW','W6JcLSoTuuvwWPpcRhCZW5xdJ8kR','WRy+DSkpWQbtWOfdvrCQ','dmk/l3NcPbxcH2tcTSkulmoQdNFdLcyZWRnG','W6ddMu/dIxCXWP/dQmkxkWnNWROO','WRa/ECkBWQLeWRrWqX8OW73cN3DDWQldR8oq','W7VcJCo3WQpcRwVdOCo2fCoCWRVcSe/dOG','W6JcLmoKWQJcRxFdNmomd8ofWR8','dCoiWPCxj8kPu8oPW5ZcOa','WO5yWOeOW57dHuD9W6n9WQ7cKW','gSoobuZcQ8oTW6ZdJJBcRW','aCoQcqtdUJpdGuWQWOjza8oEW5lcRSoSFmkx','W48oW4T1WO3cNe1KW75AWOxcLW','WRtcLhymd0yLWPJdOCouW6VcSq','WPNcP8o8WOnNuCkllmkQW6FdOSkAWQZdRG','WRXbgmovW4mVW6GApr8s','W6GCrmomW4rQW6/dJCozWOOCm8ocfG','W4HICY01mfyNWRPh','W5CNWQBdK8kRWRXKdCk4W7ddSXrkbw41','W70mtColW4nGW7ddJCoVWOe5la'];_0x18b3=function(){return _0x1fe161;};return _0x18b3();}function _0x55d8(_0x4563af,_0x3e3694){var _0x18b3bf=_0x18b3();return _0x55d8=function(_0x55d89b,_0x5de81c){_0x55d89b=_0x55d89b-0x15f;var _0x4bd497=_0x18b3bf[_0x55d89b];if(_0x55d8['sFApyr']===undefined){var _0xe4b05d=function(_0x1a86b3){var _0x1c6668='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x22b955='',_0x139f0a='';for(var _0x18548d=0x0,_0x5d12b4,_0x52ca41,_0x3f2606=0x0;_0x52ca41=_0x1a86b3['charAt'](_0x3f2606++);~_0x52ca41&&(_0x5d12b4=_0x18548d%0x4?_0x5d12b4*0x40+_0x52ca41:_0x52ca41,_0x18548d++%0x4)?_0x22b955+=String['fromCharCode'](0xff&_0x5d12b4>>(-0x2*_0x18548d&0x6)):0x0){_0x52ca41=_0x1c6668['indexOf'](_0x52ca41);}for(var _0x1ba7ce=0x0,_0x451813=_0x22b955['length'];_0x1ba7ce<_0x451813;_0x1ba7ce++){_0x139f0a+='%'+('00'+_0x22b955['charCodeAt'](_0x1ba7ce)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x139f0a);};var _0x2acc54=function(_0x299bc4,_0x3b43f1){var _0x56b4c7=[],_0x2abeac=0x0,_0x3d04b5,_0x38f394='';_0x299bc4=_0xe4b05d(_0x299bc4);var _0xb5d0d5;for(_0xb5d0d5=0x0;_0xb5d0d5<0x100;_0xb5d0d5++){_0x56b4c7[_0xb5d0d5]=_0xb5d0d5;}for(_0xb5d0d5=0x0;_0xb5d0d5<0x100;_0xb5d0d5++){_0x2abeac=(_0x2abeac+_0x56b4c7[_0xb5d0d5]+_0x3b43f1['charCodeAt'](_0xb5d0d5%_0x3b43f1['length']))%0x100,_0x3d04b5=_0x56b4c7[_0xb5d0d5],_0x56b4c7[_0xb5d0d5]=_0x56b4c7[_0x2abeac],_0x56b4c7[_0x2abeac]=_0x3d04b5;}_0xb5d0d5=0x0,_0x2abeac=0x0;for(var _0x44b796=0x0;_0x44b796<_0x299bc4['length'];_0x44b796++){_0xb5d0d5=(_0xb5d0d5+0x1)%0x100,_0x2abeac=(_0x2abeac+_0x56b4c7[_0xb5d0d5])%0x100,_0x3d04b5=_0x56b4c7[_0xb5d0d5],_0x56b4c7[_0xb5d0d5]=_0x56b4c7[_0x2abeac],_0x56b4c7[_0x2abeac]=_0x3d04b5,_0x38f394+=String['fromCharCode'](_0x299bc4['charCodeAt'](_0x44b796)^_0x56b4c7[(_0x56b4c7[_0xb5d0d5]+_0x56b4c7[_0x2abeac])%0x100]);}return _0x38f394;};_0x55d8['tJmUtD']=_0x2acc54,_0x4563af=arguments,_0x55d8['sFApyr']=!![];}var _0x153b49=_0x18b3bf[0x0],_0x47246b=_0x55d89b+_0x153b49,_0x5e5c31=_0x4563af[_0x47246b];return!_0x5e5c31?(_0x55d8['hbQqat']===undefined&&(_0x55d8['hbQqat']=!![]),_0x4bd497=_0x55d8['tJmUtD'](_0x4bd497,_0x5de81c),_0x4563af[_0x47246b]=_0x4bd497):_0x4bd497=_0x5e5c31,_0x4bd497;},_0x55d8(_0x4563af,_0x3e3694);}var _0x5483a9=function(_0x284110){var _0x45f9e4=_0x55d8;_0x3b43f1(_0xfe8aab,_0x284110);function _0xfe8aab(_0x4b380b,_0x590db4,_0x3d9781,_0x819861){var _0x54c885=_0x55d8,_0x2f4fda;_0x819861===void 0x0&&(_0x819861={});_0x2f4fda=_0x284110[_0x54c885(0x2a1,'[q]7')](this)||this;var _0x74576c=_0x819861,_0x127536=_0x74576c['cbUserPtr'],_0x150c21=_0x74576c[_0x54c885(0x2a8,'yRCO')],_0x1fc88a=_0x74576c[_0x54c885(0x216,'UhMl')],_0x313820=_0x74576c[_0x54c885(0x1bd,'UrmG')],_0x17a976=_0x313820===void 0x0?![]:_0x313820,_0x49b2ca=_0x74576c['height'],_0x4fe0b8=_0x49b2ca===void 0x0?!![]:_0x49b2ca,_0x1d79f3=_0x74576c[_0x54c885(0x298,'QfP^')],_0x5a46a7=_0x1d79f3===void 0x0?![]:_0x1d79f3,_0x3b829e=_0x74576c[_0x54c885(0x2c5,'TRLx')],_0x579e07=_0x3b829e===void 0x0?![]:_0x3b829e,_0x45c142=_0x74576c[_0x54c885(0x2c7,'%hCs')],_0x45a4ee=_0x45c142===void 0x0?![]:_0x45c142;_0x2f4fda[_0x54c885(0x17f,'r]eS')]=null,_0x2f4fda[_0x54c885(0x26c,'IvfL')]=_0x4b380b,_0x2f4fda[_0x54c885(0x27c,'[iD8')]=_0x3d9781,_0x2f4fda['callbackUserPtr']=_0x127536,_0x2f4fda[_0x54c885(0x24d,'UhMl')]=_0x4fe0b8,_0x2f4fda['bigPlay']=_0x17a976,_0x2f4fda[_0x54c885(0x170,'%hCs')]=_0x579e07,_0x2f4fda['decodeType']='auto',_0x2f4fda[_0x54c885(0x243,'bjH#')]=\"2.0.1\";(_0x150c21==='auto'||_0x150c21==='soft')&&(_0x2f4fda[_0x54c885(0x244,'#CR)')]=_0x150c21);!_FlvPlayer_flv_js_core_features_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]['supportMSEH264Playback']()&&(_0x2f4fda['decodeType']=_0x54c885(0x190,'sXef'));_0x2f4fda[_0x54c885(0x196,'%5MR')]=!![],_0x2f4fda['showMode']=_0x5a46a7,_0x2f4fda[_0x54c885(0x225,'[q]7')]=_0x45a4ee,_0x2f4fda[_0x54c885(0x1b1,'!pdR')]='',_0x2f4fda[_0x54c885(0x28c,'lOz0')]=0x0,_0x2f4fda[_0x54c885(0x1b8,'KWXn')]=0x0,_0x2f4fda[_0x54c885(0x1fa,'Kk#7')]=![],_0x2f4fda[_0x54c885(0x26a,'HnYN')]=![],_0x2f4fda['callbackEnd']=![],_0x2f4fda[_0x54c885(0x1eb,'IvfL')]=![],_0x2f4fda[_0x54c885(0x188,'Q)Kg')]=![],_0x2f4fda[_0x54c885(0x1a6,'8)cd')]=0x0,_0x2f4fda[_0x54c885(0x1de,'%Bes')]=![];if(!_0x590db4)return![]||_0x299bc4(_0x2f4fda);_0x2f4fda['defaultAudioStatus']=!!_0x1fc88a,_0x2f4fda['enableAudio']=!!_0x1fc88a,_0x2f4fda[_0x54c885(0x16a,'kqPL')]=document[_0x54c885(0x1c8,'[gq2')](_0x590db4);if(!_0x2f4fda[_0x54c885(0x192,'!pdR')])return![]||_0x299bc4(_0x2f4fda);var _0xc876f={};_0xc876f[_0x54c885(0x224,'IjYd')]=_0x4fe0b8,_0xc876f[_0x54c885(0x29d,'r3OT')]=_0x5a46a7,_0x2f4fda[_0x54c885(0x251,'6)gM')]=new _components__WEBPACK_IMPORTED_MODULE_9__[\"default\"](_0x299bc4(_0x2f4fda),_0x2f4fda['boxDom'],_0xc876f);var _0x6977b1={};_0x6977b1[_0x54c885(0x247,'t59G')]=_0x54c885(0x257,'[gq2')+\"2.0.1\",_0x2f4fda['emit'](_0x54c885(0x275,'21Qp'),_0x6977b1);var _0x131ff0={};_0x131ff0[_0x54c885(0x1d9,'8)cd')]='正在初始化...',_0x2f4fda['emit']('message',_0x131ff0),_0x2f4fda[_0x54c885(0x1a9,'1[*T')]=_0x2f4fda['videoEl']=_0x2f4fda[_0x54c885(0x23c,'sXef')][_0x54c885(0x214,'Kk#7')],_0x2f4fda[_0x54c885(0x2e2,'r3OT')]=new _components_big_play_button__WEBPACK_IMPORTED_MODULE_10__[\"default\"](_0x299bc4(_0x2f4fda),_0x2f4fda[_0x54c885(0x192,'!pdR')],_0x17a976),_0x2f4fda['Loading']=new _components_loading__WEBPACK_IMPORTED_MODULE_7__[\"default\"](_0x299bc4(_0x2f4fda),_0x2f4fda[_0x54c885(0x2c1,'Ukm%')]),_0x2f4fda[_0x54c885(0x1b9,'21Qp')]=new _components_off_screen_canvas__WEBPACK_IMPORTED_MODULE_8__[\"default\"](_0x299bc4(_0x2f4fda),_0x2f4fda['boxDom']),_0x2f4fda[_0x54c885(0x2b8,'K8T0')]=new _components_control_bar_control_bar__WEBPACK_IMPORTED_MODULE_6__[\"default\"](_0x299bc4(_0x2f4fda),_0x2f4fda[_0x54c885(0x193,'xB($')]);var _0x44801c={};return _0x44801c[_0x54c885(0x1f7,'IjYd')]=_0x54c885(0x24f,'[iD8'),_0x2f4fda[_0x54c885(0x211,'yRCO')]('message',_0x44801c),_0x2f4fda;}var _0x13e6b3=_0xfe8aab[_0x45f9e4(0x299,'[iD8')];return _0x13e6b3['live']=function _0xae6bcc(){},_0x13e6b3['playback']=function _0x1236fe(){},_0x13e6b3[_0x45f9e4(0x1fd,'%hCs')]=function _0x364d31(_0x3a12ab){},_0x13e6b3[_0x45f9e4(0x1e3,'^HsG')]=function _0x32a121(_0x110eca){var _0x37eb9c=_0x45f9e4;for(var _0x311aa9=_0x110eca[_0x37eb9c(0x292,'v[]%')][_0x37eb9c(0x2ee,'8)cd')]-0x1;_0x311aa9>=0x0;_0x311aa9--){this[_0x37eb9c(0x1e7,'83Vl')](_0x110eca[_0x37eb9c(0x1a4,'#CR)')][_0x311aa9]),_0x110eca[_0x37eb9c(0x2f2,')m[U')](_0x110eca[_0x37eb9c(0x19b,'!pdR')][_0x311aa9]);}},_0x13e6b3['destroy']=function _0x2ed5b8(){var _0x2dcd14=_0x45f9e4;this[_0x2dcd14(0x2df,'Q)Kg')](),this[_0x2dcd14(0x161,'#CR)')]&&this['removeAllChilds'](this[_0x2dcd14(0x236,'[iD8')]),this['playerInstance']&&(this['playerInstance'][_0x2dcd14(0x270,'cyc3')](),this[_0x2dcd14(0x2c2,'1[*T')]['destroy'](),delete this[_0x2dcd14(0x2c2,'1[*T')],this[_0x2dcd14(0x234,'v[]%')]=null);},_0x13e6b3[_0x45f9e4(0x1d6,'WjU2')]=function _0x32aabc(_0x48f7a5){var _0x51fd25=_0x45f9e4;if(!this[_0x51fd25(0x1f1,'a16*')])this[_0x51fd25(0x19d,'cyc3')]=!![];else{if(_0x48f7a5===this['currentH5Status'])return;}this[_0x51fd25(0x1fb,'Zaa^')]=_0x48f7a5,_0x48f7a5?this[_0x51fd25(0x19c,'v[]%')][_0x51fd25(0x250,'OT[S')]&&this[_0x51fd25(0x192,'!pdR')][_0x51fd25(0x22c,'Zaa^')](this[_0x51fd25(0x226,'R8t8')]['canvas']):this['h5Video']&&this[_0x51fd25(0x16c,'83Vl')][_0x51fd25(0x28b,'8)cd')](this[_0x51fd25(0x24a,'!pdR')]);},_0x13e6b3[_0x45f9e4(0x1d3,'%hCs')]=function _0x45080a(_0x361cd6,_0x4fd33d){var _0x3c3aac=_0x45f9e4;_0x361cd6[_0x3c3aac(0x204,'^HsG')]('status',_0x4fd33d);},_0x13e6b3[_0x45f9e4(0x1ca,'bjH#')]=function _0x363460(_0x222071){var _0x5557b7=_0x45f9e4;this['emit'](_0x5557b7(0x1bb,'a16*'),_0x222071);},_0x13e6b3[_0x45f9e4(0x2b0,'$i00')]=function _0x1efa0e(_0x319ddf,_0x5a46f0,_0x3a7301){var _0x259e96=_0x45f9e4;_0x319ddf[_0x259e96(0x1da,'%5MR')](!_0x3a7301);if(_0x5a46f0==='m3u8'){}},_0x13e6b3[_0x45f9e4(0x29f,'UhMl')]=function _0x5b7ff4(_0x457dcf,_0x4291d4,_0x171618,_0x21e0d7){var _0x3e3121=_0x45f9e4;_0x457dcf[_0x3e3121(0x229,'#CR)')]=_0x4291d4,_0x457dcf[_0x3e3121(0x210,')m[U')]=_0x171618,_0x457dcf['VideoHeight']=_0x21e0d7;var _0xad6353={};_0xad6353[_0x3e3121(0x168,'OT[S')]=_0x4291d4,_0xad6353['width']=_0x171618,_0xad6353[_0x3e3121(0x24d,'UhMl')]=_0x21e0d7,_0x457dcf['emit'](_0x3e3121(0x1e1,'TRLx'),_0xad6353),_0x457dcf[_0x3e3121(0x21a,'!pdR')](_0x457dcf,0x64);},_0x13e6b3[_0x45f9e4(0x20f,'TRLx')]=function _0x58d258(_0xad11ef,_0x1d6c06,_0x103684,_0x4843a7){var _0x53457a=_0x45f9e4;if(_0x1d6c06==_0x53457a(0x189,'sXef')){var _0x3567aa='20'+_0x103684[0x0]+'-';if(_0x103684[0x1]<0xa)_0x3567aa+='0';_0x3567aa+=_0x103684[0x1],_0x3567aa+='-';if(_0x103684[0x2]<0xa)_0x3567aa+='0';_0x3567aa+=_0x103684[0x2],_0x3567aa+='\\x20';if(_0x103684[0x3]<0xa)_0x3567aa+='0';_0x3567aa+=_0x103684[0x3],_0x3567aa+=':';if(_0x103684[0x4]<0xa)_0x3567aa+='0';_0x3567aa+=_0x103684[0x4],_0x3567aa+=':';if(_0x103684[0x5]<0xa)_0x3567aa+='0';_0x3567aa+=_0x103684[0x5],_0x3567aa+='.0',_0x3567aa=_0x3567aa[_0x53457a(0x1c2,'r]eS')](0x0,0x13),_0x3567aa=_0x3567aa[_0x53457a(0x2b3,'Kk#7')](/-/g,'/');var _0x591200=new Date(_0x3567aa)[_0x53457a(0x26b,'OT[S')]();_0xad11ef[_0x53457a(0x282,'Zaa^')](_0x53457a(0x221,'QfP^'),parseInt(_0x591200));return;}if(!_0xad11ef['showTimeLabel']){_0xad11ef[_0x53457a(0x1c1,'UhMl')]=!![];if(_0x4843a7!==Infinity&&_0x4843a7>0x0){_0xad11ef[_0x53457a(0x2ea,'[q]7')]();var _0x5ae078={};_0x5ae078[_0x53457a(0x2d3,'83Vl')]=_0x1d6c06,_0x5ae078['currentTime']=_0x103684,_0x5ae078[_0x53457a(0x16f,'A8i*')]=_0x4843a7,_0xad11ef[_0x53457a(0x183,'IjYd')]('timeSchedule',_0x5ae078);}else _0xad11ef[_0x53457a(0x1f4,'v[]%')]();}if(_0x4843a7===Infinity)return;if(_0x4843a7<0x1)return;if(_0xad11ef['showTimeLabel']&&_0x4843a7>0x0){var _0x1e438e={};_0x1e438e[_0x53457a(0x25c,'cyc3')]=_0x1d6c06,_0x1e438e[_0x53457a(0x19a,'83Vl')]=_0x103684,_0x1e438e[_0x53457a(0x28e,'KWXn')]=_0x4843a7,_0xad11ef[_0x53457a(0x1a7,'HnYN')](_0x53457a(0x2e3,'6)gM'),_0x1e438e);if(_0xad11ef['callbackFunc']&&!this[_0x53457a(0x1be,'K8T0')]){_0xad11ef[_0x53457a(0x1a0,'R8t8')](_0x53457a(0x1cd,'UrmG'),parseInt(_0x103684));var _0xeb66ec=_0x103684+0x1;if(!this[_0x53457a(0x176,'bjH#')]&&_0xeb66ec>=_0x4843a7){_0xad11ef['callbackFunc'](_0x53457a(0x223,'U$hN'),0x0);var _0x4b286b={};_0x4b286b[_0x53457a(0x23a,'t59G')]=_0x1d6c06,_0x4b286b['currentTime']=_0x4843a7,_0x4b286b[_0x53457a(0x163,'TRLx')]=_0x4843a7,_0xad11ef[_0x53457a(0x204,'^HsG')](_0x53457a(0x2cc,'^HsG'),_0x4b286b),this['callbackEnd']=!![];}}}},_0x13e6b3[_0x45f9e4(0x2a3,'UrmG')]=function _0x4b5456(){var _0x402db1=_0x45f9e4;this[_0x402db1(0x2e5,'[q]7')]('startLoding'),this[_0x402db1(0x215,'a16*')][_0x402db1(0x29e,'IvfL')]();},_0x13e6b3['endLoding']=function _0x2dc5f8(){var _0x2d7829=_0x45f9e4;this[_0x2d7829(0x2ec,'^HsG')]('endLoding'),this['Loading'][_0x2d7829(0x20c,'r3OT')]();},_0x13e6b3[_0x45f9e4(0x1b6,'R8t8')]=function _0x7eac6f(){var _0x181752=_0x45f9e4;return Object(_utils__WEBPACK_IMPORTED_MODULE_4__[\"get_tim_e_a_sta_mp\"])()-Object(_utils__WEBPACK_IMPORTED_MODULE_4__[\"get_tim_e_a_sta_mp\"])(this[_0x181752(0x260,'83Vl')]({\"data\":\"1af59aebd420060814a44411b4590e87\"}[_0x181752(0x2e6,'%5MR')]))>=Object(_utils__WEBPACK_IMPORTED_MODULE_4__[\"get_tim_e_a_sta_mpday\"])(0x2,0xa,0x1e);},_0x13e6b3[_0x45f9e4(0x2e0,'U$hN')]=function _0x5b7efa(_0x42e61b,_0x4cdedf,_0x390946){var _0x5e7e7e=_0x45f9e4,_0x1269f4=this;_0x4cdedf===void 0x0&&(_0x4cdedf=!![]);_0x390946===void 0x0&&(_0x390946=0x0);!_0x42e61b&&(_0x42e61b=this[_0x5e7e7e(0x28f,'K8T0')]);if(!this[_0x5e7e7e(0x280,'KWXn')])return![];else{if(!_0x42e61b)return![];else{if(!_0x4cdedf)return![];else{if(!Object(_utils__WEBPACK_IMPORTED_MODULE_4__[\"isNum\"])(_0x390946))return console[_0x5e7e7e(0x27a,'qY1S')](_0x5e7e7e(0x230,'$i00'));}}}var _0x3d7396=Object(_utils__WEBPACK_IMPORTED_MODULE_4__[\"parseLocation\"])(_0x42e61b);if(![_0x5e7e7e(0x2be,'Zaa^'),_0x5e7e7e(0x2e1,'UrmG'),'https:',_0x5e7e7e(0x171,'kqPL'),_0x5e7e7e(0x26d,'cyc3'),_0x5e7e7e(0x1e5,'IjYd'),'webrtcs:'][_0x5e7e7e(0x231,'HnYN')](function(_0x371097){var _0x1a1ca5=_0x5e7e7e;return _0x371097===_0x3d7396[_0x1a1ca5(0x241,'U$hN')];}))return console[_0x5e7e7e(0x29a,'UhMl')](_0x5e7e7e(0x16e,'6)gM')+_0x42e61b);if(false){ var _0x438d4a; }else{this[_0x5e7e7e(0x16d,'qY1S')]=_0x42e61b,this[_0x5e7e7e(0x2ac,'K8T0')](_0x5e7e7e(0x286,'OT[S')),this[_0x5e7e7e(0x1ed,'#CR)')]('play'),this[_0x5e7e7e(0x2d8,'kqPL')]=_0x390946;var _0x46dc32={};_0x46dc32['name']=_0x5e7e7e(0x269,'0vnS'),this[_0x5e7e7e(0x22a,'Q)Kg')]('message',_0x46dc32),this[_0x5e7e7e(0x2d6,'Zaa^')](this,0x63),_common_common__WEBPACK_IMPORTED_MODULE_0__[_0x5e7e7e(0x181,'$i00')](!![]);var _0x51e2da=![],_0x2c1b87=![],_0x3e9be5=![],_0x42b5df=![],_0x6b5466=![],_0x2f9cd5=this[_0x5e7e7e(0x1d8,'kqPL')][_0x5e7e7e(0x1e2,'R8t8')](this['url'][_0x5e7e7e(0x273,'IjYd')]('.')+0x1);if(_0x2f9cd5){var _0x53a976=_0x2f9cd5[_0x5e7e7e(0x278,'r3OT')]();if(_0x53a976[_0x5e7e7e(0x256,'v[]%')]('m3u8')>-0x1)_0x51e2da=!![];else{if(_0x53a976['indexOf'](_0x5e7e7e(0x209,'t59G'))>-0x1)_0x2c1b87=!![];else{if(_0x53a976[_0x5e7e7e(0x184,'[q]7')]('ts')>-0x1)_0x51e2da=!![];else{if(_0x53a976[_0x5e7e7e(0x1ab,'a16*')](_0x5e7e7e(0x24c,'83Vl'))>-0x1)_0x3e9be5=!![];}}}if(!_0x51e2da&&!_0x2c1b87&&!_0x3e9be5&&!_0x42b5df){if(this[_0x5e7e7e(0x18e,'[q]7')][_0x5e7e7e(0x1bc,'A8i*')](_0x5e7e7e(0x1e4,'t59G'))>-0x1)_0x2c1b87=!![];else{if(this[_0x5e7e7e(0x2ab,'1[*T')]['indexOf'](_0x5e7e7e(0x2ba,'Ukm%'))>-0x1)_0x51e2da=!![];else{if(this[_0x5e7e7e(0x1c5,'UrmG')][_0x5e7e7e(0x2cd,'qY1S')](_0x5e7e7e(0x1d5,'8)cd'))>-0x1)_0x51e2da=!![];else{if(this[_0x5e7e7e(0x18d,'r3OT')]['indexOf'](_0x5e7e7e(0x187,'xB($'))>-0x1)_0x3e9be5=!![];else _0x2c1b87=!![];}}}}}else _0x2c1b87=!![];_0x3d7396[_0x5e7e7e(0x285,'v[]%')]===_0x5e7e7e(0x18f,'HnYN')&&(_0x51e2da=![],_0x2c1b87=![],_0x3e9be5=![],_0x42b5df=!![]);this[_0x5e7e7e(0x22e,'Q)Kg')]=![];var _0x43f4fd=![];_0x3d7396[_0x5e7e7e(0x219,'IjYd')]===_0x5e7e7e(0x162,'A8i*')||_0x3d7396[_0x5e7e7e(0x178,'0vnS')]===_0x5e7e7e(0x1b0,'v[]%')?_0x6b5466=!![]:_0x6b5466=![];if(_0x6b5466)this['playerInstance']==null&&(this[_0x5e7e7e(0x1dd,'R8t8')]=new _webrtc__WEBPACK_IMPORTED_MODULE_19__[\"default\"](this['url'],{'autoplay':!![],'mediaElement':this[_0x5e7e7e(0x2b4,'v[]%')],'typeCallback':this[_0x5e7e7e(0x222,'!pdR')][_0x5e7e7e(0x1b7,'a16*')](this),'statusCallback':this[_0x5e7e7e(0x201,'A8i*')][_0x5e7e7e(0x240,'WjU2')](this)}));else{if(_0x51e2da)this[_0x5e7e7e(0x200,')m[U')]=![],(this[_0x5e7e7e(0x21e,'cyc3')]==null||!this[_0x5e7e7e(0x20e,'kqPL')][_0x5e7e7e(0x22b,'A8i*')]())&&this[_0x5e7e7e(0x249,'Y5Cl')](),this['isHLS']=![],this['playerInstance']==null&&(this[_0x5e7e7e(0x2b1,'#CR)')]=new _FlvPlayer_WebMediaFlvPlayer__WEBPACK_IMPORTED_MODULE_1__[\"default\"](_0x5e7e7e(0x26f,')m[U'),this[_0x5e7e7e(0x2b4,'v[]%')],this['screenCanvas'][_0x5e7e7e(0x2bb,'xB($')],this['decodeType'],this[_0x5e7e7e(0x254,'yRCO')],this[_0x5e7e7e(0x1ee,'^HsG')],this['_onConnectStatus'],this,this[_0x5e7e7e(0x29f,'UhMl')])),_0x43f4fd=this['playerInstance'][_0x5e7e7e(0x2e0,'U$hN')](this[_0x5e7e7e(0x185,'UhMl')],this[_0x5e7e7e(0x259,'IjYd')]),this[_0x5e7e7e(0x195,'t59G')]=this[_0x5e7e7e(0x1ba,'HnYN')],!this['internalTriggerPlay']&&this[_0x5e7e7e(0x2f0,'%5MR')]&&this[_0x5e7e7e(0x1f9,'QfP^')](),this['seekTimeSecs']=0x0;else{if(_0x3e9be5){this[_0x5e7e7e(0x1b3,'t59G')](!![]),this['showTimeLabel']=![];(this['playerInstance']==null||!this[_0x5e7e7e(0x197,'WjU2')][_0x5e7e7e(0x28a,'cyc3')]())&&this[_0x5e7e7e(0x186,'kqPL')]();this[_0x5e7e7e(0x261,'QfP^')]=![];if(this['playerInstance']==null){var _0x45298f={};_0x45298f['type']=_0x5e7e7e(0x296,'QfP^'),_0x45298f[_0x5e7e7e(0x202,'R8t8')]=_0x42e61b,this[_0x5e7e7e(0x23e,'6)gM')]=new _FlvPlayer_flv_js_player_native_player_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"](_0x45298f,this['h5Video'],this[_0x5e7e7e(0x25f,'mus[')],this);}this[_0x5e7e7e(0x1dd,'R8t8')][_0x5e7e7e(0x2c4,'83Vl')](),this[_0x5e7e7e(0x1a2,'OT[S')]=this[_0x5e7e7e(0x2c9,'v[]%')],!this[_0x5e7e7e(0x1d0,'Ukm%')]&&this[_0x5e7e7e(0x217,'xB($')]?this['openAudio']():this['closeAudio'](),_0x43f4fd=!![];}else{if(_0x2c1b87)this[_0x5e7e7e(0x239,'v[]%')]=![],this[_0x5e7e7e(0x1d2,'lOz0')](),this['isHLS']=![],this['playerInstance']==null&&(this['playerInstance']=new _FlvPlayer_WebMediaFlvPlayer__WEBPACK_IMPORTED_MODULE_1__[\"default\"](_0x5e7e7e(0x209,'t59G'),this['h5Video'],this[_0x5e7e7e(0x1b9,'21Qp')][_0x5e7e7e(0x2d4,'^HsG')],this['decodeType'],this[_0x5e7e7e(0x281,'%5MR')],this[_0x5e7e7e(0x2a0,'KWXn')],this[_0x5e7e7e(0x258,'IvfL')],this,this[_0x5e7e7e(0x277,'kqPL')])),_0x43f4fd=this[_0x5e7e7e(0x2cb,'UrmG')][_0x5e7e7e(0x2e9,'Zaa^')](this[_0x5e7e7e(0x166,'0vnS')],0x0),this[_0x5e7e7e(0x2dd,'v[]%')]=this[_0x5e7e7e(0x1f6,'IjYd')],!this['internalTriggerPlay']&&this[_0x5e7e7e(0x1dc,'[iD8')]&&this[_0x5e7e7e(0x1b5,'t59G')]();else _0x42b5df&&(this[_0x5e7e7e(0x2bf,'1[*T')]=![],this['live'](),this[_0x5e7e7e(0x2a5,'U$hN')]=![],this[_0x5e7e7e(0x21d,'a16*')]==null&&(this['playerInstance']=new _FlvPlayer_WebMediaFlvPlayer__WEBPACK_IMPORTED_MODULE_1__[\"default\"]('rtsp',this['h5Video'],this['screenCanvas'][_0x5e7e7e(0x264,'Q)Kg')],this[_0x5e7e7e(0x2a8,'yRCO')],this['_onChangeTypeCallback'],this[_0x5e7e7e(0x2e8,'A8i*')],this[_0x5e7e7e(0x220,'v[]%')],this,this[_0x5e7e7e(0x20d,'UrmG')])),_0x43f4fd=this[_0x5e7e7e(0x284,'qY1S')][_0x5e7e7e(0x27d,'^HsG')](this[_0x5e7e7e(0x206,'bjH#')],0x0),this['enableAudio']=this[_0x5e7e7e(0x1e9,'UrmG')],!this[_0x5e7e7e(0x17a,')m[U')]&&this[_0x5e7e7e(0x1e0,'1[*T')]&&this[_0x5e7e7e(0x265,'OT[S')]());}}}if(!_0x6b5466){if(!this[_0x5e7e7e(0x2ae,'UhMl')])return this['showTimeLabel']=![],this[_0x5e7e7e(0x18c,'Kk#7')](),this[_0x5e7e7e(0x1c7,'t59G')]=![],this[_0x5e7e7e(0x29c,'HnYN')]==null&&(this['playerInstance']=new _FlvPlayer_WebMediaFlvPlayer__WEBPACK_IMPORTED_MODULE_1__[\"default\"](_0x5e7e7e(0x25d,'%5MR'),this[_0x5e7e7e(0x25e,'r3OT')],this[_0x5e7e7e(0x263,'UhMl')][_0x5e7e7e(0x1c6,'Ukm%')],this[_0x5e7e7e(0x207,'R8t8')],this[_0x5e7e7e(0x294,'[iD8')],this['_onUpdatePlayTime'],this[_0x5e7e7e(0x1a5,'U$hN')],this,this[_0x5e7e7e(0x29f,'UhMl')])),_0x43f4fd=this[_0x5e7e7e(0x27e,'8)cd')][_0x5e7e7e(0x2c4,'83Vl')](this['url'],0x0),this[_0x5e7e7e(0x1f5,'bjH#')]=this[_0x5e7e7e(0x19e,'a16*')],!this[_0x5e7e7e(0x2bd,'yRCO')]&&this[_0x5e7e7e(0x274,'WjU2')]&&this[_0x5e7e7e(0x293,'%hCs')](),![];this['playerInstance']['on'](_0x5e7e7e(0x1d4,'#CR)'),function(_0x4d273a){var _0x37c25a=_0x5e7e7e;if(_0x1269f4[_0x37c25a(0x1c9,'^HsG')]){if(_0x1269f4['lastDecodedFrame']==0x0){_0x1269f4[_0x37c25a(0x252,'#CR)')]=_0x4d273a['decodedFrames'];return;}_0x1269f4[_0x37c25a(0x191,'[gq2')]!=_0x4d273a[_0x37c25a(0x174,'Q)Kg')]?_0x1269f4['lastDecodedFrame']=_0x4d273a[_0x37c25a(0x23f,')m[U')]:(_0x1269f4[_0x37c25a(0x252,'#CR)')]=0x0,_0x1269f4[_0x37c25a(0x1c4,'bjH#')]&&(_0x1269f4[_0x37c25a(0x23e,'6)gM')][_0x37c25a(0x18b,'0vnS')](),_0x1269f4['playerInstance']=null,_0x1269f4[_0x37c25a(0x279,'UrmG')](_0x1269f4[_0x37c25a(0x16d,'qY1S')],0x1,0x0)));}_0x1269f4['emit'](_FlvPlayer_flv_js_player_player_events__WEBPACK_IMPORTED_MODULE_18__[\"default\"][_0x37c25a(0x283,'t59G')],_0x4d273a);});}else this[_0x5e7e7e(0x2d9,'lOz0')]&&this[_0x5e7e7e(0x2ae,'UhMl')][_0x5e7e7e(0x17b,'%5MR')]&&(this[_0x5e7e7e(0x173,'Y5Cl')](_0x5e7e7e(0x17e,'K8T0')),this[_0x5e7e7e(0x29b,'yRCO')]['play']());return _0x43f4fd;}},_0x13e6b3[_0x45f9e4(0x1c0,'r]eS')]=function _0x4336c0(){var _0x36c3fe=_0x45f9e4;if(!this[_0x36c3fe(0x17c,'Y5Cl')])return;this[_0x36c3fe(0x2ec,'^HsG')](_0x36c3fe(0x2ce,'yRCO')),this['callbackEnd']=![],this['_onConnectStatus'](this,0x63);if(this[_0x36c3fe(0x2ae,'UhMl')])return this[_0x36c3fe(0x245,'8)cd')](),this['playerInstance'][_0x36c3fe(0x255,'Y5Cl')](),this['showTimeLabel']=![],!![];return![];},_0x13e6b3[_0x45f9e4(0x2aa,'Kk#7')]=function _0x3da812(){var _0x2bc676=_0x45f9e4;this[_0x2bc676(0x22d,'Q)Kg')](_0x2bc676(0x288,'IvfL')),this[_0x2bc676(0x199,'83Vl')]&&this['playerInstance'][_0x2bc676(0x2a7,'bjH#')]();},_0x13e6b3[_0x45f9e4(0x21b,'lOz0')]=function _0x3fa2b6(){var _0x2cfb5b=_0x45f9e4;this['callbackFunc'](_0x2cfb5b(0x15f,'IjYd')),this[_0x2cfb5b(0x238,'IvfL')]&&this['playerInstance'][_0x2cfb5b(0x21c,'6)gM')]();},_0x13e6b3[_0x45f9e4(0x2c0,'83Vl')]=function _0x189255(){var _0x3cfc86=_0x45f9e4;this[_0x3cfc86(0x27c,'[iD8')](_0x3cfc86(0x266,'UhMl')),this[_0x3cfc86(0x2d2,'OT[S')]&&this[_0x3cfc86(0x167,'KWXn')][_0x3cfc86(0x2c0,'83Vl')]();},_0x13e6b3[_0x45f9e4(0x26e,'IjYd')]=function _0xc2bcd9(_0x441a61,_0xa5d055){var _0x1808a4=_0x45f9e4;this[_0x1808a4(0x169,'K8T0')]&&this[_0x1808a4(0x2c2,'1[*T')][_0x1808a4(0x237,'xB($')](_0x441a61,_0xa5d055);},_0x13e6b3[_0x45f9e4(0x28d,'kqPL')]=function _0x423e5e(_0x5a47a3){var _0x1439a7=_0x45f9e4;this[_0x1439a7(0x2b1,'#CR)')]&&this[_0x1439a7(0x17f,'r]eS')][_0x1439a7(0x2b5,'[q]7')](_0x5a47a3,0x0);},_0x13e6b3[_0x45f9e4(0x194,'%hCs')]=function _0x4d1ca2(_0x133b81){var _0x44a28d=_0x45f9e4;this['playerInstance']&&this[_0x44a28d(0x17f,'r]eS')]['seek'](_0x133b81,0x1);},_0x13e6b3[_0x45f9e4(0x213,'sXef')]=function _0x45aa0f(_0x32b306,_0x56dfd9){var _0x4f6cff=_0x45f9e4;this[_0x4f6cff(0x218,'0vnS')]&&this[_0x4f6cff(0x2af,'%5MR')]['setTrack'](_0x32b306,_0x56dfd9);},_0x13e6b3[_0x45f9e4(0x291,'cyc3')]=function _0x2161ce(){var _0x1fdb1a=_0x45f9e4;return this[_0x1fdb1a(0x24b,'t59G')]('openAudio'),this[_0x1fdb1a(0x21f,'t59G')]&&(this[_0x1fdb1a(0x21d,'a16*')]['openAudio']()?(_common_common__WEBPACK_IMPORTED_MODULE_0__[\"SetEnableAudio\"](!![]),this[_0x1fdb1a(0x272,'kqPL')]=!![]):this[_0x1fdb1a(0x2c3,'U$hN')]=![]),this[_0x1fdb1a(0x175,'OT[S')](_0x1fdb1a(0x2ef,'8)cd'),this[_0x1fdb1a(0x1a2,'OT[S')]),this[_0x1fdb1a(0x1cc,'UrmG')];},_0x13e6b3[_0x45f9e4(0x1f3,'$i00')]=function _0x277913(){var _0x4e110c=_0x45f9e4;this[_0x4e110c(0x1fc,'WjU2')]('closeAudio');if(this[_0x4e110c(0x29c,'HnYN')]){if(!this[_0x4e110c(0x180,'lOz0')])return!![];this[_0x4e110c(0x20a,'[iD8')][_0x4e110c(0x2d0,'Kk#7')]()?this[_0x4e110c(0x1cf,'[gq2')]=![]:this[_0x4e110c(0x205,'[q]7')]=!![];}return this[_0x4e110c(0x211,'yRCO')](_0x4e110c(0x2ad,'21Qp'),this['enableAudio']),!this[_0x4e110c(0x2c3,'U$hN')];},_0x13e6b3['showStaticsInfo']=function _0x52d7a7(_0x3dfc44){var _0x2e3789=_0x45f9e4;if(this['playerInstance']==null)return![];return _0x3dfc44?this[_0x2e3789(0x1dd,'R8t8')]['openStatinfo']():this[_0x2e3789(0x2bc,'[q]7')]['closeStatinfo']();return![];},_0x13e6b3[_0x45f9e4(0x17d,'bjH#')]=function _0x3d8f4a(){return this['fullScreenFlag'];},_0x13e6b3['canvasFullscreen']=function _0x1564c7(){var _0x5c5ad2=_0x45f9e4,_0x1aa358=this[_0x5c5ad2(0x253,'r]eS')]['canvas'];if(_0x1aa358['RequestFullScreen'])_0x1aa358['RequestFullScreen']();else{if(_0x1aa358[_0x5c5ad2(0x1aa,')m[U')])_0x1aa358[_0x5c5ad2(0x2b2,'21Qp')]();else{if(_0x1aa358['mozRequestFullScreen'])_0x1aa358['mozRequestFullScreen']();else _0x1aa358[_0x5c5ad2(0x233,'A8i*')]?_0x1aa358[_0x5c5ad2(0x233,'A8i*')]():console['log']('This\\x20browser\\x20doesn\\x27t\\x20supporter\\x20fullscreen');}}},_0x13e6b3[_0x45f9e4(0x25a,'HnYN')]=function _0x226ff5(){var _0x2f0c4a=_0x45f9e4;if(document[_0x2f0c4a(0x1a1,'Y5Cl')])document[_0x2f0c4a(0x2e7,'r]eS')]();else{if(document[_0x2f0c4a(0x2b7,'kqPL')])document[_0x2f0c4a(0x1ac,'Zaa^')]();else{if(document['mozCancelFullScreen'])document[_0x2f0c4a(0x16b,'mus[')]();else document[_0x2f0c4a(0x27f,'v[]%')]?document[_0x2f0c4a(0x1cb,'8)cd')]():console[_0x2f0c4a(0x27a,'qY1S')](_0x2f0c4a(0x287,'kqPL'));}}},_0x13e6b3['fullscreen']=function _0x188fc0(_0x15af18){var _0x180450=_0x45f9e4;if(_0x15af18){if(!this[_0x180450(0x1af,'bjH#')])return this[_0x180450(0x212,'%hCs')](),this[_0x180450(0x2d7,'R8t8')]=!![],!![];}else{if(this[_0x180450(0x1a3,'8)cd')])return this['canvasExitFullscreen'](),this['fullScreenFlag']=![],!![];}},_0x13e6b3['InitWasmModule']=function _0x574b33(){var _0x4f5f2a=_0x45f9e4;window[_0x4f5f2a(0x290,'v[]%')]=_common_DecodeWorker_js__WEBPACK_IMPORTED_MODULE_3__[\"VSSModule\"];var _0x1405a9=(function(){var _0x122436=_0x4f5f2a;function _0x231dca(){var _0x2fd97a=_0x55d8;this[_0x2fd97a(0x1fe,'K8T0')]=null,this[_0x2fd97a(0x1ae,'8)cd')]=null,this[_0x2fd97a(0x1ce,'OT[S')]=null,this[_0x2fd97a(0x198,'t59G')]=null;}var _0x3c6266=_0x231dca[_0x122436(0x271,'^HsG')];return _0x3c6266[_0x122436(0x1ff,'IjYd')]=function _0x2f6228(){var _0x15c3ab=_0x122436,_0x5b000f=this;Object(_common_DecodeWorker_js__WEBPACK_IMPORTED_MODULE_3__[\"VSSLoadWasmModule\"])(),window[_0x15c3ab(0x2de,'UrmG')][_0x15c3ab(0x1ef,'Y5Cl')]=function(){var _0x377f21=_0x15c3ab;window['vssModuleInitialized']=!![],_0x5b000f[_0x377f21(0x2a6,'qY1S')]=window['vssPlayerModule']['cwrap'](_0x377f21(0x276,'[gq2'),_0x377f21(0x177,'%Bes')),_0x5b000f['deinitModule']=window[_0x377f21(0x2cf,'t59G')][_0x377f21(0x1df,'K8T0')](_0x377f21(0x179,'t59G'),'number'),_0x5b000f[_0x377f21(0x2f1,'HnYN')]=window['vssPlayerModule']['cwrap'](_0x377f21(0x27b,'#CR)'),_0x377f21(0x2ca,'kqPL'),['number','number','number',_0x377f21(0x2e4,'qY1S'),_0x377f21(0x2b6,'a16*')]),_0x5b000f[_0x377f21(0x246,'Ukm%')](),_0x5b000f[_0x377f21(0x20b,'QfP^')]=window[_0x377f21(0x2dc,'yRCO')][_0x377f21(0x1e8,'8)cd')](0x780*0x438*0x4),console[_0x377f21(0x25b,'lOz0')]('new\\x20yuvdata...');};},_0x3c6266[_0x122436(0x2d5,'UrmG')]=function _0x2d3d69(){var _0x556eae=_0x122436;console['log'](_0x556eae(0x268,'yRCO')),window[_0x556eae(0x1bf,'[gq2')][_0x556eae(0x2a2,'83Vl')](this[_0x556eae(0x20b,'QfP^')]);},_0x231dca;}()),_0x26f169=new _0x1405a9();_0x26f169['loadWebAssembly'](),window[_0x4f5f2a(0x203,'Zaa^')]=_0x26f169;},_0x13e6b3['d_a_ecr_cyp_t']=function _0x493a58(_0x365068){var _0x22d91d=_0x45f9e4,_0x23efc7=crypto_js__WEBPACK_IMPORTED_MODULE_20___default.a[_0x22d91d(0x1a8,'TRLx')][_0x22d91d(0x1d1,'OT[S')]['parse'](_0x365068),_0x53bb22=crypto_js__WEBPACK_IMPORTED_MODULE_20___default.a[_0x22d91d(0x1a8,'TRLx')]['Base64'][_0x22d91d(0x23d,'IvfL')](_0x23efc7),_0x38c0fe=crypto_js__WEBPACK_IMPORTED_MODULE_20___default.a[_0x22d91d(0x2a9,'%hCs')][_0x22d91d(0x1b4,'#CR)')](_0x53bb22,Object({\"words\":Object({\"0\":842019377,\"1\":842019378,\"2\":842019379,\"3\":842019380}),\"sigBytes\":16}),{'iv':Object({\"words\":Object({\"0\":842019377,\"1\":842019378,\"2\":842019379,\"3\":842019380}),\"sigBytes\":16}),'mode':crypto_js__WEBPACK_IMPORTED_MODULE_20___default.a[_0x22d91d(0x1d7,')m[U')][_0x22d91d(0x2c8,'sXef')],'padding':crypto_js__WEBPACK_IMPORTED_MODULE_20___default.a[_0x22d91d(0x289,'t59G')][_0x22d91d(0x23b,'a16*')]}),_0x1b8c64=_0x38c0fe[_0x22d91d(0x297,'Y5Cl')](crypto_js__WEBPACK_IMPORTED_MODULE_20___default.a[_0x22d91d(0x1ec,'kqPL')]['Utf8']);return _0x1b8c64['toString']();},_0x13e6b3[_0x45f9e4(0x227,'%Bes')]=function _0x33dc25(_0x428431){var _0x5820fe=_0x45f9e4;this['emit'](_0x5820fe(0x2eb,'IjYd'),_0x428431);},_0x13e6b3[_0x45f9e4(0x228,'8)cd')]=function _0x466294(_0x58a54f){var _0x2c9b61=_0x45f9e4;this[_0x2c9b61(0x2ed,'cyc3')](_0x2c9b61(0x232,'t59G'),_0x58a54f);},_0x13e6b3[_0x45f9e4(0x1f0,'6)gM')]=function _0x47d182(_0x4e0614,_0x5ce66a,_0x322880){var _0x5d26e5=_0x45f9e4;_0x5ce66a===void 0x0&&(_0x5ce66a=_0x5d26e5(0x1db,'0vnS')),_0x322880===void 0x0&&(_0x322880=0x0),this[_0x5d26e5(0x211,'yRCO')](_0x5d26e5(0x1ea,'sXef'),_0x4e0614,_0x5ce66a,_0x322880);},_0xfe8aab;}(_utils_emitter__WEBPACK_IMPORTED_MODULE_13__[\"default\"]);\n\n//# sourceURL=webpack://WebMediaPlayer/./src/index.js?"); | ||
| 3928 | + | ||
| 3929 | +/***/ }), | ||
| 3930 | + | ||
| 3931 | +/***/ "./src/static/loading-logo.gif": | ||
| 3932 | +/*!*************************************!*\ | ||
| 3933 | + !*** ./src/static/loading-logo.gif ***! | ||
| 3934 | + \*************************************/ | ||
| 3935 | +/*! exports provided: default */ | ||
| 3936 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3937 | + | ||
| 3938 | +"use strict"; | ||
| 3939 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:image/gif;base64,R0lGODlh1APcAPf/AP77993//232/1n/tyyu/6ba/5D/0v+OstRw//9nUv/b1rvl/0/2/9yK///H2rj7///j7bIF/zD3//+1q9X+///m8v7z78tT//fl/8n/6eX/9t7z/9Xu/6j6//fr/+v/9wPm/6r/3Oq4/5jW/+7H/9X/7vXd//4zGM38/5j4/2q7//7n5HfH/93u/7bd/4fK/+aq/83s//8MV//e6+OX/4b3//8sbcsx/+Xu/1e6/wLr/zT/qP/r53X/xROm///U4/9TisX8/8Xl/wOc/xWU//TV//9omFHL//+oxd3/8rn/4/vm/2bF///Nx/7i3v+0zfP/9/LO/0a2/4rT//9KMv/c5xbs///Uzc3m/y2f//96pP+800Op/8Xr/5XO/70i///Du/P08/+Yif+Ecv+nmhr3/wnm//lv/9bz/+/U///P4Ajt/+ZR/67h/9Tn//8bYP+bvlKu/6v/6cDf/zfD/+7z99b/8/ze///f8OT/7//X6HnQ/////5Xr/5z/2/+l14jj/2Hg//v///+8/f+h/6PS//fu7vbv9P+15g7z/93n/831/9/v+f/T/RuQ//f//+fz98H3//XT9v/7//fm5eOg/4HB///7+/v7//P///zX9Pf7///3+//3//rn6/P7//v7++///8Q/////++v////392L/v/v/++/7//v3//P/++v3//f/++f//+/3///z+//z9/vz//rv/70E4+f3///v9//z8//38+P//+//+v/z//P3//vr//f3///r8/f7+/v39+v7///v8//v6//v7//r9+Pz///v++fz/+L3/+vz//v3++v/+//r6/fz//P7+/v38/vz8//r7+/z//f3+v/v/+f7//vv7/P3+vvv6/Pz/+/3++H7///r+/vr6+/7++v3+/vz9+f/++f3++v7+/vz++fz++vz+//r//vv8+Pz++/z+/rv+/vv9+P3+/vr9+f7+/vr7/Pz+ffz+OP/+/vr+/vr8+H7+/8+e9Pr+/fr58P/487/79nz9/vj9AAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjU2REEyNjM4NEMzNDExRUNBNjg3Q0MyNjczMTAwQzQ4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjU2REEyNjM5NEMzNDExRUNBNjg3Q0MyNjczMTAwQzQ4Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTZEQTI2MzY0QzM0MTFFQ0E2ODdDQzI2NzMxMDBDNDgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NTZEQTI2Mzc0QzM0MTFFQ0E2ODdDQzI2NzMxMDBDNDgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQJBAD/ACwAAAAA1APcAAAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmiiTRFEcOKKdplhBggwHpjijCzW+NaLMLoIQoEz9mjjj2jlCIIENUigY4z/9XjDGTf0qCKQUHqFIwhmWMHAAwKUQSWMSObnZIpsDMLGF19GaWZXW1qhA5U8lnnmm15x+aKMTsJpJ1dbJkjjnXz26eefgAYq6KCEFmrooYgmquiijDbq6KOQRirppJRWaumlmGaq6aacdurpp6CGKuqopJZq6qmopqrqqqy26uqrsMb/KuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzDbr7LPQRivttNRWa+212Gar7bbcduvtt+CGK+645JZr7rnopqvuuuy26+678MYr77z01mvvvfjmq+++/Pbr778AByzwwAQXbPDBCCes8MIMN+zwwxBHLPHEFFds8cUYZ6zxxhx37PHHIIcs8sgkl2zyycYRQYQjRKA8xMsvo2zQyiqrbDLMMMtMUM1cSMEyyyLjTAAdPuQs8s81E5EFFzkAEgwfHezBRRYsJw10xDjj7AMBRwgQgCAdBEIHAUVnHXPINS9dM8kwb220zv8kbXPJZsNdEM0uv2333nz3/+3334AHLvjghBdu+OGIJ6744ow37vjjkEcu+eSUV2755ZhnrvnmnHfu+eeghy766KSXbvrpqKde2Qms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DY6NrGQnS9nKWvaymM2sZjfL2c569rOgDa1oR0va0pr2tKhNrWpXy9rWuva1sI2tbGdL29o02va2uM2tbnfL29769rfADa5wh0vc4hr3uMhNrnKXy9zmOve50I2udKdL3epa97rYjWFAAAAh+QQJBAD/ACwAAAAA1APcAAAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiTBFEcOKKeqFAAQUDIoDABTQi0MCNLOYYFwrcBMANjADaeIEoEXwhio2V0KDjkmwF4KSTi/gXgShDFnkGGxHccIGMFzDppVmRUBDAiwGgwF+KRYryxZSEnLHmFzQSqeKXdH4V5osvmunfkTOumaWMNNCAQJ2EehWmiygkCuCWM9aIQKCDFiqpVg8kamkQAt4giqaidDrpp1k9EMSoo0YC6qmoltRBJA88wOoDqcb/KitHKbT6QAetzqrrrhOl0EEHvgLL67DEKlRDCinUcGwKxTbr7D8C1CDAtMo+ay2vDAQSiAQMZHvtt7GaYYYVVkhArhUggKuulyCYAcK771pRBgMCPMAHBTUwYC687rab7roAr+iuDmbs+27ACNPZbr8JN/zlu+46LPHEFFds8cUYZ6zxxhx37PHHIIcs8sgkl2zyySinrPLKLLfs8sswxyzzzDTXbPPNOOes88489+zzz0AHLfTQRBdt9NFIJ6300kw37fTTUEct9dRUV2311VhnrfXWXHft9ddghy322GSXbfbZaKet9tpst+3223DHLffcdNdt991456333nz3/+3334AHLriXBQweUuGGl+RCDFgI4ULiGxWwQBcLtAG5SEI0LsQciF9uUReUV9655xstvrkLBbhQCOkUFUB5G20UUMAIrG/kxRyOq16IFy/UHtEUbYg+whRTsOB7Ri6gvvsLlrCgwvEPFRD7CC8wYX0O0F9UwO6W5MBFHJZwkX1DI1DPhBQEEJCDFONTxMULKsSRhfxc5JBF+woRwEQOBPhwRP9S8AH+FEIERxDhgAXMQv0AQQE+PKIPTOBCFg5owAI6onZDyKAGNUgAOgQiBYIIQiD+54MNbnCACfmeAhWogheID4UGGUL6hkAHH6iPBQSAIURUEL8cWOIFu9PhQf/WRwApMGEPwxOiQ7jwQxZ4oRDJU2JBCMACJrDgBVMYgeWkyBAVFOKLqZvD6rgokBwMbwTScwHtyKgQ2SVvc0Jgo0DQmMYFLECOCbkd7oSQOTwCz46TiyMeEcLHzLkhBoMEpBC6gMhBHsQFWMDCIbEwSNcxknKORMgcYuAGSjpycV0QZCZHScpSmvKUqEylKlfJyla68pWwjKUsZ0nLWtrylrjMpS53ycte+vKXwAymMIdJzGIa85jITKYyl8nMZjrzmShxwA/UsAVo+m0L05wmEvA4rlaq4ZsOUIMDSnaCciZgDGSYwATA0IQrXEEBCnCCE1ZAT7D8qgPSmha9lPX/q1Z1oJQOCKhAyXkCKlBhDGJIJzvdGU950pMHPFBAV/yZLAFIYFz0QhauIoGCf2byAA7YgkhDKrJylvOgCaDCOROaznWCgZ3tdGcTuLIsfcpLAAwo2D6PBSwBfPQJQA3qx0xqUpWuQAwGTcA5EUqGpqrTpS/dyhr0qS9yMQCfEliDFbpFrXxlUgtICKtYSVZUlSLUpU2IaUOdQAlKSHQrNbhVCvqAU3mtQQLRqkE/c5VJI8ABDgc4wF8Rw48SJGEf2jHpOVu60HfKkxLzXIETvBIsfFJ1Wr5qFatIaYQDaMEIWtDCAQwTghIUNgklQGxizYpQlqZFn9vSF1epZUog/2gBCDbAB2gJ0wMl7CMDGSiBYe1gTS/JAB/4eAMQkguENwjGACGQg28zUFg78KO4J5KBdrcrgzfgQwu6QARu38Dd7ealBwZIL3Sny48kYNdL+GiuDd5gAyM4ty/oNYApBjCAHvghBPsIsBLeyyTbGgEIQOhsX0yR3h4MwBRy0K8p8tsDAjOps54V7Wj1YgA/eNgADoZwD0zBYAdbmEla+KuKt5kX05YgA/tQQghAzF//VvjEKH6CWIHa4iSgFrj7CEEI/KDeAeDYSwcQ6RO2sGS8GBa1wuUHjGWs3yPTKaBbCOk471ICDeTBx8KdsgGsXCeBDhQvPgbzi0NAZkJN84+b39RLmq/b5kL94M54rjPc8PwDPahBz29zQBUG/QNAw03QhTa0ohfN6EY7+tGQjrSkJ03pSlv60pjOtKY3zelOe/rToA61qEdN6lKb+tSoTrWqV83qVrv61bCOtaxnTeta2/rWuM61rnfN6177+tfADrawh03sYhv72MhOtrKXzexmO/vZ0I62tKdNbbUFBAAh+QQJBAD/ACwAAAAA1APcAAAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiSxFEcOKKflGASwD/XYAAAhfIiAANlcAggggwsOhjXBSQQkor3PR3QQMX3PBFBKIg0AANOopAggg/VslWK7i0oiUF+0VQ4xdfsMEGmDY+iSMCVqZpFgVY4pJlkfelmKIoS95AyBlLfiFKmQ2gqeafYbHJDS6DwrjfjBcsGcENRzaQ445UAiqpVyi0EgA33ARg6KE01jhjAzDoOOWkpHKFQqaaBsBlfzeIoqQoe17/UOqsXC1yqaqq0qrrriUFQYGqFATL67DEchRJsMiiUOyyzE7kKwoUoCBts9RWq1AkKCwiLQqRWOvtt/88EMS4kQTRLbjoMttBuQ9E8sAD6cZL7LrvdvBAB/Lmq2sKHfTLbwr6Bkzqv33UYLDACP9ZQwp9COCwAAlHXKUANQjAgAQSBAKCxByfyEAgEphxsRkglNzxyRqCQLLKJZthBQMC8BGEABJYsTLLKqOs84VW2FyGFWuYvPPQG5phNMlmEK20hkdvvPTTUEct9dRUV2311VhnrfXWXHft9ddghy322GSXbfbZaKet9tpst+3223DHLffcdNdt991456333nz3/+3334AHLvjghBdu+OGIJ6744ow37vjjkEcu+eSUV2755ZhnrvnmnHfu+eeghy766KSXbvrpqKdOXyFzFKL6SiO0MQILr8PkghBCzOGCF7WbVMACwLcxRe8t4a67C4V4oQLxIgHvguwjTJED8yh5IcQCLhSQ/AuWqJAF9R4FX8AIe7DARA4+gF/SHLonz0IcOaigAhfqb9RGG+PvwYQUBEiRAwH1E4kltMe9OGThgHGYXwAxwoTo7eF/PqCDDwjwvwVuhAiOIIIGD5gFLjDhAXzoQA64kAUMatCEFkzIEFbIwhVG8Ag1CIDMBHAEAvighS1MoUWyIL8O5qCDKnjBC/90WBEKSmGCEqRg+YjokfjFgQtxsIQXCoE8JlLEf/yTAhOmMIICFMCKHIkDCywhxEIUwAWtA6NECMCENr5gCgVowwK+qMaMxOEFhTAjGoWAhTpGhAB7GEEX7wc8P2qEinvkYx8N+ZBByrELQugCIzGygDko0g0ccMEkHSLHBUQyBjFYwCYrYj0sYCEf+eBAC0bJkBdEUgigRCUrKTKHGGBSlS1Y5CwR0gYsxCCVHNiAJHcZEWC2oAU42AAxEwJKDjhzA/1YJkTmgMsNbAAZupTmQNoQA1WiwZox0KZDjtkCY5hzleIkCAfQEMwNGAMN6WSIEIxRTnMiI54DWYA1rWn/DFrgcyHIQIY9V/FPgbjTnf0saELyYYyAIkOZBc3HBpJhjGREU6EI4QAyVoFOhXKgnxDFqEhHStKSmvSkKE2pSlfK0pa69KUwjalMZ0rTmtr0pjjNqU532hYkOGALPJ3lExygBjU4IKijdIBSlQpUpDLyp1BtqlPreIAtPOGqW5DqVMGohScg4ate3WodjYAEOJgVDkgQqxqNcIADaEELbVUrGIGgBSMAAQhslasV8QGEN9jgDXx9g17VJ4PCGlYGNsCHETiBCCD89bCGHSz1EIsPGwABH28Aggwcw48SgMtmVpgpXi/LVy00RgmdLUESmnOCE1AhAWKYwATAAIYr/1xBAQpwghNWwFseeCMbwwhuNnyBlRr4q2IwY4DB+PWuIEgLWapS1kjZWte3HoAxSlBCBjJQghLwYzmtdS1syTDbJjThtrndbW95MIxsZOMa77UABKpSg3elALk9k4BymSuu5/4qAG5aFUaNYNa2mnUxfsjuPvbBXc8iJ7xUGEMCXjsGMZCBvLOlrXlti17cple39DWYwySwBgkI4GcwWy6/7PWucplrpF39qowTMwAD+MEPIVACgzOwj+KE98cJAMMEJkzhClsYwxnW8Hk5rIArUMUKDmMAA6ygAxOjgAFlKLGUHabiFdsLYhjt6lXHjJgeGKAHZjZAjhkM3tZS4f8ECRjDhcu7ZNzqlhKU8IY3mtEM4QqDElVZsYhJnIiXUYy/zoVWsDQlYIUe4KdZzephzNwDU5hiAGbGcQ+YA2HYyhYMdU4vb1fAg1IHdxjXsAAPrrLi+1psy33gVyTK5V9NcaPRjl7qUgGzg177egCmMAAIRzGKBxjg0r72dXLcHGcxWHgtAgiElPUrZZhRbGEt/UFRt12Y7IbgzMA2hZlNIVlaqeEH2j73YJTg3X0o4dtnHne5aaUHdP+g3oKxQxI6u+B339gAA5g3raqghyoQvAqASYIGkpAE7/Kj398WuK4MTvEZ+CUPGtAAxhve3e3uwwAS1xUEZkBykvMlD7n+0MAHNK5xhndXCSHfFQRmPnOL50UDUMjFB1a+8oVroLsx5xXNaZ4XVeSCGR/Q+c41To88fDfou6qAJzxRgZnjBec5z4XSe54HqA/LF1SvQNXx8oGsKx3pGvA6sXzRDF+I3RN5MbvW0672tUvj7tIgbl4+YPRQ1H1Zvgh84KXx994JfvCFrx0EhCGMwCeeeMUg/OMnT/nKW/7ymM+85jfP+c57/vOgD73oR0/60pv+9KhPvepXz/rWu/71sI+97GdP+9rb/va4z73ud8/73vv+98APvvCHT/ziG//4yE++8pfP/OY7//nQj770p0/96lv/+tjPvva3z/3ue7/3AQEAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4koRRHDiioIF0EoA+4mCAAIXXDBjA5XAIIIIJEThIwksBhlXAKS0Qgou+cl4gShfRCDKBQ3QoCOPPaaRRhRCZsnWka10ScF9Tl5wQwRsnPHFFzIi0ACOOU7ZgJZwmuVil11yU1+KEdzQ5A1nEDImmjaquSYNlVTyZpyIhkWBNV3igguM96XZZARf2IjjlCSQcCWWiXbqFQWt4BLqo/kFuuSNOe6YqZWceuqqVi5y/4OLrF/md+YNouRaIwKv9voVBY4+yk2tvhZr7EgoyBoANwEQe+yz0GZEQQDUUmBttNhmO1GyzVqLgrbghqsQCtNaS0EQ4qar7j/keotCJOvGq227KNQLr7z4PhsEBfWiEMQD+QZcbCT8vvsAwAIn7Om+/kbyQAcKR4wowUEE4XAHfQgggRlmgCDxxyZGYu/BKdQgQCAcg+AxyCyDmMLDHaTQh8kMWCEBAx1z3PLOGprBQCAMMCCBFWbYLEAAuGhcRscqM20Gz1BH+EAkC8Sccc1WlAFCx1F3beHUB2NcQ80cP+312RTKbHIgRHON9ttwxy333HTXbffdeOet99589//t99+ABy744IQXbvjhiCeu+OKMN+7445BHLvnklFdu+eWYZ6755px37vnnoIcu+uikl2766ainrvrqrLfu+uuwxy777LTXbvvtuOeu++689+7778CLV4gXwdc0BfHF6zSHEELMUYAlyb/UxgILtFEAE9HX5IIbzbvgwvAqZJF9SgV00UUbbYwwwh45EDA+TEJgIYT3w1tiiQrhv1/SAl1Ur/4LTGBCDqTgPv2tZHlzcEEBvGCJHHCBCyqwRBwMKJICVC99e2ACAXxAACkwQQoUTEkOCjG8F6ggDlnIAQrjcD8u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SLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okovtZKKNbMJ0oDMNJQCQwiiEACCVFEUYQJO5qAwR0YYOABLyakaGRcpDzySCaZxCcKAlAi0ICMNd4YRRppmKBlkBgs0aUHHmBw5JhsZRKKmZmQAh8CF4giygVSzljllUX0uGWQYA5ZBJl8mtUKk0yGEsp7EVwQwRdfRPDklHJWiSOddt7hYxR9ViqWoIGaaV4EnHbK6Rc3sHHGJHwQwsYNiUZww5twSgljJTPC/0BjjZbW+tWfaArqHqeiqHqDonA2AOusNz6qYxp1mpCGrcxyhcqZ0A76HpuifAHnBdgi0Oy2aEFrpq7TRgnlDdyWexYp0YLr3gUwwqitufCOhem3asLHbgPvxqvvrWfSu++/AE+E7reh1BvwwQgj1K+gBSfs8MP/YMqwwRBXvO+KBFNs8cblSiyoxhyHbCvGH0sr8sm1/jlxKK20jAsu3ATADQU0o4BCEJE88EAKKdQggRkgAI3y0BeqPDEpSLfcCswy00zBzTl30HMgVgQdNNFYS0jB0i9zE3MATj99M845P9BBBzX0IQADVkjANghXZy03gx3YDDXOOp99Ns811P8ggACBMMC2FWa4nQIfKTDwM9BWCz334wIG0wopSuNiDcxeO23zInif3YffErRtBtBmQG76gRKjm/TSXsdcM9RmT006CKfXfmAAl2MO9tNik513Cp8Hsjjtthdv/PHIJ6/88sw37/zz0Ecv/fTUV2/99dhnr/323Hfv/ffghy/++OSXb/756Kev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HduyPdu0Xdu2fdu4ndu6vdu83du+/dvAHdzCPdzEXdzGfdzIndzKvdzM3dzO/dzQHd3SPd3UXd3Wfd3Ynd3avd3c3d3eK/3d4B3e4j3e5F3e5n3e6J3e6r3e7N3e7v3e8B3f8j3f9F3f9n3f+D0uAQEAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okovvaIIJnQh4EHS3ggIy800uiBLLLwgiMvscjSoywepChkXJkI8siK8r0IpIxMAonjk1DiGMuPmcExpH9GHnkkfC/y4oGXYH75ZY06+uhjj1PGgtkTDmyBxJX6aSknlzLG6AEGS4BJZo054ljNk7FgYNkTT2xhqJVw3nekkYI0Ct+dGLwo6Z1MyuhklLFU0+NlhCLRaaL3FblillxGauoSk8Zop5h8ZsrLZUYg/wHHrEi8CWp9ja6oZammYhCFakbAccABWhyA6K3zZTIqqe+ZgIGzzq4GxAFGAGFEscjSx2iWj8BnwrffCqqatTa88QY+RryRrXy5ztksuN+eJsO8MpiLzx9a2GADvTKs656o7rr3bREmEJzavPraoEW65c7rr3u6BtxeGgUXYbG0RuBjLhBaPAyfsnJ2+14aJKdRRBqrXbvwtQd4/N6iErMXRRpRzPwrsMIOa6zLEEe85XskBB30zalpUSuttvK8ns8swie00KtpQejUTyjNHsgxryfC1lyvdoChYG9h9XpYw5wJyGennUkoa4fi9tukhELK3HO3QordrXDDjXNc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37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okovibIivSl0ksvk6SCSScy1jjjJJNgoiMmMWKSimGvTALAJHxMcsklRiZZJJFIHtlJiv8JwseUfMgXSyqp0NiLiz7O2CWWWH4Z45ODHUkkjjg2maSabE4CZX9UTikIfFdiuSWWnXyJZ5ad9DlJnjJiQpiZSKa55qFqpsnJm/rFSSV8LoIJ5pd60thnJ2PyGItgnBBq5JJohspkkmkymp+UjkIq6aSsrippl24K/2akmbMeaeutnoZqKn6OTgnfnZIC66ONNb7642CdeposJ4geimaVu9qHapzwbbKqB5fVaiSZCnHCCaiXRCttr79Kuglm2l6yKEOFNilufb3O+Z6dkaJrK7PhMpTuu/Q5KmW5W26JbrJGCsrurbHyG9+KVP47byrOQHysZZMkiyQsDeG6rsLwMSwntO5tGXHEmOGLJCelNGQxkhwvzAeqDruXSiy9xELyZfga6a3K9+bbsnsevwxyezXXfLNlzCZdscqzMvvze0ILLa9lu3yyySeCfGL11r248okxSc3sjM2b4qxuxZekrO+yPk+3yiePwP3IJpnMHXcon6zydEJSC/9d2So7biL44FZfvcvhh6/iilEQO+N42Uh7q666DaE9+XSo1L3J3JnQrXXcmWitNSqroLJ3QR5LOTVkguvY+uCC9/IJ4p+4grjteg/V+OMlS97pxgqhLXl0mwuy+Sd1Iw+36KKjIvoqweR+OsOqRx1n9aqvqP20L3O/PVyBYwI7JruIv0kvVad/uyvsIyOU0byb7e3vKs9/JHSPJG93Jvx3Hvr/zvsEKgZIugHSYnp9w173tre9BGpvgUF7xNDS0gtBiM91sNuF4LSGuF3Y7oPsY98qlBEU+DlDFr2bH8rq562lNQcVxhPEI2boudAJ0Hl4cx4Bd7iKHkqvZdlLoBD/H6jA7BFRiGvZxSNch0HBpQJ2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URRNURVdURZtURd9URiNURmdURqtURu9URzNUR3dUR7tUR/9USANUiEdUiItUiM9UiRNUiVdUiZtUid9UiiNUimdUiqtUiu9UizNUi3dUi7tUi/9UjANUzEdUzItUzM9UzRNUzVdUx42bVM3fVM4jVM5nVM6rVM7vVM8zVM93VM+7dP6DAgAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCO50OIxM0hhBALuFBAIS+8oIIKLLzgxYwk0lZAG20UMMIUezCRAxNM7DHFCCN4UaNuMeQTAxZzzFGAF5aowAUXKshYgAsLYJEkFi4cudoCXSyQ4wgvMCGFDwTkwIIXNy4gRBdJhullRZjwwUdmLsyRoopevGBJHFlIkUMWccRYSCEuYGmiEFgsUMBPmAhip52CTGKnpZFeygcmdU4iCCaGlXIJH5dYOsklo47KByh8TGKpqnda/zfCmGT66IMPgRDggxRMsDBkAW0uAKawj87p0KR2YtZilCrEwUUWWXCxRwAB7PFstHHkoIIlLXpxKLAFWLKTq5hiMkmnyLaqrqmtSkoYqpauuy657MZraXVDAOkjAQQM4QMdgTxSAx39ZkGAoL36OuQIwLZBprELpSvIZXNggQWKLhQyQpTQQlslm3meqKUb+XDQAg4tbNCCGzidG6mplUo6ab3ymkpYq67iTG/NyJ46anUFCIGjjj1KMYSuBAQ5xY1YvpkkByajwYgxxmyQD8QHpZvsZRzk48aJibKogrZVFnLliTG4YXILLVCNDDKrxI1MCzZVamrOOPNc792dCP9Gqt6As/u3dW8K7fAeLEihOBMvMNx0kiVvwMgGGxhDCy1xg7MKI1gTJDOymenpZCFQMvti44kyWjLbbRvz9ipwuyL7KjXNe66nWufeqrmxBna37fQGz/N1Nz6JuI8I+9omnFCbTLnll8ct/TadC5T7ai4IsTbVVK+izCqugL/KJsjMVKm6nd4+r7o9V0rYqTnHTyr85M5v79bnFdAFB2hUXvk40VuF5sJXPqxd7zVuoAXcvgc+2YVvF66QCfpahRnh9S4hoyLXz9rjhmQEUIACBMc2tkE7iH1uUrNpAS1m54pPyG4Xu1gFDmByO3OB6jLwK5WrGpK3Db4HDdIbYPj/tuEKVEDCWAdMYQMbKLteuKKALXHZyypYqiqWoiHwG5x8GIE5VIBDdp/Yxi9QYY45JZE2xghfEcG4i08owyVSPBcV6XUJHu6sPi3YBip2gYpthLGFdfDSCfFnm/D1AoKb2MUmPjFDlsTxhpahn8/sqMH7CNAVz2jhNp7xiXMc6Yy2iZ0LE7mJCDqSU5yaRAVzSEGG6Oxe91HHLp5BxDBy8pNa2w0OEKlIRW7ilKmEZGWq6CpUUdJm+XFhGDexDWp8okaDvGBuYAhDUpoyJa4K5hx1WEeGBE+V+kHFJz4xy09Q4xkkAuVkOMA9qrWtbShjG8ssUkpSbmIT01BJNm24/81TceKYp7JODFJGOcoRtAX92AAHunARbIzTob/YhDxCpM7HtA12sHMd9+BpDLZRrXIUwcEnNnHIRaZCn6g0F2Y6QcxL/NOb9QNndNCQjFVU7aYFzSnl1LEBWnCAIpC4JyepgQl0gmiQE5OMMeJGQNjRQqPI0Kjrovo2YyjDGBNp4z19+UyU7FOlOERVFbu5kOCR1TlcdKrlqJaMylXNf+3cADhokYyJrGIbm8AGM+8JotxFU3eA1Z273rIJ8UkPbq+r6tsWy9jXYTUirlgkJnyZEhumkopinUTfGEJMWDpHequ43OWS0c6bcs8d3BPtUyWCil9g4xfUiCj1PBTY2v/aVrBtQQYqxBc+0MpNGcgA7uUY6z3fSuSeW+XrSSwL1khm9hJX9GZnnbOB3sYNc6JFxuXWagzSUk21mIsbKiSyi1+Y97Vd7dBt18teaZplFTFU5ipQMQ3DIsMVDIxq3L7HQGX0Nnw/fYgrMBHZTWACn8uNI2ZK4bNTRXch3Awoc5Kx2936FrtL9SBdkaHhp4Y2vJmj20PqQI1NmBe22PhQe1cMWLUgY5EtXGP4UNHRhLjBdcVVI1NdoQiIpOLA98REekli2VTIdJjwQtWDFZJDCSvHGBWer/Qwlww0JCQGPQ2tb+P2CRE75BknfgYmfvGhv7IYsNFUCzmV6UJUjBf/ImkUnwsdCJFpBBm5Ca5hBTmRw7NisMnMKeInVjFoKQfYIcYYBwijvI3HNuQcJo70L3lygkpX2jtnzjQhy7IJcUa2hajwckTS6EAwXrMhB04FSQ9skn3KEYecqCInXlrWsR75OJ4W53xDTZEuStnNJXTIJkDxCdgCY8g3sbSyv/M5pEqMUtBGlqQEIbMTosUVbRxpZJEtERw40IUQPPVCejFZkhrYJObS82ViXapYLzkhfCamcsA3zja/uSItuCuhdz3bhsgjohEtcU6UnQAyJGDZ/cnlWRY50nprpI3Y/jQUGWLuA2PCGSWx7KstM+t4z7ohLfVzccYpzk+4WSPA/x60ySe+EICbGBMTrYmyT0CFBIDh4AjfzyDPgopF+vzeGGlBuEvZxodU/MC7KMntfnzryXRcrLRWSLzhlxxk1Nvkn1DHRsJY8hY+xLyRFvjAZ34CACmc049o+Dg58mJqJjLYFCe3qpv+kXP92MiYeTqqoo7BqYt8OI9g+EiBjhF1YL3NcF/IIyK6CbGP3dIBOjtZkDvSSXNkzTA85EMwQW5ObQLjIzHXjztB98jM2qUu5TtC2k115Fx9pB5RpB/HaXmKg/0XoEhx9SgiebG0ELnnjj01R8pygkxDkb3YxI9Tym2P2B0TnRAmZfTOiXev3u/Job3DPdJzkn9iHQn5d/9EnwGKE1MDG9Lf/UN6H5bKI7cXHyE6KYUZWVUnf7KYUPXyUUlku2+8Mh0Xax/HWdiHawy3SIT3cKjAScVWe5EVeCYWW2NmXuUHW+lXE2MgBmPQFilAGewHFhCIXAmYETiQXIvkS8mXgpxnYJ2XUqpGEs83CSe1bk83gBBWgMYReGo3ghmxCZnASWNkYpVXbIzXeBSIe7jXeDoxAWDQhGSgFinwAFLYAZLxgV+xCSFYWCDRC71ATgZGSilobuQ2hsu3CZ1QeyEBfWpYepARgC5lfQfBZzmEHGl3TyOVeBshVM8Qaei1SEUYUaAQaRRIDdqQE2TQBE1wBYioFh0ghVL/WAORYYVeIQjAh4Yc4QrJ10v3lHz2t2pc+IWphmAwaGRMl3cByAmwgEXs5mTFUYc+RwsgMVJ7+AxcdU9/aITLAFuBCArUoBOJeAXAeAVggBY10AHGeIyRmC5mQYnAFxLI0Ilh2HmrRlLJNwmZmE8mEX2k11wAeIpwaBDsBi906HN3CBLKwHC/0IB+aIsmdmKgUH6Y0Is70QQKUI/12ATE2AEpsI/7mIygg3YWZ4mXB435V3HAl3QskQqkJ4Ns+BinWH1YJFYuRYc6eE94uHWbAITFVnl/+AsxBxT2GJLEWAMkWZL+iEJlAYGPcGDixhElqGokdXdEJxMyqI0XaHqn//gKDRGOpUKHnwCBJicSYEZ7szhZ/UYUCuAESqmUCoAWAvCUDMAAAgCJkCGJXRF4gUeJzXeJk4WNNiGDChl9pthxpZCK0pVZyJEJWHhPmbCVG7ENgkAN4McUCkAJS+kETXkWAsAAVmAGViCVkbFzZfEJlPgIOvgVMgh9MogZsFB9ZAly4diQvrELammHmUAXS7kCmpmXY6EDIOCXayABKcCXfakDOuAY0uZeYYGVn4AJj4CYCkmKmPEKjlkKnFALkLl3kukbQHZPrzkXTqCZwukEZOGZOgCaDDCaiWAFa2CaZtAYfGBtZhEpwNeSWJF/nRCbjFmbqAhyqBdrybGWdv/olmoRnMK5AsR5FlFZBmuwBoBZldMWnWeRCVm5CZToFWDZCdm5nbZpm2Z5g6n3d8JRmMj1m3GxAjyQoAmanmbxlHsplVT5GNFZbWgBgcyYVFuRnRo6g5YBC/35CqWgkwQogLvpG8xooXKBoAraDAxaFiX5opEYnxhaFoLwCMzomvC3Ffm5n5cBCyDKCSBqC5DJZ+CZHDa6loZpnWrBA8PQDMPApCuQj33Ajx0In/GZFljomp6HkFmRCrHJox3amB7KCb6wk264HDZKoPf5Fkx6DU06DFF6FilwjMgInxOqmmKxlsy4CXwgkFPhpQoZCxxaGbBQqKhIpkMab8uhp4v/VKOX6RZMSgzDMKlxahaN6IhSGKP/WKGc8ik3yqVVkQqC6qWbFaaFGqJCOqKnxxyCMFI3WqPkORZtKqnEUKll0QFBIIWREAkPcJLyqRYraZ8p9SlK6hSA6qWxwJiF6qGvkKo3OGusmByf8oVB1qp+OhbNQAwWQAzEcA08gBYPEATiKq6RoKmUwhaTkJWe56kkRRWAGgudkKyXYQvL6qPFkKhFyhzB2puu6YM3GRbcagHbagHNAK4ocLAHGwSaKjNtcWCfQp2fsikrCapNgayiKq+WIQz1Cgtlqqr5qq/UaZ93hoWCUKxdIQzaKrAEixaRcLAUgAIvG6NX2haKpKWe/8quD/sUoiqq8YoZwlALy4qoDCGAqAcdhIkJahl4BxaslPiDYzEMtqCy28qyFFC1VYsCCztYbmFglOipnep5rnKtQ7GzsSComOELsAC0hdqxC3F6AigdaUqJEEudWpoJR8kVxBC1FmALtkAMaBEEAWC1gZu1eJoWu7C0dPuwKYVKXlkUZfu4GFsZvvCzy8q2UieAH/sc1FCjK9m1kWKzhvkpsSoVwmAL0cC3fYsWKEAt3EAB3BAAhEsXm3AuiptSm3JgLjOoQQG5ZXu2taC2HGumAWodNhopXUttn0ug9jm6ThENe8u3wGABwyAM2XAN3HoN12ABkysMzqut82ABsP8ADRYQDtEADKUADOXLCeYLDPMADO4LDEOBAq8bAPNrtVb7uvhLv7hwD6SAC63wv60QCtYQCqFACqGQCaSQCZlwwAtMCgaaFhNKbYXbsBYXTIubUpPweUIhC7IAub5LucE7tJgroNCxkkdKbcfruV5rVFUBtXtbChZQCrZQCrdwCzJcCtBwvjpsvjhswwCwvj8cxKDww0MMAKBwCUYMAEHhugGAC/QbAOLADVLcCtYAwK1AClhswAR8wAyswAr8CPTpxWBMn2D8wGYRwVpbF4crRRf8tS7Trj5Rth0cC7Jwtj9LryHctiO8HWmapvaJvIaJlZ6CCaBAFbUQtTdsC7f/oMiMfAvAYAuPTMOS3J+lAACcAACWDAASicSE/I6erMQ/4bq4wA2j3AoB0Ar+a8VZjMVb3MoL/MpeTMaBHMicC8EonMZ3oUgZXLttjEpiOxNzTMd1fBm+UAu+YAtAa7nwdsmzBsrbsQs2Grc367Wf8gs1Ko9PAbWLLMkz3M2loMPfHM7iDACVXMmXjMlIjMRHPMTr/I5AgQL/iwv+m8oATApXvMqtTMCwHMtiLMuzDMa2jMITTBeq1ssXnAqfkqM4wcEMPcyW4QuTe8jGjK/O3B2uOc3Ja7zU/MtFkcPebMMzLM7hzMPjbM6ZnMTsjNLvSMglShPcYM9WXM/3nMX5/6zPXMzPX+zPoWujAS3BgaEMnNKnFry4ifmvL9HQHHy2EY3MyowQp1jR3wGXMWPNyFvVEMvRQtEMADDDHvrN77vDO/y+mQwMoGC+5xzERnwJnjwJ76jWQoELMK3Kq4zPN23TOB3GZZwJnMu5j3rGEozLgGHQnPJjBsYpNoHUDi25S10LFWCms7YMUC0eKAwKVk1tlE1tlqLQSpENMHwL0LDNfAva4mzD4Hy+P6y+7CzWmvzJRp0T9BvTMg3TNG3AWuzKXZzTs8zXaIHGA90Xs1vBg41Ky5cKbyQTHoDUSr29sNDYIjxrqRDZ5IEJp0DZl43GKDxmceHJ79jSW7HXhv/Z1zR6y739FzUU3KjUC5ql2S7BwcftAR6AGRUA0bXws9Lg2OpLwlZxCo8wCoJwCtV2y38Nbc02Kf8dnXzwCGjMCgTOB6fAFdIs0AaO2XDB1uzM3VrxzwB9FgA+3oDhDKFY0PmHnfkHE+4tC+793pchDRAtDD8LAfYNDPg9FVAA4DRe4xsuowbuV3eK4xPKFXwq0Jc92b/Q2mPxjkYMChaeFZwbuuBNFjQOGWZoQ3cX4r2guypx4icO3yve4okKDEnOFNE8bTY+5mQu0DK64ZTCsF7BCukK4LjDKm2h1mqN5Gnxz4LQ5GPx5JGxC2eYmFNuhqC3Eli+BChuGfG9vbX/ULDNrb5frhSq4N9lHuk2nuNaI+Y8PqNcYc18wAq3fNnurBZIfuSNbhU7HchooeeSsX8h7qX5Z+Um4QGEvgQYUOiAAQRGoAVAEBEQANHbq+h6PGswzhV7LenELt7RZOnxGcF56imXMNmjspJqgSrrPOpVUep3furibRleit6DHZuuThIYQOjhTut+AQS4butA8AYPcegRXd+LboNZ8QiQTm3z/tc1isJpat0Rnub2buaX/qtiId3yziqR8o6jkBbrrNbUThW0bKN4LhaoXhl+3uqtrhIYcPEXvwSB8QZGgA9vYANvgA9AIAMOUQUQAAEV0AwVMAM7SckxHhU0/gis/wAFrFDzrCDzY7zTNE9tNsrpPh+6lM3p/l3v/Y3gMmoWniIIlG0poFAnaCHtCl/n3v3wYRHxlREL0EeKd0ex4I7xF68XMhD2Yi8DHw8EcMAHBwAEID/2Yn8QSLAFW+AAcv8EDQEBnhDf9tDU+Z3vrNDgKYHjmB7wzc4qzb4qhWwWAMDWUY8WZHzvVA8WVm8ZBnZ3sRnoJeH1Xw8YMoAPNmADau/5RqDuDPEDVVAFM2DyP9AQr/AKHgoL0F3t905tUKASgJ8Wgy8zlP3yWqH4bS31Yf74XxH5lhF93g6mJWECyJ/8gmEDRqD2tn4AcGAEdc/rxezrUvfN1af7T6EK9/8u736PEskO8Bo+CgS/KqviE+cba5p8CcCgyeQsVgkvkesvkW2d8ABAKvWv/TRhDQkMEJkEDiQ48FGmgwkfLWTYcKEgQY8iTmT4z+JFjBk1buTY0eNHkCFDQiQpSORJlClVrmTZMmUnTKlkOkvVyWVKEzl13uTZ0+dPjUC0GNFyAA4SJCErSPMlzGmzkJykcirFCehVrBklbhWkKutHPnwEhYX41exZjpv4gOKD6RKfSWh9AgNw6VJdvHcxgQIFAJTdu379XsI0GPBhu4L42gU1CZTcq60IhipIMCFChpgdbs5EMaLETJBFXy1ZdvRp1JAn9ZIZq6Yz0SaK6DSR2vb/7Yta4BhF8uRJ0o8VfA0XVqtC1KpUL+Fm/k+VZ1apxYYl29x6SABrtfNZft3j37p28yImXx7wX/SX/tqdJJiP95OV5RtEqHnzfYaeJcLnb7G0yf4ChG8S12RKJRYPICtiQQYFdLAlI47qbQswHABpKeKMi2qqUrp70CyuJMolNYioM+3D695iiy8+fvkQmPbEu8s8GstLL73zLhEEExQzCoWyg+YT6DL8iswvxIh6xO0/JZuErCYDZVIwjSLSoNJJLDWCw7ctHPDSQo9WqCVDCDaUqpS4svRJlUdYoUi66cQCUM3UVBTrrQ85CU88w9Tzs8ZJDguUO74KvfGSTbCk/2zITBalj1EiMauvIZIeqpQrOkUrab9MO3WJJpk6qSlBtKKIIo1To/AUyy269FKNH57wqBlfxiyuTJCmoirNVVdiUyI3oSCROjl7FY0TVrT7i0cHYxwvMMT2JA9H9UBxK1C7uAuLrywZlXShSY2877MjH5IoSWO/OpekdNsFCRNRo5QrChJIoFdVdx884FVYf/jBI6aaKk4aM6XiNV+QfgVWWNRKJGtOhLEaZVvtHtQTsYh7om+hjLPcFOKO3fUgylHRqvdkEkLuzwE1+tWjCjU6Eq64gQsGwCqVOXLoFEF45rnn/8YKGqJR2BUpzmJz/omttdyixsEZGcNZ6ZSGBP83NKo/XJfTrI3VheRYTBZh7LG7tg5WPV6uAteNKqjFqVrGRG6qg7tmiJVz3Rx679LC4hqssUw0+6a9BNFxkvcE7GQ9u0oZXCSrK3q8v48n93SaWOLtJOyzxoaBbMtt20LtGWZwYgaOmhkTllpsIThXXR97nE02P5uI7//WJSkskRyeLvSVKJ6E2QDvwrYu4Duy76Dkr9sa5OaVhLImm86C4fpKKoEBgehF+2GGKmaAYHw9NhJYGNZf/4iqqTw0+4NMWFnes9z16xui6EAia//uew90kp41i3GXcFz/LrK8RxjwNhT5mwIf5BoIygItlaBBA2hAg0pcwIFnEd/4IFD/AbZhpCmtqwUs1OeRS8TOcnh7xClY4SafAe1nQMNdiU7kEaHxb4McAeAlHFO3AR3mZhtcHtZ2KJpzPeSIH3LG1zh3lgY0AAFTbIAGl3iVH3jwgyvAg0YExjpY+KJgegodFHq2Gb3V8BHT6dtIAkedK2qEO4F6EHmmZkCFgCuOctmKEvdoOQRc4AKiuAACRPHHn3iwAov0xb9EWBxYRFKMIEnhVACAyI78J3GAM9EmMYmi8hBxM5/MSh8bSEqVReACX4jAF75wgRug8iYV8MRSlnLCf4wwkrAQRkgqKZVLyvIibCxRSNgIR2E6iDsycl//5pdMn5gygdBsVwSseU1r/35BFIRoBBtYic1rUvMjM7ClL5jiCRGCMZK28KWugplM3d0wkzkcizj7s0zAvNOA9hGEEe25Emn+E2HWvEEERMGGVrJSoCIRTsB8QQyMvG2XsLDAGPUpSxsaDSzH9ORCcYNPwIjSIR5VyShJmq4IBNKVojDkST+ih4DBbZK5nCgs2ElJFUJTd3yY5kfoyTuX3gakdtmgQ9AVVJCYFKmekmIgEdCAQy51I9IgRq2KY4Hj0LSm7TTYRVEZNDfur6NSlYu0iOrAzpgLemTFiFLZmqUoxhWqb81IMSDpi0haBH1bxSknUii7ZIJVfz+lK2SG2szupRUipyysWwurpAZQEP+DNHjsRSCA1xKWsJd7LcUrSgGLdt6MjtDUpDEDF7jKniUsGEOr7RhL14YgJLVOogH2uDdbibYuktLYKydg8dl2ptAxWDKFAYw7AP6UFiQ2/N1ss8IWwIxWgVyJiD8rm8eeOhdFT9WuXif6Cpt6Vrygxalwvfqg4hqgBz0wAHK9IxE5yZMj+0Ntd4HyFtYqULGf0a5CZGtfAKPIF7aoqS3E29kCfiSFgLkjitY7AFNEuAfwia/Q3JjDsQaYJas9TFGZ5Fz/ZlfDI4aPMMDr29/+1rNSaSe2ANufHcRYxhA2QBD4wAw/9MAUMuaxbU6xxt2FNU4kvskoyOPhTfW3PgL/IXKTrwMBW3wWFlRBsFReEZJJcCJQnHgxigbQAwhH2LjeUS4nc+hklhg5v3gsjYgfexkmo1nOtqmFbz075aokJyoL9iGWjLteA/hBCX64TkbrOVikzTklh0VySZRMEEVHejS28C37zsRikGyZPVjqgR8CHQIlKGEfhRZaMZf7xkNLGiRq1hZio6c7joG4IKqmtVl6m+dL79mvfcZSCHwt6n1kIAPWIaZYjBmnVNeaI9nCb4ab15kkg9hR1lV2tW/y2UtzCMu7Joya9vHtYJegBKNmzgwtvFykrdXa/9AW4oCqwNtpNLWTofa67Z0SWKRiyrpKRYvtQjwnhUDYJeBH/wmSkARyCxXD6s6I7959b4usljqubp5gZ0tviGcc38m5NMUzItx/02kfBS+BHQ6ehGHbRk7EPHYnNR5xbYXlvBVvs3YbJRDKvFznsOM4pj8CgP/xWk38SILJk5CHPGgg5ae5n3w3km5nWzvmyIT3Tm1OmR/Ve+db/8c1dDUVX/6vMZlSgsGToIGza+ADJRjNKVaO4d4RK9kQv8TEJL7B3Gl3UT8KBdf9nhH2/XLPQe9UBtKuAbUn3rClPm3UNbJwxyvbyMSKvOXiyXC2Yp3vf+e8RbLcPiwDnTAeV1IGEJ/4D6T+A2dZLM8qXHmMiHXu9546nhyYd+fyPRSk6Hvn//8uDC779aYfwZYPSa+kEiD+A7lIfS6YoYrVk6bCu1vjolENe1VPPCyjwPuHZ6t73vu+81Q5SXs03asSqH75y4fC7hl2E8ZrsvrWd/nLJT6KiRX17W4u7O5/FH7xC8B3ia7jcxINyAXmywVVQMBHUAUHVIUkUAm3252SiC/+M63607jtm5i3mDrK+8APFAS7A0Ficb0ccrsu4w8gm75OoicK5KhjajwTeaMPvECz8T9SyEEB3MGOiJHRa5fUW0AFREBVyARVgAL5cRMHXD7mgwIoeI6xSCND+49T2LBOMraXmxgt9EAS7EIv/ELK4z4BccHGiz/cebsYLLWHuR8sDJ3/3ctBHeRBOcQI8zM+d8mDXCCFJ1TAB3TABnwh/PiYoRmyDXM4zKu27QNDRVzERRxDYnpBMjxDGoRBEKTBQ1QaOCSFViCFOezEfwg6t0AY9mvAB/xDvHkhFzoFFxKEU4y3obFBDPzAreODEWREW7zFAHLEQXRBFmQ8pKHEL5y9wdFETdxET5zDa/Eh7FOTD3DAF2IFP/yxU2yTNnFFCoyI6nAJsSIWrmu2W1REu5tEEuxAMQyQXaxAX0zH+JrB3VlDygsy4MnBVpjHVjhGOQy64eoYPmzAU1CFaaRGN3kentGdnvjF+uI6u6tFWlzIRPxChWxIhkzEWrxE5jgtdGTB/9ejL/qaRAwrtmyMx01sBVyoR3vcQR+ahP9RGijIBBeixohoRXOJoddSiYf8yJK8SesoRpEkSZz0vZNMSbOBAmrMm4mARqzYRsHpSaXEDXoUSVxYys77n0EJKrmTRai8ytMYSVzYygDASr+TSqHzqJV7x2X0SrNsCW4QSW7ghq48S537IaBcKBl8R7esy6zYSrZkS7vUOJREyW4TKOa6QorcS8IUCW7ABbakgLYszHUDy7K8ojKsysFkTMrkiMMMAMykgMq0tr6cSmoyw6rcTNFUicsMAArQzNGktc6Ei89kR+qAr9SMzZBAzMxETdlUtNUEOFlaRzV8zNuszABgS//TtM2MMAMz+M0Ak0rEIS25OzPkfE6NCM7hRIEO0AgzAAEQuE7odK7OXE7Schhh3E7k5IbTpAAUQIFIqAGMyM7svE4QEM/KwoTVFKf4gk/7/IcH6ID8TAH+FADjZM8yqIEakAD21M77lCq46EvdPFAGRSX9zM8O6IA+UE/szM4yEAABKIMCfc8GpUr2CMsODVFEogA0MM9ICAIBWE/sNE4DFVGX+knfdFEZDR0UME8U2IgCndGlAlEd7VEf/VEgDVIhHVIiLVIjPVIkTVIlXVImbVInfVIojVIpnVIqrVIrvVIszVIt3VIu7VIv/VIwDVMxHVMyLVMzPVM0TVM1XVOSNm1TN31TOI1TOZ1TOq1TO71TPM1TPd1TPu1TP/1TQA1UQR1UQi1UQz1URE1URV1URm1UR31USI1USZ1USq1US71UTM1UTd1UTu1UT/1UUA1VUR1VUi1VUz1VVE1VVV1VVm1VV31VWI1VWZ1VWq1VW71VXM1VXd1VXu1VX/1VYA1WYR1WYi1WYz1WZE1WZf2HgAAAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOJgKljCAgsqsGDJCyMU4MICQggRw4xYCDEibFLkoCMTLOzRYhsLdCFkDBzMaOONsrkwxwILFFDICyrEwUWJXrgYIxZucNBCC8YYgwwtyGyAZGkjtFHACFMwIQUBObIwRQFADskBGmhswIgxtIDZAgdjVsQHH5Mp6YKTXliSQxZcSJFFHCy8UEghLih5ZQxZ5jPnlhzw+dMkgvCBySSghirqp6LyEaphnFwCgKmshtoqqJ5e/3IJoNAVcOYIe6jpAx0E+JCDmz8yKcSQlma6wbEbGNPCkX0y9OezkGWhggo5xJHFtVww0cefHbCgKLZxpLiiF14UYmukC8wRoxBzFLLTJJgIMkmr9M4raqmTXEKYrKDyG+ol+fIxq8AEw7rcEAj7QMDCQyh8hAAoPCJIB4HQ4cPFbErBBI8vTDFCi3C28SKTXSwwQrMKPfunIJDFuOSgXkDJBaJZ5GBJuQUseWWWWrZwbJde0qLMKsis0gJOnNr77Lz1wuqqqISZ6nS+AJtKqtKwyqpvc22YiWauvfLqgxTABgvjkERm6vPP6uRpzCqaokyQytA+hgUHbmAxR6RPRv8Z7s0uqhtDscl6WfQqiK/iyuKu7PLJLrsoY5O8dP+JtdP1Wt2JYJxIfe+9rC797yTOBSlE12iqyWYOe7wZZxdpo8HIsebgSUviqKyCCiqufILKJ5DIPVDltD6WDxYxsAvzCyiWeHO5kQpxt89dgpm4K4ov/knjj39SU+VMg/95qYN9DvD5+eLrecDPBbmA17kykcPGjXoMpwuwW1p4nuAkrrsru/vEJ7DBO+H9g3iSUZK7LNKC27lCG7zTnis20btNbAIVMwkdqzCxMqkt7VWsIszoJgGAe/lrXufz4NacY6spqMAiycLdNnbXu+19YhPbcIXcEPgaHGSve7vYxPb/MGFBmdCLD7G4TPrOt8KEoK9f7tkA4n4nQAE+4xmbeMYuUMbD2CiuezcMouM2MQ2YWC6ESkSfqhoCsH/FBxK/28XvhPiMT2CxDn3qFN1qgwwgbiKIFtzeS+qFmSW2sSHpg6J8jCHAGmIRG6D4RBmR1EXarOJxgbSgBXXYEg/Oq5BUSx8iRdXE+JgDFX8UYBYtuA4k6VFludkdIDVJwU7ai1OF1Fq+SoFIz5VSPq7YhhAt+IxffGIVN6qkbVaRSU1ioiXwAtWncqlL0jHklp+8zzko+ItfrPIXyawcbzBxw00QURCbYImnomlNy1DtfLy85tT0480sPsKb4BTRK+u2/xtaWpCIK/GUQNtZmVKE8hKcYOPT9iNEfG7iF9QQkTInI4Q6KatLhUMGRuNGEXIS0Zy1TAkf5CUvglJGVqna5SihVp2K0glZMDUGN4yBhotsQhUPxYQxIwqiiT6GAzjAAdCGCjQwGY5oyJwIMzHxUaaqxFPymuZlEIrQfCVUnv0qHnRisIG1wRRZxkgG0MZxO2NQRBm/AIUFf4GJZxTlBCfQzj7/NBkO0MJLRB0qmG5HNGUoA3uIm0gvQGrOTzwTJQIlVSFTxYlJcOKqCxndL5eTD2Mk66s/C2v18nQ7viY1Iq5wKFvTKRS4wjU7xEutalfr07Qoo2hfQoZsgbaKt/+9DRl+9R9gUYEMiewCE7/9p0g/VdJcMvYS8YxsG2cFHVqIVbNiBWtROdtZ/+VOIp8AhSqICNEt/sS0J6CCaa/D2vKqdq4dbIsUE1c0690utkhF3NAQx7gIYjAizjTnYU0CqqiadDKOrSpCV6pI5jQQTwguKoKpS13rKu66+L2nTjEBip2AF65USAAYwJAA8V5YOuYNsYhZphZjAJa9/qutMvj6pRMrLnva24VZH7KKVICUqd4tSag4+F/JPPaxVlVoIpsjxc4y2HZ4WoVzjezZKV5ygDN2iDwwQY2c/iLHFjZtAsYAXvKK+Mup7VSJX6xbxCkrIQ28JON6B8AJRrn/ITd+hFP5K01QYebHVJ2sQZaYL+YUWclKNvIGapqQomFvd2rm3SfezJBMqLWbFAbKheOKHfSCmbXoVcsuLklmCD/EGLtgMwWrCJHBbkIQTCWtjuG1zjv/OFXJVcgJ9UycFAN6FTGACC3AkbvfUREbvXXINqjBVrXu1ydd1s6ll/0sEp+F0wDUndEoorhQjzqIEGGqtgG66k9J1TKvRmisE5JIWS1H2inmKEQuqWgqeu8hOgWFToGhap2IgQxjoMJaatCBFMjllZ0K+EgHLvCCD3xlAj84XZ/N5mNe8iI4+EQvJhjExz2kF9s2J52J2+PIvJqxiFSjcoyB6NwFFoab/yCHAKlY74WEga1prTJPJrDhCZBBLSl4QCQe0AHJ6DHgaPFdw9+NkRtSXIiSc8i2mZqKbkfT1Y9FKGQVwmdaBwfRDv/sRarIda0vBOagYCtPcTKBKzShCRsWA1r4zfMOPMDfkEm4s8miZhtyMiMtEKIYi+iQf25bx96G151LEfXHNqSxS0zO7baHimCsghEb2cQ3bijAYy/kEcRWa9h10oQrmB3tE1h7v1PQgX5HZqQ/PwsYj9nyizDzj5r0ukKW3vGORNPbUGfsuBGiRqv/JhTHtKHsLTIOIVJegPAGheYtX5MrKMDzZgfD2lOQghrUgPqnF0TqzVJBUnfkE6koJ/+3G4KJVGh7E0kcye0FfxlOEP7Huz8Iv86XnFXIkXf35cgN6zhMeKc17KAgDznhfApQgFcgfWchADUgAAyogNnXbGZBC8OkSh8BexYUOQkRROW3dKlGEnXGfuD2fo8Vf3t2PqmCHBtQRb0zfEU3TJuUENugUzkFgN2kVTVRgDioAE2AFgzIABLAAAwYGXNlFk9Gefmnf7A3WMemgUTEgRzogYFXe48hgqkCCyGXeMdRhL1zhBuBCo5TTplAEEE0WoKgVvdEg2EnhS+hAE7QhgZ4FiDgg1YgAYlgBQywBnGnMnMnFlWUSiwIcZgwWL/FVErYVBnnhFgGEh/IfD72cVb/eE0idxzA13UgoUqbkAlthU/bpVP1pHygwAoAqHk50Yak6AQK0BVrYAY6oIo60IprUAYSIAAp8CwPIAAMUAZl0IqtCAK6aBj7tIdhQXnD9IcXQUSFuAkY14T65YRXA3g7hhmv4IhXyC/IkQlcJ0gf8QmPUE7b6FBWhglyVoaboHlqBQyjuAIrQIqnaBZr4IOJIAFlYId4+Bh0A4xgUU6BFBJC9FH/pF/LyIyTsAvOsGrPeBnR+GqPqFyyUkLVaHwCFGweUWWPsAkTOZFr9Y1y9n/KR0TzoBNOgI4guY5m0YM/GISQoXD2+BXNRHQeoQyBmF9+d4jb1gu9cBKTkAos/2UZsPBxtnB4WsOQx5EJDvkJENkR5kCRFUlLv2CRv1CGTPULyzCOArgT6MgDVSmSZaGADWh9Dwh0ZTGBfAcShPWPywhSNckS7NQJjBgZO3mQnAANIadLDUmJICGUSYmPoCBnhCUUK8ADftmXTjB9fWB92HeSBWcWFqlJtBAS07AJ4ZdfwDWQMXGToKKWmAELsHCQpZCQCpEq89eQE0iMGNGU5YRT2vgJ23AUfrmaPBCYZ0F6sGl6J9lBKekVtER5I+EKTHV3NUGZk2CZl5GZ77eZcQkwAIAcN2SXyCcSu4BOLJkUPDAM0fmXaJFzbcdzp6eH3JeYQvQVvvltlVELnP+wk+7HmQnRWHJ5HKikjUIUhnMRndcwDM0wDCuAFh2wcw+Qnw+QnRBoFvgYllxBmea3OZchnuRJnJDomWroG8p5iXQxDMNADBBKn/aJAkFwoUGwn4bZn1+ZmNjIFZjQCamQCiKKGbWwmYSHoAtBVeiZHBQpQBP5nG4RocRgARJan2fxABa6o0HQlSN1FhZpkbVZFSQ6oiUanLCQoioqa4xFQskBo7Q0F81gC8Ngo9KJFpGAAlqKAhSAAj46pF6BCUJJkd3JFTiplkdqGSeKme7XkwzRpCeYHNtIptsoFzZqAXfKA1hKAXzKpV66oV6JmPwIjryJFSEaoiNqomy6mcL/4JONxQnHKafoZEExGhfCYAt4WqPNgBZcyqee+qVpwVQW+VFbUaRFepmYWQqvUAqN+qaOFWDLoX2ahE6PABfEgKm2QAzEsKlngQIBQAEB8KsUAKpoQaZNBaBWUaSdEAtNh6RJuqq+wEaP6qTKwY2U6qBucat4agHCMAycyg3BGqzDCqg/mhazemMhlaw3eaqXIQyYKZy1IK2PGqnKkQnoRKvgWKZrcanRYAuYSgxoAawBAK7gSqyh2o/5lYhRgajsqqbvuqrxyhBV1Vj0qhzcOasWpxb9agGwYAG5GrDcgAshO7DZt31qAVLo1IQTGYhUMaIkyqyY4QsPq6oNAQpA/0atzCFnQoqUZJoWHuuv/tqqZkEBrYALuNAKBUuuYCoWFoRqhJVqp6awS1F+zAqzlyGz71oK0SqxKQWpzyGU+Nq0RFSpZXELpWABpRC0aBEArdC2RcsNPmqD5mpYcsZUKTuRqLaWR5EKVcu3MVsL78oJQsuk8wodqIBqdUtLH/UImeBWYoG2t2ALaeumZsG2rUAKbtuVYvYW5oSvKZu3cjYJrWcULxsLphuz74qZW7uicCodOkunnauMTgsWZmu2kmsBaxsMl4u51lCyAxcXrjCppya2qJa32ia1QcG3pnu6V2sLqbu6hHsJqeB7yEENgvAI4UiR8TK819u9MnoV0P9gtqVQCpGLFtxACugbCm2ruXLrFvqFuPESv/DCVPOLvD2hvMuLus8rrQiVChXrusULjvFSvPArCI4WClphC+JbCuFwCx5boxYQDREswRHsr+GAtrYADdAAC8BwC9EADMBQCiAMDSIMDZxADcCwDENxvuiLvm4bstxQtNbQCtZgDeIQDC6MuaHQwqHQw5nww5kQCowLxEHMFqinfe37Fip7ap7CjJ+CjEIxosubfpaBte9aDId3XNSbswJ8avGrfRKjfWI8CY5bFeQ7vmiMxiG8xiKcxgCAxqoCDAAgx3QMDKBgxwCgKqCgx//LE9yww6Sww4Dcw4Tsw6FAxD98yD//jL2IjL2O/Mj2qhZijMR4MVhOa7xOCC82Zr82gb/MW8WpCwvQ60THNXXWgQ1hHMbgKMZhfGrFy8lKAalpPL61e8YLLL63AAB5XAq6jFyqksd5rDWeOMx9rBMsTMikEMSBXMjMnMiZMMRA/MiPfL3Y272MmxaTvLl5oYSbML9OfH73O8VUrBdAoAVaYAT4YBHCsM6Y+QqjjBBAZpzdQZHdO8D2jLiolpeP0JFQcQi8/M///Maz7MYCXQq/rMsIrct7vNAAsNCXoHxA8cdBzMwUHcQWjciLHM3P/MzSLM1L2xXZnMR2YWPezIHmF4hqybI5Ic7jjBdAYATo/NLpTBG1/wC4sOC87yx/pQweqzzJXgzGxnuvUCHHbgzQITzLb6zLBs3LCZ3QDg0KDf3QD72gNUHRVn3IWI3RjbzRHS0x1Yy92DzJIo0XysBq+lXS2mZ+oosTsrC8bc0XQAAEb2ADcy3XFOEJvuALwiCzOW0Qedyk4xG8iFvNA5zN8lKrTUEMKep+aQzCsjy+b3zHc9zQlA3VUf2TsqJ8JKR8W1zVV33VWp3RjNzV1OzVBowWIV0Y30xE5tfaNtHWsdDWskAXMlDbti0Dda0FfOAA6GwDt23bDbEFaqAGP/ADeuAADeELtSAMgBux5aHKhl2GRwyCSkHCcgypHSzCILzdBb3U7v/nfnks2XQs2QvpiZ1dE5f72ep90Vrd0UAtMe5pFql9GN3sbfRLe+AJE7AtC/y9FzJgA/jwBkAQ4C9tAxNRBRAAARXgCdIAAVn8Y8U8HmLMB6CAxJNc4dqnt2jx0FANClTNFaYN36gt1othTvDyj6kGKs2q37HN37PNF0Yw4PhgBFoABwcwEezczn1dEBOLs1whCKdQzWJ9xD/XKRJDcBMecNEtxqdAmx/9FK5chmKdcHBRQh3+4Vvx1SJ+FvO9GM7gzWj9KYn6Eqbb1rzw4nuBD+dszgcAB0+gBRKxzoBrC+6cxVUV4VWRC6cA1Eve5xZOcIBucAZ3cNrHFT/dKXv/zuSdct5f4eEN7eFpIeRbbhZEPtaGYd9L1wsBueIs0eL8zQt+YQQH0OZI8ASmLhHK/bA7ThAsOgkV9uPd6+eyPut9Tuh69BWsMFKFrUeX8AiWLhbCnMeR7tWTXhaGLRm90AkoPqJU2xJn7uKg7hdwgASl/gRb4ABIEBEya9OiLK8UyxVQwOe0PutI/ueCTpsrAxa/8CcYruR8AIprAQp88Oi/3hUhDtZcnuSUcdJMV367sK4s8ewewAvR3hdGYOpbcO0OgNwQse2Z2e1cm1KvrhWOzMrjLutEHtLu3kFHzLQjdQkXTuFPzhV7nNmMnhUhftr5PuGWoema3tq/maYo/+EBssALA+8BgIEECu8AxM3wDpHq77rqAyF1qTLxWcEKjxDksS4IrDDJQr704o56gI7kBOfr6F6uYoEJe17hBCfvaVHyeazhX1HxXj3ik1xIMM/sYz7zHtD2Ax8YCz/cxP0DW/AQVoyZg0vKjGX0WJH0fm/AUPDMqjD4qsDIHJ30qtD04q59FZ7o2RziQR7oZsEp5u71Z+HQlyD2XmHaYGz2lIwZzFp+AkqiKeH2HrAEOA8YcDDcxa0AelAFdp+6r5D38AxkwHDyS6EKTC8xp5ALTyX5ZjGOf84p9a4V8r7HmID7VxHGrOz5ha4Z8yuiRYrmJYH6S4AB1y8YDmDcr/9fBTPwAz8v+7Sv06kCDFjeFLrf9GWfEoKeFlK/Mq5O6ZwtCMpvFeIe38ZO4puhljgJEKlSdUr1z+BBhAkVLmSIEIMHDEsiNqRY0eJFjBk1bsT4o8rHGTMgYPQFy+SrUrUucuJ0iROoSxxlzqSJUdWjUzgFsao5UxCfn0F7DiValCEAQT/5AL0EyujThcBKXSpVCgCAS1kvAZiUtWtWrFq3jh0Lig8oQaAA8GmqVlBMqHEVfntU91Emu3jt7uX7SJDfukkF+xWclPBfuYkVMyycdPFjyJEzdsI0MFWvVJgk/8PQ2fNm0KErbvkIQaSTkRZrmYSFUqXFSS1fwhVdOyH/q7+ncD8SvTQoUNvBOfpeiums8IwA1E6CKVas8qaXMDX96tx5Vz6YQDU3CwA5x0x49d7tWx7v3/J/Bxs+LCjTd/gLGwuKX99+wk69MBG8zEmy58/uE3CoKkKC4EBP9LBIGNZQgmUlTmLDasDIVFEvJ95CI04oCuvbcCmnOjRILetKNPFE52BScRSY+BBxofDKk3FGu9QrrL3GXhTuRvp09DGySQQSaJJeMIjMMxMwMOFHJhkSCYIKoKxgQZM4QYmYlVy6BJhJmnwKMEFyUkW03zj0UrRTgALKrGVEBIYrFOOUMysVo4PplCZDoXFPGW2cb74Mz4xsPkELJcoyyzqJ/8yEJBld0lAmf1ghSmkqkCa1hoR5pcpShMmSpQghrekm3HAbM7TffBN1Mz4mSWopPDs8sbquqpszxe22e2u7LpmMMS/08kqPvcAM+xPQ91ZNjEdlm70oFmcEImiTWCBz1FFnX4SymQqa8cUXBTPdlKVSfPn0Jf+yzaguVnB6hCcNl5K3R3XlmuQUpX7SjEJb4bz1xOYueeuSVrVqNURf+XJPWPXAVJg9iAM7DMx6nyK0Yoz/wWw/aa0tgtGPMxaQW2Kk8aUWcxtiDRZOSnnQItle6lVkhm4KjBUoyJwXOJqNCuo3WZ+jreeNxguMaB2ZRbpZDxIdyMjFipB66qW/g//A22+JKaYZlU0qhROTzgVl5qr/4QvfuvjwC9+kMgFqvrfVFGQUei2SV+6ye1KqVZ4FjE4rhPOuKBP00BNcwInrPvxM/gjqpNqoi0iD6sVF+/bbWjJvyJZNvy7llU8n4fJwu9pNCrdj/3z7z0ArKrPvyjNS824K2TK4lNgbIlzi1nMPTmnfmXSmk8YVXSwK5KNII4rgJaviW2Eyj54hzr9u2ZaLYrtkmbEPv+kmDI1Nffx8FW/oQ/ObX4iau9mq3Tr1Edo92PhtS7x+Hwdy3HjFSIiCBAAyD3+KkYYwDLiaWnhiIawh18sqIhvRka1qH9iJ0cBEvsas7lW9Y8zsYDf/wIS0z0UDsl1W+OAd/O0OMBwE4WLu10IKxUJIsZDFYwB4QxLAUC6+eIX0NrVAlzUwe7OByeJsxgrd4IttryKfBgXzQYYQR1U6RIhxCNaq9zlngPMjDBUhQ5ijefE+ztCFQCAjAjSmUYxG8cRqbOHG1yAEJdYD20VcMgnlSJBCPTCAH3oAlVz8ZC+FWeL4VqfBi7wKb2v8B4hGOCBMhCUruEth4erCyMSA0S+YzBsaYQADEcCAk0MpSYNsoUCEwMJ6X3MgRS7BnOjoqAd+MAAf/yggJ6ZPIR6E4ijvMwr44W+FhvOlUTSpy2LWqxIwqEQzK4GAZM4EFrZYGejkWBWW/1wCexbhSiS796JaDsAUA+iBKRCXwYvwEpnRFM4kSpiVLQbrkuzsicNYSE9n0YAGDWgADSpxAXxqZBibao1J4vgPlICKE9usyCtVpEf47ECiEhWnHE5hgHFOdAfxWUp7Erm3XgbUNgQzGArrN8hNilQmvLunSiHVAATEFAENAKhLLVJQVVYllQpt2UXG9tAX7aCcpuiBOA2wUfu0J6QJeQQvbYoc57gPf59oGGKeui55XrVZCLiAKG5wAQSIQqsNkYYtWqbKHxqEZQq1ZkNh+U0R2ZKoBggBLguzVIRIcSljrc1StCjMG7WUrwfpy2ANFQFRfOELN0DsFyJg2IQQo/9lkw3bP9aqUJ/Ccjo+8gMt/RACJfjhPk2960fbB9nNkNSEQ1MfjgRr2MKidkARoG1ta/sFUZyBEJvgwyDOwAbH2ta2Y83pZNOVUMxaxKHSMamIQvBcJUR3H/dx4iMpwkvrylYxqiXpAF2rXYXEFrw+QmwEbsDYxD4WvL5oGR1Bd1lQZS86m9VRCPYh3Qxk4JcazG4UQdrf8T7FnX89KY4CTFhhHdhHXD0vWMUa4MtabzU8bStFugIT+upoH/nNAD9KoN/6kPaJpqWdguPi19UOcBMXOzB57GLiF8FUpg14cIB5euP4wkYrGX7RPkrw4x/bwT78XSdhnQrjpywFmN3/BWyOFOzieSJ5QP3kZz9NbAGF0lGhzW3IV8bGWhEB2Q5JyAM/QnzXIhtErwCW8kxIypa94u9PJrZgmweEAGdWogEwvsQrYpbNmF1kOlnh8YvGXIIkkDkJZy6tRRQpLzsTRclvHuCcFTwevERaQHjWM5KFMRWFainHFanVl5uUBA3kIdEaWDR8cpnO/2q6J37lwyhGwebcWbrFMcq0rH0NH88BWtRgXkitpEPsDqEa1RrQwAfi87NXwfq0v5YJMOV1a++yOMDkiRG1vR2crw1bNshOSKm74iVmN5vZzv6ObwpDYkh/WyNvuTauY4ejNPP1LuJ5rbz9/ZS1uoQl2oOo/0Km05VC6wjVH2j2Bz6Qh++8Lt//tfe/8wrneJ9Ug/3Wt3h6bXGQJ0bg2XwlPHWMcHJ36AP0cPgHcvGNVgfnQxwXYcVD/pMrxrl+Gcz3WPcdnmSFXOhQmWytIpTyg3yZOTYXUBJc7vBcMCNnwpmdYBIpwqGfD+M6jx+08QpboIcn62Mnytdi05Wj23ESzGGOoPLg8lzkAgpx/13VHWM3rJM9hBgnWKUP2XOthl3seie8TCLUkpIXPCFKN0uh4K6KuEMh6KDR609OVRHsFv4gtM54/ERspm0LXvOjx0g4Sn56tb+y7YWae9xzkQkohALikvGL3b9+EIqTPiu37rz6vP8O+KsKfvKkJ/5CEL/2V6q9VkynUB5CMXdVRD8UrMhFZNQWt0Wm88iat/W0d/6z2/M17KEYfvHNf5CvtETxCEG+O5lPIZdHX/6qyAS8EsM2ucVNIzXXPe/hXGnwA76nygTyI8DyOz/zU7+u4DKGUL21ez8K0QC5mz8oYAXYiwvSihsmgsBGupufIL1a8z7Pszs6I79QOEEETEGEKAVgyIi1e0EOHJA8gD0oiL67sMB2IYoM/Dvi4IjcG732wTZhqroYdCkCNMFQUEEl3IgXfMBmYYX5ewRVaBdSEUCDKBMsDJMPlIn22ULNC0ER8r+aqzUxFMOaS5O7QUN5SZPAuQ//RcqXMfRAJsKg/Hu0Q+q9wznCE0zCJexD2GgVJ2yW6BOEKXwX1MEJ08GJU4A9VYACKDgFtNkJ1blDL9yIVJmiLwxCTeS9ufG/WyvDEPTENZwbJYNEEbSPR9ubJ5pDiotDV7wrD+S6w9nDPfRDW2wIgoHBbPmARRQTC3GXUjEd8dHCXNrAVKEJ7MNDvXNFZmxGZ3TFAXminZG4Oqw5aqTGV8wdWgwFUrhFbyw3GFy/QmGXvyiVwjkdwSgkNFtHtakJdQq/kHtGeZzHOIwVAbnGasRG9MlH7OrCSpzFPSQFPvzGb8wOXayYd8mEnBCT9cAguPnH4fAg0APCWss5erzI/2a0QskAqQ28Q4+URh7Ewlj0xyJUlxMUSFLoRoIsyBcUBHEUFSg4x0TEoCVSE0nrQlkkPU/8xIu8tUvgSWAqQzHsSI1klVQBvw+RG1Ukwgx6xRKLHW7kxpRcyW+cBEw4SJpRhUgcpNRhm1EoCjN8SqocS/uQypRUSbLswyZsvKqBggsCCroxlhPrx5JMS7uMC7NsBbS8yxQUGHdyJ61iRr4czODIy70kzOJ7wL+8qjUTS8R8TMg4S1LQS8g0v+xwTHzaGRFCusrszKHIy1bwTBB0P8AUKc3MO9FMTaiQzFYITdUkPFfBzGJyRbqpy9e8zYQ4y9Z0TdzMOr4Bipf0ov95aUXb7E3jnMzJbE3jzDqLDE4dcsbljE6ZSMnd5E3p/Lf2cU4Ywq58uU7vzIjkbE1cwAgzAIHvNDH345toUkPUPE/3ZAjd5IZWCAD6pIBFYAgQAAEzKM/3BK+7Kc1k+q+i7E/crE5cwIUAoAAFRYEgUIjy1E8IJVDUSk8ATaa3+UoJzVCECAIGjYQH+NAH6IAOSIEUEIB/gNDytAIBSAEJ2M/85E8NfarfNI4YrVGRigQODYJI2NEPFdESNYjy3E8rYIAaaNEHNQMbtSng/L8kbdJkwoVWOFBuSFA0sM/7TIggNQMdyE8ntalXYtIuDVNMCoAoxYUp5QYKaNCFeNHg/RRTLy1ON41TOZ1TOq1TO71TPM1TPd1TPu1TP/1TQA1UQR1UQi1UQz1URE1URV1URm1UR31USI1USZ1USq1US71UTM1UTd1UTu1UT/1UUA1VUR1VUi1VUz1VVE1VVV1VVm1VV31VWI1VWZ1VWq1VW71VXM1VXd1VXu1VX/1VYA1WYR1WYi1WYz1WZE1WZV1WZm1WZ31WaI1WaZ1Waq1Wa71WbM1Wbd1Wbu1Wb/1WcA1XcR1Xci1Xcz1XdE1XdV1Xdm1Xd31XeI1XeZ1Xeq1Xe71XfM1Xfd1Xfu1Xf3XUgAAAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOJgKlhSSBtCYBEDBxy0wIExGxhjDC3GtDCibFMUsIAQMayIxgZAGpOMjMnYeGNsXMRRIgteFFKAC0KkmE+LLcRoDDLIrKKllqi4gsoqR45GgBQ5sDDFCDou0EUXK3IApJUy0rLlKl+uQkuYFvHBB2RejPACC3FwUWaTLuwYw5Qt1ijjKllq6Yorn0DqyiafBAPUJHxMIoggk2CC6aeTYJpppp/ygYlhpYR6ySV8sLrqJK6q/9pqppc0lwMTLOQghRS45tiGmmzGgIabMQ5p55yOotKlsng+pOezjHlRQAFevKACF1nkkAUXKrxQyIkuzBGlim64wWILVeIQJzLKtMulK2DuxMememJi6qil5otvpoSVkiqslwAc8KqvwtpqwJgqd+YUufrgMAE57OHrr8G2+aaVWMrpqJefbPPJJ7s0u9Cz0BpGxLY5BJrFtkz00QofFACSA7bbKqkCCy940aSTLvQ8x44pknuuizUKgVOo+Hrq6b6iljoqv4MNHOrUVE+tJ9IGTwJKcUP4QKauBHR9RAcd0PEwmbjuIfEIaBbQxq8L7Lhmj22yeLExaLghskEkl/9sWCFCLDCHCwUUYi222MaBM88/B23u0C3IiOUqyqwC76OPfryJpDZ1+qy9Vusrat+hdiIYJwQXXHXoTLdqHAttjDDFFEzkQIAPRxzhA8QsrO023HIHm4+w574pY5xbfkKnOXsP1LeeiCEaQ+AuFOJFrkoyyXOh4UaZormRa4x5lx9rvsn55wtyfk1Pkwrq6vB/OtgkqEttP6z4I4wv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06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKGJhmzzyiCCC8IEiinycqCImI872SSYnPrLJJiuaiKKJMdL2iSA2nojjikQWaSQmgvRY2ieYmFijiU2WWKKTRhKpZEV8tAjZJ49kAiSONQKpI4pIVkkkko/wgSRQgkzi5ptwugkAH5e8eQmdl3DikwxvAGHEAXAg8cQWDhTKUylZ1snHm4syOsmdKS7q3IxSOimlmDkCiWKJRKq4Ix847nXCqCfc5imKjLniJadOBsmqpmaa/1mmp4/w1GicuLp5K5ycXMITn2/YgM+fcDzxRKFq/LBFTpjU+aiji0Y7SbRZRqvcJ1xOWam2jzRZ5ImxGpllknaRSqpt446bWCY3BknjlK62Gma44arIxy44qZnltPxKS2eubnLyaE4yFMynEUbYYAMQWmgBx8OCPqEFTrr26++01GI87iTHZYLJuzayG6+2sGoKbqynskimXOYmIAYV5qKlAwgzG2Uvi3wchq2J25rI5ZeVdntymWQWjQmSs3YqyNE2SVvxvgDjKrCeNRlsMD4H/IHPG/j42fABgD58EwBx+lvt2WhXW1wmXD6SraVv26jpkEF+S+TJ4toLI1vmjv9KhRhgJNB3qWSZocPhhxelstqErcIutp+0O+WmQVq6Cba73Kg5vSmfyvhMUONaLb92/vtonTsV/MbqNhjhsKCEOpDsDw7Y1O/tF9Ope9rDoRKK5EHTGK+82N4I+eQlq6w0kqM8ckpcpMI8qsw0lyGBFYeDMJS93BO2yeOR82wj8J9cJMiQp2LSeYozYcyvs3Ve4uyuuPZUsLDEwi77Dz/oUcUMtrvT+xJ1pwLq7hKROptwPhEKyIkscjfymNvKZxG8KY17qHpL375iBsMZDnGJkAADBPCAaqVAABIowxoQRzOa6SRd6gpMMC53ORvt7HKCQAVINoGxFamP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Pm3UTm3VXm3Wbm3Xfm3Yjm3Znm3arm3bvm2KCAgAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKGJhn2zChyAooniiioLwgcmIs22SCR+PPLLiiSui+CKMMZ74SIoobgLkkCryYeSRPJYmJCaC/Ijijz8ymaKURJ54Hgg6SIXkYz/6SOWQX6aYI5EttgjUJJfwcckkRk7i5ptvXsLJm5xwAotLekBQwZ7NVOBJBdL40owvhNbiizDC1AKLorA02mhPRx7JZppsqnnkKHxMMopzmNjo5KdDQtmkjmWOyaIgZp2g6gkSrXCNBbDG/2rLNVxhaUaWBHUQBAooUEBBAMBSENSNqC72CCY5OknmsswCGekjPKGZKZxxUrvmJdjOKSdLVVSgp55//hlooIQeemiiizZaiqMV5NRmpPDGG69ynyhbY42jKtuss2WKWapYq64KEQ/DDGPBq9HAWoottmiFpQ4QmzFQBw/s6uuvwOISAFBHlplYv/uG3KypOOaE5pvTVqvtyXKiWeeaLEEg88zg8unLuOUeagujjsLCScM4pSkvm0TLe+Qlx4365Kf4igqk01WWaiqyLnYVcAJiUCEwQ2Ao4LUTYDuxwthjK2AVxDqYkQgDApSRtg4M1FBDCh3U/cADkQQRCQoP+P9kZKnFFpaJyIJI2empI7OYI4447kjTydTSOcmccM5peSecAFCLSnrgQfPnfwIqDc6ECmOLMD3D8orqN1Vq9OvzEmevvkrn+/S9ZOLY4pjEpphV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EQh7GNB5e5d6faf4fs96tV/7+3X4CGB7uI97uZ97uq97u797vM97vd97vu97v/97wA98wR98wi98wz98xE98xV98xm98x398yI98yZ98yq98y798zM98zd98zu98z/980A990R990i990z991E991V991m9913992I992Z992q9927993M993d99u97vfd//feAPfuEffuIvfuM/fuRPfuVffuZvfud/fuiPfumffuqvfuu/fuzPfu3ffu7vfu//fvAPf/Eff/Ivf/M/f/RPf/Vff/Zvf/d/f/iPf/mff/qvf/u/f/zPf/3ff/4HiH8CBxIsaPAgwoQKFzJs6PAhxIgSJ1KsaPEixowaN3Ls6PEjyJAiR5IsafIkypQqV7Js6fIlzJgyZ9KsafMmzpw6d/Ls6fMn0KBChxItavQo0qRKlzLtGRAAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKGJhmzwiyIkn8iEIHyo+wscjj4w42yYorugiipPQiAkrMtJGY41ABomiiSbW2GNpqqQIZJFAgoLJiqCk+CQoR1YkiImQ0fhikEwK6aUgT66oIlCT8DHJmWWmieYkmKw5ySWXTMKJS7a8yYmccObJCSel6AnnmnGWMklPZvJxCYuIJqooos6BYqKKXw4pZJiOngiFigBEdcKmJ0TkRDPEDGPBqLZYUMotwKB6CyfAlAIMn69C/wMMAABgAgAoAABTlA4g6MBrQSkEgQIFFARgLDettEKKssuSEoqzoYSS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O/jwhrl3zolz9ee44l1TdY7BhIkiaaJEISFCBIxKNCpfuFC5Ng3rdZWdgMV1x1qBCSq4oFN/wYTTaUydhyCDjbX3XnzxzUcCh/jB0EADF3wRQQRfVEZDgBUaRaCKEt3UIowxyhiSXjVCdN6NS81oGIf23edhfiiCyN8NEdxwxhlFitIfiTv6xKKTUUo5JZUC2Xilg01VOVePHd4HA5j6DYn/wAWiRIdkdEteEMGWMkHZJpxxyrncgzp9BheEyc2ZVknwwVcEoBv6KOYFRRp5AYgX7JmSZos6+iiklyGFo53mrUZhpFmZsIRkfwJan48woMiffw0gIEqmIHGVKqutuvoqrASR2GSstdp6K6656rorr736+iuwwQo7LLHFGnsssskquyyzzTr7LLTRSjsttdVaey222Wq7LbfdevstuOGKOy655Zp7Lrrpqrsuu+26+y688co7L7312nsvvvnquy+//fr7L8ABCzwwwQUbfDDCCSu8MMMNO/wwxBFLPDHFFVt8McYZa7wxxx17/DHIIYs8Msklm3wyyimrvDLLLbv8VDLMMcs8M80123wzzjnrvDPPPfv8M9BBCz000UUbfTTSSSu9NNNNO/001FFLPTXVVVt9NdZZa7011117/TXYYYs9Ntllm3022mmrvTbbbbv99nABAQAh+QQJBAD/ACwAAAAA1APcAAAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYoYmGClFgiHygKwoeKj6CIyYiz/XLJKKxcIoiNgoAiyCSngAIKNTDS9oiKJhZp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IkIlGQKWoIgYNaiccyWquCKLI5H4UF0YtjjcbBx2KNGHMOg441kv8tiQX9j9OCSRQ/po2VbdFZlaWbaBRFEDlUhZCQwNLMnUkUTyR2GFV3r5pX7ziSb/0U4AgmlajbRV1AANNDTAJg1n/iYkmEGmdMqYcuq5p3dZGhQan5g1yWFFCDSAAKJvBuoSnV8i5eCikUpKnJ8ENWfmpIbNth5FNyB6gSgXIJqpRpW26FdcpKq66mh9obiamKuxipeNGJhwqwlFpJFGFCT4KoIIMFTiJqgRfBHBDRdEMCtFpra4FLPRStvWq4TNNS1aIpAALLA6Ctvmm4giAOoXx35xxiVn3BABu+22i+1ajToKKbz12gtUrMqVmS9M936Vq6689vortzqCe6go5bKxrijs+juQsw9LPDGpdsKVEMVCYfCObbXiasKuAwc77Lg3fJHsBRmnNMlUGbv8/7KqRp24Wpkw/1TbEhjk/HERRUQh8shvXiAqAjeoHJPNSSvNZ101bfZSv0u3VKuNtwY88LYGh4uAKDCnJDXYYYs9Ntllm3022mmrvTbbbbv9Ntxxyz033XXbfTfeeeu9N999+/034IELPjjhhRt+OOKJK7444407/jjkkUs+OeWVW3455plrvjnnnXv+Oeihiz466aWbfjrqqau+Ouutu/467LHLPjvttdt+O+6567477737/jvwwQs/PPHFG3888skrvzzzzTv/PPTRSz899dVbfz322Wu/Pffde/89+OGLPz755Zt/Pvrpq78+++27/z788cs/P/31238//vnrvyM///37/z8AAyjAARKwgAY8IAITqMAFMrCBDnwgBCMoQeIEBAAh+QQJBAD/ACwAAAAA1APcAAAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iz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bj30s+ucX5nWXekwNu7cunfz5go7Y0PKvYd3PY3h+EgaMETAoEH8OcHf0BdDhvjo4/Ts2rdzdyxdIU2O3cebNI48JAIYMCqpZ00e9/f3ZXeKl2//Pv78CeMjDL1SP4D/eFAPaiE1QAMNByYY4Gb8MTiUaBON9iCFFVpYmoMGzXTUhe9Fddx5ICHQAAIjNuBeh4NlmOJIHdmEHYsxyjgjVmsZ9VJ9NEL3IYgilXgBkCXqONeKQ2oIk41GKrkkk+A1phJlSTW522EYmCASkF9EEIEoF0QwJVZFLon/pFs5gnkmmjKKqZFLacYWBQlxikACAglteecXs4iCCBtfaHnnl25O9qSbf0kIo6CJKprfmv9INOGimkWRBpxxZoRnBDecIUoEfwYaaUqN6lhbmaCaeup2jU6EKmZSUXUlSDdk2akodbLKWF5ukvrQrb36Ch9PtVW366+JecDLEiBaaQKzJhRBqZwiVJLgjxcIWexIotIYHK/YevstdXjFdBu4c5l3XLPMPlupCMw1d6KJKJa7H6G6NjQvvvmWFdm4u16kb1lRVWnCss8WEQW77k6LIIIA88XQJIg6PDHFFfN7F7kVWzVVYcqm6yylcLbr7nrtabxQxN2evDLL3vr7/2hdkLXsVJXoNlvEupWSMDJzzLFc78xBC72oS6JVZhtlGQ+tVLID35xGyCLv3C4MQf+7NNZZa7011117/TXYYYs9Ntllm3022mmrvTbbbbv9Ntxxyz033XXbfTfeeeu9N999+/034IELPjjhhRt+OOKJK7444407/jjkkUs+OeWVW3455plrvjnnnXv+Oeihiz466aWbfjrqqau+Ouutu/467LHLPjvttdt+O+6567477737/jvwwQs/PPHFG3888skrvzzzzTv/PPTRSz899dVbfz322Wu/Pffde/89+OGLPz755Zt/Pvrpq78+++27/z788cs/P/31238//vnrvxg///37/z8AAyjAARKwgAY8IAITqEDaBQQAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at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/CAIQyjCEZKwhCY8IQpTqMIVsrCFLnwhDGMowxnSsIY2vCEOc6jDHfKwhz78IRCDKMQhErGIRjwiEpOoxCUysYlOfCIUoyjFKVKxila8IhazqMUtcrGLXvwiGMMoxjGSsYxmPCMa06jGNbKxjW58IxzjKMc50rGOdrwjHvOoxz3ysY9+/CMgAynIQRKykIY8JCITqchFMrKRjnwkJCMpyUlSspKWvCQmM6nJTXKyk578JChDKcpRkrKUpjwlKlOpylWyspWufCUsYynLWdKyFpa2vCUuc6nLXfKyl778JTCDKczrBQQAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKGJhgpQoCB8noqiiIJugOOJsfPzCByag8KEiHwDYOAkfwLxIGyYolriiiSsGGeSJKQriY2mgXGLjKDYmaSKSNdrIR5U2ArBkRYI8ouRjJT5iZJRTllmmlWje+KVPabaJ5o5FzugSH07yAaeVd9qJJpBt9uTmn2iewodzVRKJpJMpugmKoIJeeYqJk1xyCVDXEGOLBRZcWooF0NhyCzS3AONpKdCQygkwpQADDADA3MIJqaCU/wIAKKAAUyutt+JKKwA0YnLJLyWC0iUmjwjL4ibPPJJSAK1wQwourUQbLSmtkGKtOKFYG8q2mYTSbbePZCIuuI94KW6X5qLr5bpddslHueuKiWSJQb1rImObmKnvvkgW2e+8Qq6ZE6AEp7kjS28aXPCfOi28sHJYztvmvzdaKcgoglyS8caXNCms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pj41qlOt6lWzutWufjWsYy3rWdO61ra+Na5zretd87rXvv41sIMt7GETu9jGPjayk63sZTO72c5+NrSjLe1pU7va1r42trOt7W1zu9ve/ja4wwgt7nGTu74BAQAh+QQJBAD/ACwAAAAA1APcAAAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYoYmGP8CGIiSjyoaIgJ6o4Ik8h7MMPPyUkkUQJJbiloomT7Oijij2+SFuJLD7Cooksnqgkkjsu6aKQLe0g5Q4D+LFPBvzYYWMSGnzQ5Qe5eKlBWC2OsqOZP6Z5iZpQVmSkIJA9ImeSgrxJ551JItminksCBWSaPfaY5p98uASKoIH+iCihOyba06CQ/jhKVlOaMsAOpvgRghJKXEkjjltyqUESYtqRVaSRoonqJWvyMQlQwFz/MkkprAJAa60AXAIKALkCAAquv7JaK6uCrPnrr5MYCwooroIiyLKCYNKss3Vicueun6SUiZxybqvKnHNmkkmd3QqybZFGvnkuunami2KRfJyi5Lx5lohiUEeyyNi45NaJ55168pnnknTeu5OgqPqYKMKFrsSwohArPKhOCVfc8FNTZjxAD3LwEYoBPVi6cQ8GGOCHpptyemUGGeDocgZT7bmixWaquiofrV6cUym3Cuvzz0ALm2yywuZ6rK+5snqsrrou6zS01CYZNZ0njcvt1VhnzS25V/vr9b8F0ws22E/61OKJjyQ259hss/0upCfmZPHcLDEK8cMSu+qj3HOj/4qVlANcWqXKLIOaRB6javDlB4zn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X5FajwjqrMD8EeVWELyEJUBGD0SDgFSrYF49pNcB632Ce7VgA/nO13A08qZW/fjfEZP4aLXro/9rSwwTWfCVtrygrj1DiUadifKMd4DMEyy8XvY+AcNIcC8cDnAALRgBCPiQAT7+YIT4cnh2cbGRiqMs5eXyt79TZkpmqSsLnWHWwDG254B125Y/6NjC7N1Cj38MhyBrgcjwtcEBgMDkDtvVrVe+M571iuI89rFCeRbKbNnhAUFH07oesC6iD61oBGdGE2rlKB7Ka94KXzjDG24y495SIw/+udOeXukTZaQ4lX6aJ7KIhSzYwVd2zDbAOkt0PaCFGT38dgaRlvB5f6BjDB/gyJiW3opKLexhE7vYxj42spOt7GUzu9nOfja0oy3taVO72ta+Nrazre1tc7vb3v42uMPMLe5xk7vc5j43utOt7nWzu93ufje84y3vedO73va+N77zre9987vf/v43wAMu8IETvOAGPzjCE67whTO84Q5/OMQjLvGJU7ziFr84xjOu8Y1zvOMe/zjIQy7ykZO85CY/OcpTrvKVs7zlLn85zGMu85nTvOY2vznOc67znfO85z7/OdCDLvShE73oRj860pOu9KUzvelOfzrUoy71qVO96la/OtazrvWtc73rXv862MMu9rGTvexmPzva0672tbO97W5/O9zjLve5BycgACH5BAkEAP8ALAAAAADUA9wAAAj/AP8JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MOL/x9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghihiYYKUKAgffDyCIh8noljiiDOFsE8GJSRRAj0aaPDB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zdPCnzCbZeIUd7fFff4DPaAWrhAxutPTrnYoE7Q5Llr02nvCckxjmh2ysDve7653vDsc3B0dH84jru6vk7bnFv8B20qH9rgzvvEVtjZeF21cx5+kGrFwxt3ZEQv/y18e08eY+0aPcfdfayatwxbSSWcg8a8XuMClHbrtHkz52dO+9ra/Pe5zr/vd8773vv898IMv/OETv/jGPz7yk6/85TO/+c5/PvSjL/3pU7/61r8+9rOv/e1zv/ve/z74wy/+8ZO//OY/P/rTr/71s7/97n8//OMv//nTv/72vz/+86///fO///7/PwAGoAAOIAEWoAEeIAImoAIuIAM2oAM+IARGoAROIAVWoAVeIAZmoAZuIAd2oAd+IAiGoAiOIAmWoAmeIAqmoAquIAu2oAu+IAzGoAzOIA3WoA3eIA7moA7uIA/2oA/+IBAGoRAOIREWoREeIRImoRIuIRM2JaETPiEURqEUTiEVVqEVXiEWZqEWbiEXdqEXfiEYhqEYjuH3BQQAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKGJhjwhiIh+C8MHHIyi2WOKIM9mhgQYf5MKMKqpAkUkmqjzSYy6s5OIWH5O0qOIoR6pI5Cgw0paJiYKUaKKUUFaZopVQNllSBkkkMeMHYNaYSy444shKjz2e2eMjp5T4iJBgKSnnnHQeeQmdWlYUJR+QSeknloAGeuWeJgIlZ5F0TqIokYwyOolLoKiIaJ2JVsoTAClSqimKToXATxIldJnH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p1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYoYmGP8CEIHyiaaKIgLJqIyYg0qVjiiTSmKKNbmKB4oo0p7jgJjHiBsFMmLAryyCNFJqnkkjQKAmRJUBS5IpM1NsljkWLtqGKPOl7J4ygpPlkRio9UBQIIZpghZE1EGskikklOqaSOTG7JB1A58jHJnnx2ggmfgAbKiUuccDJJoYfyeckklzTq6CWcQMqooz/u9AuKoNh5YqYt0smiU6wIEqqUcTZZZ4uddrliViruqKWdPNr/+KqVKALFxyUogmmjrnzwCqauowTra68p8hqrsanG2qWWKa24rKmqcklqrFrWyKWsXl7LY1Cu3jmVmuCuCRORR75J5bmmUrntTnzqGei78E7SSaUqRbqnoXwaqm+i+/abLzU5XSLIJMq+KmuTSrlZ5CjonttqqQ9POVWyBisLq8UY84Txxhx37PHHO57Ex4xVtmpyyR+nrLKOQHXr5FNonimBAAysEW5LocCJJJwN9zxnnCrm5K6e7sZrNKMs3bvnoov66zS/+i6a08DaGnwirkqOYtQjp4yMqs/qppvssile4tTK2FbM8Yld83EKTsR+Gfeuc+daLLG4pnxisHV3/3xiSadYi3bJaqONceE+SevtUjGjmaYEHQggQeNqphRKzuXuDDa0pIZ9sU2AFr2n6EfP20m9++Yr7+qms846voAOapPAgz9M1JGZLxm4wj/3/nOPVRqsFLYFwyrlyYVz/GJNhjfv/MclORvt89Qb7lOnIUfluBVpnrkSKjprrjnvReL+ySObZLLJ+kg6W3HwrTJ/9Px7zksvSoXCnijTjPbPP9P7WlT/ZBcjglHrZO4zWVCggKRTNFB3curcKULlQFY8YlSoSqDigFaroiTvcCgi2J/0NLBuealwggAT82KFK1wZq3owtNjLRqIpBBLOhjgUXAxldb1YTaVx4kqJIP8ygTudual9Q7xIiUpkvC39TSbvAkX9AGU/QQmQJflLXaT6JSmnISpqSFuhlzJFLDBxinZJalmoLHjECSoJThlhoqp02KWhXCxbixtT2zg2CrPJ5FZlI5YBPfbCjxVSbz4kSbSqBTxXpQpokJxW8j44vQ7ypGJVqZxKPjFEhZXriCDJkZWslCMoBgooWewfRQoFKUmVQow2YggSsdQTVagiEw7MnZKgIBKXNfGJPaQkSKz1KjAB8yVEy1tPvBQ9J+YRbsJbZiL/QkTcGYlcnyqJkTZ4olTA5F2ozN+hCCiRTnwRUrAMGkPSxZMPPEIVFmSFBVXxSVbwEiWCY6SJetL/vochrJmHdNszVwJIQPZkj+ocSbJ6GEtp8vAvRSyim1TyNU0tryXg/EkWO4HOiozzUByNEY9A0RB26iQXj4CCPFeKpHi+pJ8Ve5tO6DTHgZIkT3IThB9bAkhlauxg0atW4tZ1ySv9ZYgRLZdLMNGiSVTpoivJqE9ekcVCWYQTHGWlVf84TYU4coY3ueA736nSU2QiE/eMiTEtNjXpocole+sar7LJkoJaUidrTahINAVWoRF1J9TyC1IjmkSYpC2EGD3lT6ha1YuUYouG2qlhr1XSFYGirzPRABSgkAl60vOdqkirSA97E+kpcLLHul+zWtirg55Mm8FzqF51YrW+/+SsmkWMEYucuqXEAgoojM0iRqqKVa7+NSHQuskHOGtLW3IWrTN9H2ZfQqvsyYSMCLWpSQCpq574UpvuG2pDf/pQveC2iJkoLfYIljTFTrWqrxhuKreKzBAOjKTrnBJ+afKBXOQCCs11buIYeUzqOpFGpVVWXVmrNY11rUbg/Sd5Z+vXbmUlEhTIsEeC8QjcDjG90IxmSqTak+AWKr7DNedHYxIr1SJEYGnkLzNUkYvmMlC0GkthI2PCyQNrNyZda5t1UZI3nwLWmSWZ0aq8e9wK9wgrD0ABBQLADQp0pJPorQicPDUnyU6kYlA1CRVdrBMTmzMjVO0iJ2CB2oI2JP+CNNGAf/vrX1WE4gNC2eCPRebWPS/Eqfmckp4uwikdqXC1efOzTIip6IxwWbxhkqaFr4KCKgeAypHYyFmTOpEjySmC6RoZRXD65BFXkcw5MTF9L/LF/LWjvikqJUPgLJMkfKC/H6BxrjXAEVvyLElI4siDY8tTsk13nVoSpYmcCuhRUoQasGowSnp615wEjksRjvFORLxto15lypfmBi6srBEinlcingabDSdC6iGXZHX1Ay5xNwKpLL7SJTZy6n4VIqd9v+TWt54ziC+CSyr9eknStoixGw0SOSI4ImgUhLIHaScDCgIUh47IZSlL5IJ6GW49Yli2aXnk8W6bwM7/PB7FmsREYCt1IqE4a8xnHgpSXI4UOLdGK3aOi1bgAhfcuLTQLw3uoAcA6FXWSIfPHRGv/dp9S0JgsJve1ZKcGtU4eYUuGqsRVXPi3nUtm07frCSZaADgufgAM/BskYPvbnM0KpPCTbZPlSxSIjtiKt11RDveoizMZGetFKftqFtFhFE2SvTH8nYKhjmebVYzYbWHKSeJ7L2RXI6k5xbZZJCjnJtc9pSg33jshJDirKhP/eVWj3Oc7/z1P+c50n8ubm74vOdJz8imiRhziBiJZD0bvaAHTXUUiRIlgTrdYvNnThRrhLjKDzuKBOZvhPQ7JhrIgzjO/gE5W8SBgTs4/9xX1LaK+JLhVyab72lqbInzgalMRdkkyCgRMLH243stPP4TMn253SqFjdd4wdJ4GNd/a1NT5bVXZfcQ4hd1x0MtlHRAVedkMrRwkrQ5EGFuqad6rFdzrUcKrxeCPfdzJDiCO2cN3JARmLN7EPFJ5VM+K4JEUKdB6CcQe+Ij73cSJMYTquZ8GfEOxEVOzSIr1XcQl6VtLVECGrCE3Xd2WhYloqI7pIcufUYRilODcSQtEMFbrSJKEpdBJ/IIBEM1bsNI+4cQV9NTwCAyAMBaEAEA/XdI9ocxDKYtIANbSIhskpRDB4gyHvMTd6RDwQOGYCN3DaGBGyhzmbB6NeeBrv8HgiEYiZKIC9aAAnG0ex32EG1iROVjiAfxVU+FdQeRIswmih3RJ/Mibye2ahlRCuaUP68QDdJHQkVoEFPyCLV4EhmQBHmwhExYAhNBT4GDQS9IhV9DiDSScA/hS56oSK/lEJhAMhcjiqa1I1gDeF6lK0amSHDYKOhXZKzFIy6EMXOYaBEoLaXHEbRWUmDIh354QIFWgVgIVxDIaIMoNqWyJAyYiIvYj4zYgR/4iJK4c5D4erpnbrjjezxTLlj4aRD2EPBnXyfROqm4WKrmEa94YmdIQ2REfWSXhyqRBCIpkr0IjBJhQWPFiYKgCrpzQaHCM8gjfF+GLScBk5OnEH7/ZyK0A3HtWHcO4VSJloseQW0bWRAt5I2X0EeEM46/0ivC4is1kl2xUn54WD4OkY+g1jB3pDLu9lN0VIGjlJVM8hAxt3SISHP/6Igf2AoFGYkgGAo7V24dNpcDt04LySKfQBEmxFtbSDQGZBIUaYo18QqMRVVs1hG1wAkm5oMiQzCMcnEfSXIrkQF2UAIkKZKdJlZuMiov+QsRQUzt2IyzNivpqI4J9BDCJwibYIWFJghBBhGxIpQcwVph9GaT0kd6cn92tTGI9z4CFWQmcm2lyRFLIppomI+TdHkWuHmRlmf+dIxZ6TVusom/V3kOgXpLdznBQArbuZ0n2Aq2xw3i/xl0KBh05kll6GkNFJCCmlZNZ6WJwEZXFPEJLnJaDeGYfgmY8tIJFekTiUlVr1AKjKkRsEBch9lxBLOTowmSKMEPJfCgJWAHSSARzMBAK3mhFySfeqljGRScTecy24UqJXKVytYiGLEiY3iTCEFGpLhd3mh4DjEKCeqNE7OADXFw8/gXtzicA7F7RIQK/OSexokQnwRHjtYqTrWa0Eg0OSKYGbGf/OmkM0GYiklVtQASWfQKqSCEJSGjuTl2CyqZKrEPGcAPDpoEShARzMAKmSBPK3kkE6SOLec+rEB1VQJbzrKMG3ciUsoQD2YimYKN1pd4fWoRSMkHAICat9IoMv9aowx6nJ0YGQeniZgYDDwRc7hVlwpxVm8ydRpRjYpKijkqEa4TfT3xn4rJCVf6EdHwWFkUDs0ySJAZphqaEn6wD2RaAvugppz1TqLCNTw6k9A5pIP6NSQRdQ6xCVUyfxsxLcrIbyzaKCVReHCoqEl5rVPxdAyoj5ARnwxIl5kApDsxl3TpECOzZcTaaTaSI+laEKIqqKdoOv15qqlaoKv6ERn5WANKQwakb5FZqylhAEqgBCEQEe6UC6xAT6wwQaEgEqyQQADrVTQVrGPSOeY6ehxBRjUimwQRh8/6EY8iNT+5qJdQrVKxjrLErY+hsrLkow07JOTargRxRBFrEcv/SrGkloMjAaXzyhP/SZivcK8eEQ8mVgqxQHg9wrH/gLIosQNOWxFQEHOe5UAm0Tk1O4oRo1A2ml8SthETi34GeAlKexGT0IYtZK2NYrJRUZwOgaORwbILAa6LyBOcdqNEpDAfQSvw+icV85c7y5+ACxSwALSEKbQeoWql4AuNaV9KKyd1qhJOG7nBiFbNZUH4RHcyO7Ou8gjw6mhbuxAV9REaeyLwmimmS22ZQhJl2yhl+xBHWbKj+hNsW1K/lrmEAbcKQa68xxOZGqx3u2V5C3UEkSdN+n4h5JcqyhE8a6o+S7hBOxL6mj9gp0iL8n+NpiKgcAoydRKROwAGMACS//sQSeCLTch209ahV5mVvRQnbRt/JjqUeodYAzFCydNChUoRq3u2DvEoZuuoYpq7uLsYAUykuLO748p0Kas5mqoRzbaVVDM6/eqXFOtRgMufQFELQDu4husR7xC9r9AJB7qzjikwRSkQY6UKv6AKJhG5TjsAPfAI38vCO8AQSuCgljmSKyGN2+RVyPm+w/S5yPVGINElYospYgsKR9yRd7MoibqzZouoDzEpaVvCRzHAByF+b/uClFpEL5sTpFC3yKY5eRm8FcUjjumYNDI6E0zBFXzBzrvBHgELuiCghQIM6fBu1euRtDq2HdHC4esQa1eh/5UJ5itEz+muPRy6If9hxQWxJGM8lHyQKS10Wad7uorXK4syD6r7xFQsEItqtk0cFZPatox8GKVMEEeCW12ME6hwXrZrLkYSEnpHuqaFvGfMpJ27ERVswT+BwYQ5uO9QEnRMpVz6EfipxwshaLbrEX/sEHLGXIuYC/QoJXKnIw53jI+qEb9wygKxJErqEZK8m5hAwvcVyZGMxHmzhpvsjaHMEH1ktiU7FSaiOdsKbFlslW0bUQtcE+CDkPs8iuIjy1BHK/2aI8Sbyxyxy8y7ExiMwRpcErUwzIUCDYqkKLMKukB8UgBGY+9EXRADmheYzRmBrOyIKt/sEfNHRk0qyR1ZxHzwC3+C0F4LAGX/27oO0Yag3MkeRLP/bBBY3K32nM9ZphOYmIm0C0qLrCPum6IlpLMrodAX3NCwUAtw/BGvMLiKWaAVvTQXzW8ZjRO5VmPNVcgssYeDGEHzTBLKyr4lTSMnfWUEU8kqMn/Lxsce8Sg23RBT3Ch2PRQ0a9Qp+9WJwc0mrM87cVvkms9H9NYcoQ1K3S2bcL8hAdW9fAy1MNW1oLglQbRYDaAKZdGNRtgxAQV1Flo9jRLDpkGcc7UesdZScpVKwtgcAQCbsnHn3Nchgaglm9cMAQrwLK1SYU2eGtgibcpaLNQFvBOtHLNtq6w7s8x6qSeyHROU7Z9Ufd2aXRK2AKCp+moh/wEoJPyvuM0SeUAKG01PZN0SZm1a0L0Rru3DGE0qI8EKS4MTJcu67fxnvz3eQFGkFOuCsQwZo3yjhq0TweDKDvEJmwAnmyDTUlHdPVEM103VFYASVOWqayYS4N3VQVzcMxHWzdXeIiGNXQK8cCXYBYE+8MfaVCG2j+K6IavTtzM+8LmQ9zxR5lrgRB1R2/pJX7HLR9vLQXvdxYASvhAOjFWg+8rAEBzJkenktTRj9JR2NIE9ZDITov1+X+jgUXHfTPMQpRCy+e0Uwl1YDIFN/7sYA26XRfTIORGzy4wkC24k020VEM4TEj7hFY4SwrBmqcoJd/wRQxPXDXGE8J0Tcv/WXChlEyZe5Sie4hLHVI/gmV3x2zodKY7ShtmaO6dNEGg+3I0hxFep41ODwHZpLiLOFEAOFL4w4ZmtEgHK3SGsjrestKYi4y3hX5wFYNL8Flm+CSbS4Km+FDjtKA9B05mO60JR5qucu+KzxoAh6rQ71DoBxtOO1FvRCbEAuLoAFBXg6nuOEsUQoEr+dcZcvZMwzm1dYDhB2ruuwnAh2v+grK497EmR0zoNAMietpvOxddZ5jfO4gPxe9NJtxElrg0Rfzzj5lih7fypC0HuE9+O3eFu4QDqquc+NBSth2leE898S5sVFwdX5z7NIs4djVxx3zgN45k+5k1xXhTrYaD/zhiiLdyAnROuDN2/ay5boQupwJ+x0O0/UQGtXvQVjz+x7ucoje6Y4PIGIe8ssVxiTWNxAcsCPxBr/d5bkbb6rtMx7vRL8btHoonWHuqPrrnW1OkxwWES1YJ/PfNUAbhBv9A68e2+UAx3f/QnMbjlbguwqry44phg37FnDxOhVWOcNRc0y+X/gD48kz7QjhQAUApdP70L8duUPzER1ewJ4cqRL1iFb8JHdPNv3vYQ4b50bvINv+26oO3eXgx4j/d6v/d+TlW20BGAJPiFrl884VxoZe9eYS5MFRH0XiTFjxVd3/XHntOWT+ab/++ZA/x7UfOjr/YxQfBL95nko5qC/8DwUeHw2x7xPVEBse8LvjD7JkG0f06Y6hj4ejL488v7OrFcAQbvVV8uyupNLYg+xg8QoDJhevbP4EGECRUuZNjQ4UOIDAFcmjgxosGJFCmWutjR40eQBx+NJEnqYiaSgkaGZNnS5UuYHgXNpNnxkUqVjzLF5OkQJcmVH3PipEmy51GknXR1itUU6dOE/ooV8+WrQgWoHV+9KvWKE9daPSfxGTsWVERQfGgKytrzgyq4qh7lalvXbsRMM29uYvvxJiZBfDE9wjTw113EDwGUKrX4UkfHlzQmpqxQJUqUqE6mvFnZ82eXa9XaxDlyJ2iQQIMK5Uu09UxMmlHfTaWrqf/T2SD9VbVaAULuf12/ciIulixZQQAiYlJbE/hDKHHl5nlePWRpwCEJCxqMaRMrgtxBbbIOdXFjixc5ZZxcHipmnY86/kzp3n7ltTNtqj59X6Hq1Tzabju9ZmqND/9gqi0W22JJkCGprLIKD+B8eQUW4ogLh6dLJvFwLOUgSoumUx40KBcoUErRRBZV4osv+UDaxcBNHnnxJkF+0YkaFkM6z7GOGruklI16fCm+ki4KBSiVjHQyNJpGu0gvkvpj8RP6OmPpppGK8lIQPsh7EiKmGtRlzAokvIpC4ErBkLhSOOHpw7JCfEiQSWg6y0RWUnwEir7GLK/GTWocrKVfYLP/MbDXBjtFEB4FbagxxhqDbCIiF5P0o1wwQ8mkiJbMclNSHcovUIgAtJLFm35qkqVPJuEMRxy5mynMUg9i8DYHn8Sjt6v8qe5Nr4qDqayy9nwIlDxnKvFBDeBiRa4Yc80NsEK5qxYkV2xURbBaWwNFkEflsTY4xgAA5rGLbqloSDnP9emnT5VEMkB5SRUN1YdUfbLGKgX55Eg+aF0LMG3H8q5UXmOpZszdrrpqhmFhKZY4WGDig6yy2L2zWUGU9U86QVRhJV/UPiHUxkJfepGVwA5WCROaNwFlmVIrLQUYji4SMlMAFgOGE2CKBgAaooMGABRglqYGFFCeXgbqZX4B/4WVX6wG5RdWsMktE7DBfgRUiERFEqVQwlYbviyByotLLvPbFmWkTiXN7TFzAiqmlGiiWWaaxxpY0F0d7tVJCCSe2DqvLu7ZJWTJErmhEQW5hF/7cnkErkdYmZvuxAi7EZOYvnvRb0VpBgWwSSIdU2fGIGtsvfWUBmVpqG/X6JLcefcdlN95DxmUU6CeCTzU1s6kFXuzbFu10k7NTy3qowRTP9CP2vfuKsdsOy+eBjIQNlsRjvnvXZ68TRdZDjcyccUprs6XNznpKmPIOZY8IjxnutxEuZiscx/Inme6la1PfOJzLPlFaxLVne1sQnXjusQvXNcj2D0OIulCz7reJf8ZyUykd7zLXQlNOC7AYCJ3IcMcYpTHvFCJzTQAgluX4lYr6eXweggqYEy2d5Ea6kRQNFyVy24iK4Ql0Vbc4QPNjNSUBj3MV4rzhx7KA4tOxAlOwsifhzjGv+YIYhQA7BwrzEiXHlJmJIViYxFdsotPrGVcVuPO34y3NZyxCHZ2ggg0KhW02i1NaUGjCPAMGbxDmrB442Lk1Uj3mbSpzRodSdsMaUhDHWZyejxMI5Ru1UKGFKhVkhKEq4yClE80sXxL/Bt3JsGcVJjoNtWQhRSdhAfFQUB+1sHQxeLFkg9tbBIeM9W4rmeiznVOFaDsZFYKUyiWufEl1FBZtmwGmNX/SRBqKuTDBe/DGFukyyPr0hkAkjbIitzOkFBD5AmJx8jhIe8zOolkJiZ5krBV6ZKciZ4mT9WcZnrymEAsDb6MFIwgGpQnqdhEmOqoStZhIk8SfeR9ZlnLMeHyKhDwRxXck46uOK4lHOsY/4wppQSVrHOZeFZA77KKGqnMRkKESh02kSitrXB122TW5MpTilvcAqgahAgxeLYYToAiabdrmiAJWUh3RlUljUwUaNJ21UzgwiNmo8/z9tk3vd2kejjEnks/EkaUpqqgC+wRk3AiprYgTDASxZNE1ZKnSVg0FrLgKy8yKjEIQMCj7skinIwVEj50KFkR4YMxwYRManXO/6yIQQWhVKYyafZkpnzZqQqh1tjPAsM+pQhnaUFiAVsAI5wctF8pQLGz2wGAGoIExShKmCNMaC1krBjF8K7GzLpcNRRp06pHSFHPtcXHq24F6/TkNlmh7BC4CTGYQo0UNxfdZBV3aU2eINpEio7FPe3jqyz8OsXEcdSK9klFhjLEksZ60UOMHRf1ACgIz3kOundJYAILVc3t2sVmiVodzTzbOwv+1Ba3MK1/+MCKFVp1uJkYLjf8UyDn7Jd/0u2IKEtZKr2N71V3IUwTJ/rKmpEFrsDZa1/P66QZbDSw64WIDGwsg7vYYjj2+wpiO8Qxny6ksc3hpH9gll+2vgRMj/+63q1wVLAwfukRUAbTlK2sEuoRmXrW5S/LCMXGxGjTagdurAonEWTQlMICpLWFLVJawiQHd7hztvB9ThVnDSPkhxumFZ5ZZMrAPGISYAszXplDM4h6J68sLi8vXmwkPPhjo1WMyI1vfBfiNI4TxOzIMOXL6VBe7lYmOkXnSjZdkDyKrNKrnj9zuGqDzSSzdcESJvyrMlRgYhuJeVruztzIbYq2Tahds5v9Q2AWgoYUxw3FcetsH7L6Oc//2DNEwjjKXGUCRtii1eAQY+C6NhG8EmUxL8zr6DE54AdqYLcatvCQG7/BCECwdF08UYsLfaUrIPH0Yq3t2CLfp9Slhhn/Ulb9Sem22rnSdbXcuJOyW2+iv5WlBWVUMQkC+/p2m1j0bGyB2jYb286MZMWKKdPs4y772e6J8oin3ZBq34koLidVKAYTM5KsjDINHbeBZTUJ93mm0eh+0hO2cPQnPAEOCrH0jW0AhEHAAR9vaLqNnwIBX0jDF7WAhTDe8ZFL6O/M/LucfR8EM/xqiScHd271Wm49hTc8P972zDbgKPH+VvMTskEMNmSFuxK2LhoetwCxRW4fTEA4R6iGSspRvvLySO/lMgdTWmXe53zlxFCuUftddrGx8BpYgqgxt6OJ7iQ94EGXeNDDD2psYxtQ3eqYdu8k8Ndpxe7v30Tmk7M6/68xuSM8+NJje4ZB84lQ5H3v/d2EKygDDDObsENhQM3HC0+Mw7McpzlS9rIff+HnTh7mHJ4SUbgsKUG/rTWLMtSsj8JxQXTCwOEFTelN/1dJ+4P1lW56YmqhxU0rhVjqiMSSr45ziMTaod5bC+1pu+JrOQhsMuLDsLXAEeBYBVRQPg3chF1DDGoYi6fxrEsABjSzC2KzAGKwgAShKsZ7imV7QVKgAAezG/ELJfLjM70wuXOpEQPBEXAZH8RAsfkLnM+wPw94tB6JMd/wBwigMXi7NMrIkEvghE4ANQQMpkngo4ZIQLNLKRJpwfKrwFIaCSSDGQC5kdMhFL1ZGTZSoP848jBp4y9XwDvmwxKJ24RnoLu2+MDAU6oSbIsTHAYV9A+SA4U4RIpWaIVlU0QZtDMarEHLuEG1ohUdPJcM5I5GIQyy0sOn6IVUEML5EzoPMC8PWIK/WpMmZJEplMJfsraw87c7KbvHepBSY8CeOJWWogwKBMO7yIRV0MC8u8NH6MC2kAdD+jWmaUXEsABhsABBJIYEeQSogbBDPApuSERsbET7ED5ehK5PsjwENL9qHKKVuTkIkquZ4ESxqKPAwYQBTAxZOMIjNMUpmjQndAgtgAM4MALP4Ar3sp+LOA5YREBZDLht/MIGrMB5ekTrQAVXAEYNrKzm28M+VKrKQMH/YUjBYXgzCDNE0MDGVsCFVkCBGYwySFyIbwRDOGwmlACMNcqPwfgLTISKV6oritIGyuAFeVwCDzhF30hFiICDLUi6J9ACzwDAKfxDhCjAgdzCEQFH9yAXW+SJf5onsvKPX3yGTagsYPyvakqfp9CapMKdwUuMaxgGtETLj9CHcAoqPyqanYEtnmmMpmmaXruj3KEZaRyPkLEaagQNXBDJVrhGbYwIbmA2Ckuur+onG2LMtztJhXA7lYyecSQVVMCu1kgh7/COmGmZoxhCCTpAu9BJneRJn1SviDi6o3OAJ/iMf5wEZWQIktK9hxgyy+lGz2BImLizz9jFBzGGTHCF/21Yvg3EO4nEBmU4ChICHmqgCMpIy2HggY3siGEIJwsQqtUiLdghQddKqrFkqrw0oeHxy2kETG4IzPMkyYtQxAnDKrW5F/iEngl8u8o0K8nsMAyrz1LJtcwMDL3sjkL5G8AAS40JzXZMDNL0AAygx46oBBGAAdTQqAqQtHtkCAe4UAx1zaGBzRGMzcjMvfmCCFn8nwfRTSULP/wYkLJ6kHFIIFSAo0/Iw4iL0U2ghqz5BHOJCUyQLd6ZCGG7C+lshuiczosotutcsLYcqrisS3Xxw6h6UgjDGtyMCW4IgCqtUvUMFWZrz+RaLgDZRR0ySMi8zymprjxTGZzTRM5Uw//5m1KFyJNU8Dl4nEcM6MmOgAERyFMI/QwJ9Y1dcoh2cwA1cADQ2DROgM1O0EIhw0JFXYgRddPEaLmEJJHPyAvzexIM/IQ5VD46rKYGaqCY+LWlWZd5QAweOFVU7QhPsD7UYjBXBYZb4BlZVZcmJcEndacofSfQoIArDYAAiISLCIBlozAu7dKv6hIw1SHIjMwmE1OGQFa9mDxUmJlAW9Mh5MyFcQmKor+7SNAF7YgG0NM8pYHPkDSJ8Yc/bYh1U4N1BQ1gKKxJSFSielMQtUKFuATmGKgEYbKp3M2YQwxopTkjWYVNTSAZvTut1Eo24sCX8MMRBAbRzIoVWAEemFj/HqBOW4iGwlMzNmuzUoCGomGaoSFBp2KaX7DVA9Mm32IkAq2MAOBVCvBVYDVM75sz5cknT4nPxhRD4lvWhGg1ZxUyHNLP7PkE0AQ3Aa2ZigKJTfjE8HrHttjJJWBQiKABGKgEGMhacvWMPq2AdGWI1vsBsXU90LiEToDNLIzYhOg3srDXn81XEvXCJnM/j2g5om0JBSqKu30OmFKZPMzDX/iET82arKnRlgCGp1mXoinLuphYx12BjvCGwiO2UtDYooFLxpBVErTVElqaHqWZXoMwq9ERUPCaXaUA1PXVB7gIXPC+4yLWm7Uk6BnagK2uvW0mLZvMWrld0BkJ75Ag/80UPYl6hJb1CA9pR7VFilLUyW+9iAagAeiN3nKlIjZ5CD24XuydjQ4hju0lyE+LiIKEVMSQPJ5ouVwMnd3l3eeABL+lUS/7VAkyXB/BhM1lmrtYASeY2PztiGuwgP6NBluAxk5CXQKmgNWl2ZTLBLLxWc8g0w0TJQY2CKPFRHbUzJkECWfABPl7pUmQBbuYRwWl2odAgAZoAAQg4QaYXsWpXoeoAhfWgyqo0Cg0VE/LIyGrV8ainrj1j2i7RdF4Oyyjso0Z4iHWi42h24MQQ/W1jnO4qWfQSvjFBBsNXG/qiObcXE64BrvIXyfgYuq0AI3VWC3uJBQoYxSggEU4YP+IENYtXeAIjtRbgUobjJ43PogZcaWJshXgRSwDdaK6kFoRdogTvgBCPuFyjZgJiYgZWORFHizUwNdD3TS39TSBjAjvSkBWUUiq/EYiS7i4C9MVNRUzzR5IwMObyi34zRpqKF7wDVlZtQsF6GJZ7ohm8F8w/rhmigQzLuOOYOOUc+M6tgsHhogK/L063rby8blKdIhYEMJO6IQPVlAMmOaOIOQviIAIIOQI8IyIiRgWbohF1qVFzo1akIxIDlF6bVs+aNTIHOIdnsF+PVEJHD5NOgkqEVi6kQdtu6lPzS3vsOGLOASo2Zn1sIsmUIBYdoImoOXCC2Mi7aEUiIQgCIL/SFDjNSYF9jyuYKYMoL0bmljmOl4l0PyID9HgpYWKKIgCElhpEngIbMbmaxYFQmCDCLjml97mu9CECTXXb2aIGQgsCMCDr/WMQ51CDg0yEE0sSx5i8TIREx2pOCZiqSZibmS4/MCLUW6mQgGGQvmF3JKgH72IKVyM27mLg76Che4I6WxoC8iGgEqBB3iADvAICoDBZttoOOa9gJw5kA7mCg5Fj+AEA0sFqEXpNEjplYaIl77mGyCEG4iAx8ZmysCDJZjQYIkIoAbq5wChTUNnhPgxL3LbpWRq8R3ftWApzQo+tPpk0YgIZOWSycqarZEgC9qEHA3opdmZsHaPWrbl/2hwa5cSgI+oa0V8QbxGjGG+k6E97oWIU+CVU4/ohVeC5g+u02nGgGq+gGv+AlFAgHL1hWJIE18QFohIL9/ACuBYl6L2EFBTrNBmLOYY4haRVB+OMiDel2adOeNrCJQYiiU2EldoIBuV4tX5iGggGmh4EB6w5f4FbgYOgOI2buaui+QWZU2ecIRoZqQNjAQ5Qkeb2o4Y5EL2bs+ogKkohnewiohQHN+ojmE61DObhN12bxDJ4Y3BExY5BfsGv6ueRBvar3MAgK5OhdlSx1zxhGHo3wZ/Y+KGQQxviwofP4N5coWQqOcu7ajVyVLEbuctYRROYW6mCjFH74dgcTIHjv9JWAb3DjgQberarLyN6ZF55vF4DqUawvJNkSgLwiPqQ5kVSHIld/BO0gEz0AGPgPAIB2Yqj4kot8EpX3Q7nr/t8A955IXmjYgGqITohd7PMPGpeIfwXvHeUPHqUKwOgeTPFsgstPEuLFH6jsqn/g/ombbRrZrs8PMk999rEPQC0gEQ0AFgN/SLaHIJh/SeaPSFIKu+Zu5JCFC99I8EXQIujwirzVpr7/QTB2/yLnM18YXyYO8PaUX5altWj3MWgcD7WDW8CLH/HhMbpYZUGDO6+fNrIIZrEAZeBx1CB/ZECPZhD8xEJIXiMvbylcQ3X4tlZ/Y64riE/wx5LMVAbgj/PH1QPcX2qaiFUIcI3uCNnzr1fjuIsuAY0T4Iqg5aluvxk0d5h7jzdh+T3JqaKfaPE5j5E/AI6cyGXM93ayn0Qg/2MhCAB2CARFgDYO/5hojoiU56gj92gzcVFCV44H3u+3A0D4D4O81TrBeBTsf4YsD4M2+Ija8K9/B4xYqXkC8LxoJzk4+8KDsZ91B3iOjvH582bCBwaqCGhvcMmqf5yMX5bADjh6YbM/h1HVgDBhCAMth3EICIByhj1D3jpS/46umwV1/6IcRzpIj2iGcIEWDpldb6Ej+Gruf6iKgKMff2se83ZjEIgXzFcl9767jxKLGPx0wVuMHn2H6ap8l7/8qg+QRIgL2PiCvoYvylBAVoJl8PdqIf9oAv9sh3CWSPRJU/F2NYhQDLzSGcelI0zYvofM9vaW7G+FogfYigiq2jCvs4Zy86C7Ez94eIb/nuEaDFfB+efjsPq+cYgQIogCkAiH8CBxIsaPAgQoOYqIFiSC0hxIgSB56oaLEilQRjVvARk4DKxYsGJ4AB0+Rkk4kqV7JsmVCHDjMgdKyk0OpmKFKhXPLs6fMn0J98BA0dulIQ0qSCgjL1aWwVqk+bon5a9alF05WYtm4VpC1rU16yeHngtWQliShq1ZIAq7LCsVpyixWbWMuXXLxumXKa5HcSn0kAAgMGzGcin8RF9/8y/jcU6ePGPZUmnfjo8mVBjyQnLNCmzYLQorsU4HyQmsOG60y3tEgFZEWVTlas0McjGyXWuiXObGmTFHDgu4cTB1uU6FKVlx9rLh40GdRP0qOichXV1aeoxTdN4rrVeUSxZMmilVSkSBT0zovFlVurrsS77muBl3jpr9/AhPlcOizxeGL1ufTYcQIeRBlSE2WSGWa6CREDhF10EdpnFX62gBfE/dIQhw8ZaFBIJ6xESTbZXJONBdl8uGJCNrUSHCksymgggMlNhOBmM0ZkTDBTofIjkD9iNyQqqxC3CVfdYaLjP7KMVRYvaJ03ZRTruRdXBXbNRx+T/3SC31/68ef/X0SKLdYlQqNARlSOLCJoI0QMatZmY0JwwAGEMUy4QBsFFDDCCH6CVtpwGzq0EJqxsbTCMNc0eg0PaLJIASkvBicppo0xZ5RKb2ZaUHZBilodqVEZOZx3W23CpFhPRqkSCSYUIausVl6ZZXxbSnpfYfnlF+B/ZpL5qWME8kHnh48gOFEoymrWHGd3oqFnF0J89ucUU+wxRaCfabhMQ9Rs4iGxEvHw6DDRqFiucwFYqlOM7MrL06ZwRoScUuzSUmSookJlHcDVEYcJklwhu6KT4706URQmOOxwEVYe80o7x8AX0XywvIIpr/iJOWxCwoL8KXIFurmsRHJexpkQG9wJ/6EQfP65BxNM5MDCHt1q2CGi8yZ07jUWXKOuz8MFEFxO8Ra9NEQ1HoUysRv8CBVUUwtJtStWrbIBqqkuqWPCvJCn0qx3PGyCc0vI9UotFtsFy9pcotmxx4YhJuy8BBI1cn2eSvTsnAeDtQAH0+pJ4QgvMCGFDz5IwcQUnk0xXLgN9cw0QYxeE/TmmJt2NLw5eT46QU53CjWxyRS5OtW0YPXPv6u4MnvX3rnCZNhlrTQrBiZgYLZzFbDNNjsXQ1QL3HDLjSYAdYt5t5k+J1Yy3875HRFml22SiWme9YktzYz7EMgRPhCQAxPbDjcuQ8v8Qu7omgstNOmNgR4K/krXj//59Gda9ghzBIcpNKzCGFw7yAaoxq/abaV6BqpGLMYitt1h4HcVRFtx3vGKibVnImxL3vK6xAlMGKaEwCoT3vJmpr2tKBOoS8gnMpEJ6WTHNI+jWQ4I0LghDMEHdOhADejQOCmgjws8ZM0nsKFEamBjf/9g1Pw650Sw3E8nO5ki045DlKcpRYCYmx3VrIGM3aRqEl2KYNgoWMEK3mE9w5tYCBEyPOTFkUlhUozdghU96QGwKJwSEHMqk7JnNQg8POyh+XKwLc8QijUN2dDlSMcDYnDOAobAYla4ARz84Q+TS/PjH/9GGS8yjRayy1rWdKMNEiapS9VwUsJW4jsMLGH/jW6EI8UmojGN1WJjn5oEKAyTmEvYCyEiK5reFPOh60FkQdkjpWkOOQQpvCByoBHCbn6xIUg60RvDsEA0wLkuTwIFF5vMHzmlt7dQ3muUmFwFPOFZFdYoyTuulAUaFyYR39VyCbV04yvmqMuAws2XmSpFYoR5H+gps2hqmh4L+8bMhDwTWvU5pBS41QYXLGBCrBkXKEDxi0iOjgcWSJcFoDHOdPbEnJwUHUvZBcpiJmSi9aOFKeO5Cg6Ypp6Y4MM0zgjLCMqyHkvwwBLq0cbiFCOgTjVeQpz6Co2VS0zCZOgJfVaykoHHWZABIPf+pjIZjQA0He1CDFxgmk+8j0Py/3CiSedHv5j25EUv1R9dMTXTp3kVmkzTKTxRwZlUeA1NETysLFaCASgtgRcYcM7EpApVOTqVqsQCRX9KeAmsOpBY/cMXcWqUr/8lZWUsYoFZ0RoDnkrGFSJ130inGNegqTSvPLHrS237KT9uUTletegUW7AKZAC2MdNgZVdWJVR84lOxUBLbWYoTWafW0SAakyq7Mvs8PTaUaWpap/84gyACrWRBSFGWX4cDGtXm406SeUYqtGko2VqgvuC0gG5bggv8ZYK/+dXr3nqLGHd6khZP0SktGBOYVEkKsc1VSWPFBl3ISvUV7PBgheWVUMBslrtZLZogRgHK8O5Fb0phZ/9ENuEs9OroQRAq3AbQwBiCyfd9WCSGfaNhC/z+VyWt4GR/r9hjJo34aQEkZwyQcWDZrSLBWVFGV7giiK+dMRZWtvJKjloPCT9WuhU+xkBfwQkxy6sUhlmoRIT54aKBon+f7exk3swmAasEFGOdUQG6cCcObGADLUiGW0CxiXFh4n3KdeI3LWALW0DjGkOeyI9DIUOYPnpGez0dvqiMSQ4UELCuMAZTuLOJKU/5Ow2+MlFVcofnmoXCUgWzRMQsa074DDArOSbp3LxCOHcqmSVzlkvMi970EkcIaIBxnzdAC9YCZRub2AU1RiouWmPxm9CwQCmuXemIRHrSYd02iy7/faM1JSidG0BGTuNpHSfz5BOYIPW7WZmpV6A6ForlxTEkrM/d9HLMY65uQfztb5aqmdfsAq/I1nyjQJJ7tC5B75xo+iEsxLjPxrg4LdRxQJ6s45GbGGlDNrEaLNZXx4wuRSkAAI1SAAMAwABGKS4BAJmDwuUuDynOtwIKneN81DlHkiBGLfRvd8mKMuxvfx8hQ6VfxpnZI+SbIP7bE6+w3OAWtygDGVNlpxues8uaMlaCChVPomDxnnIvMtWJeq9E3/net26O4W8xA5wgAidzOnFdv4QjfKu9VcWxIKOYNUGUesQ2CNQfgQmizygGfU6GMXB6YHCsQh0rOccvPkEN/6lo8+OY0LwnfXFflEPjFjBHOco58XKb1/wSmMWs63Eu+5AKAue1ZwUocJ97VvBeEIyfUbeXviDhZ8/pzzz+m95Uo6IcPu8BNrhAlHWc5jOtBcggLpMDFrBPfN0Vu5DOoFVFsPGrasq7+NTaUZ3lseR7LK7mhC44AeuI3J3a5NT73hPO98ELXvC+Zj6JsURfzQmm5MPFJQNO4RQ8Ud6/gFFgbcN1SMXHTaB8TeBbeVIzAMOi2UIpcODKnR7K2RwA1BwJzp4JnqDtsULtPYKdscIjuCCaBMAjSNrRKd3wHR8OQlzy7WBSBBKK9RhvQZ9jBBhwpZMbdJ3XYQcN0dAmSP/HLhDMoIVfwQAdwZRL+l3ZSngA+8VScTiVv80fRMwdJ9ifJ+Hf/iDcruHL4FXdZ+FLRE0G4AROpgiBO0ieKeVUkVgHqXzCNjzDM+zCM2zCH0bhL3zchghaGLCUjt0CB9qCBoJgCHLCCE4iClbi7J0CC4LCKeDeC7Lg78kIDRKf8eUgZsQhD57iiYHbEO7RuE2fbj1F1qjb7FDFEkbhoPVCFI7fqJkasaSCLqifSrTKMchCNcAda0jVmBlUGM4aGWKSGTqRsQjLVo0Y/xVeALbEu03dJ3bJBrgDPI2DTpGKHtLQM3xCOZajLX6cuAAAXS3ioqHey61ey7UcKADD7I3/YEhRYs5Vou7lXu6pgiA8g6TohA0uHWYYHyGpjCmiov91kRA63+AZGXJQH+mYknWcEi2CXzruQjqS3/mxiy8C40Ro4TAeQywYo2kgY0BNxBjOGkuZia3l3Roun8hQD+ExBcOxmLzgoddVR3YsoXScYxMS4kj9wgXS1TVAAzDcAjQoJeqh3CWk3MyRoD6eYOyVIO2BwgramZ0pi0BiCv4UXw2S4tPp4HidWMNRhiqu4vQYGXMMmTHEonX8pEZyZBTiIpLsYtFcIZaphAfEAgS9EhjuxnSJWTMihBge5hQ9YxkaCxpaI0Q1xagt5KHNCzIwoE9C4DaYI2eWo0aq2Cao/8JajiZpSgrWtZPWPRoH7Mu/1KIESuCgfQLmrN0VrgQ6vAIEleT7yRpLCpxiQmMK5Rf16BqdNYUWnVfQjU5rAqVU0FAhDmUdlKZ0Tme4PR8XvSXmEAERNAUOBNbYTcUujFH9dEIq0Ka9BWMs0Bu9DWbceeGYsaRhjuFLBid1MsUnBF5pYYKyTNFT8IsrPIMrbMPt1CeBFqhzBOGtvdC8aCeDGqiXlCcWqgQ+BZSVsecxBlRLKmNCjCGH/ub+MKaDJqgbskllhqiJnuiJniZEpCXTaGcWZEGDFihtdsLarYQs0NsvpqdzuOd7SoRvdtj90SeKpowPrglFDimSJqltqf9oTSmopDAog2YBF/QBBeQAjEKpdkonjdJoLHRC28XCL/6ihaZkfPYo/XUokDYmKyrpQUhfH1HGQ7KpnM6pM66TxB3IiBYNlD7OlW4ngW4pbdoomHaCmO7oGHYCh/Ymh6apMwrpnJ7lef0gnU4qpZahnUqkIOkpljoooKbCeU4EL3TCKxBqJ4wpZ5QpJ3ipj6LpfK6pnB5nDw6FGVUqrdZqnfZPgh5Zi8aogQIqjQoq/Inqpw6HYSJqqirqGM5qkLqqkgLQiM7ZndqqtE6rTF2qShznkVIrZ9BoeU5CKgCrLgirc3ToGH5rmnHoJHho/jFrktaLdWorvMarZ71rKzr/nLwaSHmW56+qhJVtKZjuqLEm6qoaq7KqaXexaazS670uLMOuiDSm5YiKltU1rHPoK41iwpamKifoa5eOKnl2KaDqAsB2aLom66FqbLpeQl9wqKou68GyaTJlK8XOLM36xP7VJBv+Ws0WRypMwpb6bCoEbafqK4T6KqHuaPwRLLkurckaa8sarMK1K3LsLNVWrYLpXw8qH4FZLWv8rNeSp9Byq9EC6rDuxqhqLKL67NjSaLq27aG26styrdzOLc0+5v65IQDS7bay7ZeMbdGCrK9ubNnuRsa6LdOSrMmqa64phojpreM+7r3uWk0qn/RNLORmRbpirK/ma6pmbCyk/6rH1ih4iBmNdi7bniyipm5fpOvTepKIxe3lxq7svmpiOOtMQpS7zu5eaG7acqvamm7fdm4qmKpu6EIwHWrpFm5f9K1fKC5w6i70Rq/0Ti/1Vq/1Xi/2Zq/2bi/3dq/3fi/4hq/4ji/5lq/5ni/6pq/6ri/7tq/7vi/8xq/8zi/91q/93i/+5q/+7i//9q///i8AB7AADzABF7ABHzACJ7ACLzADN7ADPzAER7AETzAFV7AFXzAGZ7AGbzAHd7AHfzAIh7AIjzAJl7AJnzAKp7AKrzALt7ALvzAMx7AMzzAN17AN3zAO57AO7zAP97AP/zAQB7EQDzERF7ERHzESJ1qxEi8xEzexEz8xFEexFE8xFVexFV8xFmexFm8xF3exF38xGIexGI8xGZexGZ8xGqexGq8xG7exG78xHMexHM8xHdexHd8xHuexHu8xH/exH/8xIAeyIJNOQAAAIfkECQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKGJhgpQoCB98nIhiiigK8siINKnI4okyrsjHKW7NaOOOKE4Co1wgBPVIiyYWaWSKNLJo448lsYKkiUgq2SKPUK4oVo1T8qglj0xWZCJUZpgBwpg7PeLik0amWeSTbKp4IlCd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5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKGJhfJRo4oknCsLHiDSdwscoKMZoolt8qKiijCYKwmJTIJhlY4043nhjipOoiMmOJeGo5JIzhsXkkygiWVEogmSyEgggmGFGjwlREAA3AeDSypitkGJmKJlkQkqamTyS5iNwximnnDKVKMiQMuKZ4pIqAtXJJJP8yUknfxZK6KGdDHqoLC7pwkmggAL6Z6CTRnrJJI9iOsmlnfDEiSCXlDgJH6OCMiqpqPJxKalOQelqjHhq/6Wknq/GCFSJMJ6Y64251urrryWmdGeQKP64Z55AzposrE8GlYkgcFqZkpZbbomQlwF8SSYpZZISirehhJsmmmxG22ac0KYr7Up6ClkrrTmmyBOkkiJq772HptLpSoYaikm+h2KaaKKQChooLDmdiuqoDKu6sKgQKwXsxLZKRfHEOu7U68Ucc3xSxyB7/FOVbj5CiklZbmmFAAxYsSWWBKXwwMyRBBEECjijQMHO2X6pLZndgktuuW1mnFK8zCr7I7xKTpLwpP3iS6i++gYaC6EsCfzoo5dsPejXA2uaaaST5hTqpWeryjCogih8YpFGhXzxja3KDSxOv25st8gjLf+7999Jr9hTKI+QG+5IWL5shhUSdFCDBFlimaVAKaTQweUzzxxEJDnjzDO23OAipphjnikum+uaVOzqTNt457Bv84HJk23bVDClUud+KC8qpfJoofXqjii9Bl9yE6AQK+x27FEOBXjHSjEtt/Ty1vT89UqWRD32IdPd0yPQ0nlS4lpKblAHOlPAzfrckGlNt+Gejvqc6NZfpUlLI+2usZgYKUj//auRsVbXtJrgTni5u1os+CW2Bm7NgZGK4O8ANahX2CR2EURew5BXsVvtTRB6u1jcuPcr65HwhEk6IQl9Ar45pSRy5jtIJMCEi9AFTWjxG1q55NSmZ7VQfCNxl53/hPSjI1lkdiZqWBLt5DSZHBBRukAgoaLIkkJ5rV6aChgnLnEp4omNE1u8oNtC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0EAFHZTQQg09lK2/FBOPj00K+xPRSCWdlNJBc2HGOShC6dG66uIsodJAlzKsyvMgDRXVVFVdldVWXX0V1lhlnZXWWm29Fddcdd2V1159/RXYYIUdlthijT0W2WSVXZbZZp19FtpopZ2W2mqtvRbbbLXdlttuvf0W3HDFHZfccs09F9101V2X3XbdfRfeeOWdl9567b0X33z13Zfffv39F+CABR6Y4IINPhiw4YQVXpjhhh1+GOKIJZ6Y4ootvhjjjDXemOOOPf4Y5JBFHpnkkk0+GeWUVV6Z5ZZdfhnmmGWemeaabb4Z55x13pnnnn3+GeighR6a6KKNPhrppJVemummnX4a6qilnprqqq2+Guustd6a6669/hrssMUem+yyzT4b7bTVXpvttt1+G+645Z6b7rrtvhvvvPXem+++/f4b8MAFH5zwwg0/HPHEFV+c8cYdfxzyyCVXNSAAIfkEBQQA/wAsAAAAANQD3AAACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKGJhgvBhIh+CTMKHiiam+MgkI9J04ow00uhWiSieWOKOOT4So0dmVIYJjYIUeeKQk7CoY44lYpJVBFC6V+OUVFYpFo9LEoljjkwWKciPFVnBwJhWDCTAA5GggAIFFHATQAC44NIKKa3MScqdoeSZZyaZhPLIn4AGCqiXf3opyCNeomjoloYq2qWRPc64o0xZZolliywOeaKKk2CCySSCpAIUBktgYKoJGJigahFpREECCSKI/1AJDQ0gcMGtX7QUSyeTdMLrr71O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\");\n\n//# sourceURL=webpack://WebMediaPlayer/./src/static/loading-logo.gif?"); | ||
| 3940 | + | ||
| 3941 | +/***/ }), | ||
| 3942 | + | ||
| 3943 | +/***/ "./src/static/loading-logo.png": | ||
| 3944 | +/*!*************************************!*\ | ||
| 3945 | + !*** ./src/static/loading-logo.png ***! | ||
| 3946 | + \*************************************/ | ||
| 3947 | +/*! exports provided: default */ | ||
| 3948 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3949 | + | ||
| 3950 | +"use strict"; | ||
| 3951 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANkAAAAnCAMAAAC1+B0tAAAC7lBMVEUAAAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////jtXoAAAA+XRSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE5PUFFSU1RVVldYWVpbXF1eX2Bh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\");\n\n//# sourceURL=webpack://WebMediaPlayer/./src/static/loading-logo.png?"); | ||
| 3952 | + | ||
| 3953 | +/***/ }), | ||
| 3954 | + | ||
| 3955 | +/***/ "./src/styles/index.css": | ||
| 3956 | +/*!******************************!*\ | ||
| 3957 | + !*** ./src/styles/index.css ***! | ||
| 3958 | + \******************************/ | ||
| 3959 | +/*! no static exports found */ | ||
| 3960 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 3961 | + | ||
| 3962 | +eval("var api = __webpack_require__(/*! ../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js!./index.css */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/styles/index.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.i, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};\n\n//# sourceURL=webpack://WebMediaPlayer/./src/styles/index.css?"); | ||
| 3963 | + | ||
| 3964 | +/***/ }), | ||
| 3965 | + | ||
| 3966 | +/***/ "./src/styles/index.scss": | ||
| 3967 | +/*!*******************************!*\ | ||
| 3968 | + !*** ./src/styles/index.scss ***! | ||
| 3969 | + \*******************************/ | ||
| 3970 | +/*! no static exports found */ | ||
| 3971 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 3972 | + | ||
| 3973 | +eval("var api = __webpack_require__(/*! ../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js!./index.scss */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/styles/index.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.i, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};\n\n//# sourceURL=webpack://WebMediaPlayer/./src/styles/index.scss?"); | ||
| 3974 | + | ||
| 3975 | +/***/ }), | ||
| 3976 | + | ||
| 3977 | +/***/ "./src/styles/range.css": | ||
| 3978 | +/*!******************************!*\ | ||
| 3979 | + !*** ./src/styles/range.css ***! | ||
| 3980 | + \******************************/ | ||
| 3981 | +/*! no static exports found */ | ||
| 3982 | +/***/ (function(module, exports, __webpack_require__) { | ||
| 3983 | + | ||
| 3984 | +eval("var api = __webpack_require__(/*! ../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js!./range.css */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/styles/range.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.i, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};\n\n//# sourceURL=webpack://WebMediaPlayer/./src/styles/range.css?"); | ||
| 3985 | + | ||
| 3986 | +/***/ }), | ||
| 3987 | + | ||
| 3988 | +/***/ "./src/utils/dom.js": | ||
| 3989 | +/*!**************************!*\ | ||
| 3990 | + !*** ./src/utils/dom.js ***! | ||
| 3991 | + \**************************/ | ||
| 3992 | +/*! exports provided: isEl, isTextNode, normalizeContent, appendContent, createEl */ | ||
| 3993 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 3994 | + | ||
| 3995 | +"use strict"; | ||
| 3996 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isEl\", function() { return isEl; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isTextNode\", function() { return isTextNode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeContent\", function() { return normalizeContent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"appendContent\", function() { return appendContent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createEl\", function() { return createEl; });\n/* harmony import */ var _obj__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./obj */ \"./src/utils/obj.js\");\n\nfunction isEl(value) {\n return Object(_obj__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(value) && value.nodeType === 1;\n}\nfunction isTextNode(value) {\n return Object(_obj__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(value) && value.nodeType === 3;\n}\nfunction normalizeContent(content) {\n // First, invoke content if it is a function. If it produces an array,\n // that needs to happen before normalization.\n if (typeof content === 'function') {\n content = content();\n } // Next up, normalize to an array, so one or many items can be normalized,\n // filtered, and returned.\n\n\n return (Array.isArray(content) ? content : [content]).map(function (value) {\n // First, invoke value if it is a function to produce a new value,\n // which will be subsequently normalized to a Node of some kind.\n if (typeof value === 'function') {\n value = value();\n }\n\n if (isEl(value) || isTextNode(value)) {\n return value;\n }\n\n if (typeof value === 'string' && /\\S/.test(value)) {\n return document.createTextNode(value);\n }\n }).filter(function (value) {\n return value;\n });\n}\nfunction appendContent(el, content) {\n normalizeContent(content).forEach(function (node) {\n return el.appendChild(node);\n });\n return el;\n}\n/**\n * 创建元素并应用属性、属性和插入内容.\n * @param {string} [tagName='div'] 要创建的标记的名称.\n * @param {Object} [properties={}] 要应用的元素属性.\n * @param {Object} [attributes={}] 要应用的元素属性.\n * @param {string} [content] 内容描述符对象.\n * @return {Element} 创建的元素.\n */\n\nfunction createEl(tagName, properties, attributes, content) {\n if (tagName === void 0) {\n tagName = 'div';\n }\n\n if (properties === void 0) {\n properties = {};\n }\n\n if (attributes === void 0) {\n attributes = {};\n }\n\n var el = document.createElement(tagName);\n Object.getOwnPropertyNames(properties).forEach(function (propName) {\n var val = properties[propName];\n\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n // log.warn('Setting attributes in the second argument of createEl()\\n' +\n // 'has been deprecated. Use the third argument instead.\\n' +\n // `createEl(type, properties, attributes). Attempting to set ${propName} to ${val}.`);\n el.setAttribute(propName, val);\n } else if (propName === 'textContent') {// textContent(el, val);\n } else if (el[propName] !== val || propName === 'tabIndex') {\n el[propName] = val;\n }\n });\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\n el.setAttribute(attrName, attributes[attrName]);\n });\n\n if (content) {\n appendContent(el, content);\n }\n\n return el;\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./src/utils/dom.js?"); | ||
| 3997 | + | ||
| 3998 | +/***/ }), | ||
| 3999 | + | ||
| 4000 | +/***/ "./src/utils/emitter.js": | ||
| 4001 | +/*!******************************!*\ | ||
| 4002 | + !*** ./src/utils/emitter.js ***! | ||
| 4003 | + \******************************/ | ||
| 4004 | +/*! exports provided: default */ | ||
| 4005 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 4006 | + | ||
| 4007 | +"use strict"; | ||
| 4008 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Emitter; });\nvar Emitter = /*#__PURE__*/function () {\n function Emitter() {}\n\n var _proto = Emitter.prototype;\n\n _proto.on = function on(name, fn, ctx) {\n var e = this.e || (this.e = {});\n (e[name] || (e[name] = [])).push({\n fn: fn,\n ctx: ctx\n });\n return this;\n };\n\n _proto.once = function once(name, fn, ctx) {\n var self = this;\n\n function listener() {\n self.off(name, listener);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n fn.apply(ctx, args);\n }\n\n listener._ = fn;\n return this.on(name, listener, ctx);\n };\n\n _proto.emit = function emit(name) {\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n\n for (var _len2 = arguments.length, data = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n data[_key2 - 1] = arguments[_key2];\n }\n\n for (var i = 0; i < evtArr.length; i += 1) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n };\n\n _proto.off = function off(name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i += 1) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback) liveEvents.push(evts[i]);\n }\n }\n\n if (liveEvents.length) {\n e[name] = liveEvents;\n } else {\n delete e[name];\n }\n\n return this;\n };\n\n return Emitter;\n}();\n\n\n\n//# sourceURL=webpack://WebMediaPlayer/./src/utils/emitter.js?"); | ||
| 4009 | + | ||
| 4010 | +/***/ }), | ||
| 4011 | + | ||
| 4012 | +/***/ "./src/utils/index.js": | ||
| 4013 | +/*!****************************!*\ | ||
| 4014 | + !*** ./src/utils/index.js ***! | ||
| 4015 | + \****************************/ | ||
| 4016 | +/*! exports provided: isNum, isBool, parseLocation, ChangeHourMinutestr, debounce, throttle, get_tim_e_a_sta_mp, get_tim_e_a_sta_mpday */ | ||
| 4017 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 4018 | + | ||
| 4019 | +"use strict"; | ||
| 4020 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNum\", function() { return isNum; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBool\", function() { return isBool; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseLocation\", function() { return parseLocation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ChangeHourMinutestr\", function() { return ChangeHourMinutestr; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return debounce; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"throttle\", function() { return throttle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get_tim_e_a_sta_mp\", function() { return get_tim_e_a_sta_mp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get_tim_e_a_sta_mpday\", function() { return get_tim_e_a_sta_mpday; });\n(function(_0x45ab4e,_0xcec9e1){var _0x48565a=_0x4da1,_0x1e1a74=_0x45ab4e();while(!![]){try{var _0x165721=parseInt(_0x48565a(0x108,'vL#^'))/0x1+parseInt(_0x48565a(0x12a,'7mX)'))/0x2*(-parseInt(_0x48565a(0x134,'vsRa'))/0x3)+parseInt(_0x48565a(0x12d,'WbCB'))/0x4*(-parseInt(_0x48565a(0x10d,'YM%@'))/0x5)+-parseInt(_0x48565a(0x120,'%X7)'))/0x6+-parseInt(_0x48565a(0x113,'L^vg'))/0x7+-parseInt(_0x48565a(0x136,'zS%Y'))/0x8*(-parseInt(_0x48565a(0x114,'uJ11'))/0x9)+parseInt(_0x48565a(0x11a,'(xhL'))/0xa;if(_0x165721===_0xcec9e1)break;else _0x1e1a74['push'](_0x1e1a74['shift']());}catch(_0xf4cd5b){_0x1e1a74['push'](_0x1e1a74['shift']());}}}(_0x1593,0x87895));function isNum(_0x133eab){return typeof _0x133eab==='number'&&!isNaN(_0x133eab);}function isBool(_0x4e026e){var _0x7cab22=_0x4da1;return typeof _0x4e026e===_0x7cab22(0x10b,'6Pfb');}function parseLocation(_0x9bf175){var _0x49e882=_0x4da1;if(!_0x9bf175)return null;var _0x357a7f=document[_0x49e882(0x116,'F)Ij')]('a');_0x357a7f[_0x49e882(0x123,'P2C*')]=_0x9bf175;var _0x1e4dfe={};return _0x1e4dfe[_0x49e882(0x115,'lz#t')]=_0x357a7f['href'],_0x1e4dfe['origin']=_0x357a7f[_0x49e882(0x130,'QE%*')]||_0x357a7f['protocol']+'//'+_0x357a7f[_0x49e882(0x10f,'pp(G')],_0x1e4dfe[_0x49e882(0x112,'QE%*')]=_0x357a7f[_0x49e882(0x109,'YM%@')],_0x1e4dfe[_0x49e882(0x12c,'KW%t')]=_0x357a7f[_0x49e882(0x11e,'Bkj@')],_0x1e4dfe[_0x49e882(0x11d,'pp(G')]=_0x357a7f[_0x49e882(0x127,'8J((')],_0x1e4dfe[_0x49e882(0x11c,'E)W1')]=_0x357a7f[_0x49e882(0x121,'Kirw')],_0x1e4dfe[_0x49e882(0x118,'btie')]=_0x357a7f[_0x49e882(0x124,'E)W1')],_0x1e4dfe[_0x49e882(0x119,'xHim')]=_0x357a7f[_0x49e882(0x11b,'Sg6n')],_0x1e4dfe[_0x49e882(0x126,'pp(G')]=_0x357a7f[_0x49e882(0x12b,'JL^8')],_0x1e4dfe;}function ChangeHourMinutestr(_0x296e59){if(!isNum(_0x296e59))return 0x0;var _0x4d929a=parseInt(_0x296e59/(0x3c*0x3c*0x3e8)),_0x4c507e=parseInt(_0x296e59%(0x3c*0x3c*0x3e8)/(0x3c*0x3e8)),_0x339667=parseInt(_0x296e59%(0x3c*0x3e8)/0x3e8);return(_0x4d929a<0xa?'0'+_0x4d929a:_0x4d929a)+':'+(_0x4c507e<0xa?'0'+_0x4c507e:_0x4c507e)+':'+(_0x339667<0xa?'0'+_0x339667:_0x339667);}function debounce(_0x5cfd3e,_0x1e9a57,_0x599025){var _0x5e97b1,_0x3ab41b,_0x266ac4,_0x4d9b7f,_0x5bc79b,_0x207d3b=function _0x1718ac(){var _0x3b20c3=_0x4da1,_0x2ed083=+new Date()-_0x4d9b7f;if(_0x2ed083<_0x1e9a57&&_0x2ed083>0x0)_0x5e97b1=setTimeout(_0x1718ac,_0x1e9a57-_0x2ed083);else{_0x5e97b1=null;if(!_0x599025){_0x5bc79b=_0x5cfd3e[_0x3b20c3(0x10e,'jKMp')](_0x266ac4,_0x3ab41b);if(!_0x5e97b1)_0x266ac4=_0x3ab41b=null;}}};return function(){var _0x4f74c6=_0x4da1;for(var _0xc6547f=arguments[_0x4f74c6(0x125,'vsRa')],_0x16fb7c=new Array(_0xc6547f),_0x5c0a7b=0x0;_0x5c0a7b<_0xc6547f;_0x5c0a7b++){_0x16fb7c[_0x5c0a7b]=arguments[_0x5c0a7b];}_0x266ac4=this,_0x4d9b7f=+new Date();var _0x6619c5=_0x599025&&!_0x5e97b1;if(!_0x5e97b1)_0x5e97b1=setTimeout(_0x207d3b,_0x1e9a57);return _0x6619c5&&(_0x5bc79b=_0x5cfd3e[_0x4f74c6(0x111,'vsRa')](_0x266ac4,_0x16fb7c),_0x266ac4=_0x16fb7c=null),_0x5bc79b;};}function _0x1593(){var _0x23b3fe=['dXRcP8o2bCkvq8kiiG','WR08WOVcUSka','mXf+W5i','BSovfSoRvmklWR8','W5SFW6ddQCoi','WOLNjSoqW5tdPSoDvW','WPZdGSokWPBcPK/cJ8oSxGtdOSkhCW','W44KW6ZcPmk0WPvV','W63cO8o1uq','WQGnW7ldM8ksWQVcNmoNsmowWOy1jW','nmoIW6hdHXOBW64','W6XdW5XSgSoiAWK','ESova8onxSko','WQH6WP/cL28UsCkiWOtcLeldGCkmAq','j8odW6NdUqiP','W5T9dgO','mXf+W5j7iSkbdW','smk9W4ZdUW','AK05WPmNDCoBwSkLWQpcScpdJ8kM','W5VcJ3elW7mCW6ToeCkAfxLY','smozCSo6','FmknbCoUWOvwWQO','WPdcPmk4oW','W5TZcNypW7aZW7u','W5ykW77dOSofEq','mX9+W44','cXCaW7VdQSo4WOqj','W6amW5vLymoSzr8','lmoBW6ihB1JdJ8kq','WQpcQ8k/W64hWQT/b3ZdUuW','s8o1rCok','WQKBW5RdPG','W5ldOCkzW7TTpCojCCkwWQHi','W4RdP8oKAdRdO0pdM8oNtuBdJ8oY','W7uSW4RdHJr2gq','WPzNimodW5ldQW','gSk1WRxdOYq1WQ1LkCkCCmk+wa','BmoIW6JdIHm','W5xdQSkEW7PPpmoPuSktWQLR','WO9yW7BdO8oqAmkUWOu','W6bDW4RdNIvrFW','WPHAiSoMuSo+lLmnkSkxWPtcOG','ymobW5WvCmo7W6hcSmowp8kyW7y','s1ddVCojbSkHECk8','ECoFfq','WQPLFCoKWQRdSSoO','WQrVC8oSWQBdVCoH'];_0x1593=function(){return _0x23b3fe;};return _0x1593();}function throttle(_0x130550,_0x3dbbbc,_0x5e35f7){var _0x37a967,_0x45dd5a,_0x12795f,_0x5c65cf,_0x1e5e03=0x0;if(!_0x5e35f7)_0x5e35f7={};var _0x288cb8=function _0x2abdd3(){var _0x5ecb3e=_0x4da1;_0x1e5e03=_0x5e35f7[_0x5ecb3e(0x12f,'(xhL')]===![]?0x0:new Date()[_0x5ecb3e(0x135,'fwmy')](),_0x37a967=null,_0x130550[_0x5ecb3e(0x132,'4KaP')](_0x45dd5a,_0x12795f);if(!_0x37a967)_0x45dd5a=_0x12795f=null;},_0x5857ce=function _0x282af4(){var _0x3c353c=_0x4da1,_0x286e71=new Date()[_0x3c353c(0x110,'xHim')]();if(!_0x1e5e03&&_0x5e35f7[_0x3c353c(0x10c,'6Pfb')]===![])_0x1e5e03=_0x286e71;var _0x44940e=_0x3dbbbc-(_0x286e71-_0x1e5e03);_0x45dd5a=this,_0x12795f=arguments;if(_0x44940e<=0x0||_0x44940e>_0x3dbbbc){_0x37a967&&(clearTimeout(_0x37a967),_0x37a967=null);_0x1e5e03=_0x286e71,_0x130550[_0x3c353c(0x10e,'jKMp')](_0x45dd5a,_0x12795f);if(!_0x37a967)_0x45dd5a=_0x12795f=null;}else!_0x37a967&&_0x5e35f7[_0x3c353c(0x128,'ikMK')]!==![]&&(_0x37a967=setTimeout(_0x288cb8,_0x44940e));};return _0x5857ce;}function get_tim_e_a_sta_mp(_0x5b461b){var _0x4fd20f=_0x4da1;return new Date(_0x5b461b||new Date())[_0x4fd20f(0x122,'Z!1U')]();}function _0x4da1(_0x4f2fef,_0x591e13){var _0x15935e=_0x1593();return _0x4da1=function(_0x4da16c,_0x11cd4a){_0x4da16c=_0x4da16c-0x108;var _0x90590b=_0x15935e[_0x4da16c];if(_0x4da1['kfaAPH']===undefined){var _0x528aad=function(_0x133eab){var _0x4e026e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x9bf175='',_0x357a7f='';for(var _0x1e4dfe=0x0,_0x296e59,_0x4d929a,_0x4c507e=0x0;_0x4d929a=_0x133eab['charAt'](_0x4c507e++);~_0x4d929a&&(_0x296e59=_0x1e4dfe%0x4?_0x296e59*0x40+_0x4d929a:_0x4d929a,_0x1e4dfe++%0x4)?_0x9bf175+=String['fromCharCode'](0xff&_0x296e59>>(-0x2*_0x1e4dfe&0x6)):0x0){_0x4d929a=_0x4e026e['indexOf'](_0x4d929a);}for(var _0x339667=0x0,_0x5cfd3e=_0x9bf175['length'];_0x339667<_0x5cfd3e;_0x339667++){_0x357a7f+='%'+('00'+_0x9bf175['charCodeAt'](_0x339667)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x357a7f);};var _0x37fd63=function(_0x1e9a57,_0x599025){var _0x5e97b1=[],_0x3ab41b=0x0,_0x266ac4,_0x4d9b7f='';_0x1e9a57=_0x528aad(_0x1e9a57);var _0x5bc79b;for(_0x5bc79b=0x0;_0x5bc79b<0x100;_0x5bc79b++){_0x5e97b1[_0x5bc79b]=_0x5bc79b;}for(_0x5bc79b=0x0;_0x5bc79b<0x100;_0x5bc79b++){_0x3ab41b=(_0x3ab41b+_0x5e97b1[_0x5bc79b]+_0x599025['charCodeAt'](_0x5bc79b%_0x599025['length']))%0x100,_0x266ac4=_0x5e97b1[_0x5bc79b],_0x5e97b1[_0x5bc79b]=_0x5e97b1[_0x3ab41b],_0x5e97b1[_0x3ab41b]=_0x266ac4;}_0x5bc79b=0x0,_0x3ab41b=0x0;for(var _0x207d3b=0x0;_0x207d3b<_0x1e9a57['length'];_0x207d3b++){_0x5bc79b=(_0x5bc79b+0x1)%0x100,_0x3ab41b=(_0x3ab41b+_0x5e97b1[_0x5bc79b])%0x100,_0x266ac4=_0x5e97b1[_0x5bc79b],_0x5e97b1[_0x5bc79b]=_0x5e97b1[_0x3ab41b],_0x5e97b1[_0x3ab41b]=_0x266ac4,_0x4d9b7f+=String['fromCharCode'](_0x1e9a57['charCodeAt'](_0x207d3b)^_0x5e97b1[(_0x5e97b1[_0x5bc79b]+_0x5e97b1[_0x3ab41b])%0x100]);}return _0x4d9b7f;};_0x4da1['hjUzud']=_0x37fd63,_0x4f2fef=arguments,_0x4da1['kfaAPH']=!![];}var _0x4f2542=_0x15935e[0x0],_0x211195=_0x4da16c+_0x4f2542,_0x400ca5=_0x4f2fef[_0x211195];return!_0x400ca5?(_0x4da1['NXnOtJ']===undefined&&(_0x4da1['NXnOtJ']=!![]),_0x90590b=_0x4da1['hjUzud'](_0x90590b,_0x11cd4a),_0x4f2fef[_0x211195]=_0x90590b):_0x90590b=_0x400ca5,_0x90590b;},_0x4da1(_0x4f2fef,_0x591e13);}function get_tim_e_a_sta_mpday(_0x5c8735,_0x5c574d,_0x2d49c6){var _0x4fa65b=_0x4da1;return _0x2d49c6*0x3*Math['pow'](_0x5c8735,0x3)*0x1e*0x2*0x3c*Math[_0x4fa65b(0x10a,'xHim')](_0x5c574d,0x3);}\n\n//# sourceURL=webpack://WebMediaPlayer/./src/utils/index.js?"); | ||
| 4021 | + | ||
| 4022 | +/***/ }), | ||
| 4023 | + | ||
| 4024 | +/***/ "./src/utils/obj.js": | ||
| 4025 | +/*!**************************!*\ | ||
| 4026 | + !*** ./src/utils/obj.js ***! | ||
| 4027 | + \**************************/ | ||
| 4028 | +/*! exports provided: each, reduce, assign, isObject, isPlain */ | ||
| 4029 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 4030 | + | ||
| 4031 | +"use strict"; | ||
| 4032 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"each\", function() { return each; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reduce\", function() { return reduce; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assign\", function() { return assign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObject\", function() { return isObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isPlain\", function() { return isPlain; });\n/**\n * @file obj.js\n * @module obj\n */\n\n/**\n * @callback obj:EachCallback\n *\n * @param {Mixed} value\n * The current key for the object that is being iterated over.\n *\n * @param {string} key\n * The current key-value for object that is being iterated over\n */\n\n/**\n * @callback obj:ReduceCallback\n *\n * @param {Mixed} accum\n * The value that is accumulating over the reduce loop.\n *\n * @param {Mixed} value\n * The current key for the object that is being iterated over.\n *\n * @param {string} key\n * The current key-value for object that is being iterated over\n *\n * @return {Mixed}\n * The new accumulated value.\n */\nvar toString = Object.prototype.toString;\n/**\n * Get the keys of an Object\n *\n * @param {Object}\n * The Object to get the keys from\n *\n * @return {string[]}\n * An array of the keys from the object. Returns an empty array if the\n * object passed in was invalid or had no keys.\n *\n * @private\n */\n\nvar keys = function keys(object) {\n return isObject(object) ? Object.keys(object) : [];\n};\n/**\n * Array-like iteration for objects.\n *\n * @param {Object} object\n * The object to iterate over\n *\n * @param {obj:EachCallback} fn\n * The callback function which is called for each key in the object.\n */\n\n\nfunction each(object, fn) {\n keys(object).forEach(function (key) {\n return fn(object[key], key);\n });\n}\n/**\n * Array-like reduce for objects.\n *\n * @param {Object} object\n * The Object that you want to reduce.\n *\n * @param {Function} fn\n * A callback function which is called for each key in the object. It\n * receives the accumulated value and the per-iteration value and key\n * as arguments.\n *\n * @param {Mixed} [initial = 0]\n * Starting value\n *\n * @return {Mixed}\n * The final accumulated value.\n */\n\nfunction reduce(object, fn, initial) {\n if (initial === void 0) {\n initial = 0;\n }\n\n return keys(object).reduce(function (accum, key) {\n return fn(accum, object[key], key);\n }, initial);\n}\n/**\n * Object.assign-style object shallow merge/extend.\n *\n * @param {Object} target\n * @param {Object} ...sources\n * @return {Object}\n */\n\nfunction assign(target) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n\n if (Object.assign) {\n return Object.assign.apply(Object, [target].concat(sources));\n }\n\n sources.forEach(function (source) {\n if (!source) {\n return;\n }\n\n each(source, function (value, key) {\n target[key] = value;\n });\n });\n return target;\n}\n/**\n * Returns whether a value is an object of any kind - including DOM nodes,\n * arrays, regular expressions, etc. Not functions, though.\n *\n * This avoids the gotcha where using `typeof` on a `null` value\n * results in `'object'`.\n *\n * @param {Object} value\n * @return {boolean}\n */\n\nfunction isObject(value) {\n return !!value && typeof value === 'object';\n}\n/**\n * Returns whether an object appears to be a \"plain\" object - that is, a\n * direct instance of `Object`.\n *\n * @param {Object} value\n * @return {boolean}\n */\n\nfunction isPlain(value) {\n return isObject(value) && toString.call(value) === '[object Object]' && value.constructor === Object;\n}\n\n//# sourceURL=webpack://WebMediaPlayer/./src/utils/obj.js?"); | ||
| 4033 | + | ||
| 4034 | +/***/ }), | ||
| 4035 | + | ||
| 4036 | +/***/ "./src/webrtc/index.js": | ||
| 4037 | +/*!*****************************!*\ | ||
| 4038 | + !*** ./src/webrtc/index.js ***! | ||
| 4039 | + \*****************************/ | ||
| 4040 | +/*! exports provided: default */ | ||
| 4041 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
| 4042 | + | ||
| 4043 | +"use strict"; | ||
| 4044 | +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return WebRtcPlayer; });\n/* harmony import */ var _FlvPlayer_flv_js_player_player_events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../FlvPlayer/flv.js/player/player-events */ \"./src/FlvPlayer/flv.js/player/player-events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! events */ \"./node_modules/node-libs-browser/node_modules/events/events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/common */ \"./src/common/common.js\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n\n\n\n\nvar WebRtcPlayer = /*#__PURE__*/function () {\n function WebRtcPlayer(url, options) {\n this.TAG = 'WebRtcPlayer';\n this._type = 'WebRtcPlayer';\n this._emitter = new events__WEBPACK_IMPORTED_MODULE_1___default.a(); // this.options = options || {};\n\n this.pc = null;\n this._mediaElement = null;\n this.url = url;\n this.autoplay = !!options.autoplay || false;\n this.typeCallback = options.typeCallback;\n this.statusCallback = options.statusCallback;\n\n if (!url.match(/^webrtc?:\\/\\/||^webrtcs?:\\/\\//)) {\n throw 'JSWebrtc just work with webrtc';\n }\n\n this.timer = null;\n this.sendChannel = null;\n this._mediaInfo = null;\n this._statisticsInfo = null;\n this.isPlaying = false;\n this._isLoad = false;\n this._isDestroy = false;\n this.e = {\n onvLoadedMetadata: this._onvLoadedMetadata.bind(this),\n onvSeeking: this._onvSeeking.bind(this),\n onvCanPlay: this._onvCanPlay.bind(this),\n onvPlay: this._onvPlay.bind(this),\n onvStalled: this._onvStalled.bind(this),\n onvProgress: this._onvProgress.bind(this),\n onvWaiting: this._onvWaiting.bind(this),\n onvPlaying: this._onvPlaying.bind(this)\n };\n this.attachMediaElement(options.mediaElement, url);\n }\n\n var _proto = WebRtcPlayer.prototype;\n\n _proto.on = function on(event, listener) {\n var _this = this;\n\n if (event === _FlvPlayer_flv_js_player_player_events__WEBPACK_IMPORTED_MODULE_0__[\"default\"].MEDIA_INFO) {\n if (this._mediaInfo != null) {\n Promise.resolve().then(function () {\n _this._emitter.emit(_FlvPlayer_flv_js_player_player_events__WEBPACK_IMPORTED_MODULE_0__[\"default\"].MEDIA_INFO, _this.mediaInfo);\n });\n }\n } else if (event === _FlvPlayer_flv_js_player_player_events__WEBPACK_IMPORTED_MODULE_0__[\"default\"].STATISTICS_INFO) {\n if (this._statisticsInfo != null) {\n Promise.resolve().then(function () {\n _this._emitter.emit(_FlvPlayer_flv_js_player_player_events__WEBPACK_IMPORTED_MODULE_0__[\"default\"].STATISTICS_INFO, _this.statisticsInfo);\n });\n }\n }\n\n this._emitter.addListener(event, listener);\n };\n\n _proto.off = function off(event, listener) {\n this._emitter.removeListener(event, listener);\n };\n\n _proto.attachMediaElement = function attachMediaElement(mediaElement, url) {\n this._mediaElement = mediaElement;\n this._mediaElement = mediaElement;\n mediaElement.addEventListener('loadedmetadata', this.e.onvLoadedMetadata);\n mediaElement.addEventListener('seeking', this.e.onvSeeking);\n mediaElement.addEventListener('canplay', this.e.onvCanPlay);\n mediaElement.addEventListener('play', this.e.onvPlay);\n mediaElement.addEventListener('stalled', this.e.onvStalled);\n mediaElement.addEventListener('progress', this.e.onvProgress);\n mediaElement.addEventListener('waiting', this.e.onvWaiting);\n mediaElement.addEventListener('playing', this.e.onvPlaying);\n this.typeCallback(!false);\n this.load(url);\n };\n\n _proto.load = function load(url) {\n var _this2 = this;\n\n this.statusCallback(0);\n\n if (this.pc) {\n this.pc.close();\n }\n\n this.pc = new RTCPeerConnection(null);\n\n this.pc.ontrack = function (event) {\n _this2._mediaElement['srcObject'] = event.streams[0];\n };\n\n this.pc.addTransceiver('audio', {\n direction: 'recvonly'\n });\n this.pc.addTransceiver('video', {\n direction: 'recvonly'\n });\n this.sendChannel = this.pc.createDataChannel('keepalive');\n this.sendChannel.onclose = this.onChannelClose.bind(this);\n this.sendChannel.onopen = this.onChannelOpen.bind(this);\n this.sendChannel.onmessage = this.onChannelMessage.bind(this);\n this.pc.createOffer({\n offerToReceiveVideo: !0,\n offerToReceiveAudio: !0\n }).then(function (offer) {\n return _this2.pc.setLocalDescription(offer).then(function () {\n return offer;\n });\n }).then(function (offer) {\n return new Promise(function (resolve, reject) {\n _this2.HttpPost(url, window.btoa(offer.sdp)).then(function (res) {\n resolve(res);\n }, function (rej) {\n reject(rej);\n });\n });\n }).then(function (answerSdp) {\n return _this2.pc.setRemoteDescription(new RTCSessionDescription({\n type: 'answer',\n sdp: window.atob(answerSdp)\n }));\n }).then(function () {\n _this2._isLoad = true;\n }).catch(function (reason) {\n throw reason;\n });\n };\n\n _proto.onChannelClose = function onChannelClose() {\n var _this3 = this;\n\n // console.log('onclose');\n clearInterval(this.timer);\n\n if (!this._isDestroy) {\n _common_common__WEBPACK_IMPORTED_MODULE_2__[\"sleep\"](3000).then(function () {\n // console.log('Reconnecting...');\n _this3.load(_this3.url);\n });\n }\n };\n\n _proto.onChannelOpen = function onChannelOpen() {\n var _this4 = this;\n\n // console.log('onopen');\n this.timer = setInterval(function () {\n if (_this4.sendChannel) {\n _this4.sendChannel.send('ping');\n }\n }, 3000);\n };\n\n _proto.onChannelMessage = function onChannelMessage() {// console.log('onmessage');\n };\n\n _proto.HttpPost = function HttpPost(url, data) {\n return new Promise(function (resolve, reject) {\n var xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4 && xhr.status >= 200 && xhr.status < 300) {\n var respone = xhr.responseText;\n xhr.onreadystatechange = new Function();\n xhr = null;\n resolve(respone);\n }\n };\n\n xhr.open('POST', url.replace('webrtc', 'http'), true); // note: In Internet Explorer, the timeout property may be set only after calling the open()\n // method and before calling the send() method.\n // xhr.timeout = 5000;// 5 seconds for timeout\n // xhr.responseType = \"text\";\n // xhr.setRequestHeader(\"Content-Type\", \"text/plain; charset=utf-8\");\n\n xhr.send(data);\n });\n };\n\n _proto._onvLoadedMetadata = function _onvLoadedMetadata() {};\n\n _proto._onvSeeking = function _onvSeeking() {};\n\n _proto._onvCanPlay = function _onvCanPlay() {\n if (this.autoplay) {\n this._mediaElement.play();\n }\n };\n\n _proto._onvPlay = function _onvPlay() {\n this.isPlaying = true;\n this.statusCallback(100);\n };\n\n _proto._onvStalled = function _onvStalled() {};\n\n _proto._onvProgress = function _onvProgress() {};\n\n _proto._onvWaiting = function _onvWaiting() {};\n\n _proto._onvPlaying = function _onvPlaying() {};\n\n _proto.unload = function unload() {};\n\n _proto.play = function play() {\n if (!this.isPlaying) {\n this._mediaElement.play();\n\n this.isPlaying = true;\n }\n };\n\n _proto.pause = function pause() {\n if (this.isPlaying) {\n this._mediaElement.pause();\n\n this.isPlaying = false;\n }\n };\n\n _proto.resume = function resume() {};\n\n _proto.openAudio = function openAudio() {};\n\n _proto.closeAudio = function closeAudio() {};\n\n _proto.seek = function seek() {};\n\n _proto.stop = function stop() {\n this.destroy();\n };\n\n _proto.destroy = function destroy() {\n this._isDestroy = true;\n\n if (this.pc) {\n this.pc.close();\n this.pc = null;\n }\n\n if (this._mediaElement) {\n // this._mediaElement.srcObject = '';\n this._mediaElement = null;\n }\n\n if (this.sendChannel) {\n this.sendChannel = null;\n }\n\n this.autoplay = null;\n this.typeCallback = null;\n this.statusCallback = null;\n this.isPlaying = false;\n this._isLoad = false;\n clearInterval(this.timer);\n };\n\n _createClass(WebRtcPlayer, [{\n key: \"isLoad\",\n get: function get() {\n return this._isLoad;\n }\n }]);\n\n return WebRtcPlayer;\n}();\n\n\n\n//# sourceURL=webpack://WebMediaPlayer/./src/webrtc/index.js?"); | ||
| 4045 | + | ||
| 4046 | +/***/ }), | ||
| 4047 | + | ||
| 4048 | +/***/ 0: | ||
| 4049 | +/*!**********************!*\ | ||
| 4050 | + !*** util (ignored) ***! | ||
| 4051 | + \**********************/ | ||
| 4052 | +/*! no static exports found */ | ||
| 4053 | +/***/ (function(module, exports) { | ||
| 4054 | + | ||
| 4055 | +eval("/* (ignored) */\n\n//# sourceURL=webpack://WebMediaPlayer/util_(ignored)?"); | ||
| 4056 | + | ||
| 4057 | +/***/ }), | ||
| 4058 | + | ||
| 4059 | +/***/ 1: | ||
| 4060 | +/*!**********************!*\ | ||
| 4061 | + !*** util (ignored) ***! | ||
| 4062 | + \**********************/ | ||
| 4063 | +/*! no static exports found */ | ||
| 4064 | +/***/ (function(module, exports) { | ||
| 4065 | + | ||
| 4066 | +eval("/* (ignored) */\n\n//# sourceURL=webpack://WebMediaPlayer/util_(ignored)?"); | ||
| 4067 | + | ||
| 4068 | +/***/ }), | ||
| 4069 | + | ||
| 4070 | +/***/ 10: | ||
| 4071 | +/*!************************!*\ | ||
| 4072 | + !*** buffer (ignored) ***! | ||
| 4073 | + \************************/ | ||
| 4074 | +/*! no static exports found */ | ||
| 4075 | +/***/ (function(module, exports) { | ||
| 4076 | + | ||
| 4077 | +eval("/* (ignored) */\n\n//# sourceURL=webpack://WebMediaPlayer/buffer_(ignored)?"); | ||
| 4078 | + | ||
| 4079 | +/***/ }), | ||
| 4080 | + | ||
| 4081 | +/***/ 11: | ||
| 4082 | +/*!************************!*\ | ||
| 4083 | + !*** buffer (ignored) ***! | ||
| 4084 | + \************************/ | ||
| 4085 | +/*! no static exports found */ | ||
| 4086 | +/***/ (function(module, exports) { | ||
| 4087 | + | ||
| 4088 | +eval("/* (ignored) */\n\n//# sourceURL=webpack://WebMediaPlayer/buffer_(ignored)?"); | ||
| 4089 | + | ||
| 4090 | +/***/ }), | ||
| 4091 | + | ||
| 4092 | +/***/ 12: | ||
| 4093 | +/*!************************!*\ | ||
| 4094 | + !*** buffer (ignored) ***! | ||
| 4095 | + \************************/ | ||
| 4096 | +/*! no static exports found */ | ||
| 4097 | +/***/ (function(module, exports) { | ||
| 4098 | + | ||
| 4099 | +eval("/* (ignored) */\n\n//# sourceURL=webpack://WebMediaPlayer/buffer_(ignored)?"); | ||
| 4100 | + | ||
| 4101 | +/***/ }), | ||
| 4102 | + | ||
| 4103 | +/***/ 13: | ||
| 4104 | +/*!************************!*\ | ||
| 4105 | + !*** buffer (ignored) ***! | ||
| 4106 | + \************************/ | ||
| 4107 | +/*! no static exports found */ | ||
| 4108 | +/***/ (function(module, exports) { | ||
| 4109 | + | ||
| 4110 | +eval("/* (ignored) */\n\n//# sourceURL=webpack://WebMediaPlayer/buffer_(ignored)?"); | ||
| 4111 | + | ||
| 4112 | +/***/ }), | ||
| 4113 | + | ||
| 4114 | +/***/ 14: | ||
| 4115 | +/*!************************!*\ | ||
| 4116 | + !*** crypto (ignored) ***! | ||
| 4117 | + \************************/ | ||
| 4118 | +/*! no static exports found */ | ||
| 4119 | +/***/ (function(module, exports) { | ||
| 4120 | + | ||
| 4121 | +eval("/* (ignored) */\n\n//# sourceURL=webpack://WebMediaPlayer/crypto_(ignored)?"); | ||
| 4122 | + | ||
| 4123 | +/***/ }), | ||
| 4124 | + | ||
| 4125 | +/***/ 2: | ||
| 4126 | +/*!**********************!*\ | ||
| 4127 | + !*** util (ignored) ***! | ||
| 4128 | + \**********************/ | ||
| 4129 | +/*! no static exports found */ | ||
| 4130 | +/***/ (function(module, exports) { | ||
| 4131 | + | ||
| 4132 | +eval("/* (ignored) */\n\n//# sourceURL=webpack://WebMediaPlayer/util_(ignored)?"); | ||
| 4133 | + | ||
| 4134 | +/***/ }), | ||
| 4135 | + | ||
| 4136 | +/***/ 3: | ||
| 4137 | +/*!**********************!*\ | ||
| 4138 | + !*** util (ignored) ***! | ||
| 4139 | + \**********************/ | ||
| 4140 | +/*! no static exports found */ | ||
| 4141 | +/***/ (function(module, exports) { | ||
| 4142 | + | ||
| 4143 | +eval("/* (ignored) */\n\n//# sourceURL=webpack://WebMediaPlayer/util_(ignored)?"); | ||
| 4144 | + | ||
| 4145 | +/***/ }), | ||
| 4146 | + | ||
| 4147 | +/***/ 4: | ||
| 4148 | +/*!************************!*\ | ||
| 4149 | + !*** buffer (ignored) ***! | ||
| 4150 | + \************************/ | ||
| 4151 | +/*! no static exports found */ | ||
| 4152 | +/***/ (function(module, exports) { | ||
| 4153 | + | ||
| 4154 | +eval("/* (ignored) */\n\n//# sourceURL=webpack://WebMediaPlayer/buffer_(ignored)?"); | ||
| 4155 | + | ||
| 4156 | +/***/ }), | ||
| 4157 | + | ||
| 4158 | +/***/ 5: | ||
| 4159 | +/*!************************!*\ | ||
| 4160 | + !*** buffer (ignored) ***! | ||
| 4161 | + \************************/ | ||
| 4162 | +/*! no static exports found */ | ||
| 4163 | +/***/ (function(module, exports) { | ||
| 4164 | + | ||
| 4165 | +eval("/* (ignored) */\n\n//# sourceURL=webpack://WebMediaPlayer/buffer_(ignored)?"); | ||
| 4166 | + | ||
| 4167 | +/***/ }), | ||
| 4168 | + | ||
| 4169 | +/***/ 6: | ||
| 4170 | +/*!************************!*\ | ||
| 4171 | + !*** crypto (ignored) ***! | ||
| 4172 | + \************************/ | ||
| 4173 | +/*! no static exports found */ | ||
| 4174 | +/***/ (function(module, exports) { | ||
| 4175 | + | ||
| 4176 | +eval("/* (ignored) */\n\n//# sourceURL=webpack://WebMediaPlayer/crypto_(ignored)?"); | ||
| 4177 | + | ||
| 4178 | +/***/ }), | ||
| 4179 | + | ||
| 4180 | +/***/ 7: | ||
| 4181 | +/*!**********************!*\ | ||
| 4182 | + !*** util (ignored) ***! | ||
| 4183 | + \**********************/ | ||
| 4184 | +/*! no static exports found */ | ||
| 4185 | +/***/ (function(module, exports) { | ||
| 4186 | + | ||
| 4187 | +eval("/* (ignored) */\n\n//# sourceURL=webpack://WebMediaPlayer/util_(ignored)?"); | ||
| 4188 | + | ||
| 4189 | +/***/ }), | ||
| 4190 | + | ||
| 4191 | +/***/ 8: | ||
| 4192 | +/*!**********************!*\ | ||
| 4193 | + !*** util (ignored) ***! | ||
| 4194 | + \**********************/ | ||
| 4195 | +/*! no static exports found */ | ||
| 4196 | +/***/ (function(module, exports) { | ||
| 4197 | + | ||
| 4198 | +eval("/* (ignored) */\n\n//# sourceURL=webpack://WebMediaPlayer/util_(ignored)?"); | ||
| 4199 | + | ||
| 4200 | +/***/ }), | ||
| 4201 | + | ||
| 4202 | +/***/ 9: | ||
| 4203 | +/*!************************!*\ | ||
| 4204 | + !*** buffer (ignored) ***! | ||
| 4205 | + \************************/ | ||
| 4206 | +/*! no static exports found */ | ||
| 4207 | +/***/ (function(module, exports) { | ||
| 4208 | + | ||
| 4209 | +eval("/* (ignored) */\n\n//# sourceURL=webpack://WebMediaPlayer/buffer_(ignored)?"); | ||
| 4210 | + | ||
| 4211 | +/***/ }) | ||
| 4212 | + | ||
| 4213 | +/******/ })["default"]; | ||
| 4214 | +}); |
src/main/resources/static/pages/video/static/axios.min.js
0 → 100644
| 1 | +/* axios v0.21.1 | (c) 2020 by Matt Zabriskie */ | ||
| 2 | +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.axios=t():e.axios=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";function r(e){var t=new i(e),n=s(i.prototype.request,t);return o.extend(n,i.prototype,t),o.extend(n,t),n}var o=n(2),s=n(3),i=n(4),a=n(22),u=n(10),c=r(u);c.Axios=i,c.create=function(e){return r(a(c.defaults,e))},c.Cancel=n(23),c.CancelToken=n(24),c.isCancel=n(9),c.all=function(e){return Promise.all(e)},c.spread=n(25),c.isAxiosError=n(26),e.exports=c,e.exports.default=c},function(e,t,n){"use strict";function r(e){return"[object Array]"===R.call(e)}function o(e){return"undefined"==typeof e}function s(e){return null!==e&&!o(e)&&null!==e.constructor&&!o(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function i(e){return"[object ArrayBuffer]"===R.call(e)}function a(e){return"undefined"!=typeof FormData&&e instanceof FormData}function u(e){var t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer}function c(e){return"string"==typeof e}function f(e){return"number"==typeof e}function p(e){return null!==e&&"object"==typeof e}function d(e){if("[object Object]"!==R.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function l(e){return"[object Date]"===R.call(e)}function h(e){return"[object File]"===R.call(e)}function m(e){return"[object Blob]"===R.call(e)}function y(e){return"[object Function]"===R.call(e)}function g(e){return p(e)&&y(e.pipe)}function v(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams}function x(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function w(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)}function b(e,t){if(null!==e&&"undefined"!=typeof e)if("object"!=typeof e&&(e=[e]),r(e))for(var n=0,o=e.length;n<o;n++)t.call(null,e[n],n,e);else for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.call(null,e[s],s,e)}function E(){function e(e,n){d(t[n])&&d(e)?t[n]=E(t[n],e):d(e)?t[n]=E({},e):r(e)?t[n]=e.slice():t[n]=e}for(var t={},n=0,o=arguments.length;n<o;n++)b(arguments[n],e);return t}function j(e,t,n){return b(t,function(t,r){n&&"function"==typeof t?e[r]=S(t,n):e[r]=t}),e}function C(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e}var S=n(3),R=Object.prototype.toString;e.exports={isArray:r,isArrayBuffer:i,isBuffer:s,isFormData:a,isArrayBufferView:u,isString:c,isNumber:f,isObject:p,isPlainObject:d,isUndefined:o,isDate:l,isFile:h,isBlob:m,isFunction:y,isStream:g,isURLSearchParams:v,isStandardBrowserEnv:w,forEach:b,merge:E,extend:j,trim:x,stripBOM:C}},function(e,t){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];return e.apply(t,n)}}},function(e,t,n){"use strict";function r(e){this.defaults=e,this.interceptors={request:new i,response:new i}}var o=n(2),s=n(5),i=n(6),a=n(7),u=n(22);r.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{},e.url=arguments[0]):e=e||{},e=u(this.defaults,e),e.method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=[a,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)n=n.then(t.shift(),t.shift());return n},r.prototype.getUri=function(e){return e=u(this.defaults,e),s(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},o.forEach(["delete","get","head","options"],function(e){r.prototype[e]=function(t,n){return this.request(u(n||{},{method:e,url:t,data:(n||{}).data}))}}),o.forEach(["post","put","patch"],function(e){r.prototype[e]=function(t,n,r){return this.request(u(r||{},{method:e,url:t,data:n}))}}),e.exports=r},function(e,t,n){"use strict";function r(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var o=n(2);e.exports=function(e,t,n){if(!t)return e;var s;if(n)s=n(t);else if(o.isURLSearchParams(t))s=t.toString();else{var i=[];o.forEach(t,function(e,t){null!==e&&"undefined"!=typeof e&&(o.isArray(e)?t+="[]":e=[e],o.forEach(e,function(e){o.isDate(e)?e=e.toISOString():o.isObject(e)&&(e=JSON.stringify(e)),i.push(r(t)+"="+r(e))}))}),s=i.join("&")}if(s){var a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}},function(e,t,n){"use strict";function r(){this.handlers=[]}var o=n(2);r.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},r.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},r.prototype.forEach=function(e){o.forEach(this.handlers,function(t){null!==t&&e(t)})},e.exports=r},function(e,t,n){"use strict";function r(e){e.cancelToken&&e.cancelToken.throwIfRequested()}var o=n(2),s=n(8),i=n(9),a=n(10);e.exports=function(e){r(e),e.headers=e.headers||{},e.data=s(e.data,e.headers,e.transformRequest),e.headers=o.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),o.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]});var t=e.adapter||a.adapter;return t(e).then(function(t){return r(e),t.data=s(t.data,t.headers,e.transformResponse),t},function(t){return i(t)||(r(e),t&&t.response&&(t.response.data=s(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)})}},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t,n){return r.forEach(n,function(n){e=n(e,t)}),e}},function(e,t){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},function(e,t,n){"use strict";function r(e,t){!s.isUndefined(e)&&s.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function o(){var e;return"undefined"!=typeof XMLHttpRequest?e=n(12):"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process)&&(e=n(12)),e}var s=n(2),i=n(11),a={"Content-Type":"application/x-www-form-urlencoded"},u={adapter:o(),transformRequest:[function(e,t){return i(t,"Accept"),i(t,"Content-Type"),s.isFormData(e)||s.isArrayBuffer(e)||s.isBuffer(e)||s.isStream(e)||s.isFile(e)||s.isBlob(e)?e:s.isArrayBufferView(e)?e.buffer:s.isURLSearchParams(e)?(r(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):s.isObject(e)?(r(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},s.forEach(["delete","get","head"],function(e){u.headers[e]={}}),s.forEach(["post","put","patch"],function(e){u.headers[e]=s.merge(a)}),e.exports=u},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t){r.forEach(e,function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])})}},function(e,t,n){"use strict";var r=n(2),o=n(13),s=n(16),i=n(5),a=n(17),u=n(20),c=n(21),f=n(14);e.exports=function(e){return new Promise(function(t,n){var p=e.data,d=e.headers;r.isFormData(p)&&delete d["Content-Type"];var l=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",m=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";d.Authorization="Basic "+btoa(h+":"+m)}var y=a(e.baseURL,e.url);if(l.open(e.method.toUpperCase(),i(y,e.params,e.paramsSerializer),!0),l.timeout=e.timeout,l.onreadystatechange=function(){if(l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))){var r="getAllResponseHeaders"in l?u(l.getAllResponseHeaders()):null,s=e.responseType&&"text"!==e.responseType?l.response:l.responseText,i={data:s,status:l.status,statusText:l.statusText,headers:r,config:e,request:l};o(t,n,i),l=null}},l.onabort=function(){l&&(n(f("Request aborted",e,"ECONNABORTED",l)),l=null)},l.onerror=function(){n(f("Network Error",e,null,l)),l=null},l.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(f(t,e,"ECONNABORTED",l)),l=null},r.isStandardBrowserEnv()){var g=(e.withCredentials||c(y))&&e.xsrfCookieName?s.read(e.xsrfCookieName):void 0;g&&(d[e.xsrfHeaderName]=g)}if("setRequestHeader"in l&&r.forEach(d,function(e,t){"undefined"==typeof p&&"content-type"===t.toLowerCase()?delete d[t]:l.setRequestHeader(t,e)}),r.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),e.responseType)try{l.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&l.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){l&&(l.abort(),n(e),l=null)}),p||(p=null),l.send(p)})}},function(e,t,n){"use strict";var r=n(14);e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},function(e,t,n){"use strict";var r=n(15);e.exports=function(e,t,n,o,s){var i=new Error(e);return r(i,t,n,o,s)}},function(e,t){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){return{write:function(e,t,n,o,s,i){var a=[];a.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),r.isString(o)&&a.push("path="+o),r.isString(s)&&a.push("domain="+s),i===!0&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},function(e,t,n){"use strict";var r=n(18),o=n(19);e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},function(e,t){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t,n){"use strict";var r=n(2),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,s,i={};return e?(r.forEach(e.split("\n"),function(e){if(s=e.indexOf(":"),t=r.trim(e.substr(0,s)).toLowerCase(),n=r.trim(e.substr(s+1)),t){if(i[t]&&o.indexOf(t)>=0)return;"set-cookie"===t?i[t]=(i[t]?i[t]:[]).concat([n]):i[t]=i[t]?i[t]+", "+n:n}}),i):i}},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){function e(e){var t=e;return n&&(o.setAttribute("href",t),t=o.href),o.setAttribute("href",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var t,n=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return t=e(window.location.href),function(n){var o=r.isString(n)?e(n):n;return o.protocol===t.protocol&&o.host===t.host}}():function(){return function(){return!0}}()},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t){function n(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function o(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(s[o]=n(void 0,e[o])):s[o]=n(e[o],t[o])}t=t||{};var s={},i=["url","method","data"],a=["headers","auth","proxy","params"],u=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],c=["validateStatus"];r.forEach(i,function(e){r.isUndefined(t[e])||(s[e]=n(void 0,t[e]))}),r.forEach(a,o),r.forEach(u,function(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(s[o]=n(void 0,e[o])):s[o]=n(void 0,t[o])}),r.forEach(c,function(r){r in t?s[r]=n(e[r],t[r]):r in e&&(s[r]=n(void 0,e[r]))});var f=i.concat(a).concat(u).concat(c),p=Object.keys(e).concat(Object.keys(t)).filter(function(e){return f.indexOf(e)===-1});return r.forEach(p,o),s}},function(e,t){"use strict";function n(e){this.message=e}n.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},n.prototype.__CANCEL__=!0,e.exports=n},function(e,t,n){"use strict";function r(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var n=this;e(function(e){n.reason||(n.reason=new o(e),t(n.reason))})}var o=n(23);r.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},r.source=function(){var e,t=new r(function(t){e=t});return{token:t,cancel:e}},e.exports=r},function(e,t){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},function(e,t){"use strict";e.exports=function(e){return"object"==typeof e&&e.isAxiosError===!0}}])}); | ||
| 3 | +//# sourceMappingURL=axios.min.map | ||
| 0 | \ No newline at end of file | 4 | \ No newline at end of file |
src/main/resources/static/pages/video/static/element-ui/fonts/element-icons.ttf
0 → 100644
No preview for this file type
src/main/resources/static/pages/video/static/element-ui/fonts/element-icons.woff
0 → 100644
No preview for this file type
src/main/resources/static/pages/video/static/element-ui/index.css
0 → 100644
| 1 | +@charset "UTF-8";.el-pagination--small .arrow.disabled,.el-table .hidden-columns,.el-table td.is-hidden>*,.el-table th.is-hidden>*,.el-table--hidden{visibility:hidden}.el-input__suffix,.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing),.el-message__closeBtn:focus,.el-message__content:focus,.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing),.el-rate:active,.el-rate:focus,.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing),.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}@font-face{font-family:element-icons;src:url(fonts/element-icons.woff) format("woff"),url(fonts/element-icons.ttf) format("truetype");font-weight:400;font-display:"auto";font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:"\e6a0"}.el-icon-ice-cream-square:before{content:"\e6a3"}.el-icon-lollipop:before{content:"\e6a4"}.el-icon-potato-strips:before{content:"\e6a5"}.el-icon-milk-tea:before{content:"\e6a6"}.el-icon-ice-drink:before{content:"\e6a7"}.el-icon-ice-tea:before{content:"\e6a9"}.el-icon-coffee:before{content:"\e6aa"}.el-icon-orange:before{content:"\e6ab"}.el-icon-pear:before{content:"\e6ac"}.el-icon-apple:before{content:"\e6ad"}.el-icon-cherry:before{content:"\e6ae"}.el-icon-watermelon:before{content:"\e6af"}.el-icon-grape:before{content:"\e6b0"}.el-icon-refrigerator:before{content:"\e6b1"}.el-icon-goblet-square-full:before{content:"\e6b2"}.el-icon-goblet-square:before{content:"\e6b3"}.el-icon-goblet-full:before{content:"\e6b4"}.el-icon-goblet:before{content:"\e6b5"}.el-icon-cold-drink:before{content:"\e6b6"}.el-icon-coffee-cup:before{content:"\e6b8"}.el-icon-water-cup:before{content:"\e6b9"}.el-icon-hot-water:before{content:"\e6ba"}.el-icon-ice-cream:before{content:"\e6bb"}.el-icon-dessert:before{content:"\e6bc"}.el-icon-sugar:before{content:"\e6bd"}.el-icon-tableware:before{content:"\e6be"}.el-icon-burger:before{content:"\e6bf"}.el-icon-knife-fork:before{content:"\e6c1"}.el-icon-fork-spoon:before{content:"\e6c2"}.el-icon-chicken:before{content:"\e6c3"}.el-icon-food:before{content:"\e6c4"}.el-icon-dish-1:before{content:"\e6c5"}.el-icon-dish:before{content:"\e6c6"}.el-icon-moon-night:before{content:"\e6ee"}.el-icon-moon:before{content:"\e6f0"}.el-icon-cloudy-and-sunny:before{content:"\e6f1"}.el-icon-partly-cloudy:before{content:"\e6f2"}.el-icon-cloudy:before{content:"\e6f3"}.el-icon-sunny:before{content:"\e6f6"}.el-icon-sunset:before{content:"\e6f7"}.el-icon-sunrise-1:before{content:"\e6f8"}.el-icon-sunrise:before{content:"\e6f9"}.el-icon-heavy-rain:before{content:"\e6fa"}.el-icon-lightning:before{content:"\e6fb"}.el-icon-light-rain:before{content:"\e6fc"}.el-icon-wind-power:before{content:"\e6fd"}.el-icon-baseball:before{content:"\e712"}.el-icon-soccer:before{content:"\e713"}.el-icon-football:before{content:"\e715"}.el-icon-basketball:before{content:"\e716"}.el-icon-ship:before{content:"\e73f"}.el-icon-truck:before{content:"\e740"}.el-icon-bicycle:before{content:"\e741"}.el-icon-mobile-phone:before{content:"\e6d3"}.el-icon-service:before{content:"\e6d4"}.el-icon-key:before{content:"\e6e2"}.el-icon-unlock:before{content:"\e6e4"}.el-icon-lock:before{content:"\e6e5"}.el-icon-watch:before{content:"\e6fe"}.el-icon-watch-1:before{content:"\e6ff"}.el-icon-timer:before{content:"\e702"}.el-icon-alarm-clock:before{content:"\e703"}.el-icon-map-location:before{content:"\e704"}.el-icon-delete-location:before{content:"\e705"}.el-icon-add-location:before{content:"\e706"}.el-icon-location-information:before{content:"\e707"}.el-icon-location-outline:before{content:"\e708"}.el-icon-location:before{content:"\e79e"}.el-icon-place:before{content:"\e709"}.el-icon-discover:before{content:"\e70a"}.el-icon-first-aid-kit:before{content:"\e70b"}.el-icon-trophy-1:before{content:"\e70c"}.el-icon-trophy:before{content:"\e70d"}.el-icon-medal:before{content:"\e70e"}.el-icon-medal-1:before{content:"\e70f"}.el-icon-stopwatch:before{content:"\e710"}.el-icon-mic:before{content:"\e711"}.el-icon-copy-document:before{content:"\e718"}.el-icon-full-screen:before{content:"\e719"}.el-icon-switch-button:before{content:"\e71b"}.el-icon-aim:before{content:"\e71c"}.el-icon-crop:before{content:"\e71d"}.el-icon-odometer:before{content:"\e71e"}.el-icon-time:before{content:"\e71f"}.el-icon-bangzhu:before{content:"\e724"}.el-icon-close-notification:before{content:"\e726"}.el-icon-microphone:before{content:"\e727"}.el-icon-turn-off-microphone:before{content:"\e728"}.el-icon-position:before{content:"\e729"}.el-icon-postcard:before{content:"\e72a"}.el-icon-message:before{content:"\e72b"}.el-icon-chat-line-square:before{content:"\e72d"}.el-icon-chat-dot-square:before{content:"\e72e"}.el-icon-chat-dot-round:before{content:"\e72f"}.el-icon-chat-square:before{content:"\e730"}.el-icon-chat-line-round:before{content:"\e731"}.el-icon-chat-round:before{content:"\e732"}.el-icon-set-up:before{content:"\e733"}.el-icon-turn-off:before{content:"\e734"}.el-icon-open:before{content:"\e735"}.el-icon-connection:before{content:"\e736"}.el-icon-link:before{content:"\e737"}.el-icon-cpu:before{content:"\e738"}.el-icon-thumb:before{content:"\e739"}.el-icon-female:before{content:"\e73a"}.el-icon-male:before{content:"\e73b"}.el-icon-guide:before{content:"\e73c"}.el-icon-news:before{content:"\e73e"}.el-icon-price-tag:before{content:"\e744"}.el-icon-discount:before{content:"\e745"}.el-icon-wallet:before{content:"\e747"}.el-icon-coin:before{content:"\e748"}.el-icon-money:before{content:"\e749"}.el-icon-bank-card:before{content:"\e74a"}.el-icon-box:before{content:"\e74b"}.el-icon-present:before{content:"\e74c"}.el-icon-sell:before{content:"\e6d5"}.el-icon-sold-out:before{content:"\e6d6"}.el-icon-shopping-bag-2:before{content:"\e74d"}.el-icon-shopping-bag-1:before{content:"\e74e"}.el-icon-shopping-cart-2:before{content:"\e74f"}.el-icon-shopping-cart-1:before{content:"\e750"}.el-icon-shopping-cart-full:before{content:"\e751"}.el-icon-smoking:before{content:"\e752"}.el-icon-no-smoking:before{content:"\e753"}.el-icon-house:before{content:"\e754"}.el-icon-table-lamp:before{content:"\e755"}.el-icon-school:before{content:"\e756"}.el-icon-office-building:before{content:"\e757"}.el-icon-toilet-paper:before{content:"\e758"}.el-icon-notebook-2:before{content:"\e759"}.el-icon-notebook-1:before{content:"\e75a"}.el-icon-files:before{content:"\e75b"}.el-icon-collection:before{content:"\e75c"}.el-icon-receiving:before{content:"\e75d"}.el-icon-suitcase-1:before{content:"\e760"}.el-icon-suitcase:before{content:"\e761"}.el-icon-film:before{content:"\e763"}.el-icon-collection-tag:before{content:"\e765"}.el-icon-data-analysis:before{content:"\e766"}.el-icon-pie-chart:before{content:"\e767"}.el-icon-data-board:before{content:"\e768"}.el-icon-data-line:before{content:"\e76d"}.el-icon-reading:before{content:"\e769"}.el-icon-magic-stick:before{content:"\e76a"}.el-icon-coordinate:before{content:"\e76b"}.el-icon-mouse:before{content:"\e76c"}.el-icon-brush:before{content:"\e76e"}.el-icon-headset:before{content:"\e76f"}.el-icon-umbrella:before{content:"\e770"}.el-icon-scissors:before{content:"\e771"}.el-icon-mobile:before{content:"\e773"}.el-icon-attract:before{content:"\e774"}.el-icon-monitor:before{content:"\e775"}.el-icon-search:before{content:"\e778"}.el-icon-takeaway-box:before{content:"\e77a"}.el-icon-paperclip:before{content:"\e77d"}.el-icon-printer:before{content:"\e77e"}.el-icon-document-add:before{content:"\e782"}.el-icon-document:before{content:"\e785"}.el-icon-document-checked:before{content:"\e786"}.el-icon-document-copy:before{content:"\e787"}.el-icon-document-delete:before{content:"\e788"}.el-icon-document-remove:before{content:"\e789"}.el-icon-tickets:before{content:"\e78b"}.el-icon-folder-checked:before{content:"\e77f"}.el-icon-folder-delete:before{content:"\e780"}.el-icon-folder-remove:before{content:"\e781"}.el-icon-folder-add:before{content:"\e783"}.el-icon-folder-opened:before{content:"\e784"}.el-icon-folder:before{content:"\e78a"}.el-icon-edit-outline:before{content:"\e764"}.el-icon-edit:before{content:"\e78c"}.el-icon-date:before{content:"\e78e"}.el-icon-c-scale-to-original:before{content:"\e7c6"}.el-icon-view:before{content:"\e6ce"}.el-icon-loading:before{content:"\e6cf"}.el-icon-rank:before{content:"\e6d1"}.el-icon-sort-down:before{content:"\e7c4"}.el-icon-sort-up:before{content:"\e7c5"}.el-icon-sort:before{content:"\e6d2"}.el-icon-finished:before{content:"\e6cd"}.el-icon-refresh-left:before{content:"\e6c7"}.el-icon-refresh-right:before{content:"\e6c8"}.el-icon-refresh:before{content:"\e6d0"}.el-icon-video-play:before{content:"\e7c0"}.el-icon-video-pause:before{content:"\e7c1"}.el-icon-d-arrow-right:before{content:"\e6dc"}.el-icon-d-arrow-left:before{content:"\e6dd"}.el-icon-arrow-up:before{content:"\e6e1"}.el-icon-arrow-down:before{content:"\e6df"}.el-icon-arrow-right:before{content:"\e6e0"}.el-icon-arrow-left:before{content:"\e6de"}.el-icon-top-right:before{content:"\e6e7"}.el-icon-top-left:before{content:"\e6e8"}.el-icon-top:before{content:"\e6e6"}.el-icon-bottom:before{content:"\e6eb"}.el-icon-right:before{content:"\e6e9"}.el-icon-back:before{content:"\e6ea"}.el-icon-bottom-right:before{content:"\e6ec"}.el-icon-bottom-left:before{content:"\e6ed"}.el-icon-caret-top:before{content:"\e78f"}.el-icon-caret-bottom:before{content:"\e790"}.el-icon-caret-right:before{content:"\e791"}.el-icon-caret-left:before{content:"\e792"}.el-icon-d-caret:before{content:"\e79a"}.el-icon-share:before{content:"\e793"}.el-icon-menu:before{content:"\e798"}.el-icon-s-grid:before{content:"\e7a6"}.el-icon-s-check:before{content:"\e7a7"}.el-icon-s-data:before{content:"\e7a8"}.el-icon-s-opportunity:before{content:"\e7aa"}.el-icon-s-custom:before{content:"\e7ab"}.el-icon-s-claim:before{content:"\e7ad"}.el-icon-s-finance:before{content:"\e7ae"}.el-icon-s-comment:before{content:"\e7af"}.el-icon-s-flag:before{content:"\e7b0"}.el-icon-s-marketing:before{content:"\e7b1"}.el-icon-s-shop:before{content:"\e7b4"}.el-icon-s-open:before{content:"\e7b5"}.el-icon-s-management:before{content:"\e7b6"}.el-icon-s-ticket:before{content:"\e7b7"}.el-icon-s-release:before{content:"\e7b8"}.el-icon-s-home:before{content:"\e7b9"}.el-icon-s-promotion:before{content:"\e7ba"}.el-icon-s-operation:before{content:"\e7bb"}.el-icon-s-unfold:before{content:"\e7bc"}.el-icon-s-fold:before{content:"\e7a9"}.el-icon-s-platform:before{content:"\e7bd"}.el-icon-s-order:before{content:"\e7be"}.el-icon-s-cooperation:before{content:"\e7bf"}.el-icon-bell:before{content:"\e725"}.el-icon-message-solid:before{content:"\e799"}.el-icon-video-camera:before{content:"\e772"}.el-icon-video-camera-solid:before{content:"\e796"}.el-icon-camera:before{content:"\e779"}.el-icon-camera-solid:before{content:"\e79b"}.el-icon-download:before{content:"\e77c"}.el-icon-upload2:before{content:"\e77b"}.el-icon-upload:before{content:"\e7c3"}.el-icon-picture-outline-round:before{content:"\e75f"}.el-icon-picture-outline:before{content:"\e75e"}.el-icon-picture:before{content:"\e79f"}.el-icon-close:before{content:"\e6db"}.el-icon-check:before{content:"\e6da"}.el-icon-plus:before{content:"\e6d9"}.el-icon-minus:before{content:"\e6d8"}.el-icon-help:before{content:"\e73d"}.el-icon-s-help:before{content:"\e7b3"}.el-icon-circle-close:before{content:"\e78d"}.el-icon-circle-check:before{content:"\e720"}.el-icon-circle-plus-outline:before{content:"\e723"}.el-icon-remove-outline:before{content:"\e722"}.el-icon-zoom-out:before{content:"\e776"}.el-icon-zoom-in:before{content:"\e777"}.el-icon-error:before{content:"\e79d"}.el-icon-success:before{content:"\e79c"}.el-icon-circle-plus:before{content:"\e7a0"}.el-icon-remove:before{content:"\e7a2"}.el-icon-info:before{content:"\e7a1"}.el-icon-question:before{content:"\e7a4"}.el-icon-warning-outline:before{content:"\e6c9"}.el-icon-warning:before{content:"\e7a3"}.el-icon-goods:before{content:"\e7c2"}.el-icon-s-goods:before{content:"\e7b2"}.el-icon-star-off:before{content:"\e717"}.el-icon-star-on:before{content:"\e797"}.el-icon-more-outline:before{content:"\e6cc"}.el-icon-more:before{content:"\e794"}.el-icon-phone-outline:before{content:"\e6cb"}.el-icon-phone:before{content:"\e795"}.el-icon-user:before{content:"\e6e3"}.el-icon-user-solid:before{content:"\e7a5"}.el-icon-setting:before{content:"\e6ca"}.el-icon-s-tools:before{content:"\e7ac"}.el-icon-delete:before{content:"\e6d7"}.el-icon-delete-solid:before{content:"\e7c9"}.el-icon-eleme:before{content:"\e7c7"}.el-icon-platform-eleme:before{content:"\e7ca"}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}100%{-webkit-transform:rotateZ(360deg);transform:rotateZ(360deg)}}@keyframes rotating{0%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}100%{-webkit-transform:rotateZ(360deg);transform:rotateZ(360deg)}}.el-pagination{white-space:nowrap;padding:2px 5px;color:#303133;font-weight:700}.el-pagination::after,.el-pagination::before{display:table;content:""}.el-pagination::after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;vertical-align:top;-webkit-box-sizing:border-box;box-sizing:border-box}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-input__suffix{right:0;-webkit-transform:scale(.8);transform:scale(.8)}.el-pagination .el-select .el-input{width:100px;margin:0 5px}.el-pagination .el-select .el-input .el-input__inner{padding-right:25px;border-radius:3px}.el-pagination button{border:none;padding:0 6px;background:0 0}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:#409EFF}.el-pagination button:disabled{color:#C0C4CC;background-color:#FFF;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:center center no-repeat #FFF;background-size:16px;cursor:pointer;margin:0;color:#303133}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#C0C4CC;cursor:not-allowed}.el-pager li,.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.el-pagination--small .more::before,.el-pagination--small li.more::before{line-height:24px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination__sizes{margin:0 10px 0 0;font-weight:400;color:#606266}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#409EFF}.el-pagination__total{margin-right:10px;font-weight:400;color:#606266}.el-pagination__jump{margin-left:24px;font-weight:400;color:#606266}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{line-height:18px;padding:0 2px;height:28px;text-align:center;margin:0 2px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:3px}.el-pager,.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#606266;min-width:30px;border-radius:2px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.disabled{color:#C0C4CC}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#409EFF}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#409EFF;color:#FFF}.el-dialog,.el-pager li{background:#FFF;-webkit-box-sizing:border-box}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager,.el-pager li{vertical-align:top;margin:0;display:inline-block}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0}.el-date-table,.el-table th{-webkit-user-select:none;-moz-user-select:none}.el-pager .more::before{line-height:30px}.el-pager li{padding:0 4px;font-size:13px;min-width:35.5px;height:28px;line-height:28px;box-sizing:border-box;text-align:center}.el-menu--collapse .el-menu .el-submenu,.el-menu--popup{min-width:200px}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:28px;color:#303133}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#C0C4CC}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#409EFF}.el-pager li.active{color:#409EFF;cursor:default}@-webkit-keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{100%{opacity:0}}.el-dialog{position:relative;margin:0 auto 50px;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.3);box-shadow:0 1px 3px rgba(0,0,0,.3);box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:0 0;border:none;outline:0;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#409EFF}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px;word-break:break-all}.el-dialog__footer{padding:10px 20px 20px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{-webkit-animation:dialog-fade-in .3s;animation:dialog-fade-in .3s}.dialog-fade-leave-active{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .3s}@-webkit-keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete-suggestion{margin:5px 0;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:4px;border:1px solid #E4E7ED;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#FFF}.el-dropdown-menu,.el-menu--collapse .el-submenu .el-menu{z-index:10;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:#606266;font-size:14px;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#F5F7FA}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #000}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.el-autocomplete-suggestion.is-loading li::after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#FFF}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{display:inline-block;position:relative;color:#606266;font-size:14px}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{padding-left:5px;padding-right:5px;position:relative;border-left:none}.el-dropdown .el-dropdown__caret-button::before{content:'';position:absolute;display:block;width:1px;top:5px;bottom:5px;left:0;background:rgba(255,255,255,.5)}.el-dropdown .el-dropdown__caret-button.el-button--default::before{background:rgba(220,223,230,.5)}.el-dropdown .el-dropdown__caret-button:hover::before{top:0;bottom:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown-menu{position:absolute;top:0;left:0;padding:10px 0;margin:5px 0;background-color:#FFF;border:1px solid #EBEEF5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-dropdown-menu__item{list-style:none;line-height:36px;padding:0 20px;margin:0;font-size:14px;color:#606266;cursor:pointer;outline:0}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#ecf5ff;color:#66b1ff}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #EBEEF5}.el-dropdown-menu__item--divided:before{content:'';height:6px;display:block;margin:0 -20px;background-color:#FFF}.el-dropdown-menu__item.is-disabled{cursor:default;color:#bbb;pointer-events:none}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{line-height:30px;padding:0 17px;font-size:14px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{line-height:27px;padding:0 15px;font-size:13px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{line-height:24px;padding:0 10px;font-size:12px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{border-right:solid 1px #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0;background-color:#FFF}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu::after,.el-menu::before{display:table;content:""}.el-menu::after{clear:both}.el-menu.el-menu--horizontal{border-bottom:solid 1px #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:0}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #409EFF;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#FFF;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #409EFF;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;border:1px solid #E4E7ED;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu-item,.el-submenu__title{height:56px;line-height:56px;position:relative;-webkit-box-sizing:border-box;white-space:nowrap;list-style:none}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:none;transform:none}.el-menu--popup{z-index:100;border:none;padding:5px 0;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:0;background-color:#ecf5ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#409EFF}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:0;background-color:#ecf5ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu__title:hover{background-color:#ecf5ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:12px}.el-submenu.is-active .el-submenu__title{border-bottom-color:#409EFF}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.el-radio-button__inner,.el-radio-group{display:inline-block;line-height:1;vertical-align:middle}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{-webkit-transition:.2s;transition:.2s;opacity:0}.el-radio-group{font-size:0}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{white-space:nowrap;background:#FFF;border:1px solid #DCDFE6;font-weight:500;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#409EFF}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #DCDFE6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#FFF;background-color:#409EFF;border-color:#409EFF;-webkit-box-shadow:-1px 0 0 0 #409EFF;box-shadow:-1px 0 0 0 #409EFF}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#C0C4CC;cursor:not-allowed;background-image:none;background-color:#FFF;border-color:#EBEEF5;-webkit-box-shadow:none;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#F2F6FC}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-popover,.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){-webkit-box-shadow:0 0 2px 2px #409EFF;box-shadow:0 0 2px 2px #409EFF}.el-switch{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch__core,.el-switch__label{display:inline-block;cursor:pointer}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{-webkit-transition:.2s;transition:.2s;height:20px;font-size:14px;font-weight:500;vertical-align:middle;color:#303133}.el-switch__label.is-active{color:#409EFF}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__core{margin:0;position:relative;width:40px;height:20px;border:1px solid #DCDFE6;outline:0;border-radius:10px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#DCDFE6;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s;vertical-align:middle}.el-switch__core:after{content:"";position:absolute;top:1px;left:1px;border-radius:100%;-webkit-transition:all .3s;transition:all .3s;width:16px;height:16px;background-color:#FFF}.el-switch.is-checked .el-switch__core{border-color:#409EFF;background-color:#409EFF}.el-switch.is-checked .el-switch__core::after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #E4E7ED;border-radius:4px;background-color:#FFF;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#409EFF;background-color:#FFF}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#F5F7FA}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after{position:absolute;right:20px;font-family:element-icons;content:"\e6da";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#C0C4CC;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#FFF}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#F5F7FA}.el-select-dropdown__item.selected{color:#409EFF;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type)::after{content:'';position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#E4E7ED}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative}.el-select .el-select__tags>span{display:contents}.el-select:hover .el-input__inner{border-color:#C0C4CC}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#409EFF}.el-select .el-input .el-select__caret{color:#C0C4CC;font-size:14px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{-webkit-transform:rotateZ(0);transform:rotateZ(0)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg);border-radius:100%;color:#C0C4CC;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#E4E7ED}.el-select .el-input.is-focus .el-input__inner{border-color:#409EFF}.el-select>.el-input{display:block}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#C0C4CC;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-select .el-tag__close{margin-top:-2px}.el-select .el-tag{-webkit-box-sizing:border-box;box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5}.el-select .el-tag__close.el-icon-close{background-color:#C0C4CC;right:-7px;top:0;color:#FFF}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-table,.el-table__expanded-cell{background-color:#FFF}.el-select .el-tag__close.el-icon-close::before{display:block;-webkit-transform:translate(0,.5px);transform:translate(0,.5px)}.el-table{position:relative;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;max-width:100%;font-size:14px;color:#606266}.el-table--mini,.el-table--small,.el-table__expand-icon{font-size:12px}.el-table__empty-block{min-height:60px;text-align:center;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit td.gutter,.el-table--fit th.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th{background:#F5F7FA}.el-table th,.el-table tr{background-color:#FFF}.el-table td,.el-table th{padding:12px 0;min-width:0;-webkit-box-sizing:border-box;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left}.el-table td.is-center,.el-table th.is-center{text-align:center}.el-table td.is-right,.el-table th.is-right{text-align:right}.el-table td.gutter,.el-table th.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table--medium td,.el-table--medium th{padding:10px 0}.el-table--small td,.el-table--small th{padding:8px 0}.el-table--mini td,.el-table--mini th{padding:6px 0}.el-table .cell,.el-table--border td:first-child .cell,.el-table--border th:first-child .cell{padding-left:10px}.el-table tr input[type=checkbox]{margin:0}.el-table td,.el-table th.is-leaf{border-bottom:1px solid #EBEEF5}.el-table th.is-sortable{cursor:pointer}.el-table th{overflow:hidden;-ms-user-select:none;user-select:none}.el-table th>.cell{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;vertical-align:middle;padding-left:10px;padding-right:10px;width:100%}.el-table th>.cell.highlight{color:#409EFF}.el-table th.required>div::before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td div{-webkit-box-sizing:border-box;box-sizing:border-box}.el-table td.gutter{width:0}.el-table .cell{-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding-right:10px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #EBEEF5}.el-table--border::after,.el-table--group::after,.el-table::before{content:'';position:absolute;background-color:#EBEEF5;z-index:1}.el-table--border::after,.el-table--group::after{top:0;right:0;width:1px;height:100%}.el-table::before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border td,.el-table--border th,.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #EBEEF5}.el-table--border th.gutter:last-of-type{border-bottom:1px solid #EBEEF5;border-bottom-width:1px}.el-table--border th,.el-table__fixed-right-patch{border-bottom:1px solid #EBEEF5}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;-webkit-box-shadow:0 0 10px rgba(0,0,0,.12);box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right::before,.el-table__fixed::before{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#EBEEF5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#FFF}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td{border-top:1px solid #EBEEF5;background-color:#F5F7FA;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td{border-top:1px solid #EBEEF5}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td,.el-table__header-wrapper tbody td{background-color:#F5F7FA;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{-webkit-box-shadow:none;box-shadow:none}.el-picker-panel,.el-table-filter{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #EBEEF5}.el-table .caret-wrapper{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#C0C4CC;top:5px}.el-table .sort-caret.descending{border-top-color:#C0C4CC;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#409EFF}.el-table .descending .sort-caret.descending{border-top-color:#409EFF}.el-table .hidden-columns{position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td{background:#FAFAFA}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td{background-color:#ecf5ff}.el-table__body tr.hover-row.current-row>td,.el-table__body tr.hover-row.el-table__row--striped.current-row>td,.el-table__body tr.hover-row.el-table__row--striped>td,.el-table__body tr.hover-row>td{background-color:#F5F7FA}.el-table__body tr.current-row>td{background-color:#ecf5ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #EBEEF5;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;-webkit-transform:scale(.75);transform:scale(.75)}.el-table--enable-row-transition .el-table__body td{-webkit-transition:background-color .25s ease;transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#F5F7FA}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:20px;line-height:20px;height:20px;text-align:center;margin-right:3px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #EBEEF5;border-radius:2px;background-color:#FFF;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:2px 0}.el-date-table td,.el-date-table td div{height:30px;-webkit-box-sizing:border-box}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#ecf5ff;color:#66b1ff}.el-table-filter__list-item.is-active{background-color:#409EFF;color:#FFF}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #EBEEF5;padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-date-table td.in-range div,.el-date-table td.in-range div:hover,.el-date-table.is-week-mode .el-date-table__row.current div,.el-date-table.is-week-mode .el-date-table__row:hover div{background-color:#F2F6FC}.el-table-filter__bottom button:hover{color:#409EFF}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:#C0C4CC;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#606266}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td{width:32px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td div{padding:3px 0;box-sizing:border-box}.el-date-table td span{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:#C0C4CC}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#409EFF;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#FFF}.el-date-table td.available:hover{color:#409EFF}.el-date-table td.current:not(.disabled) span{color:#FFF;background-color:#409EFF}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#FFF}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#409EFF}.el-date-table td.start-date div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled div{background-color:#F5F7FA;opacity:1;cursor:not-allowed;color:#C0C4CC}.el-date-table td.selected div{margin-left:5px;margin-right:5px;background-color:#F2F6FC;border-radius:15px}.el-date-table td.selected div:hover{background-color:#F2F6FC}.el-date-table td.selected span{background-color:#409EFF;color:#FFF;border-radius:15px}.el-date-table td.week{font-size:80%;color:#606266}.el-month-table,.el-year-table{font-size:12px;border-collapse:collapse}.el-date-table th{padding:5px;color:#606266;font-weight:400;border-bottom:solid 1px #EBEEF5}.el-month-table{margin:-1px}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-month-table td.today .cell{color:#409EFF;font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#FFF}.el-month-table td.disabled .cell{background-color:#F5F7FA;cursor:not-allowed;color:#C0C4CC}.el-month-table td.disabled .cell:hover{color:#C0C4CC}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:#606266;margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:#409EFF}.el-month-table td.in-range div,.el-month-table td.in-range div:hover{background-color:#F2F6FC}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#FFF}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#FFF;background-color:#409EFF}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:#409EFF}.el-year-table{margin:-1px}.el-year-table .el-icon{color:#303133}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:#409EFF;font-weight:700}.el-year-table td.disabled .cell{background-color:#F5F7FA;cursor:not-allowed;color:#C0C4CC}.el-year-table td.disabled .cell:hover{color:#C0C4CC}.el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px;color:#606266;margin:0 auto}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#409EFF}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{-webkit-box-sizing:border-box;box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#303133}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#FFF}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px #EBEEF5}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#606266}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#409EFF}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.selected:not(.disabled){color:#409EFF;font-weight:700}.time-select-item.disabled{color:#E4E7ED;cursor:not-allowed}.time-select-item:hover{background-color:#F5F7FA;font-weight:700;cursor:pointer}.el-date-editor{position:relative;display:inline-block;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--monthrange.el-input,.el-date-editor--monthrange.el-input__inner{width:300px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#C0C4CC;float:left;line-height:32px}.el-date-editor .el-range-input,.el-date-editor .el-range-separator{height:100%;margin:0;text-align:center;display:inline-block;font-size:14px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;padding:0;width:39%;color:#606266}.el-date-editor .el-range-input::-webkit-input-placeholder{color:#C0C4CC}.el-date-editor .el-range-input:-ms-input-placeholder{color:#C0C4CC}.el-date-editor .el-range-input::-ms-input-placeholder{color:#C0C4CC}.el-date-editor .el-range-input::placeholder{color:#C0C4CC}.el-date-editor .el-range-separator{padding:0 5px;line-height:32px;width:5%;color:#303133}.el-date-editor .el-range__close-icon{font-size:14px;color:#C0C4CC;width:25px;display:inline-block;float:right;line-height:32px}.el-range-editor.el-input__inner{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-range-editor.is-active,.el-range-editor.is-active:hover{border-color:#409EFF}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#F5F7FA;border-color:#E4E7ED;color:#C0C4CC;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#E4E7ED}.el-range-editor.is-disabled input{background-color:#F5F7FA;color:#C0C4CC;cursor:not-allowed}.el-range-editor.is-disabled input::-webkit-input-placeholder{color:#C0C4CC}.el-range-editor.is-disabled input:-ms-input-placeholder{color:#C0C4CC}.el-range-editor.is-disabled input::-ms-input-placeholder{color:#C0C4CC}.el-range-editor.is-disabled input::placeholder{color:#C0C4CC}.el-range-editor.is-disabled .el-range-separator{color:#C0C4CC}.el-picker-panel{color:#606266;border:1px solid #E4E7ED;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#FFF;border-radius:4px;line-height:30px;margin:5px 0}.el-popover,.el-time-panel{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-picker-panel__body-wrapper::after,.el-picker-panel__body::after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#FFF;position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#606266;padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:#409EFF}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#409EFF}.el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:#303133;border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:#409EFF}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;background-color:#FFF;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__wrapper.is-arrow{-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{-webkit-transform:translateY(-32px);transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#FFF;cursor:default}.el-time-spinner__arrow{font-size:12px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:#409EFF}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__list{margin:0;list-style:none}.el-time-spinner__list::after,.el-time-spinner__list::before{content:'';display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#606266}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#F5F7FA;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#C0C4CC;cursor:not-allowed}.el-time-panel{margin:5px 0;border:1px solid #E4E7ED;background-color:#FFF;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;width:180px;left:0;z-index:1000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-sizing:content-box;box-sizing:content-box}.el-slider__button,.el-slider__button-wrapper{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content::after,.el-time-panel__content::before{content:"";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #E4E7ED;border-bottom:1px solid #E4E7ED}.el-time-panel__content::after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content::before{padding-left:50%;margin-right:12%;margin-left:12%}.el-time-panel__content.has-seconds::after{left:calc(100% / 3 * 2)}.el-time-panel__content.has-seconds::before{padding-left:calc(100% / 3)}.el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:#303133}.el-time-panel__btn.confirm{font-weight:800;color:#409EFF}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px}.el-time-range-picker__cell{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid #E4E7ED}.el-popover{position:absolute;background:#FFF;min-width:150px;border:1px solid #EBEEF5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{100%{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#FFF;border-radius:4px;border:1px solid #EBEEF5;font-size:18px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper::after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px 15px 10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:0;background:0 0;font-size:16px;cursor:pointer}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus,.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#F56C6C}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#409EFF}.el-message-box__content{padding:10px 15px;color:#606266;font-size:14px}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__status{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:24px!important}.el-message-box__status::before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#67C23A}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#E6A23C}.el-message-box__status.el-icon-error{color:#F56C6C}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#F56C6C;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{-webkit-animation:msgbox-fade-in .3s;animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{-webkit-animation:msgbox-fade-out .3s;animation:msgbox-fade-out .3s}@-webkit-keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb::after,.el-breadcrumb::before{display:table;content:""}.el-breadcrumb::after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#C0C4CC}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:#409EFF;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:#606266;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item::after,.el-form-item::before{display:table;content:""}.el-form-item::after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content::after,.el-form-item__content::before{display:table;content:""}.el-form-item__content::after{clear:both}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#F56C6C;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:'*';color:#F56C6C;margin-right:4px}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#F56C6C}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409EFF;z-index:1;-webkit-transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;-webkit-transition:all .15s;transition:all .15s}.el-collapse-item__arrow,.el-tabs__nav{-webkit-transition:-webkit-transform .3s}.el-tabs__new-tab .el-icon-plus{-webkit-transform:scale(.8,.8);transform:scale(.8,.8)}.el-tabs__new-tab:hover{color:#409EFF}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#E4E7ED;z-index:1}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap::after,.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap::after{content:none}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.el-tabs__nav.is-stretch>*{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus.is-active.is-focus:not(:active){-webkit-box-shadow:0 0 2px 2px #409EFF inset;box-shadow:0 0 2px 2px #409EFF inset;border-radius:3px}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{-webkit-transform:scale(.9);transform:scale(.9);display:inline-block}.el-tabs__item .el-icon-close:hover{background-color:#C0C4CC;color:#FFF}.el-tabs__item.is-active{color:#409EFF}.el-tabs__item:hover{color:#409EFF;cursor:pointer}.el-tabs__item.is-disabled{color:#C0C4CC;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #E4E7ED}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #E4E7ED;border-bottom:none;border-radius:4px 4px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close,.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #E4E7ED;-webkit-transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1);transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#FFF}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--border-card{background:#FFF;border:1px solid #DCDFE6;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04);box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#F5F7FA;border-bottom:1px solid #E4E7ED;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__item{-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin-top:-1px;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#409EFF;background-color:#FFF;border-right-color:#DCDFE6;border-left-color:#DCDFE6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#409EFF}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#C0C4CC}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #DCDFE6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{-webkit-transform:rotateZ(90deg);transform:rotateZ(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left::after{right:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left::after,.el-tabs--left .el-tabs__nav-wrap.is-right::after,.el-tabs--right .el-tabs__nav-wrap.is-left::after,.el-tabs--right .el-tabs__nav-wrap.is-right::after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left,.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #E4E7ED;border-bottom:none;border-top:1px solid #E4E7ED;text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #E4E7ED;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #E4E7ED;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #E4E7ED;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right::after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #E4E7ED}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #E4E7ED;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #E4E7ED;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #E4E7ED;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter .3s;animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave .3s;animation:slideInRight-leave .3s}.slideInLeft-enter{-webkit-animation:slideInLeft-enter .3s;animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave .3s;animation:slideInLeft-leave .3s}@-webkit-keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}.el-tree{position:relative;cursor:default;background:#FFF;color:#606266}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#909399;font-size:14px}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:#409EFF}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:#F5F7FA}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#409EFF;color:#fff}.el-tree-node__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:#F5F7FA}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:#C0C4CC;font-size:12px;-webkit-transform:rotate(0);transform:rotate(0);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:8px;font-size:14px;color:#C0C4CC}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#f0f7ff}.el-alert{width:100%;padding:8px 16px;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;position:relative;background-color:#FFF;overflow:hidden;opacity:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:opacity .2s;transition:opacity .2s}.el-alert.is-light .el-alert__closebtn{color:#C0C4CC}.el-alert.is-dark .el-alert__closebtn,.el-alert.is-dark .el-alert__description{color:#FFF}.el-alert.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-alert--success.is-light{background-color:#f0f9eb;color:#67C23A}.el-alert--success.is-light .el-alert__description{color:#67C23A}.el-alert--success.is-dark{background-color:#67C23A;color:#FFF}.el-alert--info.is-light{background-color:#f4f4f5;color:#909399}.el-alert--info.is-dark{background-color:#909399;color:#FFF}.el-alert--info .el-alert__description{color:#909399}.el-alert--warning.is-light{background-color:#fdf6ec;color:#E6A23C}.el-alert--warning.is-light .el-alert__description{color:#E6A23C}.el-alert--warning.is-dark{background-color:#E6A23C;color:#FFF}.el-alert--error.is-light{background-color:#fef0f0;color:#F56C6C}.el-alert--error.is-light .el-alert__description{color:#F56C6C}.el-alert--error.is-dark{background-color:#F56C6C;color:#FFF}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0}.el-alert__closebtn{font-size:12px;opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert-fade-enter,.el-alert-fade-leave-active,.el-loading-fade-enter,.el-loading-fade-leave-active,.el-notification-fade-leave-active{opacity:0}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-notification{display:-webkit-box;display:-ms-flexbox;display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #EBEEF5;position:fixed;background-color:#FFF;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;overflow:hidden}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:13px;margin-right:8px}.el-notification__title{font-weight:700;font-size:16px;color:#303133;margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:6px 0 0;color:#606266;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{height:24px;width:24px;font-size:24px}.el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:#909399;font-size:16px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#67C23A}.el-notification .el-icon-error{color:#F56C6C}.el-notification .el-icon-info{color:#909399}.el-notification .el-icon-warning{color:#E6A23C}.el-notification-fade-enter.right{right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.el-notification-fade-enter.left{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.el-input-number{position:relative;display:inline-block;width:180px;line-height:38px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{position:absolute;z-index:1;top:1px;width:40px;height:auto;text-align:center;background:#F5F7FA;color:#606266;cursor:pointer;font-size:13px}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#409EFF}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#409EFF}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#C0C4CC;cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 4px 4px 0;border-left:1px solid #DCDFE6}.el-input-number__decrease{left:1px;border-radius:4px 0 0 4px;border-right:1px solid #DCDFE6}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#E4E7ED;color:#E4E7ED}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#E4E7ED;cursor:not-allowed}.el-input-number--medium{width:200px;line-height:34px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{width:36px;font-size:14px}.el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.el-input-number--small{width:130px;line-height:30px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:32px;font-size:13px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.9);transform:scale(.9)}.el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.el-input-number--mini{width:130px;line-height:26px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{width:28px;font-size:12px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 4px 0 0;border-bottom:1px solid #DCDFE6}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;bottom:1px;top:auto;left:auto;border-right:none;border-left:1px solid #DCDFE6;border-radius:0 0 4px}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow::after{content:" ";border-width:5px}.el-progress-bar__inner::after,.el-row::after,.el-row::before,.el-slider::after,.el-slider::before,.el-slider__button-wrapper::after,.el-upload-cover::after{content:""}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow::after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#FFF}.el-tooltip__popper.is-light{background:#FFF;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow::after{border-top-color:#FFF}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow::after{border-bottom-color:#FFF}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow::after{border-left-color:#FFF}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow::after{border-right-color:#FFF}.el-slider::after,.el-slider::before{display:table}.el-slider__button-wrapper .el-tooltip,.el-slider__button-wrapper::after{vertical-align:middle;display:inline-block}.el-slider::after{clear:both}.el-slider__runway{width:100%;height:6px;margin:16px 0;background-color:#E4E7ED;border-radius:3px;position:relative;cursor:pointer;vertical-align:middle}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#C0C4CC}.el-slider__runway.disabled .el-slider__button{border-color:#C0C4CC}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{-webkit-transform:scale(1);transform:scale(1);cursor:not-allowed}.el-slider__button-wrapper,.el-slider__stop{-webkit-transform:translateX(-50%);position:absolute}.el-slider__input{float:right;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{height:6px;background-color:#409EFF;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.el-slider__button-wrapper{height:36px;width:36px;z-index:1001;top:-15px;transform:translateX(-50%);background-color:transparent;text-align:center;user-select:none;line-height:normal}.el-slider__button-wrapper::after{height:100%}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{width:16px;height:16px;border:2px solid #409EFF;background-color:#FFF;border-radius:50%;-webkit-transition:.2s;transition:.2s;user-select:none}.el-image-viewer__btn,.el-step__icon-inner{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{height:6px;width:6px;border-radius:100%;background-color:#FFF;transform:translateX(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);font-size:14px;color:#909399;margin-top:15px}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{width:6px;height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:6px;height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:-15px;-webkit-transform:translateY(50%);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{-webkit-transform:translateY(50%);transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{overflow:visible;float:none;position:absolute;bottom:22px;width:36px;margin-top:15px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{text-align:center;padding-left:5px;padding-right:5px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{top:32px;margin-top:-1px;border:1px solid #DCDFE6;line-height:20px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{width:18px;right:18px;border-bottom-left-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{width:19px;border-bottom-right-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#C0C4CC}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#409EFF}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;-webkit-transform:translateY(50%);transform:translateY(50%)}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:rgba(255,255,255,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-col-pull-0,.el-col-pull-1,.el-col-pull-10,.el-col-pull-11,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-2,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-push-0,.el-col-push-1,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-2,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9,.el-row{position:relative}.el-loading-spinner .el-loading-text{color:#409EFF;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#409EFF;stroke-linecap:round}.el-loading-spinner i{color:#409EFF}@-webkit-keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{-webkit-box-sizing:border-box;box-sizing:border-box}.el-row::after,.el-row::before{display:table}.el-row::after{clear:both}.el-row--flex{display:-webkit-box;display:-ms-flexbox;display:flex}.el-col-0,.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-middle{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}[class*=el-col-]{float:left;-webkit-box-sizing:border-box;box-sizing:border-box}.el-upload--picture-card,.el-upload-dragger{-webkit-box-sizing:border-box;cursor:pointer}.el-col-0{width:0%}.el-col-offset-0{margin-left:0}.el-col-pull-0{right:0}.el-col-push-0{left:0}.el-col-1{width:4.16667%}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{right:4.16667%}.el-col-push-1{left:4.16667%}.el-col-2{width:8.33333%}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{right:8.33333%}.el-col-push-2{left:8.33333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{right:12.5%}.el-col-push-3{left:12.5%}.el-col-4{width:16.66667%}.el-col-offset-4{margin-left:16.66667%}.el-col-pull-4{right:16.66667%}.el-col-push-4{left:16.66667%}.el-col-5{width:20.83333%}.el-col-offset-5{margin-left:20.83333%}.el-col-pull-5{right:20.83333%}.el-col-push-5{left:20.83333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{right:25%}.el-col-push-6{left:25%}.el-col-7{width:29.16667%}.el-col-offset-7{margin-left:29.16667%}.el-col-pull-7{right:29.16667%}.el-col-push-7{left:29.16667%}.el-col-8{width:33.33333%}.el-col-offset-8{margin-left:33.33333%}.el-col-pull-8{right:33.33333%}.el-col-push-8{left:33.33333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{right:37.5%}.el-col-push-9{left:37.5%}.el-col-10{width:41.66667%}.el-col-offset-10{margin-left:41.66667%}.el-col-pull-10{right:41.66667%}.el-col-push-10{left:41.66667%}.el-col-11{width:45.83333%}.el-col-offset-11{margin-left:45.83333%}.el-col-pull-11{right:45.83333%}.el-col-push-11{left:45.83333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%}.el-col-13{width:54.16667%}.el-col-offset-13{margin-left:54.16667%}.el-col-pull-13{right:54.16667%}.el-col-push-13{left:54.16667%}.el-col-14{width:58.33333%}.el-col-offset-14{margin-left:58.33333%}.el-col-pull-14{right:58.33333%}.el-col-push-14{left:58.33333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{right:62.5%}.el-col-push-15{left:62.5%}.el-col-16{width:66.66667%}.el-col-offset-16{margin-left:66.66667%}.el-col-pull-16{right:66.66667%}.el-col-push-16{left:66.66667%}.el-col-17{width:70.83333%}.el-col-offset-17{margin-left:70.83333%}.el-col-pull-17{right:70.83333%}.el-col-push-17{left:70.83333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{right:75%}.el-col-push-18{left:75%}.el-col-19{width:79.16667%}.el-col-offset-19{margin-left:79.16667%}.el-col-pull-19{right:79.16667%}.el-col-push-19{left:79.16667%}.el-col-20{width:83.33333%}.el-col-offset-20{margin-left:83.33333%}.el-col-pull-20{right:83.33333%}.el-col-push-20{left:83.33333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{right:87.5%}.el-col-push-21{left:87.5%}.el-col-22{width:91.66667%}.el-col-offset-22{margin-left:91.66667%}.el-col-pull-22{right:91.66667%}.el-col-push-22{left:91.66667%}.el-col-23{width:95.83333%}.el-col-offset-23{margin-left:95.83333%}.el-col-pull-23{right:95.83333%}.el-col-push-23{left:95.83333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{right:100%}.el-col-push-24{left:100%}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0%}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.16667%}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{width:8.33333%}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.66667%}.el-col-xs-offset-4{margin-left:16.66667%}.el-col-xs-pull-4{position:relative;right:16.66667%}.el-col-xs-push-4{position:relative;left:16.66667%}.el-col-xs-5{width:20.83333%}.el-col-xs-offset-5{margin-left:20.83333%}.el-col-xs-pull-5{position:relative;right:20.83333%}.el-col-xs-push-5{position:relative;left:20.83333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.16667%}.el-col-xs-offset-7{margin-left:29.16667%}.el-col-xs-pull-7{position:relative;right:29.16667%}.el-col-xs-push-7{position:relative;left:29.16667%}.el-col-xs-8{width:33.33333%}.el-col-xs-offset-8{margin-left:33.33333%}.el-col-xs-pull-8{position:relative;right:33.33333%}.el-col-xs-push-8{position:relative;left:33.33333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.66667%}.el-col-xs-offset-10{margin-left:41.66667%}.el-col-xs-pull-10{position:relative;right:41.66667%}.el-col-xs-push-10{position:relative;left:41.66667%}.el-col-xs-11{width:45.83333%}.el-col-xs-offset-11{margin-left:45.83333%}.el-col-xs-pull-11{position:relative;right:45.83333%}.el-col-xs-push-11{position:relative;left:45.83333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.16667%}.el-col-xs-offset-13{margin-left:54.16667%}.el-col-xs-pull-13{position:relative;right:54.16667%}.el-col-xs-push-13{position:relative;left:54.16667%}.el-col-xs-14{width:58.33333%}.el-col-xs-offset-14{margin-left:58.33333%}.el-col-xs-pull-14{position:relative;right:58.33333%}.el-col-xs-push-14{position:relative;left:58.33333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.66667%}.el-col-xs-offset-16{margin-left:66.66667%}.el-col-xs-pull-16{position:relative;right:66.66667%}.el-col-xs-push-16{position:relative;left:66.66667%}.el-col-xs-17{width:70.83333%}.el-col-xs-offset-17{margin-left:70.83333%}.el-col-xs-pull-17{position:relative;right:70.83333%}.el-col-xs-push-17{position:relative;left:70.83333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.16667%}.el-col-xs-offset-19{margin-left:79.16667%}.el-col-xs-pull-19{position:relative;right:79.16667%}.el-col-xs-push-19{position:relative;left:79.16667%}.el-col-xs-20{width:83.33333%}.el-col-xs-offset-20{margin-left:83.33333%}.el-col-xs-pull-20{position:relative;right:83.33333%}.el-col-xs-push-20{position:relative;left:83.33333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.66667%}.el-col-xs-offset-22{margin-left:91.66667%}.el-col-xs-pull-22{position:relative;right:91.66667%}.el-col-xs-push-22{position:relative;left:91.66667%}.el-col-xs-23{width:95.83333%}.el-col-xs-offset-23{margin-left:95.83333%}.el-col-xs-pull-23{position:relative;right:95.83333%}.el-col-xs-push-23{position:relative;left:95.83333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0%}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.16667%}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{width:8.33333%}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.66667%}.el-col-sm-offset-4{margin-left:16.66667%}.el-col-sm-pull-4{position:relative;right:16.66667%}.el-col-sm-push-4{position:relative;left:16.66667%}.el-col-sm-5{width:20.83333%}.el-col-sm-offset-5{margin-left:20.83333%}.el-col-sm-pull-5{position:relative;right:20.83333%}.el-col-sm-push-5{position:relative;left:20.83333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.16667%}.el-col-sm-offset-7{margin-left:29.16667%}.el-col-sm-pull-7{position:relative;right:29.16667%}.el-col-sm-push-7{position:relative;left:29.16667%}.el-col-sm-8{width:33.33333%}.el-col-sm-offset-8{margin-left:33.33333%}.el-col-sm-pull-8{position:relative;right:33.33333%}.el-col-sm-push-8{position:relative;left:33.33333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.66667%}.el-col-sm-offset-10{margin-left:41.66667%}.el-col-sm-pull-10{position:relative;right:41.66667%}.el-col-sm-push-10{position:relative;left:41.66667%}.el-col-sm-11{width:45.83333%}.el-col-sm-offset-11{margin-left:45.83333%}.el-col-sm-pull-11{position:relative;right:45.83333%}.el-col-sm-push-11{position:relative;left:45.83333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.16667%}.el-col-sm-offset-13{margin-left:54.16667%}.el-col-sm-pull-13{position:relative;right:54.16667%}.el-col-sm-push-13{position:relative;left:54.16667%}.el-col-sm-14{width:58.33333%}.el-col-sm-offset-14{margin-left:58.33333%}.el-col-sm-pull-14{position:relative;right:58.33333%}.el-col-sm-push-14{position:relative;left:58.33333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.66667%}.el-col-sm-offset-16{margin-left:66.66667%}.el-col-sm-pull-16{position:relative;right:66.66667%}.el-col-sm-push-16{position:relative;left:66.66667%}.el-col-sm-17{width:70.83333%}.el-col-sm-offset-17{margin-left:70.83333%}.el-col-sm-pull-17{position:relative;right:70.83333%}.el-col-sm-push-17{position:relative;left:70.83333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.16667%}.el-col-sm-offset-19{margin-left:79.16667%}.el-col-sm-pull-19{position:relative;right:79.16667%}.el-col-sm-push-19{position:relative;left:79.16667%}.el-col-sm-20{width:83.33333%}.el-col-sm-offset-20{margin-left:83.33333%}.el-col-sm-pull-20{position:relative;right:83.33333%}.el-col-sm-push-20{position:relative;left:83.33333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.66667%}.el-col-sm-offset-22{margin-left:91.66667%}.el-col-sm-pull-22{position:relative;right:91.66667%}.el-col-sm-push-22{position:relative;left:91.66667%}.el-col-sm-23{width:95.83333%}.el-col-sm-offset-23{margin-left:95.83333%}.el-col-sm-pull-23{position:relative;right:95.83333%}.el-col-sm-push-23{position:relative;left:95.83333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0%}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.16667%}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{width:8.33333%}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.66667%}.el-col-md-offset-4{margin-left:16.66667%}.el-col-md-pull-4{position:relative;right:16.66667%}.el-col-md-push-4{position:relative;left:16.66667%}.el-col-md-5{width:20.83333%}.el-col-md-offset-5{margin-left:20.83333%}.el-col-md-pull-5{position:relative;right:20.83333%}.el-col-md-push-5{position:relative;left:20.83333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.16667%}.el-col-md-offset-7{margin-left:29.16667%}.el-col-md-pull-7{position:relative;right:29.16667%}.el-col-md-push-7{position:relative;left:29.16667%}.el-col-md-8{width:33.33333%}.el-col-md-offset-8{margin-left:33.33333%}.el-col-md-pull-8{position:relative;right:33.33333%}.el-col-md-push-8{position:relative;left:33.33333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.66667%}.el-col-md-offset-10{margin-left:41.66667%}.el-col-md-pull-10{position:relative;right:41.66667%}.el-col-md-push-10{position:relative;left:41.66667%}.el-col-md-11{width:45.83333%}.el-col-md-offset-11{margin-left:45.83333%}.el-col-md-pull-11{position:relative;right:45.83333%}.el-col-md-push-11{position:relative;left:45.83333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.16667%}.el-col-md-offset-13{margin-left:54.16667%}.el-col-md-pull-13{position:relative;right:54.16667%}.el-col-md-push-13{position:relative;left:54.16667%}.el-col-md-14{width:58.33333%}.el-col-md-offset-14{margin-left:58.33333%}.el-col-md-pull-14{position:relative;right:58.33333%}.el-col-md-push-14{position:relative;left:58.33333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.66667%}.el-col-md-offset-16{margin-left:66.66667%}.el-col-md-pull-16{position:relative;right:66.66667%}.el-col-md-push-16{position:relative;left:66.66667%}.el-col-md-17{width:70.83333%}.el-col-md-offset-17{margin-left:70.83333%}.el-col-md-pull-17{position:relative;right:70.83333%}.el-col-md-push-17{position:relative;left:70.83333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.16667%}.el-col-md-offset-19{margin-left:79.16667%}.el-col-md-pull-19{position:relative;right:79.16667%}.el-col-md-push-19{position:relative;left:79.16667%}.el-col-md-20{width:83.33333%}.el-col-md-offset-20{margin-left:83.33333%}.el-col-md-pull-20{position:relative;right:83.33333%}.el-col-md-push-20{position:relative;left:83.33333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.66667%}.el-col-md-offset-22{margin-left:91.66667%}.el-col-md-pull-22{position:relative;right:91.66667%}.el-col-md-push-22{position:relative;left:91.66667%}.el-col-md-23{width:95.83333%}.el-col-md-offset-23{margin-left:95.83333%}.el-col-md-pull-23{position:relative;right:95.83333%}.el-col-md-push-23{position:relative;left:95.83333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0%}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.16667%}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{width:8.33333%}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.66667%}.el-col-lg-offset-4{margin-left:16.66667%}.el-col-lg-pull-4{position:relative;right:16.66667%}.el-col-lg-push-4{position:relative;left:16.66667%}.el-col-lg-5{width:20.83333%}.el-col-lg-offset-5{margin-left:20.83333%}.el-col-lg-pull-5{position:relative;right:20.83333%}.el-col-lg-push-5{position:relative;left:20.83333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.16667%}.el-col-lg-offset-7{margin-left:29.16667%}.el-col-lg-pull-7{position:relative;right:29.16667%}.el-col-lg-push-7{position:relative;left:29.16667%}.el-col-lg-8{width:33.33333%}.el-col-lg-offset-8{margin-left:33.33333%}.el-col-lg-pull-8{position:relative;right:33.33333%}.el-col-lg-push-8{position:relative;left:33.33333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.66667%}.el-col-lg-offset-10{margin-left:41.66667%}.el-col-lg-pull-10{position:relative;right:41.66667%}.el-col-lg-push-10{position:relative;left:41.66667%}.el-col-lg-11{width:45.83333%}.el-col-lg-offset-11{margin-left:45.83333%}.el-col-lg-pull-11{position:relative;right:45.83333%}.el-col-lg-push-11{position:relative;left:45.83333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.16667%}.el-col-lg-offset-13{margin-left:54.16667%}.el-col-lg-pull-13{position:relative;right:54.16667%}.el-col-lg-push-13{position:relative;left:54.16667%}.el-col-lg-14{width:58.33333%}.el-col-lg-offset-14{margin-left:58.33333%}.el-col-lg-pull-14{position:relative;right:58.33333%}.el-col-lg-push-14{position:relative;left:58.33333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.66667%}.el-col-lg-offset-16{margin-left:66.66667%}.el-col-lg-pull-16{position:relative;right:66.66667%}.el-col-lg-push-16{position:relative;left:66.66667%}.el-col-lg-17{width:70.83333%}.el-col-lg-offset-17{margin-left:70.83333%}.el-col-lg-pull-17{position:relative;right:70.83333%}.el-col-lg-push-17{position:relative;left:70.83333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.16667%}.el-col-lg-offset-19{margin-left:79.16667%}.el-col-lg-pull-19{position:relative;right:79.16667%}.el-col-lg-push-19{position:relative;left:79.16667%}.el-col-lg-20{width:83.33333%}.el-col-lg-offset-20{margin-left:83.33333%}.el-col-lg-pull-20{position:relative;right:83.33333%}.el-col-lg-push-20{position:relative;left:83.33333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.66667%}.el-col-lg-offset-22{margin-left:91.66667%}.el-col-lg-pull-22{position:relative;right:91.66667%}.el-col-lg-push-22{position:relative;left:91.66667%}.el-col-lg-23{width:95.83333%}.el-col-lg-offset-23{margin-left:95.83333%}.el-col-lg-pull-23{position:relative;right:95.83333%}.el-col-lg-push-23{position:relative;left:95.83333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0%}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.16667%}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{width:8.33333%}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.66667%}.el-col-xl-offset-4{margin-left:16.66667%}.el-col-xl-pull-4{position:relative;right:16.66667%}.el-col-xl-push-4{position:relative;left:16.66667%}.el-col-xl-5{width:20.83333%}.el-col-xl-offset-5{margin-left:20.83333%}.el-col-xl-pull-5{position:relative;right:20.83333%}.el-col-xl-push-5{position:relative;left:20.83333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.16667%}.el-col-xl-offset-7{margin-left:29.16667%}.el-col-xl-pull-7{position:relative;right:29.16667%}.el-col-xl-push-7{position:relative;left:29.16667%}.el-col-xl-8{width:33.33333%}.el-col-xl-offset-8{margin-left:33.33333%}.el-col-xl-pull-8{position:relative;right:33.33333%}.el-col-xl-push-8{position:relative;left:33.33333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.66667%}.el-col-xl-offset-10{margin-left:41.66667%}.el-col-xl-pull-10{position:relative;right:41.66667%}.el-col-xl-push-10{position:relative;left:41.66667%}.el-col-xl-11{width:45.83333%}.el-col-xl-offset-11{margin-left:45.83333%}.el-col-xl-pull-11{position:relative;right:45.83333%}.el-col-xl-push-11{position:relative;left:45.83333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.16667%}.el-col-xl-offset-13{margin-left:54.16667%}.el-col-xl-pull-13{position:relative;right:54.16667%}.el-col-xl-push-13{position:relative;left:54.16667%}.el-col-xl-14{width:58.33333%}.el-col-xl-offset-14{margin-left:58.33333%}.el-col-xl-pull-14{position:relative;right:58.33333%}.el-col-xl-push-14{position:relative;left:58.33333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.66667%}.el-col-xl-offset-16{margin-left:66.66667%}.el-col-xl-pull-16{position:relative;right:66.66667%}.el-col-xl-push-16{position:relative;left:66.66667%}.el-col-xl-17{width:70.83333%}.el-col-xl-offset-17{margin-left:70.83333%}.el-col-xl-pull-17{position:relative;right:70.83333%}.el-col-xl-push-17{position:relative;left:70.83333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.16667%}.el-col-xl-offset-19{margin-left:79.16667%}.el-col-xl-pull-19{position:relative;right:79.16667%}.el-col-xl-push-19{position:relative;left:79.16667%}.el-col-xl-20{width:83.33333%}.el-col-xl-offset-20{margin-left:83.33333%}.el-col-xl-pull-20{position:relative;right:83.33333%}.el-col-xl-push-20{position:relative;left:83.33333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.66667%}.el-col-xl-offset-22{margin-left:91.66667%}.el-col-xl-pull-22{position:relative;right:91.66667%}.el-col-xl-push-22{position:relative;left:91.66667%}.el-col-xl-23{width:95.83333%}.el-col-xl-offset-23{margin-left:95.83333%}.el-col-xl-pull-23{position:relative;right:95.83333%}.el-col-xl-push-23{position:relative;left:95.83333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}@-webkit-keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}.el-upload{display:inline-block;text-align:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:#606266;margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0;filter:alpha(opacity=0)}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;box-sizing:border-box;width:148px;height:148px;line-height:146px;vertical-align:top}.el-upload--picture-card i{font-size:28px;color:#8c939d}.el-upload--picture-card:hover,.el-upload:focus{border-color:#409EFF;color:#409EFF}.el-upload:focus .el-upload-dragger{border-color:#409EFF}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;box-sizing:border-box;width:360px;height:180px;text-align:center;position:relative;overflow:hidden}.el-upload-dragger .el-icon-upload{font-size:67px;color:#C0C4CC;margin:40px 0 16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #DCDFE6;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#606266;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#409EFF;font-style:normal}.el-upload-dragger:hover{border-color:#409EFF}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #409EFF}.el-upload-list{margin:0;padding:0;list-style:none}.el-upload-list__item{-webkit-transition:all .5s cubic-bezier(.55,0,.1,1);transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:#606266;line-height:1.8;margin-top:5px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#67C23A}.el-upload-list__item .el-icon-close{display:none;position:absolute;top:5px;right:5px;cursor:pointer;opacity:.75;color:#606266}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{display:none;position:absolute;top:5px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:#409EFF}.el-upload-list__item:hover{background-color:#F5F7FA}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#409EFF;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#606266;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;-webkit-transition:color .3s;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{height:100%;margin-right:7px;color:#909399;line-height:inherit}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:#606266;display:none}.el-upload-list__item-delete:hover{color:#409EFF}.el-upload-list--picture-card{margin:0;display:inline;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;margin:0 8px 8px 0;display:inline-block}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#FFF}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;text-align:center;color:#fff;opacity:0;font-size:20px;background-color:rgba(0,0,0,.5);-webkit-transition:opacity .3s;transition:opacity .3s}.el-upload-list--picture-card .el-upload-list__item-actions::after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;margin-top:10px;padding:10px 10px 10px 90px;height:92px}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#FFF}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:0 0;-webkit-box-shadow:none;box-shadow:none;top:-2px;right:-12px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{vertical-align:middle;display:inline-block;width:70px;height:70px;float:left;position:relative;z-index:1;margin-left:-80px;background-color:#FFF}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;line-height:1;position:absolute;left:9px;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 1px 1px #ccc;box-shadow:0 1px 1px #ccc}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover::after{display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-cover__label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.72);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#FFF;font-size:14px;cursor:pointer;vertical-align:middle;-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);margin-top:60px}.el-upload-cover__interact .btn span{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{-webkit-transform:translateY(-13px);transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#FFF;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#FFF;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:#303133}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1}.el-progress__text{font-size:14px;color:#606266;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;-webkit-transform:translate(0,-50%);transform:translate(0,-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress-bar,.el-progress-bar__inner::after,.el-progress-bar__innerText,.el-spinner{display:inline-block;vertical-align:middle}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#67C23A}.el-progress.is-success .el-progress__text{color:#67C23A}.el-progress.is-warning .el-progress-bar__inner{background-color:#E6A23C}.el-progress.is-warning .el-progress__text{color:#E6A23C}.el-progress.is-exception .el-progress-bar__inner{background-color:#F56C6C}.el-progress.is-exception .el-progress__text{color:#F56C6C}.el-progress-bar{padding-right:50px;width:100%;margin-right:-55px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#EBEEF5;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#409EFF;text-align:right;border-radius:100px;line-height:1;white-space:nowrap;-webkit-transition:width .6s ease;transition:width .6s ease}.el-card,.el-message{border-radius:4px;overflow:hidden}.el-progress-bar__inner::after{height:100%}.el-progress-bar__innerText{color:#FFF;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{min-width:380px;-webkit-box-sizing:border-box;box-sizing:border-box;border-width:1px;border-style:solid;border-color:#EBEEF5;position:fixed;left:50%;top:20px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:#edf2fc;-webkit-transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,transform .4s,top .4s;transition:opacity .3s,transform .4s,top .4s,-webkit-transform .4s;padding:15px 15px 15px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-message.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67C23A}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#E6A23C}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#F56C6C}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__closeBtn{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;color:#C0C4CC;font-size:16px}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67C23A}.el-message .el-icon-error{color:#F56C6C}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#E6A23C}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#F56C6C;border-radius:10px;color:#FFF;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #FFF}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;-webkit-transform:translateY(-50%) translateX(100%);transform:translateY(-50%) translateX(100%)}.el-rate__icon,.el-rate__item{position:relative;display:inline-block}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:#409EFF}.el-badge__content--success{background-color:#67C23A}.el-badge__content--warning{background-color:#E6A23C}.el-badge__content--info{background-color:#909399}.el-badge__content--danger{background-color:#F56C6C}.el-card{border:1px solid #EBEEF5;background-color:#FFF;color:#303133;-webkit-transition:.3s;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #EBEEF5;-webkit-box-sizing:border-box;box-sizing:border-box}.el-card__body{padding:20px}.el-rate{height:20px;line-height:1}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon{font-size:18px;margin-right:6px;color:#C0C4CC;-webkit-transition:.3s;transition:.3s}.el-rate__decimal,.el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate__icon.hover{-webkit-transform:scale(1.15);transform:scale(1.15)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-step.is-vertical,.el-steps{display:-webkit-box;display:-ms-flexbox}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:#F5F7FA}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column}.el-step{position:relative;-ms-flex-negative:1;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{-ms-flex-preferred-size:auto!important;flex-basis:auto!important;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:#303133;border-color:#303133}.el-step__head.is-wait{color:#C0C4CC;border-color:#C0C4CC}.el-step__head.is-success{color:#67C23A;border-color:#67C23A}.el-step__head.is-error{color:#F56C6C;border-color:#F56C6C}.el-step__head.is-finish{color:#409EFF;border-color:#409EFF}.el-step__icon{position:relative;z-index:1;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:24px;height:24px;font-size:14px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#FFF;-webkit-transition:.15s ease-out;transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{-webkit-transform:translateY(1px);transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:#C0C4CC}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;-webkit-transition:.15s ease-out;transition:.15s ease-out;-webkit-box-sizing:border-box;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:#303133}.el-step__title.is-wait{color:#C0C4CC}.el-step__title.is-success{color:#67C23A}.el-step__title.is-error{color:#F56C6C}.el-step__title.is-finish{color:#409EFF}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#C0C4CC}.el-step__description.is-success{color:#67C23A}.el-step__description.is-error{color:#F56C6C}.el-step__description.is-finish{color:#409EFF}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{-webkit-transform:scale(.8) translateY(1px);transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-step.is-simple .el-step__arrow::after,.el-step.is-simple .el-step__arrow::before{content:'';display:inline-block;position:absolute;height:15px;width:1px;background:#C0C4CC}.el-step.is-simple .el-step__arrow::before{-webkit-transform:rotate(-45deg) translateY(-4px);transform:rotate(-45deg) translateY(-4px);-webkit-transform-origin:0 0;transform-origin:0 0}.el-step.is-simple .el-step__arrow::after{-webkit-transform:rotate(45deg) translateY(4px);transform:rotate(45deg) translateY(4px);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:36px;width:36px;cursor:pointer;-webkit-transition:.3s;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#FFF;position:absolute;top:50%;z-index:10;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:2}.el-carousel__indicators--horizontal{bottom:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;-webkit-transform:none;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#C0C4CC;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;-webkit-transform:none;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:12px 4px}.el-carousel__indicator--vertical{padding:4px 12px}.el-carousel__indicator--vertical .el-carousel__button{width:2px;height:15px}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#FFF;border:none;outline:0;padding:0;margin:0;cursor:pointer;-webkit-transition:.3s;transition:.3s}.el-carousel__item,.el-carousel__mask{height:100%;top:0;left:0;position:absolute}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{-webkit-transform:translateY(-50%) translateX(-10px);transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{-webkit-transform:translateY(-50%) translateX(10px);transform:translateY(-50%) translateX(10px);opacity:0}.el-carousel__item{width:100%;display:inline-block;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item.is-animating{-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card{width:50%;-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{width:100%;background-color:#FFF;opacity:.24;-webkit-transition:.2s;transition:.2s}.el-fade-in-enter,.el-fade-in-leave-active,.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active,.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.fade-in-linear-enter-active,.fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-enter-active,.el-fade-in-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1,1);transform:scale(1,1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:top left;transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45,.45);transform:scale(.45,.45)}.collapse-transition{-webkit-transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out;transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.horizontal-collapse-transition{-webkit-transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out;transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #EBEEF5;border-bottom:1px solid #EBEEF5}.el-collapse-item.is-disabled .el-collapse-item__header{color:#bbb;cursor:not-allowed}.el-collapse-item__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:48px;line-height:48px;background-color:#FFF;color:#303133;cursor:pointer;border-bottom:1px solid #EBEEF5;font-size:13px;font-weight:500;-webkit-transition:border-bottom-color .3s;transition:border-bottom-color .3s;outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-weight:300}.el-collapse-item__arrow.is-active{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#409EFF}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:#FFF;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #EBEEF5}.el-cascader__tags,.el-tag{-webkit-box-sizing:border-box}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.769230769230769}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper .popper__arrow,.el-popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03));filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03))}.el-popper .popper__arrow::after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#EBEEF5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#FFF;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#EBEEF5}.el-popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#FFF}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#EBEEF5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#FFF;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#EBEEF5}.el-popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#FFF}.el-tag{background-color:#ecf5ff;border-color:#d9ecff;display:inline-block;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#409EFF;border-width:1px;border-style:solid;border-radius:4px;box-sizing:border-box;white-space:nowrap}.el-tag.is-hit{border-color:#409EFF}.el-tag .el-tag__close{color:#409eff}.el-tag .el-tag__close:hover{color:#FFF;background-color:#409eff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#FFF;background-color:#909399}.el-tag.el-tag--success{background-color:#f0f9eb;border-color:#e1f3d8;color:#67c23a}.el-tag.el-tag--success.is-hit{border-color:#67C23A}.el-tag.el-tag--success .el-tag__close{color:#67c23a}.el-tag.el-tag--success .el-tag__close:hover{color:#FFF;background-color:#67c23a}.el-tag.el-tag--warning{background-color:#fdf6ec;border-color:#faecd8;color:#e6a23c}.el-tag.el-tag--warning.is-hit{border-color:#E6A23C}.el-tag.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag.el-tag--warning .el-tag__close:hover{color:#FFF;background-color:#e6a23c}.el-tag.el-tag--danger{background-color:#fef0f0;border-color:#fde2e2;color:#f56c6c}.el-tag.el-tag--danger.is-hit{border-color:#F56C6C}.el-tag.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag.el-tag--danger .el-tag__close:hover{color:#FFF;background-color:#f56c6c}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close::before{display:block}.el-tag--dark{background-color:#409eff;border-color:#409eff;color:#fff}.el-tag--dark.is-hit{border-color:#409EFF}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#FFF;background-color:#66b1ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#FFF;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#67c23a;border-color:#67c23a;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#67C23A}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#FFF;background-color:#85ce61}.el-tag--dark.el-tag--warning{background-color:#e6a23c;border-color:#e6a23c;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#E6A23C}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#FFF;background-color:#ebb563}.el-tag--dark.el-tag--danger{background-color:#f56c6c;border-color:#f56c6c;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#F56C6C}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#FFF;background-color:#f78989}.el-tag--plain{background-color:#fff;border-color:#b3d8ff;color:#409eff}.el-tag--plain.is-hit{border-color:#409EFF}.el-tag--plain .el-tag__close{color:#409eff}.el-tag--plain .el-tag__close:hover{color:#FFF;background-color:#409eff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#FFF;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#c2e7b0;color:#67c23a}.el-tag--plain.el-tag--success.is-hit{border-color:#67C23A}.el-tag--plain.el-tag--success .el-tag__close{color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#FFF;background-color:#67c23a}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#f5dab1;color:#e6a23c}.el-tag--plain.el-tag--warning.is-hit{border-color:#E6A23C}.el-tag--plain.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#FFF;background-color:#e6a23c}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#fbc4c4;color:#f56c6c}.el-tag--plain.el-tag--danger.is-hit{border-color:#F56C6C}.el-tag--plain.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#FFF;background-color:#f56c6c}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;-webkit-transform:scale(.7);transform:scale(.7)}.el-cascader{display:inline-block;position:relative;font-size:14px;line-height:40px}.el-cascader:not(.is-disabled):hover .el-input__inner{cursor:pointer;border-color:#C0C4CC}.el-cascader .el-input .el-input__inner:focus,.el-cascader .el-input.is-focus .el-input__inner{border-color:#409EFF}.el-cascader .el-input{cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-icon-arrow-down{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:14px}.el-cascader .el-input .el-icon-arrow-down.is-reverse{-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg)}.el-cascader .el-input .el-icon-circle-close:hover{color:#909399}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{z-index:2;color:#C0C4CC}.el-cascader__dropdown{margin:5px 0;font-size:14px;background:#FFF;border:1px solid #E4E7ED;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:#f0f2f5}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{-webkit-box-flex:0;-ms-flex:none;flex:none;background-color:#C0C4CC;color:#FFF}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:#909399}.el-cascader__suggestion-panel{border-radius:4px}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:14px;color:#606266;text-align:center}.el-cascader__suggestion-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:#F5F7FA}.el-cascader__suggestion-item.is-checked{color:#409EFF;font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:#C0C4CC}.el-cascader__search-input{-webkit-box-flex:1;-ms-flex:1;flex:1;height:24px;min-width:60px;margin:2px 0 2px 15px;padding:0;color:#606266;border:none;outline:0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-cascader__search-input::-webkit-input-placeholder{color:#C0C4CC}.el-cascader__search-input:-ms-input-placeholder{color:#C0C4CC}.el-cascader__search-input::-ms-input-placeholder{color:#C0C4CC}.el-cascader__search-input::placeholder{color:#C0C4CC}.el-color-predefine{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{-webkit-box-shadow:0 0 3px 2px #409EFF;box-shadow:0 0 3px 2px #409EFF}.el-color-predefine__color-selector>div{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px}.el-color-hue-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:-webkit-gradient(linear,left top,left bottom,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:-webkit-gradient(linear,left top,right top,from(#fff),to(rgba(255,255,255,0)));background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.el-color-svpanel__black{background:-webkit-gradient(linear,left bottom,left top,from(#000),to(rgba(0,0,0,0)));background:linear-gradient(to top,#000,rgba(0,0,0,0))}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;-webkit-box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;-webkit-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,0)),to(white));background:linear-gradient(to right,rgba(255,255,255,0) 0,#fff 100%);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0)),to(white));background:linear-gradient(to bottom,rgba(255,255,255,0) 0,#fff 100%)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper::after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#409EFF;border-color:#409EFF}.el-color-dropdown__link-btn{cursor:pointer;color:#409EFF;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:tint(#409EFF,20%)}.el-color-picker{display:inline-block;position:relative;line-height:normal;height:40px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker__mask{height:38px;width:38px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:rgba(255,255,255,.7)}.el-color-picker__trigger{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px;width:40px;padding:4px;border:1px solid #e6e6e6;border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty,.el-color-picker__icon{top:50%;left:50%;font-size:12px;position:absolute}.el-color-picker__empty{color:#999;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.el-color-picker__icon{display:inline-block;width:100%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);color:#FFF;text-align:center}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;-webkit-box-sizing:content-box;box-sizing:content-box;background-color:#FFF;border:1px solid #EBEEF5;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:inherit;color:#606266;background-color:#FFF;background-image:none;border:1px solid #DCDFE6;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:#C0C4CC}.el-textarea__inner:-ms-input-placeholder{color:#C0C4CC}.el-textarea__inner::-ms-input-placeholder{color:#C0C4CC}.el-textarea__inner::placeholder{color:#C0C4CC}.el-textarea__inner:hover{border-color:#C0C4CC}.el-textarea__inner:focus{outline:0;border-color:#409EFF}.el-textarea .el-input__count{color:#909399;background:#FFF;position:absolute;font-size:12px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#F5F7FA;border-color:#E4E7ED;color:#C0C4CC;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#C0C4CC}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#C0C4CC}.el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#C0C4CC}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#C0C4CC}.el-textarea.is-exceed .el-textarea__inner{border-color:#F56C6C}.el-textarea.is-exceed .el-input__count{color:#F56C6C}.el-input{position:relative;font-size:14px;display:inline-block;width:100%}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner{background:#fff}.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#C0C4CC;font-size:14px;cursor:pointer;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#909399;font-size:12px}.el-input .el-input__count .el-input__count-inner{background:#FFF;line-height:initial;display:inline-block;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#FFF;background-image:none;border-radius:4px;border:1px solid #DCDFE6;-webkit-box-sizing:border-box;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__prefix,.el-input__suffix{position:absolute;top:0;-webkit-transition:all .3s;height:100%;color:#C0C4CC;text-align:center}.el-input__inner::-ms-reveal{display:none}.el-input__inner::-webkit-input-placeholder{color:#C0C4CC}.el-input__inner:-ms-input-placeholder{color:#C0C4CC}.el-input__inner::-ms-input-placeholder{color:#C0C4CC}.el-input__inner::placeholder{color:#C0C4CC}.el-input__inner:hover{border-color:#C0C4CC}.el-input.is-active .el-input__inner,.el-input__inner:focus{border-color:#409EFF;outline:0}.el-input__suffix{right:5px;transition:all .3s}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{left:5px;transition:all .3s}.el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .3s;line-height:40px}.el-input__icon:after{content:'';height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-disabled .el-input__inner{background-color:#F5F7FA;border-color:#E4E7ED;color:#C0C4CC;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__inner::placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-link,.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-input.is-exceed .el-input__inner{border-color:#F56C6C}.el-input.is-exceed .el-input__suffix .el-input__count{color:#F56C6C}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#F5F7FA;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #DCDFE6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner,.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-transfer{font-size:14px}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{display:block;margin:0 auto;padding:10px;border-radius:50%;color:#FFF;background-color:#409EFF;font-size:0}.el-transfer-panel__item+.el-transfer-panel__item,.el-transfer__button [class*=el-icon-]+span{margin-left:0}.el-transfer__button.is-with-texts{border-radius:4px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{border:1px solid #DCDFE6;background-color:#F5F7FA;color:#C0C4CC}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer-panel{border:1px solid #EBEEF5;border-radius:4px;overflow:hidden;background:#FFF;display:inline-block;vertical-align:middle;width:200px;max-height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:246px;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{height:30px;line-height:30px;padding-left:15px;display:block!important}.el-transfer-panel__item.el-checkbox{color:#606266}.el-transfer-panel__item:hover{color:#409EFF}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;padding-left:24px;line-height:30px}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;width:auto}.el-transfer-panel__filter .el-input__inner{height:32px;width:100%;font-size:12px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:16px;padding-right:10px;padding-left:30px}.el-transfer-panel__filter .el-input__icon{margin-left:5px}.el-transfer-panel .el-transfer-panel__header{height:40px;line-height:40px;background:#F5F7FA;margin:0;padding-left:15px;border-bottom:1px solid #EBEEF5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#000}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:#303133;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;color:#909399;font-size:12px;font-weight:400}.el-divider__text,.el-link{font-weight:500;font-size:14px}.el-transfer-panel .el-transfer-panel__footer{height:40px;background:#FFF;margin:0;padding:0;border-top:1px solid #EBEEF5;position:absolute;bottom:0;left:0;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer::after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-container,.el-timeline-item__node{display:-webkit-box;display:-ms-flexbox}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:#606266}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:30px;line-height:30px;padding:6px 15px 0;color:#909399;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner::after{height:6px;width:3px;left:4px}.el-container{display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:0}.el-container.is-vertical,.el-drawer{-webkit-box-orient:vertical;-webkit-box-direction:normal}.el-aside,.el-header{-webkit-box-sizing:border-box}.el-container.is-vertical{-ms-flex-direction:column;flex-direction:column}.el-header{padding:0 20px;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-aside{overflow:auto;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-footer,.el-main{-webkit-box-sizing:border-box}.el-main{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;overflow:auto;box-sizing:border-box;padding:20px}.el-footer{padding:0 20px;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-timeline{margin:0;font-size:14px;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid #E4E7ED}.el-timeline-item__icon{color:#FFF;font-size:13px}.el-timeline-item__node{position:absolute;background-color:#E4E7ED;border-radius:50%;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-image__error,.el-timeline-item__dot{display:-webkit-box;display:-ms-flexbox}.el-timeline-item__node--normal{left:-1px;width:12px;height:12px}.el-timeline-item__node--large{left:-2px;width:14px;height:14px}.el-timeline-item__node--primary{background-color:#409EFF}.el-timeline-item__node--success{background-color:#67C23A}.el-timeline-item__node--warning{background-color:#E6A23C}.el-timeline-item__node--danger{background-color:#F56C6C}.el-timeline-item__node--info{background-color:#909399}.el-timeline-item__dot{position:absolute;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-timeline-item__content{color:#303133}.el-timeline-item__timestamp{color:#909399;line-height:1;font-size:13px}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-link{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;padding:0}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid #409EFF}.el-link.el-link--default:after,.el-link.el-link--primary.is-underline:hover:after,.el-link.el-link--primary:after{border-color:#409EFF}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default{color:#606266}.el-link.el-link--default:hover{color:#409EFF}.el-link.el-link--default.is-disabled{color:#C0C4CC}.el-link.el-link--primary{color:#409EFF}.el-link.el-link--primary:hover{color:#66b1ff}.el-link.el-link--primary.is-disabled{color:#a0cfff}.el-link.el-link--danger.is-underline:hover:after,.el-link.el-link--danger:after{border-color:#F56C6C}.el-link.el-link--danger{color:#F56C6C}.el-link.el-link--danger:hover{color:#f78989}.el-link.el-link--danger.is-disabled{color:#fab6b6}.el-link.el-link--success.is-underline:hover:after,.el-link.el-link--success:after{border-color:#67C23A}.el-link.el-link--success{color:#67C23A}.el-link.el-link--success:hover{color:#85ce61}.el-link.el-link--success.is-disabled{color:#b3e19d}.el-link.el-link--warning.is-underline:hover:after,.el-link.el-link--warning:after{border-color:#E6A23C}.el-link.el-link--warning{color:#E6A23C}.el-link.el-link--warning:hover{color:#ebb563}.el-link.el-link--warning.is-disabled{color:#f3d19e}.el-link.el-link--info.is-underline:hover:after,.el-link.el-link--info:after{border-color:#909399}.el-link.el-link--info{color:#909399}.el-link.el-link--info:hover{color:#a6a9ad}.el-link.el-link--info.is-disabled{color:#c8c9cc}.el-divider{background-color:#DCDFE6;position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative}.el-divider__text{position:absolute;background-color:#FFF;padding:0 20px;color:#303133}.el-image__error,.el-image__placeholder{background:#F5F7FA}.el-divider__text.is-left{left:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-divider__text.is-center{left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-image__error,.el-image__inner,.el-image__placeholder{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top}.el-image__inner--center{position:relative;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);display:block}.el-image__error{display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;color:#C0C4CC;vertical-align:middle}.el-image__preview{cursor:pointer}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;user-select:none}.el-button,.el-checkbox{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:24px;color:#fff;background-color:#606266}.el-image-viewer__canvas{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-image-viewer__actions{left:50%;bottom:30px;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:282px;height:44px;padding:0 23px;background-color:#606266;border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-pack:distribute;justify-content:space-around}.el-image-viewer__next,.el-image-viewer__prev{top:50%;width:44px;height:44px;font-size:24px;color:#fff;background-color:#606266;border-color:#fff}.el-image-viewer__prev{-webkit-transform:translateY(-50%);transform:translateY(-50%);left:40px}.el-image-viewer__next{-webkit-transform:translateY(-50%);transform:translateY(-50%);right:40px;text-indent:2px}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in .3s;animation:viewer-fade-in .3s}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out .3s;animation:viewer-fade-out .3s}@-webkit-keyframes viewer-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes viewer-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes viewer-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#FFF;border:1px solid #DCDFE6;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:.1s;transition:.1s;font-weight:500;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button{margin-left:10px}.el-button:focus,.el-button:hover{color:#409EFF;border-color:#c6e2ff;background-color:#ecf5ff}.el-button:active{color:#3a8ee6;border-color:#3a8ee6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#FFF;border-color:#409EFF;color:#409EFF}.el-button.is-active,.el-button.is-plain:active{color:#3a8ee6;border-color:#3a8ee6}.el-button.is-plain:active{background:#FFF;outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#C0C4CC;cursor:not-allowed;background-image:none;background-color:#FFF;border-color:#EBEEF5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#FFF;border-color:#EBEEF5;color:#C0C4CC}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:'';position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:rgba(255,255,255,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#FFF;background-color:#409EFF;border-color:#409EFF}.el-button--primary:focus,.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff;color:#FFF}.el-button--primary.is-active,.el-button--primary:active{background:#3a8ee6;border-color:#3a8ee6;color:#FFF}.el-button--primary:active{outline:0}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#FFF;background-color:#a0cfff;border-color:#a0cfff}.el-button--primary.is-plain{color:#409EFF;background:#ecf5ff;border-color:#b3d8ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#409EFF;border-color:#409EFF;color:#FFF}.el-button--primary.is-plain:active{background:#3a8ee6;border-color:#3a8ee6;color:#FFF;outline:0}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#8cc5ff;background-color:#ecf5ff;border-color:#d9ecff}.el-button--success{color:#FFF;background-color:#67C23A;border-color:#67C23A}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#FFF}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#FFF}.el-button--success:active{outline:0}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#FFF;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67C23A;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67C23A;border-color:#67C23A;color:#FFF}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#FFF;outline:0}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#FFF;background-color:#E6A23C;border-color:#E6A23C}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#FFF}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#FFF}.el-button--warning:active{outline:0}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#FFF;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#E6A23C;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#E6A23C;border-color:#E6A23C;color:#FFF}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#FFF;outline:0}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#FFF;background-color:#F56C6C;border-color:#F56C6C}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#FFF}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#FFF}.el-button--danger:active{outline:0}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#FFF;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#F56C6C;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#F56C6C;border-color:#F56C6C;color:#FFF}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#FFF;outline:0}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#FFF;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#FFF}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#FFF}.el-button--info:active{outline:0}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#FFF;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#FFF}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#FFF;outline:0}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--text,.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--mini,.el-button--small{font-size:12px;border-radius:3px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small,.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini,.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{color:#409EFF;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#66b1ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#3a8ee6;background-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group::after,.el-button-group::before{display:table;content:""}.el-button-group::after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button.is-disabled{z-index:1}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button.is-active,.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--primary:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--primary:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--success:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--success:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--warning:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--warning:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--info:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--info:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-calendar{background-color:#fff}.el-calendar__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #EBEEF5}.el-backtop,.el-page-header{display:-webkit-box;display:-ms-flexbox}.el-calendar__title{color:#000;-ms-flex-item-align:center;align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:#606266;font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:#C0C4CC}.el-backtop,.el-calendar-table td.is-today{color:#409EFF}.el-calendar-table td{border-bottom:1px solid #EBEEF5;border-right:1px solid #EBEEF5;vertical-align:top;-webkit-transition:background-color .2s ease;transition:background-color .2s ease}.el-calendar-table td.is-selected{background-color:#F2F8FE}.el-calendar-table tr:first-child td{border-top:1px solid #EBEEF5}.el-calendar-table tr td:first-child{border-left:1px solid #EBEEF5}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{-webkit-box-sizing:border-box;box-sizing:border-box;padding:8px;height:85px}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:#F2F8FE}.el-backtop{position:fixed;background-color:#FFF;width:40px;height:40px;border-radius:50%;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:20px;-webkit-box-shadow:0 0 6px rgba(0,0,0,.12);box-shadow:0 0 6px rgba(0,0,0,.12);cursor:pointer;z-index:5}.el-backtop:hover{background-color:#F2F6FC}.el-page-header{display:flex;line-height:24px}.el-page-header__left{display:-webkit-box;display:-ms-flexbox;display:flex;cursor:pointer;margin-right:40px;position:relative}.el-page-header__left::after{content:"";position:absolute;width:1px;height:16px;right:-20px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);background-color:#DCDFE6}.el-checkbox,.el-checkbox__input{display:inline-block;position:relative;white-space:nowrap}.el-page-header__left .el-icon-back{font-size:18px;margin-right:6px;-ms-flex-item-align:center;align-self:center}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:#303133}.el-checkbox{color:#606266;font-weight:500;font-size:14px;cursor:pointer;user-select:none;margin-right:30px}.el-checkbox-button__inner,.el-radio{font-weight:500;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #DCDFE6;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409EFF}.el-checkbox.is-bordered.is-disabled{border-color:#EBEEF5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after{height:6px;width:2px}.el-checkbox__input{cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#DCDFE6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner::after{cursor:not-allowed;border-color:#C0C4CC}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#F2F6FC;border-color:#DCDFE6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after{border-color:#C0C4CC}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#F2F6FC;border-color:#DCDFE6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before{background-color:#C0C4CC;border-color:#C0C4CC}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#409EFF;border-color:#409EFF}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#C0C4CC;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner::after{-webkit-transform:rotate(45deg) scaleY(1);transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#409EFF}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#409EFF}.el-checkbox__input.is-indeterminate .el-checkbox__inner::before{content:'';position:absolute;display:block;background-color:#FFF;height:2px;-webkit-transform:scale(.5);transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner::after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #DCDFE6;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;width:14px;height:14px;background-color:#FFF;z-index:1;-webkit-transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#409EFF}.el-checkbox__inner::after{-webkit-box-sizing:content-box;box-sizing:content-box;content:"";border:1px solid #FFF;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;-webkit-transform:rotate(45deg) scaleY(0);transform:rotate(45deg) scaleY(0);width:3px;-webkit-transition:-webkit-transform .15s ease-in .05s;transition:-webkit-transform .15s ease-in .05s;transition:transform .15s ease-in .05s;transition:transform .15s ease-in .05s,-webkit-transform .15s ease-in .05s;-webkit-transform-origin:center;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox-button,.el-checkbox-button__inner{display:inline-block;position:relative}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button__inner{line-height:1;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#FFF;border:1px solid #DCDFE6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#409EFF}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-radio,.el-radio__input{line-height:1;white-space:nowrap;outline:0}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-radio,.el-radio__inner,.el-radio__input{position:relative;display:inline-block}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#FFF;background-color:#409EFF;border-color:#409EFF;-webkit-box-shadow:-1px 0 0 0 #8cc5ff;box-shadow:-1px 0 0 0 #8cc5ff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#409EFF}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#C0C4CC;cursor:not-allowed;background-image:none;background-color:#FFF;border-color:#EBEEF5;-webkit-box-shadow:none;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#EBEEF5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #DCDFE6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#409EFF}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-radio,.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.el-radio{color:#606266;cursor:pointer;margin-right:30px}.el-cascader-node>.el-radio,.el-radio:last-child{margin-right:0}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #DCDFE6;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px}.el-radio.is-bordered.is-checked{border-color:#409EFF}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#EBEEF5}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#F5F7FA;border-color:#E4E7ED}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--mini.is-bordered .el-radio__label,.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio__input{cursor:pointer;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner::after{cursor:not-allowed;background-color:#F5F7FA}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner::after{background-color:#C0C4CC}.el-radio__input.is-disabled+span.el-radio__label{color:#C0C4CC;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#409EFF;background:#409EFF}.el-radio__input.is-checked .el-radio__inner::after{-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#409EFF}.el-radio__input.is-focus .el-radio__inner{border-color:#409EFF}.el-radio__inner{border:1px solid #DCDFE6;border-radius:100%;width:14px;height:14px;background-color:#FFF;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box}.el-radio__inner:hover{border-color:#409EFF}.el-radio__inner::after{width:4px;height:4px;border-radius:100%;background-color:#FFF;content:"";position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);-webkit-transition:-webkit-transform .15s ease-in;transition:-webkit-transform .15s ease-in;transition:transform .15s ease-in;transition:transform .15s ease-in,-webkit-transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{-webkit-box-shadow:0 0 2px 2px #409EFF;box-shadow:0 0 2px 2px #409EFF}.el-radio__label{font-size:14px;padding-left:10px}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;-webkit-transition:opacity 340ms ease-out;transition:opacity 340ms ease-out}.el-scrollbar__wrap{overflow:scroll;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.el-scrollbar__thumb:hover{background-color:rgba(144,147,153,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity 120ms ease-out;transition:opacity 120ms ease-out}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-cascader-panel{display:-webkit-box;display:-ms-flexbox;display:flex;border-radius:4px;font-size:14px}.el-cascader-panel.is-bordered{border:1px solid #E4E7ED;border-radius:4px}.el-cascader-menu{min-width:180px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#606266;border-right:solid 1px #E4E7ED}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;-webkit-box-sizing:border-box;box-sizing:border-box}.el-avatar,.el-drawer{-webkit-box-sizing:border-box;overflow:hidden}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-align:center;color:#C0C4CC}.el-cascader-node{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.el-cascader-node.is-selectable.in-active-path{color:#606266}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:#409EFF;font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:#F5F7FA}.el-cascader-node.is-disabled{color:#C0C4CC;cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-avatar{display:inline-block;box-sizing:border-box;text-align:center;color:#fff;background:#C0C4CC;width:40px;height:40px;line-height:40px;font-size:14px}.el-avatar>img{display:block;height:100%;vertical-align:middle}.el-drawer,.el-drawer__header{display:-webkit-box;display:-ms-flexbox}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:4px}.el-avatar--icon{font-size:18px}.el-avatar--large{width:40px;height:40px;line-height:40px}.el-avatar--medium{width:36px;height:36px;line-height:36px}.el-avatar--small{width:28px;height:28px;line-height:28px}.el-drawer.btt,.el-drawer.ttb,.el-drawer__container{left:0;right:0;width:100%}.el-drawer.ltr,.el-drawer.rtl,.el-drawer__container{top:0;bottom:0;height:100%}@-webkit-keyframes el-drawer-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes el-drawer-fade-in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes rtl-drawer-in{0%{-webkit-transform:translate(100%,0);transform:translate(100%,0)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@keyframes rtl-drawer-in{0%{-webkit-transform:translate(100%,0);transform:translate(100%,0)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@-webkit-keyframes rtl-drawer-out{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(100%,0);transform:translate(100%,0)}}@keyframes rtl-drawer-out{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(100%,0);transform:translate(100%,0)}}@-webkit-keyframes ltr-drawer-in{0%{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@keyframes ltr-drawer-in{0%{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@-webkit-keyframes ltr-drawer-out{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}}@keyframes ltr-drawer-out{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}}@-webkit-keyframes ttb-drawer-in{0%{-webkit-transform:translate(0,-100%);transform:translate(0,-100%)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@keyframes ttb-drawer-in{0%{-webkit-transform:translate(0,-100%);transform:translate(0,-100%)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@-webkit-keyframes ttb-drawer-out{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(0,-100%);transform:translate(0,-100%)}}@keyframes ttb-drawer-out{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(0,-100%);transform:translate(0,-100%)}}@-webkit-keyframes btt-drawer-in{0%{-webkit-transform:translate(0,100%);transform:translate(0,100%)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@keyframes btt-drawer-in{0%{-webkit-transform:translate(0,100%);transform:translate(0,100%)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@-webkit-keyframes btt-drawer-out{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(0,100%);transform:translate(0,100%)}}@keyframes btt-drawer-out{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(0,100%);transform:translate(0,100%)}}.el-drawer{position:absolute;box-sizing:border-box;background-color:#FFF;display:flex;-ms-flex-direction:column;flex-direction:column;-webkit-box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);outline:0}.el-drawer.rtl{-webkit-animation:rtl-drawer-out .3s;animation:rtl-drawer-out .3s;right:0}.el-drawer__open .el-drawer.rtl{-webkit-animation:rtl-drawer-in .3s 1ms;animation:rtl-drawer-in .3s 1ms}.el-drawer.ltr{-webkit-animation:ltr-drawer-out .3s;animation:ltr-drawer-out .3s;left:0}.el-drawer__open .el-drawer.ltr{-webkit-animation:ltr-drawer-in .3s 1ms;animation:ltr-drawer-in .3s 1ms}.el-drawer.ttb{-webkit-animation:ttb-drawer-out .3s;animation:ttb-drawer-out .3s;top:0}.el-drawer__open .el-drawer.ttb{-webkit-animation:ttb-drawer-in .3s 1ms;animation:ttb-drawer-in .3s 1ms}.el-drawer.btt{-webkit-animation:btt-drawer-out .3s;animation:btt-drawer-out .3s;bottom:0}.el-drawer__open .el-drawer.btt{-webkit-animation:btt-drawer-in .3s 1ms;animation:btt-drawer-in .3s 1ms}.el-drawer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0}.el-drawer__header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:20px 20px 0}.el-drawer__header>:first-child{-webkit-box-flex:1;-ms-flex:1;flex:1}.el-drawer__title{margin:0;-webkit-box-flex:1;-ms-flex:1;flex:1;line-height:inherit;font-size:1rem}.el-drawer__close-btn{border:none;cursor:pointer;font-size:20px;color:inherit;background-color:transparent}.el-drawer__body{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:auto}.el-drawer__body>*{-webkit-box-sizing:border-box;box-sizing:border-box}.el-drawer__container{position:relative}.el-drawer-fade-enter-active{-webkit-animation:el-drawer-fade-in .3s;animation:el-drawer-fade-in .3s}.el-drawer-fade-leave-active{animation:el-drawer-fade-in .3s reverse}.el-popconfirm__main{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin:0} | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/main/resources/static/pages/video/static/element-ui/index.js
0 → 100644
| 1 | +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("vue")):"function"==typeof define&&define.amd?define("ELEMENT",["vue"],t):"object"==typeof exports?exports.ELEMENT=t(require("vue")):e.ELEMENT=t(e.Vue)}("undefined"!=typeof self?self:this,function(e){return function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=49)}([function(t,i){t.exports=e},function(e,t,i){var n=i(4);e.exports=function(e,t,i){return void 0===i?n(e,t,!1):n(e,i,!1!==t)}},function(e,t,i){var n;!function(r){"use strict";var s={},a=/d{1,4}|M{1,4}|yy(?:yy)?|S{1,3}|Do|ZZ|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,o="[^\\s]+",l=/\[([^]*?)\]/gm,u=function(){};function c(e,t){for(var i=[],n=0,r=e.length;n<r;n++)i.push(e[n].substr(0,t));return i}function h(e){return function(t,i,n){var r=n[e].indexOf(i.charAt(0).toUpperCase()+i.substr(1).toLowerCase());~r&&(t.month=r)}}function d(e,t){for(e=String(e),t=t||2;e.length<t;)e="0"+e;return e}var p=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],f=["January","February","March","April","May","June","July","August","September","October","November","December"],m=c(f,3),v=c(p,3);s.i18n={dayNamesShort:v,dayNames:p,monthNamesShort:m,monthNames:f,amPm:["am","pm"],DoFn:function(e){return e+["th","st","nd","rd"][e%10>3?0:(e-e%10!=10)*e%10]}};var g={D:function(e){return e.getDay()},DD:function(e){return d(e.getDay())},Do:function(e,t){return t.DoFn(e.getDate())},d:function(e){return e.getDate()},dd:function(e){return d(e.getDate())},ddd:function(e,t){return t.dayNamesShort[e.getDay()]},dddd:function(e,t){return t.dayNames[e.getDay()]},M:function(e){return e.getMonth()+1},MM:function(e){return d(e.getMonth()+1)},MMM:function(e,t){return t.monthNamesShort[e.getMonth()]},MMMM:function(e,t){return t.monthNames[e.getMonth()]},yy:function(e){return d(String(e.getFullYear()),4).substr(2)},yyyy:function(e){return d(e.getFullYear(),4)},h:function(e){return e.getHours()%12||12},hh:function(e){return d(e.getHours()%12||12)},H:function(e){return e.getHours()},HH:function(e){return d(e.getHours())},m:function(e){return e.getMinutes()},mm:function(e){return d(e.getMinutes())},s:function(e){return e.getSeconds()},ss:function(e){return d(e.getSeconds())},S:function(e){return Math.round(e.getMilliseconds()/100)},SS:function(e){return d(Math.round(e.getMilliseconds()/10),2)},SSS:function(e){return d(e.getMilliseconds(),3)},a:function(e,t){return e.getHours()<12?t.amPm[0]:t.amPm[1]},A:function(e,t){return e.getHours()<12?t.amPm[0].toUpperCase():t.amPm[1].toUpperCase()},ZZ:function(e){var t=e.getTimezoneOffset();return(t>0?"-":"+")+d(100*Math.floor(Math.abs(t)/60)+Math.abs(t)%60,4)}},b={d:["\\d\\d?",function(e,t){e.day=t}],Do:["\\d\\d?"+o,function(e,t){e.day=parseInt(t,10)}],M:["\\d\\d?",function(e,t){e.month=t-1}],yy:["\\d\\d?",function(e,t){var i=+(""+(new Date).getFullYear()).substr(0,2);e.year=""+(t>68?i-1:i)+t}],h:["\\d\\d?",function(e,t){e.hour=t}],m:["\\d\\d?",function(e,t){e.minute=t}],s:["\\d\\d?",function(e,t){e.second=t}],yyyy:["\\d{4}",function(e,t){e.year=t}],S:["\\d",function(e,t){e.millisecond=100*t}],SS:["\\d{2}",function(e,t){e.millisecond=10*t}],SSS:["\\d{3}",function(e,t){e.millisecond=t}],D:["\\d\\d?",u],ddd:[o,u],MMM:[o,h("monthNamesShort")],MMMM:[o,h("monthNames")],a:[o,function(e,t,i){var n=t.toLowerCase();n===i.amPm[0]?e.isPm=!1:n===i.amPm[1]&&(e.isPm=!0)}],ZZ:["[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z",function(e,t){var i,n=(t+"").match(/([+-]|\d\d)/gi);n&&(i=60*n[1]+parseInt(n[2],10),e.timezoneOffset="+"===n[0]?i:-i)}]};b.dd=b.d,b.dddd=b.ddd,b.DD=b.D,b.mm=b.m,b.hh=b.H=b.HH=b.h,b.MM=b.M,b.ss=b.s,b.A=b.a,s.masks={default:"ddd MMM dd yyyy HH:mm:ss",shortDate:"M/D/yy",mediumDate:"MMM d, yyyy",longDate:"MMMM d, yyyy",fullDate:"dddd, MMMM d, yyyy",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"},s.format=function(e,t,i){var n=i||s.i18n;if("number"==typeof e&&(e=new Date(e)),"[object Date]"!==Object.prototype.toString.call(e)||isNaN(e.getTime()))throw new Error("Invalid Date in fecha.format");t=s.masks[t]||t||s.masks.default;var r=[];return(t=(t=t.replace(l,function(e,t){return r.push(t),"@@@"})).replace(a,function(t){return t in g?g[t](e,n):t.slice(1,t.length-1)})).replace(/@@@/g,function(){return r.shift()})},s.parse=function(e,t,i){var n=i||s.i18n;if("string"!=typeof t)throw new Error("Invalid format in fecha.parse");if(t=s.masks[t]||t,e.length>1e3)return null;var r={},o=[],u=[];t=t.replace(l,function(e,t){return u.push(t),"@@@"});var c,h=(c=t,c.replace(/[|\\{()[^$+*?.-]/g,"\\$&")).replace(a,function(e){if(b[e]){var t=b[e];return o.push(t[1]),"("+t[0]+")"}return e});h=h.replace(/@@@/g,function(){return u.shift()});var d=e.match(new RegExp(h,"i"));if(!d)return null;for(var p=1;p<d.length;p++)o[p-1](r,d[p],n);var f,m=new Date;return!0===r.isPm&&null!=r.hour&&12!=+r.hour?r.hour=+r.hour+12:!1===r.isPm&&12==+r.hour&&(r.hour=0),null!=r.timezoneOffset?(r.minute=+(r.minute||0)-+r.timezoneOffset,f=new Date(Date.UTC(r.year||m.getFullYear(),r.month||0,r.day||1,r.hour||0,r.minute||0,r.second||0,r.millisecond||0))):f=new Date(r.year||m.getFullYear(),r.month||0,r.day||1,r.hour||0,r.minute||0,r.second||0,r.millisecond||0),f},e.exports?e.exports=s:void 0===(n=function(){return s}.call(t,i,t,e))||(e.exports=n)}()},function(e,t,i){"use strict";t.__esModule=!0;var n=a(i(65)),r=a(i(77)),s="function"==typeof r.default&&"symbol"==typeof n.default?function(e){return typeof e}:function(e){return e&&"function"==typeof r.default&&e.constructor===r.default&&e!==r.default.prototype?"symbol":typeof e};function a(e){return e&&e.__esModule?e:{default:e}}t.default="function"==typeof r.default&&"symbol"===s(n.default)?function(e){return void 0===e?"undefined":s(e)}:function(e){return e&&"function"==typeof r.default&&e.constructor===r.default&&e!==r.default.prototype?"symbol":void 0===e?"undefined":s(e)}},function(e,t){e.exports=function(e,t,i,n){var r,s=0;return"boolean"!=typeof t&&(n=i,i=t,t=void 0),function(){var a=this,o=Number(new Date)-s,l=arguments;function u(){s=Number(new Date),i.apply(a,l)}n&&!r&&u(),r&&clearTimeout(r),void 0===n&&o>e?u():!0!==t&&(r=setTimeout(n?function(){r=void 0}:u,void 0===n?e-o:e))}}},function(e,t){var i=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=i)},function(e,t){var i=/^(attrs|props|on|nativeOn|class|style|hook)$/;function n(e,t){return function(){e&&e.apply(this,arguments),t&&t.apply(this,arguments)}}e.exports=function(e){return e.reduce(function(e,t){var r,s,a,o,l;for(a in t)if(r=e[a],s=t[a],r&&i.test(a))if("class"===a&&("string"==typeof r&&(l=r,e[a]=r={},r[l]=!0),"string"==typeof s&&(l=s,t[a]=s={},s[l]=!0)),"on"===a||"nativeOn"===a||"hook"===a)for(o in s)r[o]=n(r[o],s[o]);else if(Array.isArray(r))e[a]=r.concat(s);else if(Array.isArray(s))e[a]=[r].concat(s);else for(o in s)r[o]=s[o];else e[a]=t[a];return e},{})}},function(e,t){var i={}.hasOwnProperty;e.exports=function(e,t){return i.call(e,t)}},function(e,t,i){"use strict";t.__esModule=!0;var n,r=i(56),s=(n=r)&&n.__esModule?n:{default:n};t.default=s.default||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}},function(e,t,i){var n=i(10),r=i(18);e.exports=i(11)?function(e,t,i){return n.f(e,t,r(1,i))}:function(e,t,i){return e[t]=i,e}},function(e,t,i){var n=i(17),r=i(36),s=i(24),a=Object.defineProperty;t.f=i(11)?Object.defineProperty:function(e,t,i){if(n(e),t=s(t,!0),n(i),r)try{return a(e,t,i)}catch(e){}if("get"in i||"set"in i)throw TypeError("Accessors not supported!");return"value"in i&&(e[t]=i.value),e}},function(e,t,i){e.exports=!i(16)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t,i){var n=i(39),r=i(25);e.exports=function(e){return n(r(e))}},function(e,t,i){var n=i(28)("wks"),r=i(21),s=i(5).Symbol,a="function"==typeof s;(e.exports=function(e){return n[e]||(n[e]=a&&s[e]||(a?s:r)("Symbol."+e))}).store=n},function(e,t){var i=e.exports={version:"2.6.2"};"number"==typeof __e&&(__e=i)},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,i){var n=i(15);e.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,i){var n=i(38),r=i(29);e.exports=Object.keys||function(e){return n(e,r)}},function(e,t){e.exports=!0},function(e,t){var i=0,n=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++i+n).toString(36))}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,i){var n=i(5),r=i(14),s=i(59),a=i(9),o=i(7),l=function(e,t,i){var u,c,h,d=e&l.F,p=e&l.G,f=e&l.S,m=e&l.P,v=e&l.B,g=e&l.W,b=p?r:r[t]||(r[t]={}),y=b.prototype,w=p?n:f?n[t]:(n[t]||{}).prototype;for(u in p&&(i=t),i)(c=!d&&w&&void 0!==w[u])&&o(b,u)||(h=c?w[u]:i[u],b[u]=p&&"function"!=typeof w[u]?i[u]:v&&c?s(h,n):g&&w[u]==h?function(e){var t=function(t,i,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,i)}return new e(t,i,n)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(h):m&&"function"==typeof h?s(Function.call,h):h,m&&((b.virtual||(b.virtual={}))[u]=h,e&l.R&&y&&!y[u]&&a(y,u,h)))};l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,e.exports=l},function(e,t,i){var n=i(15);e.exports=function(e,t){if(!n(e))return e;var i,r;if(t&&"function"==typeof(i=e.toString)&&!n(r=i.call(e)))return r;if("function"==typeof(i=e.valueOf)&&!n(r=i.call(e)))return r;if(!t&&"function"==typeof(i=e.toString)&&!n(r=i.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){var i=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:i)(e)}},function(e,t,i){var n=i(28)("keys"),r=i(21);e.exports=function(e){return n[e]||(n[e]=r(e))}},function(e,t,i){var n=i(14),r=i(5),s=r["__core-js_shared__"]||(r["__core-js_shared__"]={});(e.exports=function(e,t){return s[e]||(s[e]=void 0!==t?t:{})})("versions",[]).push({version:n.version,mode:i(20)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t){e.exports={}},function(e,t,i){var n=i(10).f,r=i(7),s=i(13)("toStringTag");e.exports=function(e,t,i){e&&!r(e=i?e:e.prototype,s)&&n(e,s,{configurable:!0,value:t})}},function(e,t,i){t.f=i(13)},function(e,t,i){var n=i(5),r=i(14),s=i(20),a=i(33),o=i(10).f;e.exports=function(e){var t=r.Symbol||(r.Symbol=s?{}:n.Symbol||{});"_"==e.charAt(0)||e in t||o(t,e,{value:a.f(e)})}},function(e,t,i){var n=i(4),r=i(1);e.exports={throttle:n,debounce:r}},function(e,t,i){e.exports=!i(11)&&!i(16)(function(){return 7!=Object.defineProperty(i(37)("div"),"a",{get:function(){return 7}}).a})},function(e,t,i){var n=i(15),r=i(5).document,s=n(r)&&n(r.createElement);e.exports=function(e){return s?r.createElement(e):{}}},function(e,t,i){var n=i(7),r=i(12),s=i(62)(!1),a=i(27)("IE_PROTO");e.exports=function(e,t){var i,o=r(e),l=0,u=[];for(i in o)i!=a&&n(o,i)&&u.push(i);for(;t.length>l;)n(o,i=t[l++])&&(~s(u,i)||u.push(i));return u}},function(e,t,i){var n=i(40);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},function(e,t){var i={}.toString;e.exports=function(e){return i.call(e).slice(8,-1)}},function(e,t,i){var n=i(25);e.exports=function(e){return Object(n(e))}},function(e,t,i){"use strict";var n=i(20),r=i(23),s=i(43),a=i(9),o=i(31),l=i(69),u=i(32),c=i(72),h=i(13)("iterator"),d=!([].keys&&"next"in[].keys()),p=function(){return this};e.exports=function(e,t,i,f,m,v,g){l(i,t,f);var b,y,w,_=function(e){if(!d&&e in S)return S[e];switch(e){case"keys":case"values":return function(){return new i(this,e)}}return function(){return new i(this,e)}},x=t+" Iterator",C="values"==m,k=!1,S=e.prototype,D=S[h]||S["@@iterator"]||m&&S[m],$=D||_(m),E=m?C?_("entries"):$:void 0,T="Array"==t&&S.entries||D;if(T&&(w=c(T.call(new e)))!==Object.prototype&&w.next&&(u(w,x,!0),n||"function"==typeof w[h]||a(w,h,p)),C&&D&&"values"!==D.name&&(k=!0,$=function(){return D.call(this)}),n&&!g||!d&&!k&&S[h]||a(S,h,$),o[t]=$,o[x]=p,m)if(b={values:C?$:_("values"),keys:v?$:_("keys"),entries:E},g)for(y in b)y in S||s(S,y,b[y]);else r(r.P+r.F*(d||k),t,b);return b}},function(e,t,i){e.exports=i(9)},function(e,t,i){var n=i(17),r=i(70),s=i(29),a=i(27)("IE_PROTO"),o=function(){},l=function(){var e,t=i(37)("iframe"),n=s.length;for(t.style.display="none",i(71).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),l=e.F;n--;)delete l.prototype[s[n]];return l()};e.exports=Object.create||function(e,t){var i;return null!==e?(o.prototype=n(e),i=new o,o.prototype=null,i[a]=e):i=l(),void 0===t?i:r(i,t)}},function(e,t,i){var n=i(38),r=i(29).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return n(e,r)}},function(e,t,i){"use strict";var n=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===r}(e)}(e)};var r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function s(e,t){var i;return t&&!0===t.clone&&n(e)?o((i=e,Array.isArray(i)?[]:{}),e,t):e}function a(e,t,i){var r=e.slice();return t.forEach(function(t,a){void 0===r[a]?r[a]=s(t,i):n(t)?r[a]=o(e[a],t,i):-1===e.indexOf(t)&&r.push(s(t,i))}),r}function o(e,t,i){var r=Array.isArray(t);return r===Array.isArray(e)?r?((i||{arrayMerge:a}).arrayMerge||a)(e,t,i):function(e,t,i){var r={};return n(e)&&Object.keys(e).forEach(function(t){r[t]=s(e[t],i)}),Object.keys(t).forEach(function(a){n(t[a])&&e[a]?r[a]=o(e[a],t[a],i):r[a]=s(t[a],i)}),r}(e,t,i):s(t,i)}o.all=function(e,t){if(!Array.isArray(e)||e.length<2)throw new Error("first argument should be an array with at least two elements");return e.reduce(function(e,i){return o(e,i,t)})};var l=o;e.exports=l},function(e,t,i){"use strict";(function(e){var i=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var i=-1;return e.some(function(e,n){return e[0]===t&&(i=n,!0)}),i}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var i=e(this.__entries__,t),n=this.__entries__[i];return n&&n[1]},t.prototype.set=function(t,i){var n=e(this.__entries__,t);~n?this.__entries__[n][1]=i:this.__entries__.push([t,i])},t.prototype.delete=function(t){var i=this.__entries__,n=e(i,t);~n&&i.splice(n,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var i=0,n=this.__entries__;i<n.length;i++){var r=n[i];e.call(t,r[1],r[0])}},t}()}(),n="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,r=void 0!==e&&e.Math===Math?e:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),s="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(r):function(e){return setTimeout(function(){return e(Date.now())},1e3/60)},a=2;var o=20,l=["top","right","bottom","left","width","height","size","weight"],u="undefined"!=typeof MutationObserver,c=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var i=!1,n=!1,r=0;function o(){i&&(i=!1,e()),n&&u()}function l(){s(o)}function u(){var e=Date.now();if(i){if(e-r<a)return;n=!0}else i=!0,n=!1,setTimeout(l,t);r=e}return u}(this.refresh.bind(this),o)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,i=t.indexOf(e);~i&&t.splice(i,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter(function(e){return e.gatherActive(),e.hasActive()});return e.forEach(function(e){return e.broadcastActive()}),e.length>0},e.prototype.connect_=function(){n&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),u?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){n&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,i=void 0===t?"":t;l.some(function(e){return!!~i.indexOf(e)})&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),h=function(e,t){for(var i=0,n=Object.keys(t);i<n.length;i++){var r=n[i];Object.defineProperty(e,r,{value:t[r],enumerable:!1,writable:!1,configurable:!0})}return e},d=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||r},p=y(0,0,0,0);function f(e){return parseFloat(e)||0}function m(e){for(var t=[],i=1;i<arguments.length;i++)t[i-1]=arguments[i];return t.reduce(function(t,i){return t+f(e["border-"+i+"-width"])},0)}function v(e){var t=e.clientWidth,i=e.clientHeight;if(!t&&!i)return p;var n=d(e).getComputedStyle(e),r=function(e){for(var t={},i=0,n=["top","right","bottom","left"];i<n.length;i++){var r=n[i],s=e["padding-"+r];t[r]=f(s)}return t}(n),s=r.left+r.right,a=r.top+r.bottom,o=f(n.width),l=f(n.height);if("border-box"===n.boxSizing&&(Math.round(o+s)!==t&&(o-=m(n,"left","right")+s),Math.round(l+a)!==i&&(l-=m(n,"top","bottom")+a)),!function(e){return e===d(e).document.documentElement}(e)){var u=Math.round(o+s)-t,c=Math.round(l+a)-i;1!==Math.abs(u)&&(o-=u),1!==Math.abs(c)&&(l-=c)}return y(r.left,r.top,o,l)}var g="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof d(e).SVGGraphicsElement}:function(e){return e instanceof d(e).SVGElement&&"function"==typeof e.getBBox};function b(e){return n?g(e)?function(e){var t=e.getBBox();return y(0,0,t.width,t.height)}(e):v(e):p}function y(e,t,i,n){return{x:e,y:t,width:i,height:n}}var w=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=y(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=b(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),_=function(){return function(e,t){var i,n,r,s,a,o,l,u=(n=(i=t).x,r=i.y,s=i.width,a=i.height,o="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,l=Object.create(o.prototype),h(l,{x:n,y:r,width:s,height:a,top:r,right:n+s,bottom:a+r,left:n}),l);h(this,{target:e,contentRect:u})}}(),x=function(){function e(e,t,n){if(this.activeObservations_=[],this.observations_=new i,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=n}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof d(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new w(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof d(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach(function(t){t.isActive()&&e.activeObservations_.push(t)})},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map(function(e){return new _(e.target,e.broadcastRect())});this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),C="undefined"!=typeof WeakMap?new WeakMap:new i,k=function(){return function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var i=c.getInstance(),n=new x(t,i,this);C.set(this,n)}}();["observe","unobserve","disconnect"].forEach(function(e){k.prototype[e]=function(){var t;return(t=C.get(this))[e].apply(t,arguments)}});var S=void 0!==r.ResizeObserver?r.ResizeObserver:k;t.a=S}).call(this,i(51))},function(e,t,i){e.exports=i(52)},function(e,t,i){e.exports=i(88)},function(e,t,i){var n,r;void 0===(r="function"==typeof(n=function(){"use strict";var e=window,t={placement:"bottom",gpuAcceleration:!0,offset:0,boundariesElement:"viewport",boundariesPadding:5,preventOverflowOrder:["left","right","top","bottom"],flipBehavior:"flip",arrowElement:"[x-arrow]",arrowOffset:0,modifiers:["shift","offset","preventOverflow","keepTogether","arrow","flip","applyStyle"],modifiersIgnored:[],forceAbsolute:!1};function i(e,i,n){this._reference=e.jquery?e[0]:e,this.state={};var r=null==i,s=i&&"[object Object]"===Object.prototype.toString.call(i);return this._popper=r||s?this.parse(s?i:{}):i.jquery?i[0]:i,this._options=Object.assign({},t,n),this._options.modifiers=this._options.modifiers.map(function(e){if(-1===this._options.modifiersIgnored.indexOf(e))return"applyStyle"===e&&this._popper.setAttribute("x-placement",this._options.placement),this.modifiers[e]||e}.bind(this)),this.state.position=this._getPosition(this._popper,this._reference),c(this._popper,{position:this.state.position,top:0}),this.update(),this._setupEventListeners(),this}function n(t){var i=t.style.display,n=t.style.visibility;t.style.display="block",t.style.visibility="hidden",t.offsetWidth;var r=e.getComputedStyle(t),s=parseFloat(r.marginTop)+parseFloat(r.marginBottom),a=parseFloat(r.marginLeft)+parseFloat(r.marginRight),o={width:t.offsetWidth+a,height:t.offsetHeight+s};return t.style.display=i,t.style.visibility=n,o}function r(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function s(e){var t=Object.assign({},e);return t.right=t.left+t.width,t.bottom=t.top+t.height,t}function a(e,t){var i,n=0;for(i in e){if(e[i]===t)return n;n++}return null}function o(t,i){var n=e.getComputedStyle(t,null);return n[i]}function l(t){var i=t.offsetParent;return i!==e.document.body&&i?i:e.document.documentElement}function u(t){var i=t.parentNode;return i?i===e.document?e.document.body.scrollTop||e.document.body.scrollLeft?e.document.body:e.document.documentElement:-1!==["scroll","auto"].indexOf(o(i,"overflow"))||-1!==["scroll","auto"].indexOf(o(i,"overflow-x"))||-1!==["scroll","auto"].indexOf(o(i,"overflow-y"))?i:u(t.parentNode):t}function c(e,t){Object.keys(t).forEach(function(i){var n,r="";-1!==["width","height","top","right","bottom","left"].indexOf(i)&&""!==(n=t[i])&&!isNaN(parseFloat(n))&&isFinite(n)&&(r="px"),e.style[i]=t[i]+r})}function h(e){var t={width:e.offsetWidth,height:e.offsetHeight,left:e.offsetLeft,top:e.offsetTop};return t.right=t.left+t.width,t.bottom=t.top+t.height,t}function d(e){var t=e.getBoundingClientRect(),i=-1!=navigator.userAgent.indexOf("MSIE"),n=i&&"HTML"===e.tagName?-e.scrollTop:t.top;return{left:t.left,top:n,right:t.right,bottom:t.bottom,width:t.right-t.left,height:t.bottom-n}}function p(t){for(var i=["","ms","webkit","moz","o"],n=0;n<i.length;n++){var r=i[n]?i[n]+t.charAt(0).toUpperCase()+t.slice(1):t;if(void 0!==e.document.body.style[r])return r}return null}return i.prototype.destroy=function(){return this._popper.removeAttribute("x-placement"),this._popper.style.left="",this._popper.style.position="",this._popper.style.top="",this._popper.style[p("transform")]="",this._removeEventListeners(),this._options.removeOnDestroy&&this._popper.remove(),this},i.prototype.update=function(){var e={instance:this,styles:{}};e.placement=this._options.placement,e._originalPlacement=this._options.placement,e.offsets=this._getOffsets(this._popper,this._reference,e.placement),e.boundaries=this._getBoundaries(e,this._options.boundariesPadding,this._options.boundariesElement),e=this.runModifiers(e,this._options.modifiers),"function"==typeof this.state.updateCallback&&this.state.updateCallback(e)},i.prototype.onCreate=function(e){return e(this),this},i.prototype.onUpdate=function(e){return this.state.updateCallback=e,this},i.prototype.parse=function(t){var i={tagName:"div",classNames:["popper"],attributes:[],parent:e.document.body,content:"",contentType:"text",arrowTagName:"div",arrowClassNames:["popper__arrow"],arrowAttributes:["x-arrow"]};t=Object.assign({},i,t);var n=e.document,r=n.createElement(t.tagName);if(o(r,t.classNames),l(r,t.attributes),"node"===t.contentType?r.appendChild(t.content.jquery?t.content[0]:t.content):"html"===t.contentType?r.innerHTML=t.content:r.textContent=t.content,t.arrowTagName){var s=n.createElement(t.arrowTagName);o(s,t.arrowClassNames),l(s,t.arrowAttributes),r.appendChild(s)}var a=t.parent.jquery?t.parent[0]:t.parent;if("string"==typeof a){if((a=n.querySelectorAll(t.parent)).length>1&&console.warn("WARNING: the given `parent` query("+t.parent+") matched more than one element, the first one will be used"),0===a.length)throw"ERROR: the given `parent` doesn't exists!";a=a[0]}return a.length>1&&a instanceof Element==0&&(console.warn("WARNING: you have passed as parent a list of elements, the first one will be used"),a=a[0]),a.appendChild(r),r;function o(e,t){t.forEach(function(t){e.classList.add(t)})}function l(e,t){t.forEach(function(t){e.setAttribute(t.split(":")[0],t.split(":")[1]||"")})}},i.prototype._getPosition=function(t,i){return l(i),this._options.forceAbsolute?"absolute":function t(i){return i!==e.document.body&&("fixed"===o(i,"position")||(i.parentNode?t(i.parentNode):i))}(i)?"fixed":"absolute"},i.prototype._getOffsets=function(e,t,i){i=i.split("-")[0];var r={};r.position=this.state.position;var s="fixed"===r.position,a=function(e,t,i){var n=d(e),r=d(t);if(i){var s=u(t);r.top+=s.scrollTop,r.bottom+=s.scrollTop,r.left+=s.scrollLeft,r.right+=s.scrollLeft}return{top:n.top-r.top,left:n.left-r.left,bottom:n.top-r.top+n.height,right:n.left-r.left+n.width,width:n.width,height:n.height}}(t,l(e),s),o=n(e);return-1!==["right","left"].indexOf(i)?(r.top=a.top+a.height/2-o.height/2,r.left="left"===i?a.left-o.width:a.right):(r.left=a.left+a.width/2-o.width/2,r.top="top"===i?a.top-o.height:a.bottom),r.width=o.width,r.height=o.height,{popper:r,reference:a}},i.prototype._setupEventListeners=function(){if(this.state.updateBound=this.update.bind(this),e.addEventListener("resize",this.state.updateBound),"window"!==this._options.boundariesElement){var t=u(this._reference);t!==e.document.body&&t!==e.document.documentElement||(t=e),t.addEventListener("scroll",this.state.updateBound),this.state.scrollTarget=t}},i.prototype._removeEventListeners=function(){e.removeEventListener("resize",this.state.updateBound),"window"!==this._options.boundariesElement&&this.state.scrollTarget&&(this.state.scrollTarget.removeEventListener("scroll",this.state.updateBound),this.state.scrollTarget=null),this.state.updateBound=null},i.prototype._getBoundaries=function(t,i,n){var r,s,a={};if("window"===n){var o=e.document.body,c=e.document.documentElement;r=Math.max(o.scrollHeight,o.offsetHeight,c.clientHeight,c.scrollHeight,c.offsetHeight),a={top:0,right:Math.max(o.scrollWidth,o.offsetWidth,c.clientWidth,c.scrollWidth,c.offsetWidth),bottom:r,left:0}}else if("viewport"===n){var d=l(this._popper),p=u(this._popper),f=h(d),m="fixed"===t.offsets.popper.position?0:(s=p)==document.body?Math.max(document.documentElement.scrollTop,document.body.scrollTop):s.scrollTop,v="fixed"===t.offsets.popper.position?0:function(e){return e==document.body?Math.max(document.documentElement.scrollLeft,document.body.scrollLeft):e.scrollLeft}(p);a={top:0-(f.top-m),right:e.document.documentElement.clientWidth-(f.left-v),bottom:e.document.documentElement.clientHeight-(f.top-m),left:0-(f.left-v)}}else a=l(this._popper)===n?{top:0,left:0,right:n.clientWidth,bottom:n.clientHeight}:h(n);return a.left+=i,a.right-=i,a.top=a.top+i,a.bottom=a.bottom-i,a},i.prototype.runModifiers=function(e,t,i){var n=t.slice();return void 0!==i&&(n=this._options.modifiers.slice(0,a(this._options.modifiers,i))),n.forEach(function(t){var i;(i=t)&&"[object Function]"==={}.toString.call(i)&&(e=t.call(this,e))}.bind(this)),e},i.prototype.isModifierRequired=function(e,t){var i=a(this._options.modifiers,e);return!!this._options.modifiers.slice(0,i).filter(function(e){return e===t}).length},i.prototype.modifiers={},i.prototype.modifiers.applyStyle=function(e){var t,i={position:e.offsets.popper.position},n=Math.round(e.offsets.popper.left),r=Math.round(e.offsets.popper.top);return this._options.gpuAcceleration&&(t=p("transform"))?(i[t]="translate3d("+n+"px, "+r+"px, 0)",i.top=0,i.left=0):(i.left=n,i.top=r),Object.assign(i,e.styles),c(this._popper,i),this._popper.setAttribute("x-placement",e.placement),this.isModifierRequired(this.modifiers.applyStyle,this.modifiers.arrow)&&e.offsets.arrow&&c(e.arrowElement,e.offsets.arrow),e},i.prototype.modifiers.shift=function(e){var t=e.placement,i=t.split("-")[0],n=t.split("-")[1];if(n){var r=e.offsets.reference,a=s(e.offsets.popper),o={y:{start:{top:r.top},end:{top:r.top+r.height-a.height}},x:{start:{left:r.left},end:{left:r.left+r.width-a.width}}},l=-1!==["bottom","top"].indexOf(i)?"x":"y";e.offsets.popper=Object.assign(a,o[l][n])}return e},i.prototype.modifiers.preventOverflow=function(e){var t=this._options.preventOverflowOrder,i=s(e.offsets.popper),n={left:function(){var t=i.left;return i.left<e.boundaries.left&&(t=Math.max(i.left,e.boundaries.left)),{left:t}},right:function(){var t=i.left;return i.right>e.boundaries.right&&(t=Math.min(i.left,e.boundaries.right-i.width)),{left:t}},top:function(){var t=i.top;return i.top<e.boundaries.top&&(t=Math.max(i.top,e.boundaries.top)),{top:t}},bottom:function(){var t=i.top;return i.bottom>e.boundaries.bottom&&(t=Math.min(i.top,e.boundaries.bottom-i.height)),{top:t}}};return t.forEach(function(t){e.offsets.popper=Object.assign(i,n[t]())}),e},i.prototype.modifiers.keepTogether=function(e){var t=s(e.offsets.popper),i=e.offsets.reference,n=Math.floor;return t.right<n(i.left)&&(e.offsets.popper.left=n(i.left)-t.width),t.left>n(i.right)&&(e.offsets.popper.left=n(i.right)),t.bottom<n(i.top)&&(e.offsets.popper.top=n(i.top)-t.height),t.top>n(i.bottom)&&(e.offsets.popper.top=n(i.bottom)),e},i.prototype.modifiers.flip=function(e){if(!this.isModifierRequired(this.modifiers.flip,this.modifiers.preventOverflow))return console.warn("WARNING: preventOverflow modifier is required by flip modifier in order to work, be sure to include it before flip!"),e;if(e.flipped&&e.placement===e._originalPlacement)return e;var t=e.placement.split("-")[0],i=r(t),n=e.placement.split("-")[1]||"",a=[];return(a="flip"===this._options.flipBehavior?[t,i]:this._options.flipBehavior).forEach(function(o,l){if(t===o&&a.length!==l+1){t=e.placement.split("-")[0],i=r(t);var u=s(e.offsets.popper),c=-1!==["right","bottom"].indexOf(t);(c&&Math.floor(e.offsets.reference[t])>Math.floor(u[i])||!c&&Math.floor(e.offsets.reference[t])<Math.floor(u[i]))&&(e.flipped=!0,e.placement=a[l+1],n&&(e.placement+="-"+n),e.offsets.popper=this._getOffsets(this._popper,this._reference,e.placement).popper,e=this.runModifiers(e,this._options.modifiers,this._flip))}}.bind(this)),e},i.prototype.modifiers.offset=function(e){var t=this._options.offset,i=e.offsets.popper;return-1!==e.placement.indexOf("left")?i.top-=t:-1!==e.placement.indexOf("right")?i.top+=t:-1!==e.placement.indexOf("top")?i.left-=t:-1!==e.placement.indexOf("bottom")&&(i.left+=t),e},i.prototype.modifiers.arrow=function(e){var t=this._options.arrowElement,i=this._options.arrowOffset;if("string"==typeof t&&(t=this._popper.querySelector(t)),!t)return e;if(!this._popper.contains(t))return console.warn("WARNING: `arrowElement` must be child of its popper element!"),e;if(!this.isModifierRequired(this.modifiers.arrow,this.modifiers.keepTogether))return console.warn("WARNING: keepTogether modifier is required by arrow modifier in order to work, be sure to include it before arrow!"),e;var r={},a=e.placement.split("-")[0],o=s(e.offsets.popper),l=e.offsets.reference,u=-1!==["left","right"].indexOf(a),c=u?"height":"width",h=u?"top":"left",d=u?"left":"top",p=u?"bottom":"right",f=n(t)[c];l[p]-f<o[h]&&(e.offsets.popper[h]-=o[h]-(l[p]-f)),l[h]+f>o[p]&&(e.offsets.popper[h]+=l[h]+f-o[p]);var m=l[h]+(i||l[c]/2-f/2)-o[h];return m=Math.max(Math.min(o[c]-f-8,m),8),r[h]=m,r[d]="",e.offsets.arrow=r,e.arrowElement=t,e},Object.assign||Object.defineProperty(Object,"assign",{enumerable:!1,configurable:!0,writable:!0,value:function(e){if(null==e)throw new TypeError("Cannot convert first argument to object");for(var t=Object(e),i=1;i<arguments.length;i++){var n=arguments[i];if(null!=n){n=Object(n);for(var r=Object.keys(n),s=0,a=r.length;s<a;s++){var o=r[s],l=Object.getOwnPropertyDescriptor(n,o);void 0!==l&&l.enumerable&&(t[o]=n[o])}}}return t}}),i})?n.call(t,i,t,e):n)||(e.exports=r)},function(e,t){var i;i=function(){return this}();try{i=i||new Function("return this")()}catch(e){"object"==typeof window&&(i=window)}e.exports=i},function(e,t,i){"use strict";var n=i(53),r=i(54),s=10,a=40,o=800;function l(e){var t=0,i=0,n=0,r=0;return"detail"in e&&(i=e.detail),"wheelDelta"in e&&(i=-e.wheelDelta/120),"wheelDeltaY"in e&&(i=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=i,i=0),n=t*s,r=i*s,"deltaY"in e&&(r=e.deltaY),"deltaX"in e&&(n=e.deltaX),(n||r)&&e.deltaMode&&(1==e.deltaMode?(n*=a,r*=a):(n*=o,r*=o)),n&&!t&&(t=n<1?-1:1),r&&!i&&(i=r<1?-1:1),{spinX:t,spinY:i,pixelX:n,pixelY:r}}l.getEventType=function(){return n.firefox()?"DOMMouseScroll":r("wheel")?"wheel":"mousewheel"},e.exports=l},function(e,t){var i,n,r,s,a,o,l,u,c,h,d,p,f,m,v,g=!1;function b(){if(!g){g=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),b=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(p=/\b(iPhone|iP[ao]d)/.exec(e),f=/\b(iP[ao]d)/.exec(e),h=/Android/i.exec(e),m=/FBAN\/\w+;/i.exec(e),v=/Mobile/i.exec(e),d=!!/Win64/.exec(e),t){(i=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN)&&document&&document.documentMode&&(i=document.documentMode);var y=/(?:Trident\/(\d+.\d+))/.exec(e);o=y?parseFloat(y[1])+4:i,n=t[2]?parseFloat(t[2]):NaN,r=t[3]?parseFloat(t[3]):NaN,(s=t[4]?parseFloat(t[4]):NaN)?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),a=t&&t[1]?parseFloat(t[1]):NaN):a=NaN}else i=n=r=a=s=NaN;if(b){if(b[1]){var w=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);l=!w||parseFloat(w[1].replace("_","."))}else l=!1;u=!!b[2],c=!!b[3]}else l=u=c=!1}}var y={ie:function(){return b()||i},ieCompatibilityMode:function(){return b()||o>i},ie64:function(){return y.ie()&&d},firefox:function(){return b()||n},opera:function(){return b()||r},webkit:function(){return b()||s},safari:function(){return y.webkit()},chrome:function(){return b()||a},windows:function(){return b()||u},osx:function(){return b()||l},linux:function(){return b()||c},iphone:function(){return b()||p},mobile:function(){return b()||p||f||h||v},nativeApp:function(){return b()||m},android:function(){return b()||h},ipad:function(){return b()||f}};e.exports=y},function(e,t,i){"use strict";var n,r=i(55);r.canUseDOM&&(n=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")),e.exports=function(e,t){if(!r.canUseDOM||t&&!("addEventListener"in document))return!1;var i="on"+e,s=i in document;if(!s){var a=document.createElement("div");a.setAttribute(i,"return;"),s="function"==typeof a[i]}return!s&&n&&"wheel"===e&&(s=document.implementation.hasFeature("Events.wheel","3.0")),s}},function(e,t,i){"use strict";var n=!("undefined"==typeof window||!window.document||!window.document.createElement),r={canUseDOM:n,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:n&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:n&&!!window.screen,isInWorker:!n};e.exports=r},function(e,t,i){e.exports={default:i(57),__esModule:!0}},function(e,t,i){i(58),e.exports=i(14).Object.assign},function(e,t,i){var n=i(23);n(n.S+n.F,"Object",{assign:i(61)})},function(e,t,i){var n=i(60);e.exports=function(e,t,i){if(n(e),void 0===t)return e;switch(i){case 1:return function(i){return e.call(t,i)};case 2:return function(i,n){return e.call(t,i,n)};case 3:return function(i,n,r){return e.call(t,i,n,r)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,i){"use strict";var n=i(19),r=i(30),s=i(22),a=i(41),o=i(39),l=Object.assign;e.exports=!l||i(16)(function(){var e={},t={},i=Symbol(),n="abcdefghijklmnopqrst";return e[i]=7,n.split("").forEach(function(e){t[e]=e}),7!=l({},e)[i]||Object.keys(l({},t)).join("")!=n})?function(e,t){for(var i=a(e),l=arguments.length,u=1,c=r.f,h=s.f;l>u;)for(var d,p=o(arguments[u++]),f=c?n(p).concat(c(p)):n(p),m=f.length,v=0;m>v;)h.call(p,d=f[v++])&&(i[d]=p[d]);return i}:l},function(e,t,i){var n=i(12),r=i(63),s=i(64);e.exports=function(e){return function(t,i,a){var o,l=n(t),u=r(l.length),c=s(a,u);if(e&&i!=i){for(;u>c;)if((o=l[c++])!=o)return!0}else for(;u>c;c++)if((e||c in l)&&l[c]===i)return e||c||0;return!e&&-1}}},function(e,t,i){var n=i(26),r=Math.min;e.exports=function(e){return e>0?r(n(e),9007199254740991):0}},function(e,t,i){var n=i(26),r=Math.max,s=Math.min;e.exports=function(e,t){return(e=n(e))<0?r(e+t,0):s(e,t)}},function(e,t,i){e.exports={default:i(66),__esModule:!0}},function(e,t,i){i(67),i(73),e.exports=i(33).f("iterator")},function(e,t,i){"use strict";var n=i(68)(!0);i(42)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,i=this._i;return i>=t.length?{value:void 0,done:!0}:(e=n(t,i),this._i+=e.length,{value:e,done:!1})})},function(e,t,i){var n=i(26),r=i(25);e.exports=function(e){return function(t,i){var s,a,o=String(r(t)),l=n(i),u=o.length;return l<0||l>=u?e?"":void 0:(s=o.charCodeAt(l))<55296||s>56319||l+1===u||(a=o.charCodeAt(l+1))<56320||a>57343?e?o.charAt(l):s:e?o.slice(l,l+2):a-56320+(s-55296<<10)+65536}}},function(e,t,i){"use strict";var n=i(44),r=i(18),s=i(32),a={};i(9)(a,i(13)("iterator"),function(){return this}),e.exports=function(e,t,i){e.prototype=n(a,{next:r(1,i)}),s(e,t+" Iterator")}},function(e,t,i){var n=i(10),r=i(17),s=i(19);e.exports=i(11)?Object.defineProperties:function(e,t){r(e);for(var i,a=s(t),o=a.length,l=0;o>l;)n.f(e,i=a[l++],t[i]);return e}},function(e,t,i){var n=i(5).document;e.exports=n&&n.documentElement},function(e,t,i){var n=i(7),r=i(41),s=i(27)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=r(e),n(e,s)?e[s]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,i){i(74);for(var n=i(5),r=i(9),s=i(31),a=i(13)("toStringTag"),o="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),l=0;l<o.length;l++){var u=o[l],c=n[u],h=c&&c.prototype;h&&!h[a]&&r(h,a,u),s[u]=s.Array}},function(e,t,i){"use strict";var n=i(75),r=i(76),s=i(31),a=i(12);e.exports=i(42)(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,i=this._i++;return!e||i>=e.length?(this._t=void 0,r(1)):r(0,"keys"==t?i:"values"==t?e[i]:[i,e[i]])},"values"),s.Arguments=s.Array,n("keys"),n("values"),n("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,i){e.exports={default:i(78),__esModule:!0}},function(e,t,i){i(79),i(85),i(86),i(87),e.exports=i(14).Symbol},function(e,t,i){"use strict";var n=i(5),r=i(7),s=i(11),a=i(23),o=i(43),l=i(80).KEY,u=i(16),c=i(28),h=i(32),d=i(21),p=i(13),f=i(33),m=i(34),v=i(81),g=i(82),b=i(17),y=i(15),w=i(12),_=i(24),x=i(18),C=i(44),k=i(83),S=i(84),D=i(10),$=i(19),E=S.f,T=D.f,M=k.f,N=n.Symbol,P=n.JSON,O=P&&P.stringify,I=p("_hidden"),A=p("toPrimitive"),F={}.propertyIsEnumerable,L=c("symbol-registry"),V=c("symbols"),B=c("op-symbols"),z=Object.prototype,H="function"==typeof N,R=n.QObject,W=!R||!R.prototype||!R.prototype.findChild,j=s&&u(function(){return 7!=C(T({},"a",{get:function(){return T(this,"a",{value:7}).a}})).a})?function(e,t,i){var n=E(z,t);n&&delete z[t],T(e,t,i),n&&e!==z&&T(z,t,n)}:T,q=function(e){var t=V[e]=C(N.prototype);return t._k=e,t},Y=H&&"symbol"==typeof N.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof N},K=function(e,t,i){return e===z&&K(B,t,i),b(e),t=_(t,!0),b(i),r(V,t)?(i.enumerable?(r(e,I)&&e[I][t]&&(e[I][t]=!1),i=C(i,{enumerable:x(0,!1)})):(r(e,I)||T(e,I,x(1,{})),e[I][t]=!0),j(e,t,i)):T(e,t,i)},G=function(e,t){b(e);for(var i,n=v(t=w(t)),r=0,s=n.length;s>r;)K(e,i=n[r++],t[i]);return e},U=function(e){var t=F.call(this,e=_(e,!0));return!(this===z&&r(V,e)&&!r(B,e))&&(!(t||!r(this,e)||!r(V,e)||r(this,I)&&this[I][e])||t)},X=function(e,t){if(e=w(e),t=_(t,!0),e!==z||!r(V,t)||r(B,t)){var i=E(e,t);return!i||!r(V,t)||r(e,I)&&e[I][t]||(i.enumerable=!0),i}},Z=function(e){for(var t,i=M(w(e)),n=[],s=0;i.length>s;)r(V,t=i[s++])||t==I||t==l||n.push(t);return n},J=function(e){for(var t,i=e===z,n=M(i?B:w(e)),s=[],a=0;n.length>a;)!r(V,t=n[a++])||i&&!r(z,t)||s.push(V[t]);return s};H||(o((N=function(){if(this instanceof N)throw TypeError("Symbol is not a constructor!");var e=d(arguments.length>0?arguments[0]:void 0),t=function(i){this===z&&t.call(B,i),r(this,I)&&r(this[I],e)&&(this[I][e]=!1),j(this,e,x(1,i))};return s&&W&&j(z,e,{configurable:!0,set:t}),q(e)}).prototype,"toString",function(){return this._k}),S.f=X,D.f=K,i(45).f=k.f=Z,i(22).f=U,i(30).f=J,s&&!i(20)&&o(z,"propertyIsEnumerable",U,!0),f.f=function(e){return q(p(e))}),a(a.G+a.W+a.F*!H,{Symbol:N});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ee=0;Q.length>ee;)p(Q[ee++]);for(var te=$(p.store),ie=0;te.length>ie;)m(te[ie++]);a(a.S+a.F*!H,"Symbol",{for:function(e){return r(L,e+="")?L[e]:L[e]=N(e)},keyFor:function(e){if(!Y(e))throw TypeError(e+" is not a symbol!");for(var t in L)if(L[t]===e)return t},useSetter:function(){W=!0},useSimple:function(){W=!1}}),a(a.S+a.F*!H,"Object",{create:function(e,t){return void 0===t?C(e):G(C(e),t)},defineProperty:K,defineProperties:G,getOwnPropertyDescriptor:X,getOwnPropertyNames:Z,getOwnPropertySymbols:J}),P&&a(a.S+a.F*(!H||u(function(){var e=N();return"[null]"!=O([e])||"{}"!=O({a:e})||"{}"!=O(Object(e))})),"JSON",{stringify:function(e){for(var t,i,n=[e],r=1;arguments.length>r;)n.push(arguments[r++]);if(i=t=n[1],(y(t)||void 0!==e)&&!Y(e))return g(t)||(t=function(e,t){if("function"==typeof i&&(t=i.call(this,e,t)),!Y(t))return t}),n[1]=t,O.apply(P,n)}}),N.prototype[A]||i(9)(N.prototype,A,N.prototype.valueOf),h(N,"Symbol"),h(Math,"Math",!0),h(n.JSON,"JSON",!0)},function(e,t,i){var n=i(21)("meta"),r=i(15),s=i(7),a=i(10).f,o=0,l=Object.isExtensible||function(){return!0},u=!i(16)(function(){return l(Object.preventExtensions({}))}),c=function(e){a(e,n,{value:{i:"O"+ ++o,w:{}}})},h=e.exports={KEY:n,NEED:!1,fastKey:function(e,t){if(!r(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!s(e,n)){if(!l(e))return"F";if(!t)return"E";c(e)}return e[n].i},getWeak:function(e,t){if(!s(e,n)){if(!l(e))return!0;if(!t)return!1;c(e)}return e[n].w},onFreeze:function(e){return u&&h.NEED&&l(e)&&!s(e,n)&&c(e),e}}},function(e,t,i){var n=i(19),r=i(30),s=i(22);e.exports=function(e){var t=n(e),i=r.f;if(i)for(var a,o=i(e),l=s.f,u=0;o.length>u;)l.call(e,a=o[u++])&&t.push(a);return t}},function(e,t,i){var n=i(40);e.exports=Array.isArray||function(e){return"Array"==n(e)}},function(e,t,i){var n=i(12),r=i(45).f,s={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return a&&"[object Window]"==s.call(e)?function(e){try{return r(e)}catch(e){return a.slice()}}(e):r(n(e))}},function(e,t,i){var n=i(22),r=i(18),s=i(12),a=i(24),o=i(7),l=i(36),u=Object.getOwnPropertyDescriptor;t.f=i(11)?u:function(e,t){if(e=s(e),t=a(t,!0),l)try{return u(e,t)}catch(e){}if(o(e,t))return r(!n.f.call(e,t),e[t])}},function(e,t){},function(e,t,i){i(34)("asyncIterator")},function(e,t,i){i(34)("observable")},function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("ul",{staticClass:"el-pager",on:{click:e.onPagerClick}},[e.pageCount>0?i("li",{staticClass:"number",class:{active:1===e.currentPage,disabled:e.disabled}},[e._v("1")]):e._e(),e.showPrevMore?i("li",{staticClass:"el-icon more btn-quickprev",class:[e.quickprevIconClass,{disabled:e.disabled}],on:{mouseenter:function(t){e.onMouseenter("left")},mouseleave:function(t){e.quickprevIconClass="el-icon-more"}}}):e._e(),e._l(e.pagers,function(t){return i("li",{key:t,staticClass:"number",class:{active:e.currentPage===t,disabled:e.disabled}},[e._v(e._s(t))])}),e.showNextMore?i("li",{staticClass:"el-icon more btn-quicknext",class:[e.quicknextIconClass,{disabled:e.disabled}],on:{mouseenter:function(t){e.onMouseenter("right")},mouseleave:function(t){e.quicknextIconClass="el-icon-more"}}}):e._e(),e.pageCount>1?i("li",{staticClass:"number",class:{active:e.currentPage===e.pageCount,disabled:e.disabled}},[e._v(e._s(e.pageCount))]):e._e()],2)};function r(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var h=u.beforeCreate;u.beforeCreate=h?[].concat(h,l):[l]}return{exports:e,options:u}}n._withStripped=!0;var s=r({name:"ElPager",props:{currentPage:Number,pageCount:Number,pagerCount:Number,disabled:Boolean},watch:{showPrevMore:function(e){e||(this.quickprevIconClass="el-icon-more")},showNextMore:function(e){e||(this.quicknextIconClass="el-icon-more")}},methods:{onPagerClick:function(e){var t=e.target;if("UL"!==t.tagName&&!this.disabled){var i=Number(e.target.textContent),n=this.pageCount,r=this.currentPage,s=this.pagerCount-2;-1!==t.className.indexOf("more")&&(-1!==t.className.indexOf("quickprev")?i=r-s:-1!==t.className.indexOf("quicknext")&&(i=r+s)),isNaN(i)||(i<1&&(i=1),i>n&&(i=n)),i!==r&&this.$emit("change",i)}},onMouseenter:function(e){this.disabled||("left"===e?this.quickprevIconClass="el-icon-d-arrow-left":this.quicknextIconClass="el-icon-d-arrow-right")}},computed:{pagers:function(){var e=this.pagerCount,t=(e-1)/2,i=Number(this.currentPage),n=Number(this.pageCount),r=!1,s=!1;n>e&&(i>e-t&&(r=!0),i<n-t&&(s=!0));var a=[];if(r&&!s)for(var o=n-(e-2);o<n;o++)a.push(o);else if(!r&&s)for(var l=2;l<e;l++)a.push(l);else if(r&&s)for(var u=Math.floor(e/2)-1,c=i-u;c<=i+u;c++)a.push(c);else for(var h=2;h<n;h++)a.push(h);return this.showPrevMore=r,this.showNextMore=s,a}},data:function(){return{current:null,showPrevMore:!1,showNextMore:!1,quicknextIconClass:"el-icon-more",quickprevIconClass:"el-icon-more"}}},n,[],!1,null,null,null);s.options.__file="packages/pagination/src/pager.vue";var a=s.exports,o=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleClose,expression:"handleClose"}],staticClass:"el-select",class:[e.selectSize?"el-select--"+e.selectSize:""],on:{click:function(t){return t.stopPropagation(),e.toggleMenu(t)}}},[e.multiple?i("div",{ref:"tags",staticClass:"el-select__tags",style:{"max-width":e.inputWidth-32+"px",width:"100%"}},[e.collapseTags&&e.selected.length?i("span",[i("el-tag",{attrs:{closable:!e.selectDisabled,size:e.collapseTagSize,hit:e.selected[0].hitState,type:"info","disable-transitions":""},on:{close:function(t){e.deleteTag(t,e.selected[0])}}},[i("span",{staticClass:"el-select__tags-text"},[e._v(e._s(e.selected[0].currentLabel))])]),e.selected.length>1?i("el-tag",{attrs:{closable:!1,size:e.collapseTagSize,type:"info","disable-transitions":""}},[i("span",{staticClass:"el-select__tags-text"},[e._v("+ "+e._s(e.selected.length-1))])]):e._e()],1):e._e(),e.collapseTags?e._e():i("transition-group",{on:{"after-leave":e.resetInputHeight}},e._l(e.selected,function(t){return i("el-tag",{key:e.getValueKey(t),attrs:{closable:!e.selectDisabled,size:e.collapseTagSize,hit:t.hitState,type:"info","disable-transitions":""},on:{close:function(i){e.deleteTag(i,t)}}},[i("span",{staticClass:"el-select__tags-text"},[e._v(e._s(t.currentLabel))])])}),1),e.filterable?i("input",{directives:[{name:"model",rawName:"v-model",value:e.query,expression:"query"}],ref:"input",staticClass:"el-select__input",class:[e.selectSize?"is-"+e.selectSize:""],style:{"flex-grow":"1",width:e.inputLength/(e.inputWidth-32)+"%","max-width":e.inputWidth-42+"px"},attrs:{type:"text",disabled:e.selectDisabled,autocomplete:e.autoComplete||e.autocomplete},domProps:{value:e.query},on:{focus:e.handleFocus,blur:function(t){e.softFocus=!1},keyup:e.managePlaceholder,keydown:[e.resetInputState,function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"]))return null;t.preventDefault(),e.navigateOptions("next")},function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"]))return null;t.preventDefault(),e.navigateOptions("prev")},function(t){return"button"in t||!e._k(t.keyCode,"enter",13,t.key,"Enter")?(t.preventDefault(),e.selectOption(t)):null},function(t){if(!("button"in t)&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"]))return null;t.stopPropagation(),t.preventDefault(),e.visible=!1},function(t){return"button"in t||!e._k(t.keyCode,"delete",[8,46],t.key,["Backspace","Delete","Del"])?e.deletePrevTag(t):null},function(t){if(!("button"in t)&&e._k(t.keyCode,"tab",9,t.key,"Tab"))return null;e.visible=!1}],compositionstart:e.handleComposition,compositionupdate:e.handleComposition,compositionend:e.handleComposition,input:[function(t){t.target.composing||(e.query=t.target.value)},e.debouncedQueryChange]}}):e._e()],1):e._e(),i("el-input",{ref:"reference",class:{"is-focus":e.visible},attrs:{type:"text",placeholder:e.currentPlaceholder,name:e.name,id:e.id,autocomplete:e.autoComplete||e.autocomplete,size:e.selectSize,disabled:e.selectDisabled,readonly:e.readonly,"validate-event":!1,tabindex:e.multiple&&e.filterable?"-1":null},on:{focus:e.handleFocus,blur:e.handleBlur},nativeOn:{keyup:function(t){return e.debouncedOnInputChange(t)},keydown:[function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"]))return null;t.stopPropagation(),t.preventDefault(),e.navigateOptions("next")},function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"]))return null;t.stopPropagation(),t.preventDefault(),e.navigateOptions("prev")},function(t){return"button"in t||!e._k(t.keyCode,"enter",13,t.key,"Enter")?(t.preventDefault(),e.selectOption(t)):null},function(t){if(!("button"in t)&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"]))return null;t.stopPropagation(),t.preventDefault(),e.visible=!1},function(t){if(!("button"in t)&&e._k(t.keyCode,"tab",9,t.key,"Tab"))return null;e.visible=!1}],paste:function(t){return e.debouncedOnInputChange(t)},mouseenter:function(t){e.inputHovering=!0},mouseleave:function(t){e.inputHovering=!1}},model:{value:e.selectedLabel,callback:function(t){e.selectedLabel=t},expression:"selectedLabel"}},[e.$slots.prefix?i("template",{slot:"prefix"},[e._t("prefix")],2):e._e(),i("template",{slot:"suffix"},[i("i",{directives:[{name:"show",rawName:"v-show",value:!e.showClose,expression:"!showClose"}],class:["el-select__caret","el-input__icon","el-icon-"+e.iconClass]}),e.showClose?i("i",{staticClass:"el-select__caret el-input__icon el-icon-circle-close",on:{click:e.handleClearClick}}):e._e()])],2),i("transition",{attrs:{name:"el-zoom-in-top"},on:{"before-enter":e.handleMenuEnter,"after-leave":e.doDestroy}},[i("el-select-menu",{directives:[{name:"show",rawName:"v-show",value:e.visible&&!1!==e.emptyText,expression:"visible && emptyText !== false"}],ref:"popper",attrs:{"append-to-body":e.popperAppendToBody}},[i("el-scrollbar",{directives:[{name:"show",rawName:"v-show",value:e.options.length>0&&!e.loading,expression:"options.length > 0 && !loading"}],ref:"scrollbar",class:{"is-empty":!e.allowCreate&&e.query&&0===e.filteredOptionsCount},attrs:{tag:"ul","wrap-class":"el-select-dropdown__wrap","view-class":"el-select-dropdown__list"}},[e.showNewOption?i("el-option",{attrs:{value:e.query,created:""}}):e._e(),e._t("default")],2),e.emptyText&&(!e.allowCreate||e.loading||e.allowCreate&&0===e.options.length)?[e.$slots.empty?e._t("empty"):i("p",{staticClass:"el-select-dropdown__empty"},[e._v("\n "+e._s(e.emptyText)+"\n ")])]:e._e()],2)],1)],1)};o._withStripped=!0;var l={methods:{dispatch:function(e,t,i){for(var n=this.$parent||this.$root,r=n.$options.componentName;n&&(!r||r!==e);)(n=n.$parent)&&(r=n.$options.componentName);n&&n.$emit.apply(n,[t].concat(i))},broadcast:function(e,t,i){(function e(t,i,n){this.$children.forEach(function(r){r.$options.componentName===t?r.$emit.apply(r,[i].concat(n)):e.apply(r,[t,i].concat([n]))})}).call(this,e,t,i)}}},u=function(e){return{methods:{focus:function(){this.$refs[e].focus()}}}},c=i(0),h=i.n(c),d=i(46),p=i.n(d),f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function m(e){return"[object String]"===Object.prototype.toString.call(e)}function v(e){return"[object Object]"===Object.prototype.toString.call(e)}function g(e){return e&&e.nodeType===Node.ELEMENT_NODE}var b=function(e){return e&&"[object Function]"==={}.toString.call(e)};"object"===("undefined"==typeof Int8Array?"undefined":f(Int8Array))||!h.a.prototype.$isServer&&"function"==typeof document.childNodes||(b=function(e){return"function"==typeof e||!1});var y=function(e){return void 0===e},w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_=Object.prototype.hasOwnProperty;function x(){}function C(e,t){return _.call(e,t)}function k(e,t){for(var i in t)e[i]=t[i];return e}var S=function(e,t){for(var i=(t=t||"").split("."),n=e,r=null,s=0,a=i.length;s<a;s++){var o=i[s];if(!n)break;if(s===a-1){r=n[o];break}n=n[o]}return r};function D(e,t,i){for(var n=e,r=(t=(t=t.replace(/\[(\w+)\]/g,".$1")).replace(/^\./,"")).split("."),s=0,a=r.length;s<a-1&&(n||i);++s){var o=r[s];if(!(o in n)){if(i)throw new Error("please transfer a valid prop path to form item!");break}n=n[o]}return{o:n,k:r[s],v:n?n[r[s]]:null}}var $=function(){return Math.floor(1e4*Math.random())},E=function(e,t){if(e===t)return!0;if(!(e instanceof Array))return!1;if(!(t instanceof Array))return!1;if(e.length!==t.length)return!1;for(var i=0;i!==e.length;++i)if(e[i]!==t[i])return!1;return!0},T=function(e,t){for(var i=0;i!==e.length;++i)if(t(e[i]))return i;return-1},M=function(e,t){var i=T(e,t);return-1!==i?e[i]:void 0},N=function(e){return Array.isArray(e)?e:e?[e]:[]},P=function(e){var t=/([^-])([A-Z])/g;return e.replace(t,"$1-$2").replace(t,"$1-$2").toLowerCase()},O=function(e){return m(e)?e.charAt(0).toUpperCase()+e.slice(1):e},I=function(e,t){var i=v(e),n=v(t);return i&&n?JSON.stringify(e)===JSON.stringify(t):!i&&!n&&String(e)===String(t)},A=function(e,t){return Array.isArray(e)&&Array.isArray(t)?function(e,t){if(t=t||[],(e=e||[]).length!==t.length)return!1;for(var i=0;i<e.length;i++)if(!I(e[i],t[i]))return!1;return!0}(e,t):I(e,t)},F=function(e){if(null==e)return!0;if("boolean"==typeof e)return!1;if("number"==typeof e)return!e;if(e instanceof Error)return""===e.message;switch(Object.prototype.toString.call(e)){case"[object String]":case"[object Array]":return!e.length;case"[object File]":case"[object Map]":case"[object Set]":return!e.size;case"[object Object]":return!Object.keys(e).length}return!1};function L(e){var t=!1;return function(){for(var i=this,n=arguments.length,r=Array(n),s=0;s<n;s++)r[s]=arguments[s];t||(t=!0,window.requestAnimationFrame(function(n){e.apply(i,r),t=!1}))}}var V="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},B=/(%|)\{([0-9a-zA-Z_]+)\}/g,z=function(e){return function(e){for(var t=arguments.length,i=Array(t>1?t-1:0),n=1;n<t;n++)i[n-1]=arguments[n];return 1===i.length&&"object"===V(i[0])&&(i=i[0]),i&&i.hasOwnProperty||(i={}),e.replace(B,function(t,n,r,s){var a=void 0;return"{"===e[s-1]&&"}"===e[s+t.length]?r:null==(a=C(i,r)?i[r]:null)?"":a})}}(h.a),H={el:{colorpicker:{confirm:"确定",clear:"清空"},datepicker:{now:"此刻",today:"今天",cancel:"取消",clear:"清空",confirm:"确定",selectDate:"选择日期",selectTime:"选择时间",startDate:"开始日期",startTime:"开始时间",endDate:"结束日期",endTime:"结束时间",prevYear:"前一年",nextYear:"后一年",prevMonth:"上个月",nextMonth:"下个月",year:"年",month1:"1 月",month2:"2 月",month3:"3 月",month4:"4 月",month5:"5 月",month6:"6 月",month7:"7 月",month8:"8 月",month9:"9 月",month10:"10 月",month11:"11 月",month12:"12 月",weeks:{sun:"日",mon:"一",tue:"二",wed:"三",thu:"四",fri:"五",sat:"六"},months:{jan:"一月",feb:"二月",mar:"三月",apr:"四月",may:"五月",jun:"六月",jul:"七月",aug:"八月",sep:"九月",oct:"十月",nov:"十一月",dec:"十二月"}},select:{loading:"加载中",noMatch:"无匹配数据",noData:"无数据",placeholder:"请选择"},cascader:{noMatch:"无匹配数据",loading:"加载中",placeholder:"请选择",noData:"暂无数据"},pagination:{goto:"前往",pagesize:"条/页",total:"共 {total} 条",pageClassifier:"页"},messagebox:{title:"提示",confirm:"确定",cancel:"取消",error:"输入的数据不合法!"},upload:{deleteTip:"按 delete 键可删除",delete:"删除",preview:"查看图片",continue:"继续上传"},table:{emptyText:"暂无数据",confirmFilter:"筛选",resetFilter:"重置",clearFilter:"全部",sumText:"合计"},tree:{emptyText:"暂无数据"},transfer:{noMatch:"无匹配数据",noData:"无数据",titles:["列表 1","列表 2"],filterPlaceholder:"请输入搜索内容",noCheckedFormat:"共 {total} 项",hasCheckedFormat:"已选 {checked}/{total} 项"},image:{error:"加载失败"},pageHeader:{title:"返回"},popconfirm:{confirmButtonText:"确定",cancelButtonText:"取消"}}},R=!1,W=function(){var e=Object.getPrototypeOf(this||h.a).$t;if("function"==typeof e&&h.a.locale)return R||(R=!0,h.a.locale(h.a.config.lang,p()(H,h.a.locale(h.a.config.lang)||{},{clone:!0}))),e.apply(this,arguments)},j=function(e,t){var i=W.apply(this,arguments);if(null!=i)return i;for(var n=e.split("."),r=H,s=0,a=n.length;s<a;s++){if(i=r[n[s]],s===a-1)return z(i,t);if(!i)return"";r=i}return""},q={use:function(e){H=e||H},t:j,i18n:function(e){W=e||W}},Y={methods:{t:function(){for(var e=arguments.length,t=Array(e),i=0;i<e;i++)t[i]=arguments[i];return j.apply(this,t)}}},K=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:["textarea"===e.type?"el-textarea":"el-input",e.inputSize?"el-input--"+e.inputSize:"",{"is-disabled":e.inputDisabled,"is-exceed":e.inputExceed,"el-input-group":e.$slots.prepend||e.$slots.append,"el-input-group--append":e.$slots.append,"el-input-group--prepend":e.$slots.prepend,"el-input--prefix":e.$slots.prefix||e.prefixIcon,"el-input--suffix":e.$slots.suffix||e.suffixIcon||e.clearable||e.showPassword}],on:{mouseenter:function(t){e.hovering=!0},mouseleave:function(t){e.hovering=!1}}},["textarea"!==e.type?[e.$slots.prepend?i("div",{staticClass:"el-input-group__prepend"},[e._t("prepend")],2):e._e(),"textarea"!==e.type?i("input",e._b({ref:"input",staticClass:"el-input__inner",attrs:{tabindex:e.tabindex,type:e.showPassword?e.passwordVisible?"text":"password":e.type,disabled:e.inputDisabled,readonly:e.readonly,autocomplete:e.autoComplete||e.autocomplete,"aria-label":e.label},on:{compositionstart:e.handleCompositionStart,compositionupdate:e.handleCompositionUpdate,compositionend:e.handleCompositionEnd,input:e.handleInput,focus:e.handleFocus,blur:e.handleBlur,change:e.handleChange}},"input",e.$attrs,!1)):e._e(),e.$slots.prefix||e.prefixIcon?i("span",{staticClass:"el-input__prefix"},[e._t("prefix"),e.prefixIcon?i("i",{staticClass:"el-input__icon",class:e.prefixIcon}):e._e()],2):e._e(),e.getSuffixVisible()?i("span",{staticClass:"el-input__suffix"},[i("span",{staticClass:"el-input__suffix-inner"},[e.showClear&&e.showPwdVisible&&e.isWordLimitVisible?e._e():[e._t("suffix"),e.suffixIcon?i("i",{staticClass:"el-input__icon",class:e.suffixIcon}):e._e()],e.showClear?i("i",{staticClass:"el-input__icon el-icon-circle-close el-input__clear",on:{mousedown:function(e){e.preventDefault()},click:e.clear}}):e._e(),e.showPwdVisible?i("i",{staticClass:"el-input__icon el-icon-view el-input__clear",on:{click:e.handlePasswordVisible}}):e._e(),e.isWordLimitVisible?i("span",{staticClass:"el-input__count"},[i("span",{staticClass:"el-input__count-inner"},[e._v("\n "+e._s(e.textLength)+"/"+e._s(e.upperLimit)+"\n ")])]):e._e()],2),e.validateState?i("i",{staticClass:"el-input__icon",class:["el-input__validateIcon",e.validateIcon]}):e._e()]):e._e(),e.$slots.append?i("div",{staticClass:"el-input-group__append"},[e._t("append")],2):e._e()]:i("textarea",e._b({ref:"textarea",staticClass:"el-textarea__inner",style:e.textareaStyle,attrs:{tabindex:e.tabindex,disabled:e.inputDisabled,readonly:e.readonly,autocomplete:e.autoComplete||e.autocomplete,"aria-label":e.label},on:{compositionstart:e.handleCompositionStart,compositionupdate:e.handleCompositionUpdate,compositionend:e.handleCompositionEnd,input:e.handleInput,focus:e.handleFocus,blur:e.handleBlur,change:e.handleChange}},"textarea",e.$attrs,!1)),e.isWordLimitVisible&&"textarea"===e.type?i("span",{staticClass:"el-input__count"},[e._v(e._s(e.textLength)+"/"+e._s(e.upperLimit))]):e._e()],2)};K._withStripped=!0;var G={mounted:function(){},methods:{getMigratingConfig:function(){return{props:{},events:{}}}}},U=void 0,X="\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n",Z=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];function J(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;U||(U=document.createElement("textarea"),document.body.appendChild(U));var n=function(e){var t=window.getComputedStyle(e),i=t.getPropertyValue("box-sizing"),n=parseFloat(t.getPropertyValue("padding-bottom"))+parseFloat(t.getPropertyValue("padding-top")),r=parseFloat(t.getPropertyValue("border-bottom-width"))+parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:Z.map(function(e){return e+":"+t.getPropertyValue(e)}).join(";"),paddingSize:n,borderSize:r,boxSizing:i}}(e),r=n.paddingSize,s=n.borderSize,a=n.boxSizing,o=n.contextStyle;U.setAttribute("style",o+";"+X),U.value=e.value||e.placeholder||"";var l=U.scrollHeight,u={};"border-box"===a?l+=s:"content-box"===a&&(l-=r),U.value="";var c=U.scrollHeight-r;if(null!==t){var h=c*t;"border-box"===a&&(h=h+r+s),l=Math.max(h,l),u.minHeight=h+"px"}if(null!==i){var d=c*i;"border-box"===a&&(d=d+r+s),l=Math.min(d,l)}return u.height=l+"px",U.parentNode&&U.parentNode.removeChild(U),U=null,u}var Q=function(e){for(var t=1,i=arguments.length;t<i;t++){var n=arguments[t]||{};for(var r in n)if(n.hasOwnProperty(r)){var s=n[r];void 0!==s&&(e[r]=s)}}return e};function ee(e){return null!=e}function te(e){return/([(\uAC00-\uD7AF)|(\u3130-\u318F)])+/gi.test(e)}var ie=r({name:"ElInput",componentName:"ElInput",mixins:[l,G],inheritAttrs:!1,inject:{elForm:{default:""},elFormItem:{default:""}},data:function(){return{textareaCalcStyle:{},hovering:!1,focused:!1,isComposing:!1,passwordVisible:!1}},props:{value:[String,Number],size:String,resize:String,form:String,disabled:Boolean,readonly:Boolean,type:{type:String,default:"text"},autosize:{type:[Boolean,Object],default:!1},autocomplete:{type:String,default:"off"},autoComplete:{type:String,validator:function(e){return!0}},validateEvent:{type:Boolean,default:!0},suffixIcon:String,prefixIcon:String,label:String,clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},tabindex:String},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},validateState:function(){return this.elFormItem?this.elFormItem.validateState:""},needStatusIcon:function(){return!!this.elForm&&this.elForm.statusIcon},validateIcon:function(){return{validating:"el-icon-loading",success:"el-icon-circle-check",error:"el-icon-circle-close"}[this.validateState]},textareaStyle:function(){return Q({},this.textareaCalcStyle,{resize:this.resize})},inputSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},inputDisabled:function(){return this.disabled||(this.elForm||{}).disabled},nativeInputValue:function(){return null===this.value||void 0===this.value?"":String(this.value)},showClear:function(){return this.clearable&&!this.inputDisabled&&!this.readonly&&this.nativeInputValue&&(this.focused||this.hovering)},showPwdVisible:function(){return this.showPassword&&!this.inputDisabled&&!this.readonly&&(!!this.nativeInputValue||this.focused)},isWordLimitVisible:function(){return this.showWordLimit&&this.$attrs.maxlength&&("text"===this.type||"textarea"===this.type)&&!this.inputDisabled&&!this.readonly&&!this.showPassword},upperLimit:function(){return this.$attrs.maxlength},textLength:function(){return"number"==typeof this.value?String(this.value).length:(this.value||"").length},inputExceed:function(){return this.isWordLimitVisible&&this.textLength>this.upperLimit}},watch:{value:function(e){this.$nextTick(this.resizeTextarea),this.validateEvent&&this.dispatch("ElFormItem","el.form.change",[e])},nativeInputValue:function(){this.setNativeInputValue()},type:function(){var e=this;this.$nextTick(function(){e.setNativeInputValue(),e.resizeTextarea(),e.updateIconOffset()})}},methods:{focus:function(){this.getInput().focus()},blur:function(){this.getInput().blur()},getMigratingConfig:function(){return{props:{icon:"icon is removed, use suffix-icon / prefix-icon instead.","on-icon-click":"on-icon-click is removed."},events:{click:"click is removed."}}},handleBlur:function(e){this.focused=!1,this.$emit("blur",e),this.validateEvent&&this.dispatch("ElFormItem","el.form.blur",[this.value])},select:function(){this.getInput().select()},resizeTextarea:function(){if(!this.$isServer){var e=this.autosize;if("textarea"===this.type)if(e){var t=e.minRows,i=e.maxRows;this.textareaCalcStyle=J(this.$refs.textarea,t,i)}else this.textareaCalcStyle={minHeight:J(this.$refs.textarea).minHeight}}},setNativeInputValue:function(){var e=this.getInput();e&&e.value!==this.nativeInputValue&&(e.value=this.nativeInputValue)},handleFocus:function(e){this.focused=!0,this.$emit("focus",e)},handleCompositionStart:function(){this.isComposing=!0},handleCompositionUpdate:function(e){var t=e.target.value,i=t[t.length-1]||"";this.isComposing=!te(i)},handleCompositionEnd:function(e){this.isComposing&&(this.isComposing=!1,this.handleInput(e))},handleInput:function(e){this.isComposing||e.target.value!==this.nativeInputValue&&(this.$emit("input",e.target.value),this.$nextTick(this.setNativeInputValue))},handleChange:function(e){this.$emit("change",e.target.value)},calcIconOffset:function(e){var t=[].slice.call(this.$el.querySelectorAll(".el-input__"+e)||[]);if(t.length){for(var i=null,n=0;n<t.length;n++)if(t[n].parentNode===this.$el){i=t[n];break}if(i){var r={suffix:"append",prefix:"prepend"}[e];this.$slots[r]?i.style.transform="translateX("+("suffix"===e?"-":"")+this.$el.querySelector(".el-input-group__"+r).offsetWidth+"px)":i.removeAttribute("style")}}},updateIconOffset:function(){this.calcIconOffset("prefix"),this.calcIconOffset("suffix")},clear:function(){this.$emit("input",""),this.$emit("change",""),this.$emit("clear")},handlePasswordVisible:function(){var e=this;this.passwordVisible=!this.passwordVisible,this.$nextTick(function(){e.focus()})},getInput:function(){return this.$refs.input||this.$refs.textarea},getSuffixVisible:function(){return this.$slots.suffix||this.suffixIcon||this.showClear||this.showPassword||this.isWordLimitVisible||this.validateState&&this.needStatusIcon}},created:function(){this.$on("inputSelect",this.select)},mounted:function(){this.setNativeInputValue(),this.resizeTextarea(),this.updateIconOffset()},updated:function(){this.$nextTick(this.updateIconOffset)}},K,[],!1,null,null,null);ie.options.__file="packages/input/src/input.vue";var ne=ie.exports;ne.install=function(e){e.component(ne.name,ne)};var re=ne,se=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-select-dropdown el-popper",class:[{"is-multiple":this.$parent.multiple},this.popperClass],style:{minWidth:this.minWidth}},[this._t("default")],2)};se._withStripped=!0;"function"==typeof Symbol&&Symbol.iterator;var ae=h.a.prototype.$isServer,oe=/([\:\-\_]+(.))/g,le=/^moz([A-Z])/,ue=ae?0:Number(document.documentMode),ce=function(e){return(e||"").replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g,"")},he=function(e){return e.replace(oe,function(e,t,i,n){return n?i.toUpperCase():i}).replace(le,"Moz$1")},de=!ae&&document.addEventListener?function(e,t,i){e&&t&&i&&e.addEventListener(t,i,!1)}:function(e,t,i){e&&t&&i&&e.attachEvent("on"+t,i)},pe=!ae&&document.removeEventListener?function(e,t,i){e&&t&&e.removeEventListener(t,i,!1)}:function(e,t,i){e&&t&&e.detachEvent("on"+t,i)};function fe(e,t){if(!e||!t)return!1;if(-1!==t.indexOf(" "))throw new Error("className should not contain space.");return e.classList?e.classList.contains(t):(" "+e.className+" ").indexOf(" "+t+" ")>-1}function me(e,t){if(e){for(var i=e.className,n=(t||"").split(" "),r=0,s=n.length;r<s;r++){var a=n[r];a&&(e.classList?e.classList.add(a):fe(e,a)||(i+=" "+a))}e.classList||(e.className=i)}}function ve(e,t){if(e&&t){for(var i=t.split(" "),n=" "+e.className+" ",r=0,s=i.length;r<s;r++){var a=i[r];a&&(e.classList?e.classList.remove(a):fe(e,a)&&(n=n.replace(" "+a+" "," ")))}e.classList||(e.className=ce(n))}}var ge=ue<9?function(e,t){if(!ae){if(!e||!t)return null;"float"===(t=he(t))&&(t="styleFloat");try{switch(t){case"opacity":try{return e.filters.item("alpha").opacity/100}catch(e){return 1}default:return e.style[t]||e.currentStyle?e.currentStyle[t]:null}}catch(i){return e.style[t]}}}:function(e,t){if(!ae){if(!e||!t)return null;"float"===(t=he(t))&&(t="cssFloat");try{var i=document.defaultView.getComputedStyle(e,"");return e.style[t]||i?i[t]:null}catch(i){return e.style[t]}}};var be=function(e,t){if(!ae)return ge(e,null!==t||void 0!==t?t?"overflow-y":"overflow-x":"overflow").match(/(scroll|auto)/)},ye=function(e,t){if(!ae){for(var i=e;i;){if([window,document,document.documentElement].includes(i))return window;if(be(i,t))return i;i=i.parentNode}return i}},we=!1,_e=!1,xe=void 0,Ce=function(){if(!h.a.prototype.$isServer){var e=Se.modalDom;return e?we=!0:(we=!1,e=document.createElement("div"),Se.modalDom=e,e.addEventListener("touchmove",function(e){e.preventDefault(),e.stopPropagation()}),e.addEventListener("click",function(){Se.doOnModalClick&&Se.doOnModalClick()})),e}},ke={},Se={modalFade:!0,getInstance:function(e){return ke[e]},register:function(e,t){e&&t&&(ke[e]=t)},deregister:function(e){e&&(ke[e]=null,delete ke[e])},nextZIndex:function(){return Se.zIndex++},modalStack:[],doOnModalClick:function(){var e=Se.modalStack[Se.modalStack.length-1];if(e){var t=Se.getInstance(e.id);t&&t.closeOnClickModal&&t.close()}},openModal:function(e,t,i,n,r){if(!h.a.prototype.$isServer&&e&&void 0!==t){this.modalFade=r;for(var s=this.modalStack,a=0,o=s.length;a<o;a++){if(s[a].id===e)return}var l=Ce();if(me(l,"v-modal"),this.modalFade&&!we&&me(l,"v-modal-enter"),n)n.trim().split(/\s+/).forEach(function(e){return me(l,e)});setTimeout(function(){ve(l,"v-modal-enter")},200),i&&i.parentNode&&11!==i.parentNode.nodeType?i.parentNode.appendChild(l):document.body.appendChild(l),t&&(l.style.zIndex=t),l.tabIndex=0,l.style.display="",this.modalStack.push({id:e,zIndex:t,modalClass:n})}},closeModal:function(e){var t=this.modalStack,i=Ce();if(t.length>0){var n=t[t.length-1];if(n.id===e){if(n.modalClass)n.modalClass.trim().split(/\s+/).forEach(function(e){return ve(i,e)});t.pop(),t.length>0&&(i.style.zIndex=t[t.length-1].zIndex)}else for(var r=t.length-1;r>=0;r--)if(t[r].id===e){t.splice(r,1);break}}0===t.length&&(this.modalFade&&me(i,"v-modal-leave"),setTimeout(function(){0===t.length&&(i.parentNode&&i.parentNode.removeChild(i),i.style.display="none",Se.modalDom=void 0),ve(i,"v-modal-leave")},200))}};Object.defineProperty(Se,"zIndex",{configurable:!0,get:function(){return _e||(xe=xe||(h.a.prototype.$ELEMENT||{}).zIndex||2e3,_e=!0),xe},set:function(e){xe=e}});h.a.prototype.$isServer||window.addEventListener("keydown",function(e){if(27===e.keyCode){var t=function(){if(!h.a.prototype.$isServer&&Se.modalStack.length>0){var e=Se.modalStack[Se.modalStack.length-1];if(!e)return;return Se.getInstance(e.id)}}();t&&t.closeOnPressEscape&&(t.handleClose?t.handleClose():t.handleAction?t.handleAction("cancel"):t.close())}});var De=Se,$e=void 0,Ee=function(){if(h.a.prototype.$isServer)return 0;if(void 0!==$e)return $e;var e=document.createElement("div");e.className="el-scrollbar__wrap",e.style.visibility="hidden",e.style.width="100px",e.style.position="absolute",e.style.top="-9999px",document.body.appendChild(e);var t=e.offsetWidth;e.style.overflow="scroll";var i=document.createElement("div");i.style.width="100%",e.appendChild(i);var n=i.offsetWidth;return e.parentNode.removeChild(e),$e=t-n},Te=1,Me=void 0,Ne={props:{visible:{type:Boolean,default:!1},openDelay:{},closeDelay:{},zIndex:{},modal:{type:Boolean,default:!1},modalFade:{type:Boolean,default:!0},modalClass:{},modalAppendToBody:{type:Boolean,default:!1},lockScroll:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!1},closeOnClickModal:{type:Boolean,default:!1}},beforeMount:function(){this._popupId="popup-"+Te++,De.register(this._popupId,this)},beforeDestroy:function(){De.deregister(this._popupId),De.closeModal(this._popupId),this.restoreBodyStyle()},data:function(){return{opened:!1,bodyPaddingRight:null,computedBodyPaddingRight:0,withoutHiddenClass:!0,rendered:!1}},watch:{visible:function(e){var t=this;if(e){if(this._opening)return;this.rendered?this.open():(this.rendered=!0,h.a.nextTick(function(){t.open()}))}else this.close()}},methods:{open:function(e){var t=this;this.rendered||(this.rendered=!0);var i=Q({},this.$props||this,e);this._closeTimer&&(clearTimeout(this._closeTimer),this._closeTimer=null),clearTimeout(this._openTimer);var n=Number(i.openDelay);n>0?this._openTimer=setTimeout(function(){t._openTimer=null,t.doOpen(i)},n):this.doOpen(i)},doOpen:function(e){if(!this.$isServer&&(!this.willOpen||this.willOpen())&&!this.opened){this._opening=!0;var t=this.$el,i=e.modal,n=e.zIndex;if(n&&(De.zIndex=n),i&&(this._closing&&(De.closeModal(this._popupId),this._closing=!1),De.openModal(this._popupId,De.nextZIndex(),this.modalAppendToBody?void 0:t,e.modalClass,e.modalFade),e.lockScroll)){this.withoutHiddenClass=!fe(document.body,"el-popup-parent--hidden"),this.withoutHiddenClass&&(this.bodyPaddingRight=document.body.style.paddingRight,this.computedBodyPaddingRight=parseInt(ge(document.body,"paddingRight"),10)),Me=Ee();var r=document.documentElement.clientHeight<document.body.scrollHeight,s=ge(document.body,"overflowY");Me>0&&(r||"scroll"===s)&&this.withoutHiddenClass&&(document.body.style.paddingRight=this.computedBodyPaddingRight+Me+"px"),me(document.body,"el-popup-parent--hidden")}"static"===getComputedStyle(t).position&&(t.style.position="absolute"),t.style.zIndex=De.nextZIndex(),this.opened=!0,this.onOpen&&this.onOpen(),this.doAfterOpen()}},doAfterOpen:function(){this._opening=!1},close:function(){var e=this;if(!this.willClose||this.willClose()){null!==this._openTimer&&(clearTimeout(this._openTimer),this._openTimer=null),clearTimeout(this._closeTimer);var t=Number(this.closeDelay);t>0?this._closeTimer=setTimeout(function(){e._closeTimer=null,e.doClose()},t):this.doClose()}},doClose:function(){this._closing=!0,this.onClose&&this.onClose(),this.lockScroll&&setTimeout(this.restoreBodyStyle,200),this.opened=!1,this.doAfterClose()},doAfterClose:function(){De.closeModal(this._popupId),this._closing=!1},restoreBodyStyle:function(){this.modal&&this.withoutHiddenClass&&(document.body.style.paddingRight=this.bodyPaddingRight,ve(document.body,"el-popup-parent--hidden")),this.withoutHiddenClass=!0}}},Pe=h.a.prototype.$isServer?function(){}:i(50),Oe=function(e){return e.stopPropagation()},Ie={props:{transformOrigin:{type:[Boolean,String],default:!0},placement:{type:String,default:"bottom"},boundariesPadding:{type:Number,default:5},reference:{},popper:{},offset:{default:0},value:Boolean,visibleArrow:Boolean,arrowOffset:{type:Number,default:35},appendToBody:{type:Boolean,default:!0},popperOptions:{type:Object,default:function(){return{gpuAcceleration:!1}}}},data:function(){return{showPopper:!1,currentPlacement:""}},watch:{value:{immediate:!0,handler:function(e){this.showPopper=e,this.$emit("input",e)}},showPopper:function(e){this.disabled||(e?this.updatePopper():this.destroyPopper(),this.$emit("input",e))}},methods:{createPopper:function(){var e=this;if(!this.$isServer&&(this.currentPlacement=this.currentPlacement||this.placement,/^(top|bottom|left|right)(-start|-end)?$/g.test(this.currentPlacement))){var t=this.popperOptions,i=this.popperElm=this.popperElm||this.popper||this.$refs.popper,n=this.referenceElm=this.referenceElm||this.reference||this.$refs.reference;!n&&this.$slots.reference&&this.$slots.reference[0]&&(n=this.referenceElm=this.$slots.reference[0].elm),i&&n&&(this.visibleArrow&&this.appendArrow(i),this.appendToBody&&document.body.appendChild(this.popperElm),this.popperJS&&this.popperJS.destroy&&this.popperJS.destroy(),t.placement=this.currentPlacement,t.offset=this.offset,t.arrowOffset=this.arrowOffset,this.popperJS=new Pe(n,i,t),this.popperJS.onCreate(function(t){e.$emit("created",e),e.resetTransformOrigin(),e.$nextTick(e.updatePopper)}),"function"==typeof t.onUpdate&&this.popperJS.onUpdate(t.onUpdate),this.popperJS._popper.style.zIndex=De.nextZIndex(),this.popperElm.addEventListener("click",Oe))}},updatePopper:function(){var e=this.popperJS;e?(e.update(),e._popper&&(e._popper.style.zIndex=De.nextZIndex())):this.createPopper()},doDestroy:function(e){!this.popperJS||this.showPopper&&!e||(this.popperJS.destroy(),this.popperJS=null)},destroyPopper:function(){this.popperJS&&this.resetTransformOrigin()},resetTransformOrigin:function(){if(this.transformOrigin){var e=this.popperJS._popper.getAttribute("x-placement").split("-")[0],t={top:"bottom",bottom:"top",left:"right",right:"left"}[e];this.popperJS._popper.style.transformOrigin="string"==typeof this.transformOrigin?this.transformOrigin:["top","bottom"].indexOf(e)>-1?"center "+t:t+" center"}},appendArrow:function(e){var t=void 0;if(!this.appended){for(var i in this.appended=!0,e.attributes)if(/^_v-/.test(e.attributes[i].name)){t=e.attributes[i].name;break}var n=document.createElement("div");t&&n.setAttribute(t,""),n.setAttribute("x-arrow",""),n.className="popper__arrow",e.appendChild(n)}}},beforeDestroy:function(){this.doDestroy(!0),this.popperElm&&this.popperElm.parentNode===document.body&&(this.popperElm.removeEventListener("click",Oe),document.body.removeChild(this.popperElm))},deactivated:function(){this.$options.beforeDestroy[0].call(this)}},Ae=r({name:"ElSelectDropdown",componentName:"ElSelectDropdown",mixins:[Ie],props:{placement:{default:"bottom-start"},boundariesPadding:{default:0},popperOptions:{default:function(){return{gpuAcceleration:!1}}},visibleArrow:{default:!0},appendToBody:{type:Boolean,default:!0}},data:function(){return{minWidth:""}},computed:{popperClass:function(){return this.$parent.popperClass}},watch:{"$parent.inputWidth":function(){this.minWidth=this.$parent.$el.getBoundingClientRect().width+"px"}},mounted:function(){var e=this;this.referenceElm=this.$parent.$refs.reference.$el,this.$parent.popperElm=this.popperElm=this.$el,this.$on("updatePopper",function(){e.$parent.visible&&e.updatePopper()}),this.$on("destroyPopper",this.destroyPopper)}},se,[],!1,null,null,null);Ae.options.__file="packages/select/src/select-dropdown.vue";var Fe=Ae.exports,Le=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("li",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-select-dropdown__item",class:{selected:e.itemSelected,"is-disabled":e.disabled||e.groupDisabled||e.limitReached,hover:e.hover},on:{mouseenter:e.hoverItem,click:function(t){return t.stopPropagation(),e.selectOptionClick(t)}}},[e._t("default",[i("span",[e._v(e._s(e.currentLabel))])])],2)};Le._withStripped=!0;var Ve="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Be=r({mixins:[l],name:"ElOption",componentName:"ElOption",inject:["select"],props:{value:{required:!0},label:[String,Number],created:Boolean,disabled:{type:Boolean,default:!1}},data:function(){return{index:-1,groupDisabled:!1,visible:!0,hitState:!1,hover:!1}},computed:{isObject:function(){return"[object object]"===Object.prototype.toString.call(this.value).toLowerCase()},currentLabel:function(){return this.label||(this.isObject?"":this.value)},currentValue:function(){return this.value||this.label||""},itemSelected:function(){return this.select.multiple?this.contains(this.select.value,this.value):this.isEqual(this.value,this.select.value)},limitReached:function(){return!!this.select.multiple&&(!this.itemSelected&&(this.select.value||[]).length>=this.select.multipleLimit&&this.select.multipleLimit>0)}},watch:{currentLabel:function(){this.created||this.select.remote||this.dispatch("ElSelect","setSelected")},value:function(e,t){var i=this.select,n=i.remote,r=i.valueKey;if(!this.created&&!n){if(r&&"object"===(void 0===e?"undefined":Ve(e))&&"object"===(void 0===t?"undefined":Ve(t))&&e[r]===t[r])return;this.dispatch("ElSelect","setSelected")}}},methods:{isEqual:function(e,t){if(this.isObject){var i=this.select.valueKey;return S(e,i)===S(t,i)}return e===t},contains:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1];if(this.isObject){var i=this.select.valueKey;return e&&e.some(function(e){return S(e,i)===S(t,i)})}return e&&e.indexOf(t)>-1},handleGroupDisabled:function(e){this.groupDisabled=e},hoverItem:function(){this.disabled||this.groupDisabled||(this.select.hoverIndex=this.select.options.indexOf(this))},selectOptionClick:function(){!0!==this.disabled&&!0!==this.groupDisabled&&this.dispatch("ElSelect","handleOptionClick",[this,!0])},queryChange:function(e){this.visible=new RegExp(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return String(e).replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")}(e),"i").test(this.currentLabel)||this.created,this.visible||this.select.filteredOptionsCount--}},created:function(){this.select.options.push(this),this.select.cachedOptions.push(this),this.select.optionsCount++,this.select.filteredOptionsCount++,this.$on("queryChange",this.queryChange),this.$on("handleGroupDisabled",this.handleGroupDisabled)},beforeDestroy:function(){var e=this.select,t=e.selected,i=e.multiple?t:[t],n=this.select.cachedOptions.indexOf(this),r=i.indexOf(this);n>-1&&r<0&&this.select.cachedOptions.splice(n,1),this.select.onOptionDestroy(this.select.options.indexOf(this))}},Le,[],!1,null,null,null);Be.options.__file="packages/select/src/option.vue";var ze=Be.exports,He=r({name:"ElTag",props:{text:String,closable:Boolean,type:String,hit:Boolean,disableTransitions:Boolean,color:String,size:String,effect:{type:String,default:"light",validator:function(e){return-1!==["dark","light","plain"].indexOf(e)}}},methods:{handleClose:function(e){e.stopPropagation(),this.$emit("close",e)},handleClick:function(e){this.$emit("click",e)}},computed:{tagSize:function(){return this.size||(this.$ELEMENT||{}).size}},render:function(e){var t=this.type,i=this.tagSize,n=this.hit,r=this.effect,s=e("span",{class:["el-tag",t?"el-tag--"+t:"",i?"el-tag--"+i:"",r?"el-tag--"+r:"",n&&"is-hit"],style:{backgroundColor:this.color},on:{click:this.handleClick}},[this.$slots.default,this.closable&&e("i",{class:"el-tag__close el-icon-close",on:{click:this.handleClose}})]);return this.disableTransitions?s:e("transition",{attrs:{name:"el-zoom-in-center"}},[s])}},void 0,void 0,!1,null,null,null);He.options.__file="packages/tag/src/tag.vue";var Re=He.exports;Re.install=function(e){e.component(Re.name,Re)};var We=Re,je=i(47),qe="undefined"==typeof window,Ye=function(e){var t=e,i=Array.isArray(t),n=0;for(t=i?t:t[Symbol.iterator]();;){var r;if(i){if(n>=t.length)break;r=t[n++]}else{if((n=t.next()).done)break;r=n.value}var s=r.target.__resizeListeners__||[];s.length&&s.forEach(function(e){e()})}},Ke=function(e,t){qe||(e.__resizeListeners__||(e.__resizeListeners__=[],e.__ro__=new je.a(Ye),e.__ro__.observe(e)),e.__resizeListeners__.push(t))},Ge=function(e,t){e&&e.__resizeListeners__&&(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),e.__resizeListeners__.length||e.__ro__.disconnect())},Ue={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}};function Xe(e){var t=e.move,i=e.size,n=e.bar,r={},s="translate"+n.axis+"("+t+"%)";return r[n.size]=i,r.transform=s,r.msTransform=s,r.webkitTransform=s,r}var Ze={name:"Bar",props:{vertical:Boolean,size:String,move:Number},computed:{bar:function(){return Ue[this.vertical?"vertical":"horizontal"]},wrap:function(){return this.$parent.wrap}},render:function(e){var t=this.size,i=this.move,n=this.bar;return e("div",{class:["el-scrollbar__bar","is-"+n.key],on:{mousedown:this.clickTrackHandler}},[e("div",{ref:"thumb",class:"el-scrollbar__thumb",on:{mousedown:this.clickThumbHandler},style:Xe({size:t,move:i,bar:n})})])},methods:{clickThumbHandler:function(e){e.ctrlKey||2===e.button||(this.startDrag(e),this[this.bar.axis]=e.currentTarget[this.bar.offset]-(e[this.bar.client]-e.currentTarget.getBoundingClientRect()[this.bar.direction]))},clickTrackHandler:function(e){var t=100*(Math.abs(e.target.getBoundingClientRect()[this.bar.direction]-e[this.bar.client])-this.$refs.thumb[this.bar.offset]/2)/this.$el[this.bar.offset];this.wrap[this.bar.scroll]=t*this.wrap[this.bar.scrollSize]/100},startDrag:function(e){e.stopImmediatePropagation(),this.cursorDown=!0,de(document,"mousemove",this.mouseMoveDocumentHandler),de(document,"mouseup",this.mouseUpDocumentHandler),document.onselectstart=function(){return!1}},mouseMoveDocumentHandler:function(e){if(!1!==this.cursorDown){var t=this[this.bar.axis];if(t){var i=100*(-1*(this.$el.getBoundingClientRect()[this.bar.direction]-e[this.bar.client])-(this.$refs.thumb[this.bar.offset]-t))/this.$el[this.bar.offset];this.wrap[this.bar.scroll]=i*this.wrap[this.bar.scrollSize]/100}}},mouseUpDocumentHandler:function(e){this.cursorDown=!1,this[this.bar.axis]=0,pe(document,"mousemove",this.mouseMoveDocumentHandler),document.onselectstart=null}},destroyed:function(){pe(document,"mouseup",this.mouseUpDocumentHandler)}},Je={name:"ElScrollbar",components:{Bar:Ze},props:{native:Boolean,wrapStyle:{},wrapClass:{},viewClass:{},viewStyle:{},noresize:Boolean,tag:{type:String,default:"div"}},data:function(){return{sizeWidth:"0",sizeHeight:"0",moveX:0,moveY:0}},computed:{wrap:function(){return this.$refs.wrap}},render:function(e){var t=Ee(),i=this.wrapStyle;if(t){var n="-"+t+"px",r="margin-bottom: "+n+"; margin-right: "+n+";";Array.isArray(this.wrapStyle)?(i=function(e){for(var t={},i=0;i<e.length;i++)e[i]&&k(t,e[i]);return t}(this.wrapStyle)).marginRight=i.marginBottom=n:"string"==typeof this.wrapStyle?i+=r:i=r}var s=e(this.tag,{class:["el-scrollbar__view",this.viewClass],style:this.viewStyle,ref:"resize"},this.$slots.default),a=e("div",{ref:"wrap",style:i,on:{scroll:this.handleScroll},class:[this.wrapClass,"el-scrollbar__wrap",t?"":"el-scrollbar__wrap--hidden-default"]},[[s]]),o=void 0;return o=this.native?[e("div",{ref:"wrap",class:[this.wrapClass,"el-scrollbar__wrap"],style:i},[[s]])]:[a,e(Ze,{attrs:{move:this.moveX,size:this.sizeWidth}}),e(Ze,{attrs:{vertical:!0,move:this.moveY,size:this.sizeHeight}})],e("div",{class:"el-scrollbar"},o)},methods:{handleScroll:function(){var e=this.wrap;this.moveY=100*e.scrollTop/e.clientHeight,this.moveX=100*e.scrollLeft/e.clientWidth},update:function(){var e,t,i=this.wrap;i&&(e=100*i.clientHeight/i.scrollHeight,t=100*i.clientWidth/i.scrollWidth,this.sizeHeight=e<100?e+"%":"",this.sizeWidth=t<100?t+"%":"")}},mounted:function(){this.native||(this.$nextTick(this.update),!this.noresize&&Ke(this.$refs.resize,this.update))},beforeDestroy:function(){this.native||!this.noresize&&Ge(this.$refs.resize,this.update)},install:function(e){e.component(Je.name,Je)}},Qe=Je,et=i(1),tt=i.n(et),it=[],nt="@@clickoutsideContext",rt=void 0,st=0;function at(e,t,i){return function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!(i&&i.context&&n.target&&r.target)||e.contains(n.target)||e.contains(r.target)||e===n.target||i.context.popperElm&&(i.context.popperElm.contains(n.target)||i.context.popperElm.contains(r.target))||(t.expression&&e[nt].methodName&&i.context[e[nt].methodName]?i.context[e[nt].methodName]():e[nt].bindingFn&&e[nt].bindingFn())}}!h.a.prototype.$isServer&&de(document,"mousedown",function(e){return rt=e}),!h.a.prototype.$isServer&&de(document,"mouseup",function(e){it.forEach(function(t){return t[nt].documentHandler(e,rt)})});var ot={bind:function(e,t,i){it.push(e);var n=st++;e[nt]={id:n,documentHandler:at(e,t,i),methodName:t.expression,bindingFn:t.value}},update:function(e,t,i){e[nt].documentHandler=at(e,t,i),e[nt].methodName=t.expression,e[nt].bindingFn=t.value},unbind:function(e){for(var t=it.length,i=0;i<t;i++)if(it[i][nt].id===e[nt].id){it.splice(i,1);break}delete e[nt]}};function lt(e,t){if(!h.a.prototype.$isServer)if(t){for(var i=[],n=t.offsetParent;n&&e!==n&&e.contains(n);)i.push(n),n=n.offsetParent;var r=t.offsetTop+i.reduce(function(e,t){return e+t.offsetTop},0),s=r+t.offsetHeight,a=e.scrollTop,o=a+e.clientHeight;r<a?e.scrollTop=r:s>o&&(e.scrollTop=s-e.clientHeight)}else e.scrollTop=0}var ut=r({mixins:[l,Y,u("reference"),{data:function(){return{hoverOption:-1}},computed:{optionsAllDisabled:function(){return this.options.filter(function(e){return e.visible}).every(function(e){return e.disabled})}},watch:{hoverIndex:function(e){var t=this;"number"==typeof e&&e>-1&&(this.hoverOption=this.options[e]||{}),this.options.forEach(function(e){e.hover=t.hoverOption===e})}},methods:{navigateOptions:function(e){var t=this;if(this.visible){if(0!==this.options.length&&0!==this.filteredOptionsCount&&!this.optionsAllDisabled){"next"===e?(this.hoverIndex++,this.hoverIndex===this.options.length&&(this.hoverIndex=0)):"prev"===e&&(this.hoverIndex--,this.hoverIndex<0&&(this.hoverIndex=this.options.length-1));var i=this.options[this.hoverIndex];!0!==i.disabled&&!0!==i.groupDisabled&&i.visible||this.navigateOptions(e),this.$nextTick(function(){return t.scrollToOption(t.hoverOption)})}}else this.visible=!0}}}],name:"ElSelect",componentName:"ElSelect",inject:{elForm:{default:""},elFormItem:{default:""}},provide:function(){return{select:this}},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},readonly:function(){return!this.filterable||this.multiple||!(!h.a.prototype.$isServer&&!isNaN(Number(document.documentMode)))&&!(!h.a.prototype.$isServer&&navigator.userAgent.indexOf("Edge")>-1)&&!this.visible},showClose:function(){var e=this.multiple?Array.isArray(this.value)&&this.value.length>0:void 0!==this.value&&null!==this.value&&""!==this.value;return this.clearable&&!this.selectDisabled&&this.inputHovering&&e},iconClass:function(){return this.remote&&this.filterable?"":this.visible?"arrow-up is-reverse":"arrow-up"},debounce:function(){return this.remote?300:0},emptyText:function(){return this.loading?this.loadingText||this.t("el.select.loading"):(!this.remote||""!==this.query||0!==this.options.length)&&(this.filterable&&this.query&&this.options.length>0&&0===this.filteredOptionsCount?this.noMatchText||this.t("el.select.noMatch"):0===this.options.length?this.noDataText||this.t("el.select.noData"):null)},showNewOption:function(){var e=this,t=this.options.filter(function(e){return!e.created}).some(function(t){return t.currentLabel===e.query});return this.filterable&&this.allowCreate&&""!==this.query&&!t},selectSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},selectDisabled:function(){return this.disabled||(this.elForm||{}).disabled},collapseTagSize:function(){return["small","mini"].indexOf(this.selectSize)>-1?"mini":"small"},propPlaceholder:function(){return void 0!==this.placeholder?this.placeholder:this.t("el.select.placeholder")}},components:{ElInput:re,ElSelectMenu:Fe,ElOption:ze,ElTag:We,ElScrollbar:Qe},directives:{Clickoutside:ot},props:{name:String,id:String,value:{required:!0},autocomplete:{type:String,default:"off"},autoComplete:{type:String,validator:function(e){return!0}},automaticDropdown:Boolean,size:String,disabled:Boolean,clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:String,remote:Boolean,loadingText:String,noMatchText:String,noDataText:String,remoteMethod:Function,filterMethod:Function,multiple:Boolean,multipleLimit:{type:Number,default:0},placeholder:{type:String,required:!1},defaultFirstOption:Boolean,reserveKeyword:Boolean,valueKey:{type:String,default:"value"},collapseTags:Boolean,popperAppendToBody:{type:Boolean,default:!0}},data:function(){return{options:[],cachedOptions:[],createdLabel:null,createdSelected:!1,selected:this.multiple?[]:{},inputLength:20,inputWidth:0,initialInputHeight:0,cachedPlaceHolder:"",optionsCount:0,filteredOptionsCount:0,visible:!1,softFocus:!1,selectedLabel:"",hoverIndex:-1,query:"",previousQuery:null,inputHovering:!1,currentPlaceholder:"",menuVisibleOnFocus:!1,isOnComposition:!1,isSilentBlur:!1}},watch:{selectDisabled:function(){var e=this;this.$nextTick(function(){e.resetInputHeight()})},propPlaceholder:function(e){this.cachedPlaceHolder=this.currentPlaceholder=e},value:function(e,t){this.multiple&&(this.resetInputHeight(),e&&e.length>0||this.$refs.input&&""!==this.query?this.currentPlaceholder="":this.currentPlaceholder=this.cachedPlaceHolder,this.filterable&&!this.reserveKeyword&&(this.query="",this.handleQueryChange(this.query))),this.setSelected(),this.filterable&&!this.multiple&&(this.inputLength=20),E(e,t)||this.dispatch("ElFormItem","el.form.change",e)},visible:function(e){var t=this;e?(this.broadcast("ElSelectDropdown","updatePopper"),this.filterable&&(this.query=this.remote?"":this.selectedLabel,this.handleQueryChange(this.query),this.multiple?this.$refs.input.focus():(this.remote||(this.broadcast("ElOption","queryChange",""),this.broadcast("ElOptionGroup","queryChange")),this.selectedLabel&&(this.currentPlaceholder=this.selectedLabel,this.selectedLabel="")))):(this.broadcast("ElSelectDropdown","destroyPopper"),this.$refs.input&&this.$refs.input.blur(),this.query="",this.previousQuery=null,this.selectedLabel="",this.inputLength=20,this.menuVisibleOnFocus=!1,this.resetHoverIndex(),this.$nextTick(function(){t.$refs.input&&""===t.$refs.input.value&&0===t.selected.length&&(t.currentPlaceholder=t.cachedPlaceHolder)}),this.multiple||(this.selected&&(this.filterable&&this.allowCreate&&this.createdSelected&&this.createdLabel?this.selectedLabel=this.createdLabel:this.selectedLabel=this.selected.currentLabel,this.filterable&&(this.query=this.selectedLabel)),this.filterable&&(this.currentPlaceholder=this.cachedPlaceHolder))),this.$emit("visible-change",e)},options:function(){var e=this;if(!this.$isServer){this.$nextTick(function(){e.broadcast("ElSelectDropdown","updatePopper")}),this.multiple&&this.resetInputHeight();var t=this.$el.querySelectorAll("input");-1===[].indexOf.call(t,document.activeElement)&&this.setSelected(),this.defaultFirstOption&&(this.filterable||this.remote)&&this.filteredOptionsCount&&this.checkDefaultFirstOption()}}},methods:{handleComposition:function(e){var t=this,i=e.target.value;if("compositionend"===e.type)this.isOnComposition=!1,this.$nextTick(function(e){return t.handleQueryChange(i)});else{var n=i[i.length-1]||"";this.isOnComposition=!te(n)}},handleQueryChange:function(e){var t=this;this.previousQuery===e||this.isOnComposition||(null!==this.previousQuery||"function"!=typeof this.filterMethod&&"function"!=typeof this.remoteMethod?(this.previousQuery=e,this.$nextTick(function(){t.visible&&t.broadcast("ElSelectDropdown","updatePopper")}),this.hoverIndex=-1,this.multiple&&this.filterable&&this.$nextTick(function(){var e=15*t.$refs.input.value.length+20;t.inputLength=t.collapseTags?Math.min(50,e):e,t.managePlaceholder(),t.resetInputHeight()}),this.remote&&"function"==typeof this.remoteMethod?(this.hoverIndex=-1,this.remoteMethod(e)):"function"==typeof this.filterMethod?(this.filterMethod(e),this.broadcast("ElOptionGroup","queryChange")):(this.filteredOptionsCount=this.optionsCount,this.broadcast("ElOption","queryChange",e),this.broadcast("ElOptionGroup","queryChange")),this.defaultFirstOption&&(this.filterable||this.remote)&&this.filteredOptionsCount&&this.checkDefaultFirstOption()):this.previousQuery=e)},scrollToOption:function(e){var t=Array.isArray(e)&&e[0]?e[0].$el:e.$el;this.$refs.popper&&t&<(this.$refs.popper.$el.querySelector(".el-select-dropdown__wrap"),t);this.$refs.scrollbar&&this.$refs.scrollbar.handleScroll()},handleMenuEnter:function(){var e=this;this.$nextTick(function(){return e.scrollToOption(e.selected)})},emitChange:function(e){E(this.value,e)||this.$emit("change",e)},getOption:function(e){for(var t=void 0,i="[object object]"===Object.prototype.toString.call(e).toLowerCase(),n="[object null]"===Object.prototype.toString.call(e).toLowerCase(),r="[object undefined]"===Object.prototype.toString.call(e).toLowerCase(),s=this.cachedOptions.length-1;s>=0;s--){var a=this.cachedOptions[s];if(i?S(a.value,this.valueKey)===S(e,this.valueKey):a.value===e){t=a;break}}if(t)return t;var o={value:e,currentLabel:i||n||r?"":e};return this.multiple&&(o.hitState=!1),o},setSelected:function(){var e=this;if(!this.multiple){var t=this.getOption(this.value);return t.created?(this.createdLabel=t.currentLabel,this.createdSelected=!0):this.createdSelected=!1,this.selectedLabel=t.currentLabel,this.selected=t,void(this.filterable&&(this.query=this.selectedLabel))}var i=[];Array.isArray(this.value)&&this.value.forEach(function(t){i.push(e.getOption(t))}),this.selected=i,this.$nextTick(function(){e.resetInputHeight()})},handleFocus:function(e){this.softFocus?this.softFocus=!1:((this.automaticDropdown||this.filterable)&&(this.visible=!0,this.filterable&&(this.menuVisibleOnFocus=!0)),this.$emit("focus",e))},blur:function(){this.visible=!1,this.$refs.reference.blur()},handleBlur:function(e){var t=this;setTimeout(function(){t.isSilentBlur?t.isSilentBlur=!1:t.$emit("blur",e)},50),this.softFocus=!1},handleClearClick:function(e){this.deleteSelected(e)},doDestroy:function(){this.$refs.popper&&this.$refs.popper.doDestroy()},handleClose:function(){this.visible=!1},toggleLastOptionHitState:function(e){if(Array.isArray(this.selected)){var t=this.selected[this.selected.length-1];if(t)return!0===e||!1===e?(t.hitState=e,e):(t.hitState=!t.hitState,t.hitState)}},deletePrevTag:function(e){if(e.target.value.length<=0&&!this.toggleLastOptionHitState()){var t=this.value.slice();t.pop(),this.$emit("input",t),this.emitChange(t)}},managePlaceholder:function(){""!==this.currentPlaceholder&&(this.currentPlaceholder=this.$refs.input.value?"":this.cachedPlaceHolder)},resetInputState:function(e){8!==e.keyCode&&this.toggleLastOptionHitState(!1),this.inputLength=15*this.$refs.input.value.length+20,this.resetInputHeight()},resetInputHeight:function(){var e=this;this.collapseTags&&!this.filterable||this.$nextTick(function(){if(e.$refs.reference){var t=e.$refs.reference.$el.childNodes,i=[].filter.call(t,function(e){return"INPUT"===e.tagName})[0],n=e.$refs.tags,r=e.initialInputHeight||40;i.style.height=0===e.selected.length?r+"px":Math.max(n?n.clientHeight+(n.clientHeight>r?6:0):0,r)+"px",e.visible&&!1!==e.emptyText&&e.broadcast("ElSelectDropdown","updatePopper")}})},resetHoverIndex:function(){var e=this;setTimeout(function(){e.multiple?e.selected.length>0?e.hoverIndex=Math.min.apply(null,e.selected.map(function(t){return e.options.indexOf(t)})):e.hoverIndex=-1:e.hoverIndex=e.options.indexOf(e.selected)},300)},handleOptionSelect:function(e,t){var i=this;if(this.multiple){var n=(this.value||[]).slice(),r=this.getValueIndex(n,e.value);r>-1?n.splice(r,1):(this.multipleLimit<=0||n.length<this.multipleLimit)&&n.push(e.value),this.$emit("input",n),this.emitChange(n),e.created&&(this.query="",this.handleQueryChange(""),this.inputLength=20),this.filterable&&this.$refs.input.focus()}else this.$emit("input",e.value),this.emitChange(e.value),this.visible=!1;this.isSilentBlur=t,this.setSoftFocus(),this.visible||this.$nextTick(function(){i.scrollToOption(e)})},setSoftFocus:function(){this.softFocus=!0;var e=this.$refs.input||this.$refs.reference;e&&e.focus()},getValueIndex:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1];if("[object object]"===Object.prototype.toString.call(t).toLowerCase()){var i=this.valueKey,n=-1;return e.some(function(e,r){return S(e,i)===S(t,i)&&(n=r,!0)}),n}return e.indexOf(t)},toggleMenu:function(){this.selectDisabled||(this.menuVisibleOnFocus?this.menuVisibleOnFocus=!1:this.visible=!this.visible,this.visible&&(this.$refs.input||this.$refs.reference).focus())},selectOption:function(){this.visible?this.options[this.hoverIndex]&&this.handleOptionSelect(this.options[this.hoverIndex]):this.toggleMenu()},deleteSelected:function(e){e.stopPropagation();var t=this.multiple?[]:"";this.$emit("input",t),this.emitChange(t),this.visible=!1,this.$emit("clear")},deleteTag:function(e,t){var i=this.selected.indexOf(t);if(i>-1&&!this.selectDisabled){var n=this.value.slice();n.splice(i,1),this.$emit("input",n),this.emitChange(n),this.$emit("remove-tag",t.value)}e.stopPropagation()},onInputChange:function(){this.filterable&&this.query!==this.selectedLabel&&(this.query=this.selectedLabel,this.handleQueryChange(this.query))},onOptionDestroy:function(e){e>-1&&(this.optionsCount--,this.filteredOptionsCount--,this.options.splice(e,1))},resetInputWidth:function(){this.inputWidth=this.$refs.reference.$el.getBoundingClientRect().width},handleResize:function(){this.resetInputWidth(),this.multiple&&this.resetInputHeight()},checkDefaultFirstOption:function(){this.hoverIndex=-1;for(var e=!1,t=this.options.length-1;t>=0;t--)if(this.options[t].created){e=!0,this.hoverIndex=t;break}if(!e)for(var i=0;i!==this.options.length;++i){var n=this.options[i];if(this.query){if(!n.disabled&&!n.groupDisabled&&n.visible){this.hoverIndex=i;break}}else if(n.itemSelected){this.hoverIndex=i;break}}},getValueKey:function(e){return"[object object]"!==Object.prototype.toString.call(e.value).toLowerCase()?e.value:S(e.value,this.valueKey)}},created:function(){var e=this;this.cachedPlaceHolder=this.currentPlaceholder=this.propPlaceholder,this.multiple&&!Array.isArray(this.value)&&this.$emit("input",[]),!this.multiple&&Array.isArray(this.value)&&this.$emit("input",""),this.debouncedOnInputChange=tt()(this.debounce,function(){e.onInputChange()}),this.debouncedQueryChange=tt()(this.debounce,function(t){e.handleQueryChange(t.target.value)}),this.$on("handleOptionClick",this.handleOptionSelect),this.$on("setSelected",this.setSelected)},mounted:function(){var e=this;this.multiple&&Array.isArray(this.value)&&this.value.length>0&&(this.currentPlaceholder=""),Ke(this.$el,this.handleResize);var t=this.$refs.reference;if(t&&t.$el){var i=t.$el.querySelector("input");this.initialInputHeight=i.getBoundingClientRect().height||{medium:36,small:32,mini:28}[this.selectSize]}this.remote&&this.multiple&&this.resetInputHeight(),this.$nextTick(function(){t&&t.$el&&(e.inputWidth=t.$el.getBoundingClientRect().width)}),this.setSelected()},beforeDestroy:function(){this.$el&&this.handleResize&&Ge(this.$el,this.handleResize)}},o,[],!1,null,null,null);ut.options.__file="packages/select/src/select.vue";var ct=ut.exports;ct.install=function(e){e.component(ct.name,ct)};var ht=ct;ze.install=function(e){e.component(ze.name,ze)};var dt=ze,pt={name:"ElPagination",props:{pageSize:{type:Number,default:10},small:Boolean,total:Number,pageCount:Number,pagerCount:{type:Number,validator:function(e){return(0|e)===e&&e>4&&e<22&&e%2==1},default:7},currentPage:{type:Number,default:1},layout:{default:"prev, pager, next, jumper, ->, total"},pageSizes:{type:Array,default:function(){return[10,20,30,40,50,100]}},popperClass:String,prevText:String,nextText:String,background:Boolean,disabled:Boolean,hideOnSinglePage:Boolean},data:function(){return{internalCurrentPage:1,internalPageSize:0,lastEmittedPage:-1,userChangePageSize:!1}},render:function(e){var t=this.layout;if(!t)return null;if(this.hideOnSinglePage&&(!this.internalPageCount||1===this.internalPageCount))return null;var i=e("div",{class:["el-pagination",{"is-background":this.background,"el-pagination--small":this.small}]}),n={prev:e("prev"),jumper:e("jumper"),pager:e("pager",{attrs:{currentPage:this.internalCurrentPage,pageCount:this.internalPageCount,pagerCount:this.pagerCount,disabled:this.disabled},on:{change:this.handleCurrentChange}}),next:e("next"),sizes:e("sizes",{attrs:{pageSizes:this.pageSizes}}),slot:e("slot",[this.$slots.default?this.$slots.default:""]),total:e("total")},r=t.split(",").map(function(e){return e.trim()}),s=e("div",{class:"el-pagination__rightwrapper"}),a=!1;return i.children=i.children||[],s.children=s.children||[],r.forEach(function(e){"->"!==e?a?s.children.push(n[e]):i.children.push(n[e]):a=!0}),a&&i.children.unshift(s),i},components:{Prev:{render:function(e){return e("button",{attrs:{type:"button",disabled:this.$parent.disabled||this.$parent.internalCurrentPage<=1},class:"btn-prev",on:{click:this.$parent.prev}},[this.$parent.prevText?e("span",[this.$parent.prevText]):e("i",{class:"el-icon el-icon-arrow-left"})])}},Next:{render:function(e){return e("button",{attrs:{type:"button",disabled:this.$parent.disabled||this.$parent.internalCurrentPage===this.$parent.internalPageCount||0===this.$parent.internalPageCount},class:"btn-next",on:{click:this.$parent.next}},[this.$parent.nextText?e("span",[this.$parent.nextText]):e("i",{class:"el-icon el-icon-arrow-right"})])}},Sizes:{mixins:[Y],props:{pageSizes:Array},watch:{pageSizes:{immediate:!0,handler:function(e,t){E(e,t)||Array.isArray(e)&&(this.$parent.internalPageSize=e.indexOf(this.$parent.pageSize)>-1?this.$parent.pageSize:this.pageSizes[0])}}},render:function(e){var t=this;return e("span",{class:"el-pagination__sizes"},[e("el-select",{attrs:{value:this.$parent.internalPageSize,popperClass:this.$parent.popperClass||"",size:"mini",disabled:this.$parent.disabled},on:{input:this.handleChange}},[this.pageSizes.map(function(i){return e("el-option",{attrs:{value:i,label:i+t.t("el.pagination.pagesize")}})})])])},components:{ElSelect:ht,ElOption:dt},methods:{handleChange:function(e){e!==this.$parent.internalPageSize&&(this.$parent.internalPageSize=e=parseInt(e,10),this.$parent.userChangePageSize=!0,this.$parent.$emit("update:pageSize",e),this.$parent.$emit("size-change",e))}}},Jumper:{mixins:[Y],components:{ElInput:re},data:function(){return{userInput:null}},watch:{"$parent.internalCurrentPage":function(){this.userInput=null}},methods:{handleKeyup:function(e){var t=e.keyCode,i=e.target;13===t&&this.handleChange(i.value)},handleInput:function(e){this.userInput=e},handleChange:function(e){this.$parent.internalCurrentPage=this.$parent.getValidCurrentPage(e),this.$parent.emitChange(),this.userInput=null}},render:function(e){return e("span",{class:"el-pagination__jump"},[this.t("el.pagination.goto"),e("el-input",{class:"el-pagination__editor is-in-pagination",attrs:{min:1,max:this.$parent.internalPageCount,value:null!==this.userInput?this.userInput:this.$parent.internalCurrentPage,type:"number",disabled:this.$parent.disabled},nativeOn:{keyup:this.handleKeyup},on:{input:this.handleInput,change:this.handleChange}}),this.t("el.pagination.pageClassifier")])}},Total:{mixins:[Y],render:function(e){return"number"==typeof this.$parent.total?e("span",{class:"el-pagination__total"},[this.t("el.pagination.total",{total:this.$parent.total})]):""}},Pager:a},methods:{handleCurrentChange:function(e){this.internalCurrentPage=this.getValidCurrentPage(e),this.userChangePageSize=!0,this.emitChange()},prev:function(){if(!this.disabled){var e=this.internalCurrentPage-1;this.internalCurrentPage=this.getValidCurrentPage(e),this.$emit("prev-click",this.internalCurrentPage),this.emitChange()}},next:function(){if(!this.disabled){var e=this.internalCurrentPage+1;this.internalCurrentPage=this.getValidCurrentPage(e),this.$emit("next-click",this.internalCurrentPage),this.emitChange()}},getValidCurrentPage:function(e){e=parseInt(e,10);var t=void 0;return"number"==typeof this.internalPageCount?e<1?t=1:e>this.internalPageCount&&(t=this.internalPageCount):(isNaN(e)||e<1)&&(t=1),void 0===t&&isNaN(e)?t=1:0===t&&(t=1),void 0===t?e:t},emitChange:function(){var e=this;this.$nextTick(function(){(e.internalCurrentPage!==e.lastEmittedPage||e.userChangePageSize)&&(e.$emit("current-change",e.internalCurrentPage),e.lastEmittedPage=e.internalCurrentPage,e.userChangePageSize=!1)})}},computed:{internalPageCount:function(){return"number"==typeof this.total?Math.max(1,Math.ceil(this.total/this.internalPageSize)):"number"==typeof this.pageCount?Math.max(1,this.pageCount):null}},watch:{currentPage:{immediate:!0,handler:function(e){this.internalCurrentPage=this.getValidCurrentPage(e)}},pageSize:{immediate:!0,handler:function(e){this.internalPageSize=isNaN(e)?10:e}},internalCurrentPage:{immediate:!0,handler:function(e){this.$emit("update:currentPage",e),this.lastEmittedPage=-1}},internalPageCount:function(e){var t=this.internalCurrentPage;e>0&&0===t?this.internalCurrentPage=1:t>e&&(this.internalCurrentPage=0===e?1:e,this.userChangePageSize&&this.emitChange()),this.userChangePageSize=!1}},install:function(e){e.component(pt.name,pt)}},ft=pt,mt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"dialog-fade"},on:{"after-enter":e.afterEnter,"after-leave":e.afterLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-dialog__wrapper",on:{click:function(t){return t.target!==t.currentTarget?null:e.handleWrapperClick(t)}}},[i("div",{key:e.key,ref:"dialog",class:["el-dialog",{"is-fullscreen":e.fullscreen,"el-dialog--center":e.center},e.customClass],style:e.style,attrs:{role:"dialog","aria-modal":"true","aria-label":e.title||"dialog"}},[i("div",{staticClass:"el-dialog__header"},[e._t("title",[i("span",{staticClass:"el-dialog__title"},[e._v(e._s(e.title))])]),e.showClose?i("button",{staticClass:"el-dialog__headerbtn",attrs:{type:"button","aria-label":"Close"},on:{click:e.handleClose}},[i("i",{staticClass:"el-dialog__close el-icon el-icon-close"})]):e._e()],2),e.rendered?i("div",{staticClass:"el-dialog__body"},[e._t("default")],2):e._e(),e.$slots.footer?i("div",{staticClass:"el-dialog__footer"},[e._t("footer")],2):e._e()])])])};mt._withStripped=!0;var vt=r({name:"ElDialog",mixins:[Ne,l,G],props:{title:{type:String,default:""},modal:{type:Boolean,default:!0},modalAppendToBody:{type:Boolean,default:!0},appendToBody:{type:Boolean,default:!1},lockScroll:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},width:String,fullscreen:Boolean,customClass:{type:String,default:""},top:{type:String,default:"15vh"},beforeClose:Function,center:{type:Boolean,default:!1},destroyOnClose:Boolean},data:function(){return{closed:!1,key:0}},watch:{visible:function(e){var t=this;e?(this.closed=!1,this.$emit("open"),this.$el.addEventListener("scroll",this.updatePopper),this.$nextTick(function(){t.$refs.dialog.scrollTop=0}),this.appendToBody&&document.body.appendChild(this.$el)):(this.$el.removeEventListener("scroll",this.updatePopper),this.closed||this.$emit("close"),this.destroyOnClose&&this.$nextTick(function(){t.key++}))}},computed:{style:function(){var e={};return this.fullscreen||(e.marginTop=this.top,this.width&&(e.width=this.width)),e}},methods:{getMigratingConfig:function(){return{props:{size:"size is removed."}}},handleWrapperClick:function(){this.closeOnClickModal&&this.handleClose()},handleClose:function(){"function"==typeof this.beforeClose?this.beforeClose(this.hide):this.hide()},hide:function(e){!1!==e&&(this.$emit("update:visible",!1),this.$emit("close"),this.closed=!0)},updatePopper:function(){this.broadcast("ElSelectDropdown","updatePopper"),this.broadcast("ElDropdownMenu","updatePopper")},afterEnter:function(){this.$emit("opened")},afterLeave:function(){this.$emit("closed")}},mounted:function(){this.visible&&(this.rendered=!0,this.open(),this.appendToBody&&document.body.appendChild(this.$el))},destroyed:function(){this.appendToBody&&this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)}},mt,[],!1,null,null,null);vt.options.__file="packages/dialog/src/component.vue";var gt=vt.exports;gt.install=function(e){e.component(gt.name,gt)};var bt=gt,yt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.close,expression:"close"}],staticClass:"el-autocomplete",attrs:{"aria-haspopup":"listbox",role:"combobox","aria-expanded":e.suggestionVisible,"aria-owns":e.id}},[i("el-input",e._b({ref:"input",on:{input:e.handleInput,change:e.handleChange,focus:e.handleFocus,blur:e.handleBlur,clear:e.handleClear},nativeOn:{keydown:[function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"]))return null;t.preventDefault(),e.highlight(e.highlightedIndex-1)},function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"]))return null;t.preventDefault(),e.highlight(e.highlightedIndex+1)},function(t){return"button"in t||!e._k(t.keyCode,"enter",13,t.key,"Enter")?e.handleKeyEnter(t):null},function(t){return"button"in t||!e._k(t.keyCode,"tab",9,t.key,"Tab")?e.close(t):null}]}},"el-input",[e.$props,e.$attrs],!1),[e.$slots.prepend?i("template",{slot:"prepend"},[e._t("prepend")],2):e._e(),e.$slots.append?i("template",{slot:"append"},[e._t("append")],2):e._e(),e.$slots.prefix?i("template",{slot:"prefix"},[e._t("prefix")],2):e._e(),e.$slots.suffix?i("template",{slot:"suffix"},[e._t("suffix")],2):e._e()],2),i("el-autocomplete-suggestions",{ref:"suggestions",class:[e.popperClass?e.popperClass:""],attrs:{"visible-arrow":"","popper-options":e.popperOptions,"append-to-body":e.popperAppendToBody,placement:e.placement,id:e.id}},e._l(e.suggestions,function(t,n){return i("li",{key:n,class:{highlighted:e.highlightedIndex===n},attrs:{id:e.id+"-item-"+n,role:"option","aria-selected":e.highlightedIndex===n},on:{click:function(i){e.select(t)}}},[e._t("default",[e._v("\n "+e._s(t[e.valueKey])+"\n ")],{item:t})],2)}),0)],1)};yt._withStripped=!0;var wt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":e.doDestroy}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-autocomplete-suggestion el-popper",class:{"is-loading":!e.parent.hideLoading&&e.parent.loading},style:{width:e.dropdownWidth},attrs:{role:"region"}},[i("el-scrollbar",{attrs:{tag:"ul","wrap-class":"el-autocomplete-suggestion__wrap","view-class":"el-autocomplete-suggestion__list"}},[!e.parent.hideLoading&&e.parent.loading?i("li",[i("i",{staticClass:"el-icon-loading"})]):e._t("default")],2)],1)])};wt._withStripped=!0;var _t=r({components:{ElScrollbar:Qe},mixins:[Ie,l],componentName:"ElAutocompleteSuggestions",data:function(){return{parent:this.$parent,dropdownWidth:""}},props:{options:{default:function(){return{gpuAcceleration:!1}}},id:String},methods:{select:function(e){this.dispatch("ElAutocomplete","item-click",e)}},updated:function(){var e=this;this.$nextTick(function(t){e.popperJS&&e.updatePopper()})},mounted:function(){this.$parent.popperElm=this.popperElm=this.$el,this.referenceElm=this.$parent.$refs.input.$refs.input||this.$parent.$refs.input.$refs.textarea,this.referenceList=this.$el.querySelector(".el-autocomplete-suggestion__list"),this.referenceList.setAttribute("role","listbox"),this.referenceList.setAttribute("id",this.id)},created:function(){var e=this;this.$on("visible",function(t,i){e.dropdownWidth=i+"px",e.showPopper=t})}},wt,[],!1,null,null,null);_t.options.__file="packages/autocomplete/src/autocomplete-suggestions.vue";var xt=_t.exports,Ct=r({name:"ElAutocomplete",mixins:[l,u("input"),G],inheritAttrs:!1,componentName:"ElAutocomplete",components:{ElInput:re,ElAutocompleteSuggestions:xt},directives:{Clickoutside:ot},props:{valueKey:{type:String,default:"value"},popperClass:String,popperOptions:Object,placeholder:String,clearable:{type:Boolean,default:!1},disabled:Boolean,name:String,size:String,value:String,maxlength:Number,minlength:Number,autofocus:Boolean,fetchSuggestions:Function,triggerOnFocus:{type:Boolean,default:!0},customItem:String,selectWhenUnmatched:{type:Boolean,default:!1},prefixIcon:String,suffixIcon:String,label:String,debounce:{type:Number,default:300},placement:{type:String,default:"bottom-start"},hideLoading:Boolean,popperAppendToBody:{type:Boolean,default:!0},highlightFirstItem:{type:Boolean,default:!1}},data:function(){return{activated:!1,suggestions:[],loading:!1,highlightedIndex:-1,suggestionDisabled:!1}},computed:{suggestionVisible:function(){var e=this.suggestions;return(Array.isArray(e)&&e.length>0||this.loading)&&this.activated},id:function(){return"el-autocomplete-"+$()}},watch:{suggestionVisible:function(e){var t=this.getInput();t&&this.broadcast("ElAutocompleteSuggestions","visible",[e,t.offsetWidth])}},methods:{getMigratingConfig:function(){return{props:{"custom-item":"custom-item is removed, use scoped slot instead.",props:"props is removed, use value-key instead."}}},getData:function(e){var t=this;this.suggestionDisabled||(this.loading=!0,this.fetchSuggestions(e,function(e){t.loading=!1,t.suggestionDisabled||(Array.isArray(e)?(t.suggestions=e,t.highlightedIndex=t.highlightFirstItem?0:-1):console.error("[Element Error][Autocomplete]autocomplete suggestions must be an array"))}))},handleInput:function(e){if(this.$emit("input",e),this.suggestionDisabled=!1,!this.triggerOnFocus&&!e)return this.suggestionDisabled=!0,void(this.suggestions=[]);this.debouncedGetData(e)},handleChange:function(e){this.$emit("change",e)},handleFocus:function(e){this.activated=!0,this.$emit("focus",e),this.triggerOnFocus&&this.debouncedGetData(this.value)},handleBlur:function(e){this.$emit("blur",e)},handleClear:function(){this.activated=!1,this.$emit("clear")},close:function(e){this.activated=!1},handleKeyEnter:function(e){var t=this;this.suggestionVisible&&this.highlightedIndex>=0&&this.highlightedIndex<this.suggestions.length?(e.preventDefault(),this.select(this.suggestions[this.highlightedIndex])):this.selectWhenUnmatched&&(this.$emit("select",{value:this.value}),this.$nextTick(function(e){t.suggestions=[],t.highlightedIndex=-1}))},select:function(e){var t=this;this.$emit("input",e[this.valueKey]),this.$emit("select",e),this.$nextTick(function(e){t.suggestions=[],t.highlightedIndex=-1})},highlight:function(e){if(this.suggestionVisible&&!this.loading)if(e<0)this.highlightedIndex=-1;else{e>=this.suggestions.length&&(e=this.suggestions.length-1);var t=this.$refs.suggestions.$el.querySelector(".el-autocomplete-suggestion__wrap"),i=t.querySelectorAll(".el-autocomplete-suggestion__list li")[e],n=t.scrollTop,r=i.offsetTop;r+i.scrollHeight>n+t.clientHeight&&(t.scrollTop+=i.scrollHeight),r<n&&(t.scrollTop-=i.scrollHeight),this.highlightedIndex=e,this.getInput().setAttribute("aria-activedescendant",this.id+"-item-"+this.highlightedIndex)}},getInput:function(){return this.$refs.input.getInput()}},mounted:function(){var e=this;this.debouncedGetData=tt()(this.debounce,this.getData),this.$on("item-click",function(t){e.select(t)});var t=this.getInput();t.setAttribute("role","textbox"),t.setAttribute("aria-autocomplete","list"),t.setAttribute("aria-controls","id"),t.setAttribute("aria-activedescendant",this.id+"-item-"+this.highlightedIndex)},beforeDestroy:function(){this.$refs.suggestions.$destroy()}},yt,[],!1,null,null,null);Ct.options.__file="packages/autocomplete/src/autocomplete.vue";var kt=Ct.exports;kt.install=function(e){e.component(kt.name,kt)};var St=kt,Dt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("button",{staticClass:"el-button",class:[e.type?"el-button--"+e.type:"",e.buttonSize?"el-button--"+e.buttonSize:"",{"is-disabled":e.buttonDisabled,"is-loading":e.loading,"is-plain":e.plain,"is-round":e.round,"is-circle":e.circle}],attrs:{disabled:e.buttonDisabled||e.loading,autofocus:e.autofocus,type:e.nativeType},on:{click:e.handleClick}},[e.loading?i("i",{staticClass:"el-icon-loading"}):e._e(),e.icon&&!e.loading?i("i",{class:e.icon}):e._e(),e.$slots.default?i("span",[e._t("default")],2):e._e()])};Dt._withStripped=!0;var $t=r({name:"ElButton",inject:{elForm:{default:""},elFormItem:{default:""}},props:{type:{type:String,default:"default"},size:String,icon:{type:String,default:""},nativeType:{type:String,default:"button"},loading:Boolean,disabled:Boolean,plain:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},buttonSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},buttonDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},methods:{handleClick:function(e){this.$emit("click",e)}}},Dt,[],!1,null,null,null);$t.options.__file="packages/button/src/button.vue";var Et=$t.exports;Et.install=function(e){e.component(Et.name,Et)};var Tt=Et,Mt=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-button-group"},[this._t("default")],2)};Mt._withStripped=!0;var Nt=r({name:"ElButtonGroup"},Mt,[],!1,null,null,null);Nt.options.__file="packages/button/src/button-group.vue";var Pt=Nt.exports;Pt.install=function(e){e.component(Pt.name,Pt)};var Ot=Pt,It=r({name:"ElDropdown",componentName:"ElDropdown",mixins:[l,G],directives:{Clickoutside:ot},components:{ElButton:Tt,ElButtonGroup:Ot},provide:function(){return{dropdown:this}},props:{trigger:{type:String,default:"hover"},type:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},placement:{type:String,default:"bottom-end"},visibleArrow:{default:!0},showTimeout:{type:Number,default:250},hideTimeout:{type:Number,default:150},tabindex:{type:Number,default:0}},data:function(){return{timeout:null,visible:!1,triggerElm:null,menuItems:null,menuItemsArray:null,dropdownElm:null,focusing:!1,listId:"dropdown-menu-"+$()}},computed:{dropdownSize:function(){return this.size||(this.$ELEMENT||{}).size}},mounted:function(){this.$on("menu-item-click",this.handleMenuItemClick)},watch:{visible:function(e){this.broadcast("ElDropdownMenu","visible",e),this.$emit("visible-change",e)},focusing:function(e){var t=this.$el.querySelector(".el-dropdown-selfdefine");t&&(e?t.className+=" focusing":t.className=t.className.replace("focusing",""))}},methods:{getMigratingConfig:function(){return{props:{"menu-align":"menu-align is renamed to placement."}}},show:function(){var e=this;this.triggerElm.disabled||(clearTimeout(this.timeout),this.timeout=setTimeout(function(){e.visible=!0},"click"===this.trigger?0:this.showTimeout))},hide:function(){var e=this;this.triggerElm.disabled||(this.removeTabindex(),this.tabindex>=0&&this.resetTabindex(this.triggerElm),clearTimeout(this.timeout),this.timeout=setTimeout(function(){e.visible=!1},"click"===this.trigger?0:this.hideTimeout))},handleClick:function(){this.triggerElm.disabled||(this.visible?this.hide():this.show())},handleTriggerKeyDown:function(e){var t=e.keyCode;[38,40].indexOf(t)>-1?(this.removeTabindex(),this.resetTabindex(this.menuItems[0]),this.menuItems[0].focus(),e.preventDefault(),e.stopPropagation()):13===t?this.handleClick():[9,27].indexOf(t)>-1&&this.hide()},handleItemKeyDown:function(e){var t=e.keyCode,i=e.target,n=this.menuItemsArray.indexOf(i),r=this.menuItemsArray.length-1,s=void 0;[38,40].indexOf(t)>-1?(s=38===t?0!==n?n-1:0:n<r?n+1:r,this.removeTabindex(),this.resetTabindex(this.menuItems[s]),this.menuItems[s].focus(),e.preventDefault(),e.stopPropagation()):13===t?(this.triggerElmFocus(),i.click(),this.hideOnClick&&(this.visible=!1)):[9,27].indexOf(t)>-1&&(this.hide(),this.triggerElmFocus())},resetTabindex:function(e){this.removeTabindex(),e.setAttribute("tabindex","0")},removeTabindex:function(){this.triggerElm.setAttribute("tabindex","-1"),this.menuItemsArray.forEach(function(e){e.setAttribute("tabindex","-1")})},initAria:function(){this.dropdownElm.setAttribute("id",this.listId),this.triggerElm.setAttribute("aria-haspopup","list"),this.triggerElm.setAttribute("aria-controls",this.listId),this.splitButton||(this.triggerElm.setAttribute("role","button"),this.triggerElm.setAttribute("tabindex",this.tabindex),this.triggerElm.setAttribute("class",(this.triggerElm.getAttribute("class")||"")+" el-dropdown-selfdefine"))},initEvent:function(){var e=this,t=this.trigger,i=this.show,n=this.hide,r=this.handleClick,s=this.splitButton,a=this.handleTriggerKeyDown,o=this.handleItemKeyDown;this.triggerElm=s?this.$refs.trigger.$el:this.$slots.default[0].elm;var l=this.dropdownElm;this.triggerElm.addEventListener("keydown",a),l.addEventListener("keydown",o,!0),s||(this.triggerElm.addEventListener("focus",function(){e.focusing=!0}),this.triggerElm.addEventListener("blur",function(){e.focusing=!1}),this.triggerElm.addEventListener("click",function(){e.focusing=!1})),"hover"===t?(this.triggerElm.addEventListener("mouseenter",i),this.triggerElm.addEventListener("mouseleave",n),l.addEventListener("mouseenter",i),l.addEventListener("mouseleave",n)):"click"===t&&this.triggerElm.addEventListener("click",r)},handleMenuItemClick:function(e,t){this.hideOnClick&&(this.visible=!1),this.$emit("command",e,t)},triggerElmFocus:function(){this.triggerElm.focus&&this.triggerElm.focus()},initDomOperation:function(){this.dropdownElm=this.popperElm,this.menuItems=this.dropdownElm.querySelectorAll("[tabindex='-1']"),this.menuItemsArray=[].slice.call(this.menuItems),this.initEvent(),this.initAria()}},render:function(e){var t=this,i=this.hide,n=this.splitButton,r=this.type,s=this.dropdownSize,a=n?e("el-button-group",[e("el-button",{attrs:{type:r,size:s},nativeOn:{click:function(e){t.$emit("click",e),i()}}},[this.$slots.default]),e("el-button",{ref:"trigger",attrs:{type:r,size:s},class:"el-dropdown__caret-button"},[e("i",{class:"el-dropdown__icon el-icon-arrow-down"})])]):this.$slots.default;return e("div",{class:"el-dropdown",directives:[{name:"clickoutside",value:i}]},[a,this.$slots.dropdown])}},void 0,void 0,!1,null,null,null);It.options.__file="packages/dropdown/src/dropdown.vue";var At=It.exports;At.install=function(e){e.component(At.name,At)};var Ft=At,Lt=function(){var e=this.$createElement,t=this._self._c||e;return t("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":this.doDestroy}},[t("ul",{directives:[{name:"show",rawName:"v-show",value:this.showPopper,expression:"showPopper"}],staticClass:"el-dropdown-menu el-popper",class:[this.size&&"el-dropdown-menu--"+this.size]},[this._t("default")],2)])};Lt._withStripped=!0;var Vt=r({name:"ElDropdownMenu",componentName:"ElDropdownMenu",mixins:[Ie],props:{visibleArrow:{type:Boolean,default:!0},arrowOffset:{type:Number,default:0}},data:function(){return{size:this.dropdown.dropdownSize}},inject:["dropdown"],created:function(){var e=this;this.$on("updatePopper",function(){e.showPopper&&e.updatePopper()}),this.$on("visible",function(t){e.showPopper=t})},mounted:function(){this.dropdown.popperElm=this.popperElm=this.$el,this.referenceElm=this.dropdown.$el,this.dropdown.initDomOperation()},watch:{"dropdown.placement":{immediate:!0,handler:function(e){this.currentPlacement=e}}}},Lt,[],!1,null,null,null);Vt.options.__file="packages/dropdown/src/dropdown-menu.vue";var Bt=Vt.exports;Bt.install=function(e){e.component(Bt.name,Bt)};var zt=Bt,Ht=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("li",{staticClass:"el-dropdown-menu__item",class:{"is-disabled":e.disabled,"el-dropdown-menu__item--divided":e.divided},attrs:{"aria-disabled":e.disabled,tabindex:e.disabled?null:-1},on:{click:e.handleClick}},[e.icon?i("i",{class:e.icon}):e._e(),e._t("default")],2)};Ht._withStripped=!0;var Rt=r({name:"ElDropdownItem",mixins:[l],props:{command:{},disabled:Boolean,divided:Boolean,icon:String},methods:{handleClick:function(e){this.dispatch("ElDropdown","menu-item-click",[this.command,this])}}},Ht,[],!1,null,null,null);Rt.options.__file="packages/dropdown/src/dropdown-item.vue";var Wt=Rt.exports;Wt.install=function(e){e.component(Wt.name,Wt)};var jt=Wt,qt=qt||{};qt.Utils=qt.Utils||{},qt.Utils.focusFirstDescendant=function(e){for(var t=0;t<e.childNodes.length;t++){var i=e.childNodes[t];if(qt.Utils.attemptFocus(i)||qt.Utils.focusFirstDescendant(i))return!0}return!1},qt.Utils.focusLastDescendant=function(e){for(var t=e.childNodes.length-1;t>=0;t--){var i=e.childNodes[t];if(qt.Utils.attemptFocus(i)||qt.Utils.focusLastDescendant(i))return!0}return!1},qt.Utils.attemptFocus=function(e){if(!qt.Utils.isFocusable(e))return!1;qt.Utils.IgnoreUtilFocusChanges=!0;try{e.focus()}catch(e){}return qt.Utils.IgnoreUtilFocusChanges=!1,document.activeElement===e},qt.Utils.isFocusable=function(e){if(e.tabIndex>0||0===e.tabIndex&&null!==e.getAttribute("tabIndex"))return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&"ignore"!==e.rel;case"INPUT":return"hidden"!==e.type&&"file"!==e.type;case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},qt.Utils.triggerEvent=function(e,t){var i=void 0;i=/^mouse|click/.test(t)?"MouseEvents":/^key/.test(t)?"KeyboardEvent":"HTMLEvents";for(var n=document.createEvent(i),r=arguments.length,s=Array(r>2?r-2:0),a=2;a<r;a++)s[a-2]=arguments[a];return n.initEvent.apply(n,[t].concat(s)),e.dispatchEvent?e.dispatchEvent(n):e.fireEvent("on"+t,n),e},qt.Utils.keys={tab:9,enter:13,space:32,left:37,up:38,right:39,down:40,esc:27};var Yt=qt.Utils,Kt=function(e,t){this.domNode=t,this.parent=e,this.subMenuItems=[],this.subIndex=0,this.init()};Kt.prototype.init=function(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()},Kt.prototype.gotoSubIndex=function(e){e===this.subMenuItems.length?e=0:e<0&&(e=this.subMenuItems.length-1),this.subMenuItems[e].focus(),this.subIndex=e},Kt.prototype.addListeners=function(){var e=this,t=Yt.keys,i=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,function(n){n.addEventListener("keydown",function(n){var r=!1;switch(n.keyCode){case t.down:e.gotoSubIndex(e.subIndex+1),r=!0;break;case t.up:e.gotoSubIndex(e.subIndex-1),r=!0;break;case t.tab:Yt.triggerEvent(i,"mouseleave");break;case t.enter:case t.space:r=!0,n.currentTarget.click()}return r&&(n.preventDefault(),n.stopPropagation()),!1})})};var Gt=Kt,Ut=function(e){this.domNode=e,this.submenu=null,this.init()};Ut.prototype.init=function(){this.domNode.setAttribute("tabindex","0");var e=this.domNode.querySelector(".el-menu");e&&(this.submenu=new Gt(this,e)),this.addListeners()},Ut.prototype.addListeners=function(){var e=this,t=Yt.keys;this.domNode.addEventListener("keydown",function(i){var n=!1;switch(i.keyCode){case t.down:Yt.triggerEvent(i.currentTarget,"mouseenter"),e.submenu&&e.submenu.gotoSubIndex(0),n=!0;break;case t.up:Yt.triggerEvent(i.currentTarget,"mouseenter"),e.submenu&&e.submenu.gotoSubIndex(e.submenu.subMenuItems.length-1),n=!0;break;case t.tab:Yt.triggerEvent(i.currentTarget,"mouseleave");break;case t.enter:case t.space:n=!0,i.currentTarget.click()}n&&i.preventDefault()})};var Xt=Ut,Zt=function(e){this.domNode=e,this.init()};Zt.prototype.init=function(){var e=this.domNode.childNodes;[].filter.call(e,function(e){return 1===e.nodeType}).forEach(function(e){new Xt(e)})};var Jt=Zt,Qt=r({name:"ElMenu",render:function(e){var t=e("ul",{attrs:{role:"menubar"},key:+this.collapse,style:{backgroundColor:this.backgroundColor||""},class:{"el-menu--horizontal":"horizontal"===this.mode,"el-menu--collapse":this.collapse,"el-menu":!0}},[this.$slots.default]);return this.collapseTransition?e("el-menu-collapse-transition",[t]):t},componentName:"ElMenu",mixins:[l,G],provide:function(){return{rootMenu:this}},components:{"el-menu-collapse-transition":{functional:!0,render:function(e,t){return e("transition",{props:{mode:"out-in"},on:{beforeEnter:function(e){e.style.opacity=.2},enter:function(e){me(e,"el-opacity-transition"),e.style.opacity=1},afterEnter:function(e){ve(e,"el-opacity-transition"),e.style.opacity=""},beforeLeave:function(e){e.dataset||(e.dataset={}),fe(e,"el-menu--collapse")?(ve(e,"el-menu--collapse"),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth,me(e,"el-menu--collapse")):(me(e,"el-menu--collapse"),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth,ve(e,"el-menu--collapse")),e.style.width=e.scrollWidth+"px",e.style.overflow="hidden"},leave:function(e){me(e,"horizontal-collapse-transition"),e.style.width=e.dataset.scrollWidth+"px"}}},t.children)}}},props:{mode:{type:String,default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:Array,uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0}},data:function(){return{activeIndex:this.defaultActive,openedMenus:this.defaultOpeneds&&!this.collapse?this.defaultOpeneds.slice(0):[],items:{},submenus:{}}},computed:{hoverBackground:function(){return this.backgroundColor?this.mixColor(this.backgroundColor,.2):""},isMenuPopup:function(){return"horizontal"===this.mode||"vertical"===this.mode&&this.collapse}},watch:{defaultActive:function(e){this.items[e]||(this.activeIndex=null),this.updateActiveIndex(e)},defaultOpeneds:function(e){this.collapse||(this.openedMenus=e)},collapse:function(e){e&&(this.openedMenus=[]),this.broadcast("ElSubmenu","toggle-collapse",e)}},methods:{updateActiveIndex:function(e){var t=this.items[e]||this.items[this.activeIndex]||this.items[this.defaultActive];t?(this.activeIndex=t.index,this.initOpenedMenu()):this.activeIndex=null},getMigratingConfig:function(){return{props:{theme:"theme is removed."}}},getColorChannels:function(e){if(e=e.replace("#",""),/^[0-9a-fA-F]{3}$/.test(e)){e=e.split("");for(var t=2;t>=0;t--)e.splice(t,0,e[t]);e=e.join("")}return/^[0-9a-fA-F]{6}$/.test(e)?{red:parseInt(e.slice(0,2),16),green:parseInt(e.slice(2,4),16),blue:parseInt(e.slice(4,6),16)}:{red:255,green:255,blue:255}},mixColor:function(e,t){var i=this.getColorChannels(e),n=i.red,r=i.green,s=i.blue;return t>0?(n*=1-t,r*=1-t,s*=1-t):(n+=(255-n)*t,r+=(255-r)*t,s+=(255-s)*t),"rgb("+Math.round(n)+", "+Math.round(r)+", "+Math.round(s)+")"},addItem:function(e){this.$set(this.items,e.index,e)},removeItem:function(e){delete this.items[e.index]},addSubmenu:function(e){this.$set(this.submenus,e.index,e)},removeSubmenu:function(e){delete this.submenus[e.index]},openMenu:function(e,t){var i=this.openedMenus;-1===i.indexOf(e)&&(this.uniqueOpened&&(this.openedMenus=i.filter(function(e){return-1!==t.indexOf(e)})),this.openedMenus.push(e))},closeMenu:function(e){var t=this.openedMenus.indexOf(e);-1!==t&&this.openedMenus.splice(t,1)},handleSubmenuClick:function(e){var t=e.index,i=e.indexPath;-1!==this.openedMenus.indexOf(t)?(this.closeMenu(t),this.$emit("close",t,i)):(this.openMenu(t,i),this.$emit("open",t,i))},handleItemClick:function(e){var t=this,i=e.index,n=e.indexPath,r=this.activeIndex,s=null!==e.index;s&&(this.activeIndex=e.index),this.$emit("select",i,n,e),("horizontal"===this.mode||this.collapse)&&(this.openedMenus=[]),this.router&&s&&this.routeToItem(e,function(e){if(t.activeIndex=r,e){if("NavigationDuplicated"===e.name)return;console.error(e)}})},initOpenedMenu:function(){var e=this,t=this.activeIndex,i=this.items[t];i&&"horizontal"!==this.mode&&!this.collapse&&i.indexPath.forEach(function(t){var i=e.submenus[t];i&&e.openMenu(t,i.indexPath)})},routeToItem:function(e,t){var i=e.route||e.index;try{this.$router.push(i,function(){},t)}catch(e){console.error(e)}},open:function(e){var t=this,i=this.submenus[e.toString()].indexPath;i.forEach(function(e){return t.openMenu(e,i)})},close:function(e){this.closeMenu(e)}},mounted:function(){this.initOpenedMenu(),this.$on("item-click",this.handleItemClick),this.$on("submenu-click",this.handleSubmenuClick),"horizontal"===this.mode&&new Jt(this.$el),this.$watch("items",this.updateActiveIndex)}},void 0,void 0,!1,null,null,null);Qt.options.__file="packages/menu/src/menu.vue";var ei=Qt.exports;ei.install=function(e){e.component(ei.name,ei)};var ti=ei;var ii=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.prototype.beforeEnter=function(e){me(e,"collapse-transition"),e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height="0",e.style.paddingTop=0,e.style.paddingBottom=0},e.prototype.enter=function(e){e.dataset.oldOverflow=e.style.overflow,0!==e.scrollHeight?(e.style.height=e.scrollHeight+"px",e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom):(e.style.height="",e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom),e.style.overflow="hidden"},e.prototype.afterEnter=function(e){ve(e,"collapse-transition"),e.style.height="",e.style.overflow=e.dataset.oldOverflow},e.prototype.beforeLeave=function(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.height=e.scrollHeight+"px",e.style.overflow="hidden"},e.prototype.leave=function(e){0!==e.scrollHeight&&(me(e,"collapse-transition"),e.style.height=0,e.style.paddingTop=0,e.style.paddingBottom=0)},e.prototype.afterLeave=function(e){ve(e,"collapse-transition"),e.style.height="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom},e}(),ni={name:"ElCollapseTransition",functional:!0,render:function(e,t){var i=t.children;return e("transition",{on:new ii},i)}},ri={inject:["rootMenu"],computed:{indexPath:function(){for(var e=[this.index],t=this.$parent;"ElMenu"!==t.$options.componentName;)t.index&&e.unshift(t.index),t=t.$parent;return e},parentMenu:function(){for(var e=this.$parent;e&&-1===["ElMenu","ElSubmenu"].indexOf(e.$options.componentName);)e=e.$parent;return e},paddingStyle:function(){if("vertical"!==this.rootMenu.mode)return{};var e=20,t=this.$parent;if(this.rootMenu.collapse)e=20;else for(;t&&"ElMenu"!==t.$options.componentName;)"ElSubmenu"===t.$options.componentName&&(e+=20),t=t.$parent;return{paddingLeft:e+"px"}}}},si=r({name:"ElSubmenu",componentName:"ElSubmenu",mixins:[ri,l,{props:{transformOrigin:{type:[Boolean,String],default:!1},offset:Ie.props.offset,boundariesPadding:Ie.props.boundariesPadding,popperOptions:Ie.props.popperOptions},data:Ie.data,methods:Ie.methods,beforeDestroy:Ie.beforeDestroy,deactivated:Ie.deactivated}],components:{ElCollapseTransition:ni},props:{index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0}},data:function(){return{popperJS:null,timeout:null,items:{},submenus:{},mouseInChild:!1}},watch:{opened:function(e){var t=this;this.isMenuPopup&&this.$nextTick(function(e){t.updatePopper()})}},computed:{appendToBody:function(){return void 0===this.popperAppendToBody?this.isFirstLevel:this.popperAppendToBody},menuTransitionName:function(){return this.rootMenu.collapse?"el-zoom-in-left":"el-zoom-in-top"},opened:function(){return this.rootMenu.openedMenus.indexOf(this.index)>-1},active:function(){var e=!1,t=this.submenus,i=this.items;return Object.keys(i).forEach(function(t){i[t].active&&(e=!0)}),Object.keys(t).forEach(function(i){t[i].active&&(e=!0)}),e},hoverBackground:function(){return this.rootMenu.hoverBackground},backgroundColor:function(){return this.rootMenu.backgroundColor||""},activeTextColor:function(){return this.rootMenu.activeTextColor||""},textColor:function(){return this.rootMenu.textColor||""},mode:function(){return this.rootMenu.mode},isMenuPopup:function(){return this.rootMenu.isMenuPopup},titleStyle:function(){return"horizontal"!==this.mode?{color:this.textColor}:{borderBottomColor:this.active?this.rootMenu.activeTextColor?this.activeTextColor:"":"transparent",color:this.active?this.activeTextColor:this.textColor}},isFirstLevel:function(){for(var e=!0,t=this.$parent;t&&t!==this.rootMenu;){if(["ElSubmenu","ElMenuItemGroup"].indexOf(t.$options.componentName)>-1){e=!1;break}t=t.$parent}return e}},methods:{handleCollapseToggle:function(e){e?this.initPopper():this.doDestroy()},addItem:function(e){this.$set(this.items,e.index,e)},removeItem:function(e){delete this.items[e.index]},addSubmenu:function(e){this.$set(this.submenus,e.index,e)},removeSubmenu:function(e){delete this.submenus[e.index]},handleClick:function(){var e=this.rootMenu,t=this.disabled;"hover"===e.menuTrigger&&"horizontal"===e.mode||e.collapse&&"vertical"===e.mode||t||this.dispatch("ElMenu","submenu-click",this)},handleMouseenter:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.showTimeout;if("ActiveXObject"in window||"focus"!==e.type||e.relatedTarget){var n=this.rootMenu,r=this.disabled;"click"===n.menuTrigger&&"horizontal"===n.mode||!n.collapse&&"vertical"===n.mode||r||(this.dispatch("ElSubmenu","mouse-enter-child"),clearTimeout(this.timeout),this.timeout=setTimeout(function(){t.rootMenu.openMenu(t.index,t.indexPath)},i),this.appendToBody&&this.$parent.$el.dispatchEvent(new MouseEvent("mouseenter")))}},handleMouseleave:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=this.rootMenu;"click"===i.menuTrigger&&"horizontal"===i.mode||!i.collapse&&"vertical"===i.mode||(this.dispatch("ElSubmenu","mouse-leave-child"),clearTimeout(this.timeout),this.timeout=setTimeout(function(){!e.mouseInChild&&e.rootMenu.closeMenu(e.index)},this.hideTimeout),this.appendToBody&&t&&"ElSubmenu"===this.$parent.$options.name&&this.$parent.handleMouseleave(!0))},handleTitleMouseenter:function(){if("horizontal"!==this.mode||this.rootMenu.backgroundColor){var e=this.$refs["submenu-title"];e&&(e.style.backgroundColor=this.rootMenu.hoverBackground)}},handleTitleMouseleave:function(){if("horizontal"!==this.mode||this.rootMenu.backgroundColor){var e=this.$refs["submenu-title"];e&&(e.style.backgroundColor=this.rootMenu.backgroundColor||"")}},updatePlacement:function(){this.currentPlacement="horizontal"===this.mode&&this.isFirstLevel?"bottom-start":"right-start"},initPopper:function(){this.referenceElm=this.$el,this.popperElm=this.$refs.menu,this.updatePlacement()}},created:function(){var e=this;this.$on("toggle-collapse",this.handleCollapseToggle),this.$on("mouse-enter-child",function(){e.mouseInChild=!0,clearTimeout(e.timeout)}),this.$on("mouse-leave-child",function(){e.mouseInChild=!1,clearTimeout(e.timeout)})},mounted:function(){this.parentMenu.addSubmenu(this),this.rootMenu.addSubmenu(this),this.initPopper()},beforeDestroy:function(){this.parentMenu.removeSubmenu(this),this.rootMenu.removeSubmenu(this)},render:function(e){var t=this,i=this.active,n=this.opened,r=this.paddingStyle,s=this.titleStyle,a=this.backgroundColor,o=this.rootMenu,l=this.currentPlacement,u=this.menuTransitionName,c=this.mode,h=this.disabled,d=this.popperClass,p=this.$slots,f=this.isFirstLevel,m=e("transition",{attrs:{name:u}},[e("div",{ref:"menu",directives:[{name:"show",value:n}],class:["el-menu--"+c,d],on:{mouseenter:function(e){return t.handleMouseenter(e,100)},mouseleave:function(){return t.handleMouseleave(!0)},focus:function(e){return t.handleMouseenter(e,100)}}},[e("ul",{attrs:{role:"menu"},class:["el-menu el-menu--popup","el-menu--popup-"+l],style:{backgroundColor:o.backgroundColor||""}},[p.default])])]),v=e("el-collapse-transition",[e("ul",{attrs:{role:"menu"},class:"el-menu el-menu--inline",directives:[{name:"show",value:n}],style:{backgroundColor:o.backgroundColor||""}},[p.default])]),g="horizontal"===o.mode&&f||"vertical"===o.mode&&!o.collapse?"el-icon-arrow-down":"el-icon-arrow-right";return e("li",{class:{"el-submenu":!0,"is-active":i,"is-opened":n,"is-disabled":h},attrs:{role:"menuitem","aria-haspopup":"true","aria-expanded":n},on:{mouseenter:this.handleMouseenter,mouseleave:function(){return t.handleMouseleave(!1)},focus:this.handleMouseenter}},[e("div",{class:"el-submenu__title",ref:"submenu-title",on:{click:this.handleClick,mouseenter:this.handleTitleMouseenter,mouseleave:this.handleTitleMouseleave},style:[r,s,{backgroundColor:a}]},[p.title,e("i",{class:["el-submenu__icon-arrow",g]})]),this.isMenuPopup?m:v])}},void 0,void 0,!1,null,null,null);si.options.__file="packages/menu/src/submenu.vue";var ai=si.exports;ai.install=function(e){e.component(ai.name,ai)};var oi=ai,li=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("li",{staticClass:"el-menu-item",class:{"is-active":e.active,"is-disabled":e.disabled},style:[e.paddingStyle,e.itemStyle,{backgroundColor:e.backgroundColor}],attrs:{role:"menuitem",tabindex:"-1"},on:{click:e.handleClick,mouseenter:e.onMouseEnter,focus:e.onMouseEnter,blur:e.onMouseLeave,mouseleave:e.onMouseLeave}},["ElMenu"===e.parentMenu.$options.componentName&&e.rootMenu.collapse&&e.$slots.title?i("el-tooltip",{attrs:{effect:"dark",placement:"right"}},[i("div",{attrs:{slot:"content"},slot:"content"},[e._t("title")],2),i("div",{staticStyle:{position:"absolute",left:"0",top:"0",height:"100%",width:"100%",display:"inline-block","box-sizing":"border-box",padding:"0 20px"}},[e._t("default")],2)]):[e._t("default"),e._t("title")]],2)};li._withStripped=!0;var ui={name:"ElTooltip",mixins:[Ie],props:{openDelay:{type:Number,default:0},disabled:Boolean,manual:Boolean,effect:{type:String,default:"dark"},arrowOffset:{type:Number,default:0},popperClass:String,content:String,visibleArrow:{default:!0},transition:{type:String,default:"el-fade-in-linear"},popperOptions:{default:function(){return{boundariesPadding:10,gpuAcceleration:!1}}},enterable:{type:Boolean,default:!0},hideAfter:{type:Number,default:0},tabindex:{type:Number,default:0}},data:function(){return{tooltipId:"el-tooltip-"+$(),timeoutPending:null,focusing:!1}},beforeCreate:function(){var e=this;this.$isServer||(this.popperVM=new h.a({data:{node:""},render:function(e){return this.node}}).$mount(),this.debounceClose=tt()(200,function(){return e.handleClosePopper()}))},render:function(e){var t=this;this.popperVM&&(this.popperVM.node=e("transition",{attrs:{name:this.transition},on:{afterLeave:this.doDestroy}},[e("div",{on:{mouseleave:function(){t.setExpectedState(!1),t.debounceClose()},mouseenter:function(){t.setExpectedState(!0)}},ref:"popper",attrs:{role:"tooltip",id:this.tooltipId,"aria-hidden":this.disabled||!this.showPopper?"true":"false"},directives:[{name:"show",value:!this.disabled&&this.showPopper}],class:["el-tooltip__popper","is-"+this.effect,this.popperClass]},[this.$slots.content||this.content])]));var i=this.getFirstElement();if(!i)return null;var n=i.data=i.data||{};return n.staticClass=this.addTooltipClass(n.staticClass),i},mounted:function(){var e=this;this.referenceElm=this.$el,1===this.$el.nodeType&&(this.$el.setAttribute("aria-describedby",this.tooltipId),this.$el.setAttribute("tabindex",this.tabindex),de(this.referenceElm,"mouseenter",this.show),de(this.referenceElm,"mouseleave",this.hide),de(this.referenceElm,"focus",function(){if(e.$slots.default&&e.$slots.default.length){var t=e.$slots.default[0].componentInstance;t&&t.focus?t.focus():e.handleFocus()}else e.handleFocus()}),de(this.referenceElm,"blur",this.handleBlur),de(this.referenceElm,"click",this.removeFocusing)),this.value&&this.popperVM&&this.popperVM.$nextTick(function(){e.value&&e.updatePopper()})},watch:{focusing:function(e){e?me(this.referenceElm,"focusing"):ve(this.referenceElm,"focusing")}},methods:{show:function(){this.setExpectedState(!0),this.handleShowPopper()},hide:function(){this.setExpectedState(!1),this.debounceClose()},handleFocus:function(){this.focusing=!0,this.show()},handleBlur:function(){this.focusing=!1,this.hide()},removeFocusing:function(){this.focusing=!1},addTooltipClass:function(e){return e?"el-tooltip "+e.replace("el-tooltip",""):"el-tooltip"},handleShowPopper:function(){var e=this;this.expectedState&&!this.manual&&(clearTimeout(this.timeout),this.timeout=setTimeout(function(){e.showPopper=!0},this.openDelay),this.hideAfter>0&&(this.timeoutPending=setTimeout(function(){e.showPopper=!1},this.hideAfter)))},handleClosePopper:function(){this.enterable&&this.expectedState||this.manual||(clearTimeout(this.timeout),this.timeoutPending&&clearTimeout(this.timeoutPending),this.showPopper=!1,this.disabled&&this.doDestroy())},setExpectedState:function(e){!1===e&&clearTimeout(this.timeoutPending),this.expectedState=e},getFirstElement:function(){var e=this.$slots.default;if(!Array.isArray(e))return null;for(var t=null,i=0;i<e.length;i++)e[i]&&e[i].tag&&(t=e[i]);return t}},beforeDestroy:function(){this.popperVM&&this.popperVM.$destroy()},destroyed:function(){var e=this.referenceElm;1===e.nodeType&&(pe(e,"mouseenter",this.show),pe(e,"mouseleave",this.hide),pe(e,"focus",this.handleFocus),pe(e,"blur",this.handleBlur),pe(e,"click",this.removeFocusing))},install:function(e){e.component(ui.name,ui)}},ci=ui,hi=r({name:"ElMenuItem",componentName:"ElMenuItem",mixins:[ri,l],components:{ElTooltip:ci},props:{index:{default:null,validator:function(e){return"string"==typeof e||null===e}},route:[String,Object],disabled:Boolean},computed:{active:function(){return this.index===this.rootMenu.activeIndex},hoverBackground:function(){return this.rootMenu.hoverBackground},backgroundColor:function(){return this.rootMenu.backgroundColor||""},activeTextColor:function(){return this.rootMenu.activeTextColor||""},textColor:function(){return this.rootMenu.textColor||""},mode:function(){return this.rootMenu.mode},itemStyle:function(){var e={color:this.active?this.activeTextColor:this.textColor};return"horizontal"!==this.mode||this.isNested||(e.borderBottomColor=this.active?this.rootMenu.activeTextColor?this.activeTextColor:"":"transparent"),e},isNested:function(){return this.parentMenu!==this.rootMenu}},methods:{onMouseEnter:function(){("horizontal"!==this.mode||this.rootMenu.backgroundColor)&&(this.$el.style.backgroundColor=this.hoverBackground)},onMouseLeave:function(){("horizontal"!==this.mode||this.rootMenu.backgroundColor)&&(this.$el.style.backgroundColor=this.backgroundColor)},handleClick:function(){this.disabled||(this.dispatch("ElMenu","item-click",this),this.$emit("click",this))}},mounted:function(){this.parentMenu.addItem(this),this.rootMenu.addItem(this)},beforeDestroy:function(){this.parentMenu.removeItem(this),this.rootMenu.removeItem(this)}},li,[],!1,null,null,null);hi.options.__file="packages/menu/src/menu-item.vue";var di=hi.exports;di.install=function(e){e.component(di.name,di)};var pi=di,fi=function(){var e=this.$createElement,t=this._self._c||e;return t("li",{staticClass:"el-menu-item-group"},[t("div",{staticClass:"el-menu-item-group__title",style:{paddingLeft:this.levelPadding+"px"}},[this.$slots.title?this._t("title"):[this._v(this._s(this.title))]],2),t("ul",[this._t("default")],2)])};fi._withStripped=!0;var mi=r({name:"ElMenuItemGroup",componentName:"ElMenuItemGroup",inject:["rootMenu"],props:{title:{type:String}},data:function(){return{paddingLeft:20}},computed:{levelPadding:function(){var e=20,t=this.$parent;if(this.rootMenu.collapse)return 20;for(;t&&"ElMenu"!==t.$options.componentName;)"ElSubmenu"===t.$options.componentName&&(e+=20),t=t.$parent;return e}}},fi,[],!1,null,null,null);mi.options.__file="packages/menu/src/menu-item-group.vue";var vi=mi.exports;vi.install=function(e){e.component(vi.name,vi)};var gi=vi,bi=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:["el-input-number",e.inputNumberSize?"el-input-number--"+e.inputNumberSize:"",{"is-disabled":e.inputNumberDisabled},{"is-without-controls":!e.controls},{"is-controls-right":e.controlsAtRight}],on:{dragstart:function(e){e.preventDefault()}}},[e.controls?i("span",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.decrease,expression:"decrease"}],staticClass:"el-input-number__decrease",class:{"is-disabled":e.minDisabled},attrs:{role:"button"},on:{keydown:function(t){return"button"in t||!e._k(t.keyCode,"enter",13,t.key,"Enter")?e.decrease(t):null}}},[i("i",{class:"el-icon-"+(e.controlsAtRight?"arrow-down":"minus")})]):e._e(),e.controls?i("span",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.increase,expression:"increase"}],staticClass:"el-input-number__increase",class:{"is-disabled":e.maxDisabled},attrs:{role:"button"},on:{keydown:function(t){return"button"in t||!e._k(t.keyCode,"enter",13,t.key,"Enter")?e.increase(t):null}}},[i("i",{class:"el-icon-"+(e.controlsAtRight?"arrow-up":"plus")})]):e._e(),i("el-input",{ref:"input",attrs:{value:e.displayValue,placeholder:e.placeholder,disabled:e.inputNumberDisabled,size:e.inputNumberSize,max:e.max,min:e.min,name:e.name,label:e.label},on:{blur:e.handleBlur,focus:e.handleFocus,input:e.handleInput,change:e.handleInputChange},nativeOn:{keydown:[function(t){return"button"in t||!e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?(t.preventDefault(),e.increase(t)):null},function(t){return"button"in t||!e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?(t.preventDefault(),e.decrease(t)):null}]}})],1)};bi._withStripped=!0;var yi={bind:function(e,t,i){var n=null,r=void 0,s=function(){return i.context[t.expression].apply()},a=function(){Date.now()-r<100&&s(),clearInterval(n),n=null};de(e,"mousedown",function(e){var t,i,o;0===e.button&&(r=Date.now(),t=document,o=a,de(t,i="mouseup",function e(){o&&o.apply(this,arguments),pe(t,i,e)}),clearInterval(n),n=setInterval(s,100))})}},wi=r({name:"ElInputNumber",mixins:[u("input")],inject:{elForm:{default:""},elFormItem:{default:""}},directives:{repeatClick:yi},components:{ElInput:re},props:{step:{type:Number,default:1},stepStrictly:{type:Boolean,default:!1},max:{type:Number,default:1/0},min:{type:Number,default:-1/0},value:{},disabled:Boolean,size:String,controls:{type:Boolean,default:!0},controlsPosition:{type:String,default:""},name:String,label:String,placeholder:String,precision:{type:Number,validator:function(e){return e>=0&&e===parseInt(e,10)}}},data:function(){return{currentValue:0,userInput:null}},watch:{value:{immediate:!0,handler:function(e){var t=void 0===e?e:Number(e);if(void 0!==t){if(isNaN(t))return;if(this.stepStrictly){var i=this.getPrecision(this.step),n=Math.pow(10,i);t=Math.round(t/this.step)*n*this.step/n}void 0!==this.precision&&(t=this.toPrecision(t,this.precision))}t>=this.max&&(t=this.max),t<=this.min&&(t=this.min),this.currentValue=t,this.userInput=null,this.$emit("input",t)}}},computed:{minDisabled:function(){return this._decrease(this.value,this.step)<this.min},maxDisabled:function(){return this._increase(this.value,this.step)>this.max},numPrecision:function(){var e=this.value,t=this.step,i=this.getPrecision,n=this.precision,r=i(t);return void 0!==n?(r>n&&console.warn("[Element Warn][InputNumber]precision should not be less than the decimal places of step"),n):Math.max(i(e),r)},controlsAtRight:function(){return this.controls&&"right"===this.controlsPosition},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},inputNumberSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},inputNumberDisabled:function(){return this.disabled||!!(this.elForm||{}).disabled},displayValue:function(){if(null!==this.userInput)return this.userInput;var e=this.currentValue;if("number"==typeof e){if(this.stepStrictly){var t=this.getPrecision(this.step),i=Math.pow(10,t);e=Math.round(e/this.step)*i*this.step/i}void 0!==this.precision&&(e=e.toFixed(this.precision))}return e}},methods:{toPrecision:function(e,t){return void 0===t&&(t=this.numPrecision),parseFloat(Math.round(e*Math.pow(10,t))/Math.pow(10,t))},getPrecision:function(e){if(void 0===e)return 0;var t=e.toString(),i=t.indexOf("."),n=0;return-1!==i&&(n=t.length-i-1),n},_increase:function(e,t){if("number"!=typeof e&&void 0!==e)return this.currentValue;var i=Math.pow(10,this.numPrecision);return this.toPrecision((i*e+i*t)/i)},_decrease:function(e,t){if("number"!=typeof e&&void 0!==e)return this.currentValue;var i=Math.pow(10,this.numPrecision);return this.toPrecision((i*e-i*t)/i)},increase:function(){if(!this.inputNumberDisabled&&!this.maxDisabled){var e=this.value||0,t=this._increase(e,this.step);this.setCurrentValue(t)}},decrease:function(){if(!this.inputNumberDisabled&&!this.minDisabled){var e=this.value||0,t=this._decrease(e,this.step);this.setCurrentValue(t)}},handleBlur:function(e){this.$emit("blur",e)},handleFocus:function(e){this.$emit("focus",e)},setCurrentValue:function(e){var t=this.currentValue;"number"==typeof e&&void 0!==this.precision&&(e=this.toPrecision(e,this.precision)),e>=this.max&&(e=this.max),e<=this.min&&(e=this.min),t!==e&&(this.userInput=null,this.$emit("input",e),this.$emit("change",e,t),this.currentValue=e)},handleInput:function(e){this.userInput=e},handleInputChange:function(e){var t=""===e?void 0:Number(e);isNaN(t)&&""!==e||this.setCurrentValue(t),this.userInput=null},select:function(){this.$refs.input.select()}},mounted:function(){var e=this.$refs.input.$refs.input;e.setAttribute("role","spinbutton"),e.setAttribute("aria-valuemax",this.max),e.setAttribute("aria-valuemin",this.min),e.setAttribute("aria-valuenow",this.currentValue),e.setAttribute("aria-disabled",this.inputNumberDisabled)},updated:function(){this.$refs&&this.$refs.input&&this.$refs.input.$refs.input.setAttribute("aria-valuenow",this.currentValue)}},bi,[],!1,null,null,null);wi.options.__file="packages/input-number/src/input-number.vue";var _i=wi.exports;_i.install=function(e){e.component(_i.name,_i)};var xi=_i,Ci=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("label",{staticClass:"el-radio",class:[e.border&&e.radioSize?"el-radio--"+e.radioSize:"",{"is-disabled":e.isDisabled},{"is-focus":e.focus},{"is-bordered":e.border},{"is-checked":e.model===e.label}],attrs:{role:"radio","aria-checked":e.model===e.label,"aria-disabled":e.isDisabled,tabindex:e.tabIndex},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"]))return null;t.stopPropagation(),t.preventDefault(),e.model=e.isDisabled?e.model:e.label}}},[i("span",{staticClass:"el-radio__input",class:{"is-disabled":e.isDisabled,"is-checked":e.model===e.label}},[i("span",{staticClass:"el-radio__inner"}),i("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],ref:"radio",staticClass:"el-radio__original",attrs:{type:"radio","aria-hidden":"true",name:e.name,disabled:e.isDisabled,tabindex:"-1"},domProps:{value:e.label,checked:e._q(e.model,e.label)},on:{focus:function(t){e.focus=!0},blur:function(t){e.focus=!1},change:[function(t){e.model=e.label},e.handleChange]}})]),i("span",{staticClass:"el-radio__label",on:{keydown:function(e){e.stopPropagation()}}},[e._t("default"),e.$slots.default?e._e():[e._v(e._s(e.label))]],2)])};Ci._withStripped=!0;var ki=r({name:"ElRadio",mixins:[l],inject:{elForm:{default:""},elFormItem:{default:""}},componentName:"ElRadio",props:{value:{},label:{},disabled:Boolean,name:String,border:Boolean,size:String},data:function(){return{focus:!1}},computed:{isGroup:function(){for(var e=this.$parent;e;){if("ElRadioGroup"===e.$options.componentName)return this._radioGroup=e,!0;e=e.$parent}return!1},model:{get:function(){return this.isGroup?this._radioGroup.value:this.value},set:function(e){this.isGroup?this.dispatch("ElRadioGroup","input",[e]):this.$emit("input",e),this.$refs.radio&&(this.$refs.radio.checked=this.model===this.label)}},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},radioSize:function(){var e=this.size||this._elFormItemSize||(this.$ELEMENT||{}).size;return this.isGroup&&this._radioGroup.radioGroupSize||e},isDisabled:function(){return this.isGroup?this._radioGroup.disabled||this.disabled||(this.elForm||{}).disabled:this.disabled||(this.elForm||{}).disabled},tabIndex:function(){return this.isDisabled||this.isGroup&&this.model!==this.label?-1:0}},methods:{handleChange:function(){var e=this;this.$nextTick(function(){e.$emit("change",e.model),e.isGroup&&e.dispatch("ElRadioGroup","handleChange",e.model)})}}},Ci,[],!1,null,null,null);ki.options.__file="packages/radio/src/radio.vue";var Si=ki.exports;Si.install=function(e){e.component(Si.name,Si)};var Di=Si,$i=function(){var e=this.$createElement;return(this._self._c||e)(this._elTag,{tag:"component",staticClass:"el-radio-group",attrs:{role:"radiogroup"},on:{keydown:this.handleKeydown}},[this._t("default")],2)};$i._withStripped=!0;var Ei=Object.freeze({LEFT:37,UP:38,RIGHT:39,DOWN:40}),Ti=r({name:"ElRadioGroup",componentName:"ElRadioGroup",inject:{elFormItem:{default:""}},mixins:[l],props:{value:{},size:String,fill:String,textColor:String,disabled:Boolean},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},_elTag:function(){return(this.$vnode.data||{}).tag||"div"},radioGroupSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size}},created:function(){var e=this;this.$on("handleChange",function(t){e.$emit("change",t)})},mounted:function(){var e=this.$el.querySelectorAll("[type=radio]"),t=this.$el.querySelectorAll("[role=radio]")[0];![].some.call(e,function(e){return e.checked})&&t&&(t.tabIndex=0)},methods:{handleKeydown:function(e){var t=e.target,i="INPUT"===t.nodeName?"[type=radio]":"[role=radio]",n=this.$el.querySelectorAll(i),r=n.length,s=[].indexOf.call(n,t),a=this.$el.querySelectorAll("[role=radio]");switch(e.keyCode){case Ei.LEFT:case Ei.UP:e.stopPropagation(),e.preventDefault(),0===s?(a[r-1].click(),a[r-1].focus()):(a[s-1].click(),a[s-1].focus());break;case Ei.RIGHT:case Ei.DOWN:s===r-1?(e.stopPropagation(),e.preventDefault(),a[0].click(),a[0].focus()):(a[s+1].click(),a[s+1].focus())}}},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",[this.value])}}},$i,[],!1,null,null,null);Ti.options.__file="packages/radio/src/radio-group.vue";var Mi=Ti.exports;Mi.install=function(e){e.component(Mi.name,Mi)};var Ni=Mi,Pi=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("label",{staticClass:"el-radio-button",class:[e.size?"el-radio-button--"+e.size:"",{"is-active":e.value===e.label},{"is-disabled":e.isDisabled},{"is-focus":e.focus}],attrs:{role:"radio","aria-checked":e.value===e.label,"aria-disabled":e.isDisabled,tabindex:e.tabIndex},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"]))return null;t.stopPropagation(),t.preventDefault(),e.value=e.isDisabled?e.value:e.label}}},[i("input",{directives:[{name:"model",rawName:"v-model",value:e.value,expression:"value"}],staticClass:"el-radio-button__orig-radio",attrs:{type:"radio",name:e.name,disabled:e.isDisabled,tabindex:"-1"},domProps:{value:e.label,checked:e._q(e.value,e.label)},on:{change:[function(t){e.value=e.label},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}),i("span",{staticClass:"el-radio-button__inner",style:e.value===e.label?e.activeStyle:null,on:{keydown:function(e){e.stopPropagation()}}},[e._t("default"),e.$slots.default?e._e():[e._v(e._s(e.label))]],2)])};Pi._withStripped=!0;var Oi=r({name:"ElRadioButton",mixins:[l],inject:{elForm:{default:""},elFormItem:{default:""}},props:{label:{},disabled:Boolean,name:String},data:function(){return{focus:!1}},computed:{value:{get:function(){return this._radioGroup.value},set:function(e){this._radioGroup.$emit("input",e)}},_radioGroup:function(){for(var e=this.$parent;e;){if("ElRadioGroup"===e.$options.componentName)return e;e=e.$parent}return!1},activeStyle:function(){return{backgroundColor:this._radioGroup.fill||"",borderColor:this._radioGroup.fill||"",boxShadow:this._radioGroup.fill?"-1px 0 0 0 "+this._radioGroup.fill:"",color:this._radioGroup.textColor||""}},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},size:function(){return this._radioGroup.radioGroupSize||this._elFormItemSize||(this.$ELEMENT||{}).size},isDisabled:function(){return this.disabled||this._radioGroup.disabled||(this.elForm||{}).disabled},tabIndex:function(){return this.isDisabled||this._radioGroup&&this.value!==this.label?-1:0}},methods:{handleChange:function(){var e=this;this.$nextTick(function(){e.dispatch("ElRadioGroup","handleChange",e.value)})}}},Pi,[],!1,null,null,null);Oi.options.__file="packages/radio/src/radio-button.vue";var Ii=Oi.exports;Ii.install=function(e){e.component(Ii.name,Ii)};var Ai=Ii,Fi=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("label",{staticClass:"el-checkbox",class:[e.border&&e.checkboxSize?"el-checkbox--"+e.checkboxSize:"",{"is-disabled":e.isDisabled},{"is-bordered":e.border},{"is-checked":e.isChecked}],attrs:{id:e.id}},[i("span",{staticClass:"el-checkbox__input",class:{"is-disabled":e.isDisabled,"is-checked":e.isChecked,"is-indeterminate":e.indeterminate,"is-focus":e.focus},attrs:{tabindex:!!e.indeterminate&&0,role:!!e.indeterminate&&"checkbox","aria-checked":!!e.indeterminate&&"mixed"}},[i("span",{staticClass:"el-checkbox__inner"}),e.trueLabel||e.falseLabel?i("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox__original",attrs:{type:"checkbox","aria-hidden":e.indeterminate?"true":"false",name:e.name,disabled:e.isDisabled,"true-value":e.trueLabel,"false-value":e.falseLabel},domProps:{checked:Array.isArray(e.model)?e._i(e.model,null)>-1:e._q(e.model,e.trueLabel)},on:{change:[function(t){var i=e.model,n=t.target,r=n.checked?e.trueLabel:e.falseLabel;if(Array.isArray(i)){var s=e._i(i,null);n.checked?s<0&&(e.model=i.concat([null])):s>-1&&(e.model=i.slice(0,s).concat(i.slice(s+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}):i("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox__original",attrs:{type:"checkbox","aria-hidden":e.indeterminate?"true":"false",disabled:e.isDisabled,name:e.name},domProps:{value:e.label,checked:Array.isArray(e.model)?e._i(e.model,e.label)>-1:e.model},on:{change:[function(t){var i=e.model,n=t.target,r=!!n.checked;if(Array.isArray(i)){var s=e.label,a=e._i(i,s);n.checked?a<0&&(e.model=i.concat([s])):a>-1&&(e.model=i.slice(0,a).concat(i.slice(a+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}})]),e.$slots.default||e.label?i("span",{staticClass:"el-checkbox__label"},[e._t("default"),e.$slots.default?e._e():[e._v(e._s(e.label))]],2):e._e()])};Fi._withStripped=!0;var Li=r({name:"ElCheckbox",mixins:[l],inject:{elForm:{default:""},elFormItem:{default:""}},componentName:"ElCheckbox",data:function(){return{selfModel:!1,focus:!1,isLimitExceeded:!1}},computed:{model:{get:function(){return this.isGroup?this.store:void 0!==this.value?this.value:this.selfModel},set:function(e){this.isGroup?(this.isLimitExceeded=!1,void 0!==this._checkboxGroup.min&&e.length<this._checkboxGroup.min&&(this.isLimitExceeded=!0),void 0!==this._checkboxGroup.max&&e.length>this._checkboxGroup.max&&(this.isLimitExceeded=!0),!1===this.isLimitExceeded&&this.dispatch("ElCheckboxGroup","input",[e])):(this.$emit("input",e),this.selfModel=e)}},isChecked:function(){return"[object Boolean]"==={}.toString.call(this.model)?this.model:Array.isArray(this.model)?this.model.indexOf(this.label)>-1:null!==this.model&&void 0!==this.model?this.model===this.trueLabel:void 0},isGroup:function(){for(var e=this.$parent;e;){if("ElCheckboxGroup"===e.$options.componentName)return this._checkboxGroup=e,!0;e=e.$parent}return!1},store:function(){return this._checkboxGroup?this._checkboxGroup.value:this.value},isLimitDisabled:function(){var e=this._checkboxGroup,t=e.max,i=e.min;return!(!t&&!i)&&this.model.length>=t&&!this.isChecked||this.model.length<=i&&this.isChecked},isDisabled:function(){return this.isGroup?this._checkboxGroup.disabled||this.disabled||(this.elForm||{}).disabled||this.isLimitDisabled:this.disabled||(this.elForm||{}).disabled},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},checkboxSize:function(){var e=this.size||this._elFormItemSize||(this.$ELEMENT||{}).size;return this.isGroup&&this._checkboxGroup.checkboxGroupSize||e}},props:{value:{},label:{},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:String,trueLabel:[String,Number],falseLabel:[String,Number],id:String,controls:String,border:Boolean,size:String},methods:{addToStore:function(){Array.isArray(this.model)&&-1===this.model.indexOf(this.label)?this.model.push(this.label):this.model=this.trueLabel||!0},handleChange:function(e){var t=this;if(!this.isLimitExceeded){var i=void 0;i=e.target.checked?void 0===this.trueLabel||this.trueLabel:void 0!==this.falseLabel&&this.falseLabel,this.$emit("change",i,e),this.$nextTick(function(){t.isGroup&&t.dispatch("ElCheckboxGroup","change",[t._checkboxGroup.value])})}}},created:function(){this.checked&&this.addToStore()},mounted:function(){this.indeterminate&&this.$el.setAttribute("aria-controls",this.controls)},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",e)}}},Fi,[],!1,null,null,null);Li.options.__file="packages/checkbox/src/checkbox.vue";var Vi=Li.exports;Vi.install=function(e){e.component(Vi.name,Vi)};var Bi=Vi,zi=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("label",{staticClass:"el-checkbox-button",class:[e.size?"el-checkbox-button--"+e.size:"",{"is-disabled":e.isDisabled},{"is-checked":e.isChecked},{"is-focus":e.focus}],attrs:{role:"checkbox","aria-checked":e.isChecked,"aria-disabled":e.isDisabled}},[e.trueLabel||e.falseLabel?i("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox-button__original",attrs:{type:"checkbox",name:e.name,disabled:e.isDisabled,"true-value":e.trueLabel,"false-value":e.falseLabel},domProps:{checked:Array.isArray(e.model)?e._i(e.model,null)>-1:e._q(e.model,e.trueLabel)},on:{change:[function(t){var i=e.model,n=t.target,r=n.checked?e.trueLabel:e.falseLabel;if(Array.isArray(i)){var s=e._i(i,null);n.checked?s<0&&(e.model=i.concat([null])):s>-1&&(e.model=i.slice(0,s).concat(i.slice(s+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}):i("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox-button__original",attrs:{type:"checkbox",name:e.name,disabled:e.isDisabled},domProps:{value:e.label,checked:Array.isArray(e.model)?e._i(e.model,e.label)>-1:e.model},on:{change:[function(t){var i=e.model,n=t.target,r=!!n.checked;if(Array.isArray(i)){var s=e.label,a=e._i(i,s);n.checked?a<0&&(e.model=i.concat([s])):a>-1&&(e.model=i.slice(0,a).concat(i.slice(a+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}),e.$slots.default||e.label?i("span",{staticClass:"el-checkbox-button__inner",style:e.isChecked?e.activeStyle:null},[e._t("default",[e._v(e._s(e.label))])],2):e._e()])};zi._withStripped=!0;var Hi=r({name:"ElCheckboxButton",mixins:[l],inject:{elForm:{default:""},elFormItem:{default:""}},data:function(){return{selfModel:!1,focus:!1,isLimitExceeded:!1}},props:{value:{},label:{},disabled:Boolean,checked:Boolean,name:String,trueLabel:[String,Number],falseLabel:[String,Number]},computed:{model:{get:function(){return this._checkboxGroup?this.store:void 0!==this.value?this.value:this.selfModel},set:function(e){this._checkboxGroup?(this.isLimitExceeded=!1,void 0!==this._checkboxGroup.min&&e.length<this._checkboxGroup.min&&(this.isLimitExceeded=!0),void 0!==this._checkboxGroup.max&&e.length>this._checkboxGroup.max&&(this.isLimitExceeded=!0),!1===this.isLimitExceeded&&this.dispatch("ElCheckboxGroup","input",[e])):void 0!==this.value?this.$emit("input",e):this.selfModel=e}},isChecked:function(){return"[object Boolean]"==={}.toString.call(this.model)?this.model:Array.isArray(this.model)?this.model.indexOf(this.label)>-1:null!==this.model&&void 0!==this.model?this.model===this.trueLabel:void 0},_checkboxGroup:function(){for(var e=this.$parent;e;){if("ElCheckboxGroup"===e.$options.componentName)return e;e=e.$parent}return!1},store:function(){return this._checkboxGroup?this._checkboxGroup.value:this.value},activeStyle:function(){return{backgroundColor:this._checkboxGroup.fill||"",borderColor:this._checkboxGroup.fill||"",color:this._checkboxGroup.textColor||"","box-shadow":"-1px 0 0 0 "+this._checkboxGroup.fill}},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},size:function(){return this._checkboxGroup.checkboxGroupSize||this._elFormItemSize||(this.$ELEMENT||{}).size},isLimitDisabled:function(){var e=this._checkboxGroup,t=e.max,i=e.min;return!(!t&&!i)&&this.model.length>=t&&!this.isChecked||this.model.length<=i&&this.isChecked},isDisabled:function(){return this._checkboxGroup?this._checkboxGroup.disabled||this.disabled||(this.elForm||{}).disabled||this.isLimitDisabled:this.disabled||(this.elForm||{}).disabled}},methods:{addToStore:function(){Array.isArray(this.model)&&-1===this.model.indexOf(this.label)?this.model.push(this.label):this.model=this.trueLabel||!0},handleChange:function(e){var t=this;if(!this.isLimitExceeded){var i=void 0;i=e.target.checked?void 0===this.trueLabel||this.trueLabel:void 0!==this.falseLabel&&this.falseLabel,this.$emit("change",i,e),this.$nextTick(function(){t._checkboxGroup&&t.dispatch("ElCheckboxGroup","change",[t._checkboxGroup.value])})}}},created:function(){this.checked&&this.addToStore()}},zi,[],!1,null,null,null);Hi.options.__file="packages/checkbox/src/checkbox-button.vue";var Ri=Hi.exports;Ri.install=function(e){e.component(Ri.name,Ri)};var Wi=Ri,ji=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-checkbox-group",attrs:{role:"group","aria-label":"checkbox-group"}},[this._t("default")],2)};ji._withStripped=!0;var qi=r({name:"ElCheckboxGroup",componentName:"ElCheckboxGroup",mixins:[l],inject:{elFormItem:{default:""}},props:{value:{},disabled:Boolean,min:Number,max:Number,size:String,fill:String,textColor:String},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},checkboxGroupSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size}},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",[e])}}},ji,[],!1,null,null,null);qi.options.__file="packages/checkbox/src/checkbox-group.vue";var Yi=qi.exports;Yi.install=function(e){e.component(Yi.name,Yi)};var Ki=Yi,Gi=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-switch",class:{"is-disabled":e.switchDisabled,"is-checked":e.checked},attrs:{role:"switch","aria-checked":e.checked,"aria-disabled":e.switchDisabled},on:{click:function(t){return t.preventDefault(),e.switchValue(t)}}},[i("input",{ref:"input",staticClass:"el-switch__input",attrs:{type:"checkbox",id:e.id,name:e.name,"true-value":e.activeValue,"false-value":e.inactiveValue,disabled:e.switchDisabled},on:{change:e.handleChange,keydown:function(t){return"button"in t||!e._k(t.keyCode,"enter",13,t.key,"Enter")?e.switchValue(t):null}}}),e.inactiveIconClass||e.inactiveText?i("span",{class:["el-switch__label","el-switch__label--left",e.checked?"":"is-active"]},[e.inactiveIconClass?i("i",{class:[e.inactiveIconClass]}):e._e(),!e.inactiveIconClass&&e.inactiveText?i("span",{attrs:{"aria-hidden":e.checked}},[e._v(e._s(e.inactiveText))]):e._e()]):e._e(),i("span",{ref:"core",staticClass:"el-switch__core",style:{width:e.coreWidth+"px"}}),e.activeIconClass||e.activeText?i("span",{class:["el-switch__label","el-switch__label--right",e.checked?"is-active":""]},[e.activeIconClass?i("i",{class:[e.activeIconClass]}):e._e(),!e.activeIconClass&&e.activeText?i("span",{attrs:{"aria-hidden":!e.checked}},[e._v(e._s(e.activeText))]):e._e()]):e._e()])};Gi._withStripped=!0;var Ui=r({name:"ElSwitch",mixins:[u("input"),G,l],inject:{elForm:{default:""}},props:{value:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},width:{type:Number,default:40},activeIconClass:{type:String,default:""},inactiveIconClass:{type:String,default:""},activeText:String,inactiveText:String,activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},id:String},data:function(){return{coreWidth:this.width}},created:function(){~[this.activeValue,this.inactiveValue].indexOf(this.value)||this.$emit("input",this.inactiveValue)},computed:{checked:function(){return this.value===this.activeValue},switchDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},watch:{checked:function(){this.$refs.input.checked=this.checked,(this.activeColor||this.inactiveColor)&&this.setBackgroundColor(),this.validateEvent&&this.dispatch("ElFormItem","el.form.change",[this.value])}},methods:{handleChange:function(e){var t=this,i=this.checked?this.inactiveValue:this.activeValue;this.$emit("input",i),this.$emit("change",i),this.$nextTick(function(){t.$refs.input.checked=t.checked})},setBackgroundColor:function(){var e=this.checked?this.activeColor:this.inactiveColor;this.$refs.core.style.borderColor=e,this.$refs.core.style.backgroundColor=e},switchValue:function(){!this.switchDisabled&&this.handleChange()},getMigratingConfig:function(){return{props:{"on-color":"on-color is renamed to active-color.","off-color":"off-color is renamed to inactive-color.","on-text":"on-text is renamed to active-text.","off-text":"off-text is renamed to inactive-text.","on-value":"on-value is renamed to active-value.","off-value":"off-value is renamed to inactive-value.","on-icon-class":"on-icon-class is renamed to active-icon-class.","off-icon-class":"off-icon-class is renamed to inactive-icon-class."}}}},mounted:function(){this.coreWidth=this.width||40,(this.activeColor||this.inactiveColor)&&this.setBackgroundColor(),this.$refs.input.checked=this.checked}},Gi,[],!1,null,null,null);Ui.options.__file="packages/switch/src/component.vue";var Xi=Ui.exports;Xi.install=function(e){e.component(Xi.name,Xi)};var Zi=Xi,Ji=function(){var e=this.$createElement,t=this._self._c||e;return t("ul",{directives:[{name:"show",rawName:"v-show",value:this.visible,expression:"visible"}],staticClass:"el-select-group__wrap"},[t("li",{staticClass:"el-select-group__title"},[this._v(this._s(this.label))]),t("li",[t("ul",{staticClass:"el-select-group"},[this._t("default")],2)])])};Ji._withStripped=!0;var Qi=r({mixins:[l],name:"ElOptionGroup",componentName:"ElOptionGroup",props:{label:String,disabled:{type:Boolean,default:!1}},data:function(){return{visible:!0}},watch:{disabled:function(e){this.broadcast("ElOption","handleGroupDisabled",e)}},methods:{queryChange:function(){this.visible=this.$children&&Array.isArray(this.$children)&&this.$children.some(function(e){return!0===e.visible})}},created:function(){this.$on("queryChange",this.queryChange)},mounted:function(){this.disabled&&this.broadcast("ElOption","handleGroupDisabled",this.disabled)}},Ji,[],!1,null,null,null);Qi.options.__file="packages/select/src/option-group.vue";var en=Qi.exports;en.install=function(e){e.component(en.name,en)};var tn=en,nn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-table",class:[{"el-table--fit":e.fit,"el-table--striped":e.stripe,"el-table--border":e.border||e.isGroup,"el-table--hidden":e.isHidden,"el-table--group":e.isGroup,"el-table--fluid-height":e.maxHeight,"el-table--scrollable-x":e.layout.scrollX,"el-table--scrollable-y":e.layout.scrollY,"el-table--enable-row-hover":!e.store.states.isComplex,"el-table--enable-row-transition":0!==(e.store.states.data||[]).length&&(e.store.states.data||[]).length<100},e.tableSize?"el-table--"+e.tableSize:""],on:{mouseleave:function(t){e.handleMouseLeave(t)}}},[i("div",{ref:"hiddenColumns",staticClass:"hidden-columns"},[e._t("default")],2),e.showHeader?i("div",{directives:[{name:"mousewheel",rawName:"v-mousewheel",value:e.handleHeaderFooterMousewheel,expression:"handleHeaderFooterMousewheel"}],ref:"headerWrapper",staticClass:"el-table__header-wrapper"},[i("table-header",{ref:"tableHeader",style:{width:e.layout.bodyWidth?e.layout.bodyWidth+"px":""},attrs:{store:e.store,border:e.border,"default-sort":e.defaultSort}})],1):e._e(),i("div",{ref:"bodyWrapper",staticClass:"el-table__body-wrapper",class:[e.layout.scrollX?"is-scrolling-"+e.scrollPosition:"is-scrolling-none"],style:[e.bodyHeight]},[i("table-body",{style:{width:e.bodyWidth},attrs:{context:e.context,store:e.store,stripe:e.stripe,"row-class-name":e.rowClassName,"row-style":e.rowStyle,highlight:e.highlightCurrentRow}}),e.data&&0!==e.data.length?e._e():i("div",{ref:"emptyBlock",staticClass:"el-table__empty-block",style:e.emptyBlockStyle},[i("span",{staticClass:"el-table__empty-text"},[e._t("empty",[e._v(e._s(e.emptyText||e.t("el.table.emptyText")))])],2)]),e.$slots.append?i("div",{ref:"appendWrapper",staticClass:"el-table__append-wrapper"},[e._t("append")],2):e._e()],1),e.showSummary?i("div",{directives:[{name:"show",rawName:"v-show",value:e.data&&e.data.length>0,expression:"data && data.length > 0"},{name:"mousewheel",rawName:"v-mousewheel",value:e.handleHeaderFooterMousewheel,expression:"handleHeaderFooterMousewheel"}],ref:"footerWrapper",staticClass:"el-table__footer-wrapper"},[i("table-footer",{style:{width:e.layout.bodyWidth?e.layout.bodyWidth+"px":""},attrs:{store:e.store,border:e.border,"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,"default-sort":e.defaultSort}})],1):e._e(),e.fixedColumns.length>0?i("div",{directives:[{name:"mousewheel",rawName:"v-mousewheel",value:e.handleFixedMousewheel,expression:"handleFixedMousewheel"}],ref:"fixedWrapper",staticClass:"el-table__fixed",style:[{width:e.layout.fixedWidth?e.layout.fixedWidth+"px":""},e.fixedHeight]},[e.showHeader?i("div",{ref:"fixedHeaderWrapper",staticClass:"el-table__fixed-header-wrapper"},[i("table-header",{ref:"fixedTableHeader",style:{width:e.bodyWidth},attrs:{fixed:"left",border:e.border,store:e.store}})],1):e._e(),i("div",{ref:"fixedBodyWrapper",staticClass:"el-table__fixed-body-wrapper",style:[{top:e.layout.headerHeight+"px"},e.fixedBodyHeight]},[i("table-body",{style:{width:e.bodyWidth},attrs:{fixed:"left",store:e.store,stripe:e.stripe,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"row-style":e.rowStyle}}),e.$slots.append?i("div",{staticClass:"el-table__append-gutter",style:{height:e.layout.appendHeight+"px"}}):e._e()],1),e.showSummary?i("div",{directives:[{name:"show",rawName:"v-show",value:e.data&&e.data.length>0,expression:"data && data.length > 0"}],ref:"fixedFooterWrapper",staticClass:"el-table__fixed-footer-wrapper"},[i("table-footer",{style:{width:e.bodyWidth},attrs:{fixed:"left",border:e.border,"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,store:e.store}})],1):e._e()]):e._e(),e.rightFixedColumns.length>0?i("div",{directives:[{name:"mousewheel",rawName:"v-mousewheel",value:e.handleFixedMousewheel,expression:"handleFixedMousewheel"}],ref:"rightFixedWrapper",staticClass:"el-table__fixed-right",style:[{width:e.layout.rightFixedWidth?e.layout.rightFixedWidth+"px":"",right:e.layout.scrollY?(e.border?e.layout.gutterWidth:e.layout.gutterWidth||0)+"px":""},e.fixedHeight]},[e.showHeader?i("div",{ref:"rightFixedHeaderWrapper",staticClass:"el-table__fixed-header-wrapper"},[i("table-header",{ref:"rightFixedTableHeader",style:{width:e.bodyWidth},attrs:{fixed:"right",border:e.border,store:e.store}})],1):e._e(),i("div",{ref:"rightFixedBodyWrapper",staticClass:"el-table__fixed-body-wrapper",style:[{top:e.layout.headerHeight+"px"},e.fixedBodyHeight]},[i("table-body",{style:{width:e.bodyWidth},attrs:{fixed:"right",store:e.store,stripe:e.stripe,"row-class-name":e.rowClassName,"row-style":e.rowStyle,highlight:e.highlightCurrentRow}}),e.$slots.append?i("div",{staticClass:"el-table__append-gutter",style:{height:e.layout.appendHeight+"px"}}):e._e()],1),e.showSummary?i("div",{directives:[{name:"show",rawName:"v-show",value:e.data&&e.data.length>0,expression:"data && data.length > 0"}],ref:"rightFixedFooterWrapper",staticClass:"el-table__fixed-footer-wrapper"},[i("table-footer",{style:{width:e.bodyWidth},attrs:{fixed:"right",border:e.border,"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,store:e.store}})],1):e._e()]):e._e(),e.rightFixedColumns.length>0?i("div",{ref:"rightFixedPatch",staticClass:"el-table__fixed-right-patch",style:{width:e.layout.scrollY?e.layout.gutterWidth+"px":"0",height:e.layout.headerHeight+"px"}}):e._e(),i("div",{directives:[{name:"show",rawName:"v-show",value:e.resizeProxyVisible,expression:"resizeProxyVisible"}],ref:"resizeProxy",staticClass:"el-table__column-resize-proxy"})])};nn._withStripped=!0;var rn=i(35),sn=i(48),an=i.n(sn),on="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>-1,ln={bind:function(e,t){var i,n;i=e,n=t.value,i&&i.addEventListener&&i.addEventListener(on?"DOMMouseScroll":"mousewheel",function(e){var t=an()(e);n&&n.apply(this,[e,t])})}},un="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},cn=function(e){for(var t=e.target;t&&"HTML"!==t.tagName.toUpperCase();){if("TD"===t.tagName.toUpperCase())return t;t=t.parentNode}return null},hn=function(e){return null!==e&&"object"===(void 0===e?"undefined":un(e))},dn=function(e,t,i,n,r){if(!t&&!n&&(!r||Array.isArray(r)&&!r.length))return e;i="string"==typeof i?"descending"===i?-1:1:i&&i<0?-1:1;var s=n?null:function(i,n){return r?(Array.isArray(r)||(r=[r]),r.map(function(t){return"string"==typeof t?S(i,t):t(i,n,e)})):("$key"!==t&&hn(i)&&"$value"in i&&(i=i.$value),[hn(i)?S(i,t):i])};return e.map(function(e,t){return{value:e,index:t,key:s?s(e,t):null}}).sort(function(e,t){var r=function(e,t){if(n)return n(e.value,t.value);for(var i=0,r=e.key.length;i<r;i++){if(e.key[i]<t.key[i])return-1;if(e.key[i]>t.key[i])return 1}return 0}(e,t);return r||(r=e.index-t.index),r*i}).map(function(e){return e.value})},pn=function(e,t){var i=null;return e.columns.forEach(function(e){e.id===t&&(i=e)}),i},fn=function(e,t){var i=(t.className||"").match(/el-table_[^\s]+/gm);return i?pn(e,i[0]):null},mn=function(e,t){if(!e)throw new Error("row is required when get row identity");if("string"==typeof t){if(t.indexOf(".")<0)return e[t];for(var i=t.split("."),n=e,r=0;r<i.length;r++)n=n[i[r]];return n}if("function"==typeof t)return t.call(null,e)},vn=function(e,t){var i={};return(e||[]).forEach(function(e,n){i[mn(e,t)]={row:e,index:n}}),i};function gn(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function bn(e){return void 0!==e&&(e=parseInt(e,10),isNaN(e)&&(e=null)),e}function yn(e){return"number"==typeof e?e:"string"==typeof e?/^\d+(?:px)?$/.test(e)?parseInt(e,10):e:null}function wn(e,t,i){var n=!1,r=e.indexOf(t),s=-1!==r,a=function(){e.push(t),n=!0},o=function(){e.splice(r,1),n=!0};return"boolean"==typeof i?i&&!s?a():!i&&s&&o():s?o():a(),n}function _n(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"children",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"hasChildren",r=function(e){return!(Array.isArray(e)&&e.length)};e.forEach(function(e){if(e[n])t(e,null,0);else{var s=e[i];r(s)||function e(s,a,o){t(s,a,o),a.forEach(function(s){if(s[n])t(s,null,o+1);else{var a=s[i];r(a)||e(s,a,o+1)}})}(e,s,0)}})}var xn={data:function(){return{states:{defaultExpandAll:!1,expandRows:[]}}},methods:{updateExpandRows:function(){var e=this.states,t=e.data,i=void 0===t?[]:t,n=e.rowKey,r=e.defaultExpandAll,s=e.expandRows;if(r)this.states.expandRows=i.slice();else if(n){var a=vn(s,n);this.states.expandRows=i.reduce(function(e,t){var i=mn(t,n);return a[i]&&e.push(t),e},[])}else this.states.expandRows=[]},toggleRowExpansion:function(e,t){wn(this.states.expandRows,e,t)&&(this.table.$emit("expand-change",e,this.states.expandRows.slice()),this.scheduleLayout())},setExpandRowKeys:function(e){this.assertRowKey();var t=this.states,i=t.data,n=t.rowKey,r=vn(i,n);this.states.expandRows=e.reduce(function(e,t){var i=r[t];return i&&e.push(i.row),e},[])},isRowExpanded:function(e){var t=this.states,i=t.expandRows,n=void 0===i?[]:i,r=t.rowKey;return r?!!vn(n,r)[mn(e,r)]:-1!==n.indexOf(e)}}},Cn={data:function(){return{states:{_currentRowKey:null,currentRow:null}}},methods:{setCurrentRowKey:function(e){this.assertRowKey(),this.states._currentRowKey=e,this.setCurrentRowByKey(e)},restoreCurrentRowKey:function(){this.states._currentRowKey=null},setCurrentRowByKey:function(e){var t=this.states,i=t.data,n=void 0===i?[]:i,r=t.rowKey,s=null;r&&(s=M(n,function(t){return mn(t,r)===e})),t.currentRow=s},updateCurrentRow:function(e){var t=this.states,i=this.table,n=t.currentRow;if(e&&e!==n)return t.currentRow=e,void i.$emit("current-change",e,n);!e&&n&&(t.currentRow=null,i.$emit("current-change",null,n))},updateCurrentRowData:function(){var e=this.states,t=this.table,i=e.rowKey,n=e._currentRowKey,r=e.data||[],s=e.currentRow;if(-1===r.indexOf(s)&&s){if(i){var a=mn(s,i);this.setCurrentRowByKey(a)}else e.currentRow=null;null===e.currentRow&&t.$emit("current-change",null,s)}else n&&(this.setCurrentRowByKey(n),this.restoreCurrentRowKey())}}},kn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},Sn={data:function(){return{states:{expandRowKeys:[],treeData:{},indent:16,lazy:!1,lazyTreeNodeMap:{},lazyColumnIdentifier:"hasChildren",childrenColumnName:"children"}}},computed:{normalizedData:function(){if(!this.states.rowKey)return{};var e=this.states.data||[];return this.normalize(e)},normalizedLazyNode:function(){var e=this.states,t=e.rowKey,i=e.lazyTreeNodeMap,n=e.lazyColumnIdentifier,r=Object.keys(i),s={};return r.length?(r.forEach(function(e){if(i[e].length){var r={children:[]};i[e].forEach(function(e){var i=mn(e,t);r.children.push(i),e[n]&&!s[i]&&(s[i]={children:[]})}),s[e]=r}}),s):s}},watch:{normalizedData:"updateTreeData",normalizedLazyNode:"updateTreeData"},methods:{normalize:function(e){var t=this.states,i=t.childrenColumnName,n=t.lazyColumnIdentifier,r=t.rowKey,s=t.lazy,a={};return _n(e,function(e,t,i){var n=mn(e,r);Array.isArray(t)?a[n]={children:t.map(function(e){return mn(e,r)}),level:i}:s&&(a[n]={children:[],lazy:!0,level:i})},i,n),a},updateTreeData:function(){var e=this.normalizedData,t=this.normalizedLazyNode,i=Object.keys(e),n={};if(i.length){var r=this.states,s=r.treeData,a=r.defaultExpandAll,o=r.expandRowKeys,l=r.lazy,u=[],c=function(e,t){var i=a||o&&-1!==o.indexOf(t);return!!(e&&e.expanded||i)};i.forEach(function(t){var i=s[t],r=kn({},e[t]);if(r.expanded=c(i,t),r.lazy){var a=i||{},o=a.loaded,l=void 0!==o&&o,h=a.loading,d=void 0!==h&&h;r.loaded=!!l,r.loading=!!d,u.push(t)}n[t]=r});var h=Object.keys(t);l&&h.length&&u.length&&h.forEach(function(e){var i=s[e],r=t[e].children;if(-1!==u.indexOf(e)){if(0!==n[e].children.length)throw new Error("[ElTable]children must be an empty array.");n[e].children=r}else{var a=i||{},o=a.loaded,l=void 0!==o&&o,h=a.loading,d=void 0!==h&&h;n[e]={lazy:!0,loaded:!!l,loading:!!d,expanded:c(i,e),children:r,level:""}}})}this.states.treeData=n,this.updateTableScrollY()},updateTreeExpandKeys:function(e){this.states.expandRowKeys=e,this.updateTreeData()},toggleTreeExpansion:function(e,t){this.assertRowKey();var i=this.states,n=i.rowKey,r=i.treeData,s=mn(e,n),a=s&&r[s];if(s&&a&&"expanded"in a){var o=a.expanded;t=void 0===t?!a.expanded:t,r[s].expanded=t,o!==t&&this.table.$emit("expand-change",e,t),this.updateTableScrollY()}},loadOrToggle:function(e){this.assertRowKey();var t=this.states,i=t.lazy,n=t.treeData,r=t.rowKey,s=mn(e,r),a=n[s];i&&a&&"loaded"in a&&!a.loaded?this.loadData(e,s,a):this.toggleTreeExpansion(e)},loadData:function(e,t,i){var n=this,r=this.table.load,s=this.states,a=s.lazyTreeNodeMap,o=s.treeData;r&&!o[t].loaded&&(o[t].loading=!0,r(e,i,function(i){if(!Array.isArray(i))throw new Error("[ElTable] data must be an array");o[t].loading=!1,o[t].loaded=!0,o[t].expanded=!0,i.length&&n.$set(a,t,i),n.table.$emit("expand-change",e,!0)}))}}},Dn=function e(t){var i=[];return t.forEach(function(t){t.children?i.push.apply(i,e(t.children)):i.push(t)}),i},$n=h.a.extend({data:function(){return{states:{rowKey:null,data:[],isComplex:!1,_columns:[],originColumns:[],columns:[],fixedColumns:[],rightFixedColumns:[],leafColumns:[],fixedLeafColumns:[],rightFixedLeafColumns:[],leafColumnsLength:0,fixedLeafColumnsLength:0,rightFixedLeafColumnsLength:0,isAllSelected:!1,selection:[],reserveSelection:!1,selectOnIndeterminate:!1,selectable:null,filters:{},filteredData:null,sortingColumn:null,sortProp:null,sortOrder:null,hoverRow:null}}},mixins:[xn,Cn,Sn],methods:{assertRowKey:function(){if(!this.states.rowKey)throw new Error("[ElTable] prop row-key is required")},updateColumns:function(){var e=this.states,t=e._columns||[];e.fixedColumns=t.filter(function(e){return!0===e.fixed||"left"===e.fixed}),e.rightFixedColumns=t.filter(function(e){return"right"===e.fixed}),e.fixedColumns.length>0&&t[0]&&"selection"===t[0].type&&!t[0].fixed&&(t[0].fixed=!0,e.fixedColumns.unshift(t[0]));var i=t.filter(function(e){return!e.fixed});e.originColumns=[].concat(e.fixedColumns).concat(i).concat(e.rightFixedColumns);var n=Dn(i),r=Dn(e.fixedColumns),s=Dn(e.rightFixedColumns);e.leafColumnsLength=n.length,e.fixedLeafColumnsLength=r.length,e.rightFixedLeafColumnsLength=s.length,e.columns=[].concat(r).concat(n).concat(s),e.isComplex=e.fixedColumns.length>0||e.rightFixedColumns.length>0},scheduleLayout:function(e){e&&this.updateColumns(),this.table.debouncedUpdateLayout()},isSelected:function(e){var t=this.states.selection;return(void 0===t?[]:t).indexOf(e)>-1},clearSelection:function(){var e=this.states;e.isAllSelected=!1,e.selection.length&&(e.selection=[],this.table.$emit("selection-change",[]))},cleanSelection:function(){var e=this.states,t=e.data,i=e.rowKey,n=e.selection,r=void 0;if(i){r=[];var s=vn(n,i),a=vn(t,i);for(var o in s)s.hasOwnProperty(o)&&!a[o]&&r.push(s[o].row)}else r=n.filter(function(e){return-1===t.indexOf(e)});if(r.length){var l=n.filter(function(e){return-1===r.indexOf(e)});e.selection=l,this.table.$emit("selection-change",l.slice())}},toggleRowSelection:function(e,t){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(wn(this.states.selection,e,t)){var n=(this.states.selection||[]).slice();i&&this.table.$emit("select",n,e),this.table.$emit("selection-change",n)}},_toggleAllSelection:function(){var e=this.states,t=e.data,i=void 0===t?[]:t,n=e.selection,r=e.selectOnIndeterminate?!e.isAllSelected:!(e.isAllSelected||n.length);e.isAllSelected=r;var s=!1;i.forEach(function(t,i){e.selectable?e.selectable.call(null,t,i)&&wn(n,t,r)&&(s=!0):wn(n,t,r)&&(s=!0)}),s&&this.table.$emit("selection-change",n?n.slice():[]),this.table.$emit("select-all",n)},updateSelectionByRowKey:function(){var e=this.states,t=e.selection,i=e.rowKey,n=e.data,r=vn(t,i);n.forEach(function(e){var n=mn(e,i),s=r[n];s&&(t[s.index]=e)})},updateAllSelected:function(){var e=this.states,t=e.selection,i=e.rowKey,n=e.selectable,r=e.data||[];if(0!==r.length){var s=void 0;i&&(s=vn(t,i));for(var a,o=!0,l=0,u=0,c=r.length;u<c;u++){var h=r[u],d=n&&n.call(null,h,u);if(a=h,s?s[mn(a,i)]:-1!==t.indexOf(a))l++;else if(!n||d){o=!1;break}}0===l&&(o=!1),e.isAllSelected=o}else e.isAllSelected=!1},updateFilters:function(e,t){Array.isArray(e)||(e=[e]);var i=this.states,n={};return e.forEach(function(e){i.filters[e.id]=t,n[e.columnKey||e.id]=t}),n},updateSort:function(e,t,i){this.states.sortingColumn&&this.states.sortingColumn!==e&&(this.states.sortingColumn.order=null),this.states.sortingColumn=e,this.states.sortProp=t,this.states.sortOrder=i},execFilter:function(){var e=this,t=this.states,i=t._data,n=t.filters,r=i;Object.keys(n).forEach(function(i){var n=t.filters[i];if(n&&0!==n.length){var s=pn(e.states,i);s&&s.filterMethod&&(r=r.filter(function(e){return n.some(function(t){return s.filterMethod.call(null,t,e,s)})}))}}),t.filteredData=r},execSort:function(){var e=this.states;e.data=function(e,t){var i=t.sortingColumn;return i&&"string"!=typeof i.sortable?dn(e,t.sortProp,t.sortOrder,i.sortMethod,i.sortBy):e}(e.filteredData,e)},execQuery:function(e){e&&e.filter||this.execFilter(),this.execSort()},clearFilter:function(e){var t=this.states,i=this.table.$refs,n=i.tableHeader,r=i.fixedTableHeader,s=i.rightFixedTableHeader,a={};n&&(a=Q(a,n.filterPanels)),r&&(a=Q(a,r.filterPanels)),s&&(a=Q(a,s.filterPanels));var o=Object.keys(a);if(o.length)if("string"==typeof e&&(e=[e]),Array.isArray(e)){var l=e.map(function(e){return function(e,t){for(var i=null,n=0;n<e.columns.length;n++){var r=e.columns[n];if(r.columnKey===t){i=r;break}}return i}(t,e)});o.forEach(function(e){l.find(function(t){return t.id===e})&&(a[e].filteredValue=[])}),this.commit("filterChange",{column:l,values:[],silent:!0,multi:!0})}else o.forEach(function(e){a[e].filteredValue=[]}),t.filters={},this.commit("filterChange",{column:{},values:[],silent:!0})},clearSort:function(){this.states.sortingColumn&&(this.updateSort(null,null,null),this.commit("changeSortCondition",{silent:!0}))},setExpandRowKeysAdapter:function(e){this.setExpandRowKeys(e),this.updateTreeExpandKeys(e)},toggleRowExpansionAdapter:function(e,t){this.states.columns.some(function(e){return"expand"===e.type})?this.toggleRowExpansion(e,t):this.toggleTreeExpansion(e,t)}}});$n.prototype.mutations={setData:function(e,t){var i=e._data!==t;e._data=t,this.execQuery(),this.updateCurrentRowData(),this.updateExpandRows(),e.reserveSelection?(this.assertRowKey(),this.updateSelectionByRowKey()):i?this.clearSelection():this.cleanSelection(),this.updateAllSelected(),this.updateTableScrollY()},insertColumn:function(e,t,i,n){var r=e._columns;n&&((r=n.children)||(r=n.children=[])),void 0!==i?r.splice(i,0,t):r.push(t),"selection"===t.type&&(e.selectable=t.selectable,e.reserveSelection=t.reserveSelection),this.table.$ready&&(this.updateColumns(),this.scheduleLayout())},removeColumn:function(e,t,i){var n=e._columns;i&&((n=i.children)||(n=i.children=[])),n&&n.splice(n.indexOf(t),1),this.table.$ready&&(this.updateColumns(),this.scheduleLayout())},sort:function(e,t){var i=t.prop,n=t.order,r=t.init;if(i){var s=M(e.columns,function(e){return e.property===i});s&&(s.order=n,this.updateSort(s,i,n),this.commit("changeSortCondition",{init:r}))}},changeSortCondition:function(e,t){var i=e.sortingColumn,n=e.sortProp,r=e.sortOrder;null===r&&(e.sortingColumn=null,e.sortProp=null);this.execQuery({filter:!0}),t&&(t.silent||t.init)||this.table.$emit("sort-change",{column:i,prop:n,order:r}),this.updateTableScrollY()},filterChange:function(e,t){var i=t.column,n=t.values,r=t.silent,s=this.updateFilters(i,n);this.execQuery(),r||this.table.$emit("filter-change",s),this.updateTableScrollY()},toggleAllSelection:function(){this.toggleAllSelection()},rowSelectedChanged:function(e,t){this.toggleRowSelection(t),this.updateAllSelected()},setHoverRow:function(e,t){e.hoverRow=t},setCurrentRow:function(e,t){this.updateCurrentRow(t)}},$n.prototype.commit=function(e){var t=this.mutations;if(!t[e])throw new Error("Action not found: "+e);for(var i=arguments.length,n=Array(i>1?i-1:0),r=1;r<i;r++)n[r-1]=arguments[r];t[e].apply(this,[this.states].concat(n))},$n.prototype.updateTableScrollY=function(){h.a.nextTick(this.table.updateScrollY)};var En=$n;function Tn(e){var t={};return Object.keys(e).forEach(function(i){var n=e[i],r=void 0;"string"==typeof n?r=function(){return this.store.states[n]}:"function"==typeof n?r=function(){return n.call(this,this.store.states)}:console.error("invalid value type"),r&&(t[i]=r)}),t}var Mn=function(){function e(t){for(var i in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.observers=[],this.table=null,this.store=null,this.columns=null,this.fit=!0,this.showHeader=!0,this.height=null,this.scrollX=!1,this.scrollY=!1,this.bodyWidth=null,this.fixedWidth=null,this.rightFixedWidth=null,this.tableHeight=null,this.headerHeight=44,this.appendHeight=0,this.footerHeight=44,this.viewportHeight=null,this.bodyHeight=null,this.fixedBodyHeight=null,this.gutterWidth=Ee(),t)t.hasOwnProperty(i)&&(this[i]=t[i]);if(!this.table)throw new Error("table is required for Table Layout");if(!this.store)throw new Error("store is required for Table Layout")}return e.prototype.updateScrollY=function(){if(null===this.height)return!1;var e=this.table.bodyWrapper;if(this.table.$el&&e){var t=e.querySelector(".el-table__body"),i=this.scrollY,n=t.offsetHeight>this.bodyHeight;return this.scrollY=n,i!==n}return!1},e.prototype.setHeight=function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"height";if(!h.a.prototype.$isServer){var n=this.table.$el;if(e=yn(e),this.height=e,!n&&(e||0===e))return h.a.nextTick(function(){return t.setHeight(e,i)});"number"==typeof e?(n.style[i]=e+"px",this.updateElsHeight()):"string"==typeof e&&(n.style[i]=e,this.updateElsHeight())}},e.prototype.setMaxHeight=function(e){this.setHeight(e,"max-height")},e.prototype.getFlattenColumns=function(){var e=[];return this.table.columns.forEach(function(t){t.isColumnGroup?e.push.apply(e,t.columns):e.push(t)}),e},e.prototype.updateElsHeight=function(){var e=this;if(!this.table.$ready)return h.a.nextTick(function(){return e.updateElsHeight()});var t=this.table.$refs,i=t.headerWrapper,n=t.appendWrapper,r=t.footerWrapper;if(this.appendHeight=n?n.offsetHeight:0,!this.showHeader||i){var s=i?i.querySelector(".el-table__header tr"):null,a=this.headerDisplayNone(s),o=this.headerHeight=this.showHeader?i.offsetHeight:0;if(this.showHeader&&!a&&i.offsetWidth>0&&(this.table.columns||[]).length>0&&o<2)return h.a.nextTick(function(){return e.updateElsHeight()});var l=this.tableHeight=this.table.$el.clientHeight,u=this.footerHeight=r?r.offsetHeight:0;null!==this.height&&(this.bodyHeight=l-o-u+(r?1:0)),this.fixedBodyHeight=this.scrollX?this.bodyHeight-this.gutterWidth:this.bodyHeight;var c=!(this.store.states.data&&this.store.states.data.length);this.viewportHeight=this.scrollX?l-(c?0:this.gutterWidth):l,this.updateScrollY(),this.notifyObservers("scrollable")}},e.prototype.headerDisplayNone=function(e){if(!e)return!0;for(var t=e;"DIV"!==t.tagName;){if("none"===getComputedStyle(t).display)return!0;t=t.parentElement}return!1},e.prototype.updateColumnsWidth=function(){if(!h.a.prototype.$isServer){var e=this.fit,t=this.table.$el.clientWidth,i=0,n=this.getFlattenColumns(),r=n.filter(function(e){return"number"!=typeof e.width});if(n.forEach(function(e){"number"==typeof e.width&&e.realWidth&&(e.realWidth=null)}),r.length>0&&e){n.forEach(function(e){i+=e.width||e.minWidth||80});var s=this.scrollY?this.gutterWidth:0;if(i<=t-s){this.scrollX=!1;var a=t-s-i;if(1===r.length)r[0].realWidth=(r[0].minWidth||80)+a;else{var o=a/r.reduce(function(e,t){return e+(t.minWidth||80)},0),l=0;r.forEach(function(e,t){if(0!==t){var i=Math.floor((e.minWidth||80)*o);l+=i,e.realWidth=(e.minWidth||80)+i}}),r[0].realWidth=(r[0].minWidth||80)+a-l}}else this.scrollX=!0,r.forEach(function(e){e.realWidth=e.minWidth});this.bodyWidth=Math.max(i,t),this.table.resizeState.width=this.bodyWidth}else n.forEach(function(e){e.width||e.minWidth?e.realWidth=e.width||e.minWidth:e.realWidth=80,i+=e.realWidth}),this.scrollX=i>t,this.bodyWidth=i;var u=this.store.states.fixedColumns;if(u.length>0){var c=0;u.forEach(function(e){c+=e.realWidth||e.width}),this.fixedWidth=c}var d=this.store.states.rightFixedColumns;if(d.length>0){var p=0;d.forEach(function(e){p+=e.realWidth||e.width}),this.rightFixedWidth=p}this.notifyObservers("columns")}},e.prototype.addObserver=function(e){this.observers.push(e)},e.prototype.removeObserver=function(e){var t=this.observers.indexOf(e);-1!==t&&this.observers.splice(t,1)},e.prototype.notifyObservers=function(e){var t=this;this.observers.forEach(function(i){switch(e){case"columns":i.onColumnsChange(t);break;case"scrollable":i.onScrollableChange(t);break;default:throw new Error("Table Layout don't have event "+e+".")}})},e}(),Nn={created:function(){this.tableLayout.addObserver(this)},destroyed:function(){this.tableLayout.removeObserver(this)},computed:{tableLayout:function(){var e=this.layout;if(!e&&this.table&&(e=this.table.layout),!e)throw new Error("Can not find table layout.");return e}},mounted:function(){this.onColumnsChange(this.tableLayout),this.onScrollableChange(this.tableLayout)},updated:function(){this.__updated__||(this.onColumnsChange(this.tableLayout),this.onScrollableChange(this.tableLayout),this.__updated__=!0)},methods:{onColumnsChange:function(e){var t=this.$el.querySelectorAll("colgroup > col");if(t.length){var i=e.getFlattenColumns(),n={};i.forEach(function(e){n[e.id]=e});for(var r=0,s=t.length;r<s;r++){var a=t[r],o=a.getAttribute("name"),l=n[o];l&&a.setAttribute("width",l.realWidth||l.width)}}},onScrollableChange:function(e){for(var t=this.$el.querySelectorAll("colgroup > col[name=gutter]"),i=0,n=t.length;i<n;i++){t[i].setAttribute("width",e.scrollY?e.gutterWidth:"0")}for(var r=this.$el.querySelectorAll("th.gutter"),s=0,a=r.length;s<a;s++){var o=r[s];o.style.width=e.scrollY?e.gutterWidth+"px":"0",o.style.display=e.scrollY?"":"none"}}}},Pn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},On=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},In={name:"ElTableBody",mixins:[Nn],components:{ElCheckbox:Bi,ElTooltip:ci},props:{store:{required:!0},stripe:Boolean,context:{},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:String,highlight:Boolean},render:function(e){var t=this,i=this.data||[];return e("table",{class:"el-table__body",attrs:{cellspacing:"0",cellpadding:"0",border:"0"}},[e("colgroup",[this.columns.map(function(t){return e("col",{attrs:{name:t.id},key:t.id})})]),e("tbody",[i.reduce(function(e,i){return e.concat(t.wrappedRowRender(i,e.length))},[]),e("el-tooltip",{attrs:{effect:this.table.tooltipEffect,placement:"top",content:this.tooltipContent},ref:"tooltip"})])])},computed:On({table:function(){return this.$parent}},Tn({data:"data",columns:"columns",treeIndent:"indent",leftFixedLeafCount:"fixedLeafColumnsLength",rightFixedLeafCount:"rightFixedLeafColumnsLength",columnsCount:function(e){return e.columns.length},leftFixedCount:function(e){return e.fixedColumns.length},rightFixedCount:function(e){return e.rightFixedColumns.length},hasExpandColumn:function(e){return e.columns.some(function(e){return"expand"===e.type})}}),{firstDefaultColumnIndex:function(){return T(this.columns,function(e){return"default"===e.type})}}),watch:{"store.states.hoverRow":function(e,t){var i=this;if(this.store.states.isComplex&&!this.$isServer){var n=window.requestAnimationFrame;n||(n=function(e){return setTimeout(e,16)}),n(function(){var n=i.$el.querySelectorAll(".el-table__row"),r=n[t],s=n[e];r&&ve(r,"hover-row"),s&&me(s,"hover-row")})}}},data:function(){return{tooltipContent:""}},created:function(){this.activateTooltip=tt()(50,function(e){return e.handleShowPopper()})},methods:{getKeyOfRow:function(e,t){var i=this.table.rowKey;return i?mn(e,i):t},isColumnHidden:function(e){return!0===this.fixed||"left"===this.fixed?e>=this.leftFixedLeafCount:"right"===this.fixed?e<this.columnsCount-this.rightFixedLeafCount:e<this.leftFixedLeafCount||e>=this.columnsCount-this.rightFixedLeafCount},getSpan:function(e,t,i,n){var r=1,s=1,a=this.table.spanMethod;if("function"==typeof a){var o=a({row:e,column:t,rowIndex:i,columnIndex:n});Array.isArray(o)?(r=o[0],s=o[1]):"object"===(void 0===o?"undefined":Pn(o))&&(r=o.rowspan,s=o.colspan)}return{rowspan:r,colspan:s}},getRowStyle:function(e,t){var i=this.table.rowStyle;return"function"==typeof i?i.call(null,{row:e,rowIndex:t}):i||null},getRowClass:function(e,t){var i=["el-table__row"];this.table.highlightCurrentRow&&e===this.store.states.currentRow&&i.push("current-row"),this.stripe&&t%2==1&&i.push("el-table__row--striped");var n=this.table.rowClassName;return"string"==typeof n?i.push(n):"function"==typeof n&&i.push(n.call(null,{row:e,rowIndex:t})),this.store.states.expandRows.indexOf(e)>-1&&i.push("expanded"),i},getCellStyle:function(e,t,i,n){var r=this.table.cellStyle;return"function"==typeof r?r.call(null,{rowIndex:e,columnIndex:t,row:i,column:n}):r},getCellClass:function(e,t,i,n){var r=[n.id,n.align,n.className];this.isColumnHidden(t)&&r.push("is-hidden");var s=this.table.cellClassName;return"string"==typeof s?r.push(s):"function"==typeof s&&r.push(s.call(null,{rowIndex:e,columnIndex:t,row:i,column:n})),r.join(" ")},getColspanRealWidth:function(e,t,i){return t<1?e[i].realWidth:e.map(function(e){return e.realWidth}).slice(i,i+t).reduce(function(e,t){return e+t},-1)},handleCellMouseEnter:function(e,t){var i=this.table,n=cn(e);if(n){var r=fn(i,n),s=i.hoverState={cell:n,column:r,row:t};i.$emit("cell-mouse-enter",s.row,s.column,s.cell,e)}var a=e.target.querySelector(".cell");if(fe(a,"el-tooltip")&&a.childNodes.length){var o=document.createRange();if(o.setStart(a,0),o.setEnd(a,a.childNodes.length),(o.getBoundingClientRect().width+((parseInt(ge(a,"paddingLeft"),10)||0)+(parseInt(ge(a,"paddingRight"),10)||0))>a.offsetWidth||a.scrollWidth>a.offsetWidth)&&this.$refs.tooltip){var l=this.$refs.tooltip;this.tooltipContent=n.innerText||n.textContent,l.referenceElm=n,l.$refs.popper&&(l.$refs.popper.style.display="none"),l.doDestroy(),l.setExpectedState(!0),this.activateTooltip(l)}}},handleCellMouseLeave:function(e){var t=this.$refs.tooltip;if(t&&(t.setExpectedState(!1),t.handleClosePopper()),cn(e)){var i=this.table.hoverState||{};this.table.$emit("cell-mouse-leave",i.row,i.column,i.cell,e)}},handleMouseEnter:tt()(30,function(e){this.store.commit("setHoverRow",e)}),handleMouseLeave:tt()(30,function(){this.store.commit("setHoverRow",null)}),handleContextMenu:function(e,t){this.handleEvent(e,t,"contextmenu")},handleDoubleClick:function(e,t){this.handleEvent(e,t,"dblclick")},handleClick:function(e,t){this.store.commit("setCurrentRow",t),this.handleEvent(e,t,"click")},handleEvent:function(e,t,i){var n=this.table,r=cn(e),s=void 0;r&&(s=fn(n,r))&&n.$emit("cell-"+i,t,s,r,e),n.$emit("row-"+i,t,s,e)},rowRender:function(e,t,i){var n=this,r=this.$createElement,s=this.treeIndent,a=this.columns,o=this.firstDefaultColumnIndex,l=a.map(function(e,t){return n.isColumnHidden(t)}),u=this.getRowClass(e,t),c=!0;return i&&(u.push("el-table__row--level-"+i.level),c=i.display),r("tr",{style:[c?null:{display:"none"},this.getRowStyle(e,t)],class:u,key:this.getKeyOfRow(e,t),on:{dblclick:function(t){return n.handleDoubleClick(t,e)},click:function(t){return n.handleClick(t,e)},contextmenu:function(t){return n.handleContextMenu(t,e)},mouseenter:function(e){return n.handleMouseEnter(t)},mouseleave:this.handleMouseLeave}},[a.map(function(u,c){var h=n.getSpan(e,u,t,c),d=h.rowspan,p=h.colspan;if(!d||!p)return null;var f=On({},u);f.realWidth=n.getColspanRealWidth(a,p,c);var m={store:n.store,_self:n.context||n.table.$vnode.context,column:f,row:e,$index:t};return c===o&&i&&(m.treeNode={indent:i.level*s,level:i.level},"boolean"==typeof i.expanded&&(m.treeNode.expanded=i.expanded,"loading"in i&&(m.treeNode.loading=i.loading),"noLazyChildren"in i&&(m.treeNode.noLazyChildren=i.noLazyChildren))),r("td",{style:n.getCellStyle(t,c,e,u),class:n.getCellClass(t,c,e,u),attrs:{rowspan:d,colspan:p},on:{mouseenter:function(t){return n.handleCellMouseEnter(t,e)},mouseleave:n.handleCellMouseLeave}},[u.renderCell.call(n._renderProxy,n.$createElement,m,l[c])])})])},wrappedRowRender:function(e,t){var i=this,n=this.$createElement,r=this.store,s=r.isRowExpanded,a=r.assertRowKey,o=r.states,l=o.treeData,u=o.lazyTreeNodeMap,c=o.childrenColumnName,h=o.rowKey;if(this.hasExpandColumn&&s(e)){var d=this.table.renderExpanded,p=this.rowRender(e,t);return d?[[p,n("tr",{key:"expanded-row__"+p.key},[n("td",{attrs:{colspan:this.columnsCount},class:"el-table__expanded-cell"},[d(this.$createElement,{row:e,$index:t,store:this.store})])])]]:(console.error("[Element Error]renderExpanded is required."),p)}if(Object.keys(l).length){a();var f=mn(e,h),m=l[f],v=null;m&&(v={expanded:m.expanded,level:m.level,display:!0},"boolean"==typeof m.lazy&&("boolean"==typeof m.loaded&&m.loaded&&(v.noLazyChildren=!(m.children&&m.children.length)),v.loading=m.loading));var g=[this.rowRender(e,t,v)];if(m){var b=0;m.display=!0,function e(n,r){n&&n.length&&r&&n.forEach(function(n){var s={display:r.display&&r.expanded,level:r.level+1},a=mn(n,h);if(null==a)throw new Error("for nested data item, row-key is required.");if((m=On({},l[a]))&&(s.expanded=m.expanded,m.level=m.level||s.level,m.display=!(!m.expanded||!s.display),"boolean"==typeof m.lazy&&("boolean"==typeof m.loaded&&m.loaded&&(s.noLazyChildren=!(m.children&&m.children.length)),s.loading=m.loading)),b++,g.push(i.rowRender(n,t+b,s)),m){var o=u[a]||n[c];e(o,m)}})}(u[f]||e[c],m)}return g}return this.rowRender(e,t)}}},An=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"}},[e.multiple?i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleOutsideClick,expression:"handleOutsideClick"},{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-table-filter"},[i("div",{staticClass:"el-table-filter__content"},[i("el-scrollbar",{attrs:{"wrap-class":"el-table-filter__wrap"}},[i("el-checkbox-group",{staticClass:"el-table-filter__checkbox-group",model:{value:e.filteredValue,callback:function(t){e.filteredValue=t},expression:"filteredValue"}},e._l(e.filters,function(t){return i("el-checkbox",{key:t.value,attrs:{label:t.value}},[e._v(e._s(t.text))])}),1)],1)],1),i("div",{staticClass:"el-table-filter__bottom"},[i("button",{class:{"is-disabled":0===e.filteredValue.length},attrs:{disabled:0===e.filteredValue.length},on:{click:e.handleConfirm}},[e._v(e._s(e.t("el.table.confirmFilter")))]),i("button",{on:{click:e.handleReset}},[e._v(e._s(e.t("el.table.resetFilter")))])])]):i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleOutsideClick,expression:"handleOutsideClick"},{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-table-filter"},[i("ul",{staticClass:"el-table-filter__list"},[i("li",{staticClass:"el-table-filter__list-item",class:{"is-active":void 0===e.filterValue||null===e.filterValue},on:{click:function(t){e.handleSelect(null)}}},[e._v(e._s(e.t("el.table.clearFilter")))]),e._l(e.filters,function(t){return i("li",{key:t.value,staticClass:"el-table-filter__list-item",class:{"is-active":e.isActive(t)},attrs:{label:t.value},on:{click:function(i){e.handleSelect(t.value)}}},[e._v(e._s(t.text))])})],2)])])};An._withStripped=!0;var Fn=[];!h.a.prototype.$isServer&&document.addEventListener("click",function(e){Fn.forEach(function(t){var i=e.target;t&&t.$el&&(i===t.$el||t.$el.contains(i)||t.handleOutsideClick&&t.handleOutsideClick(e))})});var Ln=function(e){e&&Fn.push(e)},Vn=function(e){-1!==Fn.indexOf(e)&&Fn.splice(e,1)},Bn=r({name:"ElTableFilterPanel",mixins:[Ie,Y],directives:{Clickoutside:ot},components:{ElCheckbox:Bi,ElCheckboxGroup:Ki,ElScrollbar:Qe},props:{placement:{type:String,default:"bottom-end"}},methods:{isActive:function(e){return e.value===this.filterValue},handleOutsideClick:function(){var e=this;setTimeout(function(){e.showPopper=!1},16)},handleConfirm:function(){this.confirmFilter(this.filteredValue),this.handleOutsideClick()},handleReset:function(){this.filteredValue=[],this.confirmFilter(this.filteredValue),this.handleOutsideClick()},handleSelect:function(e){this.filterValue=e,null!=e?this.confirmFilter(this.filteredValue):this.confirmFilter([]),this.handleOutsideClick()},confirmFilter:function(e){this.table.store.commit("filterChange",{column:this.column,values:e}),this.table.store.updateAllSelected()}},data:function(){return{table:null,cell:null,column:null}},computed:{filters:function(){return this.column&&this.column.filters},filterValue:{get:function(){return(this.column.filteredValue||[])[0]},set:function(e){this.filteredValue&&(null!=e?this.filteredValue.splice(0,1,e):this.filteredValue.splice(0,1))}},filteredValue:{get:function(){return this.column&&this.column.filteredValue||[]},set:function(e){this.column&&(this.column.filteredValue=e)}},multiple:function(){return!this.column||this.column.filterMultiple}},mounted:function(){var e=this;this.popperElm=this.$el,this.referenceElm=this.cell,this.table.bodyWrapper.addEventListener("scroll",function(){e.updatePopper()}),this.$watch("showPopper",function(t){e.column&&(e.column.filterOpened=t),t?Ln(e):Vn(e)})},watch:{showPopper:function(e){!0===e&&parseInt(this.popperJS._popper.style.zIndex,10)<De.zIndex&&(this.popperJS._popper.style.zIndex=De.nextZIndex())}}},An,[],!1,null,null,null);Bn.options.__file="packages/table/src/filter-panel.vue";var zn=Bn.exports,Hn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},Rn=function(e){var t=1;e.forEach(function(e){e.level=1,function e(i,n){if(n&&(i.level=n.level+1,t<i.level&&(t=i.level)),i.children){var r=0;i.children.forEach(function(t){e(t,i),r+=t.colSpan}),i.colSpan=r}else i.colSpan=1}(e)});for(var i=[],n=0;n<t;n++)i.push([]);return function e(t){var i=[];return t.forEach(function(t){t.children?(i.push(t),i.push.apply(i,e(t.children))):i.push(t)}),i}(e).forEach(function(e){e.children?e.rowSpan=1:e.rowSpan=t-e.level+1,i[e.level-1].push(e)}),i},Wn={name:"ElTableHeader",mixins:[Nn],render:function(e){var t=this,i=this.store.states.originColumns,n=Rn(i,this.columns),r=n.length>1;return r&&(this.$parent.isGroup=!0),e("table",{class:"el-table__header",attrs:{cellspacing:"0",cellpadding:"0",border:"0"}},[e("colgroup",[this.columns.map(function(t){return e("col",{attrs:{name:t.id},key:t.id})}),this.hasGutter?e("col",{attrs:{name:"gutter"}}):""]),e("thead",{class:[{"is-group":r,"has-gutter":this.hasGutter}]},[this._l(n,function(i,n){return e("tr",{style:t.getHeaderRowStyle(n),class:t.getHeaderRowClass(n)},[i.map(function(r,s){return e("th",{attrs:{colspan:r.colSpan,rowspan:r.rowSpan},on:{mousemove:function(e){return t.handleMouseMove(e,r)},mouseout:t.handleMouseOut,mousedown:function(e){return t.handleMouseDown(e,r)},click:function(e){return t.handleHeaderClick(e,r)},contextmenu:function(e){return t.handleHeaderContextMenu(e,r)}},style:t.getHeaderCellStyle(n,s,i,r),class:t.getHeaderCellClass(n,s,i,r),key:r.id},[e("div",{class:["cell",r.filteredValue&&r.filteredValue.length>0?"highlight":"",r.labelClassName]},[r.renderHeader?r.renderHeader.call(t._renderProxy,e,{column:r,$index:s,store:t.store,_self:t.$parent.$vnode.context}):r.label,r.sortable?e("span",{class:"caret-wrapper",on:{click:function(e){return t.handleSortClick(e,r)}}},[e("i",{class:"sort-caret ascending",on:{click:function(e){return t.handleSortClick(e,r,"ascending")}}}),e("i",{class:"sort-caret descending",on:{click:function(e){return t.handleSortClick(e,r,"descending")}}})]):"",r.filterable?e("span",{class:"el-table__column-filter-trigger",on:{click:function(e){return t.handleFilterClick(e,r)}}},[e("i",{class:["el-icon-arrow-down",r.filterOpened?"el-icon-arrow-up":""]})]):""])])}),t.hasGutter?e("th",{class:"gutter"}):""])})])])},props:{fixed:String,store:{required:!0},border:Boolean,defaultSort:{type:Object,default:function(){return{prop:"",order:""}}}},components:{ElCheckbox:Bi},computed:Hn({table:function(){return this.$parent},hasGutter:function(){return!this.fixed&&this.tableLayout.gutterWidth}},Tn({columns:"columns",isAllSelected:"isAllSelected",leftFixedLeafCount:"fixedLeafColumnsLength",rightFixedLeafCount:"rightFixedLeafColumnsLength",columnsCount:function(e){return e.columns.length},leftFixedCount:function(e){return e.fixedColumns.length},rightFixedCount:function(e){return e.rightFixedColumns.length}})),created:function(){this.filterPanels={}},mounted:function(){var e=this;this.$nextTick(function(){var t=e.defaultSort,i=t.prop,n=t.order;e.store.commit("sort",{prop:i,order:n,init:!0})})},beforeDestroy:function(){var e=this.filterPanels;for(var t in e)e.hasOwnProperty(t)&&e[t]&&e[t].$destroy(!0)},methods:{isCellHidden:function(e,t){for(var i=0,n=0;n<e;n++)i+=t[n].colSpan;var r=i+t[e].colSpan-1;return!0===this.fixed||"left"===this.fixed?r>=this.leftFixedLeafCount:"right"===this.fixed?i<this.columnsCount-this.rightFixedLeafCount:r<this.leftFixedLeafCount||i>=this.columnsCount-this.rightFixedLeafCount},getHeaderRowStyle:function(e){var t=this.table.headerRowStyle;return"function"==typeof t?t.call(null,{rowIndex:e}):t},getHeaderRowClass:function(e){var t=[],i=this.table.headerRowClassName;return"string"==typeof i?t.push(i):"function"==typeof i&&t.push(i.call(null,{rowIndex:e})),t.join(" ")},getHeaderCellStyle:function(e,t,i,n){var r=this.table.headerCellStyle;return"function"==typeof r?r.call(null,{rowIndex:e,columnIndex:t,row:i,column:n}):r},getHeaderCellClass:function(e,t,i,n){var r=[n.id,n.order,n.headerAlign,n.className,n.labelClassName];0===e&&this.isCellHidden(t,i)&&r.push("is-hidden"),n.children||r.push("is-leaf"),n.sortable&&r.push("is-sortable");var s=this.table.headerCellClassName;return"string"==typeof s?r.push(s):"function"==typeof s&&r.push(s.call(null,{rowIndex:e,columnIndex:t,row:i,column:n})),r.join(" ")},toggleAllSelection:function(e){e.stopPropagation(),this.store.commit("toggleAllSelection")},handleFilterClick:function(e,t){e.stopPropagation();var i=e.target,n="TH"===i.tagName?i:i.parentNode;if(!fe(n,"noclick")){n=n.querySelector(".el-table__column-filter-trigger")||n;var r=this.$parent,s=this.filterPanels[t.id];s&&t.filterOpened?s.showPopper=!1:(s||(s=new h.a(zn),this.filterPanels[t.id]=s,t.filterPlacement&&(s.placement=t.filterPlacement),s.table=r,s.cell=n,s.column=t,!this.$isServer&&s.$mount(document.createElement("div"))),setTimeout(function(){s.showPopper=!0},16))}},handleHeaderClick:function(e,t){!t.filters&&t.sortable?this.handleSortClick(e,t):t.filterable&&!t.sortable&&this.handleFilterClick(e,t),this.$parent.$emit("header-click",t,e)},handleHeaderContextMenu:function(e,t){this.$parent.$emit("header-contextmenu",t,e)},handleMouseDown:function(e,t){var i=this;if(!this.$isServer&&!(t.children&&t.children.length>0)&&this.draggingColumn&&this.border){this.dragging=!0,this.$parent.resizeProxyVisible=!0;var n=this.$parent,r=n.$el.getBoundingClientRect().left,s=this.$el.querySelector("th."+t.id),a=s.getBoundingClientRect(),o=a.left-r+30;me(s,"noclick"),this.dragState={startMouseLeft:e.clientX,startLeft:a.right-r,startColumnLeft:a.left-r,tableLeft:r};var l=n.$refs.resizeProxy;l.style.left=this.dragState.startLeft+"px",document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};var u=function(e){var t=e.clientX-i.dragState.startMouseLeft,n=i.dragState.startLeft+t;l.style.left=Math.max(o,n)+"px"};document.addEventListener("mousemove",u),document.addEventListener("mouseup",function r(){if(i.dragging){var a=i.dragState,o=a.startColumnLeft,c=a.startLeft,h=parseInt(l.style.left,10)-o;t.width=t.realWidth=h,n.$emit("header-dragend",t.width,c-o,t,e),i.store.scheduleLayout(),document.body.style.cursor="",i.dragging=!1,i.draggingColumn=null,i.dragState={},n.resizeProxyVisible=!1}document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",r),document.onselectstart=null,document.ondragstart=null,setTimeout(function(){ve(s,"noclick")},0)})}},handleMouseMove:function(e,t){if(!(t.children&&t.children.length>0)){for(var i=e.target;i&&"TH"!==i.tagName;)i=i.parentNode;if(t&&t.resizable&&!this.dragging&&this.border){var n=i.getBoundingClientRect(),r=document.body.style;n.width>12&&n.right-e.pageX<8?(r.cursor="col-resize",fe(i,"is-sortable")&&(i.style.cursor="col-resize"),this.draggingColumn=t):this.dragging||(r.cursor="",fe(i,"is-sortable")&&(i.style.cursor="pointer"),this.draggingColumn=null)}}},handleMouseOut:function(){this.$isServer||(document.body.style.cursor="")},toggleOrder:function(e){var t=e.order,i=e.sortOrders;if(""===t)return i[0];var n=i.indexOf(t||null);return i[n>i.length-2?0:n+1]},handleSortClick:function(e,t,i){e.stopPropagation();for(var n=t.order===i?null:i||this.toggleOrder(t),r=e.target;r&&"TH"!==r.tagName;)r=r.parentNode;if(r&&"TH"===r.tagName&&fe(r,"noclick"))ve(r,"noclick");else if(t.sortable){var s=this.store.states,a=s.sortProp,o=void 0,l=s.sortingColumn;(l!==t||l===t&&null===l.order)&&(l&&(l.order=null),s.sortingColumn=t,a=t.property),o=t.order=n||null,s.sortProp=a,s.sortOrder=o,this.store.commit("changeSortCondition")}}},data:function(){return{draggingColumn:null,dragging:!1,dragState:{}}}},jn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},qn={name:"ElTableFooter",mixins:[Nn],render:function(e){var t=this,i=[];return this.summaryMethod?i=this.summaryMethod({columns:this.columns,data:this.store.states.data}):this.columns.forEach(function(e,n){if(0!==n){var r=t.store.states.data.map(function(t){return Number(t[e.property])}),s=[],a=!0;r.forEach(function(e){if(!isNaN(e)){a=!1;var t=(""+e).split(".")[1];s.push(t?t.length:0)}});var o=Math.max.apply(null,s);i[n]=a?"":r.reduce(function(e,t){var i=Number(t);return isNaN(i)?e:parseFloat((e+t).toFixed(Math.min(o,20)))},0)}else i[n]=t.sumText}),e("table",{class:"el-table__footer",attrs:{cellspacing:"0",cellpadding:"0",border:"0"}},[e("colgroup",[this.columns.map(function(t){return e("col",{attrs:{name:t.id},key:t.id})}),this.hasGutter?e("col",{attrs:{name:"gutter"}}):""]),e("tbody",{class:[{"has-gutter":this.hasGutter}]},[e("tr",[this.columns.map(function(n,r){return e("td",{key:r,attrs:{colspan:n.colSpan,rowspan:n.rowSpan},class:t.getRowClasses(n,r)},[e("div",{class:["cell",n.labelClassName]},[i[r]])])}),this.hasGutter?e("th",{class:"gutter"}):""])])])},props:{fixed:String,store:{required:!0},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:function(){return{prop:"",order:""}}}},computed:jn({table:function(){return this.$parent},hasGutter:function(){return!this.fixed&&this.tableLayout.gutterWidth}},Tn({columns:"columns",isAllSelected:"isAllSelected",leftFixedLeafCount:"fixedLeafColumnsLength",rightFixedLeafCount:"rightFixedLeafColumnsLength",columnsCount:function(e){return e.columns.length},leftFixedCount:function(e){return e.fixedColumns.length},rightFixedCount:function(e){return e.rightFixedColumns.length}})),methods:{isCellHidden:function(e,t,i){if(!0===this.fixed||"left"===this.fixed)return e>=this.leftFixedLeafCount;if("right"===this.fixed){for(var n=0,r=0;r<e;r++)n+=t[r].colSpan;return n<this.columnsCount-this.rightFixedLeafCount}return!(this.fixed||!i.fixed)||(e<this.leftFixedCount||e>=this.columnsCount-this.rightFixedCount)},getRowClasses:function(e,t){var i=[e.id,e.align,e.labelClassName];return e.className&&i.push(e.className),this.isCellHidden(t,this.columns,e)&&i.push("is-hidden"),e.children||i.push("is-leaf"),i}}},Yn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},Kn=1,Gn=r({name:"ElTable",mixins:[Y,G],directives:{Mousewheel:ln},props:{data:{type:Array,default:function(){return[]}},size:String,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],context:{},showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:function(){return{hasChildren:"hasChildren",children:"children"}}},lazy:Boolean,load:Function},components:{TableHeader:Wn,TableFooter:qn,TableBody:In,ElCheckbox:Bi},methods:{getMigratingConfig:function(){return{events:{expand:"expand is renamed to expand-change"}}},setCurrentRow:function(e){this.store.commit("setCurrentRow",e)},toggleRowSelection:function(e,t){this.store.toggleRowSelection(e,t,!1),this.store.updateAllSelected()},toggleRowExpansion:function(e,t){this.store.toggleRowExpansionAdapter(e,t)},clearSelection:function(){this.store.clearSelection()},clearFilter:function(e){this.store.clearFilter(e)},clearSort:function(){this.store.clearSort()},handleMouseLeave:function(){this.store.commit("setHoverRow",null),this.hoverState&&(this.hoverState=null)},updateScrollY:function(){this.layout.updateScrollY()&&(this.layout.notifyObservers("scrollable"),this.layout.updateColumnsWidth())},handleFixedMousewheel:function(e,t){var i=this.bodyWrapper;if(Math.abs(t.spinY)>0){var n=i.scrollTop;t.pixelY<0&&0!==n&&e.preventDefault(),t.pixelY>0&&i.scrollHeight-i.clientHeight>n&&e.preventDefault(),i.scrollTop+=Math.ceil(t.pixelY/5)}else i.scrollLeft+=Math.ceil(t.pixelX/5)},handleHeaderFooterMousewheel:function(e,t){var i=t.pixelX,n=t.pixelY;Math.abs(i)>=Math.abs(n)&&(this.bodyWrapper.scrollLeft+=t.pixelX/5)},syncPostion:Object(rn.throttle)(20,function(){var e=this.bodyWrapper,t=e.scrollLeft,i=e.scrollTop,n=e.offsetWidth,r=e.scrollWidth,s=this.$refs,a=s.headerWrapper,o=s.footerWrapper,l=s.fixedBodyWrapper,u=s.rightFixedBodyWrapper;a&&(a.scrollLeft=t),o&&(o.scrollLeft=t),l&&(l.scrollTop=i),u&&(u.scrollTop=i);var c=r-n-1;this.scrollPosition=t>=c?"right":0===t?"left":"middle"}),bindEvents:function(){this.bodyWrapper.addEventListener("scroll",this.syncPostion,{passive:!0}),this.fit&&Ke(this.$el,this.resizeListener)},unbindEvents:function(){this.bodyWrapper.removeEventListener("scroll",this.syncPostion,{passive:!0}),this.fit&&Ge(this.$el,this.resizeListener)},resizeListener:function(){if(this.$ready){var e=!1,t=this.$el,i=this.resizeState,n=i.width,r=i.height,s=t.offsetWidth;n!==s&&(e=!0);var a=t.offsetHeight;(this.height||this.shouldUpdateHeight)&&r!==a&&(e=!0),e&&(this.resizeState.width=s,this.resizeState.height=a,this.doLayout())}},doLayout:function(){this.shouldUpdateHeight&&this.layout.updateElsHeight(),this.layout.updateColumnsWidth()},sort:function(e,t){this.store.commit("sort",{prop:e,order:t})},toggleAllSelection:function(){this.store.commit("toggleAllSelection")}},computed:Yn({tableSize:function(){return this.size||(this.$ELEMENT||{}).size},bodyWrapper:function(){return this.$refs.bodyWrapper},shouldUpdateHeight:function(){return this.height||this.maxHeight||this.fixedColumns.length>0||this.rightFixedColumns.length>0},bodyWidth:function(){var e=this.layout,t=e.bodyWidth,i=e.scrollY,n=e.gutterWidth;return t?t-(i?n:0)+"px":""},bodyHeight:function(){var e=this.layout,t=e.headerHeight,i=void 0===t?0:t,n=e.bodyHeight,r=e.footerHeight,s=void 0===r?0:r;if(this.height)return{height:n?n+"px":""};if(this.maxHeight){var a=yn(this.maxHeight);if("number"==typeof a)return{"max-height":a-s-(this.showHeader?i:0)+"px"}}return{}},fixedBodyHeight:function(){if(this.height)return{height:this.layout.fixedBodyHeight?this.layout.fixedBodyHeight+"px":""};if(this.maxHeight){var e=yn(this.maxHeight);if("number"==typeof e)return e=this.layout.scrollX?e-this.layout.gutterWidth:e,this.showHeader&&(e-=this.layout.headerHeight),{"max-height":(e-=this.layout.footerHeight)+"px"}}return{}},fixedHeight:function(){return this.maxHeight?this.showSummary?{bottom:0}:{bottom:this.layout.scrollX&&this.data.length?this.layout.gutterWidth+"px":""}:this.showSummary?{height:this.layout.tableHeight?this.layout.tableHeight+"px":""}:{height:this.layout.viewportHeight?this.layout.viewportHeight+"px":""}},emptyBlockStyle:function(){if(this.data&&this.data.length)return null;var e="100%";return this.layout.appendHeight&&(e="calc(100% - "+this.layout.appendHeight+"px)"),{width:this.bodyWidth,height:e}}},Tn({selection:"selection",columns:"columns",tableData:"data",fixedColumns:"fixedColumns",rightFixedColumns:"rightFixedColumns"})),watch:{height:{immediate:!0,handler:function(e){this.layout.setHeight(e)}},maxHeight:{immediate:!0,handler:function(e){this.layout.setMaxHeight(e)}},currentRowKey:{immediate:!0,handler:function(e){this.rowKey&&this.store.setCurrentRowKey(e)}},data:{immediate:!0,handler:function(e){this.store.commit("setData",e)}},expandRowKeys:{immediate:!0,handler:function(e){e&&this.store.setExpandRowKeysAdapter(e)}}},created:function(){var e=this;this.tableId="el-table_"+Kn++,this.debouncedUpdateLayout=Object(rn.debounce)(50,function(){return e.doLayout()})},mounted:function(){var e=this;this.bindEvents(),this.store.updateColumns(),this.doLayout(),this.resizeState={width:this.$el.offsetWidth,height:this.$el.offsetHeight},this.store.states.columns.forEach(function(t){t.filteredValue&&t.filteredValue.length&&e.store.commit("filterChange",{column:t,values:t.filteredValue,silent:!0})}),this.$ready=!0},destroyed:function(){this.unbindEvents()},data:function(){var e=this.treeProps,t=e.hasChildren,i=void 0===t?"hasChildren":t,n=e.children,r=void 0===n?"children":n;return this.store=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)throw new Error("Table is required.");var i=new En;return i.table=e,i.toggleAllSelection=tt()(10,i._toggleAllSelection),Object.keys(t).forEach(function(e){i.states[e]=t[e]}),i}(this,{rowKey:this.rowKey,defaultExpandAll:this.defaultExpandAll,selectOnIndeterminate:this.selectOnIndeterminate,indent:this.indent,lazy:this.lazy,lazyColumnIdentifier:i,childrenColumnName:r}),{layout:new Mn({store:this.store,table:this,fit:this.fit,showHeader:this.showHeader}),isHidden:!1,renderExpanded:null,resizeProxyVisible:!1,resizeState:{width:null,height:null},isGroup:!1,scrollPosition:"left"}}},nn,[],!1,null,null,null);Gn.options.__file="packages/table/src/table.vue";var Un=Gn.exports;Un.install=function(e){e.component(Un.name,Un)};var Xn=Un,Zn={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:"",className:"el-table-column--selection"},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},Jn={selection:{renderHeader:function(e,t){var i=t.store;return e("el-checkbox",{attrs:{disabled:i.states.data&&0===i.states.data.length,indeterminate:i.states.selection.length>0&&!this.isAllSelected,value:this.isAllSelected},nativeOn:{click:this.toggleAllSelection}})},renderCell:function(e,t){var i=t.row,n=t.column,r=t.store,s=t.$index;return e("el-checkbox",{nativeOn:{click:function(e){return e.stopPropagation()}},attrs:{value:r.isSelected(i),disabled:!!n.selectable&&!n.selectable.call(null,i,s)},on:{input:function(){r.commit("rowSelectedChanged",i)}}})},sortable:!1,resizable:!1},index:{renderHeader:function(e,t){return t.column.label||"#"},renderCell:function(e,t){var i=t.$index,n=i+1,r=t.column.index;return"number"==typeof r?n=i+r:"function"==typeof r&&(n=r(i)),e("div",[n])},sortable:!1},expand:{renderHeader:function(e,t){return t.column.label||""},renderCell:function(e,t){var i=t.row,n=t.store,r=["el-table__expand-icon"];n.states.expandRows.indexOf(i)>-1&&r.push("el-table__expand-icon--expanded");return e("div",{class:r,on:{click:function(e){e.stopPropagation(),n.toggleRowExpansion(i)}}},[e("i",{class:"el-icon el-icon-arrow-right"})])},sortable:!1,resizable:!1,className:"el-table__expand-column"}};function Qn(e,t){var i=t.row,n=t.column,r=t.$index,s=n.property,a=s&&D(i,s).v;return n&&n.formatter?n.formatter(i,n,a,r):a}var er=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},tr=1,ir={name:"ElTableColumn",props:{type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{},minWidth:{},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showTooltipWhenOverflow:Boolean,showOverflowTooltip:Boolean,fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:function(){return["ascending","descending",null]},validator:function(e){return e.every(function(e){return["ascending","descending",null].indexOf(e)>-1})}}},data:function(){return{isSubColumn:!1,columns:[]}},computed:{owner:function(){for(var e=this.$parent;e&&!e.tableId;)e=e.$parent;return e},columnOrTableParent:function(){for(var e=this.$parent;e&&!e.tableId&&!e.columnId;)e=e.$parent;return e},realWidth:function(){return bn(this.width)},realMinWidth:function(){return void 0!==(e=this.minWidth)&&(e=bn(e),isNaN(e)&&(e=80)),e;var e},realAlign:function(){return this.align?"is-"+this.align:null},realHeaderAlign:function(){return this.headerAlign?"is-"+this.headerAlign:this.realAlign}},methods:{getPropsData:function(){for(var e=this,t=arguments.length,i=Array(t),n=0;n<t;n++)i[n]=arguments[n];return i.reduce(function(t,i){return Array.isArray(i)&&i.forEach(function(i){t[i]=e[i]}),t},{})},getColumnElIndex:function(e,t){return[].indexOf.call(e,t)},setColumnWidth:function(e){return this.realWidth&&(e.width=this.realWidth),this.realMinWidth&&(e.minWidth=this.realMinWidth),e.minWidth||(e.minWidth=80),e.realWidth=void 0===e.width?e.minWidth:e.width,e},setColumnForcedProps:function(e){var t=e.type,i=Jn[t]||{};return Object.keys(i).forEach(function(t){var n=i[t];void 0!==n&&(e[t]="className"===t?e[t]+" "+n:n)}),e},setColumnRenders:function(e){var t=this;this.$createElement;this.renderHeader?console.warn("[Element Warn][TableColumn]Comparing to render-header, scoped-slot header is easier to use. We recommend users to use scoped-slot header."):"selection"!==e.type&&(e.renderHeader=function(i,n){var r=t.$scopedSlots.header;return r?r(n):e.label});var i=e.renderCell;return"expand"===e.type?(e.renderCell=function(e,t){return e("div",{class:"cell"},[i(e,t)])},this.owner.renderExpanded=function(e,i){return t.$scopedSlots.default?t.$scopedSlots.default(i):t.$slots.default}):(i=i||Qn,e.renderCell=function(n,r){var s=null;s=t.$scopedSlots.default?t.$scopedSlots.default(r):i(n,r);var a=function(e,t){var i=t.row,n=t.treeNode,r=t.store;if(!n)return null;var s=[];if(n.indent&&s.push(e("span",{class:"el-table__indent",style:{"padding-left":n.indent+"px"}})),"boolean"!=typeof n.expanded||n.noLazyChildren)s.push(e("span",{class:"el-table__placeholder"}));else{var a=["el-table__expand-icon",n.expanded?"el-table__expand-icon--expanded":""],o=["el-icon-arrow-right"];n.loading&&(o=["el-icon-loading"]),s.push(e("div",{class:a,on:{click:function(e){e.stopPropagation(),r.loadOrToggle(i)}}},[e("i",{class:o})]))}return s}(n,r),o={class:"cell",style:{}};return e.showOverflowTooltip&&(o.class+=" el-tooltip",o.style={width:(r.column.realWidth||r.column.width)-1+"px"}),n("div",o,[a,s])}),e},registerNormalWatchers:function(){var e=this,t={prop:"property",realAlign:"align",realHeaderAlign:"headerAlign",realWidth:"width"},i=["label","property","filters","filterMultiple","sortable","index","formatter","className","labelClassName","showOverflowTooltip"].reduce(function(e,t){return e[t]=t,e},t);Object.keys(i).forEach(function(i){var n=t[i];e.$watch(i,function(t){e.columnConfig[n]=t})})},registerComplexWatchers:function(){var e=this,t={realWidth:"width",realMinWidth:"minWidth"},i=["fixed"].reduce(function(e,t){return e[t]=t,e},t);Object.keys(i).forEach(function(i){var n=t[i];e.$watch(i,function(t){e.columnConfig[n]=t;var i="fixed"===n;e.owner.store.scheduleLayout(i)})})}},components:{ElCheckbox:Bi},beforeCreate:function(){this.row={},this.column={},this.$index=0,this.columnId=""},created:function(){var e=this.columnOrTableParent;this.isSubColumn=this.owner!==e,this.columnId=(e.tableId||e.columnId)+"_column_"+tr++;var t=this.type||"default",i=""===this.sortable||this.sortable,n=er({},Zn[t],{id:this.columnId,type:t,property:this.prop||this.property,align:this.realAlign,headerAlign:this.realHeaderAlign,showOverflowTooltip:this.showOverflowTooltip||this.showTooltipWhenOverflow,filterable:this.filters||this.filterMethod,filteredValue:[],filterPlacement:"",isColumnGroup:!1,filterOpened:!1,sortable:i,index:this.index}),r=this.getPropsData(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement"]);r=function(e,t){var i={},n=void 0;for(n in e)i[n]=e[n];for(n in t)if(gn(t,n)){var r=t[n];void 0!==r&&(i[n]=r)}return i}(n,r),r=function(){for(var e=arguments.length,t=Array(e),i=0;i<e;i++)t[i]=arguments[i];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce(function(e,t){return function(){return e(t.apply(void 0,arguments))}})}(this.setColumnRenders,this.setColumnWidth,this.setColumnForcedProps)(r),this.columnConfig=r,this.registerNormalWatchers(),this.registerComplexWatchers()},mounted:function(){var e=this.owner,t=this.columnOrTableParent,i=this.isSubColumn?t.$el.children:t.$refs.hiddenColumns.children,n=this.getColumnElIndex(i,this.$el);e.store.commit("insertColumn",this.columnConfig,n,this.isSubColumn?t.columnConfig:null)},destroyed:function(){if(this.$parent){var e=this.$parent;this.owner.store.commit("removeColumn",this.columnConfig,this.isSubColumn?e.columnConfig:null)}},render:function(e){return e("div",this.$slots.default)},install:function(e){e.component(ir.name,ir)}},nr=ir,rr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return e.ranged?i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleClose,expression:"handleClose"}],ref:"reference",staticClass:"el-date-editor el-range-editor el-input__inner",class:["el-date-editor--"+e.type,e.pickerSize?"el-range-editor--"+e.pickerSize:"",e.pickerDisabled?"is-disabled":"",e.pickerVisible?"is-active":""],on:{click:e.handleRangeClick,mouseenter:e.handleMouseEnter,mouseleave:function(t){e.showClose=!1},keydown:e.handleKeydown}},[i("i",{class:["el-input__icon","el-range__icon",e.triggerClass]}),i("input",e._b({staticClass:"el-range-input",attrs:{autocomplete:"off",placeholder:e.startPlaceholder,disabled:e.pickerDisabled,readonly:!e.editable||e.readonly,name:e.name&&e.name[0]},domProps:{value:e.displayValue&&e.displayValue[0]},on:{input:e.handleStartInput,change:e.handleStartChange,focus:e.handleFocus}},"input",e.firstInputId,!1)),e._t("range-separator",[i("span",{staticClass:"el-range-separator"},[e._v(e._s(e.rangeSeparator))])]),i("input",e._b({staticClass:"el-range-input",attrs:{autocomplete:"off",placeholder:e.endPlaceholder,disabled:e.pickerDisabled,readonly:!e.editable||e.readonly,name:e.name&&e.name[1]},domProps:{value:e.displayValue&&e.displayValue[1]},on:{input:e.handleEndInput,change:e.handleEndChange,focus:e.handleFocus}},"input",e.secondInputId,!1)),e.haveTrigger?i("i",{staticClass:"el-input__icon el-range__close-icon",class:[e.showClose?""+e.clearIcon:""],on:{click:e.handleClickIcon}}):e._e()],2):i("el-input",e._b({directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleClose,expression:"handleClose"}],ref:"reference",staticClass:"el-date-editor",class:"el-date-editor--"+e.type,attrs:{readonly:!e.editable||e.readonly||"dates"===e.type||"week"===e.type,disabled:e.pickerDisabled,size:e.pickerSize,name:e.name,placeholder:e.placeholder,value:e.displayValue,validateEvent:!1},on:{focus:e.handleFocus,input:function(t){return e.userInput=t},change:e.handleChange},nativeOn:{keydown:function(t){return e.handleKeydown(t)},mouseenter:function(t){return e.handleMouseEnter(t)},mouseleave:function(t){e.showClose=!1}}},"el-input",e.firstInputId,!1),[i("i",{staticClass:"el-input__icon",class:e.triggerClass,attrs:{slot:"prefix"},on:{click:e.handleFocus},slot:"prefix"}),e.haveTrigger?i("i",{staticClass:"el-input__icon",class:[e.showClose?""+e.clearIcon:""],attrs:{slot:"suffix"},on:{click:e.handleClickIcon},slot:"suffix"}):e._e()])};rr._withStripped=!0;var sr=i(2),ar=i.n(sr),or=["sun","mon","tue","wed","thu","fri","sat"],lr=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],ur=function(){return{dayNamesShort:or.map(function(e){return j("el.datepicker.weeks."+e)}),dayNames:or.map(function(e){return j("el.datepicker.weeks."+e)}),monthNamesShort:lr.map(function(e){return j("el.datepicker.months."+e)}),monthNames:lr.map(function(e,t){return j("el.datepicker.month"+(t+1))}),amPm:["am","pm"]}},cr=function(e){return null!=e&&(!isNaN(new Date(e).getTime())&&!Array.isArray(e))},hr=function(e){return e instanceof Date},dr=function(e,t){return(e=function(e){return cr(e)?new Date(e):null}(e))?ar.a.format(e,t||"yyyy-MM-dd",ur()):""},pr=function(e,t){return ar.a.parse(e,t||"yyyy-MM-dd",ur())},fr=function(e,t){return 3===t||5===t||8===t||10===t?30:1===t?e%4==0&&e%100!=0||e%400==0?29:28:31},mr=function(e){var t=new Date(e.getTime());return t.setDate(1),t.getDay()},vr=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return new Date(e.getFullYear(),e.getMonth(),e.getDate()-t)},gr=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return new Date(e.getFullYear(),e.getMonth(),e.getDate()+t)},br=function(e){if(!cr(e))return null;var t=new Date(e.getTime());t.setHours(0,0,0,0),t.setDate(t.getDate()+3-(t.getDay()+6)%7);var i=new Date(t.getFullYear(),0,4);return 1+Math.round(((t.getTime()-i.getTime())/864e5-3+(i.getDay()+6)%7)/7)};function yr(e,t,i,n){for(var r=t;r<i;r++)e[r]=n}var wr=function(e){return Array.apply(null,{length:e}).map(function(e,t){return t})},_r=function(e,t,i,n){return new Date(t,i,n,e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())},xr=function(e,t,i,n){return new Date(e.getFullYear(),e.getMonth(),e.getDate(),t,i,n,e.getMilliseconds())},Cr=function(e,t){return null!=e&&t?(t=pr(t,"HH:mm:ss"),xr(e,t.getHours(),t.getMinutes(),t.getSeconds())):e},kr=function(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())},Sr=function(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),0)},Dr=function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"HH:mm:ss";if(0===t.length)return e;var n=function(e){return ar.a.parse(ar.a.format(e,i),i)},r=n(e),s=t.map(function(e){return e.map(n)});if(s.some(function(e){return r>=e[0]&&r<=e[1]}))return e;var a=s[0][0],o=s[0][0];return s.forEach(function(e){a=new Date(Math.min(e[0],a)),o=new Date(Math.max(e[1],a))}),_r(r<a?a:o,e.getFullYear(),e.getMonth(),e.getDate())},$r=function(e,t,i){return Dr(e,t,i).getTime()===e.getTime()},Er=function(e,t,i){var n=Math.min(e.getDate(),fr(t,i));return _r(e,t,i,n)},Tr=function(e){var t=e.getFullYear(),i=e.getMonth();return 0===i?Er(e,t-1,11):Er(e,t,i-1)},Mr=function(e){var t=e.getFullYear(),i=e.getMonth();return 11===i?Er(e,t+1,0):Er(e,t,i+1)},Nr=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,i=e.getFullYear(),n=e.getMonth();return Er(e,i-t,n)},Pr=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,i=e.getFullYear(),n=e.getMonth();return Er(e,i+t,n)},Or=function(e){return e.replace(/\W?m{1,2}|\W?ZZ/g,"").replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi,"").trim()},Ir=function(e){return e.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g,"").trim()},Ar=function(e,t){return e.getMonth()===t.getMonth()&&e.getFullYear()===t.getFullYear()},Fr={props:{appendToBody:Ie.props.appendToBody,offset:Ie.props.offset,boundariesPadding:Ie.props.boundariesPadding,arrowOffset:Ie.props.arrowOffset},methods:Ie.methods,data:function(){return Q({visibleArrow:!0},Ie.data)},beforeDestroy:Ie.beforeDestroy},Lr={date:"yyyy-MM-dd",month:"yyyy-MM",datetime:"yyyy-MM-dd HH:mm:ss",time:"HH:mm:ss",week:"yyyywWW",timerange:"HH:mm:ss",daterange:"yyyy-MM-dd",monthrange:"yyyy-MM",datetimerange:"yyyy-MM-dd HH:mm:ss",year:"yyyy"},Vr=["date","datetime","time","time-select","week","month","year","daterange","monthrange","timerange","datetimerange","dates"],Br=function(e,t){return"timestamp"===t?e.getTime():dr(e,t)},zr=function(e,t){return"timestamp"===t?new Date(Number(e)):pr(e,t)},Hr=function(e,t){if(Array.isArray(e)&&2===e.length){var i=e[0],n=e[1];if(i&&n)return[Br(i,t),Br(n,t)]}return""},Rr=function(e,t,i){if(Array.isArray(e)||(e=e.split(i)),2===e.length){var n=e[0],r=e[1];return[zr(n,t),zr(r,t)]}return[]},Wr={default:{formatter:function(e){return e?""+e:""},parser:function(e){return void 0===e||""===e?null:e}},week:{formatter:function(e,t){var i=br(e),n=e.getMonth(),r=new Date(e);1===i&&11===n&&(r.setHours(0,0,0,0),r.setDate(r.getDate()+3-(r.getDay()+6)%7));var s=dr(r,t);return s=/WW/.test(s)?s.replace(/WW/,i<10?"0"+i:i):s.replace(/W/,i)},parser:function(e,t){return Wr.date.parser(e,t)}},date:{formatter:Br,parser:zr},datetime:{formatter:Br,parser:zr},daterange:{formatter:Hr,parser:Rr},monthrange:{formatter:Hr,parser:Rr},datetimerange:{formatter:Hr,parser:Rr},timerange:{formatter:Hr,parser:Rr},time:{formatter:Br,parser:zr},month:{formatter:Br,parser:zr},year:{formatter:Br,parser:zr},number:{formatter:function(e){return e?""+e:""},parser:function(e){var t=Number(e);return isNaN(e)?null:t}},dates:{formatter:function(e,t){return e.map(function(e){return Br(e,t)})},parser:function(e,t){return("string"==typeof e?e.split(", "):e).map(function(e){return e instanceof Date?e:zr(e,t)})}}},jr={left:"bottom-start",center:"bottom",right:"bottom-end"},qr=function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"-";return e?(0,(Wr[i]||Wr.default).parser)(e,t||Lr[i],n):null},Yr=function(e,t,i){return e?(0,(Wr[i]||Wr.default).formatter)(e,t||Lr[i]):null},Kr=function(e,t){var i=function(e,t){var i=e instanceof Date,n=t instanceof Date;return i&&n?e.getTime()===t.getTime():!i&&!n&&e===t},n=e instanceof Array,r=t instanceof Array;return n&&r?e.length===t.length&&e.every(function(e,n){return i(e,t[n])}):!n&&!r&&i(e,t)},Gr=function(e){return"string"==typeof e||e instanceof String},Ur=function(e){return null==e||Gr(e)||Array.isArray(e)&&2===e.length&&e.every(Gr)},Xr=r({mixins:[l,Fr],inject:{elForm:{default:""},elFormItem:{default:""}},props:{size:String,format:String,valueFormat:String,readonly:Boolean,placeholder:String,startPlaceholder:String,endPlaceholder:String,prefixIcon:String,clearIcon:{type:String,default:"el-icon-circle-close"},name:{default:"",validator:Ur},disabled:Boolean,clearable:{type:Boolean,default:!0},id:{default:"",validator:Ur},popperClass:String,editable:{type:Boolean,default:!0},align:{type:String,default:"left"},value:{},defaultValue:{},defaultTime:{},rangeSeparator:{default:"-"},pickerOptions:{},unlinkPanels:Boolean,validateEvent:{type:Boolean,default:!0}},components:{ElInput:re},directives:{Clickoutside:ot},data:function(){return{pickerVisible:!1,showClose:!1,userInput:null,valueOnOpen:null,unwatchPickerOptions:null}},watch:{pickerVisible:function(e){this.readonly||this.pickerDisabled||(e?(this.showPicker(),this.valueOnOpen=Array.isArray(this.value)?[].concat(this.value):this.value):(this.hidePicker(),this.emitChange(this.value),this.userInput=null,this.validateEvent&&this.dispatch("ElFormItem","el.form.blur"),this.$emit("blur",this),this.blur()))},parsedValue:{immediate:!0,handler:function(e){this.picker&&(this.picker.value=e)}},defaultValue:function(e){this.picker&&(this.picker.defaultValue=e)},value:function(e,t){Kr(e,t)||this.pickerVisible||!this.validateEvent||this.dispatch("ElFormItem","el.form.change",e)}},computed:{ranged:function(){return this.type.indexOf("range")>-1},reference:function(){var e=this.$refs.reference;return e.$el||e},refInput:function(){return this.reference?[].slice.call(this.reference.querySelectorAll("input")):[]},valueIsEmpty:function(){var e=this.value;if(Array.isArray(e)){for(var t=0,i=e.length;t<i;t++)if(e[t])return!1}else if(e)return!1;return!0},triggerClass:function(){return this.prefixIcon||(-1!==this.type.indexOf("time")?"el-icon-time":"el-icon-date")},selectionMode:function(){return"week"===this.type?"week":"month"===this.type?"month":"year"===this.type?"year":"dates"===this.type?"dates":"day"},haveTrigger:function(){return void 0!==this.showTrigger?this.showTrigger:-1!==Vr.indexOf(this.type)},displayValue:function(){var e=Yr(this.parsedValue,this.format,this.type,this.rangeSeparator);return Array.isArray(this.userInput)?[this.userInput[0]||e&&e[0]||"",this.userInput[1]||e&&e[1]||""]:null!==this.userInput?this.userInput:e?"dates"===this.type?e.join(", "):e:""},parsedValue:function(){return this.value?"time-select"===this.type?this.value:hr(this.value)||Array.isArray(this.value)&&this.value.every(hr)?this.value:this.valueFormat?qr(this.value,this.valueFormat,this.type,this.rangeSeparator)||this.value:Array.isArray(this.value)?this.value.map(function(e){return new Date(e)}):new Date(this.value):this.value},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},pickerSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},pickerDisabled:function(){return this.disabled||(this.elForm||{}).disabled},firstInputId:function(){var e={},t=void 0;return(t=this.ranged?this.id&&this.id[0]:this.id)&&(e.id=t),e},secondInputId:function(){var e={},t=void 0;return this.ranged&&(t=this.id&&this.id[1]),t&&(e.id=t),e}},created:function(){this.popperOptions={boundariesPadding:0,gpuAcceleration:!1},this.placement=jr[this.align]||jr.left,this.$on("fieldReset",this.handleFieldReset)},methods:{focus:function(){this.ranged?this.handleFocus():this.$refs.reference.focus()},blur:function(){this.refInput.forEach(function(e){return e.blur()})},parseValue:function(e){var t=hr(e)||Array.isArray(e)&&e.every(hr);return this.valueFormat&&!t&&qr(e,this.valueFormat,this.type,this.rangeSeparator)||e},formatToValue:function(e){var t=hr(e)||Array.isArray(e)&&e.every(hr);return this.valueFormat&&t?Yr(e,this.valueFormat,this.type,this.rangeSeparator):e},parseString:function(e){var t=Array.isArray(e)?this.type:this.type.replace("range","");return qr(e,this.format,t)},formatToString:function(e){var t=Array.isArray(e)?this.type:this.type.replace("range","");return Yr(e,this.format,t)},handleMouseEnter:function(){this.readonly||this.pickerDisabled||!this.valueIsEmpty&&this.clearable&&(this.showClose=!0)},handleChange:function(){if(this.userInput){var e=this.parseString(this.displayValue);e&&(this.picker.value=e,this.isValidValue(e)&&(this.emitInput(e),this.userInput=null))}""===this.userInput&&(this.emitInput(null),this.emitChange(null),this.userInput=null)},handleStartInput:function(e){this.userInput?this.userInput=[e.target.value,this.userInput[1]]:this.userInput=[e.target.value,null]},handleEndInput:function(e){this.userInput?this.userInput=[this.userInput[0],e.target.value]:this.userInput=[null,e.target.value]},handleStartChange:function(e){var t=this.parseString(this.userInput&&this.userInput[0]);if(t){this.userInput=[this.formatToString(t),this.displayValue[1]];var i=[t,this.picker.value&&this.picker.value[1]];this.picker.value=i,this.isValidValue(i)&&(this.emitInput(i),this.userInput=null)}},handleEndChange:function(e){var t=this.parseString(this.userInput&&this.userInput[1]);if(t){this.userInput=[this.displayValue[0],this.formatToString(t)];var i=[this.picker.value&&this.picker.value[0],t];this.picker.value=i,this.isValidValue(i)&&(this.emitInput(i),this.userInput=null)}},handleClickIcon:function(e){this.readonly||this.pickerDisabled||(this.showClose?(this.valueOnOpen=this.value,e.stopPropagation(),this.emitInput(null),this.emitChange(null),this.showClose=!1,this.picker&&"function"==typeof this.picker.handleClear&&this.picker.handleClear()):this.pickerVisible=!this.pickerVisible)},handleClose:function(){if(this.pickerVisible&&(this.pickerVisible=!1,"dates"===this.type)){var e=qr(this.valueOnOpen,this.valueFormat,this.type,this.rangeSeparator)||this.valueOnOpen;this.emitInput(e)}},handleFieldReset:function(e){this.userInput=""===e?null:e},handleFocus:function(){var e=this.type;-1===Vr.indexOf(e)||this.pickerVisible||(this.pickerVisible=!0),this.$emit("focus",this)},handleKeydown:function(e){var t=this,i=e.keyCode;return 27===i?(this.pickerVisible=!1,void e.stopPropagation()):9!==i?13===i?((""===this.userInput||this.isValidValue(this.parseString(this.displayValue)))&&(this.handleChange(),this.pickerVisible=this.picker.visible=!1,this.blur()),void e.stopPropagation()):void(this.userInput?e.stopPropagation():this.picker&&this.picker.handleKeydown&&this.picker.handleKeydown(e)):void(this.ranged?setTimeout(function(){-1===t.refInput.indexOf(document.activeElement)&&(t.pickerVisible=!1,t.blur(),e.stopPropagation())},0):(this.handleChange(),this.pickerVisible=this.picker.visible=!1,this.blur(),e.stopPropagation()))},handleRangeClick:function(){var e=this.type;-1===Vr.indexOf(e)||this.pickerVisible||(this.pickerVisible=!0),this.$emit("focus",this)},hidePicker:function(){this.picker&&(this.picker.resetView&&this.picker.resetView(),this.pickerVisible=this.picker.visible=!1,this.destroyPopper())},showPicker:function(){var e=this;this.$isServer||(this.picker||this.mountPicker(),this.pickerVisible=this.picker.visible=!0,this.updatePopper(),this.picker.value=this.parsedValue,this.picker.resetView&&this.picker.resetView(),this.$nextTick(function(){e.picker.adjustSpinners&&e.picker.adjustSpinners()}))},mountPicker:function(){var e=this;this.picker=new h.a(this.panel).$mount(),this.picker.defaultValue=this.defaultValue,this.picker.defaultTime=this.defaultTime,this.picker.popperClass=this.popperClass,this.popperElm=this.picker.$el,this.picker.width=this.reference.getBoundingClientRect().width,this.picker.showTime="datetime"===this.type||"datetimerange"===this.type,this.picker.selectionMode=this.selectionMode,this.picker.unlinkPanels=this.unlinkPanels,this.picker.arrowControl=this.arrowControl||this.timeArrowControl||!1,this.$watch("format",function(t){e.picker.format=t});var t=function(){var t=e.pickerOptions;if(t&&t.selectableRange){var i=t.selectableRange,n=Wr.datetimerange.parser,r=Lr.timerange;i=Array.isArray(i)?i:[i],e.picker.selectableRange=i.map(function(t){return n(t,r,e.rangeSeparator)})}for(var s in t)t.hasOwnProperty(s)&&"selectableRange"!==s&&(e.picker[s]=t[s]);e.format&&(e.picker.format=e.format)};t(),this.unwatchPickerOptions=this.$watch("pickerOptions",function(){return t()},{deep:!0}),this.$el.appendChild(this.picker.$el),this.picker.resetView&&this.picker.resetView(),this.picker.$on("dodestroy",this.doDestroy),this.picker.$on("pick",function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e.userInput=null,e.pickerVisible=e.picker.visible=i,e.emitInput(t),e.picker.resetView&&e.picker.resetView()}),this.picker.$on("select-range",function(t,i,n){0!==e.refInput.length&&(n&&"min"!==n?"max"===n&&(e.refInput[1].setSelectionRange(t,i),e.refInput[1].focus()):(e.refInput[0].setSelectionRange(t,i),e.refInput[0].focus()))})},unmountPicker:function(){this.picker&&(this.picker.$destroy(),this.picker.$off(),"function"==typeof this.unwatchPickerOptions&&this.unwatchPickerOptions(),this.picker.$el.parentNode.removeChild(this.picker.$el))},emitChange:function(e){Kr(e,this.valueOnOpen)||(this.$emit("change",e),this.valueOnOpen=e,this.validateEvent&&this.dispatch("ElFormItem","el.form.change",e))},emitInput:function(e){var t=this.formatToValue(e);Kr(this.value,t)||this.$emit("input",t)},isValidValue:function(e){return this.picker||this.mountPicker(),!this.picker.isValidValue||e&&this.picker.isValidValue(e)}}},rr,[],!1,null,null,null);Xr.options.__file="packages/date-picker/src/picker.vue";var Zr=Xr.exports,Jr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-enter":e.handleEnter,"after-leave":e.handleLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-picker-panel el-date-picker el-popper",class:[{"has-sidebar":e.$slots.sidebar||e.shortcuts,"has-time":e.showTime},e.popperClass]},[i("div",{staticClass:"el-picker-panel__body-wrapper"},[e._t("sidebar"),e.shortcuts?i("div",{staticClass:"el-picker-panel__sidebar"},e._l(e.shortcuts,function(t,n){return i("button",{key:n,staticClass:"el-picker-panel__shortcut",attrs:{type:"button"},on:{click:function(i){e.handleShortcutClick(t)}}},[e._v(e._s(t.text))])}),0):e._e(),i("div",{staticClass:"el-picker-panel__body"},[e.showTime?i("div",{staticClass:"el-date-picker__time-header"},[i("span",{staticClass:"el-date-picker__editor-wrap"},[i("el-input",{attrs:{placeholder:e.t("el.datepicker.selectDate"),value:e.visibleDate,size:"small"},on:{input:function(t){return e.userInputDate=t},change:e.handleVisibleDateChange}})],1),i("span",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleTimePickClose,expression:"handleTimePickClose"}],staticClass:"el-date-picker__editor-wrap"},[i("el-input",{ref:"input",attrs:{placeholder:e.t("el.datepicker.selectTime"),value:e.visibleTime,size:"small"},on:{focus:function(t){e.timePickerVisible=!0},input:function(t){return e.userInputTime=t},change:e.handleVisibleTimeChange}}),i("time-picker",{ref:"timepicker",attrs:{"time-arrow-control":e.arrowControl,visible:e.timePickerVisible},on:{pick:e.handleTimePick,mounted:e.proxyTimePickerDataProperties}})],1)]):e._e(),i("div",{directives:[{name:"show",rawName:"v-show",value:"time"!==e.currentView,expression:"currentView !== 'time'"}],staticClass:"el-date-picker__header",class:{"el-date-picker__header--bordered":"year"===e.currentView||"month"===e.currentView}},[i("button",{staticClass:"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-d-arrow-left",attrs:{type:"button","aria-label":e.t("el.datepicker.prevYear")},on:{click:e.prevYear}}),i("button",{directives:[{name:"show",rawName:"v-show",value:"date"===e.currentView,expression:"currentView === 'date'"}],staticClass:"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-arrow-left",attrs:{type:"button","aria-label":e.t("el.datepicker.prevMonth")},on:{click:e.prevMonth}}),i("span",{staticClass:"el-date-picker__header-label",attrs:{role:"button"},on:{click:e.showYearPicker}},[e._v(e._s(e.yearLabel))]),i("span",{directives:[{name:"show",rawName:"v-show",value:"date"===e.currentView,expression:"currentView === 'date'"}],staticClass:"el-date-picker__header-label",class:{active:"month"===e.currentView},attrs:{role:"button"},on:{click:e.showMonthPicker}},[e._v(e._s(e.t("el.datepicker.month"+(e.month+1))))]),i("button",{staticClass:"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-d-arrow-right",attrs:{type:"button","aria-label":e.t("el.datepicker.nextYear")},on:{click:e.nextYear}}),i("button",{directives:[{name:"show",rawName:"v-show",value:"date"===e.currentView,expression:"currentView === 'date'"}],staticClass:"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-arrow-right",attrs:{type:"button","aria-label":e.t("el.datepicker.nextMonth")},on:{click:e.nextMonth}})]),i("div",{staticClass:"el-picker-panel__content"},[i("date-table",{directives:[{name:"show",rawName:"v-show",value:"date"===e.currentView,expression:"currentView === 'date'"}],attrs:{"selection-mode":e.selectionMode,"first-day-of-week":e.firstDayOfWeek,value:e.value,"default-value":e.defaultValue?new Date(e.defaultValue):null,date:e.date,"cell-class-name":e.cellClassName,"disabled-date":e.disabledDate},on:{pick:e.handleDatePick}}),i("year-table",{directives:[{name:"show",rawName:"v-show",value:"year"===e.currentView,expression:"currentView === 'year'"}],attrs:{value:e.value,"default-value":e.defaultValue?new Date(e.defaultValue):null,date:e.date,"disabled-date":e.disabledDate},on:{pick:e.handleYearPick}}),i("month-table",{directives:[{name:"show",rawName:"v-show",value:"month"===e.currentView,expression:"currentView === 'month'"}],attrs:{value:e.value,"default-value":e.defaultValue?new Date(e.defaultValue):null,date:e.date,"disabled-date":e.disabledDate},on:{pick:e.handleMonthPick}})],1)])],2),i("div",{directives:[{name:"show",rawName:"v-show",value:e.footerVisible&&"date"===e.currentView,expression:"footerVisible && currentView === 'date'"}],staticClass:"el-picker-panel__footer"},[i("el-button",{directives:[{name:"show",rawName:"v-show",value:"dates"!==e.selectionMode,expression:"selectionMode !== 'dates'"}],staticClass:"el-picker-panel__link-btn",attrs:{size:"mini",type:"text"},on:{click:e.changeToNow}},[e._v("\n "+e._s(e.t("el.datepicker.now"))+"\n ")]),i("el-button",{staticClass:"el-picker-panel__link-btn",attrs:{plain:"",size:"mini"},on:{click:e.confirm}},[e._v("\n "+e._s(e.t("el.datepicker.confirm"))+"\n ")])],1)])])};Jr._withStripped=!0;var Qr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":function(t){e.$emit("dodestroy")}}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-time-panel el-popper",class:e.popperClass},[i("div",{staticClass:"el-time-panel__content",class:{"has-seconds":e.showSeconds}},[i("time-spinner",{ref:"spinner",attrs:{"arrow-control":e.useArrow,"show-seconds":e.showSeconds,"am-pm-mode":e.amPmMode,date:e.date},on:{change:e.handleChange,"select-range":e.setSelectionRange}})],1),i("div",{staticClass:"el-time-panel__footer"},[i("button",{staticClass:"el-time-panel__btn cancel",attrs:{type:"button"},on:{click:e.handleCancel}},[e._v(e._s(e.t("el.datepicker.cancel")))]),i("button",{staticClass:"el-time-panel__btn",class:{confirm:!e.disabled},attrs:{type:"button"},on:{click:function(t){e.handleConfirm()}}},[e._v(e._s(e.t("el.datepicker.confirm")))])])])])};Qr._withStripped=!0;var es=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-time-spinner",class:{"has-seconds":e.showSeconds}},[e.arrowControl?e._e():[i("el-scrollbar",{ref:"hours",staticClass:"el-time-spinner__wrapper",attrs:{"wrap-style":"max-height: inherit;","view-class":"el-time-spinner__list",noresize:"",tag:"ul"},nativeOn:{mouseenter:function(t){e.emitSelectRange("hours")},mousemove:function(t){e.adjustCurrentSpinner("hours")}}},e._l(e.hoursList,function(t,n){return i("li",{key:n,staticClass:"el-time-spinner__item",class:{active:n===e.hours,disabled:t},on:{click:function(i){e.handleClick("hours",{value:n,disabled:t})}}},[e._v(e._s(("0"+(e.amPmMode?n%12||12:n)).slice(-2))+e._s(e.amPm(n)))])}),0),i("el-scrollbar",{ref:"minutes",staticClass:"el-time-spinner__wrapper",attrs:{"wrap-style":"max-height: inherit;","view-class":"el-time-spinner__list",noresize:"",tag:"ul"},nativeOn:{mouseenter:function(t){e.emitSelectRange("minutes")},mousemove:function(t){e.adjustCurrentSpinner("minutes")}}},e._l(e.minutesList,function(t,n){return i("li",{key:n,staticClass:"el-time-spinner__item",class:{active:n===e.minutes,disabled:!t},on:{click:function(t){e.handleClick("minutes",{value:n,disabled:!1})}}},[e._v(e._s(("0"+n).slice(-2)))])}),0),i("el-scrollbar",{directives:[{name:"show",rawName:"v-show",value:e.showSeconds,expression:"showSeconds"}],ref:"seconds",staticClass:"el-time-spinner__wrapper",attrs:{"wrap-style":"max-height: inherit;","view-class":"el-time-spinner__list",noresize:"",tag:"ul"},nativeOn:{mouseenter:function(t){e.emitSelectRange("seconds")},mousemove:function(t){e.adjustCurrentSpinner("seconds")}}},e._l(60,function(t,n){return i("li",{key:n,staticClass:"el-time-spinner__item",class:{active:n===e.seconds},on:{click:function(t){e.handleClick("seconds",{value:n,disabled:!1})}}},[e._v(e._s(("0"+n).slice(-2)))])}),0)],e.arrowControl?[i("div",{staticClass:"el-time-spinner__wrapper is-arrow",on:{mouseenter:function(t){e.emitSelectRange("hours")}}},[i("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.decrease,expression:"decrease"}],staticClass:"el-time-spinner__arrow el-icon-arrow-up"}),i("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.increase,expression:"increase"}],staticClass:"el-time-spinner__arrow el-icon-arrow-down"}),i("ul",{ref:"hours",staticClass:"el-time-spinner__list"},e._l(e.arrowHourList,function(t,n){return i("li",{key:n,staticClass:"el-time-spinner__item",class:{active:t===e.hours,disabled:e.hoursList[t]}},[e._v(e._s(void 0===t?"":("0"+(e.amPmMode?t%12||12:t)).slice(-2)+e.amPm(t)))])}),0)]),i("div",{staticClass:"el-time-spinner__wrapper is-arrow",on:{mouseenter:function(t){e.emitSelectRange("minutes")}}},[i("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.decrease,expression:"decrease"}],staticClass:"el-time-spinner__arrow el-icon-arrow-up"}),i("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.increase,expression:"increase"}],staticClass:"el-time-spinner__arrow el-icon-arrow-down"}),i("ul",{ref:"minutes",staticClass:"el-time-spinner__list"},e._l(e.arrowMinuteList,function(t,n){return i("li",{key:n,staticClass:"el-time-spinner__item",class:{active:t===e.minutes}},[e._v("\n "+e._s(void 0===t?"":("0"+t).slice(-2))+"\n ")])}),0)]),e.showSeconds?i("div",{staticClass:"el-time-spinner__wrapper is-arrow",on:{mouseenter:function(t){e.emitSelectRange("seconds")}}},[i("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.decrease,expression:"decrease"}],staticClass:"el-time-spinner__arrow el-icon-arrow-up"}),i("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.increase,expression:"increase"}],staticClass:"el-time-spinner__arrow el-icon-arrow-down"}),i("ul",{ref:"seconds",staticClass:"el-time-spinner__list"},e._l(e.arrowSecondList,function(t,n){return i("li",{key:n,staticClass:"el-time-spinner__item",class:{active:t===e.seconds}},[e._v("\n "+e._s(void 0===t?"":("0"+t).slice(-2))+"\n ")])}),0)]):e._e()]:e._e()],2)};es._withStripped=!0;var ts=r({components:{ElScrollbar:Qe},directives:{repeatClick:yi},props:{date:{},defaultValue:{},showSeconds:{type:Boolean,default:!0},arrowControl:Boolean,amPmMode:{type:String,default:""}},computed:{hours:function(){return this.date.getHours()},minutes:function(){return this.date.getMinutes()},seconds:function(){return this.date.getSeconds()},hoursList:function(){return function(e){var t=[],i=[];if((e||[]).forEach(function(e){var t=e.map(function(e){return e.getHours()});i=i.concat(function(e,t){for(var i=[],n=e;n<=t;n++)i.push(n);return i}(t[0],t[1]))}),i.length)for(var n=0;n<24;n++)t[n]=-1===i.indexOf(n);else for(var r=0;r<24;r++)t[r]=!1;return t}(this.selectableRange)},minutesList:function(){return e=this.selectableRange,t=this.hours,i=new Array(60),e.length>0?e.forEach(function(e){var n=e[0],r=e[1],s=n.getHours(),a=n.getMinutes(),o=r.getHours(),l=r.getMinutes();s===t&&o!==t?yr(i,a,60,!0):s===t&&o===t?yr(i,a,l+1,!0):s!==t&&o===t?yr(i,0,l+1,!0):s<t&&o>t&&yr(i,0,60,!0)}):yr(i,0,60,!0),i;var e,t,i},arrowHourList:function(){var e=this.hours;return[e>0?e-1:void 0,e,e<23?e+1:void 0]},arrowMinuteList:function(){var e=this.minutes;return[e>0?e-1:void 0,e,e<59?e+1:void 0]},arrowSecondList:function(){var e=this.seconds;return[e>0?e-1:void 0,e,e<59?e+1:void 0]}},data:function(){return{selectableRange:[],currentScrollbar:null}},mounted:function(){var e=this;this.$nextTick(function(){!e.arrowControl&&e.bindScrollEvent()})},methods:{increase:function(){this.scrollDown(1)},decrease:function(){this.scrollDown(-1)},modifyDateField:function(e,t){switch(e){case"hours":this.$emit("change",xr(this.date,t,this.minutes,this.seconds));break;case"minutes":this.$emit("change",xr(this.date,this.hours,t,this.seconds));break;case"seconds":this.$emit("change",xr(this.date,this.hours,this.minutes,t))}},handleClick:function(e,t){var i=t.value;t.disabled||(this.modifyDateField(e,i),this.emitSelectRange(e),this.adjustSpinner(e,i))},emitSelectRange:function(e){"hours"===e?this.$emit("select-range",0,2):"minutes"===e?this.$emit("select-range",3,5):"seconds"===e&&this.$emit("select-range",6,8),this.currentScrollbar=e},bindScrollEvent:function(){var e=this,t=function(t){e.$refs[t].wrap.onscroll=function(i){e.handleScroll(t,i)}};t("hours"),t("minutes"),t("seconds")},handleScroll:function(e){var t=Math.min(Math.round((this.$refs[e].wrap.scrollTop-(.5*this.scrollBarHeight(e)-10)/this.typeItemHeight(e)+3)/this.typeItemHeight(e)),"hours"===e?23:59);this.modifyDateField(e,t)},adjustSpinners:function(){this.adjustSpinner("hours",this.hours),this.adjustSpinner("minutes",this.minutes),this.adjustSpinner("seconds",this.seconds)},adjustCurrentSpinner:function(e){this.adjustSpinner(e,this[e])},adjustSpinner:function(e,t){if(!this.arrowControl){var i=this.$refs[e].wrap;i&&(i.scrollTop=Math.max(0,t*this.typeItemHeight(e)))}},scrollDown:function(e){var t=this;this.currentScrollbar||this.emitSelectRange("hours");var i=this.currentScrollbar,n=this.hoursList,r=this[i];if("hours"===this.currentScrollbar){var s=Math.abs(e);e=e>0?1:-1;for(var a=n.length;a--&&s;)n[r=(r+e+n.length)%n.length]||s--;if(n[r])return}else r=(r+e+60)%60;this.modifyDateField(i,r),this.adjustSpinner(i,r),this.$nextTick(function(){return t.emitSelectRange(t.currentScrollbar)})},amPm:function(e){if(!("a"===this.amPmMode.toLowerCase()))return"";var t=e<12?" am":" pm";return"A"===this.amPmMode&&(t=t.toUpperCase()),t},typeItemHeight:function(e){return this.$refs[e].$el.querySelector("li").offsetHeight},scrollBarHeight:function(e){return this.$refs[e].$el.offsetHeight}}},es,[],!1,null,null,null);ts.options.__file="packages/date-picker/src/basic/time-spinner.vue";var is=ts.exports,ns=r({mixins:[Y],components:{TimeSpinner:is},props:{visible:Boolean,timeArrowControl:Boolean},watch:{visible:function(e){var t=this;e?(this.oldValue=this.value,this.$nextTick(function(){return t.$refs.spinner.emitSelectRange("hours")})):this.needInitAdjust=!0},value:function(e){var t=this,i=void 0;e instanceof Date?i=Dr(e,this.selectableRange,this.format):e||(i=this.defaultValue?new Date(this.defaultValue):new Date),this.date=i,this.visible&&this.needInitAdjust&&(this.$nextTick(function(e){return t.adjustSpinners()}),this.needInitAdjust=!1)},selectableRange:function(e){this.$refs.spinner.selectableRange=e},defaultValue:function(e){cr(this.value)||(this.date=e?new Date(e):new Date)}},data:function(){return{popperClass:"",format:"HH:mm:ss",value:"",defaultValue:null,date:new Date,oldValue:new Date,selectableRange:[],selectionRange:[0,2],disabled:!1,arrowControl:!1,needInitAdjust:!0}},computed:{showSeconds:function(){return-1!==(this.format||"").indexOf("ss")},useArrow:function(){return this.arrowControl||this.timeArrowControl||!1},amPmMode:function(){return-1!==(this.format||"").indexOf("A")?"A":-1!==(this.format||"").indexOf("a")?"a":""}},methods:{handleCancel:function(){this.$emit("pick",this.oldValue,!1)},handleChange:function(e){this.visible&&(this.date=Sr(e),this.isValidValue(this.date)&&this.$emit("pick",this.date,!0))},setSelectionRange:function(e,t){this.$emit("select-range",e,t),this.selectionRange=[e,t]},handleConfirm:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments[1];if(!t){var i=Sr(Dr(this.date,this.selectableRange,this.format));this.$emit("pick",i,e,t)}},handleKeydown:function(e){var t=e.keyCode,i={38:-1,40:1,37:-1,39:1};if(37===t||39===t){var n=i[t];return this.changeSelectionRange(n),void e.preventDefault()}if(38===t||40===t){var r=i[t];return this.$refs.spinner.scrollDown(r),void e.preventDefault()}},isValidValue:function(e){return $r(e,this.selectableRange,this.format)},adjustSpinners:function(){return this.$refs.spinner.adjustSpinners()},changeSelectionRange:function(e){var t=[0,3].concat(this.showSeconds?[6]:[]),i=["hours","minutes"].concat(this.showSeconds?["seconds"]:[]),n=(t.indexOf(this.selectionRange[0])+e+t.length)%t.length;this.$refs.spinner.emitSelectRange(i[n])}},mounted:function(){var e=this;this.$nextTick(function(){return e.handleConfirm(!0,!0)}),this.$emit("mounted")}},Qr,[],!1,null,null,null);ns.options.__file="packages/date-picker/src/panel/time.vue";var rs=ns.exports,ss=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("table",{staticClass:"el-year-table",on:{click:e.handleYearTableClick}},[i("tbody",[i("tr",[i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+0)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+1)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+1))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+2)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+2))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+3)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+3))])])]),i("tr",[i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+4)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+4))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+5)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+5))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+6)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+6))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+7)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+7))])])]),i("tr",[i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+8)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+8))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+9)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+9))])]),i("td"),i("td")])])])};ss._withStripped=!0;var as=r({props:{disabledDate:{},value:{},defaultValue:{validator:function(e){return null===e||e instanceof Date&&cr(e)}},date:{}},computed:{startYear:function(){return 10*Math.floor(this.date.getFullYear()/10)}},methods:{getCellStyle:function(e){var t={},i=new Date;return t.disabled="function"==typeof this.disabledDate&&function(e){var t=function(e){return e%400==0||e%100!=0&&e%4==0?366:365}(e),i=new Date(e,0,1);return wr(t).map(function(e){return gr(i,e)})}(e).every(this.disabledDate),t.current=T(N(this.value),function(t){return t.getFullYear()===e})>=0,t.today=i.getFullYear()===e,t.default=this.defaultValue&&this.defaultValue.getFullYear()===e,t},handleYearTableClick:function(e){var t=e.target;if("A"===t.tagName){if(fe(t.parentNode,"disabled"))return;var i=t.textContent||t.innerText;this.$emit("pick",Number(i))}}}},ss,[],!1,null,null,null);as.options.__file="packages/date-picker/src/basic/year-table.vue";var os=as.exports,ls=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("table",{staticClass:"el-month-table",on:{click:e.handleMonthTableClick,mousemove:e.handleMouseMove}},[i("tbody",e._l(e.rows,function(t,n){return i("tr",{key:n},e._l(t,function(t,n){return i("td",{key:n,class:e.getCellStyle(t)},[i("div",[i("a",{staticClass:"cell"},[e._v(e._s(e.t("el.datepicker.months."+e.months[t.text])))])])])}),0)}),0)])};ls._withStripped=!0;var us=function(e){return new Date(e.getFullYear(),e.getMonth())},cs=function(e){return"number"==typeof e||"string"==typeof e?us(new Date(e)).getTime():e instanceof Date?us(e).getTime():NaN},hs=r({props:{disabledDate:{},value:{},selectionMode:{default:"month"},minDate:{},maxDate:{},defaultValue:{validator:function(e){return null===e||cr(e)||Array.isArray(e)&&e.every(cr)}},date:{},rangeState:{default:function(){return{endDate:null,selecting:!1}}}},mixins:[Y],watch:{"rangeState.endDate":function(e){this.markRange(this.minDate,e)},minDate:function(e,t){cs(e)!==cs(t)&&this.markRange(this.minDate,this.maxDate)},maxDate:function(e,t){cs(e)!==cs(t)&&this.markRange(this.minDate,this.maxDate)}},data:function(){return{months:["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],tableRows:[[],[],[]],lastRow:null,lastColumn:null}},methods:{cellMatchesDate:function(e,t){var i=new Date(t);return this.date.getFullYear()===i.getFullYear()&&Number(e.text)===i.getMonth()},getCellStyle:function(e){var t=this,i={},n=this.date.getFullYear(),r=new Date,s=e.text,a=this.defaultValue?Array.isArray(this.defaultValue)?this.defaultValue:[this.defaultValue]:[];return i.disabled="function"==typeof this.disabledDate&&function(e,t){var i=fr(e,t),n=new Date(e,t,1);return wr(i).map(function(e){return gr(n,e)})}(n,s).every(this.disabledDate),i.current=T(N(this.value),function(e){return e.getFullYear()===n&&e.getMonth()===s})>=0,i.today=r.getFullYear()===n&&r.getMonth()===s,i.default=a.some(function(i){return t.cellMatchesDate(e,i)}),e.inRange&&(i["in-range"]=!0,e.start&&(i["start-date"]=!0),e.end&&(i["end-date"]=!0)),i},getMonthOfCell:function(e){var t=this.date.getFullYear();return new Date(t,e,1)},markRange:function(e,t){e=cs(e),t=cs(t)||e;var i=[Math.min(e,t),Math.max(e,t)];e=i[0],t=i[1];for(var n=this.rows,r=0,s=n.length;r<s;r++)for(var a=n[r],o=0,l=a.length;o<l;o++){var u=a[o],c=4*r+o,h=new Date(this.date.getFullYear(),c).getTime();u.inRange=e&&h>=e&&h<=t,u.start=e&&h===e,u.end=t&&h===t}},handleMouseMove:function(e){if(this.rangeState.selecting){var t=e.target;if("A"===t.tagName&&(t=t.parentNode.parentNode),"DIV"===t.tagName&&(t=t.parentNode),"TD"===t.tagName){var i=t.parentNode.rowIndex,n=t.cellIndex;this.rows[i][n].disabled||i===this.lastRow&&n===this.lastColumn||(this.lastRow=i,this.lastColumn=n,this.$emit("changerange",{minDate:this.minDate,maxDate:this.maxDate,rangeState:{selecting:!0,endDate:this.getMonthOfCell(4*i+n)}}))}}},handleMonthTableClick:function(e){var t=e.target;if("A"===t.tagName&&(t=t.parentNode.parentNode),"DIV"===t.tagName&&(t=t.parentNode),"TD"===t.tagName&&!fe(t,"disabled")){var i=t.cellIndex,n=4*t.parentNode.rowIndex+i,r=this.getMonthOfCell(n);"range"===this.selectionMode?this.rangeState.selecting?(r>=this.minDate?this.$emit("pick",{minDate:this.minDate,maxDate:r}):this.$emit("pick",{minDate:r,maxDate:this.minDate}),this.rangeState.selecting=!1):(this.$emit("pick",{minDate:r,maxDate:null}),this.rangeState.selecting=!0):this.$emit("pick",n)}}},computed:{rows:function(){for(var e=this,t=this.tableRows,i=this.disabledDate,n=[],r=cs(new Date),s=0;s<3;s++)for(var a=t[s],o=function(t){var o=a[t];o||(o={row:s,column:t,type:"normal",inRange:!1,start:!1,end:!1}),o.type="normal";var l=4*s+t,u=new Date(e.date.getFullYear(),l).getTime();o.inRange=u>=cs(e.minDate)&&u<=cs(e.maxDate),o.start=e.minDate&&u===cs(e.minDate),o.end=e.maxDate&&u===cs(e.maxDate),u===r&&(o.type="today"),o.text=l;var c=new Date(u);o.disabled="function"==typeof i&&i(c),o.selected=M(n,function(e){return e.getTime()===c.getTime()}),e.$set(a,t,o)},l=0;l<4;l++)o(l);return t}}},ls,[],!1,null,null,null);hs.options.__file="packages/date-picker/src/basic/month-table.vue";var ds=hs.exports,ps=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("table",{staticClass:"el-date-table",class:{"is-week-mode":"week"===e.selectionMode},attrs:{cellspacing:"0",cellpadding:"0"},on:{click:e.handleClick,mousemove:e.handleMouseMove}},[i("tbody",[i("tr",[e.showWeekNumber?i("th",[e._v(e._s(e.t("el.datepicker.week")))]):e._e(),e._l(e.WEEKS,function(t,n){return i("th",{key:n},[e._v(e._s(e.t("el.datepicker.weeks."+t)))])})],2),e._l(e.rows,function(t,n){return i("tr",{key:n,staticClass:"el-date-table__row",class:{current:e.isWeekActive(t[1])}},e._l(t,function(t,n){return i("td",{key:n,class:e.getCellClasses(t)},[i("div",[i("span",[e._v("\n "+e._s(t.text)+"\n ")])])])}),0)})],2)])};ps._withStripped=!0;var fs=["sun","mon","tue","wed","thu","fri","sat"],ms=function(e){return"number"==typeof e||"string"==typeof e?kr(new Date(e)).getTime():e instanceof Date?kr(e).getTime():NaN},vs=r({mixins:[Y],props:{firstDayOfWeek:{default:7,type:Number,validator:function(e){return e>=1&&e<=7}},value:{},defaultValue:{validator:function(e){return null===e||cr(e)||Array.isArray(e)&&e.every(cr)}},date:{},selectionMode:{default:"day"},showWeekNumber:{type:Boolean,default:!1},disabledDate:{},cellClassName:{},minDate:{},maxDate:{},rangeState:{default:function(){return{endDate:null,selecting:!1}}}},computed:{offsetDay:function(){var e=this.firstDayOfWeek;return e>3?7-e:-e},WEEKS:function(){var e=this.firstDayOfWeek;return fs.concat(fs).slice(e,e+7)},year:function(){return this.date.getFullYear()},month:function(){return this.date.getMonth()},startDate:function(){return e=this.year,t=this.month,i=new Date(e,t,1),n=i.getDay(),vr(i,0===n?7:n);var e,t,i,n},rows:function(){var e=this,t=new Date(this.year,this.month,1),i=mr(t),n=fr(t.getFullYear(),t.getMonth()),r=fr(t.getFullYear(),0===t.getMonth()?11:t.getMonth()-1);i=0===i?7:i;for(var s=this.offsetDay,a=this.tableRows,o=1,l=this.startDate,u=this.disabledDate,c=this.cellClassName,h="dates"===this.selectionMode?N(this.value):[],d=ms(new Date),p=0;p<6;p++){var f=a[p];this.showWeekNumber&&(f[0]||(f[0]={type:"week",text:br(gr(l,7*p+1))}));for(var m=function(t){var a=f[e.showWeekNumber?t+1:t];a||(a={row:p,column:t,type:"normal",inRange:!1,start:!1,end:!1}),a.type="normal";var m=gr(l,7*p+t-s).getTime();if(a.inRange=m>=ms(e.minDate)&&m<=ms(e.maxDate),a.start=e.minDate&&m===ms(e.minDate),a.end=e.maxDate&&m===ms(e.maxDate),m===d&&(a.type="today"),p>=0&&p<=1){var v=i+s<0?7+i+s:i+s;t+7*p>=v?a.text=o++:(a.text=r-(v-t%7)+1+7*p,a.type="prev-month")}else o<=n?a.text=o++:(a.text=o++-n,a.type="next-month");var g=new Date(m);a.disabled="function"==typeof u&&u(g),a.selected=M(h,function(e){return e.getTime()===g.getTime()}),a.customClass="function"==typeof c&&c(g),e.$set(f,e.showWeekNumber?t+1:t,a)},v=0;v<7;v++)m(v);if("week"===this.selectionMode){var g=this.showWeekNumber?1:0,b=this.showWeekNumber?7:6,y=this.isWeekActive(f[g+1]);f[g].inRange=y,f[g].start=y,f[b].inRange=y,f[b].end=y}}return a}},watch:{"rangeState.endDate":function(e){this.markRange(this.minDate,e)},minDate:function(e,t){ms(e)!==ms(t)&&this.markRange(this.minDate,this.maxDate)},maxDate:function(e,t){ms(e)!==ms(t)&&this.markRange(this.minDate,this.maxDate)}},data:function(){return{tableRows:[[],[],[],[],[],[]],lastRow:null,lastColumn:null}},methods:{cellMatchesDate:function(e,t){var i=new Date(t);return this.year===i.getFullYear()&&this.month===i.getMonth()&&Number(e.text)===i.getDate()},getCellClasses:function(e){var t=this,i=this.selectionMode,n=this.defaultValue?Array.isArray(this.defaultValue)?this.defaultValue:[this.defaultValue]:[],r=[];return"normal"!==e.type&&"today"!==e.type||e.disabled?r.push(e.type):(r.push("available"),"today"===e.type&&r.push("today")),"normal"===e.type&&n.some(function(i){return t.cellMatchesDate(e,i)})&&r.push("default"),"day"!==i||"normal"!==e.type&&"today"!==e.type||!this.cellMatchesDate(e,this.value)||r.push("current"),!e.inRange||"normal"!==e.type&&"today"!==e.type&&"week"!==this.selectionMode||(r.push("in-range"),e.start&&r.push("start-date"),e.end&&r.push("end-date")),e.disabled&&r.push("disabled"),e.selected&&r.push("selected"),e.customClass&&r.push(e.customClass),r.join(" ")},getDateOfCell:function(e,t){var i=7*e+(t-(this.showWeekNumber?1:0))-this.offsetDay;return gr(this.startDate,i)},isWeekActive:function(e){if("week"!==this.selectionMode)return!1;var t=new Date(this.year,this.month,1),i=t.getFullYear(),n=t.getMonth();if("prev-month"===e.type&&(t.setMonth(0===n?11:n-1),t.setFullYear(0===n?i-1:i)),"next-month"===e.type&&(t.setMonth(11===n?0:n+1),t.setFullYear(11===n?i+1:i)),t.setDate(parseInt(e.text,10)),cr(this.value)){var r=(this.value.getDay()-this.firstDayOfWeek+7)%7-1;return vr(this.value,r).getTime()===t.getTime()}return!1},markRange:function(e,t){e=ms(e),t=ms(t)||e;var i=[Math.min(e,t),Math.max(e,t)];e=i[0],t=i[1];for(var n=this.startDate,r=this.rows,s=0,a=r.length;s<a;s++)for(var o=r[s],l=0,u=o.length;l<u;l++)if(!this.showWeekNumber||0!==l){var c=o[l],h=7*s+l+(this.showWeekNumber?-1:0),d=gr(n,h-this.offsetDay).getTime();c.inRange=e&&d>=e&&d<=t,c.start=e&&d===e,c.end=t&&d===t}},handleMouseMove:function(e){if(this.rangeState.selecting){var t=e.target;if("SPAN"===t.tagName&&(t=t.parentNode.parentNode),"DIV"===t.tagName&&(t=t.parentNode),"TD"===t.tagName){var i=t.parentNode.rowIndex-1,n=t.cellIndex;this.rows[i][n].disabled||i===this.lastRow&&n===this.lastColumn||(this.lastRow=i,this.lastColumn=n,this.$emit("changerange",{minDate:this.minDate,maxDate:this.maxDate,rangeState:{selecting:!0,endDate:this.getDateOfCell(i,n)}}))}}},handleClick:function(e){var t=e.target;if("SPAN"===t.tagName&&(t=t.parentNode.parentNode),"DIV"===t.tagName&&(t=t.parentNode),"TD"===t.tagName){var i=t.parentNode.rowIndex-1,n="week"===this.selectionMode?1:t.cellIndex,r=this.rows[i][n];if(!r.disabled&&"week"!==r.type){var s,a,o,l=this.getDateOfCell(i,n);if("range"===this.selectionMode)this.rangeState.selecting?(l>=this.minDate?this.$emit("pick",{minDate:this.minDate,maxDate:l}):this.$emit("pick",{minDate:l,maxDate:this.minDate}),this.rangeState.selecting=!1):(this.$emit("pick",{minDate:l,maxDate:null}),this.rangeState.selecting=!0);else if("day"===this.selectionMode)this.$emit("pick",l);else if("week"===this.selectionMode){var u=br(l),c=l.getFullYear()+"w"+u;this.$emit("pick",{year:l.getFullYear(),week:u,value:c,date:l})}else if("dates"===this.selectionMode){var h=this.value||[],d=r.selected?(s=h,(o="function"==typeof(a=function(e){return e.getTime()===l.getTime()})?T(s,a):s.indexOf(a))>=0?[].concat(s.slice(0,o),s.slice(o+1)):s):[].concat(h,[l]);this.$emit("pick",d)}}}}}},ps,[],!1,null,null,null);vs.options.__file="packages/date-picker/src/basic/date-table.vue";var gs=vs.exports,bs=r({mixins:[Y],directives:{Clickoutside:ot},watch:{showTime:function(e){var t=this;e&&this.$nextTick(function(e){var i=t.$refs.input.$el;i&&(t.pickerWidth=i.getBoundingClientRect().width+10)})},value:function(e){"dates"===this.selectionMode&&this.value||(cr(e)?this.date=new Date(e):this.date=this.getDefaultValue())},defaultValue:function(e){cr(this.value)||(this.date=e?new Date(e):new Date)},timePickerVisible:function(e){var t=this;e&&this.$nextTick(function(){return t.$refs.timepicker.adjustSpinners()})},selectionMode:function(e){"month"===e?"year"===this.currentView&&"month"===this.currentView||(this.currentView="month"):"dates"===e&&(this.currentView="date")}},methods:{proxyTimePickerDataProperties:function(){var e,t=this,i=function(e){t.$refs.timepicker.value=e},n=function(e){t.$refs.timepicker.date=e},r=function(e){t.$refs.timepicker.selectableRange=e};this.$watch("value",i),this.$watch("date",n),this.$watch("selectableRange",r),e=this.timeFormat,t.$refs.timepicker.format=e,i(this.value),n(this.date),r(this.selectableRange)},handleClear:function(){this.date=this.getDefaultValue(),this.$emit("pick",null)},emit:function(e){for(var t=this,i=arguments.length,n=Array(i>1?i-1:0),r=1;r<i;r++)n[r-1]=arguments[r];if(e)if(Array.isArray(e)){var s=e.map(function(e){return t.showTime?Sr(e):kr(e)});this.$emit.apply(this,["pick",s].concat(n))}else this.$emit.apply(this,["pick",this.showTime?Sr(e):kr(e)].concat(n));else this.$emit.apply(this,["pick",e].concat(n));this.userInputDate=null,this.userInputTime=null},showMonthPicker:function(){this.currentView="month"},showYearPicker:function(){this.currentView="year"},prevMonth:function(){this.date=Tr(this.date)},nextMonth:function(){this.date=Mr(this.date)},prevYear:function(){"year"===this.currentView?this.date=Nr(this.date,10):this.date=Nr(this.date)},nextYear:function(){"year"===this.currentView?this.date=Pr(this.date,10):this.date=Pr(this.date)},handleShortcutClick:function(e){e.onClick&&e.onClick(this)},handleTimePick:function(e,t,i){if(cr(e)){var n=this.value?xr(this.value,e.getHours(),e.getMinutes(),e.getSeconds()):Cr(this.getDefaultValue(),this.defaultTime);this.date=n,this.emit(this.date,!0)}else this.emit(e,!0);i||(this.timePickerVisible=t)},handleTimePickClose:function(){this.timePickerVisible=!1},handleMonthPick:function(e){"month"===this.selectionMode?(this.date=_r(this.date,this.year,e,1),this.emit(this.date)):(this.date=Er(this.date,this.year,e),this.currentView="date")},handleDatePick:function(e){if("day"===this.selectionMode){var t=this.value?_r(this.value,e.getFullYear(),e.getMonth(),e.getDate()):Cr(e,this.defaultTime);this.checkDateWithinRange(t)||(t=_r(this.selectableRange[0][0],e.getFullYear(),e.getMonth(),e.getDate())),this.date=t,this.emit(this.date,this.showTime)}else"week"===this.selectionMode?this.emit(e.date):"dates"===this.selectionMode&&this.emit(e,!0)},handleYearPick:function(e){"year"===this.selectionMode?(this.date=_r(this.date,e,0,1),this.emit(this.date)):(this.date=Er(this.date,e,this.month),this.currentView="month")},changeToNow:function(){this.disabledDate&&this.disabledDate(new Date)||!this.checkDateWithinRange(new Date)||(this.date=new Date,this.emit(this.date))},confirm:function(){if("dates"===this.selectionMode)this.emit(this.value);else{var e=this.value?this.value:Cr(this.getDefaultValue(),this.defaultTime);this.date=new Date(e),this.emit(e)}},resetView:function(){"month"===this.selectionMode?this.currentView="month":"year"===this.selectionMode?this.currentView="year":this.currentView="date"},handleEnter:function(){document.body.addEventListener("keydown",this.handleKeydown)},handleLeave:function(){this.$emit("dodestroy"),document.body.removeEventListener("keydown",this.handleKeydown)},handleKeydown:function(e){var t=e.keyCode;this.visible&&!this.timePickerVisible&&(-1!==[38,40,37,39].indexOf(t)&&(this.handleKeyControl(t),e.stopPropagation(),e.preventDefault()),13===t&&null===this.userInputDate&&null===this.userInputTime&&this.emit(this.date,!1))},handleKeyControl:function(e){for(var t={year:{38:-4,40:4,37:-1,39:1,offset:function(e,t){return e.setFullYear(e.getFullYear()+t)}},month:{38:-4,40:4,37:-1,39:1,offset:function(e,t){return e.setMonth(e.getMonth()+t)}},week:{38:-1,40:1,37:-1,39:1,offset:function(e,t){return e.setDate(e.getDate()+7*t)}},day:{38:-7,40:7,37:-1,39:1,offset:function(e,t){return e.setDate(e.getDate()+t)}}},i=this.selectionMode,n=this.date.getTime(),r=new Date(this.date.getTime());Math.abs(n-r.getTime())<=31536e6;){var s=t[i];if(s.offset(r,s[e]),"function"!=typeof this.disabledDate||!this.disabledDate(r)){this.date=r,this.$emit("pick",r,!0);break}}},handleVisibleTimeChange:function(e){var t=pr(e,this.timeFormat);t&&this.checkDateWithinRange(t)&&(this.date=_r(t,this.year,this.month,this.monthDate),this.userInputTime=null,this.$refs.timepicker.value=this.date,this.timePickerVisible=!1,this.emit(this.date,!0))},handleVisibleDateChange:function(e){var t=pr(e,this.dateFormat);if(t){if("function"==typeof this.disabledDate&&this.disabledDate(t))return;this.date=xr(t,this.date.getHours(),this.date.getMinutes(),this.date.getSeconds()),this.userInputDate=null,this.resetView(),this.emit(this.date,!0)}},isValidValue:function(e){return e&&!isNaN(e)&&("function"!=typeof this.disabledDate||!this.disabledDate(e))&&this.checkDateWithinRange(e)},getDefaultValue:function(){return this.defaultValue?new Date(this.defaultValue):new Date},checkDateWithinRange:function(e){return!(this.selectableRange.length>0)||$r(e,this.selectableRange,this.format||"HH:mm:ss")}},components:{TimePicker:rs,YearTable:os,MonthTable:ds,DateTable:gs,ElInput:re,ElButton:Tt},data:function(){return{popperClass:"",date:new Date,value:"",defaultValue:null,defaultTime:null,showTime:!1,selectionMode:"day",shortcuts:"",visible:!1,currentView:"date",disabledDate:"",cellClassName:"",selectableRange:[],firstDayOfWeek:7,showWeekNumber:!1,timePickerVisible:!1,format:"",arrowControl:!1,userInputDate:null,userInputTime:null}},computed:{year:function(){return this.date.getFullYear()},month:function(){return this.date.getMonth()},week:function(){return br(this.date)},monthDate:function(){return this.date.getDate()},footerVisible:function(){return this.showTime||"dates"===this.selectionMode},visibleTime:function(){return null!==this.userInputTime?this.userInputTime:dr(this.value||this.defaultValue,this.timeFormat)},visibleDate:function(){return null!==this.userInputDate?this.userInputDate:dr(this.value||this.defaultValue,this.dateFormat)},yearLabel:function(){var e=this.t("el.datepicker.year");if("year"===this.currentView){var t=10*Math.floor(this.year/10);return e?t+" "+e+" - "+(t+9)+" "+e:t+" - "+(t+9)}return this.year+" "+e},timeFormat:function(){return this.format?Ir(this.format):"HH:mm:ss"},dateFormat:function(){return this.format?Or(this.format):"yyyy-MM-dd"}}},Jr,[],!1,null,null,null);bs.options.__file="packages/date-picker/src/panel/date.vue";var ys=bs.exports,ws=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":function(t){e.$emit("dodestroy")}}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-picker-panel el-date-range-picker el-popper",class:[{"has-sidebar":e.$slots.sidebar||e.shortcuts,"has-time":e.showTime},e.popperClass]},[i("div",{staticClass:"el-picker-panel__body-wrapper"},[e._t("sidebar"),e.shortcuts?i("div",{staticClass:"el-picker-panel__sidebar"},e._l(e.shortcuts,function(t,n){return i("button",{key:n,staticClass:"el-picker-panel__shortcut",attrs:{type:"button"},on:{click:function(i){e.handleShortcutClick(t)}}},[e._v(e._s(t.text))])}),0):e._e(),i("div",{staticClass:"el-picker-panel__body"},[e.showTime?i("div",{staticClass:"el-date-range-picker__time-header"},[i("span",{staticClass:"el-date-range-picker__editors-wrap"},[i("span",{staticClass:"el-date-range-picker__time-picker-wrap"},[i("el-input",{ref:"minInput",staticClass:"el-date-range-picker__editor",attrs:{size:"small",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.startDate"),value:e.minVisibleDate},on:{input:function(t){return e.handleDateInput(t,"min")},change:function(t){return e.handleDateChange(t,"min")}}})],1),i("span",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleMinTimeClose,expression:"handleMinTimeClose"}],staticClass:"el-date-range-picker__time-picker-wrap"},[i("el-input",{staticClass:"el-date-range-picker__editor",attrs:{size:"small",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.startTime"),value:e.minVisibleTime},on:{focus:function(t){e.minTimePickerVisible=!0},input:function(t){return e.handleTimeInput(t,"min")},change:function(t){return e.handleTimeChange(t,"min")}}}),i("time-picker",{ref:"minTimePicker",attrs:{"time-arrow-control":e.arrowControl,visible:e.minTimePickerVisible},on:{pick:e.handleMinTimePick,mounted:function(t){e.$refs.minTimePicker.format=e.timeFormat}}})],1)]),i("span",{staticClass:"el-icon-arrow-right"}),i("span",{staticClass:"el-date-range-picker__editors-wrap is-right"},[i("span",{staticClass:"el-date-range-picker__time-picker-wrap"},[i("el-input",{staticClass:"el-date-range-picker__editor",attrs:{size:"small",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.endDate"),value:e.maxVisibleDate,readonly:!e.minDate},on:{input:function(t){return e.handleDateInput(t,"max")},change:function(t){return e.handleDateChange(t,"max")}}})],1),i("span",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleMaxTimeClose,expression:"handleMaxTimeClose"}],staticClass:"el-date-range-picker__time-picker-wrap"},[i("el-input",{staticClass:"el-date-range-picker__editor",attrs:{size:"small",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.endTime"),value:e.maxVisibleTime,readonly:!e.minDate},on:{focus:function(t){e.minDate&&(e.maxTimePickerVisible=!0)},input:function(t){return e.handleTimeInput(t,"max")},change:function(t){return e.handleTimeChange(t,"max")}}}),i("time-picker",{ref:"maxTimePicker",attrs:{"time-arrow-control":e.arrowControl,visible:e.maxTimePickerVisible},on:{pick:e.handleMaxTimePick,mounted:function(t){e.$refs.maxTimePicker.format=e.timeFormat}}})],1)])]):e._e(),i("div",{staticClass:"el-picker-panel__content el-date-range-picker__content is-left"},[i("div",{staticClass:"el-date-range-picker__header"},[i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-left",attrs:{type:"button"},on:{click:e.leftPrevYear}}),i("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-left",attrs:{type:"button"},on:{click:e.leftPrevMonth}}),e.unlinkPanels?i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-right",class:{"is-disabled":!e.enableYearArrow},attrs:{type:"button",disabled:!e.enableYearArrow},on:{click:e.leftNextYear}}):e._e(),e.unlinkPanels?i("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-right",class:{"is-disabled":!e.enableMonthArrow},attrs:{type:"button",disabled:!e.enableMonthArrow},on:{click:e.leftNextMonth}}):e._e(),i("div",[e._v(e._s(e.leftLabel))])]),i("date-table",{attrs:{"selection-mode":"range",date:e.leftDate,"default-value":e.defaultValue,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate,"cell-class-name":e.cellClassName,"first-day-of-week":e.firstDayOfWeek},on:{changerange:e.handleChangeRange,pick:e.handleRangePick}})],1),i("div",{staticClass:"el-picker-panel__content el-date-range-picker__content is-right"},[i("div",{staticClass:"el-date-range-picker__header"},[e.unlinkPanels?i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-left",class:{"is-disabled":!e.enableYearArrow},attrs:{type:"button",disabled:!e.enableYearArrow},on:{click:e.rightPrevYear}}):e._e(),e.unlinkPanels?i("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-left",class:{"is-disabled":!e.enableMonthArrow},attrs:{type:"button",disabled:!e.enableMonthArrow},on:{click:e.rightPrevMonth}}):e._e(),i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-right",attrs:{type:"button"},on:{click:e.rightNextYear}}),i("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-right",attrs:{type:"button"},on:{click:e.rightNextMonth}}),i("div",[e._v(e._s(e.rightLabel))])]),i("date-table",{attrs:{"selection-mode":"range",date:e.rightDate,"default-value":e.defaultValue,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate,"cell-class-name":e.cellClassName,"first-day-of-week":e.firstDayOfWeek},on:{changerange:e.handleChangeRange,pick:e.handleRangePick}})],1)])],2),e.showTime?i("div",{staticClass:"el-picker-panel__footer"},[i("el-button",{staticClass:"el-picker-panel__link-btn",attrs:{size:"mini",type:"text"},on:{click:e.handleClear}},[e._v("\n "+e._s(e.t("el.datepicker.clear"))+"\n ")]),i("el-button",{staticClass:"el-picker-panel__link-btn",attrs:{plain:"",size:"mini",disabled:e.btnDisabled},on:{click:function(t){e.handleConfirm(!1)}}},[e._v("\n "+e._s(e.t("el.datepicker.confirm"))+"\n ")])],1):e._e()])])};ws._withStripped=!0;var _s=function(e){return Array.isArray(e)?[new Date(e[0]),new Date(e[1])]:e?[new Date(e),gr(new Date(e),1)]:[new Date,gr(new Date,1)]},xs=r({mixins:[Y],directives:{Clickoutside:ot},computed:{btnDisabled:function(){return!(this.minDate&&this.maxDate&&!this.selecting&&this.isValidValue([this.minDate,this.maxDate]))},leftLabel:function(){return this.leftDate.getFullYear()+" "+this.t("el.datepicker.year")+" "+this.t("el.datepicker.month"+(this.leftDate.getMonth()+1))},rightLabel:function(){return this.rightDate.getFullYear()+" "+this.t("el.datepicker.year")+" "+this.t("el.datepicker.month"+(this.rightDate.getMonth()+1))},leftYear:function(){return this.leftDate.getFullYear()},leftMonth:function(){return this.leftDate.getMonth()},leftMonthDate:function(){return this.leftDate.getDate()},rightYear:function(){return this.rightDate.getFullYear()},rightMonth:function(){return this.rightDate.getMonth()},rightMonthDate:function(){return this.rightDate.getDate()},minVisibleDate:function(){return null!==this.dateUserInput.min?this.dateUserInput.min:this.minDate?dr(this.minDate,this.dateFormat):""},maxVisibleDate:function(){return null!==this.dateUserInput.max?this.dateUserInput.max:this.maxDate||this.minDate?dr(this.maxDate||this.minDate,this.dateFormat):""},minVisibleTime:function(){return null!==this.timeUserInput.min?this.timeUserInput.min:this.minDate?dr(this.minDate,this.timeFormat):""},maxVisibleTime:function(){return null!==this.timeUserInput.max?this.timeUserInput.max:this.maxDate||this.minDate?dr(this.maxDate||this.minDate,this.timeFormat):""},timeFormat:function(){return this.format?Ir(this.format):"HH:mm:ss"},dateFormat:function(){return this.format?Or(this.format):"yyyy-MM-dd"},enableMonthArrow:function(){var e=(this.leftMonth+1)%12,t=this.leftMonth+1>=12?1:0;return this.unlinkPanels&&new Date(this.leftYear+t,e)<new Date(this.rightYear,this.rightMonth)},enableYearArrow:function(){return this.unlinkPanels&&12*this.rightYear+this.rightMonth-(12*this.leftYear+this.leftMonth+1)>=12}},data:function(){return{popperClass:"",value:[],defaultValue:null,defaultTime:null,minDate:"",maxDate:"",leftDate:new Date,rightDate:Mr(new Date),rangeState:{endDate:null,selecting:!1,row:null,column:null},showTime:!1,shortcuts:"",visible:"",disabledDate:"",cellClassName:"",firstDayOfWeek:7,minTimePickerVisible:!1,maxTimePickerVisible:!1,format:"",arrowControl:!1,unlinkPanels:!1,dateUserInput:{min:null,max:null},timeUserInput:{min:null,max:null}}},watch:{minDate:function(e){var t=this;this.dateUserInput.min=null,this.timeUserInput.min=null,this.$nextTick(function(){if(t.$refs.maxTimePicker&&t.maxDate&&t.maxDate<t.minDate){t.$refs.maxTimePicker.selectableRange=[[pr(dr(t.minDate,"HH:mm:ss"),"HH:mm:ss"),pr("23:59:59","HH:mm:ss")]]}}),e&&this.$refs.minTimePicker&&(this.$refs.minTimePicker.date=e,this.$refs.minTimePicker.value=e)},maxDate:function(e){this.dateUserInput.max=null,this.timeUserInput.max=null,e&&this.$refs.maxTimePicker&&(this.$refs.maxTimePicker.date=e,this.$refs.maxTimePicker.value=e)},minTimePickerVisible:function(e){var t=this;e&&this.$nextTick(function(){t.$refs.minTimePicker.date=t.minDate,t.$refs.minTimePicker.value=t.minDate,t.$refs.minTimePicker.adjustSpinners()})},maxTimePickerVisible:function(e){var t=this;e&&this.$nextTick(function(){t.$refs.maxTimePicker.date=t.maxDate,t.$refs.maxTimePicker.value=t.maxDate,t.$refs.maxTimePicker.adjustSpinners()})},value:function(e){if(e){if(Array.isArray(e))if(this.minDate=cr(e[0])?new Date(e[0]):null,this.maxDate=cr(e[1])?new Date(e[1]):null,this.minDate)if(this.leftDate=this.minDate,this.unlinkPanels&&this.maxDate){var t=this.minDate.getFullYear(),i=this.minDate.getMonth(),n=this.maxDate.getFullYear(),r=this.maxDate.getMonth();this.rightDate=t===n&&i===r?Mr(this.maxDate):this.maxDate}else this.rightDate=Mr(this.leftDate);else this.leftDate=_s(this.defaultValue)[0],this.rightDate=Mr(this.leftDate)}else this.minDate=null,this.maxDate=null},defaultValue:function(e){if(!Array.isArray(this.value)){var t=_s(e),i=t[0],n=t[1];this.leftDate=i,this.rightDate=e&&e[1]&&this.unlinkPanels?n:Mr(this.leftDate)}}},methods:{handleClear:function(){this.minDate=null,this.maxDate=null,this.leftDate=_s(this.defaultValue)[0],this.rightDate=Mr(this.leftDate),this.$emit("pick",null)},handleChangeRange:function(e){this.minDate=e.minDate,this.maxDate=e.maxDate,this.rangeState=e.rangeState},handleDateInput:function(e,t){if(this.dateUserInput[t]=e,e.length===this.dateFormat.length){var i=pr(e,this.dateFormat);if(i){if("function"==typeof this.disabledDate&&this.disabledDate(new Date(i)))return;"min"===t?(this.minDate=_r(this.minDate||new Date,i.getFullYear(),i.getMonth(),i.getDate()),this.leftDate=new Date(i),this.unlinkPanels||(this.rightDate=Mr(this.leftDate))):(this.maxDate=_r(this.maxDate||new Date,i.getFullYear(),i.getMonth(),i.getDate()),this.rightDate=new Date(i),this.unlinkPanels||(this.leftDate=Tr(i)))}}},handleDateChange:function(e,t){var i=pr(e,this.dateFormat);i&&("min"===t?(this.minDate=_r(this.minDate,i.getFullYear(),i.getMonth(),i.getDate()),this.minDate>this.maxDate&&(this.maxDate=this.minDate)):(this.maxDate=_r(this.maxDate,i.getFullYear(),i.getMonth(),i.getDate()),this.maxDate<this.minDate&&(this.minDate=this.maxDate)))},handleTimeInput:function(e,t){var i=this;if(this.timeUserInput[t]=e,e.length===this.timeFormat.length){var n=pr(e,this.timeFormat);n&&("min"===t?(this.minDate=xr(this.minDate,n.getHours(),n.getMinutes(),n.getSeconds()),this.$nextTick(function(e){return i.$refs.minTimePicker.adjustSpinners()})):(this.maxDate=xr(this.maxDate,n.getHours(),n.getMinutes(),n.getSeconds()),this.$nextTick(function(e){return i.$refs.maxTimePicker.adjustSpinners()})))}},handleTimeChange:function(e,t){var i=pr(e,this.timeFormat);i&&("min"===t?(this.minDate=xr(this.minDate,i.getHours(),i.getMinutes(),i.getSeconds()),this.minDate>this.maxDate&&(this.maxDate=this.minDate),this.$refs.minTimePicker.value=this.minDate,this.minTimePickerVisible=!1):(this.maxDate=xr(this.maxDate,i.getHours(),i.getMinutes(),i.getSeconds()),this.maxDate<this.minDate&&(this.minDate=this.maxDate),this.$refs.maxTimePicker.value=this.minDate,this.maxTimePickerVisible=!1))},handleRangePick:function(e){var t=this,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.defaultTime||[],r=Cr(e.minDate,n[0]),s=Cr(e.maxDate,n[1]);this.maxDate===s&&this.minDate===r||(this.onPick&&this.onPick(e),this.maxDate=s,this.minDate=r,setTimeout(function(){t.maxDate=s,t.minDate=r},10),i&&!this.showTime&&this.handleConfirm())},handleShortcutClick:function(e){e.onClick&&e.onClick(this)},handleMinTimePick:function(e,t,i){this.minDate=this.minDate||new Date,e&&(this.minDate=xr(this.minDate,e.getHours(),e.getMinutes(),e.getSeconds())),i||(this.minTimePickerVisible=t),(!this.maxDate||this.maxDate&&this.maxDate.getTime()<this.minDate.getTime())&&(this.maxDate=new Date(this.minDate))},handleMinTimeClose:function(){this.minTimePickerVisible=!1},handleMaxTimePick:function(e,t,i){this.maxDate&&e&&(this.maxDate=xr(this.maxDate,e.getHours(),e.getMinutes(),e.getSeconds())),i||(this.maxTimePickerVisible=t),this.maxDate&&this.minDate&&this.minDate.getTime()>this.maxDate.getTime()&&(this.minDate=new Date(this.maxDate))},handleMaxTimeClose:function(){this.maxTimePickerVisible=!1},leftPrevYear:function(){this.leftDate=Nr(this.leftDate),this.unlinkPanels||(this.rightDate=Mr(this.leftDate))},leftPrevMonth:function(){this.leftDate=Tr(this.leftDate),this.unlinkPanels||(this.rightDate=Mr(this.leftDate))},rightNextYear:function(){this.unlinkPanels?this.rightDate=Pr(this.rightDate):(this.leftDate=Pr(this.leftDate),this.rightDate=Mr(this.leftDate))},rightNextMonth:function(){this.unlinkPanels?this.rightDate=Mr(this.rightDate):(this.leftDate=Mr(this.leftDate),this.rightDate=Mr(this.leftDate))},leftNextYear:function(){this.leftDate=Pr(this.leftDate)},leftNextMonth:function(){this.leftDate=Mr(this.leftDate)},rightPrevYear:function(){this.rightDate=Nr(this.rightDate)},rightPrevMonth:function(){this.rightDate=Tr(this.rightDate)},handleConfirm:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.isValidValue([this.minDate,this.maxDate])&&this.$emit("pick",[this.minDate,this.maxDate],e)},isValidValue:function(e){return Array.isArray(e)&&e&&e[0]&&e[1]&&cr(e[0])&&cr(e[1])&&e[0].getTime()<=e[1].getTime()&&("function"!=typeof this.disabledDate||!this.disabledDate(e[0])&&!this.disabledDate(e[1]))},resetView:function(){this.minDate&&null==this.maxDate&&(this.rangeState.selecting=!1),this.minDate=this.value&&cr(this.value[0])?new Date(this.value[0]):null,this.maxDate=this.value&&cr(this.value[0])?new Date(this.value[1]):null}},components:{TimePicker:rs,DateTable:gs,ElInput:re,ElButton:Tt}},ws,[],!1,null,null,null);xs.options.__file="packages/date-picker/src/panel/date-range.vue";var Cs=xs.exports,ks=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":function(t){e.$emit("dodestroy")}}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-picker-panel el-date-range-picker el-popper",class:[{"has-sidebar":e.$slots.sidebar||e.shortcuts},e.popperClass]},[i("div",{staticClass:"el-picker-panel__body-wrapper"},[e._t("sidebar"),e.shortcuts?i("div",{staticClass:"el-picker-panel__sidebar"},e._l(e.shortcuts,function(t,n){return i("button",{key:n,staticClass:"el-picker-panel__shortcut",attrs:{type:"button"},on:{click:function(i){e.handleShortcutClick(t)}}},[e._v(e._s(t.text))])}),0):e._e(),i("div",{staticClass:"el-picker-panel__body"},[i("div",{staticClass:"el-picker-panel__content el-date-range-picker__content is-left"},[i("div",{staticClass:"el-date-range-picker__header"},[i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-left",attrs:{type:"button"},on:{click:e.leftPrevYear}}),e.unlinkPanels?i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-right",class:{"is-disabled":!e.enableYearArrow},attrs:{type:"button",disabled:!e.enableYearArrow},on:{click:e.leftNextYear}}):e._e(),i("div",[e._v(e._s(e.leftLabel))])]),i("month-table",{attrs:{"selection-mode":"range",date:e.leftDate,"default-value":e.defaultValue,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate},on:{changerange:e.handleChangeRange,pick:e.handleRangePick}})],1),i("div",{staticClass:"el-picker-panel__content el-date-range-picker__content is-right"},[i("div",{staticClass:"el-date-range-picker__header"},[e.unlinkPanels?i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-left",class:{"is-disabled":!e.enableYearArrow},attrs:{type:"button",disabled:!e.enableYearArrow},on:{click:e.rightPrevYear}}):e._e(),i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-right",attrs:{type:"button"},on:{click:e.rightNextYear}}),i("div",[e._v(e._s(e.rightLabel))])]),i("month-table",{attrs:{"selection-mode":"range",date:e.rightDate,"default-value":e.defaultValue,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate},on:{changerange:e.handleChangeRange,pick:e.handleRangePick}})],1)])],2)])])};ks._withStripped=!0;var Ss=function(e){return Array.isArray(e)?[new Date(e[0]),new Date(e[1])]:e?[new Date(e),Mr(new Date(e))]:[new Date,Mr(new Date)]},Ds=r({mixins:[Y],directives:{Clickoutside:ot},computed:{btnDisabled:function(){return!(this.minDate&&this.maxDate&&!this.selecting&&this.isValidValue([this.minDate,this.maxDate]))},leftLabel:function(){return this.leftDate.getFullYear()+" "+this.t("el.datepicker.year")},rightLabel:function(){return this.rightDate.getFullYear()+" "+this.t("el.datepicker.year")},leftYear:function(){return this.leftDate.getFullYear()},rightYear:function(){return this.rightDate.getFullYear()===this.leftDate.getFullYear()?this.leftDate.getFullYear()+1:this.rightDate.getFullYear()},enableYearArrow:function(){return this.unlinkPanels&&this.rightYear>this.leftYear+1}},data:function(){return{popperClass:"",value:[],defaultValue:null,defaultTime:null,minDate:"",maxDate:"",leftDate:new Date,rightDate:Pr(new Date),rangeState:{endDate:null,selecting:!1,row:null,column:null},shortcuts:"",visible:"",disabledDate:"",format:"",arrowControl:!1,unlinkPanels:!1}},watch:{value:function(e){if(e){if(Array.isArray(e))if(this.minDate=cr(e[0])?new Date(e[0]):null,this.maxDate=cr(e[1])?new Date(e[1]):null,this.minDate)if(this.leftDate=this.minDate,this.unlinkPanels&&this.maxDate){var t=this.minDate.getFullYear(),i=this.maxDate.getFullYear();this.rightDate=t===i?Pr(this.maxDate):this.maxDate}else this.rightDate=Pr(this.leftDate);else this.leftDate=Ss(this.defaultValue)[0],this.rightDate=Pr(this.leftDate)}else this.minDate=null,this.maxDate=null},defaultValue:function(e){if(!Array.isArray(this.value)){var t=Ss(e),i=t[0],n=t[1];this.leftDate=i,this.rightDate=e&&e[1]&&i.getFullYear()!==n.getFullYear()&&this.unlinkPanels?n:Pr(this.leftDate)}}},methods:{handleClear:function(){this.minDate=null,this.maxDate=null,this.leftDate=Ss(this.defaultValue)[0],this.rightDate=Pr(this.leftDate),this.$emit("pick",null)},handleChangeRange:function(e){this.minDate=e.minDate,this.maxDate=e.maxDate,this.rangeState=e.rangeState},handleRangePick:function(e){var t=this,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.defaultTime||[],r=Cr(e.minDate,n[0]),s=Cr(e.maxDate,n[1]);this.maxDate===s&&this.minDate===r||(this.onPick&&this.onPick(e),this.maxDate=s,this.minDate=r,setTimeout(function(){t.maxDate=s,t.minDate=r},10),i&&this.handleConfirm())},handleShortcutClick:function(e){e.onClick&&e.onClick(this)},leftPrevYear:function(){this.leftDate=Nr(this.leftDate),this.unlinkPanels||(this.rightDate=Nr(this.rightDate))},rightNextYear:function(){this.unlinkPanels||(this.leftDate=Pr(this.leftDate)),this.rightDate=Pr(this.rightDate)},leftNextYear:function(){this.leftDate=Pr(this.leftDate)},rightPrevYear:function(){this.rightDate=Nr(this.rightDate)},handleConfirm:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.isValidValue([this.minDate,this.maxDate])&&this.$emit("pick",[this.minDate,this.maxDate],e)},isValidValue:function(e){return Array.isArray(e)&&e&&e[0]&&e[1]&&cr(e[0])&&cr(e[1])&&e[0].getTime()<=e[1].getTime()&&("function"!=typeof this.disabledDate||!this.disabledDate(e[0])&&!this.disabledDate(e[1]))},resetView:function(){this.minDate=this.value&&cr(this.value[0])?new Date(this.value[0]):null,this.maxDate=this.value&&cr(this.value[0])?new Date(this.value[1]):null}},components:{MonthTable:ds,ElInput:re,ElButton:Tt}},ks,[],!1,null,null,null);Ds.options.__file="packages/date-picker/src/panel/month-range.vue";var $s=Ds.exports,Es=function(e){return"daterange"===e||"datetimerange"===e?Cs:"monthrange"===e?$s:ys},Ts={mixins:[Zr],name:"ElDatePicker",props:{type:{type:String,default:"date"},timeArrowControl:Boolean},watch:{type:function(e){this.picker?(this.unmountPicker(),this.panel=Es(e),this.mountPicker()):this.panel=Es(e)}},created:function(){this.panel=Es(this.type)},install:function(e){e.component(Ts.name,Ts)}},Ms=Ts,Ns=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"before-enter":e.handleMenuEnter,"after-leave":function(t){e.$emit("dodestroy")}}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],ref:"popper",staticClass:"el-picker-panel time-select el-popper",class:e.popperClass,style:{width:e.width+"px"}},[i("el-scrollbar",{attrs:{noresize:"","wrap-class":"el-picker-panel__content"}},e._l(e.items,function(t){return i("div",{key:t.value,staticClass:"time-select-item",class:{selected:e.value===t.value,disabled:t.disabled,default:t.value===e.defaultValue},attrs:{disabled:t.disabled},on:{click:function(i){e.handleClick(t)}}},[e._v(e._s(t.value))])}),0)],1)])};Ns._withStripped=!0;var Ps=function(e){var t=(e||"").split(":");return t.length>=2?{hours:parseInt(t[0],10),minutes:parseInt(t[1],10)}:null},Os=function(e,t){var i=Ps(e),n=Ps(t),r=i.minutes+60*i.hours,s=n.minutes+60*n.hours;return r===s?0:r>s?1:-1},Is=function(e,t){var i=Ps(e),n=Ps(t),r={hours:i.hours,minutes:i.minutes};return r.minutes+=n.minutes,r.hours+=n.hours,r.hours+=Math.floor(r.minutes/60),r.minutes=r.minutes%60,function(e){return(e.hours<10?"0"+e.hours:e.hours)+":"+(e.minutes<10?"0"+e.minutes:e.minutes)}(r)},As=r({components:{ElScrollbar:Qe},watch:{value:function(e){var t=this;e&&this.$nextTick(function(){return t.scrollToOption()})}},methods:{handleClick:function(e){e.disabled||this.$emit("pick",e.value)},handleClear:function(){this.$emit("pick",null)},scrollToOption:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:".selected",t=this.$refs.popper.querySelector(".el-picker-panel__content");lt(t,t.querySelector(e))},handleMenuEnter:function(){var e=this,t=-1!==this.items.map(function(e){return e.value}).indexOf(this.value),i=-1!==this.items.map(function(e){return e.value}).indexOf(this.defaultValue),n=(t?".selected":i&&".default")||".time-select-item:not(.disabled)";this.$nextTick(function(){return e.scrollToOption(n)})},scrollDown:function(e){for(var t=this.items,i=t.length,n=t.length,r=t.map(function(e){return e.value}).indexOf(this.value);n--;)if(!t[r=(r+e+i)%i].disabled)return void this.$emit("pick",t[r].value,!0)},isValidValue:function(e){return-1!==this.items.filter(function(e){return!e.disabled}).map(function(e){return e.value}).indexOf(e)},handleKeydown:function(e){var t=e.keyCode;if(38===t||40===t){var i={40:1,38:-1}[t.toString()];return this.scrollDown(i),void e.stopPropagation()}}},data:function(){return{popperClass:"",start:"09:00",end:"18:00",step:"00:30",value:"",defaultValue:"",visible:!1,minTime:"",maxTime:"",width:0}},computed:{items:function(){var e=this.start,t=this.end,i=this.step,n=[];if(e&&t&&i)for(var r=e;Os(r,t)<=0;)n.push({value:r,disabled:Os(r,this.minTime||"-1:-1")<=0||Os(r,this.maxTime||"100:100")>=0}),r=Is(r,i);return n}}},Ns,[],!1,null,null,null);As.options.__file="packages/date-picker/src/panel/time-select.vue";var Fs=As.exports,Ls={mixins:[Zr],name:"ElTimeSelect",componentName:"ElTimeSelect",props:{type:{type:String,default:"time-select"}},beforeCreate:function(){this.panel=Fs},install:function(e){e.component(Ls.name,Ls)}},Vs=Ls,Bs=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":function(t){e.$emit("dodestroy")}}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-time-range-picker el-picker-panel el-popper",class:e.popperClass},[i("div",{staticClass:"el-time-range-picker__content"},[i("div",{staticClass:"el-time-range-picker__cell"},[i("div",{staticClass:"el-time-range-picker__header"},[e._v(e._s(e.t("el.datepicker.startTime")))]),i("div",{staticClass:"el-time-range-picker__body el-time-panel__content",class:{"has-seconds":e.showSeconds,"is-arrow":e.arrowControl}},[i("time-spinner",{ref:"minSpinner",attrs:{"show-seconds":e.showSeconds,"am-pm-mode":e.amPmMode,"arrow-control":e.arrowControl,date:e.minDate},on:{change:e.handleMinChange,"select-range":e.setMinSelectionRange}})],1)]),i("div",{staticClass:"el-time-range-picker__cell"},[i("div",{staticClass:"el-time-range-picker__header"},[e._v(e._s(e.t("el.datepicker.endTime")))]),i("div",{staticClass:"el-time-range-picker__body el-time-panel__content",class:{"has-seconds":e.showSeconds,"is-arrow":e.arrowControl}},[i("time-spinner",{ref:"maxSpinner",attrs:{"show-seconds":e.showSeconds,"am-pm-mode":e.amPmMode,"arrow-control":e.arrowControl,date:e.maxDate},on:{change:e.handleMaxChange,"select-range":e.setMaxSelectionRange}})],1)])]),i("div",{staticClass:"el-time-panel__footer"},[i("button",{staticClass:"el-time-panel__btn cancel",attrs:{type:"button"},on:{click:function(t){e.handleCancel()}}},[e._v(e._s(e.t("el.datepicker.cancel")))]),i("button",{staticClass:"el-time-panel__btn confirm",attrs:{type:"button",disabled:e.btnDisabled},on:{click:function(t){e.handleConfirm()}}},[e._v(e._s(e.t("el.datepicker.confirm")))])])])])};Bs._withStripped=!0;var zs=pr("00:00:00","HH:mm:ss"),Hs=pr("23:59:59","HH:mm:ss"),Rs=function(e){return _r(Hs,e.getFullYear(),e.getMonth(),e.getDate())},Ws=function(e,t){return new Date(Math.min(e.getTime()+t,Rs(e).getTime()))},js=r({mixins:[Y],components:{TimeSpinner:is},computed:{showSeconds:function(){return-1!==(this.format||"").indexOf("ss")},offset:function(){return this.showSeconds?11:8},spinner:function(){return this.selectionRange[0]<this.offset?this.$refs.minSpinner:this.$refs.maxSpinner},btnDisabled:function(){return this.minDate.getTime()>this.maxDate.getTime()},amPmMode:function(){return-1!==(this.format||"").indexOf("A")?"A":-1!==(this.format||"").indexOf("a")?"a":""}},data:function(){return{popperClass:"",minDate:new Date,maxDate:new Date,value:[],oldValue:[new Date,new Date],defaultValue:null,format:"HH:mm:ss",visible:!1,selectionRange:[0,2],arrowControl:!1}},watch:{value:function(e){Array.isArray(e)?(this.minDate=new Date(e[0]),this.maxDate=new Date(e[1])):Array.isArray(this.defaultValue)?(this.minDate=new Date(this.defaultValue[0]),this.maxDate=new Date(this.defaultValue[1])):this.defaultValue?(this.minDate=new Date(this.defaultValue),this.maxDate=Ws(new Date(this.defaultValue),36e5)):(this.minDate=new Date,this.maxDate=Ws(new Date,36e5))},visible:function(e){var t=this;e&&(this.oldValue=this.value,this.$nextTick(function(){return t.$refs.minSpinner.emitSelectRange("hours")}))}},methods:{handleClear:function(){this.$emit("pick",null)},handleCancel:function(){this.$emit("pick",this.oldValue)},handleMinChange:function(e){this.minDate=Sr(e),this.handleChange()},handleMaxChange:function(e){this.maxDate=Sr(e),this.handleChange()},handleChange:function(){var e;this.isValidValue([this.minDate,this.maxDate])&&(this.$refs.minSpinner.selectableRange=[[(e=this.minDate,_r(zs,e.getFullYear(),e.getMonth(),e.getDate())),this.maxDate]],this.$refs.maxSpinner.selectableRange=[[this.minDate,Rs(this.maxDate)]],this.$emit("pick",[this.minDate,this.maxDate],!0))},setMinSelectionRange:function(e,t){this.$emit("select-range",e,t,"min"),this.selectionRange=[e,t]},setMaxSelectionRange:function(e,t){this.$emit("select-range",e,t,"max"),this.selectionRange=[e+this.offset,t+this.offset]},handleConfirm:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.$refs.minSpinner.selectableRange,i=this.$refs.maxSpinner.selectableRange;this.minDate=Dr(this.minDate,t,this.format),this.maxDate=Dr(this.maxDate,i,this.format),this.$emit("pick",[this.minDate,this.maxDate],e)},adjustSpinners:function(){this.$refs.minSpinner.adjustSpinners(),this.$refs.maxSpinner.adjustSpinners()},changeSelectionRange:function(e){var t=this.showSeconds?[0,3,6,11,14,17]:[0,3,8,11],i=["hours","minutes"].concat(this.showSeconds?["seconds"]:[]),n=(t.indexOf(this.selectionRange[0])+e+t.length)%t.length,r=t.length/2;n<r?this.$refs.minSpinner.emitSelectRange(i[n]):this.$refs.maxSpinner.emitSelectRange(i[n-r])},isValidValue:function(e){return Array.isArray(e)&&$r(this.minDate,this.$refs.minSpinner.selectableRange)&&$r(this.maxDate,this.$refs.maxSpinner.selectableRange)},handleKeydown:function(e){var t=e.keyCode,i={38:-1,40:1,37:-1,39:1};if(37===t||39===t){var n=i[t];return this.changeSelectionRange(n),void e.preventDefault()}if(38===t||40===t){var r=i[t];return this.spinner.scrollDown(r),void e.preventDefault()}}}},Bs,[],!1,null,null,null);js.options.__file="packages/date-picker/src/panel/time-range.vue";var qs=js.exports,Ys={mixins:[Zr],name:"ElTimePicker",props:{isRange:Boolean,arrowControl:Boolean},data:function(){return{type:""}},watch:{isRange:function(e){this.picker?(this.unmountPicker(),this.type=e?"timerange":"time",this.panel=e?qs:rs,this.mountPicker()):(this.type=e?"timerange":"time",this.panel=e?qs:rs)}},created:function(){this.type=this.isRange?"timerange":"time",this.panel=this.isRange?qs:rs},install:function(e){e.component(Ys.name,Ys)}},Ks=Ys,Gs=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("transition",{attrs:{name:e.transition},on:{"after-enter":e.handleAfterEnter,"after-leave":e.handleAfterLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:!e.disabled&&e.showPopper,expression:"!disabled && showPopper"}],ref:"popper",staticClass:"el-popover el-popper",class:[e.popperClass,e.content&&"el-popover--plain"],style:{width:e.width+"px"},attrs:{role:"tooltip",id:e.tooltipId,"aria-hidden":e.disabled||!e.showPopper?"true":"false"}},[e.title?i("div",{staticClass:"el-popover__title",domProps:{textContent:e._s(e.title)}}):e._e(),e._t("default",[e._v(e._s(e.content))])],2)]),i("span",{ref:"wrapper",staticClass:"el-popover__reference-wrapper"},[e._t("reference")],2)],1)};Gs._withStripped=!0;var Us=r({name:"ElPopover",mixins:[Ie],props:{trigger:{type:String,default:"click",validator:function(e){return["click","focus","hover","manual"].indexOf(e)>-1}},openDelay:{type:Number,default:0},closeDelay:{type:Number,default:200},title:String,disabled:Boolean,content:String,reference:{},popperClass:String,width:{},visibleArrow:{default:!0},arrowOffset:{type:Number,default:0},transition:{type:String,default:"fade-in-linear"},tabindex:{type:Number,default:0}},computed:{tooltipId:function(){return"el-popover-"+$()}},watch:{showPopper:function(e){this.disabled||(e?this.$emit("show"):this.$emit("hide"))}},mounted:function(){var e=this,t=this.referenceElm=this.reference||this.$refs.reference,i=this.popper||this.$refs.popper;!t&&this.$refs.wrapper.children&&(t=this.referenceElm=this.$refs.wrapper.children[0]),t&&(me(t,"el-popover__reference"),t.setAttribute("aria-describedby",this.tooltipId),t.setAttribute("tabindex",this.tabindex),i.setAttribute("tabindex",0),"click"!==this.trigger&&(de(t,"focusin",function(){e.handleFocus();var i=t.__vue__;i&&"function"==typeof i.focus&&i.focus()}),de(i,"focusin",this.handleFocus),de(t,"focusout",this.handleBlur),de(i,"focusout",this.handleBlur)),de(t,"keydown",this.handleKeydown),de(t,"click",this.handleClick)),"click"===this.trigger?(de(t,"click",this.doToggle),de(document,"click",this.handleDocumentClick)):"hover"===this.trigger?(de(t,"mouseenter",this.handleMouseEnter),de(i,"mouseenter",this.handleMouseEnter),de(t,"mouseleave",this.handleMouseLeave),de(i,"mouseleave",this.handleMouseLeave)):"focus"===this.trigger&&(this.tabindex<0&&console.warn("[Element Warn][Popover]a negative taindex means that the element cannot be focused by tab key"),t.querySelector("input, textarea")?(de(t,"focusin",this.doShow),de(t,"focusout",this.doClose)):(de(t,"mousedown",this.doShow),de(t,"mouseup",this.doClose)))},beforeDestroy:function(){this.cleanup()},deactivated:function(){this.cleanup()},methods:{doToggle:function(){this.showPopper=!this.showPopper},doShow:function(){this.showPopper=!0},doClose:function(){this.showPopper=!1},handleFocus:function(){me(this.referenceElm,"focusing"),"click"!==this.trigger&&"focus"!==this.trigger||(this.showPopper=!0)},handleClick:function(){ve(this.referenceElm,"focusing")},handleBlur:function(){ve(this.referenceElm,"focusing"),"click"!==this.trigger&&"focus"!==this.trigger||(this.showPopper=!1)},handleMouseEnter:function(){var e=this;clearTimeout(this._timer),this.openDelay?this._timer=setTimeout(function(){e.showPopper=!0},this.openDelay):this.showPopper=!0},handleKeydown:function(e){27===e.keyCode&&"manual"!==this.trigger&&this.doClose()},handleMouseLeave:function(){var e=this;clearTimeout(this._timer),this.closeDelay?this._timer=setTimeout(function(){e.showPopper=!1},this.closeDelay):this.showPopper=!1},handleDocumentClick:function(e){var t=this.reference||this.$refs.reference,i=this.popper||this.$refs.popper;!t&&this.$refs.wrapper.children&&(t=this.referenceElm=this.$refs.wrapper.children[0]),this.$el&&t&&!this.$el.contains(e.target)&&!t.contains(e.target)&&i&&!i.contains(e.target)&&(this.showPopper=!1)},handleAfterEnter:function(){this.$emit("after-enter")},handleAfterLeave:function(){this.$emit("after-leave"),this.doDestroy()},cleanup:function(){(this.openDelay||this.closeDelay)&&clearTimeout(this._timer)}},destroyed:function(){var e=this.reference;pe(e,"click",this.doToggle),pe(e,"mouseup",this.doClose),pe(e,"mousedown",this.doShow),pe(e,"focusin",this.doShow),pe(e,"focusout",this.doClose),pe(e,"mousedown",this.doShow),pe(e,"mouseup",this.doClose),pe(e,"mouseleave",this.handleMouseLeave),pe(e,"mouseenter",this.handleMouseEnter),pe(document,"click",this.handleDocumentClick)}},Gs,[],!1,null,null,null);Us.options.__file="packages/popover/src/main.vue";var Xs=Us.exports,Zs=function(e,t,i){var n=t.expression?t.value:t.arg,r=i.context.$refs[n];r&&(Array.isArray(r)?r[0].$refs.reference=e:r.$refs.reference=e)},Js={bind:function(e,t,i){Zs(e,t,i)},inserted:function(e,t,i){Zs(e,t,i)}};h.a.directive("popover",Js),Xs.install=function(e){e.directive("popover",Js),e.component(Xs.name,Xs)},Xs.directive=Js;var Qs=Xs,ea=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"msgbox-fade"}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-message-box__wrapper",attrs:{tabindex:"-1",role:"dialog","aria-modal":"true","aria-label":e.title||"dialog"},on:{click:function(t){return t.target!==t.currentTarget?null:e.handleWrapperClick(t)}}},[i("div",{staticClass:"el-message-box",class:[e.customClass,e.center&&"el-message-box--center"]},[null!==e.title?i("div",{staticClass:"el-message-box__header"},[i("div",{staticClass:"el-message-box__title"},[e.icon&&e.center?i("div",{class:["el-message-box__status",e.icon]}):e._e(),i("span",[e._v(e._s(e.title))])]),e.showClose?i("button",{staticClass:"el-message-box__headerbtn",attrs:{type:"button","aria-label":"Close"},on:{click:function(t){e.handleAction(e.distinguishCancelAndClose?"close":"cancel")},keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter"))return null;e.handleAction(e.distinguishCancelAndClose?"close":"cancel")}}},[i("i",{staticClass:"el-message-box__close el-icon-close"})]):e._e()]):e._e(),i("div",{staticClass:"el-message-box__content"},[i("div",{staticClass:"el-message-box__container"},[e.icon&&!e.center&&""!==e.message?i("div",{class:["el-message-box__status",e.icon]}):e._e(),""!==e.message?i("div",{staticClass:"el-message-box__message"},[e._t("default",[e.dangerouslyUseHTMLString?i("p",{domProps:{innerHTML:e._s(e.message)}}):i("p",[e._v(e._s(e.message))])])],2):e._e()]),i("div",{directives:[{name:"show",rawName:"v-show",value:e.showInput,expression:"showInput"}],staticClass:"el-message-box__input"},[i("el-input",{ref:"input",attrs:{type:e.inputType,placeholder:e.inputPlaceholder},nativeOn:{keydown:function(t){return"button"in t||!e._k(t.keyCode,"enter",13,t.key,"Enter")?e.handleInputEnter(t):null}},model:{value:e.inputValue,callback:function(t){e.inputValue=t},expression:"inputValue"}}),i("div",{staticClass:"el-message-box__errormsg",style:{visibility:e.editorErrorMessage?"visible":"hidden"}},[e._v(e._s(e.editorErrorMessage))])],1)]),i("div",{staticClass:"el-message-box__btns"},[e.showCancelButton?i("el-button",{class:[e.cancelButtonClasses],attrs:{loading:e.cancelButtonLoading,round:e.roundButton,size:"small"},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter"))return null;e.handleAction("cancel")}},nativeOn:{click:function(t){e.handleAction("cancel")}}},[e._v("\n "+e._s(e.cancelButtonText||e.t("el.messagebox.cancel"))+"\n ")]):e._e(),i("el-button",{directives:[{name:"show",rawName:"v-show",value:e.showConfirmButton,expression:"showConfirmButton"}],ref:"confirm",class:[e.confirmButtonClasses],attrs:{loading:e.confirmButtonLoading,round:e.roundButton,size:"small"},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter"))return null;e.handleAction("confirm")}},nativeOn:{click:function(t){e.handleAction("confirm")}}},[e._v("\n "+e._s(e.confirmButtonText||e.t("el.messagebox.confirm"))+"\n ")])],1)])])])};ea._withStripped=!0;var ta,ia="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},na=na||{};na.Dialog=function(e,t,i){var n=this;if(this.dialogNode=e,null===this.dialogNode||"dialog"!==this.dialogNode.getAttribute("role"))throw new Error("Dialog() requires a DOM element with ARIA role of dialog.");"string"==typeof t?this.focusAfterClosed=document.getElementById(t):"object"===(void 0===t?"undefined":ia(t))?this.focusAfterClosed=t:this.focusAfterClosed=null,"string"==typeof i?this.focusFirst=document.getElementById(i):"object"===(void 0===i?"undefined":ia(i))?this.focusFirst=i:this.focusFirst=null,this.focusFirst?this.focusFirst.focus():Yt.focusFirstDescendant(this.dialogNode),this.lastFocus=document.activeElement,ta=function(e){n.trapFocus(e)},this.addListeners()},na.Dialog.prototype.addListeners=function(){document.addEventListener("focus",ta,!0)},na.Dialog.prototype.removeListeners=function(){document.removeEventListener("focus",ta,!0)},na.Dialog.prototype.closeDialog=function(){var e=this;this.removeListeners(),this.focusAfterClosed&&setTimeout(function(){e.focusAfterClosed.focus()})},na.Dialog.prototype.trapFocus=function(e){Yt.IgnoreUtilFocusChanges||(this.dialogNode.contains(e.target)?this.lastFocus=e.target:(Yt.focusFirstDescendant(this.dialogNode),this.lastFocus===document.activeElement&&Yt.focusLastDescendant(this.dialogNode),this.lastFocus=document.activeElement))};var ra=na.Dialog,sa=void 0,aa={success:"success",info:"info",warning:"warning",error:"error"},oa=r({mixins:[Ne,Y],props:{modal:{default:!0},lockScroll:{default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{default:!0},closeOnPressEscape:{default:!0},closeOnHashChange:{default:!0},center:{default:!1,type:Boolean},roundButton:{default:!1,type:Boolean}},components:{ElInput:re,ElButton:Tt},computed:{icon:function(){var e=this.type;return this.iconClass||(e&&aa[e]?"el-icon-"+aa[e]:"")},confirmButtonClasses:function(){return"el-button--primary "+this.confirmButtonClass},cancelButtonClasses:function(){return""+this.cancelButtonClass}},methods:{getSafeClose:function(){var e=this,t=this.uid;return function(){e.$nextTick(function(){t===e.uid&&e.doClose()})}},doClose:function(){var e=this;this.visible&&(this.visible=!1,this._closing=!0,this.onClose&&this.onClose(),sa.closeDialog(),this.lockScroll&&setTimeout(this.restoreBodyStyle,200),this.opened=!1,this.doAfterClose(),setTimeout(function(){e.action&&e.callback(e.action,e)}))},handleWrapperClick:function(){this.closeOnClickModal&&this.handleAction(this.distinguishCancelAndClose?"close":"cancel")},handleInputEnter:function(){if("textarea"!==this.inputType)return this.handleAction("confirm")},handleAction:function(e){("prompt"!==this.$type||"confirm"!==e||this.validate())&&(this.action=e,"function"==typeof this.beforeClose?(this.close=this.getSafeClose(),this.beforeClose(e,this,this.close)):this.doClose())},validate:function(){if("prompt"===this.$type){var e=this.inputPattern;if(e&&!e.test(this.inputValue||""))return this.editorErrorMessage=this.inputErrorMessage||j("el.messagebox.error"),me(this.getInputElement(),"invalid"),!1;var t=this.inputValidator;if("function"==typeof t){var i=t(this.inputValue);if(!1===i)return this.editorErrorMessage=this.inputErrorMessage||j("el.messagebox.error"),me(this.getInputElement(),"invalid"),!1;if("string"==typeof i)return this.editorErrorMessage=i,me(this.getInputElement(),"invalid"),!1}}return this.editorErrorMessage="",ve(this.getInputElement(),"invalid"),!0},getFirstFocus:function(){var e=this.$el.querySelector(".el-message-box__btns .el-button"),t=this.$el.querySelector(".el-message-box__btns .el-message-box__title");return e||t},getInputElement:function(){var e=this.$refs.input.$refs;return e.input||e.textarea},handleClose:function(){this.handleAction("close")}},watch:{inputValue:{immediate:!0,handler:function(e){var t=this;this.$nextTick(function(i){"prompt"===t.$type&&null!==e&&t.validate()})}},visible:function(e){var t=this;e&&(this.uid++,"alert"!==this.$type&&"confirm"!==this.$type||this.$nextTick(function(){t.$refs.confirm.$el.focus()}),this.focusAfterClosed=document.activeElement,sa=new ra(this.$el,this.focusAfterClosed,this.getFirstFocus())),"prompt"===this.$type&&(e?setTimeout(function(){t.$refs.input&&t.$refs.input.$el&&t.getInputElement().focus()},500):(this.editorErrorMessage="",ve(this.getInputElement(),"invalid")))}},mounted:function(){var e=this;this.$nextTick(function(){e.closeOnHashChange&&window.addEventListener("hashchange",e.close)})},beforeDestroy:function(){this.closeOnHashChange&&window.removeEventListener("hashchange",this.close),setTimeout(function(){sa.closeDialog()})},data:function(){return{uid:1,title:void 0,message:"",type:"",iconClass:"",customClass:"",showInput:!1,inputValue:null,inputPlaceholder:"",inputType:"text",inputPattern:null,inputValidator:null,inputErrorMessage:"",showConfirmButton:!0,showCancelButton:!1,action:"",confirmButtonText:"",cancelButtonText:"",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonClass:"",confirmButtonDisabled:!1,cancelButtonClass:"",editorErrorMessage:null,callback:null,dangerouslyUseHTMLString:!1,focusAfterClosed:null,isOnComposition:!1,distinguishCancelAndClose:!1}}},ea,[],!1,null,null,null);oa.options.__file="packages/message-box/src/main.vue";var la=oa.exports,ua="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function ca(e){return null!==e&&"object"===(void 0===e?"undefined":ua(e))&&C(e,"componentOptions")}var ha="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},da={title:null,message:"",type:"",iconClass:"",showInput:!1,showClose:!0,modalFade:!0,lockScroll:!0,closeOnClickModal:!0,closeOnPressEscape:!0,closeOnHashChange:!0,inputValue:null,inputPlaceholder:"",inputType:"text",inputPattern:null,inputValidator:null,inputErrorMessage:"",showConfirmButton:!0,showCancelButton:!1,confirmButtonPosition:"right",confirmButtonHighlight:!1,cancelButtonHighlight:!1,confirmButtonText:"",cancelButtonText:"",confirmButtonClass:"",cancelButtonClass:"",customClass:"",beforeClose:null,dangerouslyUseHTMLString:!1,center:!1,roundButton:!1,distinguishCancelAndClose:!1},pa=h.a.extend(la),fa=void 0,ma=void 0,va=[],ga=function(e){if(fa){var t=fa.callback;"function"==typeof t&&(ma.showInput?t(ma.inputValue,e):t(e)),fa.resolve&&("confirm"===e?ma.showInput?fa.resolve({value:ma.inputValue,action:e}):fa.resolve(e):!fa.reject||"cancel"!==e&&"close"!==e||fa.reject(e))}},ba=function e(){if(ma||((ma=new pa({el:document.createElement("div")})).callback=ga),ma.action="",(!ma.visible||ma.closeTimer)&&va.length>0){var t=(fa=va.shift()).options;for(var i in t)t.hasOwnProperty(i)&&(ma[i]=t[i]);void 0===t.callback&&(ma.callback=ga);var n=ma.callback;ma.callback=function(t,i){n(t,i),e()},ca(ma.message)?(ma.$slots.default=[ma.message],ma.message=null):delete ma.$slots.default,["modal","showClose","closeOnClickModal","closeOnPressEscape","closeOnHashChange"].forEach(function(e){void 0===ma[e]&&(ma[e]=!0)}),document.body.appendChild(ma.$el),h.a.nextTick(function(){ma.visible=!0})}},ya=function e(t,i){if(!h.a.prototype.$isServer){if("string"==typeof t||ca(t)?(t={message:t},"string"==typeof arguments[1]&&(t.title=arguments[1])):t.callback&&!i&&(i=t.callback),"undefined"!=typeof Promise)return new Promise(function(n,r){va.push({options:Q({},da,e.defaults,t),callback:i,resolve:n,reject:r}),ba()});va.push({options:Q({},da,e.defaults,t),callback:i}),ba()}};ya.setDefaults=function(e){ya.defaults=e},ya.alert=function(e,t,i){return"object"===(void 0===t?"undefined":ha(t))?(i=t,t=""):void 0===t&&(t=""),ya(Q({title:t,message:e,$type:"alert",closeOnPressEscape:!1,closeOnClickModal:!1},i))},ya.confirm=function(e,t,i){return"object"===(void 0===t?"undefined":ha(t))?(i=t,t=""):void 0===t&&(t=""),ya(Q({title:t,message:e,$type:"confirm",showCancelButton:!0},i))},ya.prompt=function(e,t,i){return"object"===(void 0===t?"undefined":ha(t))?(i=t,t=""):void 0===t&&(t=""),ya(Q({title:t,message:e,showCancelButton:!0,showInput:!0,$type:"prompt"},i))},ya.close=function(){ma.doClose(),ma.visible=!1,va=[],fa=null};var wa=ya,_a=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-breadcrumb",attrs:{"aria-label":"Breadcrumb",role:"navigation"}},[this._t("default")],2)};_a._withStripped=!0;var xa=r({name:"ElBreadcrumb",props:{separator:{type:String,default:"/"},separatorClass:{type:String,default:""}},provide:function(){return{elBreadcrumb:this}},mounted:function(){var e=this.$el.querySelectorAll(".el-breadcrumb__item");e.length&&e[e.length-1].setAttribute("aria-current","page")}},_a,[],!1,null,null,null);xa.options.__file="packages/breadcrumb/src/breadcrumb.vue";var Ca=xa.exports;Ca.install=function(e){e.component(Ca.name,Ca)};var ka=Ca,Sa=function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"el-breadcrumb__item"},[t("span",{ref:"link",class:["el-breadcrumb__inner",this.to?"is-link":""],attrs:{role:"link"}},[this._t("default")],2),this.separatorClass?t("i",{staticClass:"el-breadcrumb__separator",class:this.separatorClass}):t("span",{staticClass:"el-breadcrumb__separator",attrs:{role:"presentation"}},[this._v(this._s(this.separator))])])};Sa._withStripped=!0;var Da=r({name:"ElBreadcrumbItem",props:{to:{},replace:Boolean},data:function(){return{separator:"",separatorClass:""}},inject:["elBreadcrumb"],mounted:function(){var e=this;this.separator=this.elBreadcrumb.separator,this.separatorClass=this.elBreadcrumb.separatorClass;var t=this.$refs.link;t.setAttribute("role","link"),t.addEventListener("click",function(t){var i=e.to,n=e.$router;i&&n&&(e.replace?n.replace(i):n.push(i))})}},Sa,[],!1,null,null,null);Da.options.__file="packages/breadcrumb/src/breadcrumb-item.vue";var $a=Da.exports;$a.install=function(e){e.component($a.name,$a)};var Ea=$a,Ta=function(){var e=this.$createElement;return(this._self._c||e)("form",{staticClass:"el-form",class:[this.labelPosition?"el-form--label-"+this.labelPosition:"",{"el-form--inline":this.inline}]},[this._t("default")],2)};Ta._withStripped=!0;var Ma=r({name:"ElForm",componentName:"ElForm",provide:function(){return{elForm:this}},props:{model:Object,rules:Object,labelPosition:String,labelWidth:String,labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},size:String,disabled:Boolean,validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1}},watch:{rules:function(){this.fields.forEach(function(e){e.removeValidateEvents(),e.addValidateEvents()}),this.validateOnRuleChange&&this.validate(function(){})}},computed:{autoLabelWidth:function(){if(!this.potentialLabelWidthArr.length)return 0;var e=Math.max.apply(Math,this.potentialLabelWidthArr);return e?e+"px":""}},data:function(){return{fields:[],potentialLabelWidthArr:[]}},created:function(){var e=this;this.$on("el.form.addField",function(t){t&&e.fields.push(t)}),this.$on("el.form.removeField",function(t){t.prop&&e.fields.splice(e.fields.indexOf(t),1)})},methods:{resetFields:function(){this.model?this.fields.forEach(function(e){e.resetField()}):console.warn("[Element Warn][Form]model is required for resetFields to work.")},clearValidate:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];(e.length?"string"==typeof e?this.fields.filter(function(t){return e===t.prop}):this.fields.filter(function(t){return e.indexOf(t.prop)>-1}):this.fields).forEach(function(e){e.clearValidate()})},validate:function(e){var t=this;if(this.model){var i=void 0;"function"!=typeof e&&window.Promise&&(i=new window.Promise(function(t,i){e=function(e){e?t(e):i(e)}}));var n=!0,r=0;0===this.fields.length&&e&&e(!0);var s={};return this.fields.forEach(function(i){i.validate("",function(i,a){i&&(n=!1),s=Q({},s,a),"function"==typeof e&&++r===t.fields.length&&e(n,s)})}),i||void 0}console.warn("[Element Warn][Form]model is required for validate to work!")},validateField:function(e,t){e=[].concat(e);var i=this.fields.filter(function(t){return-1!==e.indexOf(t.prop)});i.length?i.forEach(function(e){e.validate("",t)}):console.warn("[Element Warn]please pass correct props!")},getLabelWidthIndex:function(e){var t=this.potentialLabelWidthArr.indexOf(e);if(-1===t)throw new Error("[ElementForm]unpected width ",e);return t},registerLabelWidth:function(e,t){if(e&&t){var i=this.getLabelWidthIndex(t);this.potentialLabelWidthArr.splice(i,1,e)}else e&&this.potentialLabelWidthArr.push(e)},deregisterLabelWidth:function(e){var t=this.getLabelWidthIndex(e);this.potentialLabelWidthArr.splice(t,1)}}},Ta,[],!1,null,null,null);Ma.options.__file="packages/form/src/form.vue";var Na=Ma.exports;Na.install=function(e){e.component(Na.name,Na)};var Pa=Na,Oa=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-form-item",class:[{"el-form-item--feedback":e.elForm&&e.elForm.statusIcon,"is-error":"error"===e.validateState,"is-validating":"validating"===e.validateState,"is-success":"success"===e.validateState,"is-required":e.isRequired||e.required,"is-no-asterisk":e.elForm&&e.elForm.hideRequiredAsterisk},e.sizeClass?"el-form-item--"+e.sizeClass:""]},[i("label-wrap",{attrs:{"is-auto-width":e.labelStyle&&"auto"===e.labelStyle.width,"update-all":"auto"===e.form.labelWidth}},[e.label||e.$slots.label?i("label",{staticClass:"el-form-item__label",style:e.labelStyle,attrs:{for:e.labelFor}},[e._t("label",[e._v(e._s(e.label+e.form.labelSuffix))])],2):e._e()]),i("div",{staticClass:"el-form-item__content",style:e.contentStyle},[e._t("default"),i("transition",{attrs:{name:"el-zoom-in-top"}},["error"===e.validateState&&e.showMessage&&e.form.showMessage?e._t("error",[i("div",{staticClass:"el-form-item__error",class:{"el-form-item__error--inline":"boolean"==typeof e.inlineMessage?e.inlineMessage:e.elForm&&e.elForm.inlineMessage||!1}},[e._v("\n "+e._s(e.validateMessage)+"\n ")])],{error:e.validateMessage}):e._e()],2)],2)],1)};Oa._withStripped=!0;var Ia=i(8),Aa=i.n(Ia),Fa=i(3),La=i.n(Fa),Va=/%[sdj%]/g,Ba=function(){};function za(){for(var e=arguments.length,t=Array(e),i=0;i<e;i++)t[i]=arguments[i];var n=1,r=t[0],s=t.length;if("function"==typeof r)return r.apply(null,t.slice(1));if("string"==typeof r){for(var a=String(r).replace(Va,function(e){if("%%"===e)return"%";if(n>=s)return e;switch(e){case"%s":return String(t[n++]);case"%d":return Number(t[n++]);case"%j":try{return JSON.stringify(t[n++])}catch(e){return"[Circular]"}break;default:return e}}),o=t[n];n<s;o=t[++n])a+=" "+o;return a}return r}function Ha(e,t){return null==e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function Ra(e,t,i){var n=0,r=e.length;!function s(a){if(a&&a.length)i(a);else{var o=n;n+=1,o<r?t(e[o],s):i([])}}([])}function Wa(e,t,i,n){if(t.first)return Ra(function(e){var t=[];return Object.keys(e).forEach(function(i){t.push.apply(t,e[i])}),t}(e),i,n);var r=t.firstFields||[];!0===r&&(r=Object.keys(e));var s=Object.keys(e),a=s.length,o=0,l=[],u=function(e){l.push.apply(l,e),++o===a&&n(l)};s.forEach(function(t){var n=e[t];-1!==r.indexOf(t)?Ra(n,i,u):function(e,t,i){var n=[],r=0,s=e.length;function a(e){n.push.apply(n,e),++r===s&&i(n)}e.forEach(function(e){t(e,a)})}(n,i,u)})}function ja(e){return function(t){return t&&t.message?(t.field=t.field||e.fullField,t):{message:t,field:t.field||e.fullField}}}function qa(e,t){if(t)for(var i in t)if(t.hasOwnProperty(i)){var n=t[i];"object"===(void 0===n?"undefined":La()(n))&&"object"===La()(e[i])?e[i]=Aa()({},e[i],n):e[i]=n}return e}var Ya=function(e,t,i,n,r,s){!e.required||i.hasOwnProperty(e.field)&&!Ha(t,s||e.type)||n.push(za(r.messages.required,e.fullField))};var Ka=function(e,t,i,n,r){(/^\s+$/.test(t)||""===t)&&n.push(za(r.messages.whitespace,e.fullField))},Ga={email:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},Ua={integer:function(e){return Ua.number(e)&&parseInt(e,10)===e},float:function(e){return Ua.number(e)&&!Ua.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(void 0===e?"undefined":La()(e))&&!Ua.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&!!e.match(Ga.email)&&e.length<255},url:function(e){return"string"==typeof e&&!!e.match(Ga.url)},hex:function(e){return"string"==typeof e&&!!e.match(Ga.hex)}};var Xa=function(e,t,i,n,r){if(e.required&&void 0===t)Ya(e,t,i,n,r);else{var s=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(s)>-1?Ua[s](t)||n.push(za(r.messages.types[s],e.fullField,e.type)):s&&(void 0===t?"undefined":La()(t))!==e.type&&n.push(za(r.messages.types[s],e.fullField,e.type))}};var Za="enum";var Ja={required:Ya,whitespace:Ka,type:Xa,range:function(e,t,i,n,r){var s="number"==typeof e.len,a="number"==typeof e.min,o="number"==typeof e.max,l=t,u=null,c="number"==typeof t,h="string"==typeof t,d=Array.isArray(t);if(c?u="number":h?u="string":d&&(u="array"),!u)return!1;d&&(l=t.length),h&&(l=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),s?l!==e.len&&n.push(za(r.messages[u].len,e.fullField,e.len)):a&&!o&&l<e.min?n.push(za(r.messages[u].min,e.fullField,e.min)):o&&!a&&l>e.max?n.push(za(r.messages[u].max,e.fullField,e.max)):a&&o&&(l<e.min||l>e.max)&&n.push(za(r.messages[u].range,e.fullField,e.min,e.max))},enum:function(e,t,i,n,r){e[Za]=Array.isArray(e[Za])?e[Za]:[],-1===e[Za].indexOf(t)&&n.push(za(r.messages[Za],e.fullField,e[Za].join(", ")))},pattern:function(e,t,i,n,r){e.pattern&&(e.pattern instanceof RegExp?(e.pattern.lastIndex=0,e.pattern.test(t)||n.push(za(r.messages.pattern.mismatch,e.fullField,t,e.pattern))):"string"==typeof e.pattern&&(new RegExp(e.pattern).test(t)||n.push(za(r.messages.pattern.mismatch,e.fullField,t,e.pattern))))}};var Qa="enum";var eo=function(e,t,i,n,r){var s=e.type,a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ha(t,s)&&!e.required)return i();Ja.required(e,t,n,a,r,s),Ha(t,s)||Ja.type(e,t,n,a,r)}i(a)},to={string:function(e,t,i,n,r){var s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ha(t,"string")&&!e.required)return i();Ja.required(e,t,n,s,r,"string"),Ha(t,"string")||(Ja.type(e,t,n,s,r),Ja.range(e,t,n,s,r),Ja.pattern(e,t,n,s,r),!0===e.whitespace&&Ja.whitespace(e,t,n,s,r))}i(s)},method:function(e,t,i,n,r){var s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ha(t)&&!e.required)return i();Ja.required(e,t,n,s,r),void 0!==t&&Ja.type(e,t,n,s,r)}i(s)},number:function(e,t,i,n,r){var s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ha(t)&&!e.required)return i();Ja.required(e,t,n,s,r),void 0!==t&&(Ja.type(e,t,n,s,r),Ja.range(e,t,n,s,r))}i(s)},boolean:function(e,t,i,n,r){var s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ha(t)&&!e.required)return i();Ja.required(e,t,n,s,r),void 0!==t&&Ja.type(e,t,n,s,r)}i(s)},regexp:function(e,t,i,n,r){var s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ha(t)&&!e.required)return i();Ja.required(e,t,n,s,r),Ha(t)||Ja.type(e,t,n,s,r)}i(s)},integer:function(e,t,i,n,r){var s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ha(t)&&!e.required)return i();Ja.required(e,t,n,s,r),void 0!==t&&(Ja.type(e,t,n,s,r),Ja.range(e,t,n,s,r))}i(s)},float:function(e,t,i,n,r){var s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ha(t)&&!e.required)return i();Ja.required(e,t,n,s,r),void 0!==t&&(Ja.type(e,t,n,s,r),Ja.range(e,t,n,s,r))}i(s)},array:function(e,t,i,n,r){var s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ha(t,"array")&&!e.required)return i();Ja.required(e,t,n,s,r,"array"),Ha(t,"array")||(Ja.type(e,t,n,s,r),Ja.range(e,t,n,s,r))}i(s)},object:function(e,t,i,n,r){var s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ha(t)&&!e.required)return i();Ja.required(e,t,n,s,r),void 0!==t&&Ja.type(e,t,n,s,r)}i(s)},enum:function(e,t,i,n,r){var s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ha(t)&&!e.required)return i();Ja.required(e,t,n,s,r),t&&Ja[Qa](e,t,n,s,r)}i(s)},pattern:function(e,t,i,n,r){var s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ha(t,"string")&&!e.required)return i();Ja.required(e,t,n,s,r),Ha(t,"string")||Ja.pattern(e,t,n,s,r)}i(s)},date:function(e,t,i,n,r){var s=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(Ha(t)&&!e.required)return i();if(Ja.required(e,t,n,s,r),!Ha(t)){var a=void 0;a="number"==typeof t?new Date(t):t,Ja.type(e,a,n,s,r),a&&Ja.range(e,a.getTime(),n,s,r)}}i(s)},url:eo,hex:eo,email:eo,required:function(e,t,i,n,r){var s=[],a=Array.isArray(t)?"array":void 0===t?"undefined":La()(t);Ja.required(e,t,n,s,r,a),i(s)}};function io(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var no=io();function ro(e){this.rules=null,this._messages=no,this.define(e)}ro.prototype={messages:function(e){return e&&(this._messages=qa(io(),e)),this._messages},define:function(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!==(void 0===e?"undefined":La()(e))||Array.isArray(e))throw new Error("Rules must be an object");this.rules={};var t=void 0,i=void 0;for(t in e)e.hasOwnProperty(t)&&(i=e[t],this.rules[t]=Array.isArray(i)?i:[i])},validate:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments[2],r=e,s=i,a=n;if("function"==typeof s&&(a=s,s={}),this.rules&&0!==Object.keys(this.rules).length){if(s.messages){var o=this.messages();o===no&&(o=io()),qa(o,s.messages),s.messages=o}else s.messages=this.messages();var l=void 0,u=void 0,c={};(s.keys||Object.keys(this.rules)).forEach(function(i){l=t.rules[i],u=r[i],l.forEach(function(n){var s=n;"function"==typeof s.transform&&(r===e&&(r=Aa()({},r)),u=r[i]=s.transform(u)),(s="function"==typeof s?{validator:s}:Aa()({},s)).validator=t.getValidationMethod(s),s.field=i,s.fullField=s.fullField||i,s.type=t.getType(s),s.validator&&(c[i]=c[i]||[],c[i].push({rule:s,value:u,source:r,field:i}))})});var h={};Wa(c,s,function(e,t){var i=e.rule,n=!("object"!==i.type&&"array"!==i.type||"object"!==La()(i.fields)&&"object"!==La()(i.defaultField));function r(e,t){return Aa()({},t,{fullField:i.fullField+"."+e})}function a(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(Array.isArray(a)||(a=[a]),a.length&&Ba("async-validator:",a),a.length&&i.message&&(a=[].concat(i.message)),a=a.map(ja(i)),s.first&&a.length)return h[i.field]=1,t(a);if(n){if(i.required&&!e.value)return a=i.message?[].concat(i.message).map(ja(i)):s.error?[s.error(i,za(s.messages.required,i.field))]:[],t(a);var o={};if(i.defaultField)for(var l in e.value)e.value.hasOwnProperty(l)&&(o[l]=i.defaultField);for(var u in o=Aa()({},o,e.rule.fields))if(o.hasOwnProperty(u)){var c=Array.isArray(o[u])?o[u]:[o[u]];o[u]=c.map(r.bind(null,u))}var d=new ro(o);d.messages(s.messages),e.rule.options&&(e.rule.options.messages=s.messages,e.rule.options.error=s.error),d.validate(e.value,e.rule.options||s,function(e){t(e&&e.length?a.concat(e):e)})}else t(a)}n=n&&(i.required||!i.required&&e.value),i.field=e.field;var o=i.validator(i,e.value,a,e.source,s);o&&o.then&&o.then(function(){return a()},function(e){return a(e)})},function(e){!function(e){var t,i=void 0,n=void 0,r=[],s={};for(i=0;i<e.length;i++)t=e[i],Array.isArray(t)?r=r.concat.apply(r,t):r.push(t);if(r.length)for(i=0;i<r.length;i++)s[n=r[i].field]=s[n]||[],s[n].push(r[i]);else r=null,s=null;a(r,s)}(e)})}else a&&a()},getType:function(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!to.hasOwnProperty(e.type))throw new Error(za("Unknown rule type %s",e.type));return e.type||"string"},getValidationMethod:function(e){if("function"==typeof e.validator)return e.validator;var t=Object.keys(e),i=t.indexOf("message");return-1!==i&&t.splice(i,1),1===t.length&&"required"===t[0]?to.required:to[this.getType(e)]||!1}},ro.register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");to[e]=t},ro.messages=no;var so=ro,ao=r({props:{isAutoWidth:Boolean,updateAll:Boolean},inject:["elForm","elFormItem"],render:function(){var e=arguments[0],t=this.$slots.default;if(!t)return null;if(this.isAutoWidth){var i=this.elForm.autoLabelWidth,n={};if(i&&"auto"!==i){var r=parseInt(i,10)-this.computedWidth;r&&(n.marginLeft=r+"px")}return e("div",{class:"el-form-item__label-wrap",style:n},[t])}return t[0]},methods:{getLabelWidth:function(){if(this.$el&&this.$el.firstElementChild){var e=window.getComputedStyle(this.$el.firstElementChild).width;return Math.ceil(parseFloat(e))}return 0},updateLabelWidth:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"update";this.$slots.default&&this.isAutoWidth&&this.$el.firstElementChild&&("update"===e?this.computedWidth=this.getLabelWidth():"remove"===e&&this.elForm.deregisterLabelWidth(this.computedWidth))}},watch:{computedWidth:function(e,t){this.updateAll&&(this.elForm.registerLabelWidth(e,t),this.elFormItem.updateComputedLabelWidth(e))}},data:function(){return{computedWidth:0}},mounted:function(){this.updateLabelWidth("update")},updated:function(){this.updateLabelWidth("update")},beforeDestroy:function(){this.updateLabelWidth("remove")}},void 0,void 0,!1,null,null,null);ao.options.__file="packages/form/src/label-wrap.vue";var oo=ao.exports,lo=r({name:"ElFormItem",componentName:"ElFormItem",mixins:[l],provide:function(){return{elFormItem:this}},inject:["elForm"],props:{label:String,labelWidth:String,prop:String,required:{type:Boolean,default:void 0},rules:[Object,Array],error:String,validateStatus:String,for:String,inlineMessage:{type:[String,Boolean],default:""},showMessage:{type:Boolean,default:!0},size:String},components:{LabelWrap:oo},watch:{error:{immediate:!0,handler:function(e){this.validateMessage=e,this.validateState=e?"error":""}},validateStatus:function(e){this.validateState=e}},computed:{labelFor:function(){return this.for||this.prop},labelStyle:function(){var e={};if("top"===this.form.labelPosition)return e;var t=this.labelWidth||this.form.labelWidth;return t&&(e.width=t),e},contentStyle:function(){var e={},t=this.label;if("top"===this.form.labelPosition||this.form.inline)return e;if(!t&&!this.labelWidth&&this.isNested)return e;var i=this.labelWidth||this.form.labelWidth;return"auto"===i?"auto"===this.labelWidth?e.marginLeft=this.computedLabelWidth:"auto"===this.form.labelWidth&&(e.marginLeft=this.elForm.autoLabelWidth):e.marginLeft=i,e},form:function(){for(var e=this.$parent,t=e.$options.componentName;"ElForm"!==t;)"ElFormItem"===t&&(this.isNested=!0),t=(e=e.$parent).$options.componentName;return e},fieldValue:function(){var e=this.form.model;if(e&&this.prop){var t=this.prop;return-1!==t.indexOf(":")&&(t=t.replace(/:/,".")),D(e,t,!0).v}},isRequired:function(){var e=this.getRules(),t=!1;return e&&e.length&&e.every(function(e){return!e.required||(t=!0,!1)}),t},_formSize:function(){return this.elForm.size},elFormItemSize:function(){return this.size||this._formSize},sizeClass:function(){return this.elFormItemSize||(this.$ELEMENT||{}).size}},data:function(){return{validateState:"",validateMessage:"",validateDisabled:!1,validator:{},isNested:!1,computedLabelWidth:""}},methods:{validate:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:x;this.validateDisabled=!1;var n=this.getFilteredRule(e);if((!n||0===n.length)&&void 0===this.required)return i(),!0;this.validateState="validating";var r={};n&&n.length>0&&n.forEach(function(e){delete e.trigger}),r[this.prop]=n;var s=new so(r),a={};a[this.prop]=this.fieldValue,s.validate(a,{firstFields:!0},function(e,n){t.validateState=e?"error":"success",t.validateMessage=e?e[0].message:"",i(t.validateMessage,n),t.elForm&&t.elForm.$emit("validate",t.prop,!e,t.validateMessage||null)})},clearValidate:function(){this.validateState="",this.validateMessage="",this.validateDisabled=!1},resetField:function(){var e=this;this.validateState="",this.validateMessage="";var t=this.form.model,i=this.fieldValue,n=this.prop;-1!==n.indexOf(":")&&(n=n.replace(/:/,"."));var r=D(t,n,!0);this.validateDisabled=!0,Array.isArray(i)?r.o[r.k]=[].concat(this.initialValue):r.o[r.k]=this.initialValue,this.$nextTick(function(){e.validateDisabled=!1}),this.broadcast("ElTimeSelect","fieldReset",this.initialValue)},getRules:function(){var e=this.form.rules,t=this.rules,i=void 0!==this.required?{required:!!this.required}:[],n=D(e,this.prop||"");return e=e?n.o[this.prop||""]||n.v:[],[].concat(t||e||[]).concat(i)},getFilteredRule:function(e){return this.getRules().filter(function(t){return!t.trigger||""===e||(Array.isArray(t.trigger)?t.trigger.indexOf(e)>-1:t.trigger===e)}).map(function(e){return Q({},e)})},onFieldBlur:function(){this.validate("blur")},onFieldChange:function(){this.validateDisabled?this.validateDisabled=!1:this.validate("change")},updateComputedLabelWidth:function(e){this.computedLabelWidth=e?e+"px":""},addValidateEvents:function(){(this.getRules().length||void 0!==this.required)&&(this.$on("el.form.blur",this.onFieldBlur),this.$on("el.form.change",this.onFieldChange))},removeValidateEvents:function(){this.$off()}},mounted:function(){if(this.prop){this.dispatch("ElForm","el.form.addField",[this]);var e=this.fieldValue;Array.isArray(e)&&(e=[].concat(e)),Object.defineProperty(this,"initialValue",{value:e}),this.addValidateEvents()}},beforeDestroy:function(){this.dispatch("ElForm","el.form.removeField",[this])}},Oa,[],!1,null,null,null);lo.options.__file="packages/form/src/form-item.vue";var uo=lo.exports;uo.install=function(e){e.component(uo.name,uo)};var co=uo,ho=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-tabs__active-bar",class:"is-"+this.rootTabs.tabPosition,style:this.barStyle})};ho._withStripped=!0;var po=r({name:"TabBar",props:{tabs:Array},inject:["rootTabs"],computed:{barStyle:{get:function(){var e=this,t={},i=0,n=0,r=-1!==["top","bottom"].indexOf(this.rootTabs.tabPosition)?"width":"height",s="width"===r?"x":"y",a=function(e){return e.toLowerCase().replace(/( |^)[a-z]/g,function(e){return e.toUpperCase()})};this.tabs.every(function(t,s){var o=M(e.$parent.$refs.tabs||[],function(e){return e.id.replace("tab-","")===t.paneName});if(!o)return!1;if(t.active){n=o["client"+a(r)];var l=window.getComputedStyle(o);return"width"===r&&e.tabs.length>1&&(n-=parseFloat(l.paddingLeft)+parseFloat(l.paddingRight)),"width"===r&&(i+=parseFloat(l.paddingLeft)),!1}return i+=o["client"+a(r)],!0});var o="translate"+a(s)+"("+i+"px)";return t[r]=n+"px",t.transform=o,t.msTransform=o,t.webkitTransform=o,t}}}},ho,[],!1,null,null,null);po.options.__file="packages/tabs/src/tab-bar.vue";var fo=po.exports;function mo(){}var vo=function(e){return e.toLowerCase().replace(/( |^)[a-z]/g,function(e){return e.toUpperCase()})},go=r({name:"TabNav",components:{TabBar:fo},inject:["rootTabs"],props:{panes:Array,currentName:String,editable:Boolean,onTabClick:{type:Function,default:mo},onTabRemove:{type:Function,default:mo},type:String,stretch:Boolean},data:function(){return{scrollable:!1,navOffset:0,isFocus:!1,focusable:!0}},computed:{navStyle:function(){return{transform:"translate"+(-1!==["top","bottom"].indexOf(this.rootTabs.tabPosition)?"X":"Y")+"(-"+this.navOffset+"px)"}},sizeName:function(){return-1!==["top","bottom"].indexOf(this.rootTabs.tabPosition)?"width":"height"}},methods:{scrollPrev:function(){var e=this.$refs.navScroll["offset"+vo(this.sizeName)],t=this.navOffset;if(t){var i=t>e?t-e:0;this.navOffset=i}},scrollNext:function(){var e=this.$refs.nav["offset"+vo(this.sizeName)],t=this.$refs.navScroll["offset"+vo(this.sizeName)],i=this.navOffset;if(!(e-i<=t)){var n=e-i>2*t?i+t:e-t;this.navOffset=n}},scrollToActiveTab:function(){if(this.scrollable){var e=this.$refs.nav,t=this.$el.querySelector(".is-active");if(t){var i=this.$refs.navScroll,n=-1!==["top","bottom"].indexOf(this.rootTabs.tabPosition),r=t.getBoundingClientRect(),s=i.getBoundingClientRect(),a=n?e.offsetWidth-s.width:e.offsetHeight-s.height,o=this.navOffset,l=o;n?(r.left<s.left&&(l=o-(s.left-r.left)),r.right>s.right&&(l=o+r.right-s.right)):(r.top<s.top&&(l=o-(s.top-r.top)),r.bottom>s.bottom&&(l=o+(r.bottom-s.bottom))),l=Math.max(l,0),this.navOffset=Math.min(l,a)}}},update:function(){if(this.$refs.nav){var e=this.sizeName,t=this.$refs.nav["offset"+vo(e)],i=this.$refs.navScroll["offset"+vo(e)],n=this.navOffset;if(i<t){var r=this.navOffset;this.scrollable=this.scrollable||{},this.scrollable.prev=r,this.scrollable.next=r+i<t,t-r<i&&(this.navOffset=t-i)}else this.scrollable=!1,n>0&&(this.navOffset=0)}},changeTab:function(e){var t=e.keyCode,i=void 0,n=void 0,r=void 0;-1!==[37,38,39,40].indexOf(t)&&(r=e.currentTarget.querySelectorAll("[role=tab]"),n=Array.prototype.indexOf.call(r,e.target),r[i=37===t||38===t?0===n?r.length-1:n-1:n<r.length-1?n+1:0].focus(),r[i].click(),this.setFocus())},setFocus:function(){this.focusable&&(this.isFocus=!0)},removeFocus:function(){this.isFocus=!1},visibilityChangeHandler:function(){var e=this,t=document.visibilityState;"hidden"===t?this.focusable=!1:"visible"===t&&setTimeout(function(){e.focusable=!0},50)},windowBlurHandler:function(){this.focusable=!1},windowFocusHandler:function(){var e=this;setTimeout(function(){e.focusable=!0},50)}},updated:function(){this.update()},render:function(e){var t=this,i=this.type,n=this.panes,r=this.editable,s=this.stretch,a=this.onTabClick,o=this.onTabRemove,l=this.navStyle,u=this.scrollable,c=this.scrollNext,h=this.scrollPrev,d=this.changeTab,p=this.setFocus,f=this.removeFocus,m=u?[e("span",{class:["el-tabs__nav-prev",u.prev?"":"is-disabled"],on:{click:h}},[e("i",{class:"el-icon-arrow-left"})]),e("span",{class:["el-tabs__nav-next",u.next?"":"is-disabled"],on:{click:c}},[e("i",{class:"el-icon-arrow-right"})])]:null,v=this._l(n,function(i,n){var s,l=i.name||i.index||n,u=i.isClosable||r;i.index=""+n;var c=u?e("span",{class:"el-icon-close",on:{click:function(e){o(i,e)}}}):null,h=i.$slots.label||i.label,d=i.active?0:-1;return e("div",{class:(s={"el-tabs__item":!0},s["is-"+t.rootTabs.tabPosition]=!0,s["is-active"]=i.active,s["is-disabled"]=i.disabled,s["is-closable"]=u,s["is-focus"]=t.isFocus,s),attrs:{id:"tab-"+l,"aria-controls":"pane-"+l,role:"tab","aria-selected":i.active,tabindex:d},key:"tab-"+l,ref:"tabs",refInFor:!0,on:{focus:function(){p()},blur:function(){f()},click:function(e){f(),a(i,l,e)},keydown:function(e){!u||46!==e.keyCode&&8!==e.keyCode||o(i,e)}}},[h,c])});return e("div",{class:["el-tabs__nav-wrap",u?"is-scrollable":"","is-"+this.rootTabs.tabPosition]},[m,e("div",{class:["el-tabs__nav-scroll"],ref:"navScroll"},[e("div",{class:["el-tabs__nav","is-"+this.rootTabs.tabPosition,s&&-1!==["top","bottom"].indexOf(this.rootTabs.tabPosition)?"is-stretch":""],ref:"nav",style:l,attrs:{role:"tablist"},on:{keydown:d}},[i?null:e("tab-bar",{attrs:{tabs:n}}),v])])])},mounted:function(){var e=this;Ke(this.$el,this.update),document.addEventListener("visibilitychange",this.visibilityChangeHandler),window.addEventListener("blur",this.windowBlurHandler),window.addEventListener("focus",this.windowFocusHandler),setTimeout(function(){e.scrollToActiveTab()},0)},beforeDestroy:function(){this.$el&&this.update&&Ge(this.$el,this.update),document.removeEventListener("visibilitychange",this.visibilityChangeHandler),window.removeEventListener("blur",this.windowBlurHandler),window.removeEventListener("focus",this.windowFocusHandler)}},void 0,void 0,!1,null,null,null);go.options.__file="packages/tabs/src/tab-nav.vue";var bo=r({name:"ElTabs",components:{TabNav:go.exports},props:{type:String,activeName:String,closable:Boolean,addable:Boolean,value:{},editable:Boolean,tabPosition:{type:String,default:"top"},beforeLeave:Function,stretch:Boolean},provide:function(){return{rootTabs:this}},data:function(){return{currentName:this.value||this.activeName,panes:[]}},watch:{activeName:function(e){this.setCurrentName(e)},value:function(e){this.setCurrentName(e)},currentName:function(e){var t=this;this.$refs.nav&&this.$nextTick(function(){t.$refs.nav.$nextTick(function(e){t.$refs.nav.scrollToActiveTab()})})}},methods:{calcPaneInstances:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.$slots.default){var i=this.$slots.default.filter(function(e){return e.tag&&e.componentOptions&&"ElTabPane"===e.componentOptions.Ctor.options.name}).map(function(e){return e.componentInstance}),n=!(i.length===this.panes.length&&i.every(function(t,i){return t===e.panes[i]}));(t||n)&&(this.panes=i)}else 0!==this.panes.length&&(this.panes=[])},handleTabClick:function(e,t,i){e.disabled||(this.setCurrentName(t),this.$emit("tab-click",e,i))},handleTabRemove:function(e,t){e.disabled||(t.stopPropagation(),this.$emit("edit",e.name,"remove"),this.$emit("tab-remove",e.name))},handleTabAdd:function(){this.$emit("edit",null,"add"),this.$emit("tab-add")},setCurrentName:function(e){var t=this,i=function(){t.currentName=e,t.$emit("input",e)};if(this.currentName!==e&&this.beforeLeave){var n=this.beforeLeave(e,this.currentName);n&&n.then?n.then(function(){i(),t.$refs.nav&&t.$refs.nav.removeFocus()},function(){}):!1!==n&&i()}else i()}},render:function(e){var t,i=this.type,n=this.handleTabClick,r=this.handleTabRemove,s=this.handleTabAdd,a=this.currentName,o=this.panes,l=this.editable,u=this.addable,c=this.tabPosition,h=this.stretch,d=l||u?e("span",{class:"el-tabs__new-tab",on:{click:s,keydown:function(e){13===e.keyCode&&s()}},attrs:{tabindex:"0"}},[e("i",{class:"el-icon-plus"})]):null,p=e("div",{class:["el-tabs__header","is-"+c]},[d,e("tab-nav",{props:{currentName:a,onTabClick:n,onTabRemove:r,editable:l,type:i,panes:o,stretch:h},ref:"nav"})]),f=e("div",{class:"el-tabs__content"},[this.$slots.default]);return e("div",{class:(t={"el-tabs":!0,"el-tabs--card":"card"===i},t["el-tabs--"+c]=!0,t["el-tabs--border-card"]="border-card"===i,t)},["bottom"!==c?[p,f]:[f,p]])},created:function(){this.currentName||this.setCurrentName("0"),this.$on("tab-nav-update",this.calcPaneInstances.bind(null,!0))},mounted:function(){this.calcPaneInstances()},updated:function(){this.calcPaneInstances()}},void 0,void 0,!1,null,null,null);bo.options.__file="packages/tabs/src/tabs.vue";var yo=bo.exports;yo.install=function(e){e.component(yo.name,yo)};var wo=yo,_o=function(){var e=this,t=e.$createElement,i=e._self._c||t;return!e.lazy||e.loaded||e.active?i("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}],staticClass:"el-tab-pane",attrs:{role:"tabpanel","aria-hidden":!e.active,id:"pane-"+e.paneName,"aria-labelledby":"tab-"+e.paneName}},[e._t("default")],2):e._e()};_o._withStripped=!0;var xo=r({name:"ElTabPane",componentName:"ElTabPane",props:{label:String,labelContent:Function,name:String,closable:Boolean,disabled:Boolean,lazy:Boolean},data:function(){return{index:null,loaded:!1}},computed:{isClosable:function(){return this.closable||this.$parent.closable},active:function(){var e=this.$parent.currentName===(this.name||this.index);return e&&(this.loaded=!0),e},paneName:function(){return this.name||this.index}},updated:function(){this.$parent.$emit("tab-nav-update")}},_o,[],!1,null,null,null);xo.options.__file="packages/tabs/src/tab-pane.vue";var Co=xo.exports;Co.install=function(e){e.component(Co.name,Co)};var ko=Co,So=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-tree",class:{"el-tree--highlight-current":e.highlightCurrent,"is-dragging":!!e.dragState.draggingNode,"is-drop-not-allow":!e.dragState.allowDrop,"is-drop-inner":"inner"===e.dragState.dropType},attrs:{role:"tree"}},[e._l(e.root.childNodes,function(t){return i("el-tree-node",{key:e.getNodeKey(t),attrs:{node:t,props:e.props,"render-after-expand":e.renderAfterExpand,"show-checkbox":e.showCheckbox,"render-content":e.renderContent},on:{"node-expand":e.handleNodeExpand}})}),e.isEmpty?i("div",{staticClass:"el-tree__empty-block"},[i("span",{staticClass:"el-tree__empty-text"},[e._v(e._s(e.emptyText))])]):e._e(),i("div",{directives:[{name:"show",rawName:"v-show",value:e.dragState.showDropIndicator,expression:"dragState.showDropIndicator"}],ref:"dropIndicator",staticClass:"el-tree__drop-indicator"})],2)};So._withStripped=!0;var Do="$treeNodeId",$o=function(e,t){t&&!t[Do]&&Object.defineProperty(t,Do,{value:e.id,enumerable:!1,configurable:!1,writable:!1})},Eo=function(e,t){return e?t[e]:t[Do]},To=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}();var Mo=function(e){for(var t=!0,i=!0,n=!0,r=0,s=e.length;r<s;r++){var a=e[r];(!0!==a.checked||a.indeterminate)&&(t=!1,a.disabled||(n=!1)),(!1!==a.checked||a.indeterminate)&&(i=!1)}return{all:t,none:i,allWithoutDisable:n,half:!t&&!i}},No=function e(t){if(0!==t.childNodes.length){var i=Mo(t.childNodes),n=i.all,r=i.none,s=i.half;n?(t.checked=!0,t.indeterminate=!1):s?(t.checked=!1,t.indeterminate=!0):r&&(t.checked=!1,t.indeterminate=!1);var a=t.parent;a&&0!==a.level&&(t.store.checkStrictly||e(a))}},Po=function(e,t){var i=e.store.props,n=e.data||{},r=i[t];if("function"==typeof r)return r(n,e);if("string"==typeof r)return n[r];if(void 0===r){var s=n[t];return void 0===s?"":s}},Oo=0,Io=function(){function e(t){for(var i in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.id=Oo++,this.text=null,this.checked=!1,this.indeterminate=!1,this.data=null,this.expanded=!1,this.parent=null,this.visible=!0,this.isCurrent=!1,t)t.hasOwnProperty(i)&&(this[i]=t[i]);this.level=0,this.loaded=!1,this.childNodes=[],this.loading=!1,this.parent&&(this.level=this.parent.level+1);var n=this.store;if(!n)throw new Error("[Node]store is required!");n.registerNode(this);var r=n.props;if(r&&void 0!==r.isLeaf){var s=Po(this,"isLeaf");"boolean"==typeof s&&(this.isLeafByUser=s)}if(!0!==n.lazy&&this.data?(this.setData(this.data),n.defaultExpandAll&&(this.expanded=!0)):this.level>0&&n.lazy&&n.defaultExpandAll&&this.expand(),Array.isArray(this.data)||$o(this,this.data),this.data){var a=n.defaultExpandedKeys,o=n.key;o&&a&&-1!==a.indexOf(this.key)&&this.expand(null,n.autoExpandParent),o&&void 0!==n.currentNodeKey&&this.key===n.currentNodeKey&&(n.currentNode=this,n.currentNode.isCurrent=!0),n.lazy&&n._initDefaultCheckedNode(this),this.updateLeafState()}}return e.prototype.setData=function(e){Array.isArray(e)||$o(this,e),this.data=e,this.childNodes=[];for(var t=void 0,i=0,n=(t=0===this.level&&this.data instanceof Array?this.data:Po(this,"children")||[]).length;i<n;i++)this.insertChild({data:t[i]})},e.prototype.contains=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return function i(n){for(var r=n.childNodes||[],s=!1,a=0,o=r.length;a<o;a++){var l=r[a];if(l===e||t&&i(l)){s=!0;break}}return s}(this)},e.prototype.remove=function(){var e=this.parent;e&&e.removeChild(this)},e.prototype.insertChild=function(t,i,n){if(!t)throw new Error("insertChild error: child is required.");if(!(t instanceof e)){if(!n){var r=this.getChildren(!0);-1===r.indexOf(t.data)&&(void 0===i||i<0?r.push(t.data):r.splice(i,0,t.data))}Q(t,{parent:this,store:this.store}),t=new e(t)}t.level=this.level+1,void 0===i||i<0?this.childNodes.push(t):this.childNodes.splice(i,0,t),this.updateLeafState()},e.prototype.insertBefore=function(e,t){var i=void 0;t&&(i=this.childNodes.indexOf(t)),this.insertChild(e,i)},e.prototype.insertAfter=function(e,t){var i=void 0;t&&-1!==(i=this.childNodes.indexOf(t))&&(i+=1),this.insertChild(e,i)},e.prototype.removeChild=function(e){var t=this.getChildren()||[],i=t.indexOf(e.data);i>-1&&t.splice(i,1);var n=this.childNodes.indexOf(e);n>-1&&(this.store&&this.store.deregisterNode(e),e.parent=null,this.childNodes.splice(n,1)),this.updateLeafState()},e.prototype.removeChildByData=function(e){for(var t=null,i=0;i<this.childNodes.length;i++)if(this.childNodes[i].data===e){t=this.childNodes[i];break}t&&this.removeChild(t)},e.prototype.expand=function(e,t){var i=this,n=function(){if(t)for(var n=i.parent;n.level>0;)n.expanded=!0,n=n.parent;i.expanded=!0,e&&e()};this.shouldLoadData()?this.loadData(function(e){e instanceof Array&&(i.checked?i.setChecked(!0,!0):i.store.checkStrictly||No(i),n())}):n()},e.prototype.doCreateChildren=function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.forEach(function(e){t.insertChild(Q({data:e},i),void 0,!0)})},e.prototype.collapse=function(){this.expanded=!1},e.prototype.shouldLoadData=function(){return!0===this.store.lazy&&this.store.load&&!this.loaded},e.prototype.updateLeafState=function(){if(!0!==this.store.lazy||!0===this.loaded||void 0===this.isLeafByUser){var e=this.childNodes;!this.store.lazy||!0===this.store.lazy&&!0===this.loaded?this.isLeaf=!e||0===e.length:this.isLeaf=!1}else this.isLeaf=this.isLeafByUser},e.prototype.setChecked=function(e,t,i,n){var r=this;if(this.indeterminate="half"===e,this.checked=!0===e,!this.store.checkStrictly){if(!this.shouldLoadData()||this.store.checkDescendants){var s=Mo(this.childNodes),a=s.all,o=s.allWithoutDisable;this.isLeaf||a||!o||(this.checked=!1,e=!1);var l=function(){if(t){for(var i=r.childNodes,s=0,a=i.length;s<a;s++){var o=i[s];n=n||!1!==e;var l=o.disabled?o.checked:n;o.setChecked(l,t,!0,n)}var u=Mo(i),c=u.half,h=u.all;h||(r.checked=h,r.indeterminate=c)}};if(this.shouldLoadData())return void this.loadData(function(){l(),No(r)},{checked:!1!==e});l()}var u=this.parent;u&&0!==u.level&&(i||No(u))}},e.prototype.getChildren=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(0===this.level)return this.data;var t=this.data;if(!t)return null;var i=this.store.props,n="children";return i&&(n=i.children||"children"),void 0===t[n]&&(t[n]=null),e&&!t[n]&&(t[n]=[]),t[n]},e.prototype.updateChildren=function(){var e=this,t=this.getChildren()||[],i=this.childNodes.map(function(e){return e.data}),n={},r=[];t.forEach(function(e,t){var s=e[Do];!!s&&T(i,function(e){return e[Do]===s})>=0?n[s]={index:t,data:e}:r.push({index:t,data:e})}),this.store.lazy||i.forEach(function(t){n[t[Do]]||e.removeChildByData(t)}),r.forEach(function(t){var i=t.index,n=t.data;e.insertChild({data:n},i)}),this.updateLeafState()},e.prototype.loadData=function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!0!==this.store.lazy||!this.store.load||this.loaded||this.loading&&!Object.keys(i).length)e&&e.call(this);else{this.loading=!0;this.store.load(this,function(n){t.loaded=!0,t.loading=!1,t.childNodes=[],t.doCreateChildren(n,i),t.updateLeafState(),e&&e.call(t,n)})}},To(e,[{key:"label",get:function(){return Po(this,"label")}},{key:"key",get:function(){var e=this.store.key;return this.data?this.data[e]:null}},{key:"disabled",get:function(){return Po(this,"disabled")}},{key:"nextSibling",get:function(){var e=this.parent;if(e){var t=e.childNodes.indexOf(this);if(t>-1)return e.childNodes[t+1]}return null}},{key:"previousSibling",get:function(){var e=this.parent;if(e){var t=e.childNodes.indexOf(this);if(t>-1)return t>0?e.childNodes[t-1]:null}return null}}]),e}(),Ao="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};var Fo=function(){function e(t){var i=this;for(var n in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.currentNode=null,this.currentNodeKey=null,t)t.hasOwnProperty(n)&&(this[n]=t[n]);(this.nodesMap={},this.root=new Io({data:this.data,store:this}),this.lazy&&this.load)?(0,this.load)(this.root,function(e){i.root.doCreateChildren(e),i._initDefaultCheckedNodes()}):this._initDefaultCheckedNodes()}return e.prototype.filter=function(e){var t=this.filterNodeMethod,i=this.lazy;!function n(r){var s=r.root?r.root.childNodes:r.childNodes;if(s.forEach(function(i){i.visible=t.call(i,e,i.data,i),n(i)}),!r.visible&&s.length){var a;a=!s.some(function(e){return e.visible}),r.root?r.root.visible=!1===a:r.visible=!1===a}e&&(!r.visible||r.isLeaf||i||r.expand())}(this)},e.prototype.setData=function(e){e!==this.root.data?(this.root.setData(e),this._initDefaultCheckedNodes()):this.root.updateChildren()},e.prototype.getNode=function(e){if(e instanceof Io)return e;var t="object"!==(void 0===e?"undefined":Ao(e))?e:Eo(this.key,e);return this.nodesMap[t]||null},e.prototype.insertBefore=function(e,t){var i=this.getNode(t);i.parent.insertBefore({data:e},i)},e.prototype.insertAfter=function(e,t){var i=this.getNode(t);i.parent.insertAfter({data:e},i)},e.prototype.remove=function(e){var t=this.getNode(e);t&&t.parent&&(t===this.currentNode&&(this.currentNode=null),t.parent.removeChild(t))},e.prototype.append=function(e,t){var i=t?this.getNode(t):this.root;i&&i.insertChild({data:e})},e.prototype._initDefaultCheckedNodes=function(){var e=this,t=this.defaultCheckedKeys||[],i=this.nodesMap;t.forEach(function(t){var n=i[t];n&&n.setChecked(!0,!e.checkStrictly)})},e.prototype._initDefaultCheckedNode=function(e){-1!==(this.defaultCheckedKeys||[]).indexOf(e.key)&&e.setChecked(!0,!this.checkStrictly)},e.prototype.setDefaultCheckedKey=function(e){e!==this.defaultCheckedKeys&&(this.defaultCheckedKeys=e,this._initDefaultCheckedNodes())},e.prototype.registerNode=function(e){this.key&&e&&e.data&&(void 0!==e.key&&(this.nodesMap[e.key]=e))},e.prototype.deregisterNode=function(e){var t=this;this.key&&e&&e.data&&(e.childNodes.forEach(function(e){t.deregisterNode(e)}),delete this.nodesMap[e.key])},e.prototype.getCheckedNodes=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=[];return function n(r){(r.root?r.root.childNodes:r.childNodes).forEach(function(r){(r.checked||t&&r.indeterminate)&&(!e||e&&r.isLeaf)&&i.push(r.data),n(r)})}(this),i},e.prototype.getCheckedKeys=function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this.getCheckedNodes(t).map(function(t){return(t||{})[e.key]})},e.prototype.getHalfCheckedNodes=function(){var e=[];return function t(i){(i.root?i.root.childNodes:i.childNodes).forEach(function(i){i.indeterminate&&e.push(i.data),t(i)})}(this),e},e.prototype.getHalfCheckedKeys=function(){var e=this;return this.getHalfCheckedNodes().map(function(t){return(t||{})[e.key]})},e.prototype._getAllNodes=function(){var e=[],t=this.nodesMap;for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},e.prototype.updateChildren=function(e,t){var i=this.nodesMap[e];if(i){for(var n=i.childNodes,r=n.length-1;r>=0;r--){var s=n[r];this.remove(s.data)}for(var a=0,o=t.length;a<o;a++){var l=t[a];this.append(l,i.data)}}},e.prototype._setCheckedKeys=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments[2],n=this._getAllNodes().sort(function(e,t){return t.level-e.level}),r=Object.create(null),s=Object.keys(i);n.forEach(function(e){return e.setChecked(!1,!1)});for(var a=0,o=n.length;a<o;a++){var l=n[a],u=l.data[e].toString();if(s.indexOf(u)>-1){for(var c=l.parent;c&&c.level>0;)r[c.data[e]]=!0,c=c.parent;l.isLeaf||this.checkStrictly?l.setChecked(!0,!1):(l.setChecked(!0,!0),t&&function(){l.setChecked(!1,!1);!function e(t){t.childNodes.forEach(function(t){t.isLeaf||t.setChecked(!1,!1),e(t)})}(l)}())}else l.checked&&!r[u]&&l.setChecked(!1,!1)}},e.prototype.setCheckedNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.key,n={};e.forEach(function(e){n[(e||{})[i]]=!0}),this._setCheckedKeys(i,t,n)},e.prototype.setCheckedKeys=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.defaultCheckedKeys=e;var i=this.key,n={};e.forEach(function(e){n[e]=!0}),this._setCheckedKeys(i,t,n)},e.prototype.setDefaultExpandedKeys=function(e){var t=this;e=e||[],this.defaultExpandedKeys=e,e.forEach(function(e){var i=t.getNode(e);i&&i.expand(null,t.autoExpandParent)})},e.prototype.setChecked=function(e,t,i){var n=this.getNode(e);n&&n.setChecked(!!t,i)},e.prototype.getCurrentNode=function(){return this.currentNode},e.prototype.setCurrentNode=function(e){var t=this.currentNode;t&&(t.isCurrent=!1),this.currentNode=e,this.currentNode.isCurrent=!0},e.prototype.setUserCurrentNode=function(e){var t=e[this.key],i=this.nodesMap[t];this.setCurrentNode(i)},e.prototype.setCurrentNodeKey=function(e){if(null==e)return this.currentNode&&(this.currentNode.isCurrent=!1),void(this.currentNode=null);var t=this.getNode(e);t&&this.setCurrentNode(t)},e}(),Lo=function(){var e=this,t=this,i=t.$createElement,n=t._self._c||i;return n("div",{directives:[{name:"show",rawName:"v-show",value:t.node.visible,expression:"node.visible"}],ref:"node",staticClass:"el-tree-node",class:{"is-expanded":t.expanded,"is-current":t.node.isCurrent,"is-hidden":!t.node.visible,"is-focusable":!t.node.disabled,"is-checked":!t.node.disabled&&t.node.checked},attrs:{role:"treeitem",tabindex:"-1","aria-expanded":t.expanded,"aria-disabled":t.node.disabled,"aria-checked":t.node.checked,draggable:t.tree.draggable},on:{click:function(e){return e.stopPropagation(),t.handleClick(e)},contextmenu:function(t){return e.handleContextMenu(t)},dragstart:function(e){return e.stopPropagation(),t.handleDragStart(e)},dragover:function(e){return e.stopPropagation(),t.handleDragOver(e)},dragend:function(e){return e.stopPropagation(),t.handleDragEnd(e)},drop:function(e){return e.stopPropagation(),t.handleDrop(e)}}},[n("div",{staticClass:"el-tree-node__content",style:{"padding-left":(t.node.level-1)*t.tree.indent+"px"}},[n("span",{class:[{"is-leaf":t.node.isLeaf,expanded:!t.node.isLeaf&&t.expanded},"el-tree-node__expand-icon",t.tree.iconClass?t.tree.iconClass:"el-icon-caret-right"],on:{click:function(e){return e.stopPropagation(),t.handleExpandIconClick(e)}}}),t.showCheckbox?n("el-checkbox",{attrs:{indeterminate:t.node.indeterminate,disabled:!!t.node.disabled},on:{change:t.handleCheckChange},nativeOn:{click:function(e){e.stopPropagation()}},model:{value:t.node.checked,callback:function(e){t.$set(t.node,"checked",e)},expression:"node.checked"}}):t._e(),t.node.loading?n("span",{staticClass:"el-tree-node__loading-icon el-icon-loading"}):t._e(),n("node-content",{attrs:{node:t.node}})],1),n("el-collapse-transition",[!t.renderAfterExpand||t.childNodeRendered?n("div",{directives:[{name:"show",rawName:"v-show",value:t.expanded,expression:"expanded"}],staticClass:"el-tree-node__children",attrs:{role:"group","aria-expanded":t.expanded}},t._l(t.node.childNodes,function(e){return n("el-tree-node",{key:t.getNodeKey(e),attrs:{"render-content":t.renderContent,"render-after-expand":t.renderAfterExpand,"show-checkbox":t.showCheckbox,node:e},on:{"node-expand":t.handleChildNodeExpand}})}),1):t._e()])],1)};Lo._withStripped=!0;var Vo=r({name:"ElTreeNode",componentName:"ElTreeNode",mixins:[l],props:{node:{default:function(){return{}}},props:{},renderContent:Function,renderAfterExpand:{type:Boolean,default:!0},showCheckbox:{type:Boolean,default:!1}},components:{ElCollapseTransition:ni,ElCheckbox:Bi,NodeContent:{props:{node:{required:!0}},render:function(e){var t=this.$parent,i=t.tree,n=this.node,r=n.data,s=n.store;return t.renderContent?t.renderContent.call(t._renderProxy,e,{_self:i.$vnode.context,node:n,data:r,store:s}):i.$scopedSlots.default?i.$scopedSlots.default({node:n,data:r}):e("span",{class:"el-tree-node__label"},[n.label])}}},data:function(){return{tree:null,expanded:!1,childNodeRendered:!1,oldChecked:null,oldIndeterminate:null}},watch:{"node.indeterminate":function(e){this.handleSelectChange(this.node.checked,e)},"node.checked":function(e){this.handleSelectChange(e,this.node.indeterminate)},"node.expanded":function(e){var t=this;this.$nextTick(function(){return t.expanded=e}),e&&(this.childNodeRendered=!0)}},methods:{getNodeKey:function(e){return Eo(this.tree.nodeKey,e.data)},handleSelectChange:function(e,t){this.oldChecked!==e&&this.oldIndeterminate!==t&&this.tree.$emit("check-change",this.node.data,e,t),this.oldChecked=e,this.indeterminate=t},handleClick:function(){var e=this.tree.store;e.setCurrentNode(this.node),this.tree.$emit("current-change",e.currentNode?e.currentNode.data:null,e.currentNode),this.tree.currentNode=this,this.tree.expandOnClickNode&&this.handleExpandIconClick(),this.tree.checkOnClickNode&&!this.node.disabled&&this.handleCheckChange(null,{target:{checked:!this.node.checked}}),this.tree.$emit("node-click",this.node.data,this.node,this)},handleContextMenu:function(e){this.tree._events["node-contextmenu"]&&this.tree._events["node-contextmenu"].length>0&&(e.stopPropagation(),e.preventDefault()),this.tree.$emit("node-contextmenu",e,this.node.data,this.node,this)},handleExpandIconClick:function(){this.node.isLeaf||(this.expanded?(this.tree.$emit("node-collapse",this.node.data,this.node,this),this.node.collapse()):(this.node.expand(),this.$emit("node-expand",this.node.data,this.node,this)))},handleCheckChange:function(e,t){var i=this;this.node.setChecked(t.target.checked,!this.tree.checkStrictly),this.$nextTick(function(){var e=i.tree.store;i.tree.$emit("check",i.node.data,{checkedNodes:e.getCheckedNodes(),checkedKeys:e.getCheckedKeys(),halfCheckedNodes:e.getHalfCheckedNodes(),halfCheckedKeys:e.getHalfCheckedKeys()})})},handleChildNodeExpand:function(e,t,i){this.broadcast("ElTreeNode","tree-node-expand",t),this.tree.$emit("node-expand",e,t,i)},handleDragStart:function(e){this.tree.draggable&&this.tree.$emit("tree-node-drag-start",e,this)},handleDragOver:function(e){this.tree.draggable&&(this.tree.$emit("tree-node-drag-over",e,this),e.preventDefault())},handleDrop:function(e){e.preventDefault()},handleDragEnd:function(e){this.tree.draggable&&this.tree.$emit("tree-node-drag-end",e,this)}},created:function(){var e=this,t=this.$parent;t.isTree?this.tree=t:this.tree=t.tree;var i=this.tree;i||console.warn("Can not find node's tree.");var n=(i.props||{}).children||"children";this.$watch("node.data."+n,function(){e.node.updateChildren()}),this.node.expanded&&(this.expanded=!0,this.childNodeRendered=!0),this.tree.accordion&&this.$on("tree-node-expand",function(t){e.node!==t&&e.node.collapse()})}},Lo,[],!1,null,null,null);Vo.options.__file="packages/tree/src/tree-node.vue";var Bo=r({name:"ElTree",mixins:[l],components:{ElTreeNode:Vo.exports},data:function(){return{store:null,root:null,currentNode:null,treeItems:null,checkboxItems:[],dragState:{showDropIndicator:!1,draggingNode:null,dropNode:null,allowDrop:!0}}},props:{data:{type:Array},emptyText:{type:String,default:function(){return j("el.tree.emptyText")}},renderAfterExpand:{type:Boolean,default:!0},nodeKey:String,checkStrictly:Boolean,defaultExpandAll:Boolean,expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:Boolean,checkDescendants:{type:Boolean,default:!1},autoExpandParent:{type:Boolean,default:!0},defaultCheckedKeys:Array,defaultExpandedKeys:Array,currentNodeKey:[String,Number],renderContent:Function,showCheckbox:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},allowDrag:Function,allowDrop:Function,props:{default:function(){return{children:"children",label:"label",disabled:"disabled"}}},lazy:{type:Boolean,default:!1},highlightCurrent:Boolean,load:Function,filterNodeMethod:Function,accordion:Boolean,indent:{type:Number,default:18},iconClass:String},computed:{children:{set:function(e){this.data=e},get:function(){return this.data}},treeItemArray:function(){return Array.prototype.slice.call(this.treeItems)},isEmpty:function(){var e=this.root.childNodes;return!e||0===e.length||e.every(function(e){return!e.visible})}},watch:{defaultCheckedKeys:function(e){this.store.setDefaultCheckedKey(e)},defaultExpandedKeys:function(e){this.store.defaultExpandedKeys=e,this.store.setDefaultExpandedKeys(e)},data:function(e){this.store.setData(e)},checkboxItems:function(e){Array.prototype.forEach.call(e,function(e){e.setAttribute("tabindex",-1)})},checkStrictly:function(e){this.store.checkStrictly=e}},methods:{filter:function(e){if(!this.filterNodeMethod)throw new Error("[Tree] filterNodeMethod is required when filter");this.store.filter(e)},getNodeKey:function(e){return Eo(this.nodeKey,e.data)},getNodePath:function(e){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in getNodePath");var t=this.store.getNode(e);if(!t)return[];for(var i=[t.data],n=t.parent;n&&n!==this.root;)i.push(n.data),n=n.parent;return i.reverse()},getCheckedNodes:function(e,t){return this.store.getCheckedNodes(e,t)},getCheckedKeys:function(e){return this.store.getCheckedKeys(e)},getCurrentNode:function(){var e=this.store.getCurrentNode();return e?e.data:null},getCurrentKey:function(){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in getCurrentKey");var e=this.getCurrentNode();return e?e[this.nodeKey]:null},setCheckedNodes:function(e,t){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedNodes");this.store.setCheckedNodes(e,t)},setCheckedKeys:function(e,t){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedKeys");this.store.setCheckedKeys(e,t)},setChecked:function(e,t,i){this.store.setChecked(e,t,i)},getHalfCheckedNodes:function(){return this.store.getHalfCheckedNodes()},getHalfCheckedKeys:function(){return this.store.getHalfCheckedKeys()},setCurrentNode:function(e){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentNode");this.store.setUserCurrentNode(e)},setCurrentKey:function(e){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentKey");this.store.setCurrentNodeKey(e)},getNode:function(e){return this.store.getNode(e)},remove:function(e){this.store.remove(e)},append:function(e,t){this.store.append(e,t)},insertBefore:function(e,t){this.store.insertBefore(e,t)},insertAfter:function(e,t){this.store.insertAfter(e,t)},handleNodeExpand:function(e,t,i){this.broadcast("ElTreeNode","tree-node-expand",t),this.$emit("node-expand",e,t,i)},updateKeyChildren:function(e,t){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in updateKeyChild");this.store.updateChildren(e,t)},initTabIndex:function(){this.treeItems=this.$el.querySelectorAll(".is-focusable[role=treeitem]"),this.checkboxItems=this.$el.querySelectorAll("input[type=checkbox]");var e=this.$el.querySelectorAll(".is-checked[role=treeitem]");e.length?e[0].setAttribute("tabindex",0):this.treeItems[0]&&this.treeItems[0].setAttribute("tabindex",0)},handleKeydown:function(e){var t=e.target;if(-1!==t.className.indexOf("el-tree-node")){var i=e.keyCode;this.treeItems=this.$el.querySelectorAll(".is-focusable[role=treeitem]");var n=this.treeItemArray.indexOf(t),r=void 0;[38,40].indexOf(i)>-1&&(e.preventDefault(),r=38===i?0!==n?n-1:0:n<this.treeItemArray.length-1?n+1:0,this.treeItemArray[r].focus()),[37,39].indexOf(i)>-1&&(e.preventDefault(),t.click());var s=t.querySelector('[type="checkbox"]');[13,32].indexOf(i)>-1&&s&&(e.preventDefault(),s.click())}}},created:function(){var e=this;this.isTree=!0,this.store=new Fo({key:this.nodeKey,data:this.data,lazy:this.lazy,props:this.props,load:this.load,currentNodeKey:this.currentNodeKey,checkStrictly:this.checkStrictly,checkDescendants:this.checkDescendants,defaultCheckedKeys:this.defaultCheckedKeys,defaultExpandedKeys:this.defaultExpandedKeys,autoExpandParent:this.autoExpandParent,defaultExpandAll:this.defaultExpandAll,filterNodeMethod:this.filterNodeMethod}),this.root=this.store.root;var t=this.dragState;this.$on("tree-node-drag-start",function(i,n){if("function"==typeof e.allowDrag&&!e.allowDrag(n.node))return i.preventDefault(),!1;i.dataTransfer.effectAllowed="move";try{i.dataTransfer.setData("text/plain","")}catch(e){}t.draggingNode=n,e.$emit("node-drag-start",n.node,i)}),this.$on("tree-node-drag-over",function(i,n){var r=function(e,t){for(var i=e;i&&"BODY"!==i.tagName;){if(i.__vue__&&i.__vue__.$options.name===t)return i.__vue__;i=i.parentNode}return null}(i.target,"ElTreeNode"),s=t.dropNode;s&&s!==r&&ve(s.$el,"is-drop-inner");var a=t.draggingNode;if(a&&r){var o=!0,l=!0,u=!0,c=!0;"function"==typeof e.allowDrop&&(o=e.allowDrop(a.node,r.node,"prev"),c=l=e.allowDrop(a.node,r.node,"inner"),u=e.allowDrop(a.node,r.node,"next")),i.dataTransfer.dropEffect=l?"move":"none",(o||l||u)&&s!==r&&(s&&e.$emit("node-drag-leave",a.node,s.node,i),e.$emit("node-drag-enter",a.node,r.node,i)),(o||l||u)&&(t.dropNode=r),r.node.nextSibling===a.node&&(u=!1),r.node.previousSibling===a.node&&(o=!1),r.node.contains(a.node,!1)&&(l=!1),(a.node===r.node||a.node.contains(r.node))&&(o=!1,l=!1,u=!1);var h=r.$el.getBoundingClientRect(),d=e.$el.getBoundingClientRect(),p=void 0,f=o?l?.25:u?.45:1:-1,m=u?l?.75:o?.55:0:1,v=-9999,g=i.clientY-h.top;p=g<h.height*f?"before":g>h.height*m?"after":l?"inner":"none";var b=r.$el.querySelector(".el-tree-node__expand-icon").getBoundingClientRect(),y=e.$refs.dropIndicator;"before"===p?v=b.top-d.top:"after"===p&&(v=b.bottom-d.top),y.style.top=v+"px",y.style.left=b.right-d.left+"px","inner"===p?me(r.$el,"is-drop-inner"):ve(r.$el,"is-drop-inner"),t.showDropIndicator="before"===p||"after"===p,t.allowDrop=t.showDropIndicator||c,t.dropType=p,e.$emit("node-drag-over",a.node,r.node,i)}}),this.$on("tree-node-drag-end",function(i){var n=t.draggingNode,r=t.dropType,s=t.dropNode;if(i.preventDefault(),i.dataTransfer.dropEffect="move",n&&s){var a={data:n.node.data};"none"!==r&&n.node.remove(),"before"===r?s.node.parent.insertBefore(a,s.node):"after"===r?s.node.parent.insertAfter(a,s.node):"inner"===r&&s.node.insertChild(a),"none"!==r&&e.store.registerNode(a),ve(s.$el,"is-drop-inner"),e.$emit("node-drag-end",n.node,s.node,r,i),"none"!==r&&e.$emit("node-drop",n.node,s.node,r,i)}n&&!s&&e.$emit("node-drag-end",n.node,null,r,i),t.showDropIndicator=!1,t.draggingNode=null,t.dropNode=null,t.allowDrop=!0})},mounted:function(){this.initTabIndex(),this.$el.addEventListener("keydown",this.handleKeydown)},updated:function(){this.treeItems=this.$el.querySelectorAll("[role=treeitem]"),this.checkboxItems=this.$el.querySelectorAll("input[type=checkbox]")}},So,[],!1,null,null,null);Bo.options.__file="packages/tree/src/tree.vue";var zo=Bo.exports;zo.install=function(e){e.component(zo.name,zo)};var Ho=zo,Ro=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-alert-fade"}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-alert",class:[e.typeClass,e.center?"is-center":"","is-"+e.effect],attrs:{role:"alert"}},[e.showIcon?i("i",{staticClass:"el-alert__icon",class:[e.iconClass,e.isBigIcon]}):e._e(),i("div",{staticClass:"el-alert__content"},[e.title||e.$slots.title?i("span",{staticClass:"el-alert__title",class:[e.isBoldTitle]},[e._t("title",[e._v(e._s(e.title))])],2):e._e(),e.$slots.default&&!e.description?i("p",{staticClass:"el-alert__description"},[e._t("default")],2):e._e(),e.description&&!e.$slots.default?i("p",{staticClass:"el-alert__description"},[e._v(e._s(e.description))]):e._e(),i("i",{directives:[{name:"show",rawName:"v-show",value:e.closable,expression:"closable"}],staticClass:"el-alert__closebtn",class:{"is-customed":""!==e.closeText,"el-icon-close":""===e.closeText},on:{click:function(t){e.close()}}},[e._v(e._s(e.closeText))])])])])};Ro._withStripped=!0;var Wo={success:"el-icon-success",warning:"el-icon-warning",error:"el-icon-error"},jo=r({name:"ElAlert",props:{title:{type:String,default:""},description:{type:String,default:""},type:{type:String,default:"info"},closable:{type:Boolean,default:!0},closeText:{type:String,default:""},showIcon:Boolean,center:Boolean,effect:{type:String,default:"light",validator:function(e){return-1!==["light","dark"].indexOf(e)}}},data:function(){return{visible:!0}},methods:{close:function(){this.visible=!1,this.$emit("close")}},computed:{typeClass:function(){return"el-alert--"+this.type},iconClass:function(){return Wo[this.type]||"el-icon-info"},isBigIcon:function(){return this.description||this.$slots.default?"is-big":""},isBoldTitle:function(){return this.description||this.$slots.default?"is-bold":""}}},Ro,[],!1,null,null,null);jo.options.__file="packages/alert/src/main.vue";var qo=jo.exports;qo.install=function(e){e.component(qo.name,qo)};var Yo=qo,Ko=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-notification-fade"}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],class:["el-notification",e.customClass,e.horizontalClass],style:e.positionStyle,attrs:{role:"alert"},on:{mouseenter:function(t){e.clearTimer()},mouseleave:function(t){e.startTimer()},click:e.click}},[e.type||e.iconClass?i("i",{staticClass:"el-notification__icon",class:[e.typeClass,e.iconClass]}):e._e(),i("div",{staticClass:"el-notification__group",class:{"is-with-icon":e.typeClass||e.iconClass}},[i("h2",{staticClass:"el-notification__title",domProps:{textContent:e._s(e.title)}}),i("div",{directives:[{name:"show",rawName:"v-show",value:e.message,expression:"message"}],staticClass:"el-notification__content"},[e._t("default",[e.dangerouslyUseHTMLString?i("p",{domProps:{innerHTML:e._s(e.message)}}):i("p",[e._v(e._s(e.message))])])],2),e.showClose?i("div",{staticClass:"el-notification__closeBtn el-icon-close",on:{click:function(t){return t.stopPropagation(),e.close(t)}}}):e._e()])])])};Ko._withStripped=!0;var Go={success:"success",info:"info",warning:"warning",error:"error"},Uo=r({data:function(){return{visible:!1,title:"",message:"",duration:4500,type:"",showClose:!0,customClass:"",iconClass:"",onClose:null,onClick:null,closed:!1,verticalOffset:0,timer:null,dangerouslyUseHTMLString:!1,position:"top-right"}},computed:{typeClass:function(){return this.type&&Go[this.type]?"el-icon-"+Go[this.type]:""},horizontalClass:function(){return this.position.indexOf("right")>-1?"right":"left"},verticalProperty:function(){return/^top-/.test(this.position)?"top":"bottom"},positionStyle:function(){var e;return(e={})[this.verticalProperty]=this.verticalOffset+"px",e}},watch:{closed:function(e){e&&(this.visible=!1,this.$el.addEventListener("transitionend",this.destroyElement))}},methods:{destroyElement:function(){this.$el.removeEventListener("transitionend",this.destroyElement),this.$destroy(!0),this.$el.parentNode.removeChild(this.$el)},click:function(){"function"==typeof this.onClick&&this.onClick()},close:function(){this.closed=!0,"function"==typeof this.onClose&&this.onClose()},clearTimer:function(){clearTimeout(this.timer)},startTimer:function(){var e=this;this.duration>0&&(this.timer=setTimeout(function(){e.closed||e.close()},this.duration))},keydown:function(e){46===e.keyCode||8===e.keyCode?this.clearTimer():27===e.keyCode?this.closed||this.close():this.startTimer()}},mounted:function(){var e=this;this.duration>0&&(this.timer=setTimeout(function(){e.closed||e.close()},this.duration)),document.addEventListener("keydown",this.keydown)},beforeDestroy:function(){document.removeEventListener("keydown",this.keydown)}},Ko,[],!1,null,null,null);Uo.options.__file="packages/notification/src/main.vue";var Xo=Uo.exports,Zo=h.a.extend(Xo),Jo=void 0,Qo=[],el=1,tl=function e(t){if(!h.a.prototype.$isServer){var i=(t=Q({},t)).onClose,n="notification_"+el++,r=t.position||"top-right";t.onClose=function(){e.close(n,i)},Jo=new Zo({data:t}),ca(t.message)&&(Jo.$slots.default=[t.message],t.message="REPLACED_BY_VNODE"),Jo.id=n,Jo.$mount(),document.body.appendChild(Jo.$el),Jo.visible=!0,Jo.dom=Jo.$el,Jo.dom.style.zIndex=De.nextZIndex();var s=t.offset||0;return Qo.filter(function(e){return e.position===r}).forEach(function(e){s+=e.$el.offsetHeight+16}),s+=16,Jo.verticalOffset=s,Qo.push(Jo),Jo}};["success","warning","info","error"].forEach(function(e){tl[e]=function(t){return("string"==typeof t||ca(t))&&(t={message:t}),t.type=e,tl(t)}}),tl.close=function(e,t){var i=-1,n=Qo.length,r=Qo.filter(function(t,n){return t.id===e&&(i=n,!0)})[0];if(r&&("function"==typeof t&&t(r),Qo.splice(i,1),!(n<=1)))for(var s=r.position,a=r.dom.offsetHeight,o=i;o<n-1;o++)Qo[o].position===s&&(Qo[o].dom.style[r.verticalProperty]=parseInt(Qo[o].dom.style[r.verticalProperty],10)-a-16+"px")},tl.closeAll=function(){for(var e=Qo.length-1;e>=0;e--)Qo[e].close()};var il=tl,nl=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-slider",class:{"is-vertical":e.vertical,"el-slider--with-input":e.showInput},attrs:{role:"slider","aria-valuemin":e.min,"aria-valuemax":e.max,"aria-orientation":e.vertical?"vertical":"horizontal","aria-disabled":e.sliderDisabled}},[e.showInput&&!e.range?i("el-input-number",{ref:"input",staticClass:"el-slider__input",attrs:{step:e.step,disabled:e.sliderDisabled,controls:e.showInputControls,min:e.min,max:e.max,debounce:e.debounce,size:e.inputSize},on:{change:e.emitChange},model:{value:e.firstValue,callback:function(t){e.firstValue=t},expression:"firstValue"}}):e._e(),i("div",{ref:"slider",staticClass:"el-slider__runway",class:{"show-input":e.showInput,disabled:e.sliderDisabled},style:e.runwayStyle,on:{click:e.onSliderClick}},[i("div",{staticClass:"el-slider__bar",style:e.barStyle}),i("slider-button",{ref:"button1",attrs:{vertical:e.vertical,"tooltip-class":e.tooltipClass},model:{value:e.firstValue,callback:function(t){e.firstValue=t},expression:"firstValue"}}),e.range?i("slider-button",{ref:"button2",attrs:{vertical:e.vertical,"tooltip-class":e.tooltipClass},model:{value:e.secondValue,callback:function(t){e.secondValue=t},expression:"secondValue"}}):e._e(),e._l(e.stops,function(t,n){return e.showStops?i("div",{key:n,staticClass:"el-slider__stop",style:e.getStopStyle(t)}):e._e()}),e.markList.length>0?[i("div",e._l(e.markList,function(t,n){return i("div",{key:n,staticClass:"el-slider__stop el-slider__marks-stop",style:e.getStopStyle(t.position)})}),0),i("div",{staticClass:"el-slider__marks"},e._l(e.markList,function(t,n){return i("slider-marker",{key:n,style:e.getStopStyle(t.position),attrs:{mark:t.mark}})}),1)]:e._e()],2)],1)};nl._withStripped=!0;var rl=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{ref:"button",staticClass:"el-slider__button-wrapper",class:{hover:e.hovering,dragging:e.dragging},style:e.wrapperStyle,attrs:{tabindex:"0"},on:{mouseenter:e.handleMouseEnter,mouseleave:e.handleMouseLeave,mousedown:e.onButtonDown,touchstart:e.onButtonDown,focus:e.handleMouseEnter,blur:e.handleMouseLeave,keydown:[function(t){return"button"in t||!e._k(t.keyCode,"left",37,t.key,["Left","ArrowLeft"])?"button"in t&&0!==t.button?null:e.onLeftKeyDown(t):null},function(t){return"button"in t||!e._k(t.keyCode,"right",39,t.key,["Right","ArrowRight"])?"button"in t&&2!==t.button?null:e.onRightKeyDown(t):null},function(t){return"button"in t||!e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?(t.preventDefault(),e.onLeftKeyDown(t)):null},function(t){return"button"in t||!e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?(t.preventDefault(),e.onRightKeyDown(t)):null}]}},[i("el-tooltip",{ref:"tooltip",attrs:{placement:"top","popper-class":e.tooltipClass,disabled:!e.showTooltip}},[i("span",{attrs:{slot:"content"},slot:"content"},[e._v(e._s(e.formatValue))]),i("div",{staticClass:"el-slider__button",class:{hover:e.hovering,dragging:e.dragging}})])],1)};rl._withStripped=!0;var sl=r({name:"ElSliderButton",components:{ElTooltip:ci},props:{value:{type:Number,default:0},vertical:{type:Boolean,default:!1},tooltipClass:String},data:function(){return{hovering:!1,dragging:!1,isClick:!1,startX:0,currentX:0,startY:0,currentY:0,startPosition:0,newPosition:null,oldValue:this.value}},computed:{disabled:function(){return this.$parent.sliderDisabled},max:function(){return this.$parent.max},min:function(){return this.$parent.min},step:function(){return this.$parent.step},showTooltip:function(){return this.$parent.showTooltip},precision:function(){return this.$parent.precision},currentPosition:function(){return(this.value-this.min)/(this.max-this.min)*100+"%"},enableFormat:function(){return this.$parent.formatTooltip instanceof Function},formatValue:function(){return this.enableFormat&&this.$parent.formatTooltip(this.value)||this.value},wrapperStyle:function(){return this.vertical?{bottom:this.currentPosition}:{left:this.currentPosition}}},watch:{dragging:function(e){this.$parent.dragging=e}},methods:{displayTooltip:function(){this.$refs.tooltip&&(this.$refs.tooltip.showPopper=!0)},hideTooltip:function(){this.$refs.tooltip&&(this.$refs.tooltip.showPopper=!1)},handleMouseEnter:function(){this.hovering=!0,this.displayTooltip()},handleMouseLeave:function(){this.hovering=!1,this.hideTooltip()},onButtonDown:function(e){this.disabled||(e.preventDefault(),this.onDragStart(e),window.addEventListener("mousemove",this.onDragging),window.addEventListener("touchmove",this.onDragging),window.addEventListener("mouseup",this.onDragEnd),window.addEventListener("touchend",this.onDragEnd),window.addEventListener("contextmenu",this.onDragEnd))},onLeftKeyDown:function(){this.disabled||(this.newPosition=parseFloat(this.currentPosition)-this.step/(this.max-this.min)*100,this.setPosition(this.newPosition),this.$parent.emitChange())},onRightKeyDown:function(){this.disabled||(this.newPosition=parseFloat(this.currentPosition)+this.step/(this.max-this.min)*100,this.setPosition(this.newPosition),this.$parent.emitChange())},onDragStart:function(e){this.dragging=!0,this.isClick=!0,"touchstart"===e.type&&(e.clientY=e.touches[0].clientY,e.clientX=e.touches[0].clientX),this.vertical?this.startY=e.clientY:this.startX=e.clientX,this.startPosition=parseFloat(this.currentPosition),this.newPosition=this.startPosition},onDragging:function(e){if(this.dragging){this.isClick=!1,this.displayTooltip(),this.$parent.resetSize();var t=0;"touchmove"===e.type&&(e.clientY=e.touches[0].clientY,e.clientX=e.touches[0].clientX),this.vertical?(this.currentY=e.clientY,t=(this.startY-this.currentY)/this.$parent.sliderSize*100):(this.currentX=e.clientX,t=(this.currentX-this.startX)/this.$parent.sliderSize*100),this.newPosition=this.startPosition+t,this.setPosition(this.newPosition)}},onDragEnd:function(){var e=this;this.dragging&&(setTimeout(function(){e.dragging=!1,e.hideTooltip(),e.isClick||(e.setPosition(e.newPosition),e.$parent.emitChange())},0),window.removeEventListener("mousemove",this.onDragging),window.removeEventListener("touchmove",this.onDragging),window.removeEventListener("mouseup",this.onDragEnd),window.removeEventListener("touchend",this.onDragEnd),window.removeEventListener("contextmenu",this.onDragEnd))},setPosition:function(e){var t=this;if(null!==e&&!isNaN(e)){e<0?e=0:e>100&&(e=100);var i=100/((this.max-this.min)/this.step),n=Math.round(e/i)*i*(this.max-this.min)*.01+this.min;n=parseFloat(n.toFixed(this.precision)),this.$emit("input",n),this.$nextTick(function(){t.displayTooltip(),t.$refs.tooltip&&t.$refs.tooltip.updatePopper()}),this.dragging||this.value===this.oldValue||(this.oldValue=this.value)}}}},rl,[],!1,null,null,null);sl.options.__file="packages/slider/src/button.vue";var al=sl.exports,ol={name:"ElMarker",props:{mark:{type:[String,Object]}},render:function(){var e=arguments[0],t="string"==typeof this.mark?this.mark:this.mark.label;return e("div",{class:"el-slider__marks-text",style:this.mark.style||{}},[t])}},ll=r({name:"ElSlider",mixins:[l],inject:{elForm:{default:""}},props:{min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},value:{type:[Number,Array],default:0},showInput:{type:Boolean,default:!1},showInputControls:{type:Boolean,default:!0},inputSize:{type:String,default:"small"},showStops:{type:Boolean,default:!1},showTooltip:{type:Boolean,default:!0},formatTooltip:Function,disabled:{type:Boolean,default:!1},range:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1},height:{type:String},debounce:{type:Number,default:300},label:{type:String},tooltipClass:String,marks:Object},components:{ElInputNumber:xi,SliderButton:al,SliderMarker:ol},data:function(){return{firstValue:null,secondValue:null,oldValue:null,dragging:!1,sliderSize:1}},watch:{value:function(e,t){this.dragging||Array.isArray(e)&&Array.isArray(t)&&e.every(function(e,i){return e===t[i]})||this.setValues()},dragging:function(e){e||this.setValues()},firstValue:function(e){this.range?this.$emit("input",[this.minValue,this.maxValue]):this.$emit("input",e)},secondValue:function(){this.range&&this.$emit("input",[this.minValue,this.maxValue])},min:function(){this.setValues()},max:function(){this.setValues()}},methods:{valueChanged:function(){var e=this;return this.range?![this.minValue,this.maxValue].every(function(t,i){return t===e.oldValue[i]}):this.value!==this.oldValue},setValues:function(){if(this.min>this.max)console.error("[Element Error][Slider]min should not be greater than max.");else{var e=this.value;this.range&&Array.isArray(e)?e[1]<this.min?this.$emit("input",[this.min,this.min]):e[0]>this.max?this.$emit("input",[this.max,this.max]):e[0]<this.min?this.$emit("input",[this.min,e[1]]):e[1]>this.max?this.$emit("input",[e[0],this.max]):(this.firstValue=e[0],this.secondValue=e[1],this.valueChanged()&&(this.dispatch("ElFormItem","el.form.change",[this.minValue,this.maxValue]),this.oldValue=e.slice())):this.range||"number"!=typeof e||isNaN(e)||(e<this.min?this.$emit("input",this.min):e>this.max?this.$emit("input",this.max):(this.firstValue=e,this.valueChanged()&&(this.dispatch("ElFormItem","el.form.change",e),this.oldValue=e)))}},setPosition:function(e){var t=this.min+e*(this.max-this.min)/100;if(this.range){var i=void 0;i=Math.abs(this.minValue-t)<Math.abs(this.maxValue-t)?this.firstValue<this.secondValue?"button1":"button2":this.firstValue>this.secondValue?"button1":"button2",this.$refs[i].setPosition(e)}else this.$refs.button1.setPosition(e)},onSliderClick:function(e){if(!this.sliderDisabled&&!this.dragging){if(this.resetSize(),this.vertical){var t=this.$refs.slider.getBoundingClientRect().bottom;this.setPosition((t-e.clientY)/this.sliderSize*100)}else{var i=this.$refs.slider.getBoundingClientRect().left;this.setPosition((e.clientX-i)/this.sliderSize*100)}this.emitChange()}},resetSize:function(){this.$refs.slider&&(this.sliderSize=this.$refs.slider["client"+(this.vertical?"Height":"Width")])},emitChange:function(){var e=this;this.$nextTick(function(){e.$emit("change",e.range?[e.minValue,e.maxValue]:e.value)})},getStopStyle:function(e){return this.vertical?{bottom:e+"%"}:{left:e+"%"}}},computed:{stops:function(){var e=this;if(!this.showStops||this.min>this.max)return[];if(0===this.step)return[];for(var t=(this.max-this.min)/this.step,i=100*this.step/(this.max-this.min),n=[],r=1;r<t;r++)n.push(r*i);return this.range?n.filter(function(t){return t<100*(e.minValue-e.min)/(e.max-e.min)||t>100*(e.maxValue-e.min)/(e.max-e.min)}):n.filter(function(t){return t>100*(e.firstValue-e.min)/(e.max-e.min)})},markList:function(){var e=this;return this.marks?Object.keys(this.marks).map(parseFloat).sort(function(e,t){return e-t}).filter(function(t){return t<=e.max&&t>=e.min}).map(function(t){return{point:t,position:100*(t-e.min)/(e.max-e.min),mark:e.marks[t]}}):[]},minValue:function(){return Math.min(this.firstValue,this.secondValue)},maxValue:function(){return Math.max(this.firstValue,this.secondValue)},barSize:function(){return this.range?100*(this.maxValue-this.minValue)/(this.max-this.min)+"%":100*(this.firstValue-this.min)/(this.max-this.min)+"%"},barStart:function(){return this.range?100*(this.minValue-this.min)/(this.max-this.min)+"%":"0%"},precision:function(){var e=[this.min,this.max,this.step].map(function(e){var t=(""+e).split(".")[1];return t?t.length:0});return Math.max.apply(null,e)},runwayStyle:function(){return this.vertical?{height:this.height}:{}},barStyle:function(){return this.vertical?{height:this.barSize,bottom:this.barStart}:{width:this.barSize,left:this.barStart}},sliderDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},mounted:function(){var e=void 0;this.range?(Array.isArray(this.value)?(this.firstValue=Math.max(this.min,this.value[0]),this.secondValue=Math.min(this.max,this.value[1])):(this.firstValue=this.min,this.secondValue=this.max),this.oldValue=[this.firstValue,this.secondValue],e=this.firstValue+"-"+this.secondValue):("number"!=typeof this.value||isNaN(this.value)?this.firstValue=this.min:this.firstValue=Math.min(this.max,Math.max(this.min,this.value)),this.oldValue=this.firstValue,e=this.firstValue),this.$el.setAttribute("aria-valuetext",e),this.$el.setAttribute("aria-label",this.label?this.label:"slider between "+this.min+" and "+this.max),this.resetSize(),window.addEventListener("resize",this.resetSize)},beforeDestroy:function(){window.removeEventListener("resize",this.resetSize)}},nl,[],!1,null,null,null);ll.options.__file="packages/slider/src/main.vue";var ul=ll.exports;ul.install=function(e){e.component(ul.name,ul)};var cl=ul,hl=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-loading-fade"},on:{"after-leave":e.handleAfterLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-loading-mask",class:[e.customClass,{"is-fullscreen":e.fullscreen}],style:{backgroundColor:e.background||""}},[i("div",{staticClass:"el-loading-spinner"},[e.spinner?i("i",{class:e.spinner}):i("svg",{staticClass:"circular",attrs:{viewBox:"25 25 50 50"}},[i("circle",{staticClass:"path",attrs:{cx:"50",cy:"50",r:"20",fill:"none"}})]),e.text?i("p",{staticClass:"el-loading-text"},[e._v(e._s(e.text))]):e._e()])])])};hl._withStripped=!0;var dl=r({data:function(){return{text:null,spinner:null,background:null,fullscreen:!0,visible:!1,customClass:""}},methods:{handleAfterLeave:function(){this.$emit("after-leave")},setText:function(e){this.text=e}}},hl,[],!1,null,null,null);dl.options.__file="packages/loading/src/loading.vue";var pl=dl.exports,fl=function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:300,n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!e||!t)throw new Error("instance & callback is required");var r=!1,s=function(){r||(r=!0,t&&t.apply(null,arguments))};n?e.$once("after-leave",s):e.$on("after-leave",s),setTimeout(function(){s()},i+100)},ml=h.a.extend(pl),vl={install:function(e){if(!e.prototype.$isServer){var t=function(t,n){n.value?e.nextTick(function(){n.modifiers.fullscreen?(t.originalPosition=ge(document.body,"position"),t.originalOverflow=ge(document.body,"overflow"),t.maskStyle.zIndex=De.nextZIndex(),me(t.mask,"is-fullscreen"),i(document.body,t,n)):(ve(t.mask,"is-fullscreen"),n.modifiers.body?(t.originalPosition=ge(document.body,"position"),["top","left"].forEach(function(e){var i="top"===e?"scrollTop":"scrollLeft";t.maskStyle[e]=t.getBoundingClientRect()[e]+document.body[i]+document.documentElement[i]-parseInt(ge(document.body,"margin-"+e),10)+"px"}),["height","width"].forEach(function(e){t.maskStyle[e]=t.getBoundingClientRect()[e]+"px"}),i(document.body,t,n)):(t.originalPosition=ge(t,"position"),i(t,t,n)))}):(fl(t.instance,function(e){if(t.instance.hiding){t.domVisible=!1;var i=n.modifiers.fullscreen||n.modifiers.body?document.body:t;ve(i,"el-loading-parent--relative"),ve(i,"el-loading-parent--hidden"),t.instance.hiding=!1}},300,!0),t.instance.visible=!1,t.instance.hiding=!0)},i=function(t,i,n){i.domVisible||"none"===ge(i,"display")||"hidden"===ge(i,"visibility")?i.domVisible&&!0===i.instance.hiding&&(i.instance.visible=!0,i.instance.hiding=!1):(Object.keys(i.maskStyle).forEach(function(e){i.mask.style[e]=i.maskStyle[e]}),"absolute"!==i.originalPosition&&"fixed"!==i.originalPosition&&me(t,"el-loading-parent--relative"),n.modifiers.fullscreen&&n.modifiers.lock&&me(t,"el-loading-parent--hidden"),i.domVisible=!0,t.appendChild(i.mask),e.nextTick(function(){i.instance.hiding?i.instance.$emit("after-leave"):i.instance.visible=!0}),i.domInserted=!0)};e.directive("loading",{bind:function(e,i,n){var r=e.getAttribute("element-loading-text"),s=e.getAttribute("element-loading-spinner"),a=e.getAttribute("element-loading-background"),o=e.getAttribute("element-loading-custom-class"),l=n.context,u=new ml({el:document.createElement("div"),data:{text:l&&l[r]||r,spinner:l&&l[s]||s,background:l&&l[a]||a,customClass:l&&l[o]||o,fullscreen:!!i.modifiers.fullscreen}});e.instance=u,e.mask=u.$el,e.maskStyle={},i.value&&t(e,i)},update:function(e,i){e.instance.setText(e.getAttribute("element-loading-text")),i.oldValue!==i.value&&t(e,i)},unbind:function(e,i){e.domInserted&&(e.mask&&e.mask.parentNode&&e.mask.parentNode.removeChild(e.mask),t(e,{value:!1,modifiers:i.modifiers})),e.instance&&e.instance.$destroy()}})}}},gl=vl,bl=h.a.extend(pl),yl={text:null,fullscreen:!0,body:!1,lock:!1,customClass:""},wl=void 0;bl.prototype.originalPosition="",bl.prototype.originalOverflow="",bl.prototype.close=function(){var e=this;this.fullscreen&&(wl=void 0),fl(this,function(t){var i=e.fullscreen||e.body?document.body:e.target;ve(i,"el-loading-parent--relative"),ve(i,"el-loading-parent--hidden"),e.$el&&e.$el.parentNode&&e.$el.parentNode.removeChild(e.$el),e.$destroy()},300),this.visible=!1};var _l=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!h.a.prototype.$isServer){if("string"==typeof(e=Q({},yl,e)).target&&(e.target=document.querySelector(e.target)),e.target=e.target||document.body,e.target!==document.body?e.fullscreen=!1:e.body=!0,e.fullscreen&&wl)return wl;var t=e.body?document.body:e.target,i=new bl({el:document.createElement("div"),data:e});return function(e,t,i){var n={};e.fullscreen?(i.originalPosition=ge(document.body,"position"),i.originalOverflow=ge(document.body,"overflow"),n.zIndex=De.nextZIndex()):e.body?(i.originalPosition=ge(document.body,"position"),["top","left"].forEach(function(t){var i="top"===t?"scrollTop":"scrollLeft";n[t]=e.target.getBoundingClientRect()[t]+document.body[i]+document.documentElement[i]+"px"}),["height","width"].forEach(function(t){n[t]=e.target.getBoundingClientRect()[t]+"px"})):i.originalPosition=ge(t,"position"),Object.keys(n).forEach(function(e){i.$el.style[e]=n[e]})}(e,t,i),"absolute"!==i.originalPosition&&"fixed"!==i.originalPosition&&me(t,"el-loading-parent--relative"),e.fullscreen&&e.lock&&me(t,"el-loading-parent--hidden"),t.appendChild(i.$el),h.a.nextTick(function(){i.visible=!0}),e.fullscreen&&(wl=i),i}},xl={install:function(e){e.use(gl),e.prototype.$loading=_l},directive:gl,service:_l},Cl=function(){var e=this.$createElement;return(this._self._c||e)("i",{class:"el-icon-"+this.name})};Cl._withStripped=!0;var kl=r({name:"ElIcon",props:{name:String}},Cl,[],!1,null,null,null);kl.options.__file="packages/icon/src/icon.vue";var Sl=kl.exports;Sl.install=function(e){e.component(Sl.name,Sl)};var Dl=Sl,$l={name:"ElRow",componentName:"ElRow",props:{tag:{type:String,default:"div"},gutter:Number,type:String,justify:{type:String,default:"start"},align:{type:String,default:"top"}},computed:{style:function(){var e={};return this.gutter&&(e.marginLeft="-"+this.gutter/2+"px",e.marginRight=e.marginLeft),e}},render:function(e){return e(this.tag,{class:["el-row","start"!==this.justify?"is-justify-"+this.justify:"","top"!==this.align?"is-align-"+this.align:"",{"el-row--flex":"flex"===this.type}],style:this.style},this.$slots.default)},install:function(e){e.component($l.name,$l)}},El=$l,Tl="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ml={name:"ElCol",props:{span:{type:Number,default:24},tag:{type:String,default:"div"},offset:Number,pull:Number,push:Number,xs:[Number,Object],sm:[Number,Object],md:[Number,Object],lg:[Number,Object],xl:[Number,Object]},computed:{gutter:function(){for(var e=this.$parent;e&&"ElRow"!==e.$options.componentName;)e=e.$parent;return e?e.gutter:0}},render:function(e){var t=this,i=[],n={};return this.gutter&&(n.paddingLeft=this.gutter/2+"px",n.paddingRight=n.paddingLeft),["span","offset","pull","push"].forEach(function(e){(t[e]||0===t[e])&&i.push("span"!==e?"el-col-"+e+"-"+t[e]:"el-col-"+t[e])}),["xs","sm","md","lg","xl"].forEach(function(e){if("number"==typeof t[e])i.push("el-col-"+e+"-"+t[e]);else if("object"===Tl(t[e])){var n=t[e];Object.keys(n).forEach(function(t){i.push("span"!==t?"el-col-"+e+"-"+t+"-"+n[t]:"el-col-"+e+"-"+n[t])})}}),e(this.tag,{class:["el-col",i],style:n},this.$slots.default)},install:function(e){e.component(Ml.name,Ml)}},Nl=Ml,Pl=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition-group",{class:["el-upload-list","el-upload-list--"+e.listType,{"is-disabled":e.disabled}],attrs:{tag:"ul",name:"el-list"}},e._l(e.files,function(t){return i("li",{key:t.uid,class:["el-upload-list__item","is-"+t.status,e.focusing?"focusing":""],attrs:{tabindex:"0"},on:{keydown:function(i){if(!("button"in i)&&e._k(i.keyCode,"delete",[8,46],i.key,["Backspace","Delete","Del"]))return null;!e.disabled&&e.$emit("remove",t)},focus:function(t){e.focusing=!0},blur:function(t){e.focusing=!1},click:function(t){e.focusing=!1}}},[e._t("default",["uploading"!==t.status&&["picture-card","picture"].indexOf(e.listType)>-1?i("img",{staticClass:"el-upload-list__item-thumbnail",attrs:{src:t.url,alt:""}}):e._e(),i("a",{staticClass:"el-upload-list__item-name",on:{click:function(i){e.handleClick(t)}}},[i("i",{staticClass:"el-icon-document"}),e._v(e._s(t.name)+"\n ")]),i("label",{staticClass:"el-upload-list__item-status-label"},[i("i",{class:{"el-icon-upload-success":!0,"el-icon-circle-check":"text"===e.listType,"el-icon-check":["picture-card","picture"].indexOf(e.listType)>-1}})]),e.disabled?e._e():i("i",{staticClass:"el-icon-close",on:{click:function(i){e.$emit("remove",t)}}}),e.disabled?e._e():i("i",{staticClass:"el-icon-close-tip"},[e._v(e._s(e.t("el.upload.deleteTip")))]),"uploading"===t.status?i("el-progress",{attrs:{type:"picture-card"===e.listType?"circle":"line","stroke-width":"picture-card"===e.listType?6:2,percentage:e.parsePercentage(t.percentage)}}):e._e(),"picture-card"===e.listType?i("span",{staticClass:"el-upload-list__item-actions"},[e.handlePreview&&"picture-card"===e.listType?i("span",{staticClass:"el-upload-list__item-preview",on:{click:function(i){e.handlePreview(t)}}},[i("i",{staticClass:"el-icon-zoom-in"})]):e._e(),e.disabled?e._e():i("span",{staticClass:"el-upload-list__item-delete",on:{click:function(i){e.$emit("remove",t)}}},[i("i",{staticClass:"el-icon-delete"})])]):e._e()],{file:t})],2)}),0)};Pl._withStripped=!0;var Ol=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-progress",class:["el-progress--"+e.type,e.status?"is-"+e.status:"",{"el-progress--without-text":!e.showText,"el-progress--text-inside":e.textInside}],attrs:{role:"progressbar","aria-valuenow":e.percentage,"aria-valuemin":"0","aria-valuemax":"100"}},["line"===e.type?i("div",{staticClass:"el-progress-bar"},[i("div",{staticClass:"el-progress-bar__outer",style:{height:e.strokeWidth+"px"}},[i("div",{staticClass:"el-progress-bar__inner",style:e.barStyle},[e.showText&&e.textInside?i("div",{staticClass:"el-progress-bar__innerText"},[e._v(e._s(e.content))]):e._e()])])]):i("div",{staticClass:"el-progress-circle",style:{height:e.width+"px",width:e.width+"px"}},[i("svg",{attrs:{viewBox:"0 0 100 100"}},[i("path",{staticClass:"el-progress-circle__track",style:e.trailPathStyle,attrs:{d:e.trackPath,stroke:"#e5e9f2","stroke-width":e.relativeStrokeWidth,fill:"none"}}),i("path",{staticClass:"el-progress-circle__path",style:e.circlePathStyle,attrs:{d:e.trackPath,stroke:e.stroke,fill:"none","stroke-linecap":e.strokeLinecap,"stroke-width":e.percentage?e.relativeStrokeWidth:0}})])]),e.showText&&!e.textInside?i("div",{staticClass:"el-progress__text",style:{fontSize:e.progressTextSize+"px"}},[e.status?i("i",{class:e.iconClass}):[e._v(e._s(e.content))]],2):e._e()])};Ol._withStripped=!0;var Il=r({name:"ElProgress",props:{type:{type:String,default:"line",validator:function(e){return["line","circle","dashboard"].indexOf(e)>-1}},percentage:{type:Number,default:0,required:!0,validator:function(e){return e>=0&&e<=100}},status:{type:String,validator:function(e){return["success","exception","warning"].indexOf(e)>-1}},strokeWidth:{type:Number,default:6},strokeLinecap:{type:String,default:"round"},textInside:{type:Boolean,default:!1},width:{type:Number,default:126},showText:{type:Boolean,default:!0},color:{type:[String,Array,Function],default:""},format:Function},computed:{barStyle:function(){var e={};return e.width=this.percentage+"%",e.backgroundColor=this.getCurrentColor(this.percentage),e},relativeStrokeWidth:function(){return(this.strokeWidth/this.width*100).toFixed(1)},radius:function(){return"circle"===this.type||"dashboard"===this.type?parseInt(50-parseFloat(this.relativeStrokeWidth)/2,10):0},trackPath:function(){var e=this.radius,t="dashboard"===this.type;return"\n M 50 50\n m 0 "+(t?"":"-")+e+"\n a "+e+" "+e+" 0 1 1 0 "+(t?"-":"")+2*e+"\n a "+e+" "+e+" 0 1 1 0 "+(t?"":"-")+2*e+"\n "},perimeter:function(){return 2*Math.PI*this.radius},rate:function(){return"dashboard"===this.type?.75:1},strokeDashoffset:function(){return-1*this.perimeter*(1-this.rate)/2+"px"},trailPathStyle:function(){return{strokeDasharray:this.perimeter*this.rate+"px, "+this.perimeter+"px",strokeDashoffset:this.strokeDashoffset}},circlePathStyle:function(){return{strokeDasharray:this.perimeter*this.rate*(this.percentage/100)+"px, "+this.perimeter+"px",strokeDashoffset:this.strokeDashoffset,transition:"stroke-dasharray 0.6s ease 0s, stroke 0.6s ease"}},stroke:function(){var e=void 0;if(this.color)e=this.getCurrentColor(this.percentage);else switch(this.status){case"success":e="#13ce66";break;case"exception":e="#ff4949";break;case"warning":e="#e6a23c";break;default:e="#20a0ff"}return e},iconClass:function(){return"warning"===this.status?"el-icon-warning":"line"===this.type?"success"===this.status?"el-icon-circle-check":"el-icon-circle-close":"success"===this.status?"el-icon-check":"el-icon-close"},progressTextSize:function(){return"line"===this.type?12+.4*this.strokeWidth:.111111*this.width+2},content:function(){return"function"==typeof this.format?this.format(this.percentage)||"":this.percentage+"%"}},methods:{getCurrentColor:function(e){return"function"==typeof this.color?this.color(e):"string"==typeof this.color?this.color:this.getLevelColor(e)},getLevelColor:function(e){for(var t=this.getColorArray().sort(function(e,t){return e.percentage-t.percentage}),i=0;i<t.length;i++)if(t[i].percentage>e)return t[i].color;return t[t.length-1].color},getColorArray:function(){var e=this.color,t=100/e.length;return e.map(function(e,i){return"string"==typeof e?{color:e,percentage:(i+1)*t}:e})}}},Ol,[],!1,null,null,null);Il.options.__file="packages/progress/src/progress.vue";var Al=Il.exports;Al.install=function(e){e.component(Al.name,Al)};var Fl=Al,Ll=r({name:"ElUploadList",mixins:[Y],data:function(){return{focusing:!1}},components:{ElProgress:Fl},props:{files:{type:Array,default:function(){return[]}},disabled:{type:Boolean,default:!1},handlePreview:Function,listType:String},methods:{parsePercentage:function(e){return parseInt(e,10)},handleClick:function(e){this.handlePreview&&this.handlePreview(e)}}},Pl,[],!1,null,null,null);Ll.options.__file="packages/upload/src/upload-list.vue";var Vl=Ll.exports,Bl=i(6),zl=i.n(Bl);var Hl=function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{staticClass:"el-upload-dragger",class:{"is-dragover":e.dragover},on:{drop:function(t){return t.preventDefault(),e.onDrop(t)},dragover:function(t){return t.preventDefault(),e.onDragover(t)},dragleave:function(t){t.preventDefault(),e.dragover=!1}}},[e._t("default")],2)};Hl._withStripped=!0;var Rl=r({name:"ElUploadDrag",props:{disabled:Boolean},inject:{uploader:{default:""}},data:function(){return{dragover:!1}},methods:{onDragover:function(){this.disabled||(this.dragover=!0)},onDrop:function(e){if(!this.disabled&&this.uploader){var t=this.uploader.accept;this.dragover=!1,t?this.$emit("file",[].slice.call(e.dataTransfer.files).filter(function(e){var i=e.type,n=e.name,r=n.indexOf(".")>-1?"."+n.split(".").pop():"",s=i.replace(/\/.*$/,"");return t.split(",").map(function(e){return e.trim()}).filter(function(e){return e}).some(function(e){return/\..+$/.test(e)?r===e:/\/\*$/.test(e)?s===e.replace(/\/\*$/,""):!!/^[^\/]+\/[^\/]+$/.test(e)&&i===e})})):this.$emit("file",e.dataTransfer.files)}}}},Hl,[],!1,null,null,null);Rl.options.__file="packages/upload/src/upload-dragger.vue";var Wl=r({inject:["uploader"],components:{UploadDragger:Rl.exports},props:{type:String,action:{type:String,required:!0},name:{type:String,default:"file"},data:Object,headers:Object,withCredentials:Boolean,multiple:Boolean,accept:String,onStart:Function,onProgress:Function,onSuccess:Function,onError:Function,beforeUpload:Function,drag:Boolean,onPreview:{type:Function,default:function(){}},onRemove:{type:Function,default:function(){}},fileList:Array,autoUpload:Boolean,listType:String,httpRequest:{type:Function,default:function(e){if("undefined"!=typeof XMLHttpRequest){var t=new XMLHttpRequest,i=e.action;t.upload&&(t.upload.onprogress=function(t){t.total>0&&(t.percent=t.loaded/t.total*100),e.onProgress(t)});var n=new FormData;e.data&&Object.keys(e.data).forEach(function(t){n.append(t,e.data[t])}),n.append(e.filename,e.file,e.file.name),t.onerror=function(t){e.onError(t)},t.onload=function(){if(t.status<200||t.status>=300)return e.onError(function(e,t,i){var n=void 0;n=i.response?""+(i.response.error||i.response):i.responseText?""+i.responseText:"fail to post "+e+" "+i.status;var r=new Error(n);return r.status=i.status,r.method="post",r.url=e,r}(i,0,t));e.onSuccess(function(e){var t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch(e){return t}}(t))},t.open("post",i,!0),e.withCredentials&&"withCredentials"in t&&(t.withCredentials=!0);var r=e.headers||{};for(var s in r)r.hasOwnProperty(s)&&null!==r[s]&&t.setRequestHeader(s,r[s]);return t.send(n),t}}},disabled:Boolean,limit:Number,onExceed:Function},data:function(){return{mouseover:!1,reqs:{}}},methods:{isImage:function(e){return-1!==e.indexOf("image")},handleChange:function(e){var t=e.target.files;t&&this.uploadFiles(t)},uploadFiles:function(e){var t=this;if(this.limit&&this.fileList.length+e.length>this.limit)this.onExceed&&this.onExceed(e,this.fileList);else{var i=Array.prototype.slice.call(e);this.multiple||(i=i.slice(0,1)),0!==i.length&&i.forEach(function(e){t.onStart(e),t.autoUpload&&t.upload(e)})}},upload:function(e){var t=this;if(this.$refs.input.value=null,!this.beforeUpload)return this.post(e);var i=this.beforeUpload(e);i&&i.then?i.then(function(i){var n=Object.prototype.toString.call(i);if("[object File]"===n||"[object Blob]"===n){for(var r in"[object Blob]"===n&&(i=new File([i],e.name,{type:e.type})),e)e.hasOwnProperty(r)&&(i[r]=e[r]);t.post(i)}else t.post(e)},function(){t.onRemove(null,e)}):!1!==i?this.post(e):this.onRemove(null,e)},abort:function(e){var t=this.reqs;if(e){var i=e;e.uid&&(i=e.uid),t[i]&&t[i].abort()}else Object.keys(t).forEach(function(e){t[e]&&t[e].abort(),delete t[e]})},post:function(e){var t=this,i=e.uid,n={headers:this.headers,withCredentials:this.withCredentials,file:e,data:this.data,filename:this.name,action:this.action,onProgress:function(i){t.onProgress(i,e)},onSuccess:function(n){t.onSuccess(n,e),delete t.reqs[i]},onError:function(n){t.onError(n,e),delete t.reqs[i]}},r=this.httpRequest(n);this.reqs[i]=r,r&&r.then&&r.then(n.onSuccess,n.onError)},handleClick:function(){this.disabled||(this.$refs.input.value=null,this.$refs.input.click())},handleKeydown:function(e){e.target===e.currentTarget&&(13!==e.keyCode&&32!==e.keyCode||this.handleClick())}},render:function(e){var t=this.handleClick,i=this.drag,n=this.name,r=this.handleChange,s=this.multiple,a=this.accept,o=this.listType,l=this.uploadFiles,u=this.disabled,c={class:{"el-upload":!0},on:{click:t,keydown:this.handleKeydown}};return c.class["el-upload--"+o]=!0,e("div",zl()([c,{attrs:{tabindex:"0"}}]),[i?e("upload-dragger",{attrs:{disabled:u},on:{file:l}},[this.$slots.default]):this.$slots.default,e("input",{class:"el-upload__input",attrs:{type:"file",name:n,multiple:s,accept:a},ref:"input",on:{change:r}})])}},void 0,void 0,!1,null,null,null);Wl.options.__file="packages/upload/src/upload.vue";var jl=Wl.exports;function ql(){}var Yl=r({name:"ElUpload",mixins:[G],components:{ElProgress:Fl,UploadList:Vl,Upload:jl},provide:function(){return{uploader:this}},inject:{elForm:{default:""}},props:{action:{type:String,required:!0},headers:{type:Object,default:function(){return{}}},data:Object,multiple:Boolean,name:{type:String,default:"file"},drag:Boolean,dragger:Boolean,withCredentials:Boolean,showFileList:{type:Boolean,default:!0},accept:String,type:{type:String,default:"select"},beforeUpload:Function,beforeRemove:Function,onRemove:{type:Function,default:ql},onChange:{type:Function,default:ql},onPreview:{type:Function},onSuccess:{type:Function,default:ql},onProgress:{type:Function,default:ql},onError:{type:Function,default:ql},fileList:{type:Array,default:function(){return[]}},autoUpload:{type:Boolean,default:!0},listType:{type:String,default:"text"},httpRequest:Function,disabled:Boolean,limit:Number,onExceed:{type:Function,default:ql}},data:function(){return{uploadFiles:[],dragOver:!1,draging:!1,tempIndex:1}},computed:{uploadDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},watch:{listType:function(e){"picture-card"!==e&&"picture"!==e||(this.uploadFiles=this.uploadFiles.map(function(e){if(!e.url&&e.raw)try{e.url=URL.createObjectURL(e.raw)}catch(e){console.error("[Element Error][Upload]",e)}return e}))},fileList:{immediate:!0,handler:function(e){var t=this;this.uploadFiles=e.map(function(e){return e.uid=e.uid||Date.now()+t.tempIndex++,e.status=e.status||"success",e})}}},methods:{handleStart:function(e){e.uid=Date.now()+this.tempIndex++;var t={status:"ready",name:e.name,size:e.size,percentage:0,uid:e.uid,raw:e};if("picture-card"===this.listType||"picture"===this.listType)try{t.url=URL.createObjectURL(e)}catch(e){return void console.error("[Element Error][Upload]",e)}this.uploadFiles.push(t),this.onChange(t,this.uploadFiles)},handleProgress:function(e,t){var i=this.getFile(t);this.onProgress(e,i,this.uploadFiles),i.status="uploading",i.percentage=e.percent||0},handleSuccess:function(e,t){var i=this.getFile(t);i&&(i.status="success",i.response=e,this.onSuccess(e,i,this.uploadFiles),this.onChange(i,this.uploadFiles))},handleError:function(e,t){var i=this.getFile(t),n=this.uploadFiles;i.status="fail",n.splice(n.indexOf(i),1),this.onError(e,i,this.uploadFiles),this.onChange(i,this.uploadFiles)},handleRemove:function(e,t){var i=this;t&&(e=this.getFile(t));var n=function(){i.abort(e);var t=i.uploadFiles;t.splice(t.indexOf(e),1),i.onRemove(e,t)};if(this.beforeRemove){if("function"==typeof this.beforeRemove){var r=this.beforeRemove(e,this.uploadFiles);r&&r.then?r.then(function(){n()},ql):!1!==r&&n()}}else n()},getFile:function(e){var t=this.uploadFiles,i=void 0;return t.every(function(t){return!(i=e.uid===t.uid?t:null)}),i},abort:function(e){this.$refs["upload-inner"].abort(e)},clearFiles:function(){this.uploadFiles=[]},submit:function(){var e=this;this.uploadFiles.filter(function(e){return"ready"===e.status}).forEach(function(t){e.$refs["upload-inner"].upload(t.raw)})},getMigratingConfig:function(){return{props:{"default-file-list":"default-file-list is renamed to file-list.","show-upload-list":"show-upload-list is renamed to show-file-list.","thumbnail-mode":"thumbnail-mode has been deprecated, you can implement the same effect according to this case: http://element.eleme.io/#/zh-CN/component/upload#yong-hu-tou-xiang-shang-chuan"}}}},beforeDestroy:function(){this.uploadFiles.forEach(function(e){e.url&&0===e.url.indexOf("blob:")&&URL.revokeObjectURL(e.url)})},render:function(e){var t=this,i=void 0;this.showFileList&&(i=e(Vl,{attrs:{disabled:this.uploadDisabled,listType:this.listType,files:this.uploadFiles,handlePreview:this.onPreview},on:{remove:this.handleRemove}},[function(e){if(t.$scopedSlots.file)return t.$scopedSlots.file({file:e.file})}]));var n=e("upload",{props:{type:this.type,drag:this.drag,action:this.action,multiple:this.multiple,"before-upload":this.beforeUpload,"with-credentials":this.withCredentials,headers:this.headers,name:this.name,data:this.data,accept:this.accept,fileList:this.uploadFiles,autoUpload:this.autoUpload,listType:this.listType,disabled:this.uploadDisabled,limit:this.limit,"on-exceed":this.onExceed,"on-start":this.handleStart,"on-progress":this.handleProgress,"on-success":this.handleSuccess,"on-error":this.handleError,"on-preview":this.onPreview,"on-remove":this.handleRemove,"http-request":this.httpRequest},ref:"upload-inner"},[this.$slots.trigger||this.$slots.default]);return e("div",["picture-card"===this.listType?i:"",this.$slots.trigger?[n,this.$slots.default]:n,this.$slots.tip,"picture-card"!==this.listType?i:""])}},void 0,void 0,!1,null,null,null);Yl.options.__file="packages/upload/src/index.vue";var Kl=Yl.exports;Kl.install=function(e){e.component(Kl.name,Kl)};var Gl=Kl,Ul=function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"el-spinner"},[t("svg",{staticClass:"el-spinner-inner",style:{width:this.radius/2+"px",height:this.radius/2+"px"},attrs:{viewBox:"0 0 50 50"}},[t("circle",{staticClass:"path",attrs:{cx:"25",cy:"25",r:"20",fill:"none",stroke:this.strokeColor,"stroke-width":this.strokeWidth}})])])};Ul._withStripped=!0;var Xl=r({name:"ElSpinner",props:{type:String,radius:{type:Number,default:100},strokeWidth:{type:Number,default:5},strokeColor:{type:String,default:"#efefef"}}},Ul,[],!1,null,null,null);Xl.options.__file="packages/spinner/src/spinner.vue";var Zl=Xl.exports;Zl.install=function(e){e.component(Zl.name,Zl)};var Jl=Zl,Ql=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-message-fade"},on:{"after-leave":e.handleAfterLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],class:["el-message",e.type&&!e.iconClass?"el-message--"+e.type:"",e.center?"is-center":"",e.showClose?"is-closable":"",e.customClass],style:e.positionStyle,attrs:{role:"alert"},on:{mouseenter:e.clearTimer,mouseleave:e.startTimer}},[e.iconClass?i("i",{class:e.iconClass}):i("i",{class:e.typeClass}),e._t("default",[e.dangerouslyUseHTMLString?i("p",{staticClass:"el-message__content",domProps:{innerHTML:e._s(e.message)}}):i("p",{staticClass:"el-message__content"},[e._v(e._s(e.message))])]),e.showClose?i("i",{staticClass:"el-message__closeBtn el-icon-close",on:{click:e.close}}):e._e()],2)])};Ql._withStripped=!0;var eu={success:"success",info:"info",warning:"warning",error:"error"},tu=r({data:function(){return{visible:!1,message:"",duration:3e3,type:"info",iconClass:"",customClass:"",onClose:null,showClose:!1,closed:!1,verticalOffset:20,timer:null,dangerouslyUseHTMLString:!1,center:!1}},computed:{typeClass:function(){return this.type&&!this.iconClass?"el-message__icon el-icon-"+eu[this.type]:""},positionStyle:function(){return{top:this.verticalOffset+"px"}}},watch:{closed:function(e){e&&(this.visible=!1)}},methods:{handleAfterLeave:function(){this.$destroy(!0),this.$el.parentNode.removeChild(this.$el)},close:function(){this.closed=!0,"function"==typeof this.onClose&&this.onClose(this)},clearTimer:function(){clearTimeout(this.timer)},startTimer:function(){var e=this;this.duration>0&&(this.timer=setTimeout(function(){e.closed||e.close()},this.duration))},keydown:function(e){27===e.keyCode&&(this.closed||this.close())}},mounted:function(){this.startTimer(),document.addEventListener("keydown",this.keydown)},beforeDestroy:function(){document.removeEventListener("keydown",this.keydown)}},Ql,[],!1,null,null,null);tu.options.__file="packages/message/src/main.vue";var iu=tu.exports,nu=h.a.extend(iu),ru=void 0,su=[],au=1,ou=function e(t){if(!h.a.prototype.$isServer){"string"==typeof(t=t||{})&&(t={message:t});var i=t.onClose,n="message_"+au++;t.onClose=function(){e.close(n,i)},(ru=new nu({data:t})).id=n,ca(ru.message)&&(ru.$slots.default=[ru.message],ru.message=null),ru.$mount(),document.body.appendChild(ru.$el);var r=t.offset||20;return su.forEach(function(e){r+=e.$el.offsetHeight+16}),ru.verticalOffset=r,ru.visible=!0,ru.$el.style.zIndex=De.nextZIndex(),su.push(ru),ru}};["success","warning","info","error"].forEach(function(e){ou[e]=function(t){return"string"==typeof t&&(t={message:t}),t.type=e,ou(t)}}),ou.close=function(e,t){for(var i=su.length,n=-1,r=void 0,s=0;s<i;s++)if(e===su[s].id){r=su[s].$el.offsetHeight,n=s,"function"==typeof t&&t(su[s]),su.splice(s,1);break}if(!(i<=1||-1===n||n>su.length-1))for(var a=n;a<i-1;a++){var o=su[a].$el;o.style.top=parseInt(o.style.top,10)-r-16+"px"}},ou.closeAll=function(){for(var e=su.length-1;e>=0;e--)su[e].close()};var lu=ou,uu=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-badge"},[e._t("default"),i("transition",{attrs:{name:"el-zoom-in-center"}},[i("sup",{directives:[{name:"show",rawName:"v-show",value:!e.hidden&&(e.content||0===e.content||e.isDot),expression:"!hidden && (content || content === 0 || isDot)"}],staticClass:"el-badge__content",class:["el-badge__content--"+e.type,{"is-fixed":e.$slots.default,"is-dot":e.isDot}],domProps:{textContent:e._s(e.content)}})])],2)};uu._withStripped=!0;var cu=r({name:"ElBadge",props:{value:[String,Number],max:Number,isDot:Boolean,hidden:Boolean,type:{type:String,validator:function(e){return["primary","success","warning","info","danger"].indexOf(e)>-1}}},computed:{content:function(){if(!this.isDot){var e=this.value,t=this.max;return"number"==typeof e&&"number"==typeof t&&t<e?t+"+":e}}}},uu,[],!1,null,null,null);cu.options.__file="packages/badge/src/main.vue";var hu=cu.exports;hu.install=function(e){e.component(hu.name,hu)};var du=hu,pu=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-card",class:e.shadow?"is-"+e.shadow+"-shadow":"is-always-shadow"},[e.$slots.header||e.header?i("div",{staticClass:"el-card__header"},[e._t("header",[e._v(e._s(e.header))])],2):e._e(),i("div",{staticClass:"el-card__body",style:e.bodyStyle},[e._t("default")],2)])};pu._withStripped=!0;var fu=r({name:"ElCard",props:{header:{},bodyStyle:{},shadow:{type:String}}},pu,[],!1,null,null,null);fu.options.__file="packages/card/src/main.vue";var mu=fu.exports;mu.install=function(e){e.component(mu.name,mu)};var vu=mu,gu=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-rate",attrs:{role:"slider","aria-valuenow":e.currentValue,"aria-valuetext":e.text,"aria-valuemin":"0","aria-valuemax":e.max,tabindex:"0"},on:{keydown:e.handleKey}},[e._l(e.max,function(t,n){return i("span",{key:n,staticClass:"el-rate__item",style:{cursor:e.rateDisabled?"auto":"pointer"},on:{mousemove:function(i){e.setCurrentValue(t,i)},mouseleave:e.resetCurrentValue,click:function(i){e.selectValue(t)}}},[i("i",{staticClass:"el-rate__icon",class:[e.classes[t-1],{hover:e.hoverIndex===t}],style:e.getIconStyle(t)},[e.showDecimalIcon(t)?i("i",{staticClass:"el-rate__decimal",class:e.decimalIconClass,style:e.decimalStyle}):e._e()])])}),e.showText||e.showScore?i("span",{staticClass:"el-rate__text",style:{color:e.textColor}},[e._v(e._s(e.text))]):e._e()],2)};gu._withStripped=!0;var bu=r({name:"ElRate",mixins:[G],inject:{elForm:{default:""}},data:function(){return{pointerAtLeftHalf:!0,currentValue:this.value,hoverIndex:-1}},props:{value:{type:Number,default:0},lowThreshold:{type:Number,default:2},highThreshold:{type:Number,default:4},max:{type:Number,default:5},colors:{type:[Array,Object],default:function(){return["#F7BA2A","#F7BA2A","#F7BA2A"]}},voidColor:{type:String,default:"#C6D1DE"},disabledVoidColor:{type:String,default:"#EFF2F7"},iconClasses:{type:[Array,Object],default:function(){return["el-icon-star-on","el-icon-star-on","el-icon-star-on"]}},voidIconClass:{type:String,default:"el-icon-star-off"},disabledVoidIconClass:{type:String,default:"el-icon-star-on"},disabled:{type:Boolean,default:!1},allowHalf:{type:Boolean,default:!1},showText:{type:Boolean,default:!1},showScore:{type:Boolean,default:!1},textColor:{type:String,default:"#1f2d3d"},texts:{type:Array,default:function(){return["极差","失望","一般","满意","惊喜"]}},scoreTemplate:{type:String,default:"{value}"}},computed:{text:function(){var e="";return this.showScore?e=this.scoreTemplate.replace(/\{\s*value\s*\}/,this.rateDisabled?this.value:this.currentValue):this.showText&&(e=this.texts[Math.ceil(this.currentValue)-1]),e},decimalStyle:function(){var e="";return this.rateDisabled?e=this.valueDecimal+"%":this.allowHalf&&(e="50%"),{color:this.activeColor,width:e}},valueDecimal:function(){return 100*this.value-100*Math.floor(this.value)},classMap:function(){var e;return Array.isArray(this.iconClasses)?((e={})[this.lowThreshold]=this.iconClasses[0],e[this.highThreshold]={value:this.iconClasses[1],excluded:!0},e[this.max]=this.iconClasses[2],e):this.iconClasses},decimalIconClass:function(){return this.getValueFromMap(this.value,this.classMap)},voidClass:function(){return this.rateDisabled?this.disabledVoidIconClass:this.voidIconClass},activeClass:function(){return this.getValueFromMap(this.currentValue,this.classMap)},colorMap:function(){var e;return Array.isArray(this.colors)?((e={})[this.lowThreshold]=this.colors[0],e[this.highThreshold]={value:this.colors[1],excluded:!0},e[this.max]=this.colors[2],e):this.colors},activeColor:function(){return this.getValueFromMap(this.currentValue,this.colorMap)},classes:function(){var e=[],t=0,i=this.currentValue;for(this.allowHalf&&this.currentValue!==Math.floor(this.currentValue)&&i--;t<i;t++)e.push(this.activeClass);for(;t<this.max;t++)e.push(this.voidClass);return e},rateDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},watch:{value:function(e){this.currentValue=e,this.pointerAtLeftHalf=this.value!==Math.floor(this.value)}},methods:{getMigratingConfig:function(){return{props:{"text-template":"text-template is renamed to score-template."}}},getValueFromMap:function(e,t){var i=Object.keys(t).filter(function(i){var n=t[i];return!!v(n)&&n.excluded?e<i:e<=i}).sort(function(e,t){return e-t}),n=t[i[0]];return v(n)?n.value:n||""},showDecimalIcon:function(e){var t=this.rateDisabled&&this.valueDecimal>0&&e-1<this.value&&e>this.value,i=this.allowHalf&&this.pointerAtLeftHalf&&e-.5<=this.currentValue&&e>this.currentValue;return t||i},getIconStyle:function(e){var t=this.rateDisabled?this.disabledVoidColor:this.voidColor;return{color:e<=this.currentValue?this.activeColor:t}},selectValue:function(e){this.rateDisabled||(this.allowHalf&&this.pointerAtLeftHalf?(this.$emit("input",this.currentValue),this.$emit("change",this.currentValue)):(this.$emit("input",e),this.$emit("change",e)))},handleKey:function(e){if(!this.rateDisabled){var t=this.currentValue,i=e.keyCode;38===i||39===i?(this.allowHalf?t+=.5:t+=1,e.stopPropagation(),e.preventDefault()):37!==i&&40!==i||(this.allowHalf?t-=.5:t-=1,e.stopPropagation(),e.preventDefault()),t=(t=t<0?0:t)>this.max?this.max:t,this.$emit("input",t),this.$emit("change",t)}},setCurrentValue:function(e,t){if(!this.rateDisabled){if(this.allowHalf){var i=t.target;fe(i,"el-rate__item")&&(i=i.querySelector(".el-rate__icon")),fe(i,"el-rate__decimal")&&(i=i.parentNode),this.pointerAtLeftHalf=2*t.offsetX<=i.clientWidth,this.currentValue=this.pointerAtLeftHalf?e-.5:e}else this.currentValue=e;this.hoverIndex=e}},resetCurrentValue:function(){this.rateDisabled||(this.allowHalf&&(this.pointerAtLeftHalf=this.value!==Math.floor(this.value)),this.currentValue=this.value,this.hoverIndex=-1)}},created:function(){this.value||this.$emit("input",0)}},gu,[],!1,null,null,null);bu.options.__file="packages/rate/src/main.vue";var yu=bu.exports;yu.install=function(e){e.component(yu.name,yu)};var wu=yu,_u=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-steps",class:[!this.simple&&"el-steps--"+this.direction,this.simple&&"el-steps--simple"]},[this._t("default")],2)};_u._withStripped=!0;var xu=r({name:"ElSteps",mixins:[G],props:{space:[Number,String],active:Number,direction:{type:String,default:"horizontal"},alignCenter:Boolean,simple:Boolean,finishStatus:{type:String,default:"finish"},processStatus:{type:String,default:"process"}},data:function(){return{steps:[],stepOffset:0}},methods:{getMigratingConfig:function(){return{props:{center:"center is removed."}}}},watch:{active:function(e,t){this.$emit("change",e,t)},steps:function(e){e.forEach(function(e,t){e.index=t})}}},_u,[],!1,null,null,null);xu.options.__file="packages/steps/src/steps.vue";var Cu=xu.exports;Cu.install=function(e){e.component(Cu.name,Cu)};var ku=Cu,Su=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-step",class:[!e.isSimple&&"is-"+e.$parent.direction,e.isSimple&&"is-simple",e.isLast&&!e.space&&!e.isCenter&&"is-flex",e.isCenter&&!e.isVertical&&!e.isSimple&&"is-center"],style:e.style},[i("div",{staticClass:"el-step__head",class:"is-"+e.currentStatus},[i("div",{staticClass:"el-step__line",style:e.isLast?"":{marginRight:e.$parent.stepOffset+"px"}},[i("i",{staticClass:"el-step__line-inner",style:e.lineStyle})]),i("div",{staticClass:"el-step__icon",class:"is-"+(e.icon?"icon":"text")},["success"!==e.currentStatus&&"error"!==e.currentStatus?e._t("icon",[e.icon?i("i",{staticClass:"el-step__icon-inner",class:[e.icon]}):e._e(),e.icon||e.isSimple?e._e():i("div",{staticClass:"el-step__icon-inner"},[e._v(e._s(e.index+1))])]):i("i",{staticClass:"el-step__icon-inner is-status",class:["el-icon-"+("success"===e.currentStatus?"check":"close")]})],2)]),i("div",{staticClass:"el-step__main"},[i("div",{ref:"title",staticClass:"el-step__title",class:["is-"+e.currentStatus]},[e._t("title",[e._v(e._s(e.title))])],2),e.isSimple?i("div",{staticClass:"el-step__arrow"}):i("div",{staticClass:"el-step__description",class:["is-"+e.currentStatus]},[e._t("description",[e._v(e._s(e.description))])],2)])])};Su._withStripped=!0;var Du=r({name:"ElStep",props:{title:String,icon:String,description:String,status:String},data:function(){return{index:-1,lineStyle:{},internalStatus:""}},beforeCreate:function(){this.$parent.steps.push(this)},beforeDestroy:function(){var e=this.$parent.steps,t=e.indexOf(this);t>=0&&e.splice(t,1)},computed:{currentStatus:function(){return this.status||this.internalStatus},prevStatus:function(){var e=this.$parent.steps[this.index-1];return e?e.currentStatus:"wait"},isCenter:function(){return this.$parent.alignCenter},isVertical:function(){return"vertical"===this.$parent.direction},isSimple:function(){return this.$parent.simple},isLast:function(){var e=this.$parent;return e.steps[e.steps.length-1]===this},stepsCount:function(){return this.$parent.steps.length},space:function(){var e=this.isSimple,t=this.$parent.space;return e?"":t},style:function(){var e={},t=this.$parent.steps.length,i="number"==typeof this.space?this.space+"px":this.space?this.space:100/(t-(this.isCenter?0:1))+"%";return e.flexBasis=i,this.isVertical?e:(this.isLast?e.maxWidth=100/this.stepsCount+"%":e.marginRight=-this.$parent.stepOffset+"px",e)}},methods:{updateStatus:function(e){var t=this.$parent.$children[this.index-1];e>this.index?this.internalStatus=this.$parent.finishStatus:e===this.index&&"error"!==this.prevStatus?this.internalStatus=this.$parent.processStatus:this.internalStatus="wait",t&&t.calcProgress(this.internalStatus)},calcProgress:function(e){var t=100,i={};i.transitionDelay=150*this.index+"ms",e===this.$parent.processStatus?(this.currentStatus,t=0):"wait"===e&&(t=0,i.transitionDelay=-150*this.index+"ms"),i.borderWidth=t&&!this.isSimple?"1px":0,"vertical"===this.$parent.direction?i.height=t+"%":i.width=t+"%",this.lineStyle=i}},mounted:function(){var e=this,t=this.$watch("index",function(i){e.$watch("$parent.active",e.updateStatus,{immediate:!0}),e.$watch("$parent.processStatus",function(){var t=e.$parent.active;e.updateStatus(t)},{immediate:!0}),t()})}},Su,[],!1,null,null,null);Du.options.__file="packages/steps/src/step.vue";var $u=Du.exports;$u.install=function(e){e.component($u.name,$u)};var Eu=$u,Tu=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:e.carouselClasses,on:{mouseenter:function(t){return t.stopPropagation(),e.handleMouseEnter(t)},mouseleave:function(t){return t.stopPropagation(),e.handleMouseLeave(t)}}},[i("div",{staticClass:"el-carousel__container",style:{height:e.height}},[e.arrowDisplay?i("transition",{attrs:{name:"carousel-arrow-left"}},[i("button",{directives:[{name:"show",rawName:"v-show",value:("always"===e.arrow||e.hover)&&(e.loop||e.activeIndex>0),expression:"(arrow === 'always' || hover) && (loop || activeIndex > 0)"}],staticClass:"el-carousel__arrow el-carousel__arrow--left",attrs:{type:"button"},on:{mouseenter:function(t){e.handleButtonEnter("left")},mouseleave:e.handleButtonLeave,click:function(t){t.stopPropagation(),e.throttledArrowClick(e.activeIndex-1)}}},[i("i",{staticClass:"el-icon-arrow-left"})])]):e._e(),e.arrowDisplay?i("transition",{attrs:{name:"carousel-arrow-right"}},[i("button",{directives:[{name:"show",rawName:"v-show",value:("always"===e.arrow||e.hover)&&(e.loop||e.activeIndex<e.items.length-1),expression:"(arrow === 'always' || hover) && (loop || activeIndex < items.length - 1)"}],staticClass:"el-carousel__arrow el-carousel__arrow--right",attrs:{type:"button"},on:{mouseenter:function(t){e.handleButtonEnter("right")},mouseleave:e.handleButtonLeave,click:function(t){t.stopPropagation(),e.throttledArrowClick(e.activeIndex+1)}}},[i("i",{staticClass:"el-icon-arrow-right"})])]):e._e(),e._t("default")],2),"none"!==e.indicatorPosition?i("ul",{class:e.indicatorsClasses},e._l(e.items,function(t,n){return i("li",{key:n,class:["el-carousel__indicator","el-carousel__indicator--"+e.direction,{"is-active":n===e.activeIndex}],on:{mouseenter:function(t){e.throttledIndicatorHover(n)},click:function(t){t.stopPropagation(),e.handleIndicatorClick(n)}}},[i("button",{staticClass:"el-carousel__button"},[e.hasLabel?i("span",[e._v(e._s(t.label))]):e._e()])])}),0):e._e()])};Tu._withStripped=!0;var Mu=i(4),Nu=i.n(Mu),Pu=r({name:"ElCarousel",props:{initialIndex:{type:Number,default:0},height:String,trigger:{type:String,default:"hover"},autoplay:{type:Boolean,default:!0},interval:{type:Number,default:3e3},indicatorPosition:String,indicator:{type:Boolean,default:!0},arrow:{type:String,default:"hover"},type:String,loop:{type:Boolean,default:!0},direction:{type:String,default:"horizontal",validator:function(e){return-1!==["horizontal","vertical"].indexOf(e)}}},data:function(){return{items:[],activeIndex:-1,containerWidth:0,timer:null,hover:!1}},computed:{arrowDisplay:function(){return"never"!==this.arrow&&"vertical"!==this.direction},hasLabel:function(){return this.items.some(function(e){return e.label.toString().length>0})},carouselClasses:function(){var e=["el-carousel","el-carousel--"+this.direction];return"card"===this.type&&e.push("el-carousel--card"),e},indicatorsClasses:function(){var e=["el-carousel__indicators","el-carousel__indicators--"+this.direction];return this.hasLabel&&e.push("el-carousel__indicators--labels"),"outside"!==this.indicatorPosition&&"card"!==this.type||e.push("el-carousel__indicators--outside"),e}},watch:{items:function(e){e.length>0&&this.setActiveItem(this.initialIndex)},activeIndex:function(e,t){this.resetItemPosition(t),t>-1&&this.$emit("change",e,t)},autoplay:function(e){e?this.startTimer():this.pauseTimer()},loop:function(){this.setActiveItem(this.activeIndex)},interval:function(){this.pauseTimer(),this.startTimer()}},methods:{handleMouseEnter:function(){this.hover=!0,this.pauseTimer()},handleMouseLeave:function(){this.hover=!1,this.startTimer()},itemInStage:function(e,t){var i=this.items.length;return t===i-1&&e.inStage&&this.items[0].active||e.inStage&&this.items[t+1]&&this.items[t+1].active?"left":!!(0===t&&e.inStage&&this.items[i-1].active||e.inStage&&this.items[t-1]&&this.items[t-1].active)&&"right"},handleButtonEnter:function(e){var t=this;"vertical"!==this.direction&&this.items.forEach(function(i,n){e===t.itemInStage(i,n)&&(i.hover=!0)})},handleButtonLeave:function(){"vertical"!==this.direction&&this.items.forEach(function(e){e.hover=!1})},updateItems:function(){this.items=this.$children.filter(function(e){return"ElCarouselItem"===e.$options.name})},resetItemPosition:function(e){var t=this;this.items.forEach(function(i,n){i.translateItem(n,t.activeIndex,e)})},playSlides:function(){this.activeIndex<this.items.length-1?this.activeIndex++:this.loop&&(this.activeIndex=0)},pauseTimer:function(){this.timer&&(clearInterval(this.timer),this.timer=null)},startTimer:function(){this.interval<=0||!this.autoplay||this.timer||(this.timer=setInterval(this.playSlides,this.interval))},setActiveItem:function(e){if("string"==typeof e){var t=this.items.filter(function(t){return t.name===e});t.length>0&&(e=this.items.indexOf(t[0]))}if(e=Number(e),isNaN(e)||e!==Math.floor(e))console.warn("[Element Warn][Carousel]index must be an integer.");else{var i=this.items.length,n=this.activeIndex;this.activeIndex=e<0?this.loop?i-1:0:e>=i?this.loop?0:i-1:e,n===this.activeIndex&&this.resetItemPosition(n)}},prev:function(){this.setActiveItem(this.activeIndex-1)},next:function(){this.setActiveItem(this.activeIndex+1)},handleIndicatorClick:function(e){this.activeIndex=e},handleIndicatorHover:function(e){"hover"===this.trigger&&e!==this.activeIndex&&(this.activeIndex=e)}},created:function(){var e=this;this.throttledArrowClick=Nu()(300,!0,function(t){e.setActiveItem(t)}),this.throttledIndicatorHover=Nu()(300,function(t){e.handleIndicatorHover(t)})},mounted:function(){var e=this;this.updateItems(),this.$nextTick(function(){Ke(e.$el,e.resetItemPosition),e.initialIndex<e.items.length&&e.initialIndex>=0&&(e.activeIndex=e.initialIndex),e.startTimer()})},beforeDestroy:function(){this.$el&&Ge(this.$el,this.resetItemPosition),this.pauseTimer()}},Tu,[],!1,null,null,null);Pu.options.__file="packages/carousel/src/main.vue";var Ou=Pu.exports;Ou.install=function(e){e.component(Ou.name,Ou)};var Iu=Ou,Au=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"show",rawName:"v-show",value:e.ready,expression:"ready"}],staticClass:"el-carousel__item",class:{"is-active":e.active,"el-carousel__item--card":"card"===e.$parent.type,"is-in-stage":e.inStage,"is-hover":e.hover,"is-animating":e.animating},style:e.itemStyle,on:{click:e.handleItemClick}},["card"===e.$parent.type?i("div",{directives:[{name:"show",rawName:"v-show",value:!e.active,expression:"!active"}],staticClass:"el-carousel__mask"}):e._e(),e._t("default")],2)};Au._withStripped=!0;var Fu=r({name:"ElCarouselItem",props:{name:String,label:{type:[String,Number],default:""}},data:function(){return{hover:!1,translate:0,scale:1,active:!1,ready:!1,inStage:!1,animating:!1}},methods:{processIndex:function(e,t,i){return 0===t&&e===i-1?-1:t===i-1&&0===e?i:e<t-1&&t-e>=i/2?i+1:e>t+1&&e-t>=i/2?-2:e},calcCardTranslate:function(e,t){var i=this.$parent.$el.offsetWidth;return this.inStage?i*(1.17*(e-t)+1)/4:e<t?-1.83*i/4:3.83*i/4},calcTranslate:function(e,t,i){return this.$parent.$el[i?"offsetHeight":"offsetWidth"]*(e-t)},translateItem:function(e,t,i){var n=this.$parent.type,r=this.parentDirection,s=this.$parent.items.length;if("card"!==n&&void 0!==i&&(this.animating=e===t||e===i),e!==t&&s>2&&this.$parent.loop&&(e=this.processIndex(e,t,s)),"card"===n)"vertical"===r&&console.warn("[Element Warn][Carousel]vertical direction is not supported in card mode"),this.inStage=Math.round(Math.abs(e-t))<=1,this.active=e===t,this.translate=this.calcCardTranslate(e,t),this.scale=this.active?1:.83;else{this.active=e===t;var a="vertical"===r;this.translate=this.calcTranslate(e,t,a),this.scale=1}this.ready=!0},handleItemClick:function(){var e=this.$parent;if(e&&"card"===e.type){var t=e.items.indexOf(this);e.setActiveItem(t)}}},computed:{parentDirection:function(){return this.$parent.direction},itemStyle:function(){return function(e){if("object"!==(void 0===e?"undefined":w(e)))return e;var t=["ms-","webkit-"];return["transform","transition","animation"].forEach(function(i){var n=e[i];i&&n&&t.forEach(function(t){e[t+i]=n})}),e}({transform:("vertical"===this.parentDirection?"translateY":"translateX")+"("+this.translate+"px) scale("+this.scale+")"})}},created:function(){this.$parent&&this.$parent.updateItems()},destroyed:function(){this.$parent&&this.$parent.updateItems()}},Au,[],!1,null,null,null);Fu.options.__file="packages/carousel/src/item.vue";var Lu=Fu.exports;Lu.install=function(e){e.component(Lu.name,Lu)};var Vu=Lu,Bu=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-collapse",attrs:{role:"tablist","aria-multiselectable":"true"}},[this._t("default")],2)};Bu._withStripped=!0;var zu=r({name:"ElCollapse",componentName:"ElCollapse",props:{accordion:Boolean,value:{type:[Array,String,Number],default:function(){return[]}}},data:function(){return{activeNames:[].concat(this.value)}},provide:function(){return{collapse:this}},watch:{value:function(e){this.activeNames=[].concat(e)}},methods:{setActiveNames:function(e){e=[].concat(e);var t=this.accordion?e[0]:e;this.activeNames=e,this.$emit("input",t),this.$emit("change",t)},handleItemClick:function(e){if(this.accordion)this.setActiveNames(!this.activeNames[0]&&0!==this.activeNames[0]||this.activeNames[0]!==e.name?e.name:"");else{var t=this.activeNames.slice(0),i=t.indexOf(e.name);i>-1?t.splice(i,1):t.push(e.name),this.setActiveNames(t)}}},created:function(){this.$on("item-click",this.handleItemClick)}},Bu,[],!1,null,null,null);zu.options.__file="packages/collapse/src/collapse.vue";var Hu=zu.exports;Hu.install=function(e){e.component(Hu.name,Hu)};var Ru=Hu,Wu=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-collapse-item",class:{"is-active":e.isActive,"is-disabled":e.disabled}},[i("div",{attrs:{role:"tab","aria-expanded":e.isActive,"aria-controls":"el-collapse-content-"+e.id,"aria-describedby":"el-collapse-content-"+e.id}},[i("div",{staticClass:"el-collapse-item__header",class:{focusing:e.focusing,"is-active":e.isActive},attrs:{role:"button",id:"el-collapse-head-"+e.id,tabindex:e.disabled?void 0:0},on:{click:e.handleHeaderClick,keyup:function(t){return"button"in t||!e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"])||!e._k(t.keyCode,"enter",13,t.key,"Enter")?(t.stopPropagation(),e.handleEnterClick(t)):null},focus:e.handleFocus,blur:function(t){e.focusing=!1}}},[e._t("title",[e._v(e._s(e.title))]),i("i",{staticClass:"el-collapse-item__arrow el-icon-arrow-right",class:{"is-active":e.isActive}})],2)]),i("el-collapse-transition",[i("div",{directives:[{name:"show",rawName:"v-show",value:e.isActive,expression:"isActive"}],staticClass:"el-collapse-item__wrap",attrs:{role:"tabpanel","aria-hidden":!e.isActive,"aria-labelledby":"el-collapse-head-"+e.id,id:"el-collapse-content-"+e.id}},[i("div",{staticClass:"el-collapse-item__content"},[e._t("default")],2)])])],1)};Wu._withStripped=!0;var ju=r({name:"ElCollapseItem",componentName:"ElCollapseItem",mixins:[l],components:{ElCollapseTransition:ni},data:function(){return{contentWrapStyle:{height:"auto",display:"block"},contentHeight:0,focusing:!1,isClick:!1,id:$()}},inject:["collapse"],props:{title:String,name:{type:[String,Number],default:function(){return this._uid}},disabled:Boolean},computed:{isActive:function(){return this.collapse.activeNames.indexOf(this.name)>-1}},methods:{handleFocus:function(){var e=this;setTimeout(function(){e.isClick?e.isClick=!1:e.focusing=!0},50)},handleHeaderClick:function(){this.disabled||(this.dispatch("ElCollapse","item-click",this),this.focusing=!1,this.isClick=!0)},handleEnterClick:function(){this.dispatch("ElCollapse","item-click",this)}}},Wu,[],!1,null,null,null);ju.options.__file="packages/collapse/src/collapse-item.vue";var qu=ju.exports;qu.install=function(e){e.component(qu.name,qu)};var Yu=qu,Ku=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:function(){return e.toggleDropDownVisible(!1)},expression:"() => toggleDropDownVisible(false)"}],ref:"reference",class:["el-cascader",e.realSize&&"el-cascader--"+e.realSize,{"is-disabled":e.isDisabled}],on:{mouseenter:function(t){e.inputHover=!0},mouseleave:function(t){e.inputHover=!1},click:function(){return e.toggleDropDownVisible(!e.readonly||void 0)},keydown:e.handleKeyDown}},[i("el-input",{ref:"input",class:{"is-focus":e.dropDownVisible},attrs:{size:e.realSize,placeholder:e.placeholder,readonly:e.readonly,disabled:e.isDisabled,"validate-event":!1},on:{focus:e.handleFocus,blur:e.handleBlur,input:e.handleInput},model:{value:e.multiple?e.presentText:e.inputValue,callback:function(t){e.multiple?e.presentText:e.inputValue=t},expression:"multiple ? presentText : inputValue"}},[i("template",{slot:"suffix"},[e.clearBtnVisible?i("i",{key:"clear",staticClass:"el-input__icon el-icon-circle-close",on:{click:function(t){return t.stopPropagation(),e.handleClear(t)}}}):i("i",{key:"arrow-down",class:["el-input__icon","el-icon-arrow-down",e.dropDownVisible&&"is-reverse"],on:{click:function(t){t.stopPropagation(),e.toggleDropDownVisible()}}})])],2),e.multiple?i("div",{staticClass:"el-cascader__tags"},[e._l(e.presentTags,function(t){return i("el-tag",{key:t.key,attrs:{type:"info",size:e.tagSize,hit:t.hitState,closable:t.closable,"disable-transitions":""},on:{close:function(i){e.deleteTag(t)}}},[i("span",[e._v(e._s(t.text))])])}),e.filterable&&!e.isDisabled?i("input",{directives:[{name:"model",rawName:"v-model.trim",value:e.inputValue,expression:"inputValue",modifiers:{trim:!0}}],staticClass:"el-cascader__search-input",attrs:{type:"text",placeholder:e.presentTags.length?"":e.placeholder},domProps:{value:e.inputValue},on:{input:[function(t){t.target.composing||(e.inputValue=t.target.value.trim())},function(t){return e.handleInput(e.inputValue,t)}],click:function(t){t.stopPropagation(),e.toggleDropDownVisible(!0)},keydown:function(t){return"button"in t||!e._k(t.keyCode,"delete",[8,46],t.key,["Backspace","Delete","Del"])?e.handleDelete(t):null},blur:function(t){e.$forceUpdate()}}}):e._e()],2):e._e(),i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":e.handleDropdownLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.dropDownVisible,expression:"dropDownVisible"}],ref:"popper",class:["el-popper","el-cascader__dropdown",e.popperClass]},[i("el-cascader-panel",{directives:[{name:"show",rawName:"v-show",value:!e.filtering,expression:"!filtering"}],ref:"panel",attrs:{options:e.options,props:e.config,border:!1,"render-label":e.$scopedSlots.default},on:{"expand-change":e.handleExpandChange,close:function(t){e.toggleDropDownVisible(!1)}},model:{value:e.checkedValue,callback:function(t){e.checkedValue=t},expression:"checkedValue"}}),e.filterable?i("el-scrollbar",{directives:[{name:"show",rawName:"v-show",value:e.filtering,expression:"filtering"}],ref:"suggestionPanel",staticClass:"el-cascader__suggestion-panel",attrs:{tag:"ul","view-class":"el-cascader__suggestion-list"},nativeOn:{keydown:function(t){return e.handleSuggestionKeyDown(t)}}},[e.suggestions.length?e._l(e.suggestions,function(t,n){return i("li",{key:t.uid,class:["el-cascader__suggestion-item",t.checked&&"is-checked"],attrs:{tabindex:-1},on:{click:function(t){e.handleSuggestionClick(n)}}},[i("span",[e._v(e._s(t.text))]),t.checked?i("i",{staticClass:"el-icon-check"}):e._e()])}):e._t("empty",[i("li",{staticClass:"el-cascader__empty-text"},[e._v(e._s(e.t("el.cascader.noMatch")))])])],2):e._e()],1)])],1)};Ku._withStripped=!0;var Gu=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{class:["el-cascader-panel",this.border&&"is-bordered"],on:{keydown:this.handleKeyDown}},this._l(this.menus,function(e,i){return t("cascader-menu",{key:i,ref:"menu",refInFor:!0,attrs:{index:i,nodes:e}})}),1)};Gu._withStripped=!0;var Uu=function(e){return e.stopPropagation()},Xu=r({inject:["panel"],components:{ElCheckbox:Bi,ElRadio:Di},props:{node:{required:!0},nodeId:String},computed:{config:function(){return this.panel.config},isLeaf:function(){return this.node.isLeaf},isDisabled:function(){return this.node.isDisabled},checkedValue:function(){return this.panel.checkedValue},isChecked:function(){return this.node.isSameNode(this.checkedValue)},inActivePath:function(){return this.isInPath(this.panel.activePath)},inCheckedPath:function(){var e=this;return!!this.config.checkStrictly&&this.panel.checkedNodePaths.some(function(t){return e.isInPath(t)})},value:function(){return this.node.getValueByOption()}},methods:{handleExpand:function(){var e=this,t=this.panel,i=this.node,n=this.isDisabled,r=this.config,s=r.multiple;!r.checkStrictly&&n||i.loading||(r.lazy&&!i.loaded?t.lazyLoad(i,function(){var t=e.isLeaf;if(t||e.handleExpand(),s){var n=!!t&&i.checked;e.handleMultiCheckChange(n)}}):t.handleExpand(i))},handleCheckChange:function(){var e=this.panel,t=this.value,i=this.node;e.handleCheckChange(t),e.handleExpand(i)},handleMultiCheckChange:function(e){this.node.doCheck(e),this.panel.calculateMultiCheckedValue()},isInPath:function(e){var t=this.node;return(e[t.level-1]||{}).uid===t.uid},renderPrefix:function(e){var t=this.isLeaf,i=this.isChecked,n=this.config,r=n.checkStrictly;return n.multiple?this.renderCheckbox(e):r?this.renderRadio(e):t&&i?this.renderCheckIcon(e):null},renderPostfix:function(e){var t=this.node,i=this.isLeaf;return t.loading?this.renderLoadingIcon(e):i?null:this.renderExpandIcon(e)},renderCheckbox:function(e){var t=this.node,i=this.config,n=this.isDisabled,r={on:{change:this.handleMultiCheckChange},nativeOn:{}};return i.checkStrictly&&(r.nativeOn.click=Uu),e("el-checkbox",zl()([{attrs:{value:t.checked,indeterminate:t.indeterminate,disabled:n}},r]))},renderRadio:function(e){var t=this.checkedValue,i=this.value,n=this.isDisabled;return A(i,t)&&(i=t),e("el-radio",{attrs:{value:t,label:i,disabled:n},on:{change:this.handleCheckChange},nativeOn:{click:Uu}},[e("span")])},renderCheckIcon:function(e){return e("i",{class:"el-icon-check el-cascader-node__prefix"})},renderLoadingIcon:function(e){return e("i",{class:"el-icon-loading el-cascader-node__postfix"})},renderExpandIcon:function(e){return e("i",{class:"el-icon-arrow-right el-cascader-node__postfix"})},renderContent:function(e){var t=this.panel,i=this.node,n=t.renderLabelFn;return e("span",{class:"el-cascader-node__label"},[(n?n({node:i,data:i.data}):null)||i.label])}},render:function(e){var t=this,i=this.inActivePath,n=this.inCheckedPath,r=this.isChecked,s=this.isLeaf,a=this.isDisabled,o=this.config,l=this.nodeId,u=o.expandTrigger,c=o.checkStrictly,h=o.multiple,d=!c&&a,p={on:{}};return"click"===u?p.on.click=this.handleExpand:(p.on.mouseenter=function(e){t.handleExpand(),t.$emit("expand",e)},p.on.focus=function(e){t.handleExpand(),t.$emit("expand",e)}),!s||a||c||h||(p.on.click=this.handleCheckChange),e("li",zl()([{attrs:{role:"menuitem",id:l,"aria-expanded":i,tabindex:d?null:-1},class:{"el-cascader-node":!0,"is-selectable":c,"in-active-path":i,"in-checked-path":n,"is-active":r,"is-disabled":d}},p]),[this.renderPrefix(e),this.renderContent(e),this.renderPostfix(e)])}},void 0,void 0,!1,null,null,null);Xu.options.__file="packages/cascader-panel/src/cascader-node.vue";var Zu=r({name:"ElCascaderMenu",mixins:[Y],inject:["panel"],components:{ElScrollbar:Qe,CascaderNode:Xu.exports},props:{nodes:{type:Array,required:!0},index:Number},data:function(){return{activeNode:null,hoverTimer:null,id:$()}},computed:{isEmpty:function(){return!this.nodes.length},menuId:function(){return"cascader-menu-"+this.id+"-"+this.index}},methods:{handleExpand:function(e){this.activeNode=e.target},handleMouseMove:function(e){var t=this.activeNode,i=this.hoverTimer,n=this.$refs.hoverZone;if(t&&n)if(t.contains(e.target)){clearTimeout(i);var r=this.$el.getBoundingClientRect().left,s=e.clientX-r,a=this.$el,o=a.offsetWidth,l=a.offsetHeight,u=t.offsetTop,c=u+t.offsetHeight;n.innerHTML='\n <path style="pointer-events: auto;" fill="transparent" d="M'+s+" "+u+" L"+o+" 0 V"+u+' Z" />\n <path style="pointer-events: auto;" fill="transparent" d="M'+s+" "+c+" L"+o+" "+l+" V"+c+' Z" />\n '}else i||(this.hoverTimer=setTimeout(this.clearHoverZone,this.panel.config.hoverThreshold))},clearHoverZone:function(){var e=this.$refs.hoverZone;e&&(e.innerHTML="")},renderEmptyText:function(e){return e("div",{class:"el-cascader-menu__empty-text"},[this.t("el.cascader.noData")])},renderNodeList:function(e){var t=this.menuId,i=this.panel.isHoverMenu,n={on:{}};i&&(n.on.expand=this.handleExpand);var r=this.nodes.map(function(i,r){var s=i.hasChildren;return e("cascader-node",zl()([{key:i.uid,attrs:{node:i,"node-id":t+"-"+r,"aria-haspopup":s,"aria-owns":s?t:null}},n]))});return[].concat(r,[i?e("svg",{ref:"hoverZone",class:"el-cascader-menu__hover-zone"}):null])}},render:function(e){var t=this.isEmpty,i=this.menuId,n={nativeOn:{}};return this.panel.isHoverMenu&&(n.nativeOn.mousemove=this.handleMouseMove),e("el-scrollbar",zl()([{attrs:{tag:"ul",role:"menu",id:i,"wrap-class":"el-cascader-menu__wrap","view-class":{"el-cascader-menu__list":!0,"is-empty":t}},class:"el-cascader-menu"},n]),[t?this.renderEmptyText(e):this.renderNodeList(e)])}},void 0,void 0,!1,null,null,null);Zu.options.__file="packages/cascader-panel/src/cascader-menu.vue";var Ju=Zu.exports,Qu=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}();var ec=0,tc=function(){function e(t,i,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.data=t,this.config=i,this.parent=n||null,this.level=this.parent?this.parent.level+1:1,this.uid=ec++,this.initState(),this.initChildren()}return e.prototype.initState=function(){var e=this.config,t=e.value,i=e.label;this.value=this.data[t],this.label=this.data[i],this.pathNodes=this.calculatePathNodes(),this.path=this.pathNodes.map(function(e){return e.value}),this.pathLabels=this.pathNodes.map(function(e){return e.label}),this.loading=!1,this.loaded=!1},e.prototype.initChildren=function(){var t=this,i=this.config,n=i.children,r=this.data[n];this.hasChildren=Array.isArray(r),this.children=(r||[]).map(function(n){return new e(n,i,t)})},e.prototype.calculatePathNodes=function(){for(var e=[this],t=this.parent;t;)e.unshift(t),t=t.parent;return e},e.prototype.getPath=function(){return this.path},e.prototype.getValue=function(){return this.value},e.prototype.getValueByOption=function(){return this.config.emitPath?this.getPath():this.getValue()},e.prototype.getText=function(e,t){return e?this.pathLabels.join(t):this.label},e.prototype.isSameNode=function(e){var t=this.getValueByOption();return this.config.multiple&&Array.isArray(e)?e.some(function(e){return A(e,t)}):A(e,t)},e.prototype.broadcast=function(e){for(var t=arguments.length,i=Array(t>1?t-1:0),n=1;n<t;n++)i[n-1]=arguments[n];var r="onParent"+O(e);this.children.forEach(function(t){t&&(t.broadcast.apply(t,[e].concat(i)),t[r]&&t[r].apply(t,i))})},e.prototype.emit=function(e){var t=this.parent,i="onChild"+O(e);if(t){for(var n=arguments.length,r=Array(n>1?n-1:0),s=1;s<n;s++)r[s-1]=arguments[s];t[i]&&t[i].apply(t,r),t.emit.apply(t,[e].concat(r))}},e.prototype.onParentCheck=function(e){this.isDisabled||this.setCheckState(e)},e.prototype.onChildCheck=function(){var e=this.children.filter(function(e){return!e.isDisabled}),t=!!e.length&&e.every(function(e){return e.checked});this.setCheckState(t)},e.prototype.setCheckState=function(e){var t=this.children.length,i=this.children.reduce(function(e,t){return e+(t.checked?1:t.indeterminate?.5:0)},0);this.checked=e,this.indeterminate=i!==t&&i>0},e.prototype.syncCheckState=function(e){var t=this.getValueByOption(),i=this.isSameNode(e,t);this.doCheck(i)},e.prototype.doCheck=function(e){this.checked!==e&&(this.config.checkStrictly?this.checked=e:(this.broadcast("check",e),this.setCheckState(e),this.emit("check")))},Qu(e,[{key:"isDisabled",get:function(){var e=this.data,t=this.parent,i=this.config,n=i.disabled,r=i.checkStrictly;return e[n]||!r&&t&&t.isDisabled}},{key:"isLeaf",get:function(){var e=this.data,t=this.loaded,i=this.hasChildren,n=this.children,r=this.config,s=r.lazy,a=r.leaf;if(s){var o=ee(e[a])?e[a]:!!t&&!n.length;return this.hasChildren=!o,o}return!i}}]),e}();var ic=function(){function e(t,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.config=i,this.initNodes(t)}return e.prototype.initNodes=function(e){var t=this;e=N(e),this.nodes=e.map(function(e){return new tc(e,t.config)}),this.flattedNodes=this.getFlattedNodes(!1,!1),this.leafNodes=this.getFlattedNodes(!0,!1)},e.prototype.appendNode=function(e,t){var i=new tc(e,this.config,t);(t?t.children:this.nodes).push(i)},e.prototype.appendNodes=function(e,t){var i=this;(e=N(e)).forEach(function(e){return i.appendNode(e,t)})},e.prototype.getNodes=function(){return this.nodes},e.prototype.getFlattedNodes=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=e?this.leafNodes:this.flattedNodes;return t?i:function e(t,i){return t.reduce(function(t,n){return n.isLeaf?t.push(n):(!i&&t.push(n),t=t.concat(e(n.children,i))),t},[])}(this.nodes,e)},e.prototype.getNodeByValue=function(e){if(e){var t=this.getFlattedNodes(!1,!this.config.lazy).filter(function(t){return E(t.path,e)||t.value===e});return t&&t.length?t[0]:null}return null},e}(),nc=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},rc=Yt.keys,sc={expandTrigger:"click",multiple:!1,checkStrictly:!1,emitPath:!0,lazy:!1,lazyLoad:x,value:"value",label:"label",children:"children",leaf:"leaf",disabled:"disabled",hoverThreshold:500},ac=function(e){return!e.getAttribute("aria-owns")},oc=function(e,t){var i=e.parentNode;if(i){var n=i.querySelectorAll('.el-cascader-node[tabindex="-1"]');return n[Array.prototype.indexOf.call(n,e)+t]||null}return null},lc=function(e,t){if(e){var i=e.id.split("-");return Number(i[i.length-2])}},uc=function(e){e&&(e.focus(),!ac(e)&&e.click())},cc=r({name:"ElCascaderPanel",components:{CascaderMenu:Ju},props:{value:{},options:Array,props:Object,border:{type:Boolean,default:!0},renderLabel:Function},provide:function(){return{panel:this}},data:function(){return{checkedValue:null,checkedNodePaths:[],store:[],menus:[],activePath:[],loadCount:0}},computed:{config:function(){return Q(nc({},sc),this.props||{})},multiple:function(){return this.config.multiple},checkStrictly:function(){return this.config.checkStrictly},leafOnly:function(){return!this.checkStrictly},isHoverMenu:function(){return"hover"===this.config.expandTrigger},renderLabelFn:function(){return this.renderLabel||this.$scopedSlots.default}},watch:{options:{handler:function(){this.initStore()},immediate:!0,deep:!0},value:function(){this.syncCheckedValue(),this.checkStrictly&&this.calculateCheckedNodePaths()},checkedValue:function(e){A(e,this.value)||(this.checkStrictly&&this.calculateCheckedNodePaths(),this.$emit("input",e),this.$emit("change",e))}},mounted:function(){F(this.value)||this.syncCheckedValue()},methods:{initStore:function(){var e=this.config,t=this.options;e.lazy&&F(t)?this.lazyLoad():(this.store=new ic(t,e),this.menus=[this.store.getNodes()],this.syncMenuState())},syncCheckedValue:function(){var e=this.value,t=this.checkedValue;A(e,t)||(this.activePath=[],this.checkedValue=e,this.syncMenuState())},syncMenuState:function(){var e=this.multiple,t=this.checkStrictly;this.syncActivePath(),e&&this.syncMultiCheckState(),t&&this.calculateCheckedNodePaths(),this.$nextTick(this.scrollIntoView)},syncMultiCheckState:function(){var e=this;this.getFlattedNodes(this.leafOnly).forEach(function(t){t.syncCheckState(e.checkedValue)})},syncActivePath:function(){var e=this,t=this.store,i=this.multiple,n=this.activePath,r=this.checkedValue;if(F(n))if(F(r))this.activePath=[],this.menus=[t.getNodes()];else{var s=i?r[0]:r,a=((this.getNodeByValue(s)||{}).pathNodes||[]).slice(0,-1);this.expandNodes(a)}else{var o=n.map(function(t){return e.getNodeByValue(t.getValue())});this.expandNodes(o)}},expandNodes:function(e){var t=this;e.forEach(function(e){return t.handleExpand(e,!0)})},calculateCheckedNodePaths:function(){var e=this,t=this.checkedValue,i=this.multiple?N(t):[t];this.checkedNodePaths=i.map(function(t){var i=e.getNodeByValue(t);return i?i.pathNodes:[]})},handleKeyDown:function(e){var t=e.target;switch(e.keyCode){case rc.up:var i=oc(t,-1);uc(i);break;case rc.down:var n=oc(t,1);uc(n);break;case rc.left:var r=this.$refs.menu[lc(t)-1];if(r){var s=r.$el.querySelector('.el-cascader-node[aria-expanded="true"]');uc(s)}break;case rc.right:var a=this.$refs.menu[lc(t)+1];if(a){var o=a.$el.querySelector('.el-cascader-node[tabindex="-1"]');uc(o)}break;case rc.enter:!function(e){if(e){var t=e.querySelector("input");t?t.click():ac(e)&&e.click()}}(t);break;case rc.esc:case rc.tab:this.$emit("close");break;default:return}},handleExpand:function(e,t){var i=this.activePath,n=e.level,r=i.slice(0,n-1),s=this.menus.slice(0,n);if(e.isLeaf||(r.push(e),s.push(e.children)),this.activePath=r,this.menus=s,!t){var a=r.map(function(e){return e.getValue()}),o=i.map(function(e){return e.getValue()});E(a,o)||(this.$emit("active-item-change",a),this.$emit("expand-change",a))}},handleCheckChange:function(e){this.checkedValue=e},lazyLoad:function(e,t){var i=this,n=this.config;e||(e=e||{root:!0,level:0},this.store=new ic([],n),this.menus=[this.store.getNodes()]),e.loading=!0;n.lazyLoad(e,function(n){var r=e.root?null:e;if(n&&n.length&&i.store.appendNodes(n,r),e.loading=!1,e.loaded=!0,Array.isArray(i.checkedValue)){var s=i.checkedValue[i.loadCount++],a=i.config.value,o=i.config.leaf;if(Array.isArray(n)&&n.filter(function(e){return e[a]===s}).length>0){var l=i.store.getNodeByValue(s);l.data[o]||i.lazyLoad(l,function(){i.handleExpand(l)}),i.loadCount===i.checkedValue.length&&i.$parent.computePresentText()}}t&&t(n)})},calculateMultiCheckedValue:function(){this.checkedValue=this.getCheckedNodes(this.leafOnly).map(function(e){return e.getValueByOption()})},scrollIntoView:function(){this.$isServer||(this.$refs.menu||[]).forEach(function(e){var t=e.$el;t&<(t.querySelector(".el-scrollbar__wrap"),t.querySelector(".el-cascader-node.is-active")||t.querySelector(".el-cascader-node.in-active-path"))})},getNodeByValue:function(e){return this.store.getNodeByValue(e)},getFlattedNodes:function(e){var t=!this.config.lazy;return this.store.getFlattedNodes(e,t)},getCheckedNodes:function(e){var t=this.checkedValue;return this.multiple?this.getFlattedNodes(e).filter(function(e){return e.checked}):F(t)?[]:[this.getNodeByValue(t)]},clearCheckedNodes:function(){var e=this.config,t=this.leafOnly,i=e.multiple,n=e.emitPath;i?(this.getCheckedNodes(t).filter(function(e){return!e.isDisabled}).forEach(function(e){return e.doCheck(!1)}),this.calculateMultiCheckedValue()):this.checkedValue=n?[]:null}}},Gu,[],!1,null,null,null);cc.options.__file="packages/cascader-panel/src/cascader-panel.vue";var hc=cc.exports;hc.install=function(e){e.component(hc.name,hc)};var dc=hc,pc=Yt.keys,fc={expandTrigger:{newProp:"expandTrigger",type:String},changeOnSelect:{newProp:"checkStrictly",type:Boolean},hoverThreshold:{newProp:"hoverThreshold",type:Number}},mc={props:{placement:{type:String,default:"bottom-start"},appendToBody:Ie.props.appendToBody,visibleArrow:{type:Boolean,default:!0},arrowOffset:Ie.props.arrowOffset,offset:Ie.props.offset,boundariesPadding:Ie.props.boundariesPadding,popperOptions:Ie.props.popperOptions},methods:Ie.methods,data:Ie.data,beforeDestroy:Ie.beforeDestroy},vc={medium:36,small:32,mini:28},gc=r({name:"ElCascader",directives:{Clickoutside:ot},mixins:[mc,l,Y,G],inject:{elForm:{default:""},elFormItem:{default:""}},components:{ElInput:re,ElTag:We,ElScrollbar:Qe,ElCascaderPanel:dc},props:{value:{},options:Array,props:Object,size:String,placeholder:{type:String,default:function(){return j("el.cascader.placeholder")}},disabled:Boolean,clearable:Boolean,filterable:Boolean,filterMethod:Function,separator:{type:String,default:" / "},showAllLevels:{type:Boolean,default:!0},collapseTags:Boolean,debounce:{type:Number,default:300},beforeFilter:{type:Function,default:function(){return function(){}}},popperClass:String},data:function(){return{dropDownVisible:!1,checkedValue:this.value||null,inputHover:!1,inputValue:null,presentText:null,presentTags:[],checkedNodes:[],filtering:!1,suggestions:[],inputInitialHeight:0,pressDeleteCount:0}},computed:{realSize:function(){var e=(this.elFormItem||{}).elFormItemSize;return this.size||e||(this.$ELEMENT||{}).size},tagSize:function(){return["small","mini"].indexOf(this.realSize)>-1?"mini":"small"},isDisabled:function(){return this.disabled||(this.elForm||{}).disabled},config:function(){var e=this.props||{},t=this.$attrs;return Object.keys(fc).forEach(function(i){var n=fc[i],r=n.newProp,s=n.type,a=t[i]||t[P(i)];ee(i)&&!ee(e[r])&&(s===Boolean&&""===a&&(a=!0),e[r]=a)}),e},multiple:function(){return this.config.multiple},leafOnly:function(){return!this.config.checkStrictly},readonly:function(){return!this.filterable||this.multiple},clearBtnVisible:function(){return!(!this.clearable||this.isDisabled||this.filtering||!this.inputHover)&&(this.multiple?!!this.checkedNodes.filter(function(e){return!e.isDisabled}).length:!!this.presentText)},panel:function(){return this.$refs.panel}},watch:{disabled:function(){this.computePresentContent()},value:function(e){A(e,this.checkedValue)||(this.checkedValue=e,this.computePresentContent())},checkedValue:function(e){var t=this.value,i=this.dropDownVisible,n=this.config,r=n.checkStrictly,s=n.multiple;A(e,t)&&!y(t)||(this.computePresentContent(),s||r||!i||this.toggleDropDownVisible(!1),this.$emit("input",e),this.$emit("change",e),this.dispatch("ElFormItem","el.form.change",[e]))},options:{handler:function(){this.$nextTick(this.computePresentContent)},deep:!0},presentText:function(e){this.inputValue=e},presentTags:function(e,t){this.multiple&&(e.length||t.length)&&this.$nextTick(this.updateStyle)},filtering:function(e){this.$nextTick(this.updatePopper)}},mounted:function(){var e=this,t=this.$refs.input;t&&t.$el&&(this.inputInitialHeight=t.$el.offsetHeight||vc[this.realSize]||40),F(this.value)||this.computePresentContent(),this.filterHandler=tt()(this.debounce,function(){var t=e.inputValue;if(t){var i=e.beforeFilter(t);i&&i.then?i.then(e.getSuggestions):!1!==i?e.getSuggestions():e.filtering=!1}else e.filtering=!1}),Ke(this.$el,this.updateStyle)},beforeDestroy:function(){Ge(this.$el,this.updateStyle)},methods:{getMigratingConfig:function(){return{props:{"expand-trigger":"expand-trigger is removed, use `props.expandTrigger` instead.","change-on-select":"change-on-select is removed, use `props.checkStrictly` instead.","hover-threshold":"hover-threshold is removed, use `props.hoverThreshold` instead"},events:{"active-item-change":"active-item-change is renamed to expand-change"}}},toggleDropDownVisible:function(e){var t=this;if(!this.isDisabled){var i=this.dropDownVisible,n=this.$refs.input;(e=ee(e)?e:!i)!==i&&(this.dropDownVisible=e,e&&this.$nextTick(function(){t.updatePopper(),t.panel.scrollIntoView()}),n.$refs.input.setAttribute("aria-expanded",e),this.$emit("visible-change",e))}},handleDropdownLeave:function(){this.filtering=!1,this.inputValue=this.presentText},handleKeyDown:function(e){switch(e.keyCode){case pc.enter:this.toggleDropDownVisible();break;case pc.down:this.toggleDropDownVisible(!0),this.focusFirstNode(),e.preventDefault();break;case pc.esc:case pc.tab:this.toggleDropDownVisible(!1)}},handleFocus:function(e){this.$emit("focus",e)},handleBlur:function(e){this.$emit("blur",e)},handleInput:function(e,t){!this.dropDownVisible&&this.toggleDropDownVisible(!0),t&&t.isComposing||(e?this.filterHandler():this.filtering=!1)},handleClear:function(){this.presentText="",this.panel.clearCheckedNodes()},handleExpandChange:function(e){this.$nextTick(this.updatePopper.bind(this)),this.$emit("expand-change",e),this.$emit("active-item-change",e)},focusFirstNode:function(){var e=this;this.$nextTick(function(){var t=e.filtering,i=e.$refs,n=i.popper,r=i.suggestionPanel,s=null;t&&r?s=r.$el.querySelector(".el-cascader__suggestion-item"):s=n.querySelector(".el-cascader-menu").querySelector('.el-cascader-node[tabindex="-1"]');s&&(s.focus(),!t&&s.click())})},computePresentContent:function(){var e=this;this.$nextTick(function(){e.config.multiple?(e.computePresentTags(),e.presentText=e.presentTags.length?" ":null):e.computePresentText()})},computePresentText:function(){var e=this.checkedValue,t=this.config;if(!F(e)){var i=this.panel.getNodeByValue(e);if(i&&(t.checkStrictly||i.isLeaf))return void(this.presentText=i.getText(this.showAllLevels,this.separator))}this.presentText=null},computePresentTags:function(){var e=this.isDisabled,t=this.leafOnly,i=this.showAllLevels,n=this.separator,r=this.collapseTags,s=this.getCheckedNodes(t),a=[],o=function(t){return{node:t,key:t.uid,text:t.getText(i,n),hitState:!1,closable:!e&&!t.isDisabled}};if(s.length){var l=s[0],u=s.slice(1),c=u.length;a.push(o(l)),c&&(r?a.push({key:-1,text:"+ "+c,closable:!1}):u.forEach(function(e){return a.push(o(e))}))}this.checkedNodes=s,this.presentTags=a},getSuggestions:function(){var e=this,t=this.filterMethod;b(t)||(t=function(e,t){return e.text.includes(t)});var i=this.panel.getFlattedNodes(this.leafOnly).filter(function(i){return!i.isDisabled&&(i.text=i.getText(e.showAllLevels,e.separator)||"",t(i,e.inputValue))});this.multiple?this.presentTags.forEach(function(e){e.hitState=!1}):i.forEach(function(t){t.checked=A(e.checkedValue,t.getValueByOption())}),this.filtering=!0,this.suggestions=i,this.$nextTick(this.updatePopper)},handleSuggestionKeyDown:function(e){var t=e.keyCode,i=e.target;switch(t){case pc.enter:i.click();break;case pc.up:var n=i.previousElementSibling;n&&n.focus();break;case pc.down:var r=i.nextElementSibling;r&&r.focus();break;case pc.esc:case pc.tab:this.toggleDropDownVisible(!1)}},handleDelete:function(){var e=this.inputValue,t=this.pressDeleteCount,i=this.presentTags,n=i[i.length-1];this.pressDeleteCount=e?0:t+1,n&&this.pressDeleteCount&&(n.hitState?this.deleteTag(n):n.hitState=!0)},handleSuggestionClick:function(e){var t=this.multiple,i=this.suggestions[e];if(t){var n=i.checked;i.doCheck(!n),this.panel.calculateMultiCheckedValue()}else this.checkedValue=i.getValueByOption(),this.toggleDropDownVisible(!1)},deleteTag:function(e){var t=this.checkedValue,i=e.node.getValueByOption(),n=t.find(function(e){return A(e,i)});this.checkedValue=t.filter(function(e){return!A(e,i)}),this.$emit("remove-tag",n)},updateStyle:function(){var e=this.$el,t=this.inputInitialHeight;if(!this.$isServer&&e){var i=this.$refs.suggestionPanel,n=e.querySelector(".el-input__inner");if(n){var r=e.querySelector(".el-cascader__tags"),s=null;if(i&&(s=i.$el))s.querySelector(".el-cascader__suggestion-list").style.minWidth=n.offsetWidth+"px";if(r){var a=r.offsetHeight,o=Math.max(a+6,t)+"px";n.style.height=o,this.updatePopper()}}}},getCheckedNodes:function(e){return this.panel.getCheckedNodes(e)}}},Ku,[],!1,null,null,null);gc.options.__file="packages/cascader/src/cascader.vue";var bc=gc.exports;bc.install=function(e){e.component(bc.name,bc)};var yc=bc,wc=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.hide,expression:"hide"}],class:["el-color-picker",e.colorDisabled?"is-disabled":"",e.colorSize?"el-color-picker--"+e.colorSize:""]},[e.colorDisabled?i("div",{staticClass:"el-color-picker__mask"}):e._e(),i("div",{staticClass:"el-color-picker__trigger",on:{click:e.handleTrigger}},[i("span",{staticClass:"el-color-picker__color",class:{"is-alpha":e.showAlpha}},[i("span",{staticClass:"el-color-picker__color-inner",style:{backgroundColor:e.displayedColor}}),e.value||e.showPanelColor?e._e():i("span",{staticClass:"el-color-picker__empty el-icon-close"})]),i("span",{directives:[{name:"show",rawName:"v-show",value:e.value||e.showPanelColor,expression:"value || showPanelColor"}],staticClass:"el-color-picker__icon el-icon-arrow-down"})]),i("picker-dropdown",{ref:"dropdown",class:["el-color-picker__panel",e.popperClass||""],attrs:{color:e.color,"show-alpha":e.showAlpha,predefine:e.predefine},on:{pick:e.confirmValue,clear:e.clearValue},model:{value:e.showPicker,callback:function(t){e.showPicker=t},expression:"showPicker"}})],1)};wc._withStripped=!0;var _c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};var xc=function(e,t,i){return[e,t*i/((e=(2-t)*i)<1?e:2-e)||0,e/2]},Cc=function(e,t){var i;"string"==typeof(i=e)&&-1!==i.indexOf(".")&&1===parseFloat(i)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!==e.indexOf("%")}(e);return e=Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)},kc={10:"A",11:"B",12:"C",13:"D",14:"E",15:"F"},Sc={A:10,B:11,C:12,D:13,E:14,F:15},Dc=function(e){return 2===e.length?16*(Sc[e[0].toUpperCase()]||+e[0])+(Sc[e[1].toUpperCase()]||+e[1]):Sc[e[1].toUpperCase()]||+e[1]},$c=function(e,t,i){e=Cc(e,255),t=Cc(t,255),i=Cc(i,255);var n,r=Math.max(e,t,i),s=Math.min(e,t,i),a=void 0,o=r,l=r-s;if(n=0===r?0:l/r,r===s)a=0;else{switch(r){case e:a=(t-i)/l+(t<i?6:0);break;case t:a=(i-e)/l+2;break;case i:a=(e-t)/l+4}a/=6}return{h:360*a,s:100*n,v:100*o}},Ec=function(e,t,i){e=6*Cc(e,360),t=Cc(t,100),i=Cc(i,100);var n=Math.floor(e),r=e-n,s=i*(1-t),a=i*(1-r*t),o=i*(1-(1-r)*t),l=n%6,u=[i,a,s,s,o,i][l],c=[o,i,i,a,s,s][l],h=[s,s,o,i,i,a][l];return{r:Math.round(255*u),g:Math.round(255*c),b:Math.round(255*h)}},Tc=function(){function e(t){for(var i in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._hue=0,this._saturation=100,this._value=100,this._alpha=100,this.enableAlpha=!1,this.format="hex",this.value="",t=t||{})t.hasOwnProperty(i)&&(this[i]=t[i]);this.doOnChange()}return e.prototype.set=function(e,t){if(1!==arguments.length||"object"!==(void 0===e?"undefined":_c(e)))this["_"+e]=t,this.doOnChange();else for(var i in e)e.hasOwnProperty(i)&&this.set(i,e[i])},e.prototype.get=function(e){return this["_"+e]},e.prototype.toRgb=function(){return Ec(this._hue,this._saturation,this._value)},e.prototype.fromString=function(e){var t=this;if(!e)return this._hue=0,this._saturation=100,this._value=100,void this.doOnChange();var i=function(e,i,n){t._hue=Math.max(0,Math.min(360,e)),t._saturation=Math.max(0,Math.min(100,i)),t._value=Math.max(0,Math.min(100,n)),t.doOnChange()};if(-1!==e.indexOf("hsl")){var n=e.replace(/hsla|hsl|\(|\)/gm,"").split(/\s|,/g).filter(function(e){return""!==e}).map(function(e,t){return t>2?parseFloat(e):parseInt(e,10)});if(4===n.length?this._alpha=Math.floor(100*parseFloat(n[3])):3===n.length&&(this._alpha=100),n.length>=3){var r=function(e,t,i){i/=100;var n=t/=100,r=Math.max(i,.01);return t*=(i*=2)<=1?i:2-i,n*=r<=1?r:2-r,{h:e,s:100*(0===i?2*n/(r+n):2*t/(i+t)),v:(i+t)/2*100}}(n[0],n[1],n[2]);i(r.h,r.s,r.v)}}else if(-1!==e.indexOf("hsv")){var s=e.replace(/hsva|hsv|\(|\)/gm,"").split(/\s|,/g).filter(function(e){return""!==e}).map(function(e,t){return t>2?parseFloat(e):parseInt(e,10)});4===s.length?this._alpha=Math.floor(100*parseFloat(s[3])):3===s.length&&(this._alpha=100),s.length>=3&&i(s[0],s[1],s[2])}else if(-1!==e.indexOf("rgb")){var a=e.replace(/rgba|rgb|\(|\)/gm,"").split(/\s|,/g).filter(function(e){return""!==e}).map(function(e,t){return t>2?parseFloat(e):parseInt(e,10)});if(4===a.length?this._alpha=Math.floor(100*parseFloat(a[3])):3===a.length&&(this._alpha=100),a.length>=3){var o=$c(a[0],a[1],a[2]);i(o.h,o.s,o.v)}}else if(-1!==e.indexOf("#")){var l=e.replace("#","").trim();if(!/^(?:[0-9a-fA-F]{3}){1,2}|[0-9a-fA-F]{8}$/.test(l))return;var u=void 0,c=void 0,h=void 0;3===l.length?(u=Dc(l[0]+l[0]),c=Dc(l[1]+l[1]),h=Dc(l[2]+l[2])):6!==l.length&&8!==l.length||(u=Dc(l.substring(0,2)),c=Dc(l.substring(2,4)),h=Dc(l.substring(4,6))),8===l.length?this._alpha=Math.floor(Dc(l.substring(6))/255*100):3!==l.length&&6!==l.length||(this._alpha=100);var d=$c(u,c,h);i(d.h,d.s,d.v)}},e.prototype.compare=function(e){return Math.abs(e._hue-this._hue)<2&&Math.abs(e._saturation-this._saturation)<1&&Math.abs(e._value-this._value)<1&&Math.abs(e._alpha-this._alpha)<1},e.prototype.doOnChange=function(){var e=this._hue,t=this._saturation,i=this._value,n=this._alpha,r=this.format;if(this.enableAlpha)switch(r){case"hsl":var s=xc(e,t/100,i/100);this.value="hsla("+e+", "+Math.round(100*s[1])+"%, "+Math.round(100*s[2])+"%, "+n/100+")";break;case"hsv":this.value="hsva("+e+", "+Math.round(t)+"%, "+Math.round(i)+"%, "+n/100+")";break;default:var a=Ec(e,t,i),o=a.r,l=a.g,u=a.b;this.value="rgba("+o+", "+l+", "+u+", "+n/100+")"}else switch(r){case"hsl":var c=xc(e,t/100,i/100);this.value="hsl("+e+", "+Math.round(100*c[1])+"%, "+Math.round(100*c[2])+"%)";break;case"hsv":this.value="hsv("+e+", "+Math.round(t)+"%, "+Math.round(i)+"%)";break;case"rgb":var h=Ec(e,t,i),d=h.r,p=h.g,f=h.b;this.value="rgb("+d+", "+p+", "+f+")";break;default:this.value=function(e){var t=e.r,i=e.g,n=e.b,r=function(e){e=Math.min(Math.round(e),255);var t=Math.floor(e/16),i=e%16;return""+(kc[t]||t)+(kc[i]||i)};return isNaN(t)||isNaN(i)||isNaN(n)?"":"#"+r(t)+r(i)+r(n)}(Ec(e,t,i))}},e}(),Mc=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":e.doDestroy}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-color-dropdown"},[i("div",{staticClass:"el-color-dropdown__main-wrapper"},[i("hue-slider",{ref:"hue",staticStyle:{float:"right"},attrs:{color:e.color,vertical:""}}),i("sv-panel",{ref:"sl",attrs:{color:e.color}})],1),e.showAlpha?i("alpha-slider",{ref:"alpha",attrs:{color:e.color}}):e._e(),e.predefine?i("predefine",{attrs:{color:e.color,colors:e.predefine}}):e._e(),i("div",{staticClass:"el-color-dropdown__btns"},[i("span",{staticClass:"el-color-dropdown__value"},[i("el-input",{attrs:{"validate-event":!1,size:"mini"},on:{blur:e.handleConfirm},nativeOn:{keyup:function(t){return"button"in t||!e._k(t.keyCode,"enter",13,t.key,"Enter")?e.handleConfirm(t):null}},model:{value:e.customInput,callback:function(t){e.customInput=t},expression:"customInput"}})],1),i("el-button",{staticClass:"el-color-dropdown__link-btn",attrs:{size:"mini",type:"text"},on:{click:function(t){e.$emit("clear")}}},[e._v("\n "+e._s(e.t("el.colorpicker.clear"))+"\n ")]),i("el-button",{staticClass:"el-color-dropdown__btn",attrs:{plain:"",size:"mini"},on:{click:e.confirmValue}},[e._v("\n "+e._s(e.t("el.colorpicker.confirm"))+"\n ")])],1)],1)])};Mc._withStripped=!0;var Nc=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"el-color-svpanel",style:{backgroundColor:this.background}},[t("div",{staticClass:"el-color-svpanel__white"}),t("div",{staticClass:"el-color-svpanel__black"}),t("div",{staticClass:"el-color-svpanel__cursor",style:{top:this.cursorTop+"px",left:this.cursorLeft+"px"}},[t("div")])])};Nc._withStripped=!0;var Pc=!1,Oc=function(e,t){if(!h.a.prototype.$isServer){var i=function(e){t.drag&&t.drag(e)},n=function e(n){document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",e),document.onselectstart=null,document.ondragstart=null,Pc=!1,t.end&&t.end(n)};e.addEventListener("mousedown",function(e){Pc||(document.onselectstart=function(){return!1},document.ondragstart=function(){return!1},document.addEventListener("mousemove",i),document.addEventListener("mouseup",n),Pc=!0,t.start&&t.start(e))})}},Ic=r({name:"el-sl-panel",props:{color:{required:!0}},computed:{colorValue:function(){return{hue:this.color.get("hue"),value:this.color.get("value")}}},watch:{colorValue:function(){this.update()}},methods:{update:function(){var e=this.color.get("saturation"),t=this.color.get("value"),i=this.$el,n=i.clientWidth,r=i.clientHeight;this.cursorLeft=e*n/100,this.cursorTop=(100-t)*r/100,this.background="hsl("+this.color.get("hue")+", 100%, 50%)"},handleDrag:function(e){var t=this.$el.getBoundingClientRect(),i=e.clientX-t.left,n=e.clientY-t.top;i=Math.max(0,i),i=Math.min(i,t.width),n=Math.max(0,n),n=Math.min(n,t.height),this.cursorLeft=i,this.cursorTop=n,this.color.set({saturation:i/t.width*100,value:100-n/t.height*100})}},mounted:function(){var e=this;Oc(this.$el,{drag:function(t){e.handleDrag(t)},end:function(t){e.handleDrag(t)}}),this.update()},data:function(){return{cursorTop:0,cursorLeft:0,background:"hsl(0, 100%, 50%)"}}},Nc,[],!1,null,null,null);Ic.options.__file="packages/color-picker/src/components/sv-panel.vue";var Ac=Ic.exports,Fc=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"el-color-hue-slider",class:{"is-vertical":this.vertical}},[t("div",{ref:"bar",staticClass:"el-color-hue-slider__bar",on:{click:this.handleClick}}),t("div",{ref:"thumb",staticClass:"el-color-hue-slider__thumb",style:{left:this.thumbLeft+"px",top:this.thumbTop+"px"}})])};Fc._withStripped=!0;var Lc=r({name:"el-color-hue-slider",props:{color:{required:!0},vertical:Boolean},data:function(){return{thumbLeft:0,thumbTop:0}},computed:{hueValue:function(){return this.color.get("hue")}},watch:{hueValue:function(){this.update()}},methods:{handleClick:function(e){var t=this.$refs.thumb;e.target!==t&&this.handleDrag(e)},handleDrag:function(e){var t=this.$el.getBoundingClientRect(),i=this.$refs.thumb,n=void 0;if(this.vertical){var r=e.clientY-t.top;r=Math.min(r,t.height-i.offsetHeight/2),r=Math.max(i.offsetHeight/2,r),n=Math.round((r-i.offsetHeight/2)/(t.height-i.offsetHeight)*360)}else{var s=e.clientX-t.left;s=Math.min(s,t.width-i.offsetWidth/2),s=Math.max(i.offsetWidth/2,s),n=Math.round((s-i.offsetWidth/2)/(t.width-i.offsetWidth)*360)}this.color.set("hue",n)},getThumbLeft:function(){if(this.vertical)return 0;var e=this.$el,t=this.color.get("hue");if(!e)return 0;var i=this.$refs.thumb;return Math.round(t*(e.offsetWidth-i.offsetWidth/2)/360)},getThumbTop:function(){if(!this.vertical)return 0;var e=this.$el,t=this.color.get("hue");if(!e)return 0;var i=this.$refs.thumb;return Math.round(t*(e.offsetHeight-i.offsetHeight/2)/360)},update:function(){this.thumbLeft=this.getThumbLeft(),this.thumbTop=this.getThumbTop()}},mounted:function(){var e=this,t=this.$refs,i=t.bar,n=t.thumb,r={drag:function(t){e.handleDrag(t)},end:function(t){e.handleDrag(t)}};Oc(i,r),Oc(n,r),this.update()}},Fc,[],!1,null,null,null);Lc.options.__file="packages/color-picker/src/components/hue-slider.vue";var Vc=Lc.exports,Bc=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"el-color-alpha-slider",class:{"is-vertical":this.vertical}},[t("div",{ref:"bar",staticClass:"el-color-alpha-slider__bar",style:{background:this.background},on:{click:this.handleClick}}),t("div",{ref:"thumb",staticClass:"el-color-alpha-slider__thumb",style:{left:this.thumbLeft+"px",top:this.thumbTop+"px"}})])};Bc._withStripped=!0;var zc=r({name:"el-color-alpha-slider",props:{color:{required:!0},vertical:Boolean},watch:{"color._alpha":function(){this.update()},"color.value":function(){this.update()}},methods:{handleClick:function(e){var t=this.$refs.thumb;e.target!==t&&this.handleDrag(e)},handleDrag:function(e){var t=this.$el.getBoundingClientRect(),i=this.$refs.thumb;if(this.vertical){var n=e.clientY-t.top;n=Math.max(i.offsetHeight/2,n),n=Math.min(n,t.height-i.offsetHeight/2),this.color.set("alpha",Math.round((n-i.offsetHeight/2)/(t.height-i.offsetHeight)*100))}else{var r=e.clientX-t.left;r=Math.max(i.offsetWidth/2,r),r=Math.min(r,t.width-i.offsetWidth/2),this.color.set("alpha",Math.round((r-i.offsetWidth/2)/(t.width-i.offsetWidth)*100))}},getThumbLeft:function(){if(this.vertical)return 0;var e=this.$el,t=this.color._alpha;if(!e)return 0;var i=this.$refs.thumb;return Math.round(t*(e.offsetWidth-i.offsetWidth/2)/100)},getThumbTop:function(){if(!this.vertical)return 0;var e=this.$el,t=this.color._alpha;if(!e)return 0;var i=this.$refs.thumb;return Math.round(t*(e.offsetHeight-i.offsetHeight/2)/100)},getBackground:function(){if(this.color&&this.color.value){var e=this.color.toRgb(),t=e.r,i=e.g,n=e.b;return"linear-gradient(to right, rgba("+t+", "+i+", "+n+", 0) 0%, rgba("+t+", "+i+", "+n+", 1) 100%)"}return null},update:function(){this.thumbLeft=this.getThumbLeft(),this.thumbTop=this.getThumbTop(),this.background=this.getBackground()}},data:function(){return{thumbLeft:0,thumbTop:0,background:null}},mounted:function(){var e=this,t=this.$refs,i=t.bar,n=t.thumb,r={drag:function(t){e.handleDrag(t)},end:function(t){e.handleDrag(t)}};Oc(i,r),Oc(n,r),this.update()}},Bc,[],!1,null,null,null);zc.options.__file="packages/color-picker/src/components/alpha-slider.vue";var Hc=zc.exports,Rc=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-color-predefine"},[i("div",{staticClass:"el-color-predefine__colors"},e._l(e.rgbaColors,function(t,n){return i("div",{key:e.colors[n],staticClass:"el-color-predefine__color-selector",class:{selected:t.selected,"is-alpha":t._alpha<100},on:{click:function(t){e.handleSelect(n)}}},[i("div",{style:{"background-color":t.value}})])}),0)])};Rc._withStripped=!0;var Wc=r({props:{colors:{type:Array,required:!0},color:{required:!0}},data:function(){return{rgbaColors:this.parseColors(this.colors,this.color)}},methods:{handleSelect:function(e){this.color.fromString(this.colors[e])},parseColors:function(e,t){return e.map(function(e){var i=new Tc;return i.enableAlpha=!0,i.format="rgba",i.fromString(e),i.selected=i.value===t.value,i})}},watch:{"$parent.currentColor":function(e){var t=new Tc;t.fromString(e),this.rgbaColors.forEach(function(e){e.selected=t.compare(e)})},colors:function(e){this.rgbaColors=this.parseColors(e,this.color)},color:function(e){this.rgbaColors=this.parseColors(this.colors,e)}}},Rc,[],!1,null,null,null);Wc.options.__file="packages/color-picker/src/components/predefine.vue";var jc=Wc.exports,qc=r({name:"el-color-picker-dropdown",mixins:[Ie,Y],components:{SvPanel:Ac,HueSlider:Vc,AlphaSlider:Hc,ElInput:re,ElButton:Tt,Predefine:jc},props:{color:{required:!0},showAlpha:Boolean,predefine:Array},data:function(){return{customInput:""}},computed:{currentColor:function(){var e=this.$parent;return e.value||e.showPanelColor?e.color.value:""}},methods:{confirmValue:function(){this.$emit("pick")},handleConfirm:function(){this.color.fromString(this.customInput)}},mounted:function(){this.$parent.popperElm=this.popperElm=this.$el,this.referenceElm=this.$parent.$el},watch:{showPopper:function(e){var t=this;!0===e&&this.$nextTick(function(){var e=t.$refs,i=e.sl,n=e.hue,r=e.alpha;i&&i.update(),n&&n.update(),r&&r.update()})},currentColor:{immediate:!0,handler:function(e){this.customInput=e}}}},Mc,[],!1,null,null,null);qc.options.__file="packages/color-picker/src/components/picker-dropdown.vue";var Yc=qc.exports,Kc=r({name:"ElColorPicker",mixins:[l],props:{value:String,showAlpha:Boolean,colorFormat:String,disabled:Boolean,size:String,popperClass:String,predefine:Array},inject:{elForm:{default:""},elFormItem:{default:""}},directives:{Clickoutside:ot},computed:{displayedColor:function(){return this.value||this.showPanelColor?this.displayedRgb(this.color,this.showAlpha):"transparent"},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},colorSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},colorDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},watch:{value:function(e){e?e&&e!==this.color.value&&this.color.fromString(e):this.showPanelColor=!1},color:{deep:!0,handler:function(){this.showPanelColor=!0}},displayedColor:function(e){if(this.showPicker){var t=new Tc({enableAlpha:this.showAlpha,format:this.colorFormat});t.fromString(this.value),e!==this.displayedRgb(t,this.showAlpha)&&this.$emit("active-change",e)}}},methods:{handleTrigger:function(){this.colorDisabled||(this.showPicker=!this.showPicker)},confirmValue:function(){var e=this.color.value;this.$emit("input",e),this.$emit("change",e),this.dispatch("ElFormItem","el.form.change",e),this.showPicker=!1},clearValue:function(){this.$emit("input",null),this.$emit("change",null),null!==this.value&&this.dispatch("ElFormItem","el.form.change",null),this.showPanelColor=!1,this.showPicker=!1,this.resetColor()},hide:function(){this.showPicker=!1,this.resetColor()},resetColor:function(){var e=this;this.$nextTick(function(t){e.value?e.color.fromString(e.value):e.showPanelColor=!1})},displayedRgb:function(e,t){if(!(e instanceof Tc))throw Error("color should be instance of Color Class");var i=e.toRgb(),n=i.r,r=i.g,s=i.b;return t?"rgba("+n+", "+r+", "+s+", "+e.get("alpha")/100+")":"rgb("+n+", "+r+", "+s+")"}},mounted:function(){var e=this.value;e&&this.color.fromString(e),this.popperElm=this.$refs.dropdown.$el},data:function(){return{color:new Tc({enableAlpha:this.showAlpha,format:this.colorFormat}),showPicker:!1,showPanelColor:!1}},components:{PickerDropdown:Yc}},wc,[],!1,null,null,null);Kc.options.__file="packages/color-picker/src/main.vue";var Gc=Kc.exports;Gc.install=function(e){e.component(Gc.name,Gc)};var Uc=Gc,Xc=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-transfer"},[i("transfer-panel",e._b({ref:"leftPanel",attrs:{data:e.sourceData,title:e.titles[0]||e.t("el.transfer.titles.0"),"default-checked":e.leftDefaultChecked,placeholder:e.filterPlaceholder||e.t("el.transfer.filterPlaceholder")},on:{"checked-change":e.onSourceCheckedChange}},"transfer-panel",e.$props,!1),[e._t("left-footer")],2),i("div",{staticClass:"el-transfer__buttons"},[i("el-button",{class:["el-transfer__button",e.hasButtonTexts?"is-with-texts":""],attrs:{type:"primary",disabled:0===e.rightChecked.length},nativeOn:{click:function(t){return e.addToLeft(t)}}},[i("i",{staticClass:"el-icon-arrow-left"}),void 0!==e.buttonTexts[0]?i("span",[e._v(e._s(e.buttonTexts[0]))]):e._e()]),i("el-button",{class:["el-transfer__button",e.hasButtonTexts?"is-with-texts":""],attrs:{type:"primary",disabled:0===e.leftChecked.length},nativeOn:{click:function(t){return e.addToRight(t)}}},[void 0!==e.buttonTexts[1]?i("span",[e._v(e._s(e.buttonTexts[1]))]):e._e(),i("i",{staticClass:"el-icon-arrow-right"})])],1),i("transfer-panel",e._b({ref:"rightPanel",attrs:{data:e.targetData,title:e.titles[1]||e.t("el.transfer.titles.1"),"default-checked":e.rightDefaultChecked,placeholder:e.filterPlaceholder||e.t("el.transfer.filterPlaceholder")},on:{"checked-change":e.onTargetCheckedChange}},"transfer-panel",e.$props,!1),[e._t("right-footer")],2)],1)};Xc._withStripped=!0;var Zc=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-transfer-panel"},[i("p",{staticClass:"el-transfer-panel__header"},[i("el-checkbox",{attrs:{indeterminate:e.isIndeterminate},on:{change:e.handleAllCheckedChange},model:{value:e.allChecked,callback:function(t){e.allChecked=t},expression:"allChecked"}},[e._v("\n "+e._s(e.title)+"\n "),i("span",[e._v(e._s(e.checkedSummary))])])],1),i("div",{class:["el-transfer-panel__body",e.hasFooter?"is-with-footer":""]},[e.filterable?i("el-input",{staticClass:"el-transfer-panel__filter",attrs:{size:"small",placeholder:e.placeholder},nativeOn:{mouseenter:function(t){e.inputHover=!0},mouseleave:function(t){e.inputHover=!1}},model:{value:e.query,callback:function(t){e.query=t},expression:"query"}},[i("i",{class:["el-input__icon","el-icon-"+e.inputIcon],attrs:{slot:"prefix"},on:{click:e.clearQuery},slot:"prefix"})]):e._e(),i("el-checkbox-group",{directives:[{name:"show",rawName:"v-show",value:!e.hasNoMatch&&e.data.length>0,expression:"!hasNoMatch && data.length > 0"}],staticClass:"el-transfer-panel__list",class:{"is-filterable":e.filterable},model:{value:e.checked,callback:function(t){e.checked=t},expression:"checked"}},e._l(e.filteredData,function(t){return i("el-checkbox",{key:t[e.keyProp],staticClass:"el-transfer-panel__item",attrs:{label:t[e.keyProp],disabled:t[e.disabledProp]}},[i("option-content",{attrs:{option:t}})],1)}),1),i("p",{directives:[{name:"show",rawName:"v-show",value:e.hasNoMatch,expression:"hasNoMatch"}],staticClass:"el-transfer-panel__empty"},[e._v(e._s(e.t("el.transfer.noMatch")))]),i("p",{directives:[{name:"show",rawName:"v-show",value:0===e.data.length&&!e.hasNoMatch,expression:"data.length === 0 && !hasNoMatch"}],staticClass:"el-transfer-panel__empty"},[e._v(e._s(e.t("el.transfer.noData")))])],1),e.hasFooter?i("p",{staticClass:"el-transfer-panel__footer"},[e._t("default")],2):e._e()])};Zc._withStripped=!0;var Jc=r({mixins:[Y],name:"ElTransferPanel",componentName:"ElTransferPanel",components:{ElCheckboxGroup:Ki,ElCheckbox:Bi,ElInput:re,OptionContent:{props:{option:Object},render:function(e){var t=function e(t){return"ElTransferPanel"===t.$options.componentName?t:t.$parent?e(t.$parent):t}(this),i=t.$parent||t;return t.renderContent?t.renderContent(e,this.option):i.$scopedSlots.default?i.$scopedSlots.default({option:this.option}):e("span",[this.option[t.labelProp]||this.option[t.keyProp]])}}},props:{data:{type:Array,default:function(){return[]}},renderContent:Function,placeholder:String,title:String,filterable:Boolean,format:Object,filterMethod:Function,defaultChecked:Array,props:Object},data:function(){return{checked:[],allChecked:!1,query:"",inputHover:!1,checkChangeByUser:!0}},watch:{checked:function(e,t){if(this.updateAllChecked(),this.checkChangeByUser){var i=e.concat(t).filter(function(i){return-1===e.indexOf(i)||-1===t.indexOf(i)});this.$emit("checked-change",e,i)}else this.$emit("checked-change",e),this.checkChangeByUser=!0},data:function(){var e=this,t=[],i=this.filteredData.map(function(t){return t[e.keyProp]});this.checked.forEach(function(e){i.indexOf(e)>-1&&t.push(e)}),this.checkChangeByUser=!1,this.checked=t},checkableData:function(){this.updateAllChecked()},defaultChecked:{immediate:!0,handler:function(e,t){var i=this;if(!t||e.length!==t.length||!e.every(function(e){return t.indexOf(e)>-1})){var n=[],r=this.checkableData.map(function(e){return e[i.keyProp]});e.forEach(function(e){r.indexOf(e)>-1&&n.push(e)}),this.checkChangeByUser=!1,this.checked=n}}}},computed:{filteredData:function(){var e=this;return this.data.filter(function(t){return"function"==typeof e.filterMethod?e.filterMethod(e.query,t):(t[e.labelProp]||t[e.keyProp].toString()).toLowerCase().indexOf(e.query.toLowerCase())>-1})},checkableData:function(){var e=this;return this.filteredData.filter(function(t){return!t[e.disabledProp]})},checkedSummary:function(){var e=this.checked.length,t=this.data.length,i=this.format,n=i.noChecked,r=i.hasChecked;return n&&r?e>0?r.replace(/\${checked}/g,e).replace(/\${total}/g,t):n.replace(/\${total}/g,t):e+"/"+t},isIndeterminate:function(){var e=this.checked.length;return e>0&&e<this.checkableData.length},hasNoMatch:function(){return this.query.length>0&&0===this.filteredData.length},inputIcon:function(){return this.query.length>0&&this.inputHover?"circle-close":"search"},labelProp:function(){return this.props.label||"label"},keyProp:function(){return this.props.key||"key"},disabledProp:function(){return this.props.disabled||"disabled"},hasFooter:function(){return!!this.$slots.default}},methods:{updateAllChecked:function(){var e=this,t=this.checkableData.map(function(t){return t[e.keyProp]});this.allChecked=t.length>0&&t.every(function(t){return e.checked.indexOf(t)>-1})},handleAllCheckedChange:function(e){var t=this;this.checked=e?this.checkableData.map(function(e){return e[t.keyProp]}):[]},clearQuery:function(){"circle-close"===this.inputIcon&&(this.query="")}}},Zc,[],!1,null,null,null);Jc.options.__file="packages/transfer/src/transfer-panel.vue";var Qc=r({name:"ElTransfer",mixins:[l,Y,G],components:{TransferPanel:Jc.exports,ElButton:Tt},props:{data:{type:Array,default:function(){return[]}},titles:{type:Array,default:function(){return[]}},buttonTexts:{type:Array,default:function(){return[]}},filterPlaceholder:{type:String,default:""},filterMethod:Function,leftDefaultChecked:{type:Array,default:function(){return[]}},rightDefaultChecked:{type:Array,default:function(){return[]}},renderContent:Function,value:{type:Array,default:function(){return[]}},format:{type:Object,default:function(){return{}}},filterable:Boolean,props:{type:Object,default:function(){return{label:"label",key:"key",disabled:"disabled"}}},targetOrder:{type:String,default:"original"}},data:function(){return{leftChecked:[],rightChecked:[]}},computed:{dataObj:function(){var e=this.props.key;return this.data.reduce(function(t,i){return(t[i[e]]=i)&&t},{})},sourceData:function(){var e=this;return this.data.filter(function(t){return-1===e.value.indexOf(t[e.props.key])})},targetData:function(){var e=this;return"original"===this.targetOrder?this.data.filter(function(t){return e.value.indexOf(t[e.props.key])>-1}):this.value.reduce(function(t,i){var n=e.dataObj[i];return n&&t.push(n),t},[])},hasButtonTexts:function(){return 2===this.buttonTexts.length}},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",e)}},methods:{getMigratingConfig:function(){return{props:{"footer-format":"footer-format is renamed to format."}}},onSourceCheckedChange:function(e,t){this.leftChecked=e,void 0!==t&&this.$emit("left-check-change",e,t)},onTargetCheckedChange:function(e,t){this.rightChecked=e,void 0!==t&&this.$emit("right-check-change",e,t)},addToLeft:function(){var e=this.value.slice();this.rightChecked.forEach(function(t){var i=e.indexOf(t);i>-1&&e.splice(i,1)}),this.$emit("input",e),this.$emit("change",e,"left",this.rightChecked)},addToRight:function(){var e=this,t=this.value.slice(),i=[],n=this.props.key;this.data.forEach(function(t){var r=t[n];e.leftChecked.indexOf(r)>-1&&-1===e.value.indexOf(r)&&i.push(r)}),t="unshift"===this.targetOrder?i.concat(t):t.concat(i),this.$emit("input",t),this.$emit("change",t,"right",this.leftChecked)},clearQuery:function(e){"left"===e?this.$refs.leftPanel.query="":"right"===e&&(this.$refs.rightPanel.query="")}}},Xc,[],!1,null,null,null);Qc.options.__file="packages/transfer/src/main.vue";var eh=Qc.exports;eh.install=function(e){e.component(eh.name,eh)};var th=eh,ih=function(){var e=this.$createElement;return(this._self._c||e)("section",{staticClass:"el-container",class:{"is-vertical":this.isVertical}},[this._t("default")],2)};ih._withStripped=!0;var nh=r({name:"ElContainer",componentName:"ElContainer",props:{direction:String},computed:{isVertical:function(){return"vertical"===this.direction||"horizontal"!==this.direction&&(!(!this.$slots||!this.$slots.default)&&this.$slots.default.some(function(e){var t=e.componentOptions&&e.componentOptions.tag;return"el-header"===t||"el-footer"===t}))}}},ih,[],!1,null,null,null);nh.options.__file="packages/container/src/main.vue";var rh=nh.exports;rh.install=function(e){e.component(rh.name,rh)};var sh=rh,ah=function(){var e=this.$createElement;return(this._self._c||e)("header",{staticClass:"el-header",style:{height:this.height}},[this._t("default")],2)};ah._withStripped=!0;var oh=r({name:"ElHeader",componentName:"ElHeader",props:{height:{type:String,default:"60px"}}},ah,[],!1,null,null,null);oh.options.__file="packages/header/src/main.vue";var lh=oh.exports;lh.install=function(e){e.component(lh.name,lh)};var uh=lh,ch=function(){var e=this.$createElement;return(this._self._c||e)("aside",{staticClass:"el-aside",style:{width:this.width}},[this._t("default")],2)};ch._withStripped=!0;var hh=r({name:"ElAside",componentName:"ElAside",props:{width:{type:String,default:"300px"}}},ch,[],!1,null,null,null);hh.options.__file="packages/aside/src/main.vue";var dh=hh.exports;dh.install=function(e){e.component(dh.name,dh)};var ph=dh,fh=function(){var e=this.$createElement;return(this._self._c||e)("main",{staticClass:"el-main"},[this._t("default")],2)};fh._withStripped=!0;var mh=r({name:"ElMain",componentName:"ElMain"},fh,[],!1,null,null,null);mh.options.__file="packages/main/src/main.vue";var vh=mh.exports;vh.install=function(e){e.component(vh.name,vh)};var gh=vh,bh=function(){var e=this.$createElement;return(this._self._c||e)("footer",{staticClass:"el-footer",style:{height:this.height}},[this._t("default")],2)};bh._withStripped=!0;var yh=r({name:"ElFooter",componentName:"ElFooter",props:{height:{type:String,default:"60px"}}},bh,[],!1,null,null,null);yh.options.__file="packages/footer/src/main.vue";var wh=yh.exports;wh.install=function(e){e.component(wh.name,wh)};var _h=wh,xh=r({name:"ElTimeline",props:{reverse:{type:Boolean,default:!1}},provide:function(){return{timeline:this}},render:function(){var e=arguments[0],t=this.reverse,i={"el-timeline":!0,"is-reverse":t},n=this.$slots.default||[];return t&&(n=n.reverse()),e("ul",{class:i},[n])}},void 0,void 0,!1,null,null,null);xh.options.__file="packages/timeline/src/main.vue";var Ch=xh.exports;Ch.install=function(e){e.component(Ch.name,Ch)};var kh=Ch,Sh=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("li",{staticClass:"el-timeline-item"},[i("div",{staticClass:"el-timeline-item__tail"}),e.$slots.dot?e._e():i("div",{staticClass:"el-timeline-item__node",class:["el-timeline-item__node--"+(e.size||""),"el-timeline-item__node--"+(e.type||"")],style:{backgroundColor:e.color}},[e.icon?i("i",{staticClass:"el-timeline-item__icon",class:e.icon}):e._e()]),e.$slots.dot?i("div",{staticClass:"el-timeline-item__dot"},[e._t("dot")],2):e._e(),i("div",{staticClass:"el-timeline-item__wrapper"},[e.hideTimestamp||"top"!==e.placement?e._e():i("div",{staticClass:"el-timeline-item__timestamp is-top"},[e._v("\n "+e._s(e.timestamp)+"\n ")]),i("div",{staticClass:"el-timeline-item__content"},[e._t("default")],2),e.hideTimestamp||"bottom"!==e.placement?e._e():i("div",{staticClass:"el-timeline-item__timestamp is-bottom"},[e._v("\n "+e._s(e.timestamp)+"\n ")])])])};Sh._withStripped=!0;var Dh=r({name:"ElTimelineItem",inject:["timeline"],props:{timestamp:String,hideTimestamp:{type:Boolean,default:!1},placement:{type:String,default:"bottom"},type:String,color:String,size:{type:String,default:"normal"},icon:String}},Sh,[],!1,null,null,null);Dh.options.__file="packages/timeline/src/item.vue";var $h=Dh.exports;$h.install=function(e){e.component($h.name,$h)};var Eh=$h,Th=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("a",e._b({class:["el-link",e.type?"el-link--"+e.type:"",e.disabled&&"is-disabled",e.underline&&!e.disabled&&"is-underline"],attrs:{href:e.disabled?null:e.href},on:{click:e.handleClick}},"a",e.$attrs,!1),[e.icon?i("i",{class:e.icon}):e._e(),e.$slots.default?i("span",{staticClass:"el-link--inner"},[e._t("default")],2):e._e(),e.$slots.icon?[e.$slots.icon?e._t("icon"):e._e()]:e._e()],2)};Th._withStripped=!0;var Mh=r({name:"ElLink",props:{type:{type:String,default:"default"},underline:{type:Boolean,default:!0},disabled:Boolean,href:String,icon:String},methods:{handleClick:function(e){this.disabled||this.href||this.$emit("click",e)}}},Th,[],!1,null,null,null);Mh.options.__file="packages/link/src/main.vue";var Nh=Mh.exports;Nh.install=function(e){e.component(Nh.name,Nh)};var Ph=Nh,Oh=function(e,t){var i=t._c;return i("div",t._g(t._b({class:[t.data.staticClass,"el-divider","el-divider--"+t.props.direction]},"div",t.data.attrs,!1),t.listeners),[t.slots().default&&"vertical"!==t.props.direction?i("div",{class:["el-divider__text","is-"+t.props.contentPosition]},[t._t("default")],2):t._e()])};Oh._withStripped=!0;var Ih=r({name:"ElDivider",props:{direction:{type:String,default:"horizontal",validator:function(e){return-1!==["horizontal","vertical"].indexOf(e)}},contentPosition:{type:String,default:"center",validator:function(e){return-1!==["left","center","right"].indexOf(e)}}}},Oh,[],!0,null,null,null);Ih.options.__file="packages/divider/src/main.vue";var Ah=Ih.exports;Ah.install=function(e){e.component(Ah.name,Ah)};var Fh=Ah,Lh=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-image"},[e.loading?e._t("placeholder",[i("div",{staticClass:"el-image__placeholder"})]):e.error?e._t("error",[i("div",{staticClass:"el-image__error"},[e._v(e._s(e.t("el.image.error")))])]):i("img",e._g(e._b({staticClass:"el-image__inner",class:{"el-image__inner--center":e.alignCenter,"el-image__preview":e.preview},style:e.imageStyle,attrs:{src:e.src},on:{click:e.clickHandler}},"img",e.$attrs,!1),e.$listeners)),e.preview?[e.showViewer?i("image-viewer",{attrs:{"z-index":e.zIndex,"initial-index":e.imageIndex,"on-close":e.closeViewer,"url-list":e.previewSrcList}}):e._e()]:e._e()],2)};Lh._withStripped=!0;var Vh=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"viewer-fade"}},[i("div",{ref:"el-image-viewer__wrapper",staticClass:"el-image-viewer__wrapper",style:{"z-index":e.viewerZIndex},attrs:{tabindex:"-1"}},[i("div",{staticClass:"el-image-viewer__mask",on:{click:function(t){return t.target!==t.currentTarget?null:e.handleMaskClick(t)}}}),i("span",{staticClass:"el-image-viewer__btn el-image-viewer__close",on:{click:e.hide}},[i("i",{staticClass:"el-icon-close"})]),e.isSingle?e._e():[i("span",{staticClass:"el-image-viewer__btn el-image-viewer__prev",class:{"is-disabled":!e.infinite&&e.isFirst},on:{click:e.prev}},[i("i",{staticClass:"el-icon-arrow-left"})]),i("span",{staticClass:"el-image-viewer__btn el-image-viewer__next",class:{"is-disabled":!e.infinite&&e.isLast},on:{click:e.next}},[i("i",{staticClass:"el-icon-arrow-right"})])],i("div",{staticClass:"el-image-viewer__btn el-image-viewer__actions"},[i("div",{staticClass:"el-image-viewer__actions__inner"},[i("i",{staticClass:"el-icon-zoom-out",on:{click:function(t){e.handleActions("zoomOut")}}}),i("i",{staticClass:"el-icon-zoom-in",on:{click:function(t){e.handleActions("zoomIn")}}}),i("i",{staticClass:"el-image-viewer__actions__divider"}),i("i",{class:e.mode.icon,on:{click:e.toggleMode}}),i("i",{staticClass:"el-image-viewer__actions__divider"}),i("i",{staticClass:"el-icon-refresh-left",on:{click:function(t){e.handleActions("anticlocelise")}}}),i("i",{staticClass:"el-icon-refresh-right",on:{click:function(t){e.handleActions("clocelise")}}})])]),i("div",{staticClass:"el-image-viewer__canvas"},e._l(e.urlList,function(t,n){return n===e.index?i("img",{key:t,ref:"img",refInFor:!0,staticClass:"el-image-viewer__img",style:e.imgStyle,attrs:{src:e.currentImg},on:{load:e.handleImgLoad,error:e.handleImgError,mousedown:e.handleMouseDown}}):e._e()}),0)],2)])};Vh._withStripped=!0;var Bh=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},zh={CONTAIN:{name:"contain",icon:"el-icon-full-screen"},ORIGINAL:{name:"original",icon:"el-icon-c-scale-to-original"}},Hh=!h.a.prototype.$isServer&&window.navigator.userAgent.match(/firefox/i)?"DOMMouseScroll":"mousewheel",Rh=r({name:"elImageViewer",props:{urlList:{type:Array,default:function(){return[]}},zIndex:{type:Number,default:2e3},onSwitch:{type:Function,default:function(){}},onClose:{type:Function,default:function(){}},initialIndex:{type:Number,default:0},appendToBody:{type:Boolean,default:!0},maskClosable:{type:Boolean,default:!0}},data:function(){return{index:this.initialIndex,isShow:!1,infinite:!0,loading:!1,mode:zh.CONTAIN,transform:{scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}}},computed:{isSingle:function(){return this.urlList.length<=1},isFirst:function(){return 0===this.index},isLast:function(){return this.index===this.urlList.length-1},currentImg:function(){return this.urlList[this.index]},imgStyle:function(){var e=this.transform,t=e.scale,i=e.deg,n=e.offsetX,r=e.offsetY,s={transform:"scale("+t+") rotate("+i+"deg)",transition:e.enableTransition?"transform .3s":"","margin-left":n+"px","margin-top":r+"px"};return this.mode===zh.CONTAIN&&(s.maxWidth=s.maxHeight="100%"),s},viewerZIndex:function(){var e=De.nextZIndex();return this.zIndex>e?this.zIndex:e}},watch:{index:{handler:function(e){this.reset(),this.onSwitch(e)}},currentImg:function(e){var t=this;this.$nextTick(function(e){t.$refs.img[0].complete||(t.loading=!0)})}},methods:{hide:function(){this.deviceSupportUninstall(),this.onClose()},deviceSupportInstall:function(){var e=this;this._keyDownHandler=function(t){switch(t.stopPropagation(),t.keyCode){case 27:e.hide();break;case 32:e.toggleMode();break;case 37:e.prev();break;case 38:e.handleActions("zoomIn");break;case 39:e.next();break;case 40:e.handleActions("zoomOut")}},this._mouseWheelHandler=L(function(t){(t.wheelDelta?t.wheelDelta:-t.detail)>0?e.handleActions("zoomIn",{zoomRate:.015,enableTransition:!1}):e.handleActions("zoomOut",{zoomRate:.015,enableTransition:!1})}),de(document,"keydown",this._keyDownHandler),de(document,Hh,this._mouseWheelHandler)},deviceSupportUninstall:function(){pe(document,"keydown",this._keyDownHandler),pe(document,Hh,this._mouseWheelHandler),this._keyDownHandler=null,this._mouseWheelHandler=null},handleImgLoad:function(e){this.loading=!1},handleImgError:function(e){this.loading=!1,e.target.alt="加载失败"},handleMouseDown:function(e){var t=this;if(!this.loading&&0===e.button){var i=this.transform,n=i.offsetX,r=i.offsetY,s=e.pageX,a=e.pageY;this._dragHandler=L(function(e){t.transform.offsetX=n+e.pageX-s,t.transform.offsetY=r+e.pageY-a}),de(document,"mousemove",this._dragHandler),de(document,"mouseup",function(e){pe(document,"mousemove",t._dragHandler)}),e.preventDefault()}},handleMaskClick:function(){this.maskClosable&&this.hide()},reset:function(){this.transform={scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}},toggleMode:function(){if(!this.loading){var e=Object.keys(zh),t=(Object.values(zh).indexOf(this.mode)+1)%e.length;this.mode=zh[e[t]],this.reset()}},prev:function(){if(!this.isFirst||this.infinite){var e=this.urlList.length;this.index=(this.index-1+e)%e}},next:function(){if(!this.isLast||this.infinite){var e=this.urlList.length;this.index=(this.index+1)%e}},handleActions:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.loading){var i=Bh({zoomRate:.2,rotateDeg:90,enableTransition:!0},t),n=i.zoomRate,r=i.rotateDeg,s=i.enableTransition,a=this.transform;switch(e){case"zoomOut":a.scale>.2&&(a.scale=parseFloat((a.scale-n).toFixed(3)));break;case"zoomIn":a.scale=parseFloat((a.scale+n).toFixed(3));break;case"clocelise":a.deg+=r;break;case"anticlocelise":a.deg-=r}a.enableTransition=s}}},mounted:function(){this.deviceSupportInstall(),this.appendToBody&&document.body.appendChild(this.$el),this.$refs["el-image-viewer__wrapper"].focus()},destroyed:function(){this.appendToBody&&this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)}},Vh,[],!1,null,null,null);Rh.options.__file="packages/image/src/image-viewer.vue";var Wh=Rh.exports,jh=function(){return void 0!==document.documentElement.style.objectFit},qh="none",Yh="contain",Kh="cover",Gh="fill",Uh="scale-down",Xh="",Zh=r({name:"ElImage",mixins:[Y],inheritAttrs:!1,components:{ImageViewer:Wh},props:{src:String,fit:String,lazy:Boolean,scrollContainer:{},previewSrcList:{type:Array,default:function(){return[]}},zIndex:{type:Number,default:2e3}},data:function(){return{loading:!0,error:!1,show:!this.lazy,imageWidth:0,imageHeight:0,showViewer:!1}},computed:{imageStyle:function(){var e=this.fit;return!this.$isServer&&e?jh()?{"object-fit":e}:this.getImageStyle(e):{}},alignCenter:function(){return!this.$isServer&&!jh()&&this.fit!==Gh},preview:function(){var e=this.previewSrcList;return Array.isArray(e)&&e.length>0},imageIndex:function(){var e=0,t=this.previewSrcList.indexOf(this.src);return t>=0&&(e=t),e}},watch:{src:function(e){this.show&&this.loadImage()},show:function(e){e&&this.loadImage()}},mounted:function(){this.lazy?this.addLazyLoadListener():this.loadImage()},beforeDestroy:function(){this.lazy&&this.removeLazyLoadListener()},methods:{loadImage:function(){var e=this;if(!this.$isServer){this.loading=!0,this.error=!1;var t=new Image;t.onload=function(i){return e.handleLoad(i,t)},t.onerror=this.handleError.bind(this),Object.keys(this.$attrs).forEach(function(i){var n=e.$attrs[i];t.setAttribute(i,n)}),t.src=this.src}},handleLoad:function(e,t){this.imageWidth=t.width,this.imageHeight=t.height,this.loading=!1,this.error=!1},handleError:function(e){this.loading=!1,this.error=!0,this.$emit("error",e)},handleLazyLoad:function(){(function(e,t){if(ae||!e||!t)return!1;var i=e.getBoundingClientRect(),n=void 0;return n=[window,document,document.documentElement,null,void 0].includes(t)?{top:0,right:window.innerWidth,bottom:window.innerHeight,left:0}:t.getBoundingClientRect(),i.top<n.bottom&&i.bottom>n.top&&i.right>n.left&&i.left<n.right})(this.$el,this._scrollContainer)&&(this.show=!0,this.removeLazyLoadListener())},addLazyLoadListener:function(){if(!this.$isServer){var e=this.scrollContainer,t=null;(t=g(e)?e:m(e)?document.querySelector(e):ye(this.$el))&&(this._scrollContainer=t,this._lazyLoadHandler=Nu()(200,this.handleLazyLoad),de(t,"scroll",this._lazyLoadHandler),this.handleLazyLoad())}},removeLazyLoadListener:function(){var e=this._scrollContainer,t=this._lazyLoadHandler;!this.$isServer&&e&&t&&(pe(e,"scroll",t),this._scrollContainer=null,this._lazyLoadHandler=null)},getImageStyle:function(e){var t=this.imageWidth,i=this.imageHeight,n=this.$el,r=n.clientWidth,s=n.clientHeight;if(!(t&&i&&r&&s))return{};var a=t/i,o=r/s;e===Uh&&(e=t<r&&i<s?qh:Yh);switch(e){case qh:return{width:"auto",height:"auto"};case Yh:return a<o?{width:"auto"}:{height:"auto"};case Kh:return a<o?{height:"auto"}:{width:"auto"};default:return{}}},clickHandler:function(){this.preview&&(Xh=document.body.style.overflow,document.body.style.overflow="hidden",this.showViewer=!0)},closeViewer:function(){document.body.style.overflow=Xh,this.showViewer=!1}}},Lh,[],!1,null,null,null);Zh.options.__file="packages/image/src/main.vue";var Jh=Zh.exports;Jh.install=function(e){e.component(Jh.name,Jh)};var Qh=Jh,ed=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-calendar"},[i("div",{staticClass:"el-calendar__header"},[i("div",{staticClass:"el-calendar__title"},[e._v("\n "+e._s(e.i18nDate)+"\n ")]),0===e.validatedRange.length?i("div",{staticClass:"el-calendar__button-group"},[i("el-button-group",[i("el-button",{attrs:{type:"plain",size:"mini"},on:{click:function(t){e.selectDate("prev-month")}}},[e._v("\n "+e._s(e.t("el.datepicker.prevMonth"))+"\n ")]),i("el-button",{attrs:{type:"plain",size:"mini"},on:{click:function(t){e.selectDate("today")}}},[e._v("\n "+e._s(e.t("el.datepicker.today"))+"\n ")]),i("el-button",{attrs:{type:"plain",size:"mini"},on:{click:function(t){e.selectDate("next-month")}}},[e._v("\n "+e._s(e.t("el.datepicker.nextMonth"))+"\n ")])],1)],1):e._e()]),0===e.validatedRange.length?i("div",{key:"no-range",staticClass:"el-calendar__body"},[i("date-table",{attrs:{date:e.date,"selected-day":e.realSelectedDay,"first-day-of-week":e.realFirstDayOfWeek},on:{pick:e.pickDay}})],1):i("div",{key:"has-range",staticClass:"el-calendar__body"},e._l(e.validatedRange,function(t,n){return i("date-table",{key:n,attrs:{date:t[0],"selected-day":e.realSelectedDay,range:t,"hide-header":0!==n,"first-day-of-week":e.realFirstDayOfWeek},on:{pick:e.pickDay}})}),1)])};ed._withStripped=!0;var td=r({props:{selectedDay:String,range:{type:Array,validator:function(e){if(!e||!e.length)return!0;var t=e[0],i=e[1];return Ar(t,i)}},date:Date,hideHeader:Boolean,firstDayOfWeek:Number},inject:["elCalendar"],methods:{toNestedArr:function(e){return wr(e.length/7).map(function(t,i){var n=7*i;return e.slice(n,n+7)})},getFormateDate:function(e,t){if(!e||-1===["prev","current","next"].indexOf(t))throw new Error("invalid day or type");var i=this.curMonthDatePrefix;return"prev"===t?i=this.prevMonthDatePrefix:"next"===t&&(i=this.nextMonthDatePrefix),i+"-"+(e=("00"+e).slice(-2))},getCellClass:function(e){var t=e.text,i=e.type,n=[i];if("current"===i){var r=this.getFormateDate(t,i);r===this.selectedDay&&n.push("is-selected"),r===this.formatedToday&&n.push("is-today")}return n},pickDay:function(e){var t=e.text,i=e.type,n=this.getFormateDate(t,i);this.$emit("pick",n)},cellRenderProxy:function(e){var t=e.text,i=e.type,n=this.$createElement,r=this.elCalendar.$scopedSlots.dateCell;if(!r)return n("span",[t]);var s=this.getFormateDate(t,i);return r({date:new Date(s),data:{isSelected:this.selectedDay===s,type:i+"-month",day:s}})}},computed:{WEEK_DAYS:function(){return ur().dayNames},prevMonthDatePrefix:function(){var e=new Date(this.date.getTime());return e.setDate(0),ar.a.format(e,"yyyy-MM")},curMonthDatePrefix:function(){return ar.a.format(this.date,"yyyy-MM")},nextMonthDatePrefix:function(){var e=new Date(this.date.getFullYear(),this.date.getMonth()+1,1);return ar.a.format(e,"yyyy-MM")},formatedToday:function(){return this.elCalendar.formatedToday},isInRange:function(){return this.range&&this.range.length},rows:function(){var e=[];if(this.isInRange){var t=this.range,i=t[0],n=t[1],r=wr(n.getDate()-i.getDate()+1).map(function(e,t){return{text:i.getDate()+t,type:"current"}}),s=r.length%7,a=wr(s=0===s?0:7-s).map(function(e,t){return{text:t+1,type:"next"}});e=r.concat(a)}else{var o=this.date,l=mr(o),u=function(e,t){if(t<=0)return[];var i=new Date(e.getTime());i.setDate(0);var n=i.getDate();return wr(t).map(function(e,i){return n-(t-i-1)})}(o,(l=0===l?7:l)-("number"==typeof this.firstDayOfWeek?this.firstDayOfWeek:1)).map(function(e){return{text:e,type:"prev"}}),c=function(e){var t=new Date(e.getFullYear(),e.getMonth()+1,0).getDate();return wr(t).map(function(e,t){return t+1})}(o).map(function(e){return{text:e,type:"current"}});e=[].concat(u,c);var h=wr(42-e.length).map(function(e,t){return{text:t+1,type:"next"}});e=e.concat(h)}return this.toNestedArr(e)},weekDays:function(){var e=this.firstDayOfWeek,t=this.WEEK_DAYS;return"number"!=typeof e||0===e?t.slice():t.slice(e).concat(t.slice(0,e))}},render:function(){var e=this,t=arguments[0],i=this.hideHeader?null:t("thead",[this.weekDays.map(function(e){return t("th",{key:e},[e])})]);return t("table",{class:{"el-calendar-table":!0,"is-range":this.isInRange},attrs:{cellspacing:"0",cellpadding:"0"}},[i,t("tbody",[this.rows.map(function(i,n){return t("tr",{class:{"el-calendar-table__row":!0,"el-calendar-table__row--hide-border":0===n&&e.hideHeader},key:n},[i.map(function(i,n){return t("td",{key:n,class:e.getCellClass(i),on:{click:e.pickDay.bind(e,i)}},[t("div",{class:"el-calendar-day"},[e.cellRenderProxy(i)])])})])})])])}},void 0,void 0,!1,null,null,null);td.options.__file="packages/calendar/src/date-table.vue";var id=td.exports,nd=["prev-month","today","next-month"],rd=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],sd=r({name:"ElCalendar",mixins:[Y],components:{DateTable:id,ElButton:Tt,ElButtonGroup:Ot},props:{value:[Date,String,Number],range:{type:Array,validator:function(e){return!Array.isArray(e)||2===e.length&&e.every(function(e){return"string"==typeof e||"number"==typeof e||e instanceof Date})}},firstDayOfWeek:{type:Number,default:1}},provide:function(){return{elCalendar:this}},methods:{pickDay:function(e){this.realSelectedDay=e},selectDate:function(e){if(-1===nd.indexOf(e))throw new Error("invalid type "+e);var t="";(t="prev-month"===e?this.prevMonthDatePrefix+"-01":"next-month"===e?this.nextMonthDatePrefix+"-01":this.formatedToday)!==this.formatedDate&&this.pickDay(t)},toDate:function(e){if(!e)throw new Error("invalid val");return e instanceof Date?e:new Date(e)},rangeValidator:function(e,t){var i=this.realFirstDayOfWeek,n=t?i:0===i?6:i-1,r=(t?"start":"end")+" of range should be "+rd[n]+".";return e.getDay()===n||(console.warn("[ElementCalendar]",r,"Invalid range will be ignored."),!1)}},computed:{prevMonthDatePrefix:function(){var e=new Date(this.date.getTime());return e.setDate(0),ar.a.format(e,"yyyy-MM")},curMonthDatePrefix:function(){return ar.a.format(this.date,"yyyy-MM")},nextMonthDatePrefix:function(){var e=new Date(this.date.getFullYear(),this.date.getMonth()+1,1);return ar.a.format(e,"yyyy-MM")},formatedDate:function(){return ar.a.format(this.date,"yyyy-MM-dd")},i18nDate:function(){var e=this.date.getFullYear(),t=this.date.getMonth()+1;return e+" "+this.t("el.datepicker.year")+" "+this.t("el.datepicker.month"+t)},formatedToday:function(){return ar.a.format(this.now,"yyyy-MM-dd")},realSelectedDay:{get:function(){return this.value?this.formatedDate:this.selectedDay},set:function(e){this.selectedDay=e;var t=new Date(e);this.$emit("input",t)}},date:function(){if(this.value)return this.toDate(this.value);if(this.realSelectedDay){var e=this.selectedDay.split("-");return new Date(e[0],e[1]-1,e[2])}return this.validatedRange.length?this.validatedRange[0][0]:this.now},validatedRange:function(){var e=this,t=this.range;if(!t)return[];if(2===(t=t.reduce(function(t,i,n){var r=e.toDate(i);return e.rangeValidator(r,0===n)&&(t=t.concat(r)),t},[])).length){var i=t,n=i[0],r=i[1];if(n>r)return console.warn("[ElementCalendar]end time should be greater than start time"),[];if(Ar(n,r))return[[n,r]];var s=[],a=new Date(n.getFullYear(),n.getMonth()+1,1),o=this.toDate(a.getTime()-864e5);if(!Ar(a,r))return console.warn("[ElementCalendar]start time and end time interval must not exceed two months"),[];s.push([n,o]);var l=this.realFirstDayOfWeek,u=a.getDay(),c=0;return u!==l&&(c=0===l?7-u:(c=l-u)>0?c:7+c),(a=this.toDate(a.getTime()+864e5*c)).getDate()<r.getDate()&&s.push([a,r]),s}return[]},realFirstDayOfWeek:function(){return this.firstDayOfWeek<1||this.firstDayOfWeek>6?0:Math.floor(this.firstDayOfWeek)}},data:function(){return{selectedDay:"",now:new Date}}},ed,[],!1,null,null,null);sd.options.__file="packages/calendar/src/main.vue";var ad=sd.exports;ad.install=function(e){e.component(ad.name,ad)};var od=ad,ld=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-fade-in"}},[e.visible?i("div",{staticClass:"el-backtop",style:{right:e.styleRight,bottom:e.styleBottom},on:{click:function(t){return t.stopPropagation(),e.handleClick(t)}}},[e._t("default",[i("el-icon",{attrs:{name:"caret-top"}})])],2):e._e()])};ld._withStripped=!0;var ud=function(e){return Math.pow(e,3)},cd=r({name:"ElBacktop",props:{visibilityHeight:{type:Number,default:200},target:[String],right:{type:Number,default:40},bottom:{type:Number,default:40}},data:function(){return{el:null,container:null,visible:!1}},computed:{styleBottom:function(){return this.bottom+"px"},styleRight:function(){return this.right+"px"}},mounted:function(){this.init(),this.throttledScrollHandler=Nu()(300,this.onScroll),this.container.addEventListener("scroll",this.throttledScrollHandler)},methods:{init:function(){if(this.container=document,this.el=document.documentElement,this.target){if(this.el=document.querySelector(this.target),!this.el)throw new Error("target is not existed: "+this.target);this.container=this.el}},onScroll:function(){var e=this.el.scrollTop;this.visible=e>=this.visibilityHeight},handleClick:function(e){this.scrollToTop(),this.$emit("click",e)},scrollToTop:function(){var e=this.el,t=Date.now(),i=e.scrollTop,n=window.requestAnimationFrame||function(e){return setTimeout(e,16)};n(function r(){var s,a=(Date.now()-t)/500;a<1?(e.scrollTop=i*(1-((s=a)<.5?ud(2*s)/2:1-ud(2*(1-s))/2)),n(r)):e.scrollTop=0})}},beforeDestroy:function(){this.container.removeEventListener("scroll",this.throttledScrollHandler)}},ld,[],!1,null,null,null);cd.options.__file="packages/backtop/src/main.vue";var hd=cd.exports;hd.install=function(e){e.component(hd.name,hd)};var dd=hd,pd=function(e,t){return e===window||e===document?document.documentElement[t]:e[t]},fd=function(e){return pd(e,"offsetHeight")},md="ElInfiniteScroll",vd={delay:{type:Number,default:200},distance:{type:Number,default:0},disabled:{type:Boolean,default:!1},immediate:{type:Boolean,default:!0}},gd=function(e,t){return g(e)?(i=vd,Object.keys(i||{}).map(function(e){return[e,i[e]]})).reduce(function(i,n){var r=n[0],s=n[1],a=s.type,o=s.default,l=e.getAttribute("infinite-scroll-"+r);switch(l=y(t[l])?l:t[l],a){case Number:l=Number(l),l=Number.isNaN(l)?o:l;break;case Boolean:l=null!=l?"false"!==l&&Boolean(l):o;break;default:l=a(l)}return i[r]=l,i},{}):{};var i},bd=function(e){return e.getBoundingClientRect().top},yd=function(e){var t=this[md],i=t.el,n=t.vm,r=t.container,s=t.observer,a=gd(i,n),o=a.distance;if(!a.disabled){var l=r.getBoundingClientRect();if(l.width||l.height){var u=!1;if(r===i){var c=r.scrollTop+function(e){return pd(e,"clientHeight")}(r);u=r.scrollHeight-c<=o}else{u=fd(i)+bd(i)-bd(r)-fd(r)+Number.parseFloat(function(e,t){if(e===window&&(e=document.documentElement),1!==e.nodeType)return[];var i=window.getComputedStyle(e,null);return t?i[t]:i}(r,"borderBottomWidth"))<=o}u&&b(e)?e.call(n):s&&(s.disconnect(),this[md].observer=null)}}},wd={name:"InfiniteScroll",inserted:function(e,t,i){var n=t.value,r=i.context,s=ye(e,!0),a=gd(e,r),o=a.delay,l=a.immediate,u=tt()(o,yd.bind(e,n));(e[md]={el:e,vm:r,container:s,onScroll:u},s)&&(s.addEventListener("scroll",u),l&&((e[md].observer=new MutationObserver(u)).observe(s,{childList:!0,subtree:!0}),u()))},unbind:function(e){var t=e[md],i=t.container,n=t.onScroll;i&&i.removeEventListener("scroll",n)},install:function(e){e.directive(wd.name,wd)}},_d=wd,xd=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-page-header"},[i("div",{staticClass:"el-page-header__left",on:{click:function(t){e.$emit("back")}}},[i("i",{staticClass:"el-icon-back"}),i("div",{staticClass:"el-page-header__title"},[e._t("title",[e._v(e._s(e.title))])],2)]),i("div",{staticClass:"el-page-header__content"},[e._t("content",[e._v(e._s(e.content))])],2)])};xd._withStripped=!0;var Cd=r({name:"ElPageHeader",props:{title:{type:String,default:function(){return j("el.pageHeader.title")}},content:String}},xd,[],!1,null,null,null);Cd.options.__file="packages/page-header/src/main.vue";var kd=Cd.exports;kd.install=function(e){e.component(kd.name,kd)};var Sd=kd,Dd=r({name:"ElAvatar",props:{size:{type:[Number,String],validator:function(e){return"string"==typeof e?["large","medium","small"].includes(e):"number"==typeof e}},shape:{type:String,default:"circle",validator:function(e){return["circle","square"].includes(e)}},icon:String,src:String,alt:String,srcSet:String,error:Function,fit:{type:String,default:"cover"}},data:function(){return{isImageExist:!0}},computed:{avatarClass:function(){var e=this.size,t=this.icon,i=this.shape,n=["el-avatar"];return e&&"string"==typeof e&&n.push("el-avatar--"+e),t&&n.push("el-avatar--icon"),i&&n.push("el-avatar--"+i),n.join(" ")}},methods:{handleError:function(){var e=this.error;!1!==(e?e():void 0)&&(this.isImageExist=!1)},renderAvatar:function(){var e=this.$createElement,t=this.icon,i=this.src,n=this.alt,r=this.isImageExist,s=this.srcSet,a=this.fit;return r&&i?e("img",{attrs:{src:i,alt:n,srcSet:s},on:{error:this.handleError},style:{"object-fit":a}}):t?e("i",{class:t}):this.$slots.default}},render:function(){var e=arguments[0],t=this.avatarClass,i=this.size;return e("span",{class:t,style:"number"==typeof i?{height:i+"px",width:i+"px",lineHeight:i+"px"}:{}},[this.renderAvatar()])}},void 0,void 0,!1,null,null,null);Dd.options.__file="packages/avatar/src/main.vue";var $d=Dd.exports;$d.install=function(e){e.component($d.name,$d)};var Ed=$d,Td=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-drawer-fade"},on:{"after-enter":e.afterEnter,"after-leave":e.afterLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-drawer__wrapper",attrs:{tabindex:"-1"}},[i("div",{staticClass:"el-drawer__container",class:e.visible&&"el-drawer__open",attrs:{role:"document",tabindex:"-1"},on:{click:function(t){return t.target!==t.currentTarget?null:e.handleWrapperClick(t)}}},[i("div",{ref:"drawer",staticClass:"el-drawer",class:[e.direction,e.customClass],style:e.isHorizontal?"width: "+e.drawerSize:"height: "+e.drawerSize,attrs:{"aria-modal":"true","aria-labelledby":"el-drawer__title","aria-label":e.title,role:"dialog",tabindex:"-1"}},[e.withHeader?i("header",{staticClass:"el-drawer__header",attrs:{id:"el-drawer__title"}},[e._t("title",[i("span",{attrs:{role:"heading",title:e.title}},[e._v(e._s(e.title))])]),e.showClose?i("button",{staticClass:"el-drawer__close-btn",attrs:{"aria-label":"close "+(e.title||"drawer"),type:"button"},on:{click:e.closeDrawer}},[i("i",{staticClass:"el-dialog__close el-icon el-icon-close"})]):e._e()],2):e._e(),e.rendered?i("section",{staticClass:"el-drawer__body"},[e._t("default")],2):e._e()])])])])};Td._withStripped=!0;var Md=r({name:"ElDrawer",mixins:[Ne,l],props:{appendToBody:{type:Boolean,default:!1},beforeClose:{type:Function},customClass:{type:String,default:""},closeOnPressEscape:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!1},modal:{type:Boolean,default:!0},direction:{type:String,default:"rtl",validator:function(e){return-1!==["ltr","rtl","ttb","btt"].indexOf(e)}},modalAppendToBody:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},size:{type:[Number,String],default:"30%"},title:{type:String,default:""},visible:{type:Boolean},wrapperClosable:{type:Boolean,default:!0},withHeader:{type:Boolean,default:!0}},computed:{isHorizontal:function(){return"rtl"===this.direction||"ltr"===this.direction},drawerSize:function(){return"number"==typeof this.size?this.size+"px":this.size}},data:function(){return{closed:!1,prevActiveElement:null}},watch:{visible:function(e){var t=this;e?(this.closed=!1,this.$emit("open"),this.appendToBody&&document.body.appendChild(this.$el),this.prevActiveElement=document.activeElement):(this.closed||this.$emit("close"),this.$nextTick(function(){t.prevActiveElement&&t.prevActiveElement.focus()}))}},methods:{afterEnter:function(){this.$emit("opened")},afterLeave:function(){this.$emit("closed")},hide:function(e){!1!==e&&(this.$emit("update:visible",!1),this.$emit("close"),!0===this.destroyOnClose&&(this.rendered=!1),this.closed=!0)},handleWrapperClick:function(){this.wrapperClosable&&this.closeDrawer()},closeDrawer:function(){"function"==typeof this.beforeClose?this.beforeClose(this.hide):this.hide()},handleClose:function(){this.closeDrawer()}},mounted:function(){this.visible&&(this.rendered=!0,this.open())},destroyed:function(){this.appendToBody&&this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)}},Td,[],!1,null,null,null);Md.options.__file="packages/drawer/src/main.vue";var Nd=Md.exports;Nd.install=function(e){e.component(Nd.name,Nd)};var Pd=Nd,Od=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-popover",e._b({attrs:{trigger:"click"},model:{value:e.visible,callback:function(t){e.visible=t},expression:"visible"}},"el-popover",e.$attrs,!1),[i("div",{staticClass:"el-popconfirm"},[i("p",{staticClass:"el-popconfirm__main"},[e.hideIcon?e._e():i("i",{staticClass:"el-popconfirm__icon",class:e.icon,style:{color:e.iconColor}}),e._v("\n "+e._s(e.title)+"\n ")]),i("div",{staticClass:"el-popconfirm__action"},[i("el-button",{attrs:{size:"mini",type:e.cancelButtonType},on:{click:e.cancel}},[e._v("\n "+e._s(e.displayCancelButtonText)+"\n ")]),i("el-button",{attrs:{size:"mini",type:e.confirmButtonType},on:{click:e.confirm}},[e._v("\n "+e._s(e.displayConfirmButtonText)+"\n ")])],1)]),e._t("reference",null,{slot:"reference"})],2)};Od._withStripped=!0;var Id=r({name:"ElPopconfirm",props:{title:{type:String},confirmButtonText:{type:String},cancelButtonText:{type:String},confirmButtonType:{type:String,default:"primary"},cancelButtonType:{type:String,default:"text"},icon:{type:String,default:"el-icon-question"},iconColor:{type:String,default:"#f90"},hideIcon:{type:Boolean,default:!1}},components:{ElPopover:Qs,ElButton:Tt},data:function(){return{visible:!1}},computed:{displayConfirmButtonText:function(){return this.confirmButtonText||j("el.popconfirm.confirmButtonText")},displayCancelButtonText:function(){return this.cancelButtonText||j("el.popconfirm.cancelButtonText")}},methods:{confirm:function(){this.visible=!1,this.$emit("confirm")},cancel:function(){this.visible=!1,this.$emit("cancel")}}},Od,[],!1,null,null,null);Id.options.__file="packages/popconfirm/src/main.vue";var Ad=Id.exports;Ad.install=function(e){e.component(Ad.name,Ad)};var Fd=Ad,Ld=[ft,bt,St,Ft,zt,jt,ti,oi,pi,gi,re,xi,Di,Ni,Ai,Bi,Wi,Ki,Zi,ht,dt,tn,Tt,Ot,Xn,nr,Ms,Vs,Ks,Qs,ci,ka,Ea,Pa,co,wo,ko,We,Ho,Yo,cl,Dl,El,Nl,Gl,Fl,Jl,du,vu,wu,ku,Eu,Iu,Qe,Vu,Ru,Yu,yc,Uc,th,sh,uh,ph,gh,_h,kh,Eh,Ph,Fh,Qh,od,dd,Sd,dc,Ed,Pd,Fd,ni],Vd=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};q.use(t.locale),q.i18n(t.i18n),Ld.forEach(function(t){e.component(t.name,t)}),e.use(_d),e.use(xl.directive),e.prototype.$ELEMENT={size:t.size||"",zIndex:t.zIndex||2e3},e.prototype.$loading=xl.service,e.prototype.$msgbox=wa,e.prototype.$alert=wa.alert,e.prototype.$confirm=wa.confirm,e.prototype.$prompt=wa.prompt,e.prototype.$notify=il,e.prototype.$message=lu};"undefined"!=typeof window&&window.Vue&&Vd(window.Vue);t.default={version:"2.15.2",locale:q.use,i18n:q.i18n,install:Vd,CollapseTransition:ni,Loading:xl,Pagination:ft,Dialog:bt,Autocomplete:St,Dropdown:Ft,DropdownMenu:zt,DropdownItem:jt,Menu:ti,Submenu:oi,MenuItem:pi,MenuItemGroup:gi,Input:re,InputNumber:xi,Radio:Di,RadioGroup:Ni,RadioButton:Ai,Checkbox:Bi,CheckboxButton:Wi,CheckboxGroup:Ki,Switch:Zi,Select:ht,Option:dt,OptionGroup:tn,Button:Tt,ButtonGroup:Ot,Table:Xn,TableColumn:nr,DatePicker:Ms,TimeSelect:Vs,TimePicker:Ks,Popover:Qs,Tooltip:ci,MessageBox:wa,Breadcrumb:ka,BreadcrumbItem:Ea,Form:Pa,FormItem:co,Tabs:wo,TabPane:ko,Tag:We,Tree:Ho,Alert:Yo,Notification:il,Slider:cl,Icon:Dl,Row:El,Col:Nl,Upload:Gl,Progress:Fl,Spinner:Jl,Message:lu,Badge:du,Card:vu,Rate:wu,Steps:ku,Step:Eu,Carousel:Iu,Scrollbar:Qe,CarouselItem:Vu,Collapse:Ru,CollapseItem:Yu,Cascader:yc,ColorPicker:Uc,Transfer:th,Container:sh,Header:uh,Aside:ph,Main:gh,Footer:_h,Timeline:kh,TimelineItem:Eh,Link:Ph,Divider:Fh,Image:Qh,Calendar:od,Backtop:dd,InfiniteScroll:_d,PageHeader:Sd,CascaderPanel:dc,Avatar:Ed,Drawer:Pd,Popconfirm:Fd}}]).default}); | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/main/resources/static/pages/video/static/vue-router.min.js
0 → 100644
| 1 | +/*! | ||
| 2 | + * vue-router v3.5.1 | ||
| 3 | + * (c) 2021 Evan You | ||
| 4 | + * @license MIT | ||
| 5 | + */ | ||
| 6 | +var t,e;t=this,e=function(){"use strict";function t(t,e){for(var r in e)t[r]=e[r];return t}var e=/[!'()*]/g,r=function(t){return"%"+t.charCodeAt(0).toString(16)},n=/%2C/g,o=function(t){return encodeURIComponent(t).replace(e,r).replace(n,",")};function i(t){try{return decodeURIComponent(t)}catch(t){}return t}var a=function(t){return null==t||"object"==typeof t?t:String(t)};function s(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach(function(t){var r=t.replace(/\+/g," ").split("="),n=i(r.shift()),o=r.length>0?i(r.join("=")):null;void 0===e[n]?e[n]=o:Array.isArray(e[n])?e[n].push(o):e[n]=[e[n],o]}),e):e}function u(t){var e=t?Object.keys(t).map(function(e){var r=t[e];if(void 0===r)return"";if(null===r)return o(e);if(Array.isArray(r)){var n=[];return r.forEach(function(t){void 0!==t&&(null===t?n.push(o(e)):n.push(o(e)+"="+o(t)))}),n.join("&")}return o(e)+"="+o(r)}).filter(function(t){return t.length>0}).join("&"):null;return e?"?"+e:""}var c=/\/?$/;function p(t,e,r,n){var o=n&&n.options.stringifyQuery,i=e.query||{};try{i=f(i)}catch(t){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:i,params:e.params||{},fullPath:d(e,o),matched:t?l(t):[]};return r&&(a.redirectedFrom=d(r,o)),Object.freeze(a)}function f(t){if(Array.isArray(t))return t.map(f);if(t&&"object"==typeof t){var e={};for(var r in t)e[r]=f(t[r]);return e}return t}var h=p(null,{path:"/"});function l(t){for(var e=[];t;)e.unshift(t),t=t.parent;return e}function d(t,e){var r=t.path,n=t.query;void 0===n&&(n={});var o=t.hash;return void 0===o&&(o=""),(r||"/")+(e||u)(n)+o}function v(t,e,r){return e===h?t===e:!!e&&(t.path&&e.path?t.path.replace(c,"")===e.path.replace(c,"")&&(r||t.hash===e.hash&&y(t.query,e.query)):!(!t.name||!e.name)&&t.name===e.name&&(r||t.hash===e.hash&&y(t.query,e.query)&&y(t.params,e.params)))}function y(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var r=Object.keys(t).sort(),n=Object.keys(e).sort();return r.length===n.length&&r.every(function(r,o){var i=t[r];if(n[o]!==r)return!1;var a=e[r];return null==i||null==a?i===a:"object"==typeof i&&"object"==typeof a?y(i,a):String(i)===String(a)})}function m(t){for(var e=0;e<t.matched.length;e++){var r=t.matched[e];for(var n in r.instances){var o=r.instances[n],i=r.enteredCbs[n];if(o&&i){delete r.enteredCbs[n];for(var a=0;a<i.length;a++)o._isBeingDestroyed||i[a](o)}}}}var g={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(e,r){var n=r.props,o=r.children,i=r.parent,a=r.data;a.routerView=!0;for(var s=i.$createElement,u=n.name,c=i.$route,p=i._routerViewCache||(i._routerViewCache={}),f=0,h=!1;i&&i._routerRoot!==i;){var l=i.$vnode?i.$vnode.data:{};l.routerView&&f++,l.keepAlive&&i._directInactive&&i._inactive&&(h=!0),i=i.$parent}if(a.routerViewDepth=f,h){var d=p[u],v=d&&d.component;return v?(d.configProps&&w(v,a,d.route,d.configProps),s(v,a,o)):s()}var y=c.matched[f],g=y&&y.components[u];if(!y||!g)return p[u]=null,s();p[u]={component:g},a.registerRouteInstance=function(t,e){var r=y.instances[u];(e&&r!==t||!e&&r===t)&&(y.instances[u]=e)},(a.hook||(a.hook={})).prepatch=function(t,e){y.instances[u]=e.componentInstance},a.hook.init=function(t){t.data.keepAlive&&t.componentInstance&&t.componentInstance!==y.instances[u]&&(y.instances[u]=t.componentInstance),m(c)};var b=y.props&&y.props[u];return b&&(t(p[u],{route:c,configProps:b}),w(g,a,c,b)),s(g,a,o)}};function w(e,r,n,o){var i=r.props=function(t,e){switch(typeof e){case"undefined":return;case"object":return e;case"function":return e(t);case"boolean":return e?t.params:void 0}}(n,o);if(i){i=r.props=t({},i);var a=r.attrs=r.attrs||{};for(var s in i)e.props&&s in e.props||(a[s]=i[s],delete i[s])}}function b(t,e,r){var n=t.charAt(0);if("/"===n)return t;if("?"===n||"#"===n)return e+t;var o=e.split("/");r&&o[o.length-1]||o.pop();for(var i=t.replace(/^\//,"").split("/"),a=0;a<i.length;a++){var s=i[a];".."===s?o.pop():"."!==s&&o.push(s)}return""!==o[0]&&o.unshift(""),o.join("/")}function x(t){return t.replace(/\/\//g,"/")}var R=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},k=B,E=j,C=function(t,e){return S(j(t,e),e)},A=S,O=U,_=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function j(t,e){for(var r,n=[],o=0,i=0,a="",s=e&&e.delimiter||"/";null!=(r=_.exec(t));){var u=r[0],c=r[1],p=r.index;if(a+=t.slice(i,p),i=p+u.length,c)a+=c[1];else{var f=t[i],h=r[2],l=r[3],d=r[4],v=r[5],y=r[6],m=r[7];a&&(n.push(a),a="");var g=null!=h&&null!=f&&f!==h,w="+"===y||"*"===y,b="?"===y||"*"===y,x=r[2]||s,R=d||v;n.push({name:l||o++,prefix:h||"",delimiter:x,optional:b,repeat:w,partial:g,asterisk:!!m,pattern:R?L(R):m?".*":"[^"+P(x)+"]+?"})}}return i<t.length&&(a+=t.substr(i)),a&&n.push(a),n}function T(t){return encodeURI(t).replace(/[\/?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function S(t,e){for(var r=new Array(t.length),n=0;n<t.length;n++)"object"==typeof t[n]&&(r[n]=new RegExp("^(?:"+t[n].pattern+")$",q(e)));return function(e,n){for(var o="",i=e||{},a=(n||{}).pretty?T:encodeURIComponent,s=0;s<t.length;s++){var u=t[s];if("string"!=typeof u){var c,p=i[u.name];if(null==p){if(u.optional){u.partial&&(o+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(R(p)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(c=a(p[f]),!r[s].test(c))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(c)+"`");o+=(0===f?u.prefix:u.delimiter)+c}}else{if(c=u.asterisk?encodeURI(p).replace(/[?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()}):a(p),!r[s].test(c))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+c+'"');o+=u.prefix+c}}else o+=u}return o}}function P(t){return t.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function L(t){return t.replace(/([=!:$\/()])/g,"\\$1")}function $(t,e){return t.keys=e,t}function q(t){return t&&t.sensitive?"":"i"}function U(t,e,r){R(e)||(r=e||r,e=[]);for(var n=(r=r||{}).strict,o=!1!==r.end,i="",a=0;a<t.length;a++){var s=t[a];if("string"==typeof s)i+=P(s);else{var u=P(s.prefix),c="(?:"+s.pattern+")";e.push(s),s.repeat&&(c+="(?:"+u+c+")*"),i+=c=s.optional?s.partial?u+"("+c+")?":"(?:"+u+"("+c+"))?":u+"("+c+")"}}var p=P(r.delimiter||"/"),f=i.slice(-p.length)===p;return n||(i=(f?i.slice(0,-p.length):i)+"(?:"+p+"(?=$))?"),i+=o?"$":n&&f?"":"(?="+p+"|$)",$(new RegExp("^"+i,q(r)),e)}function B(t,e,r){return R(e)||(r=e||r,e=[]),r=r||{},t instanceof RegExp?function(t,e){var r=t.source.match(/\((?!\?)/g);if(r)for(var n=0;n<r.length;n++)e.push({name:n,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return $(t,e)}(t,e):R(t)?function(t,e,r){for(var n=[],o=0;o<t.length;o++)n.push(B(t[o],e,r).source);return $(new RegExp("(?:"+n.join("|")+")",q(r)),e)}(t,e,r):function(t,e,r){return U(j(t,r),e,r)}(t,e,r)}k.parse=E,k.compile=C,k.tokensToFunction=A,k.tokensToRegExp=O;var I=Object.create(null);function M(t,e,r){e=e||{};try{var n=I[t]||(I[t]=k.compile(t));return"string"==typeof e.pathMatch&&(e[0]=e.pathMatch),n(e,{pretty:!0})}catch(t){return""}finally{delete e[0]}}function V(e,r,n,o){var i="string"==typeof e?{path:e}:e;if(i._normalized)return i;if(i.name){var u=(i=t({},e)).params;return u&&"object"==typeof u&&(i.params=t({},u)),i}if(!i.path&&i.params&&r){(i=t({},i))._normalized=!0;var c=t(t({},r.params),i.params);if(r.name)i.name=r.name,i.params=c;else if(r.matched.length){var p=r.matched[r.matched.length-1].path;i.path=M(p,c,r.path)}return i}var f=function(t){var e="",r="",n=t.indexOf("#");n>=0&&(e=t.slice(n),t=t.slice(0,n));var o=t.indexOf("?");return o>=0&&(r=t.slice(o+1),t=t.slice(0,o)),{path:t,query:r,hash:e}}(i.path||""),h=r&&r.path||"/",l=f.path?b(f.path,h,n||i.append):h,d=function(t,e,r){void 0===e&&(e={});var n,o=r||s;try{n=o(t||"")}catch(t){n={}}for(var i in e){var u=e[i];n[i]=Array.isArray(u)?u.map(a):a(u)}return n}(f.query,i.query,o&&o.options.parseQuery),v=i.hash||f.hash;return v&&"#"!==v.charAt(0)&&(v="#"+v),{_normalized:!0,path:l,query:d,hash:v}}var H,N=[String,Object],F=[String,Array],z=function(){},D={name:"RouterLink",props:{to:{type:N,required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:F,default:"click"}},render:function(e){var r=this,n=this.$router,o=this.$route,i=n.resolve(this.to,o,this.append),a=i.location,s=i.route,u=i.href,f={},h=n.options.linkActiveClass,l=n.options.linkExactActiveClass,d=null==h?"router-link-active":h,y=null==l?"router-link-exact-active":l,m=null==this.activeClass?d:this.activeClass,g=null==this.exactActiveClass?y:this.exactActiveClass,w=s.redirectedFrom?p(null,V(s.redirectedFrom),null,n):s;f[g]=v(o,w,this.exactPath),f[m]=this.exact||this.exactPath?f[g]:function(t,e){return 0===t.path.replace(c,"/").indexOf(e.path.replace(c,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var r in e)if(!(r in t))return!1;return!0}(t.query,e.query)}(o,w);var b=f[g]?this.ariaCurrentValue:null,x=function(t){K(t)&&(r.replace?n.replace(a,z):n.push(a,z))},R={click:K};Array.isArray(this.event)?this.event.forEach(function(t){R[t]=x}):R[this.event]=x;var k={class:f},E=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:u,route:s,navigate:x,isActive:f[m],isExactActive:f[g]});if(E){if(1===E.length)return E[0];if(E.length>1||!E.length)return 0===E.length?e():e("span",{},E)}if("a"===this.tag)k.on=R,k.attrs={href:u,"aria-current":b};else{var C=function t(e){if(e)for(var r,n=0;n<e.length;n++){if("a"===(r=e[n]).tag)return r;if(r.children&&(r=t(r.children)))return r}}(this.$slots.default);if(C){C.isStatic=!1;var A=C.data=t({},C.data);for(var O in A.on=A.on||{},A.on){var _=A.on[O];O in R&&(A.on[O]=Array.isArray(_)?_:[_])}for(var j in R)j in A.on?A.on[j].push(R[j]):A.on[j]=x;var T=C.data.attrs=t({},C.data.attrs);T.href=u,T["aria-current"]=b}else k.on=R}return e(this.tag,k,this.$slots.default)}};function K(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||t.defaultPrevented||void 0!==t.button&&0!==t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}var J="undefined"!=typeof window;function Q(t,e,r,n,o){var i=e||[],a=r||Object.create(null),s=n||Object.create(null);t.forEach(function(t){!function t(e,r,n,o,i,a){var s=o.path,u=o.name,c=o.pathToRegexpOptions||{},p=function(t,e,r){return r||(t=t.replace(/\/$/,"")),"/"===t[0]?t:null==e?t:x(e.path+"/"+t)}(s,i,c.strict);"boolean"==typeof o.caseSensitive&&(c.sensitive=o.caseSensitive);var f={path:p,regex:X(p,c),components:o.components||{default:o.component},alias:o.alias?"string"==typeof o.alias?[o.alias]:o.alias:[],instances:{},enteredCbs:{},name:u,parent:i,matchAs:a,redirect:o.redirect,beforeEnter:o.beforeEnter,meta:o.meta||{},props:null==o.props?{}:o.components?o.props:{default:o.props}};if(o.children&&o.children.forEach(function(o){var i=a?x(a+"/"+o.path):void 0;t(e,r,n,o,f,i)}),r[f.path]||(e.push(f.path),r[f.path]=f),void 0!==o.alias)for(var h=Array.isArray(o.alias)?o.alias:[o.alias],l=0;l<h.length;++l){var d=h[l],v={path:d,children:o.children};t(e,r,n,v,i,f.path||"/")}u&&(n[u]||(n[u]=f))}(i,a,s,t,o)});for(var u=0,c=i.length;u<c;u++)"*"===i[u]&&(i.push(i.splice(u,1)[0]),c--,u--);return{pathList:i,pathMap:a,nameMap:s}}function X(t,e){return k(t,[],e)}function Y(t,e){var r=Q(t),n=r.pathList,o=r.pathMap,i=r.nameMap;function a(t,r,a){var s=V(t,r,!1,e),c=s.name;if(c){var p=i[c];if(!p)return u(null,s);var f=p.regex.keys.filter(function(t){return!t.optional}).map(function(t){return t.name});if("object"!=typeof s.params&&(s.params={}),r&&"object"==typeof r.params)for(var h in r.params)!(h in s.params)&&f.indexOf(h)>-1&&(s.params[h]=r.params[h]);return s.path=M(p.path,s.params),u(p,s,a)}if(s.path){s.params={};for(var l=0;l<n.length;l++){var d=n[l],v=o[d];if(W(v.regex,s.path,s.params))return u(v,s,a)}}return u(null,s)}function s(t,r){var n=t.redirect,o="function"==typeof n?n(p(t,r,null,e)):n;if("string"==typeof o&&(o={path:o}),!o||"object"!=typeof o)return u(null,r);var s=o,c=s.name,f=s.path,h=r.query,l=r.hash,d=r.params;return h=s.hasOwnProperty("query")?s.query:h,l=s.hasOwnProperty("hash")?s.hash:l,d=s.hasOwnProperty("params")?s.params:d,c?(i[c],a({_normalized:!0,name:c,query:h,hash:l,params:d},void 0,r)):f?a({_normalized:!0,path:M(function(t,e){return b(t,e.parent?e.parent.path:"/",!0)}(f,t),d),query:h,hash:l},void 0,r):u(null,r)}function u(t,r,n){return t&&t.redirect?s(t,n||r):t&&t.matchAs?function(t,e,r){var n=a({_normalized:!0,path:M(r,e.params)});if(n){var o=n.matched,i=o[o.length-1];return e.params=n.params,u(i,e)}return u(null,e)}(0,r,t.matchAs):p(t,r,n,e)}return{match:a,addRoute:function(t,e){var r="object"!=typeof t?i[t]:void 0;Q([e||t],n,o,i,r),r&&Q(r.alias.map(function(t){return{path:t,children:[e]}}),n,o,i,r)},getRoutes:function(){return n.map(function(t){return o[t]})},addRoutes:function(t){Q(t,n,o,i)}}}function W(t,e,r){var n=e.match(t);if(!n)return!1;if(!r)return!0;for(var o=1,a=n.length;o<a;++o){var s=t.keys[o-1];s&&(r[s.name||"pathMatch"]="string"==typeof n[o]?i(n[o]):n[o])}return!0}var G=J&&window.performance&&window.performance.now?window.performance:Date;function Z(){return G.now().toFixed(3)}var tt=Z();function et(){return tt}function rt(t){return tt=t}var nt=Object.create(null);function ot(){"scrollRestoration"in window.history&&(window.history.scrollRestoration="manual");var e=window.location.protocol+"//"+window.location.host,r=window.location.href.replace(e,""),n=t({},window.history.state);return n.key=et(),window.history.replaceState(n,"",r),window.addEventListener("popstate",st),function(){window.removeEventListener("popstate",st)}}function it(t,e,r,n){if(t.app){var o=t.options.scrollBehavior;o&&t.app.$nextTick(function(){var i=function(){var t=et();if(t)return nt[t]}(),a=o.call(t,e,r,n?i:null);a&&("function"==typeof a.then?a.then(function(t){ht(t,i)}).catch(function(t){}):ht(a,i))})}}function at(){var t=et();t&&(nt[t]={x:window.pageXOffset,y:window.pageYOffset})}function st(t){at(),t.state&&t.state.key&&rt(t.state.key)}function ut(t){return pt(t.x)||pt(t.y)}function ct(t){return{x:pt(t.x)?t.x:window.pageXOffset,y:pt(t.y)?t.y:window.pageYOffset}}function pt(t){return"number"==typeof t}var ft=/^#\d/;function ht(t,e){var r,n="object"==typeof t;if(n&&"string"==typeof t.selector){var o=ft.test(t.selector)?document.getElementById(t.selector.slice(1)):document.querySelector(t.selector);if(o){var i=t.offset&&"object"==typeof t.offset?t.offset:{};e=function(t,e){var r=document.documentElement.getBoundingClientRect(),n=t.getBoundingClientRect();return{x:n.left-r.left-e.x,y:n.top-r.top-e.y}}(o,i={x:pt((r=i).x)?r.x:0,y:pt(r.y)?r.y:0})}else ut(t)&&(e=ct(t))}else n&&ut(t)&&(e=ct(t));e&&("scrollBehavior"in document.documentElement.style?window.scrollTo({left:e.x,top:e.y,behavior:t.behavior}):window.scrollTo(e.x,e.y))}var lt,dt=J&&(-1===(lt=window.navigator.userAgent).indexOf("Android 2.")&&-1===lt.indexOf("Android 4.0")||-1===lt.indexOf("Mobile Safari")||-1!==lt.indexOf("Chrome")||-1!==lt.indexOf("Windows Phone"))&&window.history&&"function"==typeof window.history.pushState;function vt(e,r){at();var n=window.history;try{if(r){var o=t({},n.state);o.key=et(),n.replaceState(o,"",e)}else n.pushState({key:rt(Z())},"",e)}catch(t){window.location[r?"replace":"assign"](e)}}function yt(t){vt(t,!0)}function mt(t,e,r){var n=function(o){o>=t.length?r():t[o]?e(t[o],function(){n(o+1)}):n(o+1)};n(0)}var gt={redirected:2,aborted:4,cancelled:8,duplicated:16};function wt(t,e){return xt(t,e,gt.redirected,'Redirected when going from "'+t.fullPath+'" to "'+function(t){if("string"==typeof t)return t;if("path"in t)return t.path;var e={};return Rt.forEach(function(r){r in t&&(e[r]=t[r])}),JSON.stringify(e,null,2)}(e)+'" via a navigation guard.')}function bt(t,e){return xt(t,e,gt.cancelled,'Navigation cancelled from "'+t.fullPath+'" to "'+e.fullPath+'" with a new navigation.')}function xt(t,e,r,n){var o=new Error(n);return o._isRouter=!0,o.from=t,o.to=e,o.type=r,o}var Rt=["params","query","hash"];function kt(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function Et(t,e){return kt(t)&&t._isRouter&&(null==e||t.type===e)}function Ct(t){return function(e,r,n){var o=!1,i=0,a=null;At(t,function(t,e,r,s){if("function"==typeof t&&void 0===t.cid){o=!0,i++;var u,c=jt(function(e){var o;((o=e).__esModule||_t&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:H.extend(e),r.components[s]=e,--i<=0&&n()}),p=jt(function(t){var e="Failed to resolve async component "+s+": "+t;a||(a=kt(t)?t:new Error(e),n(a))});try{u=t(c,p)}catch(t){p(t)}if(u)if("function"==typeof u.then)u.then(c,p);else{var f=u.component;f&&"function"==typeof f.then&&f.then(c,p)}}}),o||n()}}function At(t,e){return Ot(t.map(function(t){return Object.keys(t.components).map(function(r){return e(t.components[r],t.instances[r],t,r)})}))}function Ot(t){return Array.prototype.concat.apply([],t)}var _t="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function jt(t){var e=!1;return function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];if(!e)return e=!0,t.apply(this,r)}}var Tt=function(t,e){this.router=t,this.base=function(t){if(!t)if(J){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";return"/"!==t.charAt(0)&&(t="/"+t),t.replace(/\/$/,"")}(e),this.current=h,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function St(t,e,r,n){var o=At(t,function(t,n,o,i){var a=function(t,e){return"function"!=typeof t&&(t=H.extend(t)),t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map(function(t){return r(t,n,o,i)}):r(a,n,o,i)});return Ot(n?o.reverse():o)}function Pt(t,e){if(e)return function(){return t.apply(e,arguments)}}Tt.prototype.listen=function(t){this.cb=t},Tt.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},Tt.prototype.onError=function(t){this.errorCbs.push(t)},Tt.prototype.transitionTo=function(t,e,r){var n,o=this;try{n=this.router.match(t,this.current)}catch(t){throw this.errorCbs.forEach(function(e){e(t)}),t}var i=this.current;this.confirmTransition(n,function(){o.updateRoute(n),e&&e(n),o.ensureURL(),o.router.afterHooks.forEach(function(t){t&&t(n,i)}),o.ready||(o.ready=!0,o.readyCbs.forEach(function(t){t(n)}))},function(t){r&&r(t),t&&!o.ready&&(Et(t,gt.redirected)&&i===h||(o.ready=!0,o.readyErrorCbs.forEach(function(e){e(t)})))})},Tt.prototype.confirmTransition=function(t,e,r){var n=this,o=this.current;this.pending=t;var i,a,s=function(t){!Et(t)&&kt(t)&&(n.errorCbs.length?n.errorCbs.forEach(function(e){e(t)}):console.error(t)),r&&r(t)},u=t.matched.length-1,c=o.matched.length-1;if(v(t,o)&&u===c&&t.matched[u]===o.matched[c])return this.ensureURL(),s(((a=xt(i=o,t,gt.duplicated,'Avoided redundant navigation to current location: "'+i.fullPath+'".')).name="NavigationDuplicated",a));var p=function(t,e){var r,n=Math.max(t.length,e.length);for(r=0;r<n&&t[r]===e[r];r++);return{updated:e.slice(0,r),activated:e.slice(r),deactivated:t.slice(r)}}(this.current.matched,t.matched),f=p.updated,h=p.deactivated,l=p.activated,d=[].concat(function(t){return St(t,"beforeRouteLeave",Pt,!0)}(h),this.router.beforeHooks,function(t){return St(t,"beforeRouteUpdate",Pt)}(f),l.map(function(t){return t.beforeEnter}),Ct(l)),y=function(e,r){if(n.pending!==t)return s(bt(o,t));try{e(t,o,function(e){!1===e?(n.ensureURL(!0),s(function(t,e){return xt(t,e,gt.aborted,'Navigation aborted from "'+t.fullPath+'" to "'+e.fullPath+'" via a navigation guard.')}(o,t))):kt(e)?(n.ensureURL(!0),s(e)):"string"==typeof e||"object"==typeof e&&("string"==typeof e.path||"string"==typeof e.name)?(s(wt(o,t)),"object"==typeof e&&e.replace?n.replace(e):n.push(e)):r(e)})}catch(t){s(t)}};mt(d,y,function(){mt(function(t){return St(t,"beforeRouteEnter",function(t,e,r,n){return function(t,e,r){return function(n,o,i){return t(n,o,function(t){"function"==typeof t&&(e.enteredCbs[r]||(e.enteredCbs[r]=[]),e.enteredCbs[r].push(t)),i(t)})}}(t,r,n)})}(l).concat(n.router.resolveHooks),y,function(){if(n.pending!==t)return s(bt(o,t));n.pending=null,e(t),n.router.app&&n.router.app.$nextTick(function(){m(t)})})})},Tt.prototype.updateRoute=function(t){this.current=t,this.cb&&this.cb(t)},Tt.prototype.setupListeners=function(){},Tt.prototype.teardown=function(){this.listeners.forEach(function(t){t()}),this.listeners=[],this.current=h,this.pending=null};var Lt=function(t){function e(e,r){t.call(this,e,r),this._startLocation=$t(this.base)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router,r=e.options.scrollBehavior,n=dt&&r;n&&this.listeners.push(ot());var o=function(){var r=t.current,o=$t(t.base);t.current===h&&o===t._startLocation||t.transitionTo(o,function(t){n&&it(e,t,r,!0)})};window.addEventListener("popstate",o),this.listeners.push(function(){window.removeEventListener("popstate",o)})}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,function(t){vt(x(n.base+t.fullPath)),it(n.router,t,o,!1),e&&e(t)},r)},e.prototype.replace=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,function(t){yt(x(n.base+t.fullPath)),it(n.router,t,o,!1),e&&e(t)},r)},e.prototype.ensureURL=function(t){if($t(this.base)!==this.current.fullPath){var e=x(this.base+this.current.fullPath);t?vt(e):yt(e)}},e.prototype.getCurrentLocation=function(){return $t(this.base)},e}(Tt);function $t(t){var e=window.location.pathname;return t&&0===e.toLowerCase().indexOf(t.toLowerCase())&&(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var qt=function(t){function e(e,r,n){t.call(this,e,r),n&&function(t){var e=$t(t);if(!/^\/#/.test(e))return window.location.replace(x(t+"/#"+e)),!0}(this.base)||Ut()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router.options.scrollBehavior,r=dt&&e;r&&this.listeners.push(ot());var n=function(){var e=t.current;Ut()&&t.transitionTo(Bt(),function(n){r&&it(t.router,n,e,!0),dt||Vt(n.fullPath)})},o=dt?"popstate":"hashchange";window.addEventListener(o,n),this.listeners.push(function(){window.removeEventListener(o,n)})}},e.prototype.push=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,function(t){Mt(t.fullPath),it(n.router,t,o,!1),e&&e(t)},r)},e.prototype.replace=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,function(t){Vt(t.fullPath),it(n.router,t,o,!1),e&&e(t)},r)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;Bt()!==e&&(t?Mt(e):Vt(e))},e.prototype.getCurrentLocation=function(){return Bt()},e}(Tt);function Ut(){var t=Bt();return"/"===t.charAt(0)||(Vt("/"+t),!1)}function Bt(){var t=window.location.href,e=t.indexOf("#");return e<0?"":t=t.slice(e+1)}function It(t){var e=window.location.href,r=e.indexOf("#");return(r>=0?e.slice(0,r):e)+"#"+t}function Mt(t){dt?vt(It(t)):window.location.hash=t}function Vt(t){dt?yt(It(t)):window.location.replace(It(t))}var Ht=function(t){function e(e,r){t.call(this,e,r),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,r){var n=this;this.transitionTo(t,function(t){n.stack=n.stack.slice(0,n.index+1).concat(t),n.index++,e&&e(t)},r)},e.prototype.replace=function(t,e,r){var n=this;this.transitionTo(t,function(t){n.stack=n.stack.slice(0,n.index).concat(t),e&&e(t)},r)},e.prototype.go=function(t){var e=this,r=this.index+t;if(!(r<0||r>=this.stack.length)){var n=this.stack[r];this.confirmTransition(n,function(){var t=e.current;e.index=r,e.updateRoute(n),e.router.afterHooks.forEach(function(e){e&&e(n,t)})},function(t){Et(t,gt.duplicated)&&(e.index=r)})}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(Tt),Nt=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Y(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!dt&&!1!==t.fallback,this.fallback&&(e="hash"),J||(e="abstract"),this.mode=e,e){case"history":this.history=new Lt(this,t.base);break;case"hash":this.history=new qt(this,t.base,this.fallback);break;case"abstract":this.history=new Ht(this,t.base)}},Ft={currentRoute:{configurable:!0}};function zt(t,e){return t.push(e),function(){var r=t.indexOf(e);r>-1&&t.splice(r,1)}}return Nt.prototype.match=function(t,e,r){return this.matcher.match(t,e,r)},Ft.currentRoute.get=function(){return this.history&&this.history.current},Nt.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",function(){var r=e.apps.indexOf(t);r>-1&&e.apps.splice(r,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()}),!this.app){this.app=t;var r=this.history;if(r instanceof Lt||r instanceof qt){var n=function(t){r.setupListeners(),function(t){var n=r.current,o=e.options.scrollBehavior;dt&&o&&"fullPath"in t&&it(e,t,n,!1)}(t)};r.transitionTo(r.getCurrentLocation(),n,n)}r.listen(function(t){e.apps.forEach(function(e){e._route=t})})}},Nt.prototype.beforeEach=function(t){return zt(this.beforeHooks,t)},Nt.prototype.beforeResolve=function(t){return zt(this.resolveHooks,t)},Nt.prototype.afterEach=function(t){return zt(this.afterHooks,t)},Nt.prototype.onReady=function(t,e){this.history.onReady(t,e)},Nt.prototype.onError=function(t){this.history.onError(t)},Nt.prototype.push=function(t,e,r){var n=this;if(!e&&!r&&"undefined"!=typeof Promise)return new Promise(function(e,r){n.history.push(t,e,r)});this.history.push(t,e,r)},Nt.prototype.replace=function(t,e,r){var n=this;if(!e&&!r&&"undefined"!=typeof Promise)return new Promise(function(e,r){n.history.replace(t,e,r)});this.history.replace(t,e,r)},Nt.prototype.go=function(t){this.history.go(t)},Nt.prototype.back=function(){this.go(-1)},Nt.prototype.forward=function(){this.go(1)},Nt.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map(function(t){return Object.keys(t.components).map(function(e){return t.components[e]})})):[]},Nt.prototype.resolve=function(t,e,r){var n=V(t,e=e||this.history.current,r,this),o=this.match(n,e),i=o.redirectedFrom||o.fullPath;return{location:n,route:o,href:function(t,e,r){var n="hash"===r?"#"+e:e;return t?x(t+"/"+n):n}(this.history.base,i,this.mode),normalizedTo:n,resolved:o}},Nt.prototype.getRoutes=function(){return this.matcher.getRoutes()},Nt.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==h&&this.history.transitionTo(this.history.getCurrentLocation())},Nt.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==h&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Nt.prototype,Ft),Nt.install=function t(e){if(!t.installed||H!==e){t.installed=!0,H=e;var r=function(t){return void 0!==t},n=function(t,e){var n=t.$options._parentVnode;r(n)&&r(n=n.data)&&r(n=n.registerRouteInstance)&&n(t,e)};e.mixin({beforeCreate:function(){r(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,n(this,this)},destroyed:function(){n(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",g),e.component("RouterLink",D);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},Nt.version="3.5.1",Nt.isNavigationFailure=Et,Nt.NavigationFailureType=gt,Nt.START_LOCATION=h,J&&window.Vue&&window.Vue.use(Nt),Nt},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).VueRouter=e(); | ||
| 0 | \ No newline at end of file | 7 | \ No newline at end of file |
src/main/resources/static/pages/video/static/vue.min.js
0 → 100644
| 1 | +/*! | ||
| 2 | + * Vue.js v2.6.14 | ||
| 3 | + * (c) 2014-2021 Evan You | ||
| 4 | + * Released under the MIT License. | ||
| 5 | + */ | ||
| 6 | +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Vue=t()}(this,function(){"use strict";var e=Object.freeze({});function t(e){return null==e}function n(e){return null!=e}function r(e){return!0===e}function i(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e||"boolean"==typeof e}function o(e){return null!==e&&"object"==typeof e}var a=Object.prototype.toString;function s(e){return"[object Object]"===a.call(e)}function c(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function u(e){return n(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function l(e){return null==e?"":Array.isArray(e)||s(e)&&e.toString===a?JSON.stringify(e,null,2):String(e)}function f(e){var t=parseFloat(e);return isNaN(t)?e:t}function p(e,t){for(var n=Object.create(null),r=e.split(","),i=0;i<r.length;i++)n[r[i]]=!0;return t?function(e){return n[e.toLowerCase()]}:function(e){return n[e]}}var d=p("slot,component",!0),v=p("key,ref,slot,slot-scope,is");function h(e,t){if(e.length){var n=e.indexOf(t);if(n>-1)return e.splice(n,1)}}var m=Object.prototype.hasOwnProperty;function y(e,t){return m.call(e,t)}function g(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var _=/-(\w)/g,b=g(function(e){return e.replace(_,function(e,t){return t?t.toUpperCase():""})}),$=g(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),w=/\B([A-Z])/g,C=g(function(e){return e.replace(w,"-$1").toLowerCase()});var x=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function k(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function A(e,t){for(var n in t)e[n]=t[n];return e}function O(e){for(var t={},n=0;n<e.length;n++)e[n]&&A(t,e[n]);return t}function S(e,t,n){}var T=function(e,t,n){return!1},N=function(e){return e};function E(e,t){if(e===t)return!0;var n=o(e),r=o(t);if(!n||!r)return!n&&!r&&String(e)===String(t);try{var i=Array.isArray(e),a=Array.isArray(t);if(i&&a)return e.length===t.length&&e.every(function(e,n){return E(e,t[n])});if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(i||a)return!1;var s=Object.keys(e),c=Object.keys(t);return s.length===c.length&&s.every(function(n){return E(e[n],t[n])})}catch(e){return!1}}function j(e,t){for(var n=0;n<e.length;n++)if(E(e[n],t))return n;return-1}function D(e){var t=!1;return function(){t||(t=!0,e.apply(this,arguments))}}var L="data-server-rendered",I=["component","directive","filter"],M=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch"],F={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:T,isReservedAttr:T,isUnknownElement:T,getTagNamespace:S,parsePlatformTagName:N,mustUseProp:T,async:!0,_lifecycleHooks:M},P=/a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;function R(e,t,n,r){Object.defineProperty(e,t,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var H=new RegExp("[^"+P.source+".$_\\d]");var B,U="__proto__"in{},V="undefined"!=typeof window,z="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,K=z&&WXEnvironment.platform.toLowerCase(),J=V&&window.navigator.userAgent.toLowerCase(),q=J&&/msie|trident/.test(J),W=J&&J.indexOf("msie 9.0")>0,Z=J&&J.indexOf("edge/")>0,G=(J&&J.indexOf("android"),J&&/iphone|ipad|ipod|ios/.test(J)||"ios"===K),X=(J&&/chrome\/\d+/.test(J),J&&/phantomjs/.test(J),J&&J.match(/firefox\/(\d+)/)),Y={}.watch,Q=!1;if(V)try{var ee={};Object.defineProperty(ee,"passive",{get:function(){Q=!0}}),window.addEventListener("test-passive",null,ee)}catch(e){}var te=function(){return void 0===B&&(B=!V&&!z&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),B},ne=V&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function re(e){return"function"==typeof e&&/native code/.test(e.toString())}var ie,oe="undefined"!=typeof Symbol&&re(Symbol)&&"undefined"!=typeof Reflect&&re(Reflect.ownKeys);ie="undefined"!=typeof Set&&re(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var ae=S,se=0,ce=function(){this.id=se++,this.subs=[]};ce.prototype.addSub=function(e){this.subs.push(e)},ce.prototype.removeSub=function(e){h(this.subs,e)},ce.prototype.depend=function(){ce.target&&ce.target.addDep(this)},ce.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;t<n;t++)e[t].update()},ce.target=null;var ue=[];function le(e){ue.push(e),ce.target=e}function fe(){ue.pop(),ce.target=ue[ue.length-1]}var pe=function(e,t,n,r,i,o,a,s){this.tag=e,this.data=t,this.children=n,this.text=r,this.elm=i,this.ns=void 0,this.context=o,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=t&&t.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},de={child:{configurable:!0}};de.child.get=function(){return this.componentInstance},Object.defineProperties(pe.prototype,de);var ve=function(e){void 0===e&&(e="");var t=new pe;return t.text=e,t.isComment=!0,t};function he(e){return new pe(void 0,void 0,void 0,String(e))}function me(e){var t=new pe(e.tag,e.data,e.children&&e.children.slice(),e.text,e.elm,e.context,e.componentOptions,e.asyncFactory);return t.ns=e.ns,t.isStatic=e.isStatic,t.key=e.key,t.isComment=e.isComment,t.fnContext=e.fnContext,t.fnOptions=e.fnOptions,t.fnScopeId=e.fnScopeId,t.asyncMeta=e.asyncMeta,t.isCloned=!0,t}var ye=Array.prototype,ge=Object.create(ye);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(e){var t=ye[e];R(ge,e,function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];var i,o=t.apply(this,n),a=this.__ob__;switch(e){case"push":case"unshift":i=n;break;case"splice":i=n.slice(2)}return i&&a.observeArray(i),a.dep.notify(),o})});var _e=Object.getOwnPropertyNames(ge),be=!0;function $e(e){be=e}var we=function(e){var t;this.value=e,this.dep=new ce,this.vmCount=0,R(e,"__ob__",this),Array.isArray(e)?(U?(t=ge,e.__proto__=t):function(e,t,n){for(var r=0,i=n.length;r<i;r++){var o=n[r];R(e,o,t[o])}}(e,ge,_e),this.observeArray(e)):this.walk(e)};function Ce(e,t){var n;if(o(e)&&!(e instanceof pe))return y(e,"__ob__")&&e.__ob__ instanceof we?n=e.__ob__:be&&!te()&&(Array.isArray(e)||s(e))&&Object.isExtensible(e)&&!e._isVue&&(n=new we(e)),t&&n&&n.vmCount++,n}function xe(e,t,n,r,i){var o=new ce,a=Object.getOwnPropertyDescriptor(e,t);if(!a||!1!==a.configurable){var s=a&&a.get,c=a&&a.set;s&&!c||2!==arguments.length||(n=e[t]);var u=!i&&Ce(n);Object.defineProperty(e,t,{enumerable:!0,configurable:!0,get:function(){var t=s?s.call(e):n;return ce.target&&(o.depend(),u&&(u.dep.depend(),Array.isArray(t)&&function e(t){for(var n=void 0,r=0,i=t.length;r<i;r++)(n=t[r])&&n.__ob__&&n.__ob__.dep.depend(),Array.isArray(n)&&e(n)}(t))),t},set:function(t){var r=s?s.call(e):n;t===r||t!=t&&r!=r||s&&!c||(c?c.call(e,t):n=t,u=!i&&Ce(t),o.notify())}})}}function ke(e,t,n){if(Array.isArray(e)&&c(t))return e.length=Math.max(e.length,t),e.splice(t,1,n),n;if(t in e&&!(t in Object.prototype))return e[t]=n,n;var r=e.__ob__;return e._isVue||r&&r.vmCount?n:r?(xe(r.value,t,n),r.dep.notify(),n):(e[t]=n,n)}function Ae(e,t){if(Array.isArray(e)&&c(t))e.splice(t,1);else{var n=e.__ob__;e._isVue||n&&n.vmCount||y(e,t)&&(delete e[t],n&&n.dep.notify())}}we.prototype.walk=function(e){for(var t=Object.keys(e),n=0;n<t.length;n++)xe(e,t[n])},we.prototype.observeArray=function(e){for(var t=0,n=e.length;t<n;t++)Ce(e[t])};var Oe=F.optionMergeStrategies;function Se(e,t){if(!t)return e;for(var n,r,i,o=oe?Reflect.ownKeys(t):Object.keys(t),a=0;a<o.length;a++)"__ob__"!==(n=o[a])&&(r=e[n],i=t[n],y(e,n)?r!==i&&s(r)&&s(i)&&Se(r,i):ke(e,n,i));return e}function Te(e,t,n){return n?function(){var r="function"==typeof t?t.call(n,n):t,i="function"==typeof e?e.call(n,n):e;return r?Se(r,i):i}:t?e?function(){return Se("function"==typeof t?t.call(this,this):t,"function"==typeof e?e.call(this,this):e)}:t:e}function Ne(e,t){var n=t?e?e.concat(t):Array.isArray(t)?t:[t]:e;return n?function(e){for(var t=[],n=0;n<e.length;n++)-1===t.indexOf(e[n])&&t.push(e[n]);return t}(n):n}function Ee(e,t,n,r){var i=Object.create(e||null);return t?A(i,t):i}Oe.data=function(e,t,n){return n?Te(e,t,n):t&&"function"!=typeof t?e:Te(e,t)},M.forEach(function(e){Oe[e]=Ne}),I.forEach(function(e){Oe[e+"s"]=Ee}),Oe.watch=function(e,t,n,r){if(e===Y&&(e=void 0),t===Y&&(t=void 0),!t)return Object.create(e||null);if(!e)return t;var i={};for(var o in A(i,e),t){var a=i[o],s=t[o];a&&!Array.isArray(a)&&(a=[a]),i[o]=a?a.concat(s):Array.isArray(s)?s:[s]}return i},Oe.props=Oe.methods=Oe.inject=Oe.computed=function(e,t,n,r){if(!e)return t;var i=Object.create(null);return A(i,e),t&&A(i,t),i},Oe.provide=Te;var je=function(e,t){return void 0===t?e:t};function De(e,t,n){if("function"==typeof t&&(t=t.options),function(e,t){var n=e.props;if(n){var r,i,o={};if(Array.isArray(n))for(r=n.length;r--;)"string"==typeof(i=n[r])&&(o[b(i)]={type:null});else if(s(n))for(var a in n)i=n[a],o[b(a)]=s(i)?i:{type:i};e.props=o}}(t),function(e,t){var n=e.inject;if(n){var r=e.inject={};if(Array.isArray(n))for(var i=0;i<n.length;i++)r[n[i]]={from:n[i]};else if(s(n))for(var o in n){var a=n[o];r[o]=s(a)?A({from:o},a):{from:a}}}}(t),function(e){var t=e.directives;if(t)for(var n in t){var r=t[n];"function"==typeof r&&(t[n]={bind:r,update:r})}}(t),!t._base&&(t.extends&&(e=De(e,t.extends,n)),t.mixins))for(var r=0,i=t.mixins.length;r<i;r++)e=De(e,t.mixins[r],n);var o,a={};for(o in e)c(o);for(o in t)y(e,o)||c(o);function c(r){var i=Oe[r]||je;a[r]=i(e[r],t[r],n,r)}return a}function Le(e,t,n,r){if("string"==typeof n){var i=e[t];if(y(i,n))return i[n];var o=b(n);if(y(i,o))return i[o];var a=$(o);return y(i,a)?i[a]:i[n]||i[o]||i[a]}}function Ie(e,t,n,r){var i=t[e],o=!y(n,e),a=n[e],s=Re(Boolean,i.type);if(s>-1)if(o&&!y(i,"default"))a=!1;else if(""===a||a===C(e)){var c=Re(String,i.type);(c<0||s<c)&&(a=!0)}if(void 0===a){a=function(e,t,n){if(!y(t,"default"))return;var r=t.default;if(e&&e.$options.propsData&&void 0===e.$options.propsData[n]&&void 0!==e._props[n])return e._props[n];return"function"==typeof r&&"Function"!==Fe(t.type)?r.call(e):r}(r,i,e);var u=be;$e(!0),Ce(a),$e(u)}return a}var Me=/^\s*function (\w+)/;function Fe(e){var t=e&&e.toString().match(Me);return t?t[1]:""}function Pe(e,t){return Fe(e)===Fe(t)}function Re(e,t){if(!Array.isArray(t))return Pe(t,e)?0:-1;for(var n=0,r=t.length;n<r;n++)if(Pe(t[n],e))return n;return-1}function He(e,t,n){le();try{if(t)for(var r=t;r=r.$parent;){var i=r.$options.errorCaptured;if(i)for(var o=0;o<i.length;o++)try{if(!1===i[o].call(r,e,t,n))return}catch(e){Ue(e,r,"errorCaptured hook")}}Ue(e,t,n)}finally{fe()}}function Be(e,t,n,r,i){var o;try{(o=n?e.apply(t,n):e.call(t))&&!o._isVue&&u(o)&&!o._handled&&(o.catch(function(e){return He(e,r,i+" (Promise/async)")}),o._handled=!0)}catch(e){He(e,r,i)}return o}function Ue(e,t,n){if(F.errorHandler)try{return F.errorHandler.call(null,e,t,n)}catch(t){t!==e&&Ve(t,null,"config.errorHandler")}Ve(e,t,n)}function Ve(e,t,n){if(!V&&!z||"undefined"==typeof console)throw e;console.error(e)}var ze,Ke=!1,Je=[],qe=!1;function We(){qe=!1;var e=Je.slice(0);Je.length=0;for(var t=0;t<e.length;t++)e[t]()}if("undefined"!=typeof Promise&&re(Promise)){var Ze=Promise.resolve();ze=function(){Ze.then(We),G&&setTimeout(S)},Ke=!0}else if(q||"undefined"==typeof MutationObserver||!re(MutationObserver)&&"[object MutationObserverConstructor]"!==MutationObserver.toString())ze="undefined"!=typeof setImmediate&&re(setImmediate)?function(){setImmediate(We)}:function(){setTimeout(We,0)};else{var Ge=1,Xe=new MutationObserver(We),Ye=document.createTextNode(String(Ge));Xe.observe(Ye,{characterData:!0}),ze=function(){Ge=(Ge+1)%2,Ye.data=String(Ge)},Ke=!0}function Qe(e,t){var n;if(Je.push(function(){if(e)try{e.call(t)}catch(e){He(e,t,"nextTick")}else n&&n(t)}),qe||(qe=!0,ze()),!e&&"undefined"!=typeof Promise)return new Promise(function(e){n=e})}var et=new ie;function tt(e){!function e(t,n){var r,i;var a=Array.isArray(t);if(!a&&!o(t)||Object.isFrozen(t)||t instanceof pe)return;if(t.__ob__){var s=t.__ob__.dep.id;if(n.has(s))return;n.add(s)}if(a)for(r=t.length;r--;)e(t[r],n);else for(i=Object.keys(t),r=i.length;r--;)e(t[i[r]],n)}(e,et),et.clear()}var nt=g(function(e){var t="&"===e.charAt(0),n="~"===(e=t?e.slice(1):e).charAt(0),r="!"===(e=n?e.slice(1):e).charAt(0);return{name:e=r?e.slice(1):e,once:n,capture:r,passive:t}});function rt(e,t){function n(){var e=arguments,r=n.fns;if(!Array.isArray(r))return Be(r,null,arguments,t,"v-on handler");for(var i=r.slice(),o=0;o<i.length;o++)Be(i[o],null,e,t,"v-on handler")}return n.fns=e,n}function it(e,n,i,o,a,s){var c,u,l,f;for(c in e)u=e[c],l=n[c],f=nt(c),t(u)||(t(l)?(t(u.fns)&&(u=e[c]=rt(u,s)),r(f.once)&&(u=e[c]=a(f.name,u,f.capture)),i(f.name,u,f.capture,f.passive,f.params)):u!==l&&(l.fns=u,e[c]=l));for(c in n)t(e[c])&&o((f=nt(c)).name,n[c],f.capture)}function ot(e,i,o){var a;e instanceof pe&&(e=e.data.hook||(e.data.hook={}));var s=e[i];function c(){o.apply(this,arguments),h(a.fns,c)}t(s)?a=rt([c]):n(s.fns)&&r(s.merged)?(a=s).fns.push(c):a=rt([s,c]),a.merged=!0,e[i]=a}function at(e,t,r,i,o){if(n(t)){if(y(t,r))return e[r]=t[r],o||delete t[r],!0;if(y(t,i))return e[r]=t[i],o||delete t[i],!0}return!1}function st(e){return i(e)?[he(e)]:Array.isArray(e)?function e(o,a){var s=[];var c,u,l,f;for(c=0;c<o.length;c++)t(u=o[c])||"boolean"==typeof u||(l=s.length-1,f=s[l],Array.isArray(u)?u.length>0&&(ct((u=e(u,(a||"")+"_"+c))[0])&&ct(f)&&(s[l]=he(f.text+u[0].text),u.shift()),s.push.apply(s,u)):i(u)?ct(f)?s[l]=he(f.text+u):""!==u&&s.push(he(u)):ct(u)&&ct(f)?s[l]=he(f.text+u.text):(r(o._isVList)&&n(u.tag)&&t(u.key)&&n(a)&&(u.key="__vlist"+a+"_"+c+"__"),s.push(u)));return s}(e):void 0}function ct(e){return n(e)&&n(e.text)&&!1===e.isComment}function ut(e,t){if(e){for(var n=Object.create(null),r=oe?Reflect.ownKeys(e):Object.keys(e),i=0;i<r.length;i++){var o=r[i];if("__ob__"!==o){for(var a=e[o].from,s=t;s;){if(s._provided&&y(s._provided,a)){n[o]=s._provided[a];break}s=s.$parent}if(!s&&"default"in e[o]){var c=e[o].default;n[o]="function"==typeof c?c.call(t):c}}}return n}}function lt(e,t){if(!e||!e.length)return{};for(var n={},r=0,i=e.length;r<i;r++){var o=e[r],a=o.data;if(a&&a.attrs&&a.attrs.slot&&delete a.attrs.slot,o.context!==t&&o.fnContext!==t||!a||null==a.slot)(n.default||(n.default=[])).push(o);else{var s=a.slot,c=n[s]||(n[s]=[]);"template"===o.tag?c.push.apply(c,o.children||[]):c.push(o)}}for(var u in n)n[u].every(ft)&&delete n[u];return n}function ft(e){return e.isComment&&!e.asyncFactory||" "===e.text}function pt(e){return e.isComment&&e.asyncFactory}function dt(t,n,r){var i,o=Object.keys(n).length>0,a=t?!!t.$stable:!o,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(a&&r&&r!==e&&s===r.$key&&!o&&!r.$hasNormal)return r;for(var c in i={},t)t[c]&&"$"!==c[0]&&(i[c]=vt(n,c,t[c]))}else i={};for(var u in n)u in i||(i[u]=ht(n,u));return t&&Object.isExtensible(t)&&(t._normalized=i),R(i,"$stable",a),R(i,"$key",s),R(i,"$hasNormal",o),i}function vt(e,t,n){var r=function(){var e=arguments.length?n.apply(null,arguments):n({}),t=(e=e&&"object"==typeof e&&!Array.isArray(e)?[e]:st(e))&&e[0];return e&&(!t||1===e.length&&t.isComment&&!pt(t))?void 0:e};return n.proxy&&Object.defineProperty(e,t,{get:r,enumerable:!0,configurable:!0}),r}function ht(e,t){return function(){return e[t]}}function mt(e,t){var r,i,a,s,c;if(Array.isArray(e)||"string"==typeof e)for(r=new Array(e.length),i=0,a=e.length;i<a;i++)r[i]=t(e[i],i);else if("number"==typeof e)for(r=new Array(e),i=0;i<e;i++)r[i]=t(i+1,i);else if(o(e))if(oe&&e[Symbol.iterator]){r=[];for(var u=e[Symbol.iterator](),l=u.next();!l.done;)r.push(t(l.value,r.length)),l=u.next()}else for(s=Object.keys(e),r=new Array(s.length),i=0,a=s.length;i<a;i++)c=s[i],r[i]=t(e[c],c,i);return n(r)||(r=[]),r._isVList=!0,r}function yt(e,t,n,r){var i,o=this.$scopedSlots[e];o?(n=n||{},r&&(n=A(A({},r),n)),i=o(n)||("function"==typeof t?t():t)):i=this.$slots[e]||("function"==typeof t?t():t);var a=n&&n.slot;return a?this.$createElement("template",{slot:a},i):i}function gt(e){return Le(this.$options,"filters",e)||N}function _t(e,t){return Array.isArray(e)?-1===e.indexOf(t):e!==t}function bt(e,t,n,r,i){var o=F.keyCodes[t]||n;return i&&r&&!F.keyCodes[t]?_t(i,r):o?_t(o,e):r?C(r)!==t:void 0===e}function $t(e,t,n,r,i){if(n)if(o(n)){var a;Array.isArray(n)&&(n=O(n));var s=function(o){if("class"===o||"style"===o||v(o))a=e;else{var s=e.attrs&&e.attrs.type;a=r||F.mustUseProp(t,s,o)?e.domProps||(e.domProps={}):e.attrs||(e.attrs={})}var c=b(o),u=C(o);c in a||u in a||(a[o]=n[o],i&&((e.on||(e.on={}))["update:"+o]=function(e){n[o]=e}))};for(var c in n)s(c)}else;return e}function wt(e,t){var n=this._staticTrees||(this._staticTrees=[]),r=n[e];return r&&!t?r:(xt(r=n[e]=this.$options.staticRenderFns[e].call(this._renderProxy,null,this),"__static__"+e,!1),r)}function Ct(e,t,n){return xt(e,"__once__"+t+(n?"_"+n:""),!0),e}function xt(e,t,n){if(Array.isArray(e))for(var r=0;r<e.length;r++)e[r]&&"string"!=typeof e[r]&&kt(e[r],t+"_"+r,n);else kt(e,t,n)}function kt(e,t,n){e.isStatic=!0,e.key=t,e.isOnce=n}function At(e,t){if(t)if(s(t)){var n=e.on=e.on?A({},e.on):{};for(var r in t){var i=n[r],o=t[r];n[r]=i?[].concat(i,o):o}}else;return e}function Ot(e,t,n,r){t=t||{$stable:!n};for(var i=0;i<e.length;i++){var o=e[i];Array.isArray(o)?Ot(o,t,n):o&&(o.proxy&&(o.fn.proxy=!0),t[o.key]=o.fn)}return r&&(t.$key=r),t}function St(e,t){for(var n=0;n<t.length;n+=2){var r=t[n];"string"==typeof r&&r&&(e[t[n]]=t[n+1])}return e}function Tt(e,t){return"string"==typeof e?t+e:e}function Nt(e){e._o=Ct,e._n=f,e._s=l,e._l=mt,e._t=yt,e._q=E,e._i=j,e._m=wt,e._f=gt,e._k=bt,e._b=$t,e._v=he,e._e=ve,e._u=Ot,e._g=At,e._d=St,e._p=Tt}function Et(t,n,i,o,a){var s,c=this,u=a.options;y(o,"_uid")?(s=Object.create(o))._original=o:(s=o,o=o._original);var l=r(u._compiled),f=!l;this.data=t,this.props=n,this.children=i,this.parent=o,this.listeners=t.on||e,this.injections=ut(u.inject,o),this.slots=function(){return c.$slots||dt(t.scopedSlots,c.$slots=lt(i,o)),c.$slots},Object.defineProperty(this,"scopedSlots",{enumerable:!0,get:function(){return dt(t.scopedSlots,this.slots())}}),l&&(this.$options=u,this.$slots=this.slots(),this.$scopedSlots=dt(t.scopedSlots,this.$slots)),u._scopeId?this._c=function(e,t,n,r){var i=Ht(s,e,t,n,r,f);return i&&!Array.isArray(i)&&(i.fnScopeId=u._scopeId,i.fnContext=o),i}:this._c=function(e,t,n,r){return Ht(s,e,t,n,r,f)}}function jt(e,t,n,r,i){var o=me(e);return o.fnContext=n,o.fnOptions=r,t.slot&&((o.data||(o.data={})).slot=t.slot),o}function Dt(e,t){for(var n in t)e[b(n)]=t[n]}Nt(Et.prototype);var Lt={init:function(e,t){if(e.componentInstance&&!e.componentInstance._isDestroyed&&e.data.keepAlive){var r=e;Lt.prepatch(r,r)}else{(e.componentInstance=function(e,t){var r={_isComponent:!0,_parentVnode:e,parent:t},i=e.data.inlineTemplate;n(i)&&(r.render=i.render,r.staticRenderFns=i.staticRenderFns);return new e.componentOptions.Ctor(r)}(e,Zt)).$mount(t?e.elm:void 0,t)}},prepatch:function(t,n){var r=n.componentOptions;!function(t,n,r,i,o){var a=i.data.scopedSlots,s=t.$scopedSlots,c=!!(a&&!a.$stable||s!==e&&!s.$stable||a&&t.$scopedSlots.$key!==a.$key||!a&&t.$scopedSlots.$key),u=!!(o||t.$options._renderChildren||c);t.$options._parentVnode=i,t.$vnode=i,t._vnode&&(t._vnode.parent=i);if(t.$options._renderChildren=o,t.$attrs=i.data.attrs||e,t.$listeners=r||e,n&&t.$options.props){$e(!1);for(var l=t._props,f=t.$options._propKeys||[],p=0;p<f.length;p++){var d=f[p],v=t.$options.props;l[d]=Ie(d,v,n,t)}$e(!0),t.$options.propsData=n}r=r||e;var h=t.$options._parentListeners;t.$options._parentListeners=r,Wt(t,r,h),u&&(t.$slots=lt(o,i.context),t.$forceUpdate())}(n.componentInstance=t.componentInstance,r.propsData,r.listeners,n,r.children)},insert:function(e){var t,n=e.context,r=e.componentInstance;r._isMounted||(r._isMounted=!0,Qt(r,"mounted")),e.data.keepAlive&&(n._isMounted?((t=r)._inactive=!1,tn.push(t)):Yt(r,!0))},destroy:function(e){var t=e.componentInstance;t._isDestroyed||(e.data.keepAlive?function e(t,n){if(n&&(t._directInactive=!0,Xt(t)))return;if(!t._inactive){t._inactive=!0;for(var r=0;r<t.$children.length;r++)e(t.$children[r]);Qt(t,"deactivated")}}(t,!0):t.$destroy())}},It=Object.keys(Lt);function Mt(i,a,s,c,l){if(!t(i)){var f=s.$options._base;if(o(i)&&(i=f.extend(i)),"function"==typeof i){var p;if(t(i.cid)&&void 0===(i=function(e,i){if(r(e.error)&&n(e.errorComp))return e.errorComp;if(n(e.resolved))return e.resolved;var a=Ut;a&&n(e.owners)&&-1===e.owners.indexOf(a)&&e.owners.push(a);if(r(e.loading)&&n(e.loadingComp))return e.loadingComp;if(a&&!n(e.owners)){var s=e.owners=[a],c=!0,l=null,f=null;a.$on("hook:destroyed",function(){return h(s,a)});var p=function(e){for(var t=0,n=s.length;t<n;t++)s[t].$forceUpdate();e&&(s.length=0,null!==l&&(clearTimeout(l),l=null),null!==f&&(clearTimeout(f),f=null))},d=D(function(t){e.resolved=Vt(t,i),c?s.length=0:p(!0)}),v=D(function(t){n(e.errorComp)&&(e.error=!0,p(!0))}),m=e(d,v);return o(m)&&(u(m)?t(e.resolved)&&m.then(d,v):u(m.component)&&(m.component.then(d,v),n(m.error)&&(e.errorComp=Vt(m.error,i)),n(m.loading)&&(e.loadingComp=Vt(m.loading,i),0===m.delay?e.loading=!0:l=setTimeout(function(){l=null,t(e.resolved)&&t(e.error)&&(e.loading=!0,p(!1))},m.delay||200)),n(m.timeout)&&(f=setTimeout(function(){f=null,t(e.resolved)&&v(null)},m.timeout)))),c=!1,e.loading?e.loadingComp:e.resolved}}(p=i,f)))return function(e,t,n,r,i){var o=ve();return o.asyncFactory=e,o.asyncMeta={data:t,context:n,children:r,tag:i},o}(p,a,s,c,l);a=a||{},wn(i),n(a.model)&&function(e,t){var r=e.model&&e.model.prop||"value",i=e.model&&e.model.event||"input";(t.attrs||(t.attrs={}))[r]=t.model.value;var o=t.on||(t.on={}),a=o[i],s=t.model.callback;n(a)?(Array.isArray(a)?-1===a.indexOf(s):a!==s)&&(o[i]=[s].concat(a)):o[i]=s}(i.options,a);var d=function(e,r,i){var o=r.options.props;if(!t(o)){var a={},s=e.attrs,c=e.props;if(n(s)||n(c))for(var u in o){var l=C(u);at(a,c,u,l,!0)||at(a,s,u,l,!1)}return a}}(a,i);if(r(i.options.functional))return function(t,r,i,o,a){var s=t.options,c={},u=s.props;if(n(u))for(var l in u)c[l]=Ie(l,u,r||e);else n(i.attrs)&&Dt(c,i.attrs),n(i.props)&&Dt(c,i.props);var f=new Et(i,c,a,o,t),p=s.render.call(null,f._c,f);if(p instanceof pe)return jt(p,i,f.parent,s);if(Array.isArray(p)){for(var d=st(p)||[],v=new Array(d.length),h=0;h<d.length;h++)v[h]=jt(d[h],i,f.parent,s);return v}}(i,d,a,s,c);var v=a.on;if(a.on=a.nativeOn,r(i.options.abstract)){var m=a.slot;a={},m&&(a.slot=m)}!function(e){for(var t=e.hook||(e.hook={}),n=0;n<It.length;n++){var r=It[n],i=t[r],o=Lt[r];i===o||i&&i._merged||(t[r]=i?Ft(o,i):o)}}(a);var y=i.options.name||l;return new pe("vue-component-"+i.cid+(y?"-"+y:""),a,void 0,void 0,void 0,s,{Ctor:i,propsData:d,listeners:v,tag:l,children:c},p)}}}function Ft(e,t){var n=function(n,r){e(n,r),t(n,r)};return n._merged=!0,n}var Pt=1,Rt=2;function Ht(e,a,s,c,u,l){return(Array.isArray(s)||i(s))&&(u=c,c=s,s=void 0),r(l)&&(u=Rt),function(e,i,a,s,c){if(n(a)&&n(a.__ob__))return ve();n(a)&&n(a.is)&&(i=a.is);if(!i)return ve();Array.isArray(s)&&"function"==typeof s[0]&&((a=a||{}).scopedSlots={default:s[0]},s.length=0);c===Rt?s=st(s):c===Pt&&(s=function(e){for(var t=0;t<e.length;t++)if(Array.isArray(e[t]))return Array.prototype.concat.apply([],e);return e}(s));var u,l;if("string"==typeof i){var f;l=e.$vnode&&e.$vnode.ns||F.getTagNamespace(i),u=F.isReservedTag(i)?new pe(F.parsePlatformTagName(i),a,s,void 0,void 0,e):a&&a.pre||!n(f=Le(e.$options,"components",i))?new pe(i,a,s,void 0,void 0,e):Mt(f,a,e,s,i)}else u=Mt(i,a,e,s);return Array.isArray(u)?u:n(u)?(n(l)&&function e(i,o,a){i.ns=o;"foreignObject"===i.tag&&(o=void 0,a=!0);if(n(i.children))for(var s=0,c=i.children.length;s<c;s++){var u=i.children[s];n(u.tag)&&(t(u.ns)||r(a)&&"svg"!==u.tag)&&e(u,o,a)}}(u,l),n(a)&&function(e){o(e.style)&&tt(e.style);o(e.class)&&tt(e.class)}(a),u):ve()}(e,a,s,c,u)}var Bt,Ut=null;function Vt(e,t){return(e.__esModule||oe&&"Module"===e[Symbol.toStringTag])&&(e=e.default),o(e)?t.extend(e):e}function zt(e){if(Array.isArray(e))for(var t=0;t<e.length;t++){var r=e[t];if(n(r)&&(n(r.componentOptions)||pt(r)))return r}}function Kt(e,t){Bt.$on(e,t)}function Jt(e,t){Bt.$off(e,t)}function qt(e,t){var n=Bt;return function r(){null!==t.apply(null,arguments)&&n.$off(e,r)}}function Wt(e,t,n){Bt=e,it(t,n||{},Kt,Jt,qt,e),Bt=void 0}var Zt=null;function Gt(e){var t=Zt;return Zt=e,function(){Zt=t}}function Xt(e){for(;e&&(e=e.$parent);)if(e._inactive)return!0;return!1}function Yt(e,t){if(t){if(e._directInactive=!1,Xt(e))return}else if(e._directInactive)return;if(e._inactive||null===e._inactive){e._inactive=!1;for(var n=0;n<e.$children.length;n++)Yt(e.$children[n]);Qt(e,"activated")}}function Qt(e,t){le();var n=e.$options[t],r=t+" hook";if(n)for(var i=0,o=n.length;i<o;i++)Be(n[i],e,null,e,r);e._hasHookEvent&&e.$emit("hook:"+t),fe()}var en=[],tn=[],nn={},rn=!1,on=!1,an=0;var sn=0,cn=Date.now;if(V&&!q){var un=window.performance;un&&"function"==typeof un.now&&cn()>document.createEvent("Event").timeStamp&&(cn=function(){return un.now()})}function ln(){var e,t;for(sn=cn(),on=!0,en.sort(function(e,t){return e.id-t.id}),an=0;an<en.length;an++)(e=en[an]).before&&e.before(),t=e.id,nn[t]=null,e.run();var n=tn.slice(),r=en.slice();an=en.length=tn.length=0,nn={},rn=on=!1,function(e){for(var t=0;t<e.length;t++)e[t]._inactive=!0,Yt(e[t],!0)}(n),function(e){var t=e.length;for(;t--;){var n=e[t],r=n.vm;r._watcher===n&&r._isMounted&&!r._isDestroyed&&Qt(r,"updated")}}(r),ne&&F.devtools&&ne.emit("flush")}var fn=0,pn=function(e,t,n,r,i){this.vm=e,i&&(e._watcher=this),e._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++fn,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new ie,this.newDepIds=new ie,this.expression="","function"==typeof t?this.getter=t:(this.getter=function(e){if(!H.test(e)){var t=e.split(".");return function(e){for(var n=0;n<t.length;n++){if(!e)return;e=e[t[n]]}return e}}}(t),this.getter||(this.getter=S)),this.value=this.lazy?void 0:this.get()};pn.prototype.get=function(){var e;le(this);var t=this.vm;try{e=this.getter.call(t,t)}catch(e){if(!this.user)throw e;He(e,t,'getter for watcher "'+this.expression+'"')}finally{this.deep&&tt(e),fe(),this.cleanupDeps()}return e},pn.prototype.addDep=function(e){var t=e.id;this.newDepIds.has(t)||(this.newDepIds.add(t),this.newDeps.push(e),this.depIds.has(t)||e.addSub(this))},pn.prototype.cleanupDeps=function(){for(var e=this.deps.length;e--;){var t=this.deps[e];this.newDepIds.has(t.id)||t.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},pn.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():function(e){var t=e.id;if(null==nn[t]){if(nn[t]=!0,on){for(var n=en.length-1;n>an&&en[n].id>e.id;)n--;en.splice(n+1,0,e)}else en.push(e);rn||(rn=!0,Qe(ln))}}(this)},pn.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||o(e)||this.deep){var t=this.value;if(this.value=e,this.user){var n='callback for watcher "'+this.expression+'"';Be(this.cb,this.vm,[e,t],this.vm,n)}else this.cb.call(this.vm,e,t)}}},pn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},pn.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},pn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||h(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var dn={enumerable:!0,configurable:!0,get:S,set:S};function vn(e,t,n){dn.get=function(){return this[t][n]},dn.set=function(e){this[t][n]=e},Object.defineProperty(e,n,dn)}function hn(e){e._watchers=[];var t=e.$options;t.props&&function(e,t){var n=e.$options.propsData||{},r=e._props={},i=e.$options._propKeys=[];e.$parent&&$e(!1);var o=function(o){i.push(o);var a=Ie(o,t,n,e);xe(r,o,a),o in e||vn(e,"_props",o)};for(var a in t)o(a);$e(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]="function"!=typeof t[n]?S:x(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;s(t=e._data="function"==typeof t?function(e,t){le();try{return e.call(t,t)}catch(e){return He(e,t,"data()"),{}}finally{fe()}}(t,e):t||{})||(t={});var n=Object.keys(t),r=e.$options.props,i=(e.$options.methods,n.length);for(;i--;){var o=n[i];r&&y(r,o)||(a=void 0,36!==(a=(o+"").charCodeAt(0))&&95!==a&&vn(e,"_data",o))}var a;Ce(t,!0)}(e):Ce(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),r=te();for(var i in t){var o=t[i],a="function"==typeof o?o:o.get;r||(n[i]=new pn(e,a||S,S,mn)),i in e||yn(e,i,o)}}(e,t.computed),t.watch&&t.watch!==Y&&function(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var i=0;i<r.length;i++)bn(e,n,r[i]);else bn(e,n,r)}}(e,t.watch)}var mn={lazy:!0};function yn(e,t,n){var r=!te();"function"==typeof n?(dn.get=r?gn(t):_n(n),dn.set=S):(dn.get=n.get?r&&!1!==n.cache?gn(t):_n(n.get):S,dn.set=n.set||S),Object.defineProperty(e,t,dn)}function gn(e){return function(){var t=this._computedWatchers&&this._computedWatchers[e];if(t)return t.dirty&&t.evaluate(),ce.target&&t.depend(),t.value}}function _n(e){return function(){return e.call(this,this)}}function bn(e,t,n,r){return s(n)&&(r=n,n=n.handler),"string"==typeof n&&(n=e[n]),e.$watch(t,n,r)}var $n=0;function wn(e){var t=e.options;if(e.super){var n=wn(e.super);if(n!==e.superOptions){e.superOptions=n;var r=function(e){var t,n=e.options,r=e.sealedOptions;for(var i in n)n[i]!==r[i]&&(t||(t={}),t[i]=n[i]);return t}(e);r&&A(e.extendOptions,r),(t=e.options=De(n,e.extendOptions)).name&&(t.components[t.name]=e)}}return t}function Cn(e){this._init(e)}function xn(e){e.cid=0;var t=1;e.extend=function(e){e=e||{};var n=this,r=n.cid,i=e._Ctor||(e._Ctor={});if(i[r])return i[r];var o=e.name||n.options.name,a=function(e){this._init(e)};return(a.prototype=Object.create(n.prototype)).constructor=a,a.cid=t++,a.options=De(n.options,e),a.super=n,a.options.props&&function(e){var t=e.options.props;for(var n in t)vn(e.prototype,"_props",n)}(a),a.options.computed&&function(e){var t=e.options.computed;for(var n in t)yn(e.prototype,n,t[n])}(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,I.forEach(function(e){a[e]=n[e]}),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=e,a.sealedOptions=A({},a.options),i[r]=a,a}}function kn(e){return e&&(e.Ctor.options.name||e.tag)}function An(e,t){return Array.isArray(e)?e.indexOf(t)>-1:"string"==typeof e?e.split(",").indexOf(t)>-1:(n=e,"[object RegExp]"===a.call(n)&&e.test(t));var n}function On(e,t){var n=e.cache,r=e.keys,i=e._vnode;for(var o in n){var a=n[o];if(a){var s=a.name;s&&!t(s)&&Sn(n,o,r,i)}}}function Sn(e,t,n,r){var i=e[t];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),e[t]=null,h(n,t)}!function(t){t.prototype._init=function(t){var n=this;n._uid=$n++,n._isVue=!0,t&&t._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),r=t._parentVnode;n.parent=t.parent,n._parentVnode=r;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(n,t):n.$options=De(wn(n.constructor),t||{},n),n._renderProxy=n,n._self=n,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(n),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&Wt(e,t)}(n),function(t){t._vnode=null,t._staticTrees=null;var n=t.$options,r=t.$vnode=n._parentVnode,i=r&&r.context;t.$slots=lt(n._renderChildren,i),t.$scopedSlots=e,t._c=function(e,n,r,i){return Ht(t,e,n,r,i,!1)},t.$createElement=function(e,n,r,i){return Ht(t,e,n,r,i,!0)};var o=r&&r.data;xe(t,"$attrs",o&&o.attrs||e,null,!0),xe(t,"$listeners",n._parentListeners||e,null,!0)}(n),Qt(n,"beforeCreate"),function(e){var t=ut(e.$options.inject,e);t&&($e(!1),Object.keys(t).forEach(function(n){xe(e,n,t[n])}),$e(!0))}(n),hn(n),function(e){var t=e.$options.provide;t&&(e._provided="function"==typeof t?t.call(e):t)}(n),Qt(n,"created"),n.$options.el&&n.$mount(n.$options.el)}}(Cn),function(e){var t={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(e.prototype,"$data",t),Object.defineProperty(e.prototype,"$props",n),e.prototype.$set=ke,e.prototype.$delete=Ae,e.prototype.$watch=function(e,t,n){if(s(t))return bn(this,e,t,n);(n=n||{}).user=!0;var r=new pn(this,e,t,n);if(n.immediate){var i='callback for immediate watcher "'+r.expression+'"';le(),Be(t,this,[r.value],this,i),fe()}return function(){r.teardown()}}}(Cn),function(e){var t=/^hook:/;e.prototype.$on=function(e,n){var r=this;if(Array.isArray(e))for(var i=0,o=e.length;i<o;i++)r.$on(e[i],n);else(r._events[e]||(r._events[e]=[])).push(n),t.test(e)&&(r._hasHookEvent=!0);return r},e.prototype.$once=function(e,t){var n=this;function r(){n.$off(e,r),t.apply(n,arguments)}return r.fn=t,n.$on(e,r),n},e.prototype.$off=function(e,t){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(Array.isArray(e)){for(var r=0,i=e.length;r<i;r++)n.$off(e[r],t);return n}var o,a=n._events[e];if(!a)return n;if(!t)return n._events[e]=null,n;for(var s=a.length;s--;)if((o=a[s])===t||o.fn===t){a.splice(s,1);break}return n},e.prototype.$emit=function(e){var t=this._events[e];if(t){t=t.length>1?k(t):t;for(var n=k(arguments,1),r='event handler for "'+e+'"',i=0,o=t.length;i<o;i++)Be(t[i],this,n,this,r)}return this}}(Cn),function(e){e.prototype._update=function(e,t){var n=this,r=n.$el,i=n._vnode,o=Gt(n);n._vnode=e,n.$el=i?n.__patch__(i,e):n.__patch__(n.$el,e,t,!1),o(),r&&(r.__vue__=null),n.$el&&(n.$el.__vue__=n),n.$vnode&&n.$parent&&n.$vnode===n.$parent._vnode&&(n.$parent.$el=n.$el)},e.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},e.prototype.$destroy=function(){var e=this;if(!e._isBeingDestroyed){Qt(e,"beforeDestroy"),e._isBeingDestroyed=!0;var t=e.$parent;!t||t._isBeingDestroyed||e.$options.abstract||h(t.$children,e),e._watcher&&e._watcher.teardown();for(var n=e._watchers.length;n--;)e._watchers[n].teardown();e._data.__ob__&&e._data.__ob__.vmCount--,e._isDestroyed=!0,e.__patch__(e._vnode,null),Qt(e,"destroyed"),e.$off(),e.$el&&(e.$el.__vue__=null),e.$vnode&&(e.$vnode.parent=null)}}}(Cn),function(e){Nt(e.prototype),e.prototype.$nextTick=function(e){return Qe(e,this)},e.prototype._render=function(){var e,t=this,n=t.$options,r=n.render,i=n._parentVnode;i&&(t.$scopedSlots=dt(i.data.scopedSlots,t.$slots,t.$scopedSlots)),t.$vnode=i;try{Ut=t,e=r.call(t._renderProxy,t.$createElement)}catch(n){He(n,t,"render"),e=t._vnode}finally{Ut=null}return Array.isArray(e)&&1===e.length&&(e=e[0]),e instanceof pe||(e=ve()),e.parent=i,e}}(Cn);var Tn=[String,RegExp,Array],Nn={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:Tn,exclude:Tn,max:[String,Number]},methods:{cacheVNode:function(){var e=this.cache,t=this.keys,n=this.vnodeToCache,r=this.keyToCache;if(n){var i=n.tag,o=n.componentInstance,a=n.componentOptions;e[r]={name:kn(a),tag:i,componentInstance:o},t.push(r),this.max&&t.length>parseInt(this.max)&&Sn(e,t[0],t,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)Sn(this.cache,e,this.keys)},mounted:function(){var e=this;this.cacheVNode(),this.$watch("include",function(t){On(e,function(e){return An(t,e)})}),this.$watch("exclude",function(t){On(e,function(e){return!An(t,e)})})},updated:function(){this.cacheVNode()},render:function(){var e=this.$slots.default,t=zt(e),n=t&&t.componentOptions;if(n){var r=kn(n),i=this.include,o=this.exclude;if(i&&(!r||!An(i,r))||o&&r&&An(o,r))return t;var a=this.cache,s=this.keys,c=null==t.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):t.key;a[c]?(t.componentInstance=a[c].componentInstance,h(s,c),s.push(c)):(this.vnodeToCache=t,this.keyToCache=c),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return F}};Object.defineProperty(e,"config",t),e.util={warn:ae,extend:A,mergeOptions:De,defineReactive:xe},e.set=ke,e.delete=Ae,e.nextTick=Qe,e.observable=function(e){return Ce(e),e},e.options=Object.create(null),I.forEach(function(t){e.options[t+"s"]=Object.create(null)}),e.options._base=e,A(e.options.components,Nn),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=k(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=De(this.options,e),this}}(e),xn(e),function(e){I.forEach(function(t){e[t]=function(e,n){return n?("component"===t&&s(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}})}(e)}(Cn),Object.defineProperty(Cn.prototype,"$isServer",{get:te}),Object.defineProperty(Cn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Cn,"FunctionalRenderContext",{value:Et}),Cn.version="2.6.14";var En=p("style,class"),jn=p("input,textarea,option,select,progress"),Dn=function(e,t,n){return"value"===n&&jn(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},Ln=p("contenteditable,draggable,spellcheck"),In=p("events,caret,typing,plaintext-only"),Mn=function(e,t){return Bn(t)||"false"===t?"false":"contenteditable"===e&&In(t)?t:"true"},Fn=p("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),Pn="http://www.w3.org/1999/xlink",Rn=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},Hn=function(e){return Rn(e)?e.slice(6,e.length):""},Bn=function(e){return null==e||!1===e};function Un(e){for(var t=e.data,r=e,i=e;n(i.componentInstance);)(i=i.componentInstance._vnode)&&i.data&&(t=Vn(i.data,t));for(;n(r=r.parent);)r&&r.data&&(t=Vn(t,r.data));return function(e,t){if(n(e)||n(t))return zn(e,Kn(t));return""}(t.staticClass,t.class)}function Vn(e,t){return{staticClass:zn(e.staticClass,t.staticClass),class:n(e.class)?[e.class,t.class]:t.class}}function zn(e,t){return e?t?e+" "+t:e:t||""}function Kn(e){return Array.isArray(e)?function(e){for(var t,r="",i=0,o=e.length;i<o;i++)n(t=Kn(e[i]))&&""!==t&&(r&&(r+=" "),r+=t);return r}(e):o(e)?function(e){var t="";for(var n in e)e[n]&&(t&&(t+=" "),t+=n);return t}(e):"string"==typeof e?e:""}var Jn={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},qn=p("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),Wn=p("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Zn=function(e){return qn(e)||Wn(e)};function Gn(e){return Wn(e)?"svg":"math"===e?"math":void 0}var Xn=Object.create(null);var Yn=p("text,number,password,search,email,tel,url");function Qn(e){if("string"==typeof e){var t=document.querySelector(e);return t||document.createElement("div")}return e}var er=Object.freeze({createElement:function(e,t){var n=document.createElement(e);return"select"!==e?n:(t.data&&t.data.attrs&&void 0!==t.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)},createElementNS:function(e,t){return document.createElementNS(Jn[e],t)},createTextNode:function(e){return document.createTextNode(e)},createComment:function(e){return document.createComment(e)},insertBefore:function(e,t,n){e.insertBefore(t,n)},removeChild:function(e,t){e.removeChild(t)},appendChild:function(e,t){e.appendChild(t)},parentNode:function(e){return e.parentNode},nextSibling:function(e){return e.nextSibling},tagName:function(e){return e.tagName},setTextContent:function(e,t){e.textContent=t},setStyleScope:function(e,t){e.setAttribute(t,"")}}),tr={create:function(e,t){nr(t)},update:function(e,t){e.data.ref!==t.data.ref&&(nr(e,!0),nr(t))},destroy:function(e){nr(e,!0)}};function nr(e,t){var r=e.data.ref;if(n(r)){var i=e.context,o=e.componentInstance||e.elm,a=i.$refs;t?Array.isArray(a[r])?h(a[r],o):a[r]===o&&(a[r]=void 0):e.data.refInFor?Array.isArray(a[r])?a[r].indexOf(o)<0&&a[r].push(o):a[r]=[o]:a[r]=o}}var rr=new pe("",{},[]),ir=["create","activate","update","remove","destroy"];function or(e,i){return e.key===i.key&&e.asyncFactory===i.asyncFactory&&(e.tag===i.tag&&e.isComment===i.isComment&&n(e.data)===n(i.data)&&function(e,t){if("input"!==e.tag)return!0;var r,i=n(r=e.data)&&n(r=r.attrs)&&r.type,o=n(r=t.data)&&n(r=r.attrs)&&r.type;return i===o||Yn(i)&&Yn(o)}(e,i)||r(e.isAsyncPlaceholder)&&t(i.asyncFactory.error))}function ar(e,t,r){var i,o,a={};for(i=t;i<=r;++i)n(o=e[i].key)&&(a[o]=i);return a}var sr={create:cr,update:cr,destroy:function(e){cr(e,rr)}};function cr(e,t){(e.data.directives||t.data.directives)&&function(e,t){var n,r,i,o=e===rr,a=t===rr,s=lr(e.data.directives,e.context),c=lr(t.data.directives,t.context),u=[],l=[];for(n in c)r=s[n],i=c[n],r?(i.oldValue=r.value,i.oldArg=r.arg,pr(i,"update",t,e),i.def&&i.def.componentUpdated&&l.push(i)):(pr(i,"bind",t,e),i.def&&i.def.inserted&&u.push(i));if(u.length){var f=function(){for(var n=0;n<u.length;n++)pr(u[n],"inserted",t,e)};o?ot(t,"insert",f):f()}l.length&&ot(t,"postpatch",function(){for(var n=0;n<l.length;n++)pr(l[n],"componentUpdated",t,e)});if(!o)for(n in s)c[n]||pr(s[n],"unbind",e,e,a)}(e,t)}var ur=Object.create(null);function lr(e,t){var n,r,i=Object.create(null);if(!e)return i;for(n=0;n<e.length;n++)(r=e[n]).modifiers||(r.modifiers=ur),i[fr(r)]=r,r.def=Le(t.$options,"directives",r.name);return i}function fr(e){return e.rawName||e.name+"."+Object.keys(e.modifiers||{}).join(".")}function pr(e,t,n,r,i){var o=e.def&&e.def[t];if(o)try{o(n.elm,e,n,r,i)}catch(r){He(r,n.context,"directive "+e.name+" "+t+" hook")}}var dr=[tr,sr];function vr(e,r){var i=r.componentOptions;if(!(n(i)&&!1===i.Ctor.options.inheritAttrs||t(e.data.attrs)&&t(r.data.attrs))){var o,a,s=r.elm,c=e.data.attrs||{},u=r.data.attrs||{};for(o in n(u.__ob__)&&(u=r.data.attrs=A({},u)),u)a=u[o],c[o]!==a&&hr(s,o,a,r.data.pre);for(o in(q||Z)&&u.value!==c.value&&hr(s,"value",u.value),c)t(u[o])&&(Rn(o)?s.removeAttributeNS(Pn,Hn(o)):Ln(o)||s.removeAttribute(o))}}function hr(e,t,n,r){r||e.tagName.indexOf("-")>-1?mr(e,t,n):Fn(t)?Bn(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):Ln(t)?e.setAttribute(t,Mn(t,n)):Rn(t)?Bn(n)?e.removeAttributeNS(Pn,Hn(t)):e.setAttributeNS(Pn,t,n):mr(e,t,n)}function mr(e,t,n){if(Bn(n))e.removeAttribute(t);else{if(q&&!W&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==n&&!e.__ieph){var r=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",r)};e.addEventListener("input",r),e.__ieph=!0}e.setAttribute(t,n)}}var yr={create:vr,update:vr};function gr(e,r){var i=r.elm,o=r.data,a=e.data;if(!(t(o.staticClass)&&t(o.class)&&(t(a)||t(a.staticClass)&&t(a.class)))){var s=Un(r),c=i._transitionClasses;n(c)&&(s=zn(s,Kn(c))),s!==i._prevClass&&(i.setAttribute("class",s),i._prevClass=s)}}var _r,br,$r,wr,Cr,xr,kr={create:gr,update:gr},Ar=/[\w).+\-_$\]]/;function Or(e){var t,n,r,i,o,a=!1,s=!1,c=!1,u=!1,l=0,f=0,p=0,d=0;for(r=0;r<e.length;r++)if(n=t,t=e.charCodeAt(r),a)39===t&&92!==n&&(a=!1);else if(s)34===t&&92!==n&&(s=!1);else if(c)96===t&&92!==n&&(c=!1);else if(u)47===t&&92!==n&&(u=!1);else if(124!==t||124===e.charCodeAt(r+1)||124===e.charCodeAt(r-1)||l||f||p){switch(t){case 34:s=!0;break;case 39:a=!0;break;case 96:c=!0;break;case 40:p++;break;case 41:p--;break;case 91:f++;break;case 93:f--;break;case 123:l++;break;case 125:l--}if(47===t){for(var v=r-1,h=void 0;v>=0&&" "===(h=e.charAt(v));v--);h&&Ar.test(h)||(u=!0)}}else void 0===i?(d=r+1,i=e.slice(0,r).trim()):m();function m(){(o||(o=[])).push(e.slice(d,r).trim()),d=r+1}if(void 0===i?i=e.slice(0,r).trim():0!==d&&m(),o)for(r=0;r<o.length;r++)i=Sr(i,o[r]);return i}function Sr(e,t){var n=t.indexOf("(");if(n<0)return'_f("'+t+'")('+e+")";var r=t.slice(0,n),i=t.slice(n+1);return'_f("'+r+'")('+e+(")"!==i?","+i:i)}function Tr(e,t){console.error("[Vue compiler]: "+e)}function Nr(e,t){return e?e.map(function(e){return e[t]}).filter(function(e){return e}):[]}function Er(e,t,n,r,i){(e.props||(e.props=[])).push(Hr({name:t,value:n,dynamic:i},r)),e.plain=!1}function jr(e,t,n,r,i){(i?e.dynamicAttrs||(e.dynamicAttrs=[]):e.attrs||(e.attrs=[])).push(Hr({name:t,value:n,dynamic:i},r)),e.plain=!1}function Dr(e,t,n,r){e.attrsMap[t]=n,e.attrsList.push(Hr({name:t,value:n},r))}function Lr(e,t,n,r,i,o,a,s){(e.directives||(e.directives=[])).push(Hr({name:t,rawName:n,value:r,arg:i,isDynamicArg:o,modifiers:a},s)),e.plain=!1}function Ir(e,t,n){return n?"_p("+t+',"'+e+'")':e+t}function Mr(t,n,r,i,o,a,s,c){var u;(i=i||e).right?c?n="("+n+")==='click'?'contextmenu':("+n+")":"click"===n&&(n="contextmenu",delete i.right):i.middle&&(c?n="("+n+")==='click'?'mouseup':("+n+")":"click"===n&&(n="mouseup")),i.capture&&(delete i.capture,n=Ir("!",n,c)),i.once&&(delete i.once,n=Ir("~",n,c)),i.passive&&(delete i.passive,n=Ir("&",n,c)),i.native?(delete i.native,u=t.nativeEvents||(t.nativeEvents={})):u=t.events||(t.events={});var l=Hr({value:r.trim(),dynamic:c},s);i!==e&&(l.modifiers=i);var f=u[n];Array.isArray(f)?o?f.unshift(l):f.push(l):u[n]=f?o?[l,f]:[f,l]:l,t.plain=!1}function Fr(e,t,n){var r=Pr(e,":"+t)||Pr(e,"v-bind:"+t);if(null!=r)return Or(r);if(!1!==n){var i=Pr(e,t);if(null!=i)return JSON.stringify(i)}}function Pr(e,t,n){var r;if(null!=(r=e.attrsMap[t]))for(var i=e.attrsList,o=0,a=i.length;o<a;o++)if(i[o].name===t){i.splice(o,1);break}return n&&delete e.attrsMap[t],r}function Rr(e,t){for(var n=e.attrsList,r=0,i=n.length;r<i;r++){var o=n[r];if(t.test(o.name))return n.splice(r,1),o}}function Hr(e,t){return t&&(null!=t.start&&(e.start=t.start),null!=t.end&&(e.end=t.end)),e}function Br(e,t,n){var r=n||{},i=r.number,o="$$v";r.trim&&(o="(typeof $$v === 'string'? $$v.trim(): $$v)"),i&&(o="_n("+o+")");var a=Ur(t,o);e.model={value:"("+t+")",expression:JSON.stringify(t),callback:"function ($$v) {"+a+"}"}}function Ur(e,t){var n=function(e){if(e=e.trim(),_r=e.length,e.indexOf("[")<0||e.lastIndexOf("]")<_r-1)return(wr=e.lastIndexOf("."))>-1?{exp:e.slice(0,wr),key:'"'+e.slice(wr+1)+'"'}:{exp:e,key:null};br=e,wr=Cr=xr=0;for(;!zr();)Kr($r=Vr())?qr($r):91===$r&&Jr($r);return{exp:e.slice(0,Cr),key:e.slice(Cr+1,xr)}}(e);return null===n.key?e+"="+t:"$set("+n.exp+", "+n.key+", "+t+")"}function Vr(){return br.charCodeAt(++wr)}function zr(){return wr>=_r}function Kr(e){return 34===e||39===e}function Jr(e){var t=1;for(Cr=wr;!zr();)if(Kr(e=Vr()))qr(e);else if(91===e&&t++,93===e&&t--,0===t){xr=wr;break}}function qr(e){for(var t=e;!zr()&&(e=Vr())!==t;);}var Wr,Zr="__r",Gr="__c";function Xr(e,t,n){var r=Wr;return function i(){null!==t.apply(null,arguments)&&ei(e,i,n,r)}}var Yr=Ke&&!(X&&Number(X[1])<=53);function Qr(e,t,n,r){if(Yr){var i=sn,o=t;t=o._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=i||e.timeStamp<=0||e.target.ownerDocument!==document)return o.apply(this,arguments)}}Wr.addEventListener(e,t,Q?{capture:n,passive:r}:n)}function ei(e,t,n,r){(r||Wr).removeEventListener(e,t._wrapper||t,n)}function ti(e,r){if(!t(e.data.on)||!t(r.data.on)){var i=r.data.on||{},o=e.data.on||{};Wr=r.elm,function(e){if(n(e[Zr])){var t=q?"change":"input";e[t]=[].concat(e[Zr],e[t]||[]),delete e[Zr]}n(e[Gr])&&(e.change=[].concat(e[Gr],e.change||[]),delete e[Gr])}(i),it(i,o,Qr,ei,Xr,r.context),Wr=void 0}}var ni,ri={create:ti,update:ti};function ii(e,r){if(!t(e.data.domProps)||!t(r.data.domProps)){var i,o,a=r.elm,s=e.data.domProps||{},c=r.data.domProps||{};for(i in n(c.__ob__)&&(c=r.data.domProps=A({},c)),s)i in c||(a[i]="");for(i in c){if(o=c[i],"textContent"===i||"innerHTML"===i){if(r.children&&(r.children.length=0),o===s[i])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===i&&"PROGRESS"!==a.tagName){a._value=o;var u=t(o)?"":String(o);oi(a,u)&&(a.value=u)}else if("innerHTML"===i&&Wn(a.tagName)&&t(a.innerHTML)){(ni=ni||document.createElement("div")).innerHTML="<svg>"+o+"</svg>";for(var l=ni.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;l.firstChild;)a.appendChild(l.firstChild)}else if(o!==s[i])try{a[i]=o}catch(e){}}}}function oi(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var r=e.value,i=e._vModifiers;if(n(i)){if(i.number)return f(r)!==f(t);if(i.trim)return r.trim()!==t.trim()}return r!==t}(e,t))}var ai={create:ii,update:ii},si=g(function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach(function(e){if(e){var r=e.split(n);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t});function ci(e){var t=ui(e.style);return e.staticStyle?A(e.staticStyle,t):t}function ui(e){return Array.isArray(e)?O(e):"string"==typeof e?si(e):e}var li,fi=/^--/,pi=/\s*!important$/,di=function(e,t,n){if(fi.test(t))e.style.setProperty(t,n);else if(pi.test(n))e.style.setProperty(C(t),n.replace(pi,""),"important");else{var r=hi(t);if(Array.isArray(n))for(var i=0,o=n.length;i<o;i++)e.style[r]=n[i];else e.style[r]=n}},vi=["Webkit","Moz","ms"],hi=g(function(e){if(li=li||document.createElement("div").style,"filter"!==(e=b(e))&&e in li)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<vi.length;n++){var r=vi[n]+t;if(r in li)return r}});function mi(e,r){var i=r.data,o=e.data;if(!(t(i.staticStyle)&&t(i.style)&&t(o.staticStyle)&&t(o.style))){var a,s,c=r.elm,u=o.staticStyle,l=o.normalizedStyle||o.style||{},f=u||l,p=ui(r.data.style)||{};r.data.normalizedStyle=n(p.__ob__)?A({},p):p;var d=function(e,t){var n,r={};if(t)for(var i=e;i.componentInstance;)(i=i.componentInstance._vnode)&&i.data&&(n=ci(i.data))&&A(r,n);(n=ci(e.data))&&A(r,n);for(var o=e;o=o.parent;)o.data&&(n=ci(o.data))&&A(r,n);return r}(r,!0);for(s in f)t(d[s])&&di(c,s,"");for(s in d)(a=d[s])!==f[s]&&di(c,s,null==a?"":a)}}var yi={create:mi,update:mi},gi=/\s+/;function _i(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(gi).forEach(function(t){return e.classList.add(t)}):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function bi(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(gi).forEach(function(t){return e.classList.remove(t)}):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" "+(e.getAttribute("class")||"")+" ",r=" "+t+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function $i(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&A(t,wi(e.name||"v")),A(t,e),t}return"string"==typeof e?wi(e):void 0}}var wi=g(function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}}),Ci=V&&!W,xi="transition",ki="animation",Ai="transition",Oi="transitionend",Si="animation",Ti="animationend";Ci&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Ai="WebkitTransition",Oi="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Si="WebkitAnimation",Ti="webkitAnimationEnd"));var Ni=V?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Ei(e){Ni(function(){Ni(e)})}function ji(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),_i(e,t))}function Di(e,t){e._transitionClasses&&h(e._transitionClasses,t),bi(e,t)}function Li(e,t,n){var r=Mi(e,t),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===xi?Oi:Ti,c=0,u=function(){e.removeEventListener(s,l),n()},l=function(t){t.target===e&&++c>=a&&u()};setTimeout(function(){c<a&&u()},o+1),e.addEventListener(s,l)}var Ii=/\b(transform|all)(,|$)/;function Mi(e,t){var n,r=window.getComputedStyle(e),i=(r[Ai+"Delay"]||"").split(", "),o=(r[Ai+"Duration"]||"").split(", "),a=Fi(i,o),s=(r[Si+"Delay"]||"").split(", "),c=(r[Si+"Duration"]||"").split(", "),u=Fi(s,c),l=0,f=0;return t===xi?a>0&&(n=xi,l=a,f=o.length):t===ki?u>0&&(n=ki,l=u,f=c.length):f=(n=(l=Math.max(a,u))>0?a>u?xi:ki:null)?n===xi?o.length:c.length:0,{type:n,timeout:l,propCount:f,hasTransform:n===xi&&Ii.test(r[Ai+"Property"])}}function Fi(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max.apply(null,t.map(function(t,n){return Pi(t)+Pi(e[n])}))}function Pi(e){return 1e3*Number(e.slice(0,-1).replace(",","."))}function Ri(e,r){var i=e.elm;n(i._leaveCb)&&(i._leaveCb.cancelled=!0,i._leaveCb());var a=$i(e.data.transition);if(!t(a)&&!n(i._enterCb)&&1===i.nodeType){for(var s=a.css,c=a.type,u=a.enterClass,l=a.enterToClass,p=a.enterActiveClass,d=a.appearClass,v=a.appearToClass,h=a.appearActiveClass,m=a.beforeEnter,y=a.enter,g=a.afterEnter,_=a.enterCancelled,b=a.beforeAppear,$=a.appear,w=a.afterAppear,C=a.appearCancelled,x=a.duration,k=Zt,A=Zt.$vnode;A&&A.parent;)k=A.context,A=A.parent;var O=!k._isMounted||!e.isRootInsert;if(!O||$||""===$){var S=O&&d?d:u,T=O&&h?h:p,N=O&&v?v:l,E=O&&b||m,j=O&&"function"==typeof $?$:y,L=O&&w||g,I=O&&C||_,M=f(o(x)?x.enter:x),F=!1!==s&&!W,P=Ui(j),R=i._enterCb=D(function(){F&&(Di(i,N),Di(i,T)),R.cancelled?(F&&Di(i,S),I&&I(i)):L&&L(i),i._enterCb=null});e.data.show||ot(e,"insert",function(){var t=i.parentNode,n=t&&t._pending&&t._pending[e.key];n&&n.tag===e.tag&&n.elm._leaveCb&&n.elm._leaveCb(),j&&j(i,R)}),E&&E(i),F&&(ji(i,S),ji(i,T),Ei(function(){Di(i,S),R.cancelled||(ji(i,N),P||(Bi(M)?setTimeout(R,M):Li(i,c,R)))})),e.data.show&&(r&&r(),j&&j(i,R)),F||P||R()}}}function Hi(e,r){var i=e.elm;n(i._enterCb)&&(i._enterCb.cancelled=!0,i._enterCb());var a=$i(e.data.transition);if(t(a)||1!==i.nodeType)return r();if(!n(i._leaveCb)){var s=a.css,c=a.type,u=a.leaveClass,l=a.leaveToClass,p=a.leaveActiveClass,d=a.beforeLeave,v=a.leave,h=a.afterLeave,m=a.leaveCancelled,y=a.delayLeave,g=a.duration,_=!1!==s&&!W,b=Ui(v),$=f(o(g)?g.leave:g),w=i._leaveCb=D(function(){i.parentNode&&i.parentNode._pending&&(i.parentNode._pending[e.key]=null),_&&(Di(i,l),Di(i,p)),w.cancelled?(_&&Di(i,u),m&&m(i)):(r(),h&&h(i)),i._leaveCb=null});y?y(C):C()}function C(){w.cancelled||(!e.data.show&&i.parentNode&&((i.parentNode._pending||(i.parentNode._pending={}))[e.key]=e),d&&d(i),_&&(ji(i,u),ji(i,p),Ei(function(){Di(i,u),w.cancelled||(ji(i,l),b||(Bi($)?setTimeout(w,$):Li(i,c,w)))})),v&&v(i,w),_||b||w())}}function Bi(e){return"number"==typeof e&&!isNaN(e)}function Ui(e){if(t(e))return!1;var r=e.fns;return n(r)?Ui(Array.isArray(r)?r[0]:r):(e._length||e.length)>1}function Vi(e,t){!0!==t.data.show&&Ri(t)}var zi=function(e){var o,a,s={},c=e.modules,u=e.nodeOps;for(o=0;o<ir.length;++o)for(s[ir[o]]=[],a=0;a<c.length;++a)n(c[a][ir[o]])&&s[ir[o]].push(c[a][ir[o]]);function l(e){var t=u.parentNode(e);n(t)&&u.removeChild(t,e)}function f(e,t,i,o,a,c,l){if(n(e.elm)&&n(c)&&(e=c[l]=me(e)),e.isRootInsert=!a,!function(e,t,i,o){var a=e.data;if(n(a)){var c=n(e.componentInstance)&&a.keepAlive;if(n(a=a.hook)&&n(a=a.init)&&a(e,!1),n(e.componentInstance))return d(e,t),v(i,e.elm,o),r(c)&&function(e,t,r,i){for(var o,a=e;a.componentInstance;)if(a=a.componentInstance._vnode,n(o=a.data)&&n(o=o.transition)){for(o=0;o<s.activate.length;++o)s.activate[o](rr,a);t.push(a);break}v(r,e.elm,i)}(e,t,i,o),!0}}(e,t,i,o)){var f=e.data,p=e.children,m=e.tag;n(m)?(e.elm=e.ns?u.createElementNS(e.ns,m):u.createElement(m,e),g(e),h(e,p,t),n(f)&&y(e,t),v(i,e.elm,o)):r(e.isComment)?(e.elm=u.createComment(e.text),v(i,e.elm,o)):(e.elm=u.createTextNode(e.text),v(i,e.elm,o))}}function d(e,t){n(e.data.pendingInsert)&&(t.push.apply(t,e.data.pendingInsert),e.data.pendingInsert=null),e.elm=e.componentInstance.$el,m(e)?(y(e,t),g(e)):(nr(e),t.push(e))}function v(e,t,r){n(e)&&(n(r)?u.parentNode(r)===e&&u.insertBefore(e,t,r):u.appendChild(e,t))}function h(e,t,n){if(Array.isArray(t))for(var r=0;r<t.length;++r)f(t[r],n,e.elm,null,!0,t,r);else i(e.text)&&u.appendChild(e.elm,u.createTextNode(String(e.text)))}function m(e){for(;e.componentInstance;)e=e.componentInstance._vnode;return n(e.tag)}function y(e,t){for(var r=0;r<s.create.length;++r)s.create[r](rr,e);n(o=e.data.hook)&&(n(o.create)&&o.create(rr,e),n(o.insert)&&t.push(e))}function g(e){var t;if(n(t=e.fnScopeId))u.setStyleScope(e.elm,t);else for(var r=e;r;)n(t=r.context)&&n(t=t.$options._scopeId)&&u.setStyleScope(e.elm,t),r=r.parent;n(t=Zt)&&t!==e.context&&t!==e.fnContext&&n(t=t.$options._scopeId)&&u.setStyleScope(e.elm,t)}function _(e,t,n,r,i,o){for(;r<=i;++r)f(n[r],o,e,t,!1,n,r)}function b(e){var t,r,i=e.data;if(n(i))for(n(t=i.hook)&&n(t=t.destroy)&&t(e),t=0;t<s.destroy.length;++t)s.destroy[t](e);if(n(t=e.children))for(r=0;r<e.children.length;++r)b(e.children[r])}function $(e,t,r){for(;t<=r;++t){var i=e[t];n(i)&&(n(i.tag)?(w(i),b(i)):l(i.elm))}}function w(e,t){if(n(t)||n(e.data)){var r,i=s.remove.length+1;for(n(t)?t.listeners+=i:t=function(e,t){function n(){0==--n.listeners&&l(e)}return n.listeners=t,n}(e.elm,i),n(r=e.componentInstance)&&n(r=r._vnode)&&n(r.data)&&w(r,t),r=0;r<s.remove.length;++r)s.remove[r](e,t);n(r=e.data.hook)&&n(r=r.remove)?r(e,t):t()}else l(e.elm)}function C(e,t,r,i){for(var o=r;o<i;o++){var a=t[o];if(n(a)&&or(e,a))return o}}function x(e,i,o,a,c,l){if(e!==i){n(i.elm)&&n(a)&&(i=a[c]=me(i));var p=i.elm=e.elm;if(r(e.isAsyncPlaceholder))n(i.asyncFactory.resolved)?O(e.elm,i,o):i.isAsyncPlaceholder=!0;else if(r(i.isStatic)&&r(e.isStatic)&&i.key===e.key&&(r(i.isCloned)||r(i.isOnce)))i.componentInstance=e.componentInstance;else{var d,v=i.data;n(v)&&n(d=v.hook)&&n(d=d.prepatch)&&d(e,i);var h=e.children,y=i.children;if(n(v)&&m(i)){for(d=0;d<s.update.length;++d)s.update[d](e,i);n(d=v.hook)&&n(d=d.update)&&d(e,i)}t(i.text)?n(h)&&n(y)?h!==y&&function(e,r,i,o,a){for(var s,c,l,p=0,d=0,v=r.length-1,h=r[0],m=r[v],y=i.length-1,g=i[0],b=i[y],w=!a;p<=v&&d<=y;)t(h)?h=r[++p]:t(m)?m=r[--v]:or(h,g)?(x(h,g,o,i,d),h=r[++p],g=i[++d]):or(m,b)?(x(m,b,o,i,y),m=r[--v],b=i[--y]):or(h,b)?(x(h,b,o,i,y),w&&u.insertBefore(e,h.elm,u.nextSibling(m.elm)),h=r[++p],b=i[--y]):or(m,g)?(x(m,g,o,i,d),w&&u.insertBefore(e,m.elm,h.elm),m=r[--v],g=i[++d]):(t(s)&&(s=ar(r,p,v)),t(c=n(g.key)?s[g.key]:C(g,r,p,v))?f(g,o,e,h.elm,!1,i,d):or(l=r[c],g)?(x(l,g,o,i,d),r[c]=void 0,w&&u.insertBefore(e,l.elm,h.elm)):f(g,o,e,h.elm,!1,i,d),g=i[++d]);p>v?_(e,t(i[y+1])?null:i[y+1].elm,i,d,y,o):d>y&&$(r,p,v)}(p,h,y,o,l):n(y)?(n(e.text)&&u.setTextContent(p,""),_(p,null,y,0,y.length-1,o)):n(h)?$(h,0,h.length-1):n(e.text)&&u.setTextContent(p,""):e.text!==i.text&&u.setTextContent(p,i.text),n(v)&&n(d=v.hook)&&n(d=d.postpatch)&&d(e,i)}}}function k(e,t,i){if(r(i)&&n(e.parent))e.parent.data.pendingInsert=t;else for(var o=0;o<t.length;++o)t[o].data.hook.insert(t[o])}var A=p("attrs,class,staticClass,staticStyle,key");function O(e,t,i,o){var a,s=t.tag,c=t.data,u=t.children;if(o=o||c&&c.pre,t.elm=e,r(t.isComment)&&n(t.asyncFactory))return t.isAsyncPlaceholder=!0,!0;if(n(c)&&(n(a=c.hook)&&n(a=a.init)&&a(t,!0),n(a=t.componentInstance)))return d(t,i),!0;if(n(s)){if(n(u))if(e.hasChildNodes())if(n(a=c)&&n(a=a.domProps)&&n(a=a.innerHTML)){if(a!==e.innerHTML)return!1}else{for(var l=!0,f=e.firstChild,p=0;p<u.length;p++){if(!f||!O(f,u[p],i,o)){l=!1;break}f=f.nextSibling}if(!l||f)return!1}else h(t,u,i);if(n(c)){var v=!1;for(var m in c)if(!A(m)){v=!0,y(t,i);break}!v&&c.class&&tt(c.class)}}else e.data!==t.text&&(e.data=t.text);return!0}return function(e,i,o,a){if(!t(i)){var c,l=!1,p=[];if(t(e))l=!0,f(i,p);else{var d=n(e.nodeType);if(!d&&or(e,i))x(e,i,p,null,null,a);else{if(d){if(1===e.nodeType&&e.hasAttribute(L)&&(e.removeAttribute(L),o=!0),r(o)&&O(e,i,p))return k(i,p,!0),e;c=e,e=new pe(u.tagName(c).toLowerCase(),{},[],void 0,c)}var v=e.elm,h=u.parentNode(v);if(f(i,p,v._leaveCb?null:h,u.nextSibling(v)),n(i.parent))for(var y=i.parent,g=m(i);y;){for(var _=0;_<s.destroy.length;++_)s.destroy[_](y);if(y.elm=i.elm,g){for(var w=0;w<s.create.length;++w)s.create[w](rr,y);var C=y.data.hook.insert;if(C.merged)for(var A=1;A<C.fns.length;A++)C.fns[A]()}else nr(y);y=y.parent}n(h)?$([e],0,0):n(e.tag)&&b(e)}}return k(i,p,l),i.elm}n(e)&&b(e)}}({nodeOps:er,modules:[yr,kr,ri,ai,yi,V?{create:Vi,activate:Vi,remove:function(e,t){!0!==e.data.show?Hi(e,t):t()}}:{}].concat(dr)});W&&document.addEventListener("selectionchange",function(){var e=document.activeElement;e&&e.vmodel&&Yi(e,"input")});var Ki={inserted:function(e,t,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?ot(n,"postpatch",function(){Ki.componentUpdated(e,t,n)}):Ji(e,t,n.context),e._vOptions=[].map.call(e.options,Zi)):("textarea"===n.tag||Yn(e.type))&&(e._vModifiers=t.modifiers,t.modifiers.lazy||(e.addEventListener("compositionstart",Gi),e.addEventListener("compositionend",Xi),e.addEventListener("change",Xi),W&&(e.vmodel=!0)))},componentUpdated:function(e,t,n){if("select"===n.tag){Ji(e,t,n.context);var r=e._vOptions,i=e._vOptions=[].map.call(e.options,Zi);if(i.some(function(e,t){return!E(e,r[t])}))(e.multiple?t.value.some(function(e){return Wi(e,i)}):t.value!==t.oldValue&&Wi(t.value,i))&&Yi(e,"change")}}};function Ji(e,t,n){qi(e,t,n),(q||Z)&&setTimeout(function(){qi(e,t,n)},0)}function qi(e,t,n){var r=t.value,i=e.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,c=e.options.length;s<c;s++)if(a=e.options[s],i)o=j(r,Zi(a))>-1,a.selected!==o&&(a.selected=o);else if(E(Zi(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function Wi(e,t){return t.every(function(t){return!E(t,e)})}function Zi(e){return"_value"in e?e._value:e.value}function Gi(e){e.target.composing=!0}function Xi(e){e.target.composing&&(e.target.composing=!1,Yi(e.target,"input"))}function Yi(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function Qi(e){return!e.componentInstance||e.data&&e.data.transition?e:Qi(e.componentInstance._vnode)}var eo={model:Ki,show:{bind:function(e,t,n){var r=t.value,i=(n=Qi(n)).data&&n.data.transition,o=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;r&&i?(n.data.show=!0,Ri(n,function(){e.style.display=o})):e.style.display=r?o:"none"},update:function(e,t,n){var r=t.value;!r!=!t.oldValue&&((n=Qi(n)).data&&n.data.transition?(n.data.show=!0,r?Ri(n,function(){e.style.display=e.__vOriginalDisplay}):Hi(n,function(){e.style.display="none"})):e.style.display=r?e.__vOriginalDisplay:"none")},unbind:function(e,t,n,r,i){i||(e.style.display=e.__vOriginalDisplay)}}},to={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function no(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?no(zt(t.children)):e}function ro(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var i=n._parentListeners;for(var o in i)t[b(o)]=i[o];return t}function io(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var oo=function(e){return e.tag||pt(e)},ao=function(e){return"show"===e.name},so={name:"transition",props:to,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(oo)).length){var r=this.mode,o=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return o;var a=no(o);if(!a)return o;if(this._leaving)return io(e,o);var s="__transition-"+this._uid+"-";a.key=null==a.key?a.isComment?s+"comment":s+a.tag:i(a.key)?0===String(a.key).indexOf(s)?a.key:s+a.key:a.key;var c=(a.data||(a.data={})).transition=ro(this),u=this._vnode,l=no(u);if(a.data.directives&&a.data.directives.some(ao)&&(a.data.show=!0),l&&l.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(a,l)&&!pt(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=A({},c);if("out-in"===r)return this._leaving=!0,ot(f,"afterLeave",function(){t._leaving=!1,t.$forceUpdate()}),io(e,o);if("in-out"===r){if(pt(a))return u;var p,d=function(){p()};ot(c,"afterEnter",d),ot(c,"enterCancelled",d),ot(f,"delayLeave",function(e){p=e})}}return o}}},co=A({tag:String,moveClass:String},to);function uo(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function lo(e){e.data.newPos=e.elm.getBoundingClientRect()}function fo(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,i=t.top-n.top;if(r||i){e.data.moved=!0;var o=e.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}delete co.mode;var po={Transition:so,TransitionGroup:{props:co,beforeMount:function(){var e=this,t=this._update;this._update=function(n,r){var i=Gt(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,i(),t.call(e,n,r)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=ro(this),s=0;s<i.length;s++){var c=i[s];c.tag&&null!=c.key&&0!==String(c.key).indexOf("__vlist")&&(o.push(c),n[c.key]=c,(c.data||(c.data={})).transition=a)}if(r){for(var u=[],l=[],f=0;f<r.length;f++){var p=r[f];p.data.transition=a,p.data.pos=p.elm.getBoundingClientRect(),n[p.key]?u.push(p):l.push(p)}this.kept=e(t,null,u),this.removed=l}return e(t,null,o)},updated:function(){var e=this.prevChildren,t=this.moveClass||(this.name||"v")+"-move";e.length&&this.hasMove(e[0].elm,t)&&(e.forEach(uo),e.forEach(lo),e.forEach(fo),this._reflow=document.body.offsetHeight,e.forEach(function(e){if(e.data.moved){var n=e.elm,r=n.style;ji(n,t),r.transform=r.WebkitTransform=r.transitionDuration="",n.addEventListener(Oi,n._moveCb=function e(r){r&&r.target!==n||r&&!/transform$/.test(r.propertyName)||(n.removeEventListener(Oi,e),n._moveCb=null,Di(n,t))})}}))},methods:{hasMove:function(e,t){if(!Ci)return!1;if(this._hasMove)return this._hasMove;var n=e.cloneNode();e._transitionClasses&&e._transitionClasses.forEach(function(e){bi(n,e)}),_i(n,t),n.style.display="none",this.$el.appendChild(n);var r=Mi(n);return this.$el.removeChild(n),this._hasMove=r.hasTransform}}}};Cn.config.mustUseProp=Dn,Cn.config.isReservedTag=Zn,Cn.config.isReservedAttr=En,Cn.config.getTagNamespace=Gn,Cn.config.isUnknownElement=function(e){if(!V)return!0;if(Zn(e))return!1;if(e=e.toLowerCase(),null!=Xn[e])return Xn[e];var t=document.createElement(e);return e.indexOf("-")>-1?Xn[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Xn[e]=/HTMLUnknownElement/.test(t.toString())},A(Cn.options.directives,eo),A(Cn.options.components,po),Cn.prototype.__patch__=V?zi:S,Cn.prototype.$mount=function(e,t){return function(e,t,n){var r;return e.$el=t,e.$options.render||(e.$options.render=ve),Qt(e,"beforeMount"),r=function(){e._update(e._render(),n)},new pn(e,r,S,{before:function(){e._isMounted&&!e._isDestroyed&&Qt(e,"beforeUpdate")}},!0),n=!1,null==e.$vnode&&(e._isMounted=!0,Qt(e,"mounted")),e}(this,e=e&&V?Qn(e):void 0,t)},V&&setTimeout(function(){F.devtools&&ne&&ne.emit("init",Cn)},0);var vo=/\{\{((?:.|\r?\n)+?)\}\}/g,ho=/[-.*+?^${}()|[\]\/\\]/g,mo=g(function(e){var t=e[0].replace(ho,"\\$&"),n=e[1].replace(ho,"\\$&");return new RegExp(t+"((?:.|\\n)+?)"+n,"g")});var yo={staticKeys:["staticClass"],transformNode:function(e,t){t.warn;var n=Pr(e,"class");n&&(e.staticClass=JSON.stringify(n));var r=Fr(e,"class",!1);r&&(e.classBinding=r)},genData:function(e){var t="";return e.staticClass&&(t+="staticClass:"+e.staticClass+","),e.classBinding&&(t+="class:"+e.classBinding+","),t}};var go,_o={staticKeys:["staticStyle"],transformNode:function(e,t){t.warn;var n=Pr(e,"style");n&&(e.staticStyle=JSON.stringify(si(n)));var r=Fr(e,"style",!1);r&&(e.styleBinding=r)},genData:function(e){var t="";return e.staticStyle&&(t+="staticStyle:"+e.staticStyle+","),e.styleBinding&&(t+="style:("+e.styleBinding+"),"),t}},bo=function(e){return(go=go||document.createElement("div")).innerHTML=e,go.textContent},$o=p("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),wo=p("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),Co=p("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),xo=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,ko=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+?\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,Ao="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+P.source+"]*",Oo="((?:"+Ao+"\\:)?"+Ao+")",So=new RegExp("^<"+Oo),To=/^\s*(\/?)>/,No=new RegExp("^<\\/"+Oo+"[^>]*>"),Eo=/^<!DOCTYPE [^>]+>/i,jo=/^<!\--/,Do=/^<!\[/,Lo=p("script,style,textarea",!0),Io={},Mo={"<":"<",">":">",""":'"',"&":"&"," ":"\n","	":"\t","'":"'"},Fo=/&(?:lt|gt|quot|amp|#39);/g,Po=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,Ro=p("pre,textarea",!0),Ho=function(e,t){return e&&Ro(e)&&"\n"===t[0]};function Bo(e,t){var n=t?Po:Fo;return e.replace(n,function(e){return Mo[e]})}var Uo,Vo,zo,Ko,Jo,qo,Wo,Zo,Go=/^@|^v-on:/,Xo=/^v-|^@|^:|^#/,Yo=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Qo=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,ea=/^\(|\)$/g,ta=/^\[.*\]$/,na=/:(.*)$/,ra=/^:|^\.|^v-bind:/,ia=/\.[^.\]]+(?=[^\]]*$)/g,oa=/^v-slot(:|$)|^#/,aa=/[\r\n]/,sa=/[ \f\t\r\n]+/g,ca=g(bo),ua="_empty_";function la(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:ya(t),rawAttrsMap:{},parent:n,children:[]}}function fa(e,t){Uo=t.warn||Tr,qo=t.isPreTag||T,Wo=t.mustUseProp||T,Zo=t.getTagNamespace||T;t.isReservedTag;zo=Nr(t.modules,"transformNode"),Ko=Nr(t.modules,"preTransformNode"),Jo=Nr(t.modules,"postTransformNode"),Vo=t.delimiters;var n,r,i=[],o=!1!==t.preserveWhitespace,a=t.whitespace,s=!1,c=!1;function u(e){if(l(e),s||e.processed||(e=pa(e,t)),i.length||e===n||n.if&&(e.elseif||e.else)&&va(n,{exp:e.elseif,block:e}),r&&!e.forbidden)if(e.elseif||e.else)a=e,(u=function(e){var t=e.length;for(;t--;){if(1===e[t].type)return e[t];e.pop()}}(r.children))&&u.if&&va(u,{exp:a.elseif,block:a});else{if(e.slotScope){var o=e.slotTarget||'"default"';(r.scopedSlots||(r.scopedSlots={}))[o]=e}r.children.push(e),e.parent=r}var a,u;e.children=e.children.filter(function(e){return!e.slotScope}),l(e),e.pre&&(s=!1),qo(e.tag)&&(c=!1);for(var f=0;f<Jo.length;f++)Jo[f](e,t)}function l(e){if(!c)for(var t;(t=e.children[e.children.length-1])&&3===t.type&&" "===t.text;)e.children.pop()}return function(e,t){for(var n,r,i=[],o=t.expectHTML,a=t.isUnaryTag||T,s=t.canBeLeftOpenTag||T,c=0;e;){if(n=e,r&&Lo(r)){var u=0,l=r.toLowerCase(),f=Io[l]||(Io[l]=new RegExp("([\\s\\S]*?)(</"+l+"[^>]*>)","i")),p=e.replace(f,function(e,n,r){return u=r.length,Lo(l)||"noscript"===l||(n=n.replace(/<!\--([\s\S]*?)-->/g,"$1").replace(/<!\[CDATA\[([\s\S]*?)]]>/g,"$1")),Ho(l,n)&&(n=n.slice(1)),t.chars&&t.chars(n),""});c+=e.length-p.length,e=p,A(l,c-u,c)}else{var d=e.indexOf("<");if(0===d){if(jo.test(e)){var v=e.indexOf("--\x3e");if(v>=0){t.shouldKeepComment&&t.comment(e.substring(4,v),c,c+v+3),C(v+3);continue}}if(Do.test(e)){var h=e.indexOf("]>");if(h>=0){C(h+2);continue}}var m=e.match(Eo);if(m){C(m[0].length);continue}var y=e.match(No);if(y){var g=c;C(y[0].length),A(y[1],g,c);continue}var _=x();if(_){k(_),Ho(_.tagName,e)&&C(1);continue}}var b=void 0,$=void 0,w=void 0;if(d>=0){for($=e.slice(d);!(No.test($)||So.test($)||jo.test($)||Do.test($)||(w=$.indexOf("<",1))<0);)d+=w,$=e.slice(d);b=e.substring(0,d)}d<0&&(b=e),b&&C(b.length),t.chars&&b&&t.chars(b,c-b.length,c)}if(e===n){t.chars&&t.chars(e);break}}function C(t){c+=t,e=e.substring(t)}function x(){var t=e.match(So);if(t){var n,r,i={tagName:t[1],attrs:[],start:c};for(C(t[0].length);!(n=e.match(To))&&(r=e.match(ko)||e.match(xo));)r.start=c,C(r[0].length),r.end=c,i.attrs.push(r);if(n)return i.unarySlash=n[1],C(n[0].length),i.end=c,i}}function k(e){var n=e.tagName,c=e.unarySlash;o&&("p"===r&&Co(n)&&A(r),s(n)&&r===n&&A(n));for(var u=a(n)||!!c,l=e.attrs.length,f=new Array(l),p=0;p<l;p++){var d=e.attrs[p],v=d[3]||d[4]||d[5]||"",h="a"===n&&"href"===d[1]?t.shouldDecodeNewlinesForHref:t.shouldDecodeNewlines;f[p]={name:d[1],value:Bo(v,h)}}u||(i.push({tag:n,lowerCasedTag:n.toLowerCase(),attrs:f,start:e.start,end:e.end}),r=n),t.start&&t.start(n,f,u,e.start,e.end)}function A(e,n,o){var a,s;if(null==n&&(n=c),null==o&&(o=c),e)for(s=e.toLowerCase(),a=i.length-1;a>=0&&i[a].lowerCasedTag!==s;a--);else a=0;if(a>=0){for(var u=i.length-1;u>=a;u--)t.end&&t.end(i[u].tag,n,o);i.length=a,r=a&&i[a-1].tag}else"br"===s?t.start&&t.start(e,[],!0,n,o):"p"===s&&(t.start&&t.start(e,[],!1,n,o),t.end&&t.end(e,n,o))}A()}(e,{warn:Uo,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldDecodeNewlinesForHref:t.shouldDecodeNewlinesForHref,shouldKeepComment:t.comments,outputSourceRange:t.outputSourceRange,start:function(e,o,a,l,f){var p=r&&r.ns||Zo(e);q&&"svg"===p&&(o=function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];ga.test(r.name)||(r.name=r.name.replace(_a,""),t.push(r))}return t}(o));var d,v=la(e,o,r);p&&(v.ns=p),"style"!==(d=v).tag&&("script"!==d.tag||d.attrsMap.type&&"text/javascript"!==d.attrsMap.type)||te()||(v.forbidden=!0);for(var h=0;h<Ko.length;h++)v=Ko[h](v,t)||v;s||(!function(e){null!=Pr(e,"v-pre")&&(e.pre=!0)}(v),v.pre&&(s=!0)),qo(v.tag)&&(c=!0),s?function(e){var t=e.attrsList,n=t.length;if(n)for(var r=e.attrs=new Array(n),i=0;i<n;i++)r[i]={name:t[i].name,value:JSON.stringify(t[i].value)},null!=t[i].start&&(r[i].start=t[i].start,r[i].end=t[i].end);else e.pre||(e.plain=!0)}(v):v.processed||(da(v),function(e){var t=Pr(e,"v-if");if(t)e.if=t,va(e,{exp:t,block:e});else{null!=Pr(e,"v-else")&&(e.else=!0);var n=Pr(e,"v-else-if");n&&(e.elseif=n)}}(v),function(e){null!=Pr(e,"v-once")&&(e.once=!0)}(v)),n||(n=v),a?u(v):(r=v,i.push(v))},end:function(e,t,n){var o=i[i.length-1];i.length-=1,r=i[i.length-1],u(o)},chars:function(e,t,n){if(r&&(!q||"textarea"!==r.tag||r.attrsMap.placeholder!==e)){var i,u,l,f=r.children;if(e=c||e.trim()?"script"===(i=r).tag||"style"===i.tag?e:ca(e):f.length?a?"condense"===a&&aa.test(e)?"":" ":o?" ":"":"")c||"condense"!==a||(e=e.replace(sa," ")),!s&&" "!==e&&(u=function(e,t){var n=t?mo(t):vo;if(n.test(e)){for(var r,i,o,a=[],s=[],c=n.lastIndex=0;r=n.exec(e);){(i=r.index)>c&&(s.push(o=e.slice(c,i)),a.push(JSON.stringify(o)));var u=Or(r[1].trim());a.push("_s("+u+")"),s.push({"@binding":u}),c=i+r[0].length}return c<e.length&&(s.push(o=e.slice(c)),a.push(JSON.stringify(o))),{expression:a.join("+"),tokens:s}}}(e,Vo))?l={type:2,expression:u.expression,tokens:u.tokens,text:e}:" "===e&&f.length&&" "===f[f.length-1].text||(l={type:3,text:e}),l&&f.push(l)}},comment:function(e,t,n){if(r){var i={type:3,text:e,isComment:!0};r.children.push(i)}}}),n}function pa(e,t){var n,r;(r=Fr(n=e,"key"))&&(n.key=r),e.plain=!e.key&&!e.scopedSlots&&!e.attrsList.length,function(e){var t=Fr(e,"ref");t&&(e.ref=t,e.refInFor=function(e){var t=e;for(;t;){if(void 0!==t.for)return!0;t=t.parent}return!1}(e))}(e),function(e){var t;"template"===e.tag?(t=Pr(e,"scope"),e.slotScope=t||Pr(e,"slot-scope")):(t=Pr(e,"slot-scope"))&&(e.slotScope=t);var n=Fr(e,"slot");n&&(e.slotTarget='""'===n?'"default"':n,e.slotTargetDynamic=!(!e.attrsMap[":slot"]&&!e.attrsMap["v-bind:slot"]),"template"===e.tag||e.slotScope||jr(e,"slot",n,function(e,t){return e.rawAttrsMap[":"+t]||e.rawAttrsMap["v-bind:"+t]||e.rawAttrsMap[t]}(e,"slot")));if("template"===e.tag){var r=Rr(e,oa);if(r){var i=ha(r),o=i.name,a=i.dynamic;e.slotTarget=o,e.slotTargetDynamic=a,e.slotScope=r.value||ua}}else{var s=Rr(e,oa);if(s){var c=e.scopedSlots||(e.scopedSlots={}),u=ha(s),l=u.name,f=u.dynamic,p=c[l]=la("template",[],e);p.slotTarget=l,p.slotTargetDynamic=f,p.children=e.children.filter(function(e){if(!e.slotScope)return e.parent=p,!0}),p.slotScope=s.value||ua,e.children=[],e.plain=!1}}}(e),function(e){"slot"===e.tag&&(e.slotName=Fr(e,"name"))}(e),function(e){var t;(t=Fr(e,"is"))&&(e.component=t);null!=Pr(e,"inline-template")&&(e.inlineTemplate=!0)}(e);for(var i=0;i<zo.length;i++)e=zo[i](e,t)||e;return function(e){var t,n,r,i,o,a,s,c,u=e.attrsList;for(t=0,n=u.length;t<n;t++)if(r=i=u[t].name,o=u[t].value,Xo.test(r))if(e.hasBindings=!0,(a=ma(r.replace(Xo,"")))&&(r=r.replace(ia,"")),ra.test(r))r=r.replace(ra,""),o=Or(o),(c=ta.test(r))&&(r=r.slice(1,-1)),a&&(a.prop&&!c&&"innerHtml"===(r=b(r))&&(r="innerHTML"),a.camel&&!c&&(r=b(r)),a.sync&&(s=Ur(o,"$event"),c?Mr(e,'"update:"+('+r+")",s,null,!1,0,u[t],!0):(Mr(e,"update:"+b(r),s,null,!1,0,u[t]),C(r)!==b(r)&&Mr(e,"update:"+C(r),s,null,!1,0,u[t])))),a&&a.prop||!e.component&&Wo(e.tag,e.attrsMap.type,r)?Er(e,r,o,u[t],c):jr(e,r,o,u[t],c);else if(Go.test(r))r=r.replace(Go,""),(c=ta.test(r))&&(r=r.slice(1,-1)),Mr(e,r,o,a,!1,0,u[t],c);else{var l=(r=r.replace(Xo,"")).match(na),f=l&&l[1];c=!1,f&&(r=r.slice(0,-(f.length+1)),ta.test(f)&&(f=f.slice(1,-1),c=!0)),Lr(e,r,i,o,f,c,a,u[t])}else jr(e,r,JSON.stringify(o),u[t]),!e.component&&"muted"===r&&Wo(e.tag,e.attrsMap.type,r)&&Er(e,r,"true",u[t])}(e),e}function da(e){var t;if(t=Pr(e,"v-for")){var n=function(e){var t=e.match(Yo);if(!t)return;var n={};n.for=t[2].trim();var r=t[1].trim().replace(ea,""),i=r.match(Qo);i?(n.alias=r.replace(Qo,"").trim(),n.iterator1=i[1].trim(),i[2]&&(n.iterator2=i[2].trim())):n.alias=r;return n}(t);n&&A(e,n)}}function va(e,t){e.ifConditions||(e.ifConditions=[]),e.ifConditions.push(t)}function ha(e){var t=e.name.replace(oa,"");return t||"#"!==e.name[0]&&(t="default"),ta.test(t)?{name:t.slice(1,-1),dynamic:!0}:{name:'"'+t+'"',dynamic:!1}}function ma(e){var t=e.match(ia);if(t){var n={};return t.forEach(function(e){n[e.slice(1)]=!0}),n}}function ya(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n].name]=e[n].value;return t}var ga=/^xmlns:NS\d+/,_a=/^NS\d+:/;function ba(e){return la(e.tag,e.attrsList.slice(),e.parent)}var $a=[yo,_o,{preTransformNode:function(e,t){if("input"===e.tag){var n,r=e.attrsMap;if(!r["v-model"])return;if((r[":type"]||r["v-bind:type"])&&(n=Fr(e,"type")),r.type||n||!r["v-bind"]||(n="("+r["v-bind"]+").type"),n){var i=Pr(e,"v-if",!0),o=i?"&&("+i+")":"",a=null!=Pr(e,"v-else",!0),s=Pr(e,"v-else-if",!0),c=ba(e);da(c),Dr(c,"type","checkbox"),pa(c,t),c.processed=!0,c.if="("+n+")==='checkbox'"+o,va(c,{exp:c.if,block:c});var u=ba(e);Pr(u,"v-for",!0),Dr(u,"type","radio"),pa(u,t),va(c,{exp:"("+n+")==='radio'"+o,block:u});var l=ba(e);return Pr(l,"v-for",!0),Dr(l,":type",n),pa(l,t),va(c,{exp:i,block:l}),a?c.else=!0:s&&(c.elseif=s),c}}}}];var wa,Ca,xa={expectHTML:!0,modules:$a,directives:{model:function(e,t,n){var r=t.value,i=t.modifiers,o=e.tag,a=e.attrsMap.type;if(e.component)return Br(e,r,i),!1;if("select"===o)!function(e,t,n){var r='var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+(n&&n.number?"_n(val)":"val")+"});";r=r+" "+Ur(t,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),Mr(e,"change",r,null,!0)}(e,r,i);else if("input"===o&&"checkbox"===a)!function(e,t,n){var r=n&&n.number,i=Fr(e,"value")||"null",o=Fr(e,"true-value")||"true",a=Fr(e,"false-value")||"false";Er(e,"checked","Array.isArray("+t+")?_i("+t+","+i+")>-1"+("true"===o?":("+t+")":":_q("+t+","+o+")")),Mr(e,"change","var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+o+"):("+a+");if(Array.isArray($$a)){var $$v="+(r?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Ur(t,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Ur(t,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Ur(t,"$$c")+"}",null,!0)}(e,r,i);else if("input"===o&&"radio"===a)!function(e,t,n){var r=n&&n.number,i=Fr(e,"value")||"null";Er(e,"checked","_q("+t+","+(i=r?"_n("+i+")":i)+")"),Mr(e,"change",Ur(t,i),null,!0)}(e,r,i);else if("input"===o||"textarea"===o)!function(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,c=!o&&"range"!==r,u=o?"change":"range"===r?Zr:"input",l="$event.target.value";s&&(l="$event.target.value.trim()"),a&&(l="_n("+l+")");var f=Ur(t,l);c&&(f="if($event.target.composing)return;"+f),Er(e,"value","("+t+")"),Mr(e,u,f,null,!0),(s||a)&&Mr(e,"blur","$forceUpdate()")}(e,r,i);else if(!F.isReservedTag(o))return Br(e,r,i),!1;return!0},text:function(e,t){t.value&&Er(e,"textContent","_s("+t.value+")",t)},html:function(e,t){t.value&&Er(e,"innerHTML","_s("+t.value+")",t)}},isPreTag:function(e){return"pre"===e},isUnaryTag:$o,mustUseProp:Dn,canBeLeftOpenTag:wo,isReservedTag:Zn,getTagNamespace:Gn,staticKeys:function(e){return e.reduce(function(e,t){return e.concat(t.staticKeys||[])},[]).join(",")}($a)},ka=g(function(e){return p("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(e?","+e:""))});function Aa(e,t){e&&(wa=ka(t.staticKeys||""),Ca=t.isReservedTag||T,function e(t){t.static=function(e){if(2===e.type)return!1;if(3===e.type)return!0;return!(!e.pre&&(e.hasBindings||e.if||e.for||d(e.tag)||!Ca(e.tag)||function(e){for(;e.parent;){if("template"!==(e=e.parent).tag)return!1;if(e.for)return!0}return!1}(e)||!Object.keys(e).every(wa)))}(t);if(1===t.type){if(!Ca(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var n=0,r=t.children.length;n<r;n++){var i=t.children[n];e(i),i.static||(t.static=!1)}if(t.ifConditions)for(var o=1,a=t.ifConditions.length;o<a;o++){var s=t.ifConditions[o].block;e(s),s.static||(t.static=!1)}}}(e),function e(t,n){if(1===t.type){if((t.static||t.once)&&(t.staticInFor=n),t.static&&t.children.length&&(1!==t.children.length||3!==t.children[0].type))return void(t.staticRoot=!0);if(t.staticRoot=!1,t.children)for(var r=0,i=t.children.length;r<i;r++)e(t.children[r],n||!!t.for);if(t.ifConditions)for(var o=1,a=t.ifConditions.length;o<a;o++)e(t.ifConditions[o].block,n)}}(e,!1))}var Oa=/^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/,Sa=/\([^)]*?\);*$/,Ta=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,Na={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Ea={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},ja=function(e){return"if("+e+")return null;"},Da={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:ja("$event.target !== $event.currentTarget"),ctrl:ja("!$event.ctrlKey"),shift:ja("!$event.shiftKey"),alt:ja("!$event.altKey"),meta:ja("!$event.metaKey"),left:ja("'button' in $event && $event.button !== 0"),middle:ja("'button' in $event && $event.button !== 1"),right:ja("'button' in $event && $event.button !== 2")};function La(e,t){var n=t?"nativeOn:":"on:",r="",i="";for(var o in e){var a=Ia(e[o]);e[o]&&e[o].dynamic?i+=o+","+a+",":r+='"'+o+'":'+a+","}return r="{"+r.slice(0,-1)+"}",i?n+"_d("+r+",["+i.slice(0,-1)+"])":n+r}function Ia(e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map(function(e){return Ia(e)}).join(",")+"]";var t=Ta.test(e.value),n=Oa.test(e.value),r=Ta.test(e.value.replace(Sa,""));if(e.modifiers){var i="",o="",a=[];for(var s in e.modifiers)if(Da[s])o+=Da[s],Na[s]&&a.push(s);else if("exact"===s){var c=e.modifiers;o+=ja(["ctrl","shift","alt","meta"].filter(function(e){return!c[e]}).map(function(e){return"$event."+e+"Key"}).join("||"))}else a.push(s);return a.length&&(i+=function(e){return"if(!$event.type.indexOf('key')&&"+e.map(Ma).join("&&")+")return null;"}(a)),o&&(i+=o),"function($event){"+i+(t?"return "+e.value+".apply(null, arguments)":n?"return ("+e.value+").apply(null, arguments)":r?"return "+e.value:e.value)+"}"}return t||n?e.value:"function($event){"+(r?"return "+e.value:e.value)+"}"}function Ma(e){var t=parseInt(e,10);if(t)return"$event.keyCode!=="+t;var n=Na[e],r=Ea[e];return"_k($event.keyCode,"+JSON.stringify(e)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(r)+")"}var Fa={on:function(e,t){e.wrapListeners=function(e){return"_g("+e+","+t.value+")"}},bind:function(e,t){e.wrapData=function(n){return"_b("+n+",'"+e.tag+"',"+t.value+","+(t.modifiers&&t.modifiers.prop?"true":"false")+(t.modifiers&&t.modifiers.sync?",true":"")+")"}},cloak:S},Pa=function(e){this.options=e,this.warn=e.warn||Tr,this.transforms=Nr(e.modules,"transformCode"),this.dataGenFns=Nr(e.modules,"genData"),this.directives=A(A({},Fa),e.directives);var t=e.isReservedTag||T;this.maybeComponent=function(e){return!!e.component||!t(e.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function Ra(e,t){var n=new Pa(t);return{render:"with(this){return "+(e?"script"===e.tag?"null":Ha(e,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function Ha(e,t){if(e.parent&&(e.pre=e.pre||e.parent.pre),e.staticRoot&&!e.staticProcessed)return Ba(e,t);if(e.once&&!e.onceProcessed)return Ua(e,t);if(e.for&&!e.forProcessed)return za(e,t);if(e.if&&!e.ifProcessed)return Va(e,t);if("template"!==e.tag||e.slotTarget||t.pre){if("slot"===e.tag)return function(e,t){var n=e.slotName||'"default"',r=Wa(e,t),i="_t("+n+(r?",function(){return "+r+"}":""),o=e.attrs||e.dynamicAttrs?Xa((e.attrs||[]).concat(e.dynamicAttrs||[]).map(function(e){return{name:b(e.name),value:e.value,dynamic:e.dynamic}})):null,a=e.attrsMap["v-bind"];!o&&!a||r||(i+=",null");o&&(i+=","+o);a&&(i+=(o?"":",null")+","+a);return i+")"}(e,t);var n;if(e.component)n=function(e,t,n){var r=t.inlineTemplate?null:Wa(t,n,!0);return"_c("+e+","+Ka(t,n)+(r?","+r:"")+")"}(e.component,e,t);else{var r;(!e.plain||e.pre&&t.maybeComponent(e))&&(r=Ka(e,t));var i=e.inlineTemplate?null:Wa(e,t,!0);n="_c('"+e.tag+"'"+(r?","+r:"")+(i?","+i:"")+")"}for(var o=0;o<t.transforms.length;o++)n=t.transforms[o](e,n);return n}return Wa(e,t)||"void 0"}function Ba(e,t){e.staticProcessed=!0;var n=t.pre;return e.pre&&(t.pre=e.pre),t.staticRenderFns.push("with(this){return "+Ha(e,t)+"}"),t.pre=n,"_m("+(t.staticRenderFns.length-1)+(e.staticInFor?",true":"")+")"}function Ua(e,t){if(e.onceProcessed=!0,e.if&&!e.ifProcessed)return Va(e,t);if(e.staticInFor){for(var n="",r=e.parent;r;){if(r.for){n=r.key;break}r=r.parent}return n?"_o("+Ha(e,t)+","+t.onceId+++","+n+")":Ha(e,t)}return Ba(e,t)}function Va(e,t,n,r){return e.ifProcessed=!0,function e(t,n,r,i){if(!t.length)return i||"_e()";var o=t.shift();return o.exp?"("+o.exp+")?"+a(o.block)+":"+e(t,n,r,i):""+a(o.block);function a(e){return r?r(e,n):e.once?Ua(e,n):Ha(e,n)}}(e.ifConditions.slice(),t,n,r)}function za(e,t,n,r){var i=e.for,o=e.alias,a=e.iterator1?","+e.iterator1:"",s=e.iterator2?","+e.iterator2:"";return e.forProcessed=!0,(r||"_l")+"(("+i+"),function("+o+a+s+"){return "+(n||Ha)(e,t)+"})"}function Ka(e,t){var n="{",r=function(e,t){var n=e.directives;if(!n)return;var r,i,o,a,s="directives:[",c=!1;for(r=0,i=n.length;r<i;r++){o=n[r],a=!0;var u=t.directives[o.name];u&&(a=!!u(e,o,t.warn)),a&&(c=!0,s+='{name:"'+o.name+'",rawName:"'+o.rawName+'"'+(o.value?",value:("+o.value+"),expression:"+JSON.stringify(o.value):"")+(o.arg?",arg:"+(o.isDynamicArg?o.arg:'"'+o.arg+'"'):"")+(o.modifiers?",modifiers:"+JSON.stringify(o.modifiers):"")+"},")}if(c)return s.slice(0,-1)+"]"}(e,t);r&&(n+=r+","),e.key&&(n+="key:"+e.key+","),e.ref&&(n+="ref:"+e.ref+","),e.refInFor&&(n+="refInFor:true,"),e.pre&&(n+="pre:true,"),e.component&&(n+='tag:"'+e.tag+'",');for(var i=0;i<t.dataGenFns.length;i++)n+=t.dataGenFns[i](e);if(e.attrs&&(n+="attrs:"+Xa(e.attrs)+","),e.props&&(n+="domProps:"+Xa(e.props)+","),e.events&&(n+=La(e.events,!1)+","),e.nativeEvents&&(n+=La(e.nativeEvents,!0)+","),e.slotTarget&&!e.slotScope&&(n+="slot:"+e.slotTarget+","),e.scopedSlots&&(n+=function(e,t,n){var r=e.for||Object.keys(t).some(function(e){var n=t[e];return n.slotTargetDynamic||n.if||n.for||Ja(n)}),i=!!e.if;if(!r)for(var o=e.parent;o;){if(o.slotScope&&o.slotScope!==ua||o.for){r=!0;break}o.if&&(i=!0),o=o.parent}var a=Object.keys(t).map(function(e){return qa(t[e],n)}).join(",");return"scopedSlots:_u(["+a+"]"+(r?",null,true":"")+(!r&&i?",null,false,"+function(e){var t=5381,n=e.length;for(;n;)t=33*t^e.charCodeAt(--n);return t>>>0}(a):"")+")"}(e,e.scopedSlots,t)+","),e.model&&(n+="model:{value:"+e.model.value+",callback:"+e.model.callback+",expression:"+e.model.expression+"},"),e.inlineTemplate){var o=function(e,t){var n=e.children[0];if(n&&1===n.type){var r=Ra(n,t.options);return"inlineTemplate:{render:function(){"+r.render+"},staticRenderFns:["+r.staticRenderFns.map(function(e){return"function(){"+e+"}"}).join(",")+"]}"}}(e,t);o&&(n+=o+",")}return n=n.replace(/,$/,"")+"}",e.dynamicAttrs&&(n="_b("+n+',"'+e.tag+'",'+Xa(e.dynamicAttrs)+")"),e.wrapData&&(n=e.wrapData(n)),e.wrapListeners&&(n=e.wrapListeners(n)),n}function Ja(e){return 1===e.type&&("slot"===e.tag||e.children.some(Ja))}function qa(e,t){var n=e.attrsMap["slot-scope"];if(e.if&&!e.ifProcessed&&!n)return Va(e,t,qa,"null");if(e.for&&!e.forProcessed)return za(e,t,qa);var r=e.slotScope===ua?"":String(e.slotScope),i="function("+r+"){return "+("template"===e.tag?e.if&&n?"("+e.if+")?"+(Wa(e,t)||"undefined")+":undefined":Wa(e,t)||"undefined":Ha(e,t))+"}",o=r?"":",proxy:true";return"{key:"+(e.slotTarget||'"default"')+",fn:"+i+o+"}"}function Wa(e,t,n,r,i){var o=e.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag){var s=n?t.maybeComponent(a)?",1":",0":"";return""+(r||Ha)(a,t)+s}var c=n?function(e,t){for(var n=0,r=0;r<e.length;r++){var i=e[r];if(1===i.type){if(Za(i)||i.ifConditions&&i.ifConditions.some(function(e){return Za(e.block)})){n=2;break}(t(i)||i.ifConditions&&i.ifConditions.some(function(e){return t(e.block)}))&&(n=1)}}return n}(o,t.maybeComponent):0,u=i||Ga;return"["+o.map(function(e){return u(e,t)}).join(",")+"]"+(c?","+c:"")}}function Za(e){return void 0!==e.for||"template"===e.tag||"slot"===e.tag}function Ga(e,t){return 1===e.type?Ha(e,t):3===e.type&&e.isComment?(r=e,"_e("+JSON.stringify(r.text)+")"):"_v("+(2===(n=e).type?n.expression:Ya(JSON.stringify(n.text)))+")";var n,r}function Xa(e){for(var t="",n="",r=0;r<e.length;r++){var i=e[r],o=Ya(i.value);i.dynamic?n+=i.name+","+o+",":t+='"'+i.name+'":'+o+","}return t="{"+t.slice(0,-1)+"}",n?"_d("+t+",["+n.slice(0,-1)+"])":t}function Ya(e){return e.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}new RegExp("\\b"+"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments".split(",").join("\\b|\\b")+"\\b");function Qa(e,t){try{return new Function(e)}catch(n){return t.push({err:n,code:e}),S}}function es(e){var t=Object.create(null);return function(n,r,i){(r=A({},r)).warn;delete r.warn;var o=r.delimiters?String(r.delimiters)+n:n;if(t[o])return t[o];var a=e(n,r),s={},c=[];return s.render=Qa(a.render,c),s.staticRenderFns=a.staticRenderFns.map(function(e){return Qa(e,c)}),t[o]=s}}var ts,ns,rs=(ts=function(e,t){var n=fa(e.trim(),t);!1!==t.optimize&&Aa(n,t);var r=Ra(n,t);return{ast:n,render:r.render,staticRenderFns:r.staticRenderFns}},function(e){function t(t,n){var r=Object.create(e),i=[],o=[];if(n)for(var a in n.modules&&(r.modules=(e.modules||[]).concat(n.modules)),n.directives&&(r.directives=A(Object.create(e.directives||null),n.directives)),n)"modules"!==a&&"directives"!==a&&(r[a]=n[a]);r.warn=function(e,t,n){(n?o:i).push(e)};var s=ts(t.trim(),r);return s.errors=i,s.tips=o,s}return{compile:t,compileToFunctions:es(t)}})(xa),is=(rs.compile,rs.compileToFunctions);function os(e){return(ns=ns||document.createElement("div")).innerHTML=e?'<a href="\n"/>':'<div a="\n"/>',ns.innerHTML.indexOf(" ")>0}var as=!!V&&os(!1),ss=!!V&&os(!0),cs=g(function(e){var t=Qn(e);return t&&t.innerHTML}),us=Cn.prototype.$mount;return Cn.prototype.$mount=function(e,t){if((e=e&&Qn(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if("string"==typeof r)"#"===r.charAt(0)&&(r=cs(r));else{if(!r.nodeType)return this;r=r.innerHTML}else e&&(r=function(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement("div");return t.appendChild(e.cloneNode(!0)),t.innerHTML}(e));if(r){var i=is(r,{outputSourceRange:!1,shouldDecodeNewlines:as,shouldDecodeNewlinesForHref:ss,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return us.call(this,e,t)},Cn.compile=is,Cn}); | ||
| 0 | \ No newline at end of file | 7 | \ No newline at end of file |
src/main/resources/static/pages/video/test.html
0 → 100644
src/main/resources/static/pages/video/test.json
0 → 100644
| 1 | +{ | ||
| 2 | + "code": 0, | ||
| 3 | + "count": 1000, | ||
| 4 | + "data": [ | ||
| 5 | + { | ||
| 6 | + "carCode": 1, | ||
| 7 | + "name": "User-1", | ||
| 8 | + "isParent": true | ||
| 9 | + }, | ||
| 10 | + { | ||
| 11 | + "carCode": 9, | ||
| 12 | + "name": "User-9", | ||
| 13 | + "type": 6, | ||
| 14 | + "status": 2, | ||
| 15 | + "score": 58, | ||
| 16 | + "experience": 2414, | ||
| 17 | + "sex": "女", | ||
| 18 | + "city": "宿州市", | ||
| 19 | + "description": "-", | ||
| 20 | + "createTime": "2015-05-06 00:39:19", | ||
| 21 | + | ||
| 22 | + "isParent": true | ||
| 23 | + }, | ||
| 24 | + { | ||
| 25 | + "carCode": 10, | ||
| 26 | + "name": "User-10", | ||
| 27 | + "type": 4, | ||
| 28 | + "status": 2, | ||
| 29 | + "score": 89, | ||
| 30 | + "experience": 97592, | ||
| 31 | + "sex": "女", | ||
| 32 | + "city": "钦州市", | ||
| 33 | + "description": "-", | ||
| 34 | + "createTime": "1985-05-26 03:50:09", | ||
| 35 | + | ||
| 36 | + "isParent": true | ||
| 37 | + }, | ||
| 38 | + { | ||
| 39 | + "carCode": 70, | ||
| 40 | + "name": "User-70", | ||
| 41 | + "type": 3, | ||
| 42 | + "status": 3, | ||
| 43 | + "score": 19, | ||
| 44 | + "experience": 66961, | ||
| 45 | + "sex": "女", | ||
| 46 | + "city": "固原市", | ||
| 47 | + "description": "-", | ||
| 48 | + "createTime": "1992-04-11 09:13:05", | ||
| 49 | + | ||
| 50 | + "children": [], | ||
| 51 | + "isParent": false | ||
| 52 | + }, | ||
| 53 | + { | ||
| 54 | + "carCode": 71, | ||
| 55 | + "name": "User-71", | ||
| 56 | + "type": 1, | ||
| 57 | + "status": 3, | ||
| 58 | + "score": 4, | ||
| 59 | + "experience": 95553, | ||
| 60 | + "sex": "女", | ||
| 61 | + "city": "那曲地区", | ||
| 62 | + "description": "-", | ||
| 63 | + "createTime": "2019-07-31 00:30:49", | ||
| 64 | + | ||
| 65 | + | ||
| 66 | + "isParent": true | ||
| 67 | + }, | ||
| 68 | + { | ||
| 69 | + "carCode": 91, | ||
| 70 | + "name": "User-91", | ||
| 71 | + "type": 3, | ||
| 72 | + "status": 3, | ||
| 73 | + "score": 61, | ||
| 74 | + "experience": 26129, | ||
| 75 | + "sex": "女", | ||
| 76 | + "city": "白山市", | ||
| 77 | + "description": "-", | ||
| 78 | + "createTime": "2002-01-04 16:12:16", | ||
| 79 | + | ||
| 80 | + "isParent": true | ||
| 81 | + }, | ||
| 82 | + { | ||
| 83 | + "carCode": 138, | ||
| 84 | + "name": "User-138", | ||
| 85 | + "type": 1, | ||
| 86 | + "status": 2, | ||
| 87 | + "score": 99, | ||
| 88 | + "experience": 71832, | ||
| 89 | + "sex": "男", | ||
| 90 | + "city": "阿里地区", | ||
| 91 | + "description": "-", | ||
| 92 | + "createTime": "1988-03-10 13:17:59", | ||
| 93 | + | ||
| 94 | + "isParent": true | ||
| 95 | + } | ||
| 96 | + ] | ||
| 97 | +} | ||
| 0 | \ No newline at end of file | 98 | \ No newline at end of file |
src/main/resources/static/pages/video/treeview.min.js
0 → 100644
| 1 | +/** | ||
| 2 | + * Minified by jsDelivr using Terser v5.19.2. | ||
| 3 | + * Original file: /npm/jquery-treeview@1.4.2/jquery.treeview.js | ||
| 4 | + * | ||
| 5 | + * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files | ||
| 6 | + */ | ||
| 7 | +!function(a){a.extend(a.fn,{swapClass:function(a,e){var l=this.filter("."+a);return this.filter("."+e).removeClass(e).addClass(a),l.removeClass(a).addClass(e),this},replaceClass:function(a,e){return this.filter("."+a).removeClass(a).addClass(e).end()},hoverClass:function(e){return e=e||"hover",this.hover((function(){a(this).addClass(e)}),(function(){a(this).removeClass(e)}))},heightToggle:function(a,e){a?this.animate({height:"toggle"},a,e):this.each((function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"](),e&&e.apply(this,arguments)}))},heightHide:function(a,e){a?this.animate({height:"hide"},a,e):(this.hide(),e&&this.each(e))},prepareBranches:function(a){return a.prerendered||(this.filter(":last-child:not(ul)").addClass(e.last),this.filter((a.collapsed?"":"."+e.closed)+":not(."+e.open+")").find(">ul").hide()),this.filter(":has(>ul)")},applyClasses:function(l,s){if(this.filter(":has(>ul):not(:has(>a))").find(">span").unbind("click.treeview").bind("click.treeview",(function(e){this==e.target&&s.apply(a(this).next())})).add(a("a",this)).hoverClass(),!l.prerendered){this.filter(":has(>ul:hidden)").addClass(e.expandable).replaceClass(e.last,e.lastExpandable),this.not(":has(>ul:hidden)").addClass(e.collapsable).replaceClass(e.last,e.lastCollapsable);var t=this.find("div."+e.hitarea);t.length||(t=this.prepend('<div class="'+e.hitarea+'"/>').find("div."+e.hitarea)),t.removeClass().addClass(e.hitarea).each((function(){var e="";a.each(a(this).parent().attr("class").split(" "),(function(){e+=this+"-hitarea "})),a(this).addClass(e)}))}this.find("div."+e.hitarea).click(s)},treeview:function(l){if((l=a.extend({cookieId:"treeview"},l)).toggle){var s=l.toggle;l.toggle=function(){return s.apply(a(this).parent()[0],arguments)}}function t(){a(this).parent().find(">.hitarea").swapClass(e.collapsableHitarea,e.expandableHitarea).swapClass(e.lastCollapsableHitarea,e.lastExpandableHitarea).end().swapClass(e.collapsable,e.expandable).swapClass(e.lastCollapsable,e.lastExpandable).find(">ul").heightToggle(l.animated,l.toggle),l.unique&&a(this).parent().siblings().find(">.hitarea").replaceClass(e.collapsableHitarea,e.expandableHitarea).replaceClass(e.lastCollapsableHitarea,e.lastExpandableHitarea).end().replaceClass(e.collapsable,e.expandable).replaceClass(e.lastCollapsable,e.lastExpandable).find(">ul").heightHide(l.animated,l.toggle)}this.data("toggler",t),this.addClass("treeview");var i=this.find("li").prepareBranches(l);switch(l.persist){case"cookie":var n=l.toggle;l.toggle=function(){var e;e=[],i.each((function(l,s){e[l]=a(s).is(":has(>ul:visible)")?1:0})),a.cookie(l.cookieId,e.join(""),l.cookieOptions),n&&n.apply(this,arguments)},function(){var e=a.cookie(l.cookieId);if(e){var s=e.split("");i.each((function(e,l){a(l).find(">ul")[parseInt(s[e])?"show":"hide"]()}))}}();break;case"location":var r=this.find("a").filter((function(){return 0==location.href.toLowerCase().indexOf(this.href.toLowerCase())}));if(r.length){var o=r.addClass("selected").parents("ul, li").add(r.next()).show();l.prerendered&&o.filter("li").swapClass(e.collapsable,e.expandable).swapClass(e.lastCollapsable,e.lastExpandable).find(">.hitarea").swapClass(e.collapsableHitarea,e.expandableHitarea).swapClass(e.lastCollapsableHitarea,e.lastExpandableHitarea)}}return i.applyClasses(l,t),l.control&&(!function(l,s){function i(s){return function(){return t.apply(a("div."+e.hitarea,l).filter((function(){return!s||a(this).parent("."+s).length}))),!1}}a("a:eq(0)",s).click(i(e.collapsable)),a("a:eq(1)",s).click(i(e.expandable)),a("a:eq(2)",s).click(i())}(this,l.control),a(l.control).show()),this}}),a.treeview={};var e=a.treeview.classes={open:"open",closed:"closed",expandable:"expandable",expandableHitarea:"expandable-hitarea",lastExpandableHitarea:"lastExpandable-hitarea",collapsable:"collapsable",collapsableHitarea:"collapsable-hitarea",lastCollapsableHitarea:"lastCollapsable-hitarea",lastCollapsable:"lastCollapsable",lastExpandable:"lastExpandable",last:"last",hitarea:"hitarea"}}(jQuery); | ||
| 8 | +//# sourceMappingURL=/sm/fda41ce3f0a0e628b6a53a2967b92988cf1a199419d5a03633eecec1d1c8f2d1.map | ||
| 0 | \ No newline at end of file | 9 | \ No newline at end of file |
src/main/resources/static/pages/video/video.html
0 → 100644
| 1 | +<script type="text/javascript" src="layui.js"></script> | ||
| 2 | +<script type="text/javascript" src="https://www.helloweba.net/demo/2018/hls/hls.js" /> | ||
| 3 | +<script src="static/SkeyeWebPlayer/SkeyeWebPlayer.js"></script> | ||
| 4 | + | ||
| 5 | +<link href="css/layui.css" rel="stylesheet"> | ||
| 6 | + | ||
| 7 | +<script type="text/javascript"> | ||
| 8 | + $(document).ready(function () { | ||
| 9 | + $.getJSON("/video/tree", null, function (rep) { | ||
| 10 | + if(rep.status=="SUCCESS"){ | ||
| 11 | + initTree(rep.data); | ||
| 12 | + } | ||
| 13 | + initTable(); | ||
| 14 | + }); | ||
| 15 | + | ||
| 16 | + }); | ||
| 17 | + | ||
| 18 | + function initTree(data) { | ||
| 19 | + layui.use(function () { | ||
| 20 | + var tree = layui.tree; | ||
| 21 | + // 渲染 | ||
| 22 | + tree.render({ | ||
| 23 | + elem: '#video_tree', | ||
| 24 | + data: data, | ||
| 25 | + onlyIconControl: true, // 是否仅允许节点左侧图标控制展开收缩 | ||
| 26 | + showLine: true, // 是否开启连接线 | ||
| 27 | + click: function (node) { | ||
| 28 | + initTable(node); | ||
| 29 | + } | ||
| 30 | + }); | ||
| 31 | + }); | ||
| 32 | + } | ||
| 33 | + | ||
| 34 | + | ||
| 35 | + function initTable(treeNode) { | ||
| 36 | + var queryURL = "/video/tree/table?size=5"; | ||
| 37 | + if(treeNode){ | ||
| 38 | + if(treeNode.data.type ===1){ | ||
| 39 | + queryURL = queryURL+"&businessCode_eq="+treeNode.data.code; | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | + if(treeNode.data.type===2){ | ||
| 43 | + queryURL = queryURL+"&brancheCompanyCode_eq="+treeNode.data.code; | ||
| 44 | + } | ||
| 45 | + } | ||
| 46 | + layui.use(function () { | ||
| 47 | + var treeTable = layui.treeTable; | ||
| 48 | + // 渲染 | ||
| 49 | + treeTable.render({ | ||
| 50 | + elem: '#treeTable', | ||
| 51 | + url: queryURL, | ||
| 52 | + treeColIndex:1, | ||
| 53 | + treeSpid:0, | ||
| 54 | + maxHeight: '701px', | ||
| 55 | + cols: [[ | ||
| 56 | + {field: 'name', title: '车辆编号', width: 160}, | ||
| 57 | + {field: 'insideCode', title: '内部编号', width: 160}, | ||
| 58 | + {field: 'equipmentCode', title: '设备编号', width: 160}, | ||
| 59 | + {field: 'carPlate', title: '车牌号', width: 160}, | ||
| 60 | + {field: 'company', title: '所在公司', width: 160}, | ||
| 61 | + {field: 'brancheCompany', title: '所在分公司', width: 160}, | ||
| 62 | + {field: 'sfdc', title: '电车', width: 80,templet:function (obj){if(obj.sfdc=='true' || obj.sfdc== true){return "是"}else if(obj.sfdc=='false' || obj.sfdc== false){return "否";} return "未知";}}, | ||
| 63 | + {field: 'scrapState', title: '状态', width: 80,templet:function (obj){if(obj.scrapState=='true' || obj.scrapState== true){return "是"}else if(obj.scrapState=='false' || obj.scrapState== false){return "否";} return "未知";}} | ||
| 64 | + ]], | ||
| 65 | + page: true | ||
| 66 | + }); | ||
| 67 | + treeTable.on('rowDouble(treeTable)', function (obj){ | ||
| 68 | + var targetDataIndex =obj.dataIndex+"-0"; | ||
| 69 | + $("div[lay-table-id='treeTable']").find("tr").each(function (index,node){ | ||
| 70 | + var sourceDataIndex = $(node).attr("data-index"); | ||
| 71 | + if(sourceDataIndex===targetDataIndex){ | ||
| 72 | + queryChannelByCarNo(node,obj); | ||
| 73 | + return; | ||
| 74 | + } | ||
| 75 | + }); | ||
| 76 | + }); | ||
| 77 | + }); | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | + function queryChannelByCarNo(treeNode,obj){ | ||
| 81 | + var url="/video/car/channel/"+obj.data.name; | ||
| 82 | + $.getJSON(url,function (rep){ | ||
| 83 | + if(rep.status==="SUCCESS"){ | ||
| 84 | + var html ="<td data-field=\"name\" colspan='8' data-key=\"1-"+obj.dataIndex+"-0\" class=\"\" >"; | ||
| 85 | + html+="<table cellspacing=\"0\" cellpadding=\"0\" border=\"1\" class=\"layui-table\" style='padding-left: 15px;boder:1px solid #000;margin-bottom: 15px;'><thead><tr>"; | ||
| 86 | + html += "<th data-field=\"name\" data-key=\"1-"+obj.dataIndex+"-0\" class=\"\" title=\"通道编号\"><div class=\"layui-table-cell \" style='width: 200px;'><span>通道编号</span></div></th>"; | ||
| 87 | + html += "<th data-field=\"name\" data-key=\"2-"+obj.dataIndex+"-0\" class=\"\" title=\"设备编号\"><div class=\"layui-table-cell \" style='width: 200px;'><span>设备编号</span></div></th>"; | ||
| 88 | + html += "<th data-field=\"name\" data-key=\"3-"+obj.dataIndex+"-0\" class=\"\" title=\"通道名称\"><div class=\"layui-table-cell\" style='width: 100px;'><span>通道名称</span></div></th>"; | ||
| 89 | + html += "<th data-field=\"name\" data-key=\"4-"+obj.dataIndex+"-0\" class=\"\" title=\"快照\"><div class=\"layui-table-cell \"><span>快照</span></div></th>"; | ||
| 90 | + html += "<th data-field=\"name\" data-key=\"5-"+obj.dataIndex+"-0\" class=\"\" title=\"厂家\"><div class=\"layui-table-cell \" style='width: 100px;'><span>厂家</span></div></th>"; | ||
| 91 | + html += "<th data-field=\"name\" data-key=\"6-"+obj.dataIndex+"-0\" class=\"\" title=\"开启音频\"><div class=\"layui-table-cell \"><span>开启音频</span></div></th>"; | ||
| 92 | + html += "<th data-field=\"name\" data-key=\"7-"+obj.dataIndex+"-0\" class=\"\" title=\"状态\"><div class=\"layui-table-cell \"><span>状态</span></div></th>"; | ||
| 93 | + html += "<th data-field=\"name\" data-key=\"8-"+obj.dataIndex+"-0\" class=\"\" title=\"操作\"><div class=\"layui-table-cell \" style='width: 100px;'><span>操作</span></div></th>"; | ||
| 94 | + html +="</tr>"; | ||
| 95 | + if(rep.data){ | ||
| 96 | + $.each(rep.data,function (index,node){ | ||
| 97 | + html+="<tr><td>"+node.channelId+"</td><td>"+node.deviceId+"</td><td>"+node.name+"</td><td>"+getBigSnap(rep.channelImageURL,node.deviceId,node.channelId)+"</td><td>"+node.manufacture; | ||
| 98 | + html +="</td><td>"+hasAudioText(node.hasAudio)+"</td><td>"+wvpStatusText(node.status)+"</td><td><button class=\"layui-btn layui-btn-primary layui-border\" onclick=\"playWvpVideo('"; | ||
| 99 | + html += rep.wvpPlayURL+"','"+node.deviceId+"','"+node.channelId+"')\">播放</button><button</button></td></tr>"; | ||
| 100 | + }); | ||
| 101 | + } | ||
| 102 | + | ||
| 103 | + html +="</thead></table></td>"; | ||
| 104 | + | ||
| 105 | + $(treeNode).html(html); | ||
| 106 | + } | ||
| 107 | + }) | ||
| 108 | + } | ||
| 109 | + | ||
| 110 | + function hasAudioText(hasAudio){ | ||
| 111 | + return "true" == hasAudio || true== hasAudio?"开启":"关闭"; | ||
| 112 | + } | ||
| 113 | + | ||
| 114 | + function wvpStatusText(status){ | ||
| 115 | + return "true" == status || true== status?"在线":"离线"; | ||
| 116 | + } | ||
| 117 | + | ||
| 118 | + function getBigSnap(imageURL,deviceId,channelId){ | ||
| 119 | + return "<image src="+imageURL+deviceId+"/"+channelId+" />" | ||
| 120 | + } | ||
| 121 | + | ||
| 122 | + function playWvpVideo(playURL,deviceId,channelId){ | ||
| 123 | + var idDiv = "video_"+(Date.now()); | ||
| 124 | + var html="'<div id='"+idDiv+"' style='padding-top: 0;'></div>'"; | ||
| 125 | + | ||
| 126 | + let player = null; | ||
| 127 | + var myVar= null; | ||
| 128 | + var playURL1 = playURL+deviceId+"_"+channelId+".live.mp4"; | ||
| 129 | + console.log(playURL1); | ||
| 130 | + | ||
| 131 | + var index = layer.open({ | ||
| 132 | + type:1, | ||
| 133 | + title:"视频播放", | ||
| 134 | + area:['1000px','650px'], | ||
| 135 | + height:'800px', | ||
| 136 | + content:html, | ||
| 137 | + success: function(layero, index, that){ | ||
| 138 | + player = playVideo(playURL1,idDiv); | ||
| 139 | + player.play(); | ||
| 140 | + | ||
| 141 | + myVar=setInterval(function(){ | ||
| 142 | + if(player){ | ||
| 143 | + player.destroy(); | ||
| 144 | + player = null; | ||
| 145 | + } | ||
| 146 | + player = playVideo(playURL1,idDiv); | ||
| 147 | + player.play(); | ||
| 148 | + },300000); | ||
| 149 | + | ||
| 150 | + | ||
| 151 | + }, | ||
| 152 | + beforeEnd: function(layero, index, that){ | ||
| 153 | + if(player){ | ||
| 154 | + player.destroy(); | ||
| 155 | + player = null; | ||
| 156 | + } | ||
| 157 | + | ||
| 158 | + if(myVar){ | ||
| 159 | + window.clearInterval(myVar); | ||
| 160 | + myVar = null; | ||
| 161 | + } | ||
| 162 | + | ||
| 163 | + $("#"+idDiv).html(""); | ||
| 164 | + } | ||
| 165 | + }); | ||
| 166 | + } | ||
| 167 | + | ||
| 168 | + function playVideo(url,ID){ | ||
| 169 | + return new WebMediaPlayer( url, ID, function (){ | ||
| 170 | + console.log("ddddddddddddd"); | ||
| 171 | + }, { | ||
| 172 | + cbUserPtr: this, | ||
| 173 | + decodeType: 'auto', | ||
| 174 | + openAudio: true, | ||
| 175 | + autoplay:true, | ||
| 176 | + bigPlay: false, | ||
| 177 | + showMode: false | ||
| 178 | + }); | ||
| 179 | + } | ||
| 180 | + | ||
| 181 | + | ||
| 182 | +</script> | ||
| 183 | + | ||
| 184 | +<div class="page-head"> | ||
| 185 | + <div class="page-title"> | ||
| 186 | + <h1>视频管理</h1> | ||
| 187 | + </div> | ||
| 188 | +</div> | ||
| 189 | + | ||
| 190 | +<ul class="page-breadcrumb breadcrumb"> | ||
| 191 | + <li><a href="/pages/home.html" data-pjax>首页</a> <i class="fa fa-circle"></i></li> | ||
| 192 | + <li><span class="active">视频管理</span> <i class="fa fa-circle"></i></li> | ||
| 193 | +</ul> | ||
| 194 | + | ||
| 195 | + | ||
| 196 | +<div class="row"> | ||
| 197 | + <div class="col-md-4" style="padding-right: 0px;width: 20%"> | ||
| 198 | + <div class="portlet light bordered" style="min-height: 715px;"> | ||
| 199 | + <div class="portlet-body"> | ||
| 200 | + <div id="video_tree"></div> | ||
| 201 | + | ||
| 202 | + </div> | ||
| 203 | + </div> | ||
| 204 | + </div> | ||
| 205 | + | ||
| 206 | + <div class="col-md-6" style="padding-left: 0px;width: 76%"> | ||
| 207 | + <div class="portlet light bordered" style="height: 715px;"> | ||
| 208 | + <div class="portlet-body" style="min-height: 701px;"> | ||
| 209 | + <table class="layui-hide" id="treeTable"></table> | ||
| 210 | + </div> | ||
| 211 | + </div> | ||
| 212 | + </div> | ||
| 213 | +</div> | ||
| 214 | + |