diff --git a/.history/ruoyi-ui/src/views/system/IntegralOrder/index_20250515150601.vue b/.history/ruoyi-ui/src/views/system/IntegralOrder/index_20250515150601.vue deleted file mode 100644 index 6ff0cf4..0000000 --- a/.history/ruoyi-ui/src/views/system/IntegralOrder/index_20250515150601.vue +++ /dev/null @@ -1,403 +0,0 @@ - - - diff --git a/.history/ruoyi-ui/src/views/system/IntegralOrder/index_20250522143851.vue b/.history/ruoyi-ui/src/views/system/IntegralOrder/index_20250522143851.vue deleted file mode 100644 index f0a0266..0000000 --- a/.history/ruoyi-ui/src/views/system/IntegralOrder/index_20250522143851.vue +++ /dev/null @@ -1,422 +0,0 @@ - - - diff --git a/.history/ruoyi-ui/src/views/system/IntegralOrder/index_20250522143906.vue b/.history/ruoyi-ui/src/views/system/IntegralOrder/index_20250522143906.vue deleted file mode 100644 index f0a0266..0000000 --- a/.history/ruoyi-ui/src/views/system/IntegralOrder/index_20250522143906.vue +++ /dev/null @@ -1,422 +0,0 @@ - - - diff --git a/.history/ruoyi-ui/src/views/system/IntegralOrder/index_20250522144027.vue b/.history/ruoyi-ui/src/views/system/IntegralOrder/index_20250522144027.vue deleted file mode 100644 index f0a0266..0000000 --- a/.history/ruoyi-ui/src/views/system/IntegralOrder/index_20250522144027.vue +++ /dev/null @@ -1,422 +0,0 @@ - - - diff --git a/.history/ruoyi-ui/src/views/system/IntegralOrder/index_20250522144248.vue b/.history/ruoyi-ui/src/views/system/IntegralOrder/index_20250522144248.vue deleted file mode 100644 index 5b388e9..0000000 --- a/.history/ruoyi-ui/src/views/system/IntegralOrder/index_20250522144248.vue +++ /dev/null @@ -1,415 +0,0 @@ - - - diff --git a/.history/ruoyi-ui/src/views/system/PayMoneyLog/index_20250522105712.vue b/.history/ruoyi-ui/src/views/system/PayMoneyLog/index_20250522105712.vue deleted file mode 100644 index 0002e28..0000000 --- a/.history/ruoyi-ui/src/views/system/PayMoneyLog/index_20250522105712.vue +++ /dev/null @@ -1,345 +0,0 @@ - - - diff --git a/.history/ruoyi-ui/src/views/system/PayMoneyLog/index_20250522105750.vue b/.history/ruoyi-ui/src/views/system/PayMoneyLog/index_20250522105750.vue deleted file mode 100644 index e37f7b0..0000000 --- a/.history/ruoyi-ui/src/views/system/PayMoneyLog/index_20250522105750.vue +++ /dev/null @@ -1,345 +0,0 @@ - - - diff --git a/.history/ruoyi-ui/src/views/system/QuoteCraft/index_20250515150601.vue b/.history/ruoyi-ui/src/views/system/QuoteCraft/index_20250515150601.vue deleted file mode 100644 index a36df12..0000000 --- a/.history/ruoyi-ui/src/views/system/QuoteCraft/index_20250515150601.vue +++ /dev/null @@ -1,340 +0,0 @@ - - - diff --git a/.history/ruoyi-ui/src/views/system/QuoteCraft/index_20250521142026.vue b/.history/ruoyi-ui/src/views/system/QuoteCraft/index_20250521142026.vue deleted file mode 100644 index 6fe16a9..0000000 --- a/.history/ruoyi-ui/src/views/system/QuoteCraft/index_20250521142026.vue +++ /dev/null @@ -1,336 +0,0 @@ - - - diff --git a/.history/ruoyi-ui/src/views/system/QuoteCraft/index_20250521142057.vue b/.history/ruoyi-ui/src/views/system/QuoteCraft/index_20250521142057.vue deleted file mode 100644 index cf6dbe4..0000000 --- a/.history/ruoyi-ui/src/views/system/QuoteCraft/index_20250521142057.vue +++ /dev/null @@ -1,337 +0,0 @@ - - - diff --git a/.history/ruoyi-ui/src/views/system/QuoteCraft/index_20250521142113.vue b/.history/ruoyi-ui/src/views/system/QuoteCraft/index_20250521142113.vue deleted file mode 100644 index 1a77276..0000000 --- a/.history/ruoyi-ui/src/views/system/QuoteCraft/index_20250521142113.vue +++ /dev/null @@ -1,338 +0,0 @@ - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250519112035.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250519112035.vue deleted file mode 100644 index 05fb7ee..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250519112035.vue +++ /dev/null @@ -1,417 +0,0 @@ - - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520170136.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520170136.vue deleted file mode 100644 index d9249d4..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520170136.vue +++ /dev/null @@ -1,478 +0,0 @@ - - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520170137.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520170137.vue deleted file mode 100644 index d9249d4..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520170137.vue +++ /dev/null @@ -1,478 +0,0 @@ - - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520170439.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520170439.vue deleted file mode 100644 index 41b905f..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520170439.vue +++ /dev/null @@ -1,493 +0,0 @@ - - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520170441.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520170441.vue deleted file mode 100644 index 41b905f..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520170441.vue +++ /dev/null @@ -1,493 +0,0 @@ - - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520170705.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520170705.vue deleted file mode 100644 index 0dc2d14..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520170705.vue +++ /dev/null @@ -1,496 +0,0 @@ - - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520171054.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520171054.vue deleted file mode 100644 index 7b9e02d..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520171054.vue +++ /dev/null @@ -1,496 +0,0 @@ - - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520171055.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520171055.vue deleted file mode 100644 index 7b9e02d..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520171055.vue +++ /dev/null @@ -1,496 +0,0 @@ - - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520171141.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520171141.vue deleted file mode 100644 index 6808401..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520171141.vue +++ /dev/null @@ -1,494 +0,0 @@ - - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520171158.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520171158.vue deleted file mode 100644 index 7b9e02d..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520171158.vue +++ /dev/null @@ -1,496 +0,0 @@ - - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520171252.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520171252.vue deleted file mode 100644 index 35a0c26..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520171252.vue +++ /dev/null @@ -1,509 +0,0 @@ - - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520171325.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520171325.vue deleted file mode 100644 index 1c4da29..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520171325.vue +++ /dev/null @@ -1,499 +0,0 @@ - - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520174031.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520174031.vue deleted file mode 100644 index abe8dcd..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520174031.vue +++ /dev/null @@ -1,498 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182028.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182028.vue deleted file mode 100644 index 06de65a..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182028.vue +++ /dev/null @@ -1,498 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182029.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182029.vue deleted file mode 100644 index 06de65a..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182029.vue +++ /dev/null @@ -1,498 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182145.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182145.vue deleted file mode 100644 index 245d126..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182145.vue +++ /dev/null @@ -1,500 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182146.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182146.vue deleted file mode 100644 index 245d126..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182146.vue +++ /dev/null @@ -1,500 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182311.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182311.vue deleted file mode 100644 index c4781de..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182311.vue +++ /dev/null @@ -1,500 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182312.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182312.vue deleted file mode 100644 index c4781de..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182312.vue +++ /dev/null @@ -1,500 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182412.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182412.vue deleted file mode 100644 index 3e2f08c..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182412.vue +++ /dev/null @@ -1,504 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182539.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182539.vue deleted file mode 100644 index 3e2f08c..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182539.vue +++ /dev/null @@ -1,504 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182540.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182540.vue deleted file mode 100644 index 3e2f08c..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182540.vue +++ /dev/null @@ -1,504 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182541.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182541.vue deleted file mode 100644 index 3e2f08c..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182541.vue +++ /dev/null @@ -1,504 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182545.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182545.vue deleted file mode 100644 index 3e2f08c..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182545.vue +++ /dev/null @@ -1,504 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182553.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182553.vue deleted file mode 100644 index 74eb622..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182553.vue +++ /dev/null @@ -1,504 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182556.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182556.vue deleted file mode 100644 index 74eb622..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182556.vue +++ /dev/null @@ -1,504 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182626.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182626.vue deleted file mode 100644 index 245d126..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182626.vue +++ /dev/null @@ -1,500 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182627.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182627.vue deleted file mode 100644 index 245d126..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182627.vue +++ /dev/null @@ -1,500 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182715.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182715.vue deleted file mode 100644 index 7356350..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182715.vue +++ /dev/null @@ -1,501 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182811.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182811.vue deleted file mode 100644 index 7356350..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182811.vue +++ /dev/null @@ -1,501 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182928.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182928.vue deleted file mode 100644 index 8ca318d..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182928.vue +++ /dev/null @@ -1,501 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182945.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182945.vue deleted file mode 100644 index 68edcb3..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520182945.vue +++ /dev/null @@ -1,501 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183021.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183021.vue deleted file mode 100644 index 9a1901b..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183021.vue +++ /dev/null @@ -1,501 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183032.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183032.vue deleted file mode 100644 index 9a1901b..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183032.vue +++ /dev/null @@ -1,501 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183048.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183048.vue deleted file mode 100644 index ed0c03d..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183048.vue +++ /dev/null @@ -1,501 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183053.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183053.vue deleted file mode 100644 index 818281b..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183053.vue +++ /dev/null @@ -1,501 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183101.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183101.vue deleted file mode 100644 index fcfed90..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183101.vue +++ /dev/null @@ -1,501 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183147.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183147.vue deleted file mode 100644 index 708f87e..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183147.vue +++ /dev/null @@ -1,501 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183346.vue b/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183346.vue deleted file mode 100644 index 1c91611..0000000 --- a/.history/ruoyi-ui/src/views/system/ServiceCate/index_20250520183346.vue +++ /dev/null @@ -1,501 +0,0 @@ - - - - diff --git a/.history/ruoyi-ui/src/views/system/transfer/index_20250522101012.vue b/.history/ruoyi-ui/src/views/system/transfer/index_20250522101012.vue deleted file mode 100644 index b60bc09..0000000 --- a/.history/ruoyi-ui/src/views/system/transfer/index_20250522101012.vue +++ /dev/null @@ -1,394 +0,0 @@ - - - diff --git a/.history/ruoyi-ui/src/views/system/transfer/index_20250522110146.vue b/.history/ruoyi-ui/src/views/system/transfer/index_20250522110146.vue deleted file mode 100644 index a798bb7..0000000 --- a/.history/ruoyi-ui/src/views/system/transfer/index_20250522110146.vue +++ /dev/null @@ -1,414 +0,0 @@ - - - diff --git a/.history/ruoyi-ui/src/views/system/transfer/index_20250522110542.vue b/.history/ruoyi-ui/src/views/system/transfer/index_20250522110542.vue deleted file mode 100644 index a798bb7..0000000 --- a/.history/ruoyi-ui/src/views/system/transfer/index_20250522110542.vue +++ /dev/null @@ -1,414 +0,0 @@ - - - diff --git a/.history/ruoyi-ui/src/views/system/transfer/index_20250522112322.vue b/.history/ruoyi-ui/src/views/system/transfer/index_20250522112322.vue deleted file mode 100644 index a03a067..0000000 --- a/.history/ruoyi-ui/src/views/system/transfer/index_20250522112322.vue +++ /dev/null @@ -1,404 +0,0 @@ - - - diff --git a/AppletController统一响应处理说明.md b/AppletController统一响应处理说明.md new file mode 100644 index 0000000..575e268 --- /dev/null +++ b/AppletController统一响应处理说明.md @@ -0,0 +1,160 @@ +# AppletController 统一响应处理修改说明 + +## 修改概述 + +对 `AppletController.java` 中的小程序接口进行了统一响应格式处理,按照以下规范: + +- **成功响应**: code: 200 +- **业务提示**: code: 422 +- **Token验证失败**: code: 332 +- **系统错误**: code: 500 + +## 新增统一响应方法 + +在 `AppletControllerUtil.java` 中新增了以下统一响应处理方法: + +### 1. 成功响应方法 +```java +// 成功响应 - code: 200 +public static AjaxResult appletSuccess(Object data) +public static AjaxResult appletSuccess(String message) +public static AjaxResult appletSuccess() +``` + +### 2. 业务提示方法 +```java +// 业务提示响应 - code: 422 +public static AjaxResult appletWarning(String message) +public static AjaxResult appletWarning(String message, Object data) +``` + +### 3. Token验证失败方法 +```java +// Token验证失败响应 - code: 332 +public static AjaxResult appletUnauthorized() +public static AjaxResult appletUnauthorized(String message) +``` + +### 4. 系统错误方法 +```java +// 系统错误响应 - code: 500 +public static AjaxResult appletError(String message) +``` + +## 已修改的方法示例 + +### 1. 服务分类接口 +```java +// 修改前 +return success(categoryList); +return error("获取服务分类列表失败:" + e.getMessage()); + +// 修改后 +return AppletControllerUtil.appletSuccess(categoryList); +return AppletControllerUtil.appletError("获取服务分类列表失败:" + e.getMessage()); +``` + +### 2. Token验证相关 +```java +// 修改前 +return error("用户未登录或token无效"); + +// 修改后 +return AppletControllerUtil.appletUnauthorized(); +``` + +### 3. 业务验证相关 +```java +// 修改前 +return error("地址ID无效"); +return error("参数格式错误"); + +// 修改后 +return AppletControllerUtil.appletWarning("地址ID无效"); +return AppletControllerUtil.appletWarning("参数格式错误"); +``` + +### 4. 积分兑换特殊处理 +```java +// 修改前 +AjaxResult result = AjaxResult.error("积分不足"); +result.put("code", 422); +result.put("data", new ArrayList<>()); +return result; + +// 修改后 +return AppletControllerUtil.appletWarning("积分不足"); +``` + +## 修改范围 + +### 已完成修改的方法: +1. `getInfo()` - 获取服务分类列表 +2. `config()` - 获取系统配置信息 +3. `getconfig()` - 获取默认配置信息 +4. `getaddresslist()` - 查询用户收货地址列表 +5. `getAddressInfo()` - 根据地址ID查询用户收货地址详情 +6. `editAddress()` - 修改用户收货地址 +7. `addAddress()` - 新增用户收货地址 +8. `exchangeIntegralProduct()` - 积分商品兑换接口 + +### 待修改的方法(需要继续处理): +由于文件较大,还有以下方法需要继续修改: +- 售后返修相关接口 +- 订单查询相关接口 +- 支付相关接口 +- 用户登录验证接口 +- 商品查询相关接口 +- 优惠券相关接口 +- 积分日志相关接口 +- 通知订阅相关接口 + +## 统一响应格式 + +### 成功响应 (200) +```json +{ + "code": 200, + "msg": "OK", + "data": {...} +} +``` + +### 业务提示 (422) +```json +{ + "code": 422, + "msg": "提示信息", + "data": [] +} +``` + +### Token验证失败 (332) +```json +{ + "code": 332, + "msg": "用户未登录或token无效,请重新登录", + "data": [] +} +``` + +### 系统错误 (500) +```json +{ + "code": 500, + "msg": "系统错误信息", + "data": [] +} +``` + +## 注意事项 + +1. **Token验证失败**一律返回 332 状态码 +2. **业务验证失败**(如参数错误、数据不存在、权限不足)返回 422 状态码 +3. **系统异常**(如数据库异常、网络异常)返回 500 状态码 +4. **成功操作**返回 200 状态码 +5. **积分不足**等特殊业务场景也使用 422 状态码 + +## 下一步工作 + +需要继续对剩余的方法进行统一响应格式处理,确保所有小程序接口都使用统一的响应格式。 \ No newline at end of file diff --git a/idea-utf8.bat b/idea-utf8.bat new file mode 100644 index 0000000..85b4909 --- /dev/null +++ b/idea-utf8.bat @@ -0,0 +1,12 @@ +@echo off +chcp 65001 +set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8 -Duser.language=zh -Duser.country=CN +echo 正在以UTF-8编码启动IDEA... +echo 请用这个脚本启动IDEA来解决中文显示问题 +echo. +echo 使用方法: +echo 1. 将此文件复制到IDEA安装目录的bin文件夹中 +echo 2. 双击运行此文件来启动IDEA +echo 3. 或者修改IDEA的桌面快捷方式指向此文件 +echo. +pause \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..f139f89 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5815 @@ +{ + "name": "RuoYi-Vue-master", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "quill": "^1.3.7", + "quill-image-resize-module": "^3.0.0", + "vue-quill-editor": "^3.0.6" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/deep-equal": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.5.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eventemitter3": { + "version": "2.0.3", + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.1.2", + "license": "Apache-2.0" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arguments": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/parchment": { + "version": "1.1.4", + "license": "BSD-3-Clause" + }, + "node_modules/quill": { + "version": "1.3.7", + "resolved": "https://registry.npmmirror.com/quill/-/quill-1.3.7.tgz", + "integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==", + "dependencies": { + "clone": "^2.1.1", + "deep-equal": "^1.0.1", + "eventemitter3": "^2.0.3", + "extend": "^3.0.2", + "parchment": "^1.1.4", + "quill-delta": "^3.6.2" + } + }, + "node_modules/quill-delta": { + "version": "3.6.3", + "license": "MIT", + "dependencies": { + "deep-equal": "^1.0.1", + "extend": "^3.0.2", + "fast-diff": "1.1.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/quill-image-resize-module": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/quill-image-resize-module/-/quill-image-resize-module-3.0.0.tgz", + "integrity": "sha512-1TZBnUxU/WIx5dPyVjQ9yN7C6mLZSp04HyWBEMqT320DIq4MW4JgzlOPDZX5ZpBM3bU6sacU4kTLUc8VgYQZYw==", + "hasShrinkwrap": true, + "dependencies": { + "lodash": "^4.17.4", + "quill": "^1.2.2", + "raw-loader": "^0.5.1" + } + }, + "node_modules/quill-image-resize-module/node_modules/acorn": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/acorn-dynamic-import": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/acorn-dynamic-import/node_modules/acorn": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/acorn-jsx/node_modules/acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/ajv": { + "version": "4.11.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/ajv-keywords": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/anymatch": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/aria-query": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-0.3.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/arr-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/array.prototype.find": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.0.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/asn1.js": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.3.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-cli": { + "version": "6.24.0", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.24.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-code-frame": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-core": { + "version": "6.24.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.24.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-eslint": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-generator": { + "version": "6.24.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.24.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-helper-call-delegate": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-helper-define-map": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.23.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-helper-explode-assignable-expression": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-helper-function-name": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.23.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-helper-get-function-arity": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-helper-hoist-variables": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-helper-optimise-call-expression": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.23.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-helper-regex": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-helper-remap-async-to-generator": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-helper-replace-supers": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.23.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-helpers": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.23.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-loader": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.4.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-syntax-class-properties": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-async-to-generator": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-class-properties": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.23.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-block-scoping": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.23.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-classes": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.23.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-computed-properties": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-function-name": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.24.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.23.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-object-super": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-parameters": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.23.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-sticky-regex": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-es2015-unicode-regex": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-exponentiation-operator": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-regenerator": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-plugin-transform-strict-mode": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.22.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-polyfill": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-preset-env": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.3.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-preset-es2015": { + "version": "6.24.0", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-register": { + "version": "6.24.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-runtime": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-template": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.23.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-traverse": { + "version": "6.23.1", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.23.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babel-types": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.23.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/babylon": { + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.16.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/base64-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/big.js": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/binary-extensions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/brace-expansion": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/browserify-aes": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/browserify-cipher": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/browserify-des": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/buffer-shims": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/caniuse-db": { + "version": "1.0.30000646", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000646.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/chokidar": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.6.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/cipher-base": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/circular-json": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/cli-width": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/convert-source-map": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/core-js": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/create-ecdh": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/create-hash": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/create-hmac": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/crypto-browserify": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/damerau-levenshtein": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/debug": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/diffie-hellman": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/doctrine": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/domain-browser": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/electron-to-chromium": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/emoji-regex": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.4.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/enhanced-resolve": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/errno": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/es-abstract": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.7.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/es5-ext": { + "version": "0.10.15", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.15.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/es6-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/eslint": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/eslint-config-airbnb": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-14.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/eslint-config-airbnb-base": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.1.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/eslint-import-resolver-node": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/eslint-module-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/eslint-module-utils/node_modules/debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/eslint-module-utils/node_modules/ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/eslint-plugin-import": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.2.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/eslint-plugin-jsx-a11y": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-4.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/eslint-plugin-react": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/eslint/node_modules/user-home": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/espree": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.4.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/esquery": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/esrecurse": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/esrecurse/node_modules/estraverse": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/eventemitter3": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/evp_bytestokey": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/extend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fast-diff": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/filename-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/flat-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fs-readdir-recursive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.1.tgz", + "extraneous": true, + "hasInstallScript": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/abbrev": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/aproba": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/are-we-there-yet": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/brace-expansion": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/buffer-shims": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/dashdash/node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/deep-extend": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/extend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/extsprintf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/form-data": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/fstream": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/fstream-ignore": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/gauge": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/getpass": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/getpass/node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/ini": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/is-my-json-valid": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/jodid25519": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/jsprim": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/mime-db": { + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/mime-types": { + "version": "2.1.14", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/node-pre-gyp": { + "version": "0.6.33", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.33.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/npmlog": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/qs": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/rc": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.7.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/rc/node_modules/minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/readable-stream": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/rimraf": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/sshpk": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/sshpk/node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/tar-pack": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.3.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/tar-pack/node_modules/once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/tar-pack/node_modules/readable-stream": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/tough-cookie": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/uid-number": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/uuid": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/verror": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/wide-align": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/fsevents/node_modules/xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/function-bind": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/globals": { + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/hash.js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/hmac-drbg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/hosted-git-info": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/https-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/ignore": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.2.6.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/inquirer": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/interpret": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-callable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-dotfile": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-my-json-valid": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-path-inside": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-resolvable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/js-tokens": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/js-yaml": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/json-loader": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/jsx-ast-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/kind-of": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/load-json-file/node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/loader-runner": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" + }, + "node_modules/quill-image-resize-module/node_modules/lodash.cond": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/miller-rabin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/minimalistic-assert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/mute-stream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/nan": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.5.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/node-libs-browser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/normalize-package-data": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.6.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/object.assign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/optionator/node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/os-browserify": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/output-file-sync": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/parchment": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/parchment/-/parchment-1.0.8.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/parse-asn1": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/pbkdf2": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.9.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/pkg-up": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/pluralize": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/private": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/process": { + "version": "0.11.9", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.9.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/prr": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/public-encrypt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/quill": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/quill/-/quill-1.2.3.tgz" + }, + "node_modules/quill-image-resize-module/node_modules/quill-delta": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.5.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/randomatic": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/randombytes": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/raw-loader": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz" + }, + "node_modules/quill-image-resize-module/node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/readable-stream": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/readline2": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/regenerate": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/regenerator-runtime": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/regenerator-transform": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.8.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/regex-cache": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/remove-trailing-separator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/resolve": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/rimraf": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/ripemd160": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/run-async": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/rx-lite": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/sha.js": { + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/shelljs": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.7.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/source-list-map": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-1.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/source-map-support": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.14.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/stream-http": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/table": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/table/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/table/node_modules/string-width": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/tapable": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.6.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/timers-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/to-fast-properties": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/tryit": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/uglify-js": { + "version": "2.8.20", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.20.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/util/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/v8flags": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.0.12.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/watchpack": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.3.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/webpack": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.3.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/webpack-sources": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.2.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/webpack/node_modules/acorn": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/webpack/node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/webpack/node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/webpack/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/webpack/node_modules/yargs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "extraneous": true + }, + "node_modules/quill-image-resize-module/node_modules/yargs-parser/node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "extraneous": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/vue-quill-editor": { + "version": "3.0.6", + "resolved": "https://registry.npmmirror.com/vue-quill-editor/-/vue-quill-editor-3.0.6.tgz", + "integrity": "sha512-g20oSZNWg8Hbu41Kinjd55e235qVWPLfg4NvsLW6d+DhgBTFbEuMpcWlUdrD6qT3+Noim6DRu18VLM9lVShXOQ==", + "dependencies": { + "object-assign": "^4.1.1", + "quill": "^1.3.4" + }, + "engines": { + "node": ">= 4.0.0", + "npm": ">= 3.0.0" + } + } + }, + "dependencies": { + "call-bind": { + "version": "1.0.8", + "requires": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + } + }, + "call-bind-apply-helpers": { + "version": "1.0.2", + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + } + }, + "call-bound": { + "version": "1.0.4", + "requires": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + } + }, + "clone": { + "version": "2.1.2" + }, + "deep-equal": { + "version": "1.1.2", + "requires": { + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.5.1" + } + }, + "define-data-property": { + "version": "1.1.4", + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "define-properties": { + "version": "1.2.1", + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "dunder-proto": { + "version": "1.0.1", + "requires": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + } + }, + "es-define-property": { + "version": "1.0.1" + }, + "es-errors": { + "version": "1.3.0" + }, + "es-object-atoms": { + "version": "1.1.1", + "requires": { + "es-errors": "^1.3.0" + } + }, + "eventemitter3": { + "version": "2.0.3" + }, + "extend": { + "version": "3.0.2" + }, + "fast-diff": { + "version": "1.1.2" + }, + "function-bind": { + "version": "1.1.2" + }, + "functions-have-names": { + "version": "1.2.3" + }, + "get-intrinsic": { + "version": "1.3.0", + "requires": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + } + }, + "get-proto": { + "version": "1.0.1", + "requires": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + } + }, + "gopd": { + "version": "1.2.0" + }, + "has-property-descriptors": { + "version": "1.0.2", + "requires": { + "es-define-property": "^1.0.0" + } + }, + "has-symbols": { + "version": "1.1.0" + }, + "has-tostringtag": { + "version": "1.0.2", + "requires": { + "has-symbols": "^1.0.3" + } + }, + "hasown": { + "version": "2.0.2", + "requires": { + "function-bind": "^1.1.2" + } + }, + "is-arguments": { + "version": "1.2.0", + "requires": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + } + }, + "is-date-object": { + "version": "1.1.0", + "requires": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + } + }, + "is-regex": { + "version": "1.2.1", + "requires": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + } + }, + "math-intrinsics": { + "version": "1.1.0" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-is": { + "version": "1.1.6", + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + } + }, + "object-keys": { + "version": "1.1.1" + }, + "parchment": { + "version": "1.1.4" + }, + "quill": { + "version": "1.3.7", + "resolved": "https://registry.npmmirror.com/quill/-/quill-1.3.7.tgz", + "integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==", + "requires": { + "clone": "^2.1.1", + "deep-equal": "^1.0.1", + "eventemitter3": "^2.0.3", + "extend": "^3.0.2", + "parchment": "^1.1.4", + "quill-delta": "^3.6.2" + } + }, + "quill-delta": { + "version": "3.6.3", + "requires": { + "deep-equal": "^1.0.1", + "extend": "^3.0.2", + "fast-diff": "1.1.2" + } + }, + "quill-image-resize-module": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/quill-image-resize-module/-/quill-image-resize-module-3.0.0.tgz", + "integrity": "sha512-1TZBnUxU/WIx5dPyVjQ9yN7C6mLZSp04HyWBEMqT320DIq4MW4JgzlOPDZX5ZpBM3bU6sacU4kTLUc8VgYQZYw==", + "requires": { + "lodash": "^4.17.4", + "quill": "^1.2.2", + "raw-loader": "^0.5.1" + }, + "dependencies": { + "acorn": { + "version": "https://registry.npmjs.org/acorn/-/acorn-5.0.2.tgz", + "extraneous": true + }, + "acorn-dynamic-import": { + "version": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "extraneous": true, + "dependencies": { + "acorn": { + "version": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz", + "extraneous": true + } + } + }, + "acorn-jsx": { + "version": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "extraneous": true, + "dependencies": { + "acorn": { + "version": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "extraneous": true + } + } + }, + "ajv": { + "version": "https://registry.npmjs.org/ajv/-/ajv-4.11.5.tgz", + "extraneous": true + }, + "ajv-keywords": { + "version": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", + "extraneous": true + }, + "align-text": { + "version": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "extraneous": true + }, + "ansi-escapes": { + "version": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "extraneous": true + }, + "ansi-regex": { + "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "extraneous": true + }, + "ansi-styles": { + "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "extraneous": true + }, + "anymatch": { + "version": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", + "extraneous": true + }, + "argparse": { + "version": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "extraneous": true + }, + "aria-query": { + "version": "https://registry.npmjs.org/aria-query/-/aria-query-0.3.0.tgz", + "extraneous": true + }, + "arr-diff": { + "version": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "extraneous": true + }, + "arr-flatten": { + "version": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz", + "extraneous": true + }, + "array-union": { + "version": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "extraneous": true + }, + "array-uniq": { + "version": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "extraneous": true + }, + "array-unique": { + "version": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "extraneous": true + }, + "array.prototype.find": { + "version": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.0.4.tgz", + "extraneous": true + }, + "arrify": { + "version": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "extraneous": true + }, + "asn1.js": { + "version": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", + "extraneous": true + }, + "assert": { + "version": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "extraneous": true + }, + "ast-types-flow": { + "version": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "extraneous": true + }, + "async": { + "version": "https://registry.npmjs.org/async/-/async-2.3.0.tgz", + "extraneous": true + }, + "async-each": { + "version": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "extraneous": true + }, + "babel-cli": { + "version": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.24.0.tgz", + "extraneous": true + }, + "babel-code-frame": { + "version": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", + "extraneous": true + }, + "babel-core": { + "version": "https://registry.npmjs.org/babel-core/-/babel-core-6.24.0.tgz", + "extraneous": true + }, + "babel-eslint": { + "version": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.1.tgz", + "extraneous": true + }, + "babel-generator": { + "version": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.24.0.tgz", + "extraneous": true + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.22.0.tgz", + "extraneous": true + }, + "babel-helper-call-delegate": { + "version": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.22.0.tgz", + "extraneous": true + }, + "babel-helper-define-map": { + "version": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.23.0.tgz", + "extraneous": true + }, + "babel-helper-explode-assignable-expression": { + "version": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.22.0.tgz", + "extraneous": true + }, + "babel-helper-function-name": { + "version": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.23.0.tgz", + "extraneous": true + }, + "babel-helper-get-function-arity": { + "version": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.22.0.tgz", + "extraneous": true + }, + "babel-helper-hoist-variables": { + "version": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.22.0.tgz", + "extraneous": true + }, + "babel-helper-optimise-call-expression": { + "version": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.23.0.tgz", + "extraneous": true + }, + "babel-helper-regex": { + "version": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.22.0.tgz", + "extraneous": true + }, + "babel-helper-remap-async-to-generator": { + "version": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.22.0.tgz", + "extraneous": true + }, + "babel-helper-replace-supers": { + "version": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.23.0.tgz", + "extraneous": true + }, + "babel-helpers": { + "version": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.23.0.tgz", + "extraneous": true + }, + "babel-loader": { + "version": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.4.1.tgz", + "extraneous": true + }, + "babel-messages": { + "version": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "extraneous": true + }, + "babel-plugin-check-es2015-constants": { + "version": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "extraneous": true + }, + "babel-plugin-syntax-async-functions": { + "version": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "extraneous": true + }, + "babel-plugin-syntax-class-properties": { + "version": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "extraneous": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "extraneous": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-async-to-generator": { + "version": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.22.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-class-properties": { + "version": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.23.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.23.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-classes": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.23.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.22.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.22.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-for-of": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-function-name": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.22.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-literals": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.23.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-object-super": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.22.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-parameters": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.23.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.22.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-spread": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.22.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.22.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.22.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-regenerator": { + "version": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.22.0.tgz", + "extraneous": true + }, + "babel-plugin-transform-strict-mode": { + "version": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.22.0.tgz", + "extraneous": true + }, + "babel-polyfill": { + "version": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", + "extraneous": true + }, + "babel-preset-env": { + "version": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.3.2.tgz", + "extraneous": true + }, + "babel-preset-es2015": { + "version": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.0.tgz", + "extraneous": true + }, + "babel-register": { + "version": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.0.tgz", + "extraneous": true + }, + "babel-runtime": { + "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", + "extraneous": true + }, + "babel-template": { + "version": "https://registry.npmjs.org/babel-template/-/babel-template-6.23.0.tgz", + "extraneous": true + }, + "babel-traverse": { + "version": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.23.1.tgz", + "extraneous": true + }, + "babel-types": { + "version": "https://registry.npmjs.org/babel-types/-/babel-types-6.23.0.tgz", + "extraneous": true + }, + "babylon": { + "version": "https://registry.npmjs.org/babylon/-/babylon-6.16.1.tgz", + "extraneous": true + }, + "balanced-match": { + "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "extraneous": true + }, + "base64-js": { + "version": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz", + "extraneous": true + }, + "big.js": { + "version": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", + "extraneous": true + }, + "binary-extensions": { + "version": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", + "extraneous": true + }, + "bn.js": { + "version": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "extraneous": true + }, + "brace-expansion": { + "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", + "extraneous": true + }, + "braces": { + "version": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "extraneous": true + }, + "brorand": { + "version": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "extraneous": true + }, + "browserify-aes": { + "version": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", + "extraneous": true + }, + "browserify-cipher": { + "version": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", + "extraneous": true + }, + "browserify-des": { + "version": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", + "extraneous": true + }, + "browserify-rsa": { + "version": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "extraneous": true + }, + "browserify-sign": { + "version": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "extraneous": true + }, + "browserify-zlib": { + "version": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "extraneous": true + }, + "browserslist": { + "version": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "extraneous": true + }, + "buffer": { + "version": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "extraneous": true + }, + "buffer-shims": { + "version": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "extraneous": true + }, + "buffer-xor": { + "version": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "extraneous": true + }, + "builtin-modules": { + "version": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "extraneous": true + }, + "builtin-status-codes": { + "version": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "extraneous": true + }, + "caller-path": { + "version": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "extraneous": true + }, + "callsites": { + "version": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "extraneous": true + }, + "camelcase": { + "version": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "extraneous": true + }, + "caniuse-db": { + "version": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000646.tgz", + "extraneous": true + }, + "center-align": { + "version": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "extraneous": true + }, + "chalk": { + "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "extraneous": true + }, + "chokidar": { + "version": "https://registry.npmjs.org/chokidar/-/chokidar-1.6.1.tgz", + "extraneous": true + }, + "cipher-base": { + "version": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", + "extraneous": true + }, + "circular-json": { + "version": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz", + "extraneous": true + }, + "cli-cursor": { + "version": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "extraneous": true + }, + "cli-width": { + "version": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", + "extraneous": true + }, + "cliui": { + "version": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "extraneous": true + }, + "clone": { + "version": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "extraneous": true + }, + "co": { + "version": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "extraneous": true + }, + "code-point-at": { + "version": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "extraneous": true + }, + "commander": { + "version": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "extraneous": true + }, + "commondir": { + "version": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "extraneous": true + }, + "concat-map": { + "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "extraneous": true + }, + "concat-stream": { + "version": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "extraneous": true + }, + "console-browserify": { + "version": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "extraneous": true + }, + "constants-browserify": { + "version": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "extraneous": true + }, + "contains-path": { + "version": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "extraneous": true + }, + "convert-source-map": { + "version": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", + "extraneous": true + }, + "core-js": { + "version": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", + "extraneous": true + }, + "core-util-is": { + "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "extraneous": true + }, + "create-ecdh": { + "version": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "extraneous": true + }, + "create-hash": { + "version": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz", + "extraneous": true + }, + "create-hmac": { + "version": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz", + "extraneous": true + }, + "crypto-browserify": { + "version": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz", + "extraneous": true + }, + "d": { + "version": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "extraneous": true + }, + "damerau-levenshtein": { + "version": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz", + "extraneous": true + }, + "date-now": { + "version": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "extraneous": true + }, + "debug": { + "version": "https://registry.npmjs.org/debug/-/debug-2.6.3.tgz", + "extraneous": true + }, + "decamelize": { + "version": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "extraneous": true + }, + "deep-equal": { + "version": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "extraneous": true + }, + "deep-is": { + "version": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "extraneous": true + }, + "define-properties": { + "version": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "extraneous": true + }, + "del": { + "version": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "extraneous": true + }, + "des.js": { + "version": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "extraneous": true + }, + "detect-indent": { + "version": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "extraneous": true + }, + "diffie-hellman": { + "version": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", + "extraneous": true + }, + "doctrine": { + "version": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", + "extraneous": true + }, + "domain-browser": { + "version": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "extraneous": true + }, + "electron-to-chromium": { + "version": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.2.tgz", + "extraneous": true + }, + "elliptic": { + "version": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "extraneous": true + }, + "emoji-regex": { + "version": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.4.1.tgz", + "extraneous": true + }, + "emojis-list": { + "version": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "extraneous": true + }, + "enhanced-resolve": { + "version": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.1.0.tgz", + "extraneous": true + }, + "errno": { + "version": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", + "extraneous": true + }, + "error-ex": { + "version": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "extraneous": true + }, + "es-abstract": { + "version": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.7.0.tgz", + "extraneous": true + }, + "es-to-primitive": { + "version": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "extraneous": true + }, + "es5-ext": { + "version": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.15.tgz", + "extraneous": true + }, + "es6-iterator": { + "version": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", + "extraneous": true + }, + "es6-map": { + "version": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "extraneous": true + }, + "es6-set": { + "version": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "extraneous": true + }, + "es6-symbol": { + "version": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "extraneous": true + }, + "es6-weak-map": { + "version": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "extraneous": true + }, + "escape-string-regexp": { + "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "extraneous": true + }, + "escope": { + "version": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "extraneous": true + }, + "eslint": { + "version": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", + "extraneous": true, + "dependencies": { + "user-home": { + "version": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", + "extraneous": true + } + } + }, + "eslint-config-airbnb": { + "version": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-14.1.0.tgz", + "extraneous": true + }, + "eslint-config-airbnb-base": { + "version": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.1.2.tgz", + "extraneous": true + }, + "eslint-import-resolver-node": { + "version": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz", + "extraneous": true + }, + "eslint-module-utils": { + "version": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.0.0.tgz", + "extraneous": true, + "dependencies": { + "debug": { + "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "extraneous": true + }, + "ms": { + "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "extraneous": true + } + } + }, + "eslint-plugin-import": { + "version": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.2.0.tgz", + "extraneous": true, + "dependencies": { + "doctrine": { + "version": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "extraneous": true + } + } + }, + "eslint-plugin-jsx-a11y": { + "version": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-4.0.0.tgz", + "extraneous": true + }, + "eslint-plugin-react": { + "version": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz", + "extraneous": true, + "dependencies": { + "doctrine": { + "version": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "extraneous": true + } + } + }, + "espree": { + "version": "https://registry.npmjs.org/espree/-/espree-3.4.1.tgz", + "extraneous": true + }, + "esprima": { + "version": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "extraneous": true + }, + "esquery": { + "version": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", + "extraneous": true + }, + "esrecurse": { + "version": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz", + "extraneous": true, + "dependencies": { + "estraverse": { + "version": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz", + "extraneous": true + } + } + }, + "estraverse": { + "version": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "extraneous": true + }, + "esutils": { + "version": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "extraneous": true + }, + "event-emitter": { + "version": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "extraneous": true + }, + "eventemitter3": { + "version": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", + "extraneous": true + }, + "events": { + "version": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "extraneous": true + }, + "evp_bytestokey": { + "version": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", + "extraneous": true + }, + "exit-hook": { + "version": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "extraneous": true + }, + "expand-brackets": { + "version": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "extraneous": true + }, + "expand-range": { + "version": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "extraneous": true + }, + "extend": { + "version": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", + "extraneous": true + }, + "extglob": { + "version": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "extraneous": true + }, + "fast-diff": { + "version": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.1.tgz", + "extraneous": true + }, + "fast-levenshtein": { + "version": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "extraneous": true + }, + "figures": { + "version": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "extraneous": true + }, + "file-entry-cache": { + "version": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "extraneous": true + }, + "filename-regex": { + "version": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz", + "extraneous": true + }, + "fill-range": { + "version": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "extraneous": true + }, + "find-cache-dir": { + "version": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "extraneous": true + }, + "find-up": { + "version": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "extraneous": true + }, + "flat-cache": { + "version": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", + "extraneous": true + }, + "for-in": { + "version": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "extraneous": true + }, + "for-own": { + "version": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "extraneous": true + }, + "foreach": { + "version": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "extraneous": true + }, + "fs-readdir-recursive": { + "version": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz", + "extraneous": true + }, + "fs.realpath": { + "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "extraneous": true + }, + "fsevents": { + "version": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.1.tgz", + "extraneous": true, + "dependencies": { + "abbrev": { + "version": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "extraneous": true + }, + "ansi-regex": { + "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "extraneous": true + }, + "ansi-styles": { + "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "extraneous": true + }, + "aproba": { + "version": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", + "extraneous": true + }, + "are-we-there-yet": { + "version": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz", + "extraneous": true + }, + "asn1": { + "version": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "extraneous": true + }, + "assert-plus": { + "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "extraneous": true + }, + "asynckit": { + "version": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "extraneous": true + }, + "aws-sign2": { + "version": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "extraneous": true + }, + "aws4": { + "version": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "extraneous": true + }, + "balanced-match": { + "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "extraneous": true + }, + "bcrypt-pbkdf": { + "version": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "extraneous": true + }, + "block-stream": { + "version": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "extraneous": true + }, + "boom": { + "version": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "extraneous": true + }, + "brace-expansion": { + "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", + "extraneous": true + }, + "buffer-shims": { + "version": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "extraneous": true + }, + "caseless": { + "version": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "extraneous": true + }, + "chalk": { + "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "extraneous": true + }, + "code-point-at": { + "version": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "extraneous": true + }, + "combined-stream": { + "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "extraneous": true + }, + "commander": { + "version": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "extraneous": true + }, + "concat-map": { + "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "extraneous": true + }, + "console-control-strings": { + "version": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "extraneous": true + }, + "core-util-is": { + "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "extraneous": true + }, + "cryptiles": { + "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "extraneous": true + }, + "dashdash": { + "version": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "extraneous": true, + "dependencies": { + "assert-plus": { + "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "extraneous": true + } + } + }, + "debug": { + "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "extraneous": true + }, + "deep-extend": { + "version": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz", + "extraneous": true + }, + "delayed-stream": { + "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "extraneous": true + }, + "delegates": { + "version": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "extraneous": true + }, + "ecc-jsbn": { + "version": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "extraneous": true + }, + "escape-string-regexp": { + "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "extraneous": true + }, + "extend": { + "version": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", + "extraneous": true + }, + "extsprintf": { + "version": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "extraneous": true + }, + "forever-agent": { + "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "extraneous": true + }, + "form-data": { + "version": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", + "extraneous": true + }, + "fs.realpath": { + "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "extraneous": true + }, + "fstream": { + "version": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", + "extraneous": true + }, + "fstream-ignore": { + "version": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "extraneous": true + }, + "gauge": { + "version": "https://registry.npmjs.org/gauge/-/gauge-2.7.3.tgz", + "extraneous": true + }, + "generate-function": { + "version": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "extraneous": true + }, + "generate-object-property": { + "version": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "extraneous": true + }, + "getpass": { + "version": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", + "extraneous": true, + "dependencies": { + "assert-plus": { + "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "extraneous": true + } + } + }, + "glob": { + "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", + "extraneous": true + }, + "graceful-fs": { + "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "extraneous": true + }, + "graceful-readlink": { + "version": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "extraneous": true + }, + "har-validator": { + "version": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "extraneous": true + }, + "has-ansi": { + "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "extraneous": true + }, + "has-unicode": { + "version": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "extraneous": true + }, + "hawk": { + "version": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "extraneous": true + }, + "hoek": { + "version": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "extraneous": true + }, + "http-signature": { + "version": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "extraneous": true + }, + "inflight": { + "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "extraneous": true + }, + "inherits": { + "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "extraneous": true + }, + "ini": { + "version": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "extraneous": true + }, + "is-fullwidth-code-point": { + "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "extraneous": true + }, + "is-my-json-valid": { + "version": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz", + "extraneous": true + }, + "is-property": { + "version": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "extraneous": true + }, + "is-typedarray": { + "version": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "extraneous": true + }, + "isarray": { + "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "extraneous": true + }, + "isstream": { + "version": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "extraneous": true + }, + "jodid25519": { + "version": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "extraneous": true + }, + "jsbn": { + "version": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "extraneous": true + }, + "json-schema": { + "version": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "extraneous": true + }, + "json-stringify-safe": { + "version": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "extraneous": true + }, + "jsonpointer": { + "version": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "extraneous": true + }, + "jsprim": { + "version": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz", + "extraneous": true + }, + "mime-db": { + "version": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz", + "extraneous": true + }, + "mime-types": { + "version": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", + "extraneous": true + }, + "minimatch": { + "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", + "extraneous": true + }, + "minimist": { + "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "extraneous": true + }, + "mkdirp": { + "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "extraneous": true + }, + "ms": { + "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "extraneous": true + }, + "node-pre-gyp": { + "version": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.33.tgz", + "extraneous": true + }, + "nopt": { + "version": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "extraneous": true + }, + "npmlog": { + "version": "https://registry.npmjs.org/npmlog/-/npmlog-4.0.2.tgz", + "extraneous": true + }, + "number-is-nan": { + "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "extraneous": true + }, + "oauth-sign": { + "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "extraneous": true + }, + "object-assign": { + "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "extraneous": true + }, + "once": { + "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "extraneous": true + }, + "path-is-absolute": { + "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "extraneous": true + }, + "pinkie": { + "version": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "extraneous": true + }, + "pinkie-promise": { + "version": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "extraneous": true + }, + "process-nextick-args": { + "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "extraneous": true + }, + "punycode": { + "version": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "extraneous": true + }, + "qs": { + "version": "https://registry.npmjs.org/qs/-/qs-6.3.1.tgz", + "extraneous": true + }, + "rc": { + "version": "https://registry.npmjs.org/rc/-/rc-1.1.7.tgz", + "extraneous": true, + "dependencies": { + "minimist": { + "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "extraneous": true + } + } + }, + "readable-stream": { + "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz", + "extraneous": true + }, + "request": { + "version": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "extraneous": true + }, + "rimraf": { + "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", + "extraneous": true + }, + "semver": { + "version": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "extraneous": true + }, + "set-blocking": { + "version": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "extraneous": true + }, + "signal-exit": { + "version": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "extraneous": true + }, + "sntp": { + "version": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "extraneous": true + }, + "sshpk": { + "version": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz", + "extraneous": true, + "dependencies": { + "assert-plus": { + "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "extraneous": true + } + } + }, + "string_decoder": { + "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "extraneous": true + }, + "string-width": { + "version": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "extraneous": true + }, + "stringstream": { + "version": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "extraneous": true + }, + "strip-ansi": { + "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "extraneous": true + }, + "strip-json-comments": { + "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "extraneous": true + }, + "supports-color": { + "version": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "extraneous": true + }, + "tar": { + "version": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "extraneous": true + }, + "tar-pack": { + "version": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.3.0.tgz", + "extraneous": true, + "dependencies": { + "once": { + "version": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "extraneous": true + }, + "readable-stream": { + "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz", + "extraneous": true + } + } + }, + "tough-cookie": { + "version": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "extraneous": true + }, + "tunnel-agent": { + "version": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "extraneous": true + }, + "tweetnacl": { + "version": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "extraneous": true + }, + "uid-number": { + "version": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "extraneous": true + }, + "util-deprecate": { + "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "extraneous": true + }, + "uuid": { + "version": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "extraneous": true + }, + "verror": { + "version": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "extraneous": true + }, + "wide-align": { + "version": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz", + "extraneous": true + }, + "wrappy": { + "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "extraneous": true + }, + "xtend": { + "version": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "extraneous": true + } + } + }, + "function-bind": { + "version": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", + "extraneous": true + }, + "generate-function": { + "version": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "extraneous": true + }, + "generate-object-property": { + "version": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "extraneous": true + }, + "get-caller-file": { + "version": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "extraneous": true + }, + "glob": { + "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", + "extraneous": true + }, + "glob-base": { + "version": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "extraneous": true + }, + "glob-parent": { + "version": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "extraneous": true + }, + "globals": { + "version": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz", + "extraneous": true + }, + "globby": { + "version": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "extraneous": true + }, + "graceful-fs": { + "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "extraneous": true + }, + "graceful-readlink": { + "version": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "extraneous": true + }, + "has": { + "version": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "extraneous": true + }, + "has-ansi": { + "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "extraneous": true + }, + "has-flag": { + "version": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "extraneous": true + }, + "hash.js": { + "version": "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz", + "extraneous": true + }, + "hmac-drbg": { + "version": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.0.tgz", + "extraneous": true + }, + "home-or-tmp": { + "version": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "extraneous": true + }, + "hosted-git-info": { + "version": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.1.tgz", + "extraneous": true + }, + "https-browserify": { + "version": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", + "extraneous": true + }, + "ieee754": { + "version": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "extraneous": true + }, + "ignore": { + "version": "https://registry.npmjs.org/ignore/-/ignore-3.2.6.tgz", + "extraneous": true + }, + "imurmurhash": { + "version": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "extraneous": true + }, + "indexof": { + "version": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "extraneous": true + }, + "inflight": { + "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "extraneous": true + }, + "inherits": { + "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "extraneous": true + }, + "inquirer": { + "version": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", + "extraneous": true + }, + "interpret": { + "version": "https://registry.npmjs.org/interpret/-/interpret-1.0.2.tgz", + "extraneous": true + }, + "invariant": { + "version": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "extraneous": true + }, + "invert-kv": { + "version": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "extraneous": true + }, + "is-arrayish": { + "version": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "extraneous": true + }, + "is-binary-path": { + "version": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "extraneous": true + }, + "is-buffer": { + "version": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "extraneous": true + }, + "is-builtin-module": { + "version": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "extraneous": true + }, + "is-callable": { + "version": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "extraneous": true + }, + "is-date-object": { + "version": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "extraneous": true + }, + "is-dotfile": { + "version": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz", + "extraneous": true + }, + "is-equal-shallow": { + "version": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "extraneous": true + }, + "is-extendable": { + "version": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "extraneous": true + }, + "is-extglob": { + "version": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "extraneous": true + }, + "is-finite": { + "version": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "extraneous": true + }, + "is-fullwidth-code-point": { + "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "extraneous": true + }, + "is-glob": { + "version": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "extraneous": true + }, + "is-my-json-valid": { + "version": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", + "extraneous": true + }, + "is-number": { + "version": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "extraneous": true + }, + "is-path-cwd": { + "version": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "extraneous": true + }, + "is-path-in-cwd": { + "version": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "extraneous": true + }, + "is-path-inside": { + "version": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", + "extraneous": true + }, + "is-posix-bracket": { + "version": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "extraneous": true + }, + "is-primitive": { + "version": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "extraneous": true + }, + "is-property": { + "version": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "extraneous": true + }, + "is-regex": { + "version": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "extraneous": true + }, + "is-resolvable": { + "version": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", + "extraneous": true + }, + "is-symbol": { + "version": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "extraneous": true + }, + "is-utf8": { + "version": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "extraneous": true + }, + "isarray": { + "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "extraneous": true + }, + "isobject": { + "version": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "extraneous": true + }, + "js-tokens": { + "version": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", + "extraneous": true + }, + "js-yaml": { + "version": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.2.tgz", + "extraneous": true + }, + "jsesc": { + "version": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "extraneous": true + }, + "json-loader": { + "version": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz", + "extraneous": true + }, + "json-stable-stringify": { + "version": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "extraneous": true + }, + "json5": { + "version": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "extraneous": true + }, + "jsonify": { + "version": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "extraneous": true + }, + "jsonpointer": { + "version": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "extraneous": true + }, + "jsx-ast-utils": { + "version": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.0.tgz", + "extraneous": true + }, + "kind-of": { + "version": "https://registry.npmjs.org/kind-of/-/kind-of-3.1.0.tgz", + "extraneous": true + }, + "lazy-cache": { + "version": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "extraneous": true + }, + "lcid": { + "version": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "extraneous": true + }, + "levn": { + "version": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "extraneous": true + }, + "load-json-file": { + "version": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "extraneous": true, + "dependencies": { + "strip-bom": { + "version": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "extraneous": true + } + } + }, + "loader-runner": { + "version": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", + "extraneous": true + }, + "loader-utils": { + "version": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "extraneous": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" + }, + "lodash.cond": { + "version": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", + "extraneous": true + }, + "longest": { + "version": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "extraneous": true + }, + "loose-envify": { + "version": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "extraneous": true + }, + "memory-fs": { + "version": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "extraneous": true + }, + "micromatch": { + "version": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "extraneous": true + }, + "miller-rabin": { + "version": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", + "extraneous": true + }, + "minimalistic-assert": { + "version": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "extraneous": true + }, + "minimalistic-crypto-utils": { + "version": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "extraneous": true + }, + "minimatch": { + "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", + "extraneous": true + }, + "minimist": { + "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "extraneous": true + }, + "mkdirp": { + "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "extraneous": true + }, + "ms": { + "version": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "extraneous": true + }, + "mute-stream": { + "version": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", + "extraneous": true + }, + "nan": { + "version": "https://registry.npmjs.org/nan/-/nan-2.5.1.tgz", + "extraneous": true + }, + "natural-compare": { + "version": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "extraneous": true + }, + "node-libs-browser": { + "version": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz", + "extraneous": true + }, + "normalize-package-data": { + "version": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.6.tgz", + "extraneous": true + }, + "normalize-path": { + "version": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "extraneous": true + }, + "number-is-nan": { + "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "extraneous": true + }, + "object-assign": { + "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "extraneous": true + }, + "object-keys": { + "version": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "extraneous": true + }, + "object.assign": { + "version": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz", + "extraneous": true + }, + "object.omit": { + "version": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "extraneous": true + }, + "once": { + "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "extraneous": true + }, + "onetime": { + "version": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "extraneous": true + }, + "optionator": { + "version": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "extraneous": true, + "dependencies": { + "wordwrap": { + "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "extraneous": true + } + } + }, + "os-browserify": { + "version": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", + "extraneous": true + }, + "os-homedir": { + "version": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "extraneous": true + }, + "os-locale": { + "version": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "extraneous": true + }, + "os-tmpdir": { + "version": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "extraneous": true + }, + "output-file-sync": { + "version": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "extraneous": true + }, + "pako": { + "version": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "extraneous": true + }, + "parchment": { + "version": "https://registry.npmjs.org/parchment/-/parchment-1.0.8.tgz", + "extraneous": true + }, + "parse-asn1": { + "version": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", + "extraneous": true + }, + "parse-glob": { + "version": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "extraneous": true + }, + "parse-json": { + "version": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "extraneous": true + }, + "path-browserify": { + "version": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "extraneous": true + }, + "path-exists": { + "version": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "extraneous": true + }, + "path-is-absolute": { + "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "extraneous": true + }, + "path-is-inside": { + "version": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "extraneous": true + }, + "path-parse": { + "version": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "extraneous": true + }, + "path-type": { + "version": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "extraneous": true + }, + "pbkdf2": { + "version": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.9.tgz", + "extraneous": true + }, + "pify": { + "version": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "extraneous": true + }, + "pinkie": { + "version": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "extraneous": true + }, + "pinkie-promise": { + "version": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "extraneous": true + }, + "pkg-dir": { + "version": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "extraneous": true + }, + "pkg-up": { + "version": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz", + "extraneous": true + }, + "pluralize": { + "version": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", + "extraneous": true + }, + "prelude-ls": { + "version": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "extraneous": true + }, + "preserve": { + "version": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "extraneous": true + }, + "private": { + "version": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", + "extraneous": true + }, + "process": { + "version": "https://registry.npmjs.org/process/-/process-0.11.9.tgz", + "extraneous": true + }, + "process-nextick-args": { + "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "extraneous": true + }, + "progress": { + "version": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "extraneous": true + }, + "prr": { + "version": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "extraneous": true + }, + "public-encrypt": { + "version": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", + "extraneous": true + }, + "punycode": { + "version": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "extraneous": true + }, + "querystring": { + "version": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "extraneous": true + }, + "querystring-es3": { + "version": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "extraneous": true + }, + "quill": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/quill/-/quill-1.2.3.tgz" + }, + "quill-delta": { + "version": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.5.0.tgz", + "extraneous": true + }, + "randomatic": { + "version": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz", + "extraneous": true + }, + "randombytes": { + "version": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz", + "extraneous": true + }, + "raw-loader": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz" + }, + "read-pkg": { + "version": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "extraneous": true + }, + "read-pkg-up": { + "version": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "extraneous": true + }, + "readable-stream": { + "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz", + "extraneous": true + }, + "readdirp": { + "version": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "extraneous": true + }, + "readline2": { + "version": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", + "extraneous": true + }, + "rechoir": { + "version": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "extraneous": true + }, + "regenerate": { + "version": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", + "extraneous": true + }, + "regenerator-runtime": { + "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.3.tgz", + "extraneous": true + }, + "regenerator-transform": { + "version": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.8.tgz", + "extraneous": true + }, + "regex-cache": { + "version": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", + "extraneous": true + }, + "regexpu-core": { + "version": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "extraneous": true + }, + "regjsgen": { + "version": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "extraneous": true + }, + "regjsparser": { + "version": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "extraneous": true, + "dependencies": { + "jsesc": { + "version": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "extraneous": true + } + } + }, + "remove-trailing-separator": { + "version": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz", + "extraneous": true + }, + "repeat-element": { + "version": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "extraneous": true + }, + "repeat-string": { + "version": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "extraneous": true + }, + "repeating": { + "version": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "extraneous": true + }, + "require-directory": { + "version": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "extraneous": true + }, + "require-main-filename": { + "version": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "extraneous": true + }, + "require-uncached": { + "version": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "extraneous": true + }, + "resolve": { + "version": "https://registry.npmjs.org/resolve/-/resolve-1.3.2.tgz", + "extraneous": true + }, + "resolve-from": { + "version": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "extraneous": true + }, + "restore-cursor": { + "version": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "extraneous": true + }, + "right-align": { + "version": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "extraneous": true + }, + "rimraf": { + "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "extraneous": true + }, + "ripemd160": { + "version": "https://registry.npmjs.org/ripemd160/-/ripemd160-1.0.1.tgz", + "extraneous": true + }, + "run-async": { + "version": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", + "extraneous": true + }, + "rx-lite": { + "version": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", + "extraneous": true + }, + "semver": { + "version": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "extraneous": true + }, + "set-blocking": { + "version": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "extraneous": true + }, + "set-immediate-shim": { + "version": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "extraneous": true + }, + "setimmediate": { + "version": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "extraneous": true + }, + "sha.js": { + "version": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", + "extraneous": true + }, + "shelljs": { + "version": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.7.tgz", + "extraneous": true + }, + "slash": { + "version": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "extraneous": true + }, + "slice-ansi": { + "version": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "extraneous": true + }, + "source-list-map": { + "version": "https://registry.npmjs.org/source-list-map/-/source-list-map-1.1.1.tgz", + "extraneous": true + }, + "source-map": { + "version": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "extraneous": true + }, + "source-map-support": { + "version": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.14.tgz", + "extraneous": true + }, + "spdx-correct": { + "version": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "extraneous": true + }, + "spdx-expression-parse": { + "version": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "extraneous": true + }, + "spdx-license-ids": { + "version": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "extraneous": true + }, + "sprintf-js": { + "version": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "extraneous": true + }, + "stream-browserify": { + "version": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "extraneous": true + }, + "stream-http": { + "version": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.0.tgz", + "extraneous": true + }, + "string_decoder": { + "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "extraneous": true + }, + "string-width": { + "version": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "extraneous": true + }, + "strip-ansi": { + "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "extraneous": true + }, + "strip-bom": { + "version": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "extraneous": true + }, + "strip-json-comments": { + "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "extraneous": true + }, + "supports-color": { + "version": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "extraneous": true + }, + "table": { + "version": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", + "extraneous": true, + "dependencies": { + "is-fullwidth-code-point": { + "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "extraneous": true + }, + "string-width": { + "version": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz", + "extraneous": true + } + } + }, + "tapable": { + "version": "https://registry.npmjs.org/tapable/-/tapable-0.2.6.tgz", + "extraneous": true + }, + "text-table": { + "version": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "extraneous": true + }, + "through": { + "version": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "extraneous": true + }, + "timers-browserify": { + "version": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz", + "extraneous": true + }, + "to-arraybuffer": { + "version": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "extraneous": true + }, + "to-fast-properties": { + "version": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.2.tgz", + "extraneous": true + }, + "trim-right": { + "version": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "extraneous": true + }, + "tryit": { + "version": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", + "extraneous": true + }, + "tty-browserify": { + "version": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "extraneous": true + }, + "type-check": { + "version": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "extraneous": true + }, + "typedarray": { + "version": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "extraneous": true + }, + "uglify-js": { + "version": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.20.tgz", + "extraneous": true + }, + "uglify-to-browserify": { + "version": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "extraneous": true + }, + "url": { + "version": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "extraneous": true, + "dependencies": { + "punycode": { + "version": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "extraneous": true + } + } + }, + "user-home": { + "version": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "extraneous": true + }, + "util": { + "version": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "extraneous": true, + "dependencies": { + "inherits": { + "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "extraneous": true + } + } + }, + "util-deprecate": { + "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "extraneous": true + }, + "v8flags": { + "version": "https://registry.npmjs.org/v8flags/-/v8flags-2.0.12.tgz", + "extraneous": true + }, + "validate-npm-package-license": { + "version": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "extraneous": true + }, + "vm-browserify": { + "version": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "extraneous": true + }, + "watchpack": { + "version": "https://registry.npmjs.org/watchpack/-/watchpack-1.3.1.tgz", + "extraneous": true + }, + "webpack": { + "version": "https://registry.npmjs.org/webpack/-/webpack-2.3.3.tgz", + "extraneous": true, + "dependencies": { + "acorn": { + "version": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz", + "extraneous": true + }, + "camelcase": { + "version": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "extraneous": true + }, + "cliui": { + "version": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "extraneous": true + }, + "supports-color": { + "version": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "extraneous": true + }, + "yargs": { + "version": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "extraneous": true + } + } + }, + "webpack-sources": { + "version": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.2.3.tgz", + "extraneous": true + }, + "which-module": { + "version": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "extraneous": true + }, + "window-size": { + "version": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "extraneous": true + }, + "wordwrap": { + "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "extraneous": true + }, + "wrap-ansi": { + "version": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "extraneous": true + }, + "wrappy": { + "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "extraneous": true + }, + "write": { + "version": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "extraneous": true + }, + "xtend": { + "version": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "extraneous": true + }, + "y18n": { + "version": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "extraneous": true + }, + "yargs": { + "version": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "extraneous": true + }, + "yargs-parser": { + "version": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "extraneous": true, + "dependencies": { + "camelcase": { + "version": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "extraneous": true + } + } + } + } + }, + "regexp.prototype.flags": { + "version": "1.5.4", + "requires": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + } + }, + "set-function-length": { + "version": "1.2.2", + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + }, + "set-function-name": { + "version": "2.0.2", + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + } + }, + "vue-quill-editor": { + "version": "3.0.6", + "resolved": "https://registry.npmmirror.com/vue-quill-editor/-/vue-quill-editor-3.0.6.tgz", + "integrity": "sha512-g20oSZNWg8Hbu41Kinjd55e235qVWPLfg4NvsLW6d+DhgBTFbEuMpcWlUdrD6qT3+Noim6DRu18VLM9lVShXOQ==", + "requires": { + "object-assign": "^4.1.1", + "quill": "^1.3.4" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..db24395 --- /dev/null +++ b/package.json @@ -0,0 +1,7 @@ +{ + "dependencies": { + "quill": "^1.3.7", + "quill-image-resize-module": "^3.0.0", + "vue-quill-editor": "^3.0.6" + } +} diff --git a/qodana.yaml b/qodana.yaml new file mode 100644 index 0000000..bf26760 --- /dev/null +++ b/qodana.yaml @@ -0,0 +1,31 @@ +#-------------------------------------------------------------------------------# +# Qodana analysis is configured by qodana.yaml file # +# https://www.jetbrains.com/help/qodana/qodana-yaml.html # +#-------------------------------------------------------------------------------# +version: "1.0" + +#Specify inspection profile for code analysis +profile: + name: qodana.starter + +#Enable inspections +#include: +# - name: + +#Disable inspections +#exclude: +# - name: +# paths: +# - + +projectJDK: "21" #(Applied in CI/CD pipeline) + +#Execute shell command before Qodana execution (Applied in CI/CD pipeline) +#bootstrap: sh ./prepare-qodana.sh + +#Install IDE plugins before Qodana execution (Applied in CI/CD pipeline) +#plugins: +# - id: #(plugin id can be found at https://plugins.jetbrains.com) + +#Specify Qodana linter for analysis (Applied in CI/CD pipeline) +linter: jetbrains/qodana-jvm:2025.1 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java index a9ccb70..fd59c31 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.common.utils.spring.SpringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -42,6 +44,12 @@ public class CommonController private static final String FILE_DELIMETER = ","; + + private static QiniuConfig getQiniuConfig() { + return SpringUtils.getBean(QiniuConfig.class); + } + + /** * 通用下载请求 * @@ -91,7 +99,8 @@ public class CommonController // 使用七牛云上传 String fileUrl = QiniuUploadUtil.uploadFile(file); AjaxResult ajax = AjaxResult.success(); - ajax.put("url", fileUrl); + ajax.put("url", fileUrl); + ajax.put("EditorURL", "https://" + getQiniuConfig().getDomain() + "/" +fileUrl); ajax.put("fileName", fileUrl); ajax.put("newFileName", FileUtils.getName(file.getOriginalFilename())); ajax.put("originalFilename", file.getOriginalFilename()); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppleMemberController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppleMemberController.java index 2f40971..6c9590b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppleMemberController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppleMemberController.java @@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.math.RoundingMode; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -108,11 +109,11 @@ public class AppleMemberController extends BaseController { * @return 支付结果,包含prepayId等微信支付参数 */ @PostMapping("/member/recharge/pay") - public AjaxResult memberRechargePay(HttpServletRequest request) { + public AjaxResult memberRechargePay(@RequestBody Map params,HttpServletRequest request) { try { // 1. 验证用户登录状态 - Map params = new HashMap<>(); - params.put("money", 300); // 测试用固定金额,实际应从请求参数获取 + //Map params = new HashMap<>(); + //params.put("money", 300); // 测试用固定金额,实际应从请求参数获取 String token = request.getHeader("token"); Map userValidation = AppletLoginUtil.validateUserToken(token, usersService); @@ -254,15 +255,75 @@ public class AppleMemberController extends BaseController { * @return 充值类目列表 */ @GetMapping("/member/recharge/catalogue") - public AjaxResult getRechargeCatalogue() { + public AjaxResult getRechargeCatalogue(HttpServletRequest request) { try { + + SimpleDateFormat sdfday = new SimpleDateFormat("yyyy-MM-dd"); + HomeUtril homeUtril = new HomeUtril(); + Map params = new HashMap<>(); + String token = request.getHeader("token"); + Map userValidation = AppletLoginUtil.validateUserToken(token, usersService); + if (!(Boolean) userValidation.get("valid")) { + return AppletControllerUtil.appletWarning("用户未登录或token无效"); + } + + // 2. 获取用户信息 + Users user = (Users) userValidation.get("user"); + if (user == null) { + return AppletControllerUtil.appletWarning("用户信息获取失败"); + } UserMemberRechargeProgram query = new UserMemberRechargeProgram(); query.setStatus(0); // 0=启用状态 query.setType(0); // 0=普通充值类型 List list = userMemberRechargeProgramService .selectUserMemberRechargeProgramList(query); - return AppletControllerUtil.appletSuccess(list); + params.put("balance", user.getBalance()); + params.put("ismember", user.getIsmember()); + params.put("member_begin",user.getMemberBegin() != null ? sdfday.format(user.getMemberBegin()) : null ); + params.put("member_end",user.getMemberEnd() != null ? sdfday.format(user.getMemberEnd()) : null ); + +// params.put("member_begin", user.getIsmember()); +// params.put("member_end", user.getIsmember()); + + int nu= homeUtril.getMemberType(user); + if (nu==0){//新会员 + // 新增:根据会员状态查询充值项目 + Integer queryType = 1; + UserMemberRechargeProgram query2 = new UserMemberRechargeProgram(); + query2.setType(queryType); + query2.setStatus(0); // 只查启用 + java.util.List rechargePrograms = userMemberRechargeProgramService.selectUserMemberRechargeProgramList(query2); + params.put("memberpay", rechargePrograms.getFirst()); + } + if (nu==2){//续费会员 + // 新增:根据会员状态查询充值项目 + Integer queryType =2; + UserMemberRechargeProgram query2 = new UserMemberRechargeProgram(); + query2.setType(queryType); + query2.setStatus(0); // 只查启用 + java.util.List rechargePrograms = userMemberRechargeProgramService.selectUserMemberRechargeProgramList(query2); + params.put("memberpay", rechargePrograms.getFirst()); + } + if (nu==1){//已经是会员 + // 新增:根据会员状态查询充值项目 + Integer queryType =2; + UserMemberRechargeProgram query2 = new UserMemberRechargeProgram(); + query2.setType(queryType); + query2.setStatus(0); // 只查启用 + java.util.List rechargePrograms = userMemberRechargeProgramService.selectUserMemberRechargeProgramList(query2); + params.put("memberpay", rechargePrograms.getFirst()); + } + params.put("list", list); + Map homeNoticeList = homeUtril.getConfigData("config_one"); + JSONObject js= JSONObject.parseObject(homeNoticeList.get("data").toString()); + params.put("notice", js.get("notice")); + //公司简介 + params.put("member", homeUtril.getConfigData("config_five").get("data")); + + + + return AppletControllerUtil.appletSuccess(params); } catch (Exception e) { return AppletControllerUtil.appletError("获取充值类目失败:" + e.getMessage()); } @@ -426,6 +487,58 @@ public class AppleMemberController extends BaseController { } } + /** + * 查询用户充值记录(只返回订单号和金额,带分页) + * @param request HTTP请求对象(需要包含token) + * @param page 页码(默认1) + * @param limit 每页条数(默认10) + * @return 订单号和金额列表 + */ + @GetMapping("/member/recharge/simplelog") + public AjaxResult getRechargeSimpleLog(HttpServletRequest request, + @RequestParam(value = "page", defaultValue = "1") int page, + @RequestParam(value = "limit", defaultValue = "10") int limit) { + try { + // 1. 验证分页参数 + Map pageValidation = PageUtil.validatePageParams(page, limit); + if (!(Boolean) pageValidation.get("valid")) { + return AppletControllerUtil.appletWarning((String) pageValidation.get("message")); + } + // 2. 验证用户登录状态 + String token = request.getHeader("token"); + Map userValidation = AppletLoginUtil.validateUserToken(token, usersService); + if (!(Boolean) userValidation.get("valid")) { + return AppletControllerUtil.appletWarning("用户未登录或token无效"); + } + // 3. 获取用户信息 + Users user = (Users) userValidation.get("user"); + if (user == null) { + return AppletControllerUtil.appletWarning("用户信息获取失败"); + } + // 4. 设置分页参数 + com.github.pagehelper.PageHelper.startPage(page, limit); + // 5. 查询充值记录 + UserMemberRechargeLog query = new UserMemberRechargeLog(); + query.setUid(Math.toIntExact(user.getId())); + List list = userMemberRechargeLogService.selectUserMemberRechargeLogList(query); + // 6. 只返回订单号和金额 +// List> result = new java.util.ArrayList<>(); +// for (UserMemberRechargeLog log : list) { +// Map map = new java.util.HashMap<>(); +// map.put("orderid", log.getOrderid()); +// map.put("inmoney", log.getInmoney()); +// result.add(map); +// } + // 7. 构建分页响应 + TableDataInfo tableDataInfo = getDataTable(list); + Map pageData = PageUtil.buildPageResponse(tableDataInfo, page, limit); + //pageData.put("rows", result); // 用精简后的数据覆盖rows + return AppletControllerUtil.appletSuccess(pageData); + } catch (Exception e) { + return AppletControllerUtil.appletError("获取充值记录失败:" + e.getMessage()); + } + } + // ==================== 订单评价相关接口 ==================== /** @@ -822,24 +935,28 @@ public class AppleMemberController extends BaseController { } /** - * 小程序用户余额日志查询接口 - * + * 小程序用户余额日志查询接口(带分页) * 查询用户的余额变动日志 * 调用工具类方法统一处理 - * * @param request HTTP请求对象(需要包含token) - * @param params 查询参数 + * @param params 查询参数,需包含 page/limit * @return 余额日志列表 */ @PostMapping("/user/balance/logs") public AjaxResult getBalanceLogList(HttpServletRequest request, @RequestBody Map params) { try { + // 从请求体获取分页参数 + int page = params.get("page") != null ? Integer.parseInt(params.get("page").toString()) : 1; + int limit = params.get("limit") != null ? Integer.parseInt(params.get("limit").toString()) : 10; + // 验证分页参数 + Map pageValidation = PageUtil.validatePageParams(page, limit); + if (!(Boolean) pageValidation.get("valid")) { + return AppletControllerUtil.appletWarning((String) pageValidation.get("message")); + } // 从请求头获取token String token = request.getHeader("token"); - - // 调用工具类方法统一处理 + // 调用工具类方法统一处理(保持原有4参调用) return AppletControllerUtil.getUserBalanceLogList(params, token, usersService, userMemnerConsumptionLogService); - } catch (Exception e) { System.err.println("查询用户余额日志异常:" + e.getMessage()); return AppletControllerUtil.appletError("查询余额日志失败:" + e.getMessage()); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppletController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppletController.java index 81f0797..edfacb0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppletController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppletController.java @@ -108,6 +108,8 @@ public class AppletController extends BaseController { private IGoodsOrderCursorService goodsOrderCursorService; @Autowired private IWorkerApplyService workerApplyService; + @Autowired + private IUserMemberRechargeProgramService userMemberRechargeProgramService; /** * 获取服务分类列表 * 功能说明: @@ -130,6 +132,7 @@ public class AppletController extends BaseController { // 1. 查询所有启用状态的服务分类 ServiceCate serviceCateQuery = new ServiceCate(); serviceCateQuery.setStatus(1L); + serviceCateQuery.setType(1L); List allCategoryList = serviceCateService.selectServiceCateList(serviceCateQuery); // 2. 分离一级分类和二级分类 @@ -1088,7 +1091,6 @@ public class AppletController extends BaseController { /** * 根据分类ID查询商品列表 * - * @param cateId 分类ID * @param request HTTP请求对象 * @return 该分类下的商品列表 *

@@ -1099,29 +1101,58 @@ public class AppletController extends BaseController { * - 自动添加图片CDN前缀 * - 无需用户登录验证 */ - @GetMapping(value = "/api/goods/cate/{cateId}") - public AjaxResult getGoodsByCategory(@PathVariable("cateId") Long cateId, HttpServletRequest request) { + @PostMapping(value = "/api/goods/cate") + public AjaxResult getGoodsByCategory(@RequestBody Map params, HttpServletRequest request) { try { - // 参数验证 - if (cateId == null || cateId <= 0) { - return AppletControllerUtil.appletWarning("分类ID无效"); - } + // 1. 获取分页参数 + int page = params.get("page") != null ? (Integer) params.get("page") : 1; + int limit = params.get("limit") != null ? (Integer) params.get("limit") : 15; + String cateId = params.get("cateId").toString(); +// // 1. 参数验证 +// if (cateId == null) { +// return AppletControllerUtil.appletWarning("分类ID不能为空"); +// } - // 验证分类是否存在 - ServiceCate category = serviceCateService.selectServiceCateById(cateId); - if (category == null) { - return AppletControllerUtil.appletWarning("分类不存在"); - } + // 验证分页参数 +// if (page < 1) page = 1; +// if (limit < 1) limit = 15; +// if (limit > 100) limit = 100; // 限制最大每页数量 - // 构建查询条件 + // 2. 设置分页参数 + PageHelper.startPage(page, limit); + + // 3. 构建查询条件 ServiceGoods queryGoods = new ServiceGoods(); - queryGoods.setCateId(cateId); // 根据分类ID查询 queryGoods.setStatus("1"); // 只查询启用状态的商品 - // 查询该分类下的商品列表 + // 判断是否查询全部商品 + boolean queryAll = "00".equals(cateId.trim()) || cateId.trim().isEmpty(); + + if (!queryAll) { + // 验证分类ID格式 + Long categoryId; + try { + categoryId = Long.parseLong(cateId); + if (categoryId <= 0) { + return AppletControllerUtil.appletWarning("分类ID无效"); + } + } catch (NumberFormatException e) { + return AppletControllerUtil.appletWarning("分类ID格式错误"); + } + + // 验证分类是否存在 + ServiceCate category = serviceCateService.selectServiceCateById(categoryId); + if (category == null) { + return AppletControllerUtil.appletWarning("分类不存在"); + } + + queryGoods.setCateId(categoryId); // 根据分类ID查询 + } + + // 4. 查询商品列表 List goodsList = serviceGoodsService.selectServiceGoodsList(queryGoods); - // 构建返回数据 + // 5. 构建返回数据 List> resultList = new ArrayList<>(); for (ServiceGoods goods : goodsList) { Map goodsData = new HashMap<>(); @@ -1130,10 +1161,34 @@ public class AppletController extends BaseController { goodsData.put("icon", AppletControllerUtil.buildImageUrl(goods.getIcon())); goodsData.put("price", goods.getPrice() != null ? goods.getPrice().toString() : "0.00"); goodsData.put("sales", goods.getSales() != null ? goods.getSales() : 0L); + goodsData.put("cate_id", goods.getCateId()); resultList.add(goodsData); } - return AppletControllerUtil.appletSuccess(resultList); + // 6. 构建分页信息 + PageInfo pageInfo = new PageInfo<>(goodsList); + + // 7. 构建返回数据格式 + Map responseData = new HashMap<>(); + responseData.put("current_page", pageInfo.getPageNum()); + responseData.put("data", resultList); + responseData.put("from", pageInfo.getStartRow()); + responseData.put("last_page", pageInfo.getPages()); + responseData.put("per_page", pageInfo.getPageSize()); + responseData.put("to", pageInfo.getEndRow()); + responseData.put("total", pageInfo.getTotal()); + + // 构建分页链接信息 + String baseUrl = "https://www.huafurenjia.cn/api/goods/cate/" + cateId; + responseData.put("first_page_url", baseUrl + "?page=1"); + responseData.put("last_page_url", baseUrl + "?page=" + pageInfo.getPages()); + responseData.put("next_page_url", pageInfo.isHasNextPage() ? + baseUrl + "?page=" + pageInfo.getNextPage() : null); + responseData.put("prev_page_url", pageInfo.isHasPreviousPage() ? + baseUrl + "?page=" + pageInfo.getPrePage() : null); + responseData.put("path", baseUrl); + + return AppletControllerUtil.appletSuccess(responseData); } catch (Exception e) { return AppletControllerUtil.appletError("查询分类商品失败:" + e.getMessage()); } @@ -1256,6 +1311,105 @@ public class AppletController extends BaseController { // 使用AppletLoginUtil执行完整的微信登录流程 return AppletLoginUtil.executeWechatLogin(params, usersService); } + + + +// /** +// * 获取用户基本信息接口 +// * +// * @param request HTTP请求对象 +// * @return 用户基本信息 +// *

+// * 接口说明: +// * - 通过token获取当前登录用户的基本信息 +// * - 返回完整的用户数据 +// * - 需要用户登录验证 +// *

+// */ +// @GetMapping(value = "/api/user/info") +// public AjaxResult getUserInfo(HttpServletRequest request) { +// try { +// Map order_num = new HashMap<>(); +// Map goods_order_num = new HashMap<>(); +// // 1. 验证用户登录状态 +// String token = request.getHeader("token"); +// Map userValidation = AppletLoginUtil.validateUserToken(token, usersService); +// if (!(Boolean) userValidation.get("valid")) { +// return AppletControllerUtil.appletUnauthorized(); +// } +// +// // 2. 获取用户信息 +// Users user = (Users) userValidation.get("user"); +// if (user == null) { +// return AppletControllerUtil.appletWarning("用户信息获取失败"); +// } +// +// // 3. 构建精简用户信息响应数据 +// Map userInfo = new HashMap<>(); +// userInfo.put("nickname", user.getNickname()); +// userInfo.put("phone", user.getPhone()); +// userInfo.put("ismember", user.getIsmember()); +// userInfo.put("member_begin", user.getMemberBegin()); +// userInfo.put("member_end", user.getMemberEnd()); +// userInfo.put("balance", user.getBalance()); +// userInfo.put("integral", user.getIntegral()); +// userInfo.put("shop_money", user.getConsumption()); +// userInfo.put("service_money", user.getServicefee()); +// userInfo.put("birthday", user.getBirthday()); +// userInfo.put("remember_token", userInfo.get("rememberToken")); +// +// // 头像处理 +// String avatar = user.getAvatar(); +// if (avatar != null && !avatar.isEmpty()) { +// userInfo.put("avatar", AppletControllerUtil.buildImageUrl(avatar)); +// } else { +// userInfo.put("avatar", "https://img.huafurenjia.cn/default/user_avatar.jpeg"); +// } +// order_num.put("pending_accept", orderService.selectCountOrderByUid(user.getId(), 2L)); +// order_num.put("pending_service", orderService.selectCountOrderByUid(user.getId(), 3L)); +// order_num.put("in_service", orderService.selectCountOrderByUid(user.getId(), 4L)); +// order_num.put("other_status", orderService.selectAllCountOrderByUid(user.getId())); +// userInfo.put("order_num", order_num); +// +// +// goods_order_num.put("pending_accept", goodsOrderService.selectCountGoodsOrderByUid(user.getId(), 2L)); +// goods_order_num.put("pending_service", goodsOrderService.selectCountGoodsOrderByUid(user.getId(), 3L)); +// goods_order_num.put("in_service", goodsOrderService.selectCountGoodsOrderByUid(user.getId(), 5L)); +// goods_order_num.put("other_status", goodsOrderService.selectAllCountGoodsOrderByUid(user.getId())); +// userInfo.put("goods_order_num", goods_order_num); +// // 新增tx_time字段 +// List txTimeArr = new ArrayList<>(); +// try { +// SiteConfig configQuery = new SiteConfig(); +// configQuery.setName("config_four"); +// List configList = siteConfigService.selectSiteConfigList(configQuery); +// if (configList != null && !configList.isEmpty()) { +// String configValue = configList.get(0).getValue(); +// if (configValue != null && !configValue.trim().isEmpty()) { +// JSONObject json = JSONObject.parse(configValue); +// if (json.containsKey("time")) { +// Object timeObj = json.get("time"); +// if (timeObj instanceof List) { +// txTimeArr = (List) timeObj; +// } else if (timeObj instanceof JSONArray) { +// txTimeArr = ((JSONArray) timeObj).toJavaList(Object.class); +// } +// } +// } +// } +// } catch (Exception ignore) { +// } +// userInfo.put("tx_time", txTimeArr); +// return AppletControllerUtil.appletSuccess(userInfo); +// } catch (Exception e) { +// System.err.println("查询用户基本信息异常:" + e.getMessage()); +// return AppletControllerUtil.appletError("查询用户信息失败:" + e.getMessage()); +// } +// } + + + + /** * 获取用户基本信息接口 * @@ -1269,7 +1423,7 @@ public class AppletController extends BaseController { *

*/ @GetMapping(value = "/api/user/info") - public AjaxResult getUserInfo(HttpServletRequest request) { + public AjaxResult apiuserinfo(HttpServletRequest request) { try { Map order_num = new HashMap<>(); Map goods_order_num = new HashMap<>(); @@ -1291,18 +1445,25 @@ public class AppletController extends BaseController { userInfo.put("remember_token", userInfo.get("rememberToken")); + // 新增:根据会员状态查询充值项目 + Integer queryType = (user.getIsmember() != null && user.getIsmember() == 1) ? 2 : 1; + UserMemberRechargeProgram query = new UserMemberRechargeProgram(); + query.setType(queryType); + query.setStatus(0); // 只查启用 + java.util.List rechargePrograms = userMemberRechargeProgramService.selectUserMemberRechargeProgramList(query); + userInfo.put("memberRechargePrograms", rechargePrograms.getFirst()); + + order_num.put("yikoujia", 0); + order_num.put("baojia", 0); + order_num.put("yuyue", 0); - order_num.put("pending_accept", orderService.selectCountOrderByUid(user.getId(), 2L)); - order_num.put("pending_service", orderService.selectCountOrderByUid(user.getId(), 3L)); - order_num.put("in_service", orderService.selectCountOrderByUid(user.getId(), 4L)); - order_num.put("other_status", orderService.selectAllCountOrderByUid(user.getId())); userInfo.put("order_num", order_num); - - goods_order_num.put("pending_accept", goodsOrderService.selectCountGoodsOrderByUid(user.getId(), 2L)); - goods_order_num.put("pending_service", goodsOrderService.selectCountGoodsOrderByUid(user.getId(), 3L)); - goods_order_num.put("in_service", goodsOrderService.selectCountGoodsOrderByUid(user.getId(), 5L)); - goods_order_num.put("other_status", goodsOrderService.selectAllCountGoodsOrderByUid(user.getId())); + goods_order_num.put("daifukuan",0); + goods_order_num.put("daifahuo",0); + goods_order_num.put("daishouhuo", 0); + goods_order_num.put("daipingjia",0); + goods_order_num.put("shouhou",0); userInfo.put("goods_order_num", goods_order_num); // 新增tx_time字段 @@ -1328,6 +1489,19 @@ public class AppletController extends BaseController { } catch (Exception ignore) { } userInfo.put("tx_time", txTimeArr); + + // 新增:查询该用户可用优惠券数量 + int couponNum = 0; + try { + com.ruoyi.system.domain.CouponUser queryCoupon = new com.ruoyi.system.domain.CouponUser(); + queryCoupon.setUid(user.getId()); + queryCoupon.setStatus(0L); // 0=可用 + java.util.List couponList = couponUserService.selectCouponUserList(queryCoupon); + couponNum = couponList != null ? couponList.size() : 0; + } catch (Exception e) { + } + userInfo.put("couponNum", couponNum); + return AppletControllerUtil.appletSuccess(userInfo); } catch (Exception e) { @@ -1337,6 +1511,7 @@ public class AppletController extends BaseController { } + /** * 构建用户信息响应数据 * @@ -1346,6 +1521,7 @@ public class AppletController extends BaseController { private Map buildUserInfoResponse(Users user) { Map userInfo = new HashMap<>(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat sdfday = new SimpleDateFormat("yyyy-MM-dd"); // 基本信息 userInfo.put("id", user.getId()); @@ -1353,7 +1529,19 @@ public class AppletController extends BaseController { userInfo.put("nickname", user.getNickname()); userInfo.put("phone", user.getPhone()); userInfo.put("password", null); // 密码不返回 - + // userInfo.put("ismember", user.getIsmember()); +// if (user.getMemberBegin() != null) { +// userInfo.put("member_begin", sdfday.format(user.getMemberBegin())); +// } +// if (user.getMemberEnd() != null){ +// userInfo.put("member_end", sdfday.format(user.getMemberEnd())); +// } +// userInfo.put("member_begin", sdfday.format(user.getMemberBegin())); +// userInfo.put("member_end", sdfday.format(user.getMemberEnd())); + userInfo.put("balance", user.getBalance()); + userInfo.put("shop_money", user.getConsumption()); + userInfo.put("service_money", user.getServicefee()); + userInfo.put("birthday", user.getBirthday()); // 头像处理 String avatar = user.getAvatar(); if (avatar != null && !avatar.isEmpty()) { @@ -1372,8 +1560,8 @@ public class AppletController extends BaseController { if (user.getType().equals("1")) { userInfo.put("balance", user.getBalance().toString() != null ? user.getBalance().toString() : "0.00"); userInfo.put("ismember", user.getIsmember()); - userInfo.put("member_begin",user.getMemberBegin() != null ? sdf.format(user.getMemberBegin()) : null ); - userInfo.put("member_end",user.getMemberEnd() != null ? sdf.format(user.getMemberEnd()) : null ); + userInfo.put("member_begin",user.getMemberBegin() != null ? sdfday.format(user.getMemberBegin()) : null ); + userInfo.put("member_end",user.getMemberEnd() != null ? sdfday.format(user.getMemberEnd()) : null ); } userInfo.put("integral", user.getIntegral() != null ? user.getIntegral() : 0); @@ -3389,10 +3577,6 @@ public class AppletController extends BaseController { return AppletControllerUtil.appletWarning("取消失败:" + e.getMessage()); } } - /** - * 师傅接单接口 - * 参考OrderController+OrderUtil+OrderLogHandler的json_status=2分支 - */ @GetMapping("/api/worker/accept/order/{id}") public AjaxResult workerAcceptOrder(@PathVariable("id") Long id, HttpServletRequest request) { try { @@ -5979,6 +6163,14 @@ public class AppletController extends BaseController { @GetMapping(value = "/api/public/notice/list") public AjaxResult getHomeNoticeList(HttpServletRequest request) { try { + // 新增:获取category参数(1=首页,2=活动) + String categoryParam = request.getParameter("category"); + String filterCategory = null; + if ("1".equals(categoryParam)) { + filterCategory = "home"; + } else if ("2".equals(categoryParam)) { + filterCategory = "activity"; + } // 1. 查询config_seven配置 SiteConfig configQuery = new SiteConfig(); configQuery.setName("config_seven"); @@ -6024,13 +6216,19 @@ public class AppletController extends BaseController { for (int i = 0; i < noticeArray.size(); i++) { try { JSONObject noticeItem = noticeArray.getJSONObject(i); - // 检查状态是否为上线(status=1) Integer status = noticeItem.getInteger("status"); if (status == null || status != 1) { continue; // 跳过下线或状态异常的公告 } - + // 新增:按分类过滤 + if (filterCategory != null) { + String itemCategory = noticeItem.getString("category"); + if (itemCategory == null) itemCategory = "home"; // 兼容老数据 + if (!filterCategory.equals(itemCategory)) { + continue; + } + } // 构建公告数据 Map notice = new HashMap<>(); notice.put("title", noticeItem.getString("title")); @@ -6038,7 +6236,6 @@ public class AppletController extends BaseController { notice.put("link", noticeItem.getString("link")); notice.put("sort", noticeItem.getInteger("sort")); notice.put("status", status); - resultList.add(notice); } catch (Exception e) { // 单个公告解析失败时跳过,继续处理其他公告 @@ -6046,7 +6243,6 @@ public class AppletController extends BaseController { continue; } } - // 5. 按sort字段升序排序 resultList.sort((a, b) -> { Integer sortA = (Integer) a.get("sort"); @@ -6055,9 +6251,7 @@ public class AppletController extends BaseController { if (sortB == null) sortB = Integer.MAX_VALUE; return sortA.compareTo(sortB); }); - return AppletControllerUtil.appletSuccess(resultList); - } catch (Exception e) { System.err.println("获取首页通知公告列表异常:" + e.getMessage()); return AppletControllerUtil.appletError("获取通知公告列表失败:" + e.getMessage()); @@ -6243,4 +6437,134 @@ public class AppletController extends BaseController { return AppletControllerUtil.appletError("查询报价产品列表失败:" + e.getMessage()); } } + + + /** + * 获取活动专区展示接口 + * 查询config_eight配置,返回activities数组 + */ + @GetMapping(value = "/api/public/activity/list") + public AjaxResult getActivityList(HttpServletRequest request) { + try { + // 查询config_eight配置 + SiteConfig configQuery = new SiteConfig(); + configQuery.setName("config_eight"); + List configList = siteConfigService.selectSiteConfigList(configQuery); + + if (configList.isEmpty()) { + // 配置不存在时返回空数组 + return AppletControllerUtil.appletSuccess(new ArrayList<>()); + } + + SiteConfig config = configList.get(0); + String configValue = config.getValue(); + + if (configValue == null || configValue.trim().isEmpty()) { + // 配置值为空时返回空数组 + return AppletControllerUtil.appletSuccess(new ArrayList<>()); + } + + // 解析JSON配置 + JSONObject configJson; + try { + configJson = JSONObject.parseObject(configValue); + } catch (Exception e) { + System.err.println("解析config_eight配置JSON失败:" + e.getMessage()); + return AppletControllerUtil.appletSuccess(new ArrayList<>()); + } + + // 获取activities数组 + if (!configJson.containsKey("activities")) { + return AppletControllerUtil.appletSuccess(new ArrayList<>()); + } + Object activitiesObj = configJson.get("activities"); + if (!(activitiesObj instanceof JSONArray)) { + return AppletControllerUtil.appletSuccess(new ArrayList<>()); + } + JSONArray activitiesArray = (JSONArray) activitiesObj; + // 直接返回activities数组 + return AppletControllerUtil.appletSuccess(activitiesArray); + } catch (Exception e) { + System.err.println("获取活动专区列表异常:" + e.getMessage()); + return AppletControllerUtil.appletError("获取活动专区列表失败:" + e.getMessage()); + } + } + + /** + * 首页拼团专区列表接口 + * 查询type=1且isgroup=1的服务商品前4个 + * 返回icon、标题、price、groupprice字段 + */ + @GetMapping(value = "/api/public/group/list") + public AjaxResult getGroupList(HttpServletRequest request) { + try { + // 构建查询条件 + ServiceGoods queryGoods = new ServiceGoods(); + queryGoods.setType(1); // type=1 + queryGoods.setIsgroup(1); // isgroup=1 + queryGoods.setStatus("1"); // 只查询启用状态的商品 + + // 查询服务商品列表 + List goodsList = serviceGoodsService.selectServiceGoodsList(queryGoods); + + // 只取前4个 + if (goodsList.size() > 4) { + goodsList = goodsList.subList(0, 6); + } + + // 构建返回数据 + List> resultList = new ArrayList<>(); + + for (ServiceGoods goods : goodsList) { + Map goodsData = new HashMap<>(); + + // 基本信息 + goodsData.put("id", goods.getId()); + goodsData.put("groupnum", goods.getGroupnum()); + goodsData.put("title", goods.getTitle()); + goodsData.put("price", goods.getPrice() != null ? goods.getPrice().toString() : "0.00"); + goodsData.put("groupprice", goods.getGroupprice() != null ? goods.getGroupprice().toString() : "0.00"); + + // 处理图片URL - 添加CDN前缀 + goodsData.put("icon", AppletControllerUtil.buildImageUrl(goods.getIcon())); + + resultList.add(goodsData); + } + + return AppletControllerUtil.appletSuccess(resultList); + + } catch (Exception e) { + System.err.println("获取拼团专区列表异常:" + e.getMessage()); + return AppletControllerUtil.appletError("获取拼团专区列表失败:" + e.getMessage()); + } + } + + + /** + * 首页接口汇总 + */ + @GetMapping(value = "/api/public/home/data") + public AjaxResult publichomedata() { + Map responseData = new HashMap<>(); + + HomeUtril homeUtril = new HomeUtril(); + //轮播图 + responseData.put("lunbotu", homeUtril.getAdvImgData(2L)); + //首页公告 + responseData.put("shouyegonggao", homeUtril.getHomeNoticeList("1")); + //分类列表 + responseData.put("shouyefenlei", homeUtril.getServiceCategories()); + //活动专区 + responseData.put("huodongzhuanqu", homeUtril.getActivityList()); + //活动专区公告 + responseData.put("huodongzhuanqugonggao", homeUtril.getHomeNoticeList("2")); + //公司简介 + responseData.put("gongsijianjie", homeUtril.getConfig("config_one")); + //资质证书 + responseData.put("zizhizhengshu", homeUtril.getAdvImgData(1L)); + //拼团专区 + responseData.put("pintuanzhuanqu", homeUtril.getGroupList()); + + return AppletControllerUtil.appletSuccess(responseData); + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/PayNotifyController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/PayNotifyController.java index 6557598..00fb611 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controller/PayNotifyController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/PayNotifyController.java @@ -231,7 +231,7 @@ public class PayNotifyController extends BaseController { // order // order // order -// order +// order // order } @@ -261,7 +261,7 @@ public class PayNotifyController extends BaseController { /** - * 商品支付回调接口 + * 用户支付接口 * * @param request HTTP请求对象 * @return XML格式响应给微信服务器 @@ -328,15 +328,30 @@ public class PayNotifyController extends BaseController { userMemnerConsumptionLog.setNowmoney(users.getBalance().subtract(userMemberRechargeLog.getComemoney())); userMemnerConsumptionLog.setType(2); userMemnerConsumptionLogService.insertUserMemnerConsumptionLog(userMemnerConsumptionLog); - users.setBalance(users.getBalance().subtract(userMemberRechargeLog.getComemoney())); + + + if (userMemberRechargeLog.getIsmember() == 1) { + // 会员包年充值 + if (users.getIsmember() == 1 && users.getMemberEnd() != null) { + // 续费会员:在原有会员结束时间基础上加一年 + Calendar calendar = Calendar.getInstance(); + calendar.setTime(users.getMemberEnd()); + calendar.add(Calendar.YEAR, 1); + users.setMemberEnd(calendar.getTime()); + } else if (users.getIsmember() == 0) { + // 新会员:会员开始时间为当前,结束时间为一年后 + users.setMemberBegin(new Date()); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date()); + calendar.add(Calendar.YEAR, 1); + users.setMemberEnd(calendar.getTime()); + } users.setIsmember(1); - users.setMemberBegin(new Date()); - //会员结束时间是一年后 - Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.YEAR, 1); - users.setMemberEnd(calendar.getTime()); + users.setBalance(users.getBalance().subtract(userMemberRechargeLog.getComemoney())); + usersService.updateUsers(users); + } - usersService.updateUsers(users); + } //WXsendMsgUtil.sendUserForMoneySuccess(users.getOpenid(),userMemberRechargeLog,users); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/ServiceCateController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/ServiceCateController.java index a871f30..25ee487 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controller/ServiceCateController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/ServiceCateController.java @@ -4,6 +4,7 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletRequest; +import com.ruoyi.system.ControllerUtil.AppletControllerUtil; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -48,14 +49,21 @@ public class ServiceCateController extends BaseController if (pageSizeStr != null && Integer.parseInt(pageSizeStr) > 1000) { // 不分页查询 List list = serviceCateService.selectServiceCateList(serviceCate); + for (ServiceCate serviceCate1 : list){ + serviceCate1.setIcon(AppletControllerUtil.buildImageUrl(serviceCate1.getIcon())); + } TableDataInfo dataTable = new TableDataInfo(); dataTable.setRows(list); dataTable.setTotal(list.size()); + return dataTable; } else { // 正常分页查询 startPage(); List list = serviceCateService.selectServiceCateList(serviceCate); + for (ServiceCate serviceCate2 : list){ + serviceCate2.setIcon(AppletControllerUtil.buildImageUrl(serviceCate2.getIcon())); + } return getDataTable(list); } } @@ -91,8 +99,8 @@ public class ServiceCateController extends BaseController @PostMapping public AjaxResult add(@RequestBody ServiceCate serviceCate) { - // 验证分类级别(只允许二级分类) - if (serviceCate.getParentId() == null) { + // 允许 parentId 为 null 或 0,表示一级分类 + if (serviceCate.getParentId() == null || serviceCate.getParentId() == 0L) { serviceCate.setParentId(0L); // 一级分类 } else { // 检查父级分类是否为一级分类 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/json.txt b/ruoyi-system/src/main/java/com/ruoyi/system/controller/json.txt new file mode 100644 index 0000000..3e204f7 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/json.txt @@ -0,0 +1,53 @@ +// 评价订单 + public function comment(Request $request) + { + + $validator = Validator::make($request->all(),$this->comment_rule()['rules'],$this->comment_rule()['messages']); + if($validator->fails()){ + return $this->error($validator->errors()->all()[0]); + } + $param = $request->post(); + // 是否已经评价过 + $info = Comment::where(['uid'=>$this->user_info['id'],'order_id'=>$param['order_id']])->first(); + if($info){ + return $this->error('请勿重复提交'); + } + $num_type = $param['num'] == 1 ? 3 : (in_array($param['num'],[2,3]) ? 2 : 1); + // 商品id + $order_info = Order::select('product_id','id','worker_id')->where(['order_id'=>$param['order_id']])->first(); + $data = [ + 'oid' => $order_info['id'], + 'order_id' => $param['order_id'], + 'product_id' => $order_info['product_id'], + 'content' => $param['content'], + 'num' => $param['num'], + 'uid' => $this->user_info['id'], + 'images' => $param['images'] ? json_encode($param['images']) : null, + 'num_type' => $num_type, + 'worker_id' => $order_info['worker_id'], + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]; + DB::beginTransaction(); + try{ + Comment::insert($data); + // 订单评价记录 + $log_data = [ + 'oid' => $order_info['id'], + 'order_id' => $param['order_id'], + 'title' => '订单评价', + 'type' => 8, + 'content' => json_encode(['text'=>$param['content'],'image'=>$param['images'],'num'=>$data['num']]), + 'created_at'=> date('Y-m-d H:i:s'), + 'updated_at'=> date('Y-m-d H:i:s'), + ]; + Log::insert($log_data); + // 更改订单状态为完成--评价状态改为已评价 + Order::where(['order_id'=>$param['order_id']])->update(['status'=>4,'is_comment'=>1]); + DB::commit(); + return $this->success(); + }catch(\Exception $e){ + DB::rollBack(); + return $this->error('操作失败'.$e->getMessage()); + } + } \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/AlgorithmExample.java b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/AlgorithmExample.java new file mode 100644 index 0000000..99cbdb8 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/AlgorithmExample.java @@ -0,0 +1,235 @@ +package com.ruoyi.system.ControllerUtil; + +import java.util.*; + +/** + * 算法使用示例类 + * + * 演示雪花算法和红黑树的基本使用方法 + * 包含性能测试和功能验证 + * + * @author Mr. Zhang Pan + * @date 2025-01-03 + * @version 1.0 + */ +public class AlgorithmExample { + + /** + * 雪花算法使用示例 + */ + public static void snowflakeExample() { + System.out.println("========== 雪花算法使用示例 =========="); + + // 1. 创建雪花算法实例 + SnowflakeIdGenerator generator = new SnowflakeIdGenerator(1); + + // 2. 生成单个ID + long id1 = generator.nextId(); + long id2 = generator.nextId(); + System.out.println("生成的ID1: " + id1); + System.out.println("生成的ID2: " + id2); + + // 3. 批量生成ID + long[] ids = generator.nextIds(5); + System.out.println("批量生成ID: " + Arrays.toString(ids)); + + // 4. 解析ID + Map parsed = generator.parseId(id1); + System.out.println("ID解析结果: " + parsed); + + // 5. 使用静态方法快速生成 + long quickId = SnowflakeIdGenerator.generateId(); + String quickIdStr = SnowflakeIdGenerator.generateIdString(); + System.out.println("快速生成ID: " + quickId); + System.out.println("快速生成ID字符串: " + quickIdStr); + + // 6. 性能测试 + Map perfResult = generator.performanceTest(10000); + System.out.println("性能测试结果: " + perfResult); + + System.out.println(); + } + + /** + * 红黑树使用示例 + */ + public static void redBlackTreeExample() { + System.out.println("========== 红黑树使用示例 =========="); + + // 1. 创建红黑树 + RedBlackTree rbt = new RedBlackTree<>(); + + // 2. 插入数据 + int[] data = {10, 5, 15, 3, 7, 12, 18, 1, 6, 8, 11, 13, 16, 20}; + System.out.println("插入数据: " + Arrays.toString(data)); + + for (int num : data) { + boolean inserted = rbt.insert(num); + System.out.println("插入 " + num + ": " + (inserted ? "成功" : "失败(已存在)")); + } + + // 3. 基本信息 + System.out.println("\n树的基本信息:"); + System.out.println("大小: " + rbt.size()); + System.out.println("高度: " + rbt.getHeight()); + System.out.println("黑色高度: " + rbt.getBlackHeight()); + System.out.println("是否为有效红黑树: " + rbt.isValidRedBlackTree()); + + // 4. 查找操作 + System.out.println("\n查找操作:"); + System.out.println("查找7: " + rbt.contains(7)); + System.out.println("查找100: " + rbt.contains(100)); + System.out.println("最小值: " + rbt.findMin()); + System.out.println("最大值: " + rbt.findMax()); + + // 5. 遍历操作 + System.out.println("\n遍历操作:"); + System.out.println("中序遍历: " + rbt.inorderTraversal()); + System.out.println("前序遍历: " + rbt.preorderTraversal()); + System.out.println("后序遍历: " + rbt.postorderTraversal()); + System.out.println("层序遍历: " + rbt.levelOrderTraversal()); + + // 6. 删除操作 + System.out.println("\n删除操作:"); + boolean deleted = rbt.delete(5); + System.out.println("删除5: " + (deleted ? "成功" : "失败")); + System.out.println("删除后中序遍历: " + rbt.inorderTraversal()); + System.out.println("删除后是否为有效红黑树: " + rbt.isValidRedBlackTree()); + + // 7. 打印树结构 + System.out.println("\n树结构:"); + System.out.println(rbt.printTree()); + + System.out.println(); + } + + /** + * 红黑树性能测试 + */ + public static void redBlackTreePerformanceTest() { + System.out.println("========== 红黑树性能测试 =========="); + + RedBlackTree rbt = new RedBlackTree<>(); + Random random = new Random(); + + // 插入性能测试 + int testSize = 100000; + long startTime = System.currentTimeMillis(); + + for (int i = 0; i < testSize; i++) { + rbt.insert(random.nextInt(testSize * 2)); + } + + long insertTime = System.currentTimeMillis() - startTime; + System.out.println("插入 " + testSize + " 个随机数耗时: " + insertTime + "ms"); + System.out.println("实际插入数量: " + rbt.size() + " (去重后)"); + System.out.println("树高度: " + rbt.getHeight()); + System.out.println("理论最优高度: " + (int)(Math.log(rbt.size()) / Math.log(2))); + + // 查找性能测试 + startTime = System.currentTimeMillis(); + int foundCount = 0; + + for (int i = 0; i < testSize; i++) { + if (rbt.contains(random.nextInt(testSize * 2))) { + foundCount++; + } + } + + long searchTime = System.currentTimeMillis() - startTime; + System.out.println("查找 " + testSize + " 次耗时: " + searchTime + "ms"); + System.out.println("找到数量: " + foundCount); + + // 遍历性能测试 + startTime = System.currentTimeMillis(); + List sorted = rbt.inorderTraversal(); + long traversalTime = System.currentTimeMillis() - startTime; + System.out.println("中序遍历耗时: " + traversalTime + "ms"); + + // 验证排序正确性 + boolean isSorted = true; + for (int i = 1; i < sorted.size(); i++) { + if (sorted.get(i - 1) > sorted.get(i)) { + isSorted = false; + break; + } + } + System.out.println("遍历结果是否有序: " + isSorted); + System.out.println("红黑树性质验证: " + rbt.isValidRedBlackTree()); + + System.out.println(); + } + + /** + * 实际应用场景示例 + */ + public static void practicalApplicationExample() { + System.out.println("========== 实际应用场景示例 =========="); + + // 场景1:订单ID生成 + System.out.println("场景1:订单ID生成"); + SnowflakeIdGenerator orderIdGenerator = new SnowflakeIdGenerator(1); + + for (int i = 0; i < 5; i++) { + String orderId = "ORDER_" + orderIdGenerator.generateIdString(); + System.out.println("生成订单ID: " + orderId); + } + + // 场景2:用户积分排行榜 + System.out.println("\n场景2:用户积分排行榜"); + RedBlackTree scoreRanking = new RedBlackTree<>(); + + // 添加用户积分 + scoreRanking.insert(new UserScore("张三", 1500)); + scoreRanking.insert(new UserScore("李四", 2300)); + scoreRanking.insert(new UserScore("王五", 1800)); + scoreRanking.insert(new UserScore("赵六", 2100)); + scoreRanking.insert(new UserScore("孙七", 1200)); + + System.out.println("积分排行榜(从低到高):"); + List ranking = scoreRanking.inorderTraversal(); + for (int i = 0; i < ranking.size(); i++) { + System.out.println((i + 1) + ". " + ranking.get(i)); + } + + System.out.println(); + } + + /** + * 用户积分类(用于红黑树示例) + */ + private static class UserScore implements Comparable { + private String username; + private int score; + + public UserScore(String username, int score) { + this.username = username; + this.score = score; + } + + @Override + public int compareTo(UserScore other) { + return Integer.compare(this.score, other.score); + } + + @Override + public String toString() { + return username + "(" + score + "分)"; + } + } + + /** + * 主方法 - 运行所有示例 + */ + public static void main(String[] args) { + System.out.println("开始算法示例演示...\n"); + + // 运行所有示例 + snowflakeExample(); + redBlackTreeExample(); + redBlackTreePerformanceTest(); + practicalApplicationExample(); + + System.out.println("算法示例演示完成!"); + } +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/AppletControllerUtil.java b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/AppletControllerUtil.java index d64154b..06e6faf 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/AppletControllerUtil.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/AppletControllerUtil.java @@ -92,6 +92,23 @@ public class AppletControllerUtil { return result; } + + + /** + * 业务提示响应 - code:500 + * + * @param message 提示消息 + * @return AjaxResult + */ + public static AjaxResult appletkaifaWarning(String message) { + AjaxResult result = new AjaxResult(); + result.put("code", 500); + result.put("msg", message); + result.put("data", new ArrayList<>()); + return result; + } + + /** * 业务提示响应 - code: 422,带数据 * @@ -2901,7 +2918,7 @@ public class AppletControllerUtil { goodsData.put("title", goods.getTitle()); goodsData.put("icon", buildImageUrl(goods.getIcon())); goodsData.put("cate_id", goods.getCateId()); - goodsData.put("price", goods.getPriceZn()); + goodsData.put("price", goods.getPrice()); goodsData.put("price_zn", goods.getPriceZn()); goodsData.put("sales", goods.getSales() != null ? goods.getSales() : 0); goodsData.put("stock", goods.getStock() != null ? goods.getStock() : 0); @@ -4387,6 +4404,7 @@ public class AppletControllerUtil { amountStr = "-" + amount.setScale(2, BigDecimal.ROUND_HALF_UP).toString(); } logData.put("amount", amountStr); + logData.put("paytime", sdf.format(log.getConsumptiontime())); // 余额信息 logData.put("before_amount", log.getBeformoney() != null ? @@ -4396,15 +4414,16 @@ public class AppletControllerUtil { // 备注信息 logData.put("remark", log.getReamk() != null ? log.getReamk() : ""); + logData.put("orderid", log.getOrderid() != null ? log.getOrderid() : ""); - // 时间信息 - if (log.getCreatedAt() != null) { - logData.put("created_time", sdf.format(log.getCreatedAt())); - } else if (log.getConsumptiontime() != null) { - logData.put("created_time", sdf.format(log.getConsumptiontime())); - } else { - logData.put("created_time", null); - } +// // 时间信息 +// if (log.getCreatedAt() != null) { +// logData.put("created_time", sdf.format(log.getCreatedAt())); +// } else if (log.getConsumptiontime() != null) { +// logData.put("created_time", sdf.format(log.getConsumptiontime())); +// } else { +// logData.put("created_time", null); +// } formattedList.add(logData); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/HomeUtril.java b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/HomeUtril.java new file mode 100644 index 0000000..13399ad --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/HomeUtril.java @@ -0,0 +1,442 @@ +package com.ruoyi.system.ControllerUtil; + +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.system.domain.*; +import com.ruoyi.system.service.IAdvImgService; +import com.ruoyi.system.service.IServiceCateService; +import com.ruoyi.system.service.IServiceGoodsService; +import com.ruoyi.system.service.ISiteConfigService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; + +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class HomeUtril { + + private static final IAdvImgService advImgService = SpringUtils.getBean(IAdvImgService.class); + private static final ISiteConfigService siteConfigService = SpringUtils.getBean(ISiteConfigService.class); + private static final IServiceCateService serviceCateService = SpringUtils.getBean(IServiceCateService.class); + private static final IServiceGoodsService serviceGoodsService = SpringUtils.getBean(IServiceGoodsService.class); + + + + + + /** + * 获取广告图片列表 + * + * @return 广告图片列表 + *

+ * 接口说明: + * - 根据广告类型获取对应的图片列表 + * - 自动添加图片CDN前缀 + * - 支持多种广告位配置 + */ + public Map getAdvImgData(long type) { + try { + + Map result = new HashMap<>(); + // 构建查询条件 + AdvImg advImgQuery = new AdvImg(); + advImgQuery.setType(type); + advImgQuery.setStatus(1L); + + // 查询广告图片列表 + List advImgList = advImgService.selectAdvImgList(advImgQuery); + System.out.println("#####################"+advImgList.size()); + // 为每张图片添加CDN前缀 + for (AdvImg advImg : advImgList) { + advImg.setImage(AppletControllerUtil.buildImageUrl(advImg.getImage())); + } + result.put("data", advImgList); + return result; + } catch (Exception e) { + return AppletControllerUtil.appletWarning("获取广告图片失败:" + e.getMessage()); + } + } + + /** + * 获取首页通知公告列表接口 + * + * @return 上线状态的通知公告列表 + *

+ * 接口说明: + * - 查询config_seven配置中的通知公告数据 + * - 只返回status=1(上线)状态的公告 + * - 按sort字段升序排列 + * - 返回title、content、link、sort等字段 + * - 无需用户登录验证 + *

+ */ + public Map getHomeNoticeList(String categoryParam) { + try { + Map result = new HashMap<>(); + String filterCategory = null; + if ("1".equals(categoryParam)) { + filterCategory = "home"; + } else if ("2".equals(categoryParam)) { + filterCategory = "activity"; + } + // 1. 查询config_seven配置 + SiteConfig configQuery = new SiteConfig(); + configQuery.setName("config_seven"); + List configList = siteConfigService.selectSiteConfigList(configQuery); + + if (configList.isEmpty()) { + // 配置不存在时返回空数组 + return AppletControllerUtil.appletSuccess(new ArrayList<>()); + } + + SiteConfig config = configList.get(0); + String configValue = config.getValue(); + + if (configValue == null || configValue.trim().isEmpty()) { + // 配置值为空时返回空数组 + return AppletControllerUtil.appletSuccess(new ArrayList<>()); + } + + // 2. 解析JSON配置 + JSONObject configJson; + try { + configJson = JSONObject.parseObject(configValue); + } catch (Exception e) { + System.err.println("解析config_seven配置JSON失败:" + e.getMessage()); + return AppletControllerUtil.appletSuccess(new ArrayList<>()); + } + + // 3. 获取notice数组 + if (!configJson.containsKey("notice")) { + return AppletControllerUtil.appletSuccess(new ArrayList<>()); + } + + Object noticeObj = configJson.get("notice"); + if (!(noticeObj instanceof JSONArray)) { + return AppletControllerUtil.appletSuccess(new ArrayList<>()); + } + + JSONArray noticeArray = (JSONArray) noticeObj; + + // 4. 过滤上线状态的公告并构建返回数据 + List> resultList = new ArrayList<>(); + + for (int i = 0; i < noticeArray.size(); i++) { + try { + JSONObject noticeItem = noticeArray.getJSONObject(i); + // 检查状态是否为上线(status=1) + Integer status = noticeItem.getInteger("status"); + if (status == null || status != 1) { + continue; // 跳过下线或状态异常的公告 + } + // 新增:按分类过滤 + if (filterCategory != null) { + String itemCategory = noticeItem.getString("category"); + if (itemCategory == null) itemCategory = "home"; // 兼容老数据 + if (!filterCategory.equals(itemCategory)) { + continue; + } + } + // 构建公告数据 + Map notice = new HashMap<>(); + notice.put("title", noticeItem.getString("title")); + notice.put("content", noticeItem.getString("content")); + notice.put("link", noticeItem.getString("link")); + notice.put("sort", noticeItem.getInteger("sort")); + notice.put("status", status); + resultList.add(notice); + } catch (Exception e) { + // 单个公告解析失败时跳过,继续处理其他公告 + System.err.println("解析单个公告数据失败:" + e.getMessage()); + continue; + } + } + // 5. 按sort字段升序排序 + resultList.sort((a, b) -> { + Integer sortA = (Integer) a.get("sort"); + Integer sortB = (Integer) b.get("sort"); + if (sortA == null) sortA = Integer.MAX_VALUE; + if (sortB == null) sortB = Integer.MAX_VALUE; + return sortA.compareTo(sortB); + }); + result.put("data", resultList); + return result; + } catch (Exception e) { + System.err.println("获取首页通知公告列表异常:" + e.getMessage()); + return AppletControllerUtil.appletError("获取通知公告列表失败:" + e.getMessage()); + } + } + + + + /** + * 获取服务分类列表 + * 功能说明: + * - 获取状态为启用的服务分类 + * - 支持二级分类树形结构 + * - 将二级分类组装在一级分类下的children字段 + * - 只返回title和icon字段 + * - 自动添加图片CDN前缀 + * - 支持用户登录状态验证(可选) + * + * @return 分类树形列表数据(只包含title和icon) + */ + public Map getServiceCategories() { + try { + Map result = new HashMap<>(); + + // 1. 查询所有启用状态的服务分类 + ServiceCate serviceCateQuery = new ServiceCate(); + serviceCateQuery.setStatus(1L); + serviceCateQuery.setType(1L); + List allCategoryList = serviceCateService.selectServiceCateList(serviceCateQuery); + + // 2. 分离一级分类和二级分类 + List firstLevelCategories = new ArrayList<>(); + Map> secondLevelMap = new HashMap<>(); + + for (ServiceCate category : allCategoryList) { + if (category.getParentId() == null || category.getParentId() == 0L) { + // 一级分类 + firstLevelCategories.add(category); + } else { + // 二级分类,按父级ID分组 + secondLevelMap.computeIfAbsent(category.getParentId(), k -> new ArrayList<>()).add(category); + } + } + + // 3. 构建简化的分类数据(只包含title和icon) + List> resultList = new ArrayList<>(); + + for (ServiceCate firstLevel : firstLevelCategories) { + Map firstLevelData = new HashMap<>(); + firstLevelData.put("id", firstLevel.getId()); + firstLevelData.put("title", firstLevel.getTitle()); + firstLevelData.put("icon", AppletControllerUtil.buildImageUrl(firstLevel.getIcon())); + + // 4. 处理二级分类 + List> childrenList = new ArrayList<>(); + List children = secondLevelMap.get(firstLevel.getId()); + if (children != null && !children.isEmpty()) { + for (ServiceCate child : children) { + Map childData = new HashMap<>(); + childData.put("id", child.getId()); + childData.put("title", child.getTitle()); + childData.put("icon", AppletControllerUtil.buildImageUrl(child.getIcon())); + childrenList.add(childData); + } + } + firstLevelData.put("children", childrenList); + + resultList.add(firstLevelData); + } + result.put("data", resultList); + return result; + } catch (Exception e) { + return AppletControllerUtil.appletError("获取服务分类列表失败:" + e.getMessage()); + } + } + + + /** + * 获取活动专区展示接口 + * 查询config_eight配置,返回activities数组 + */ + public Map getActivityList() { + try { + Map result = new HashMap<>(); + // 查询config_eight配置 + SiteConfig configQuery = new SiteConfig(); + configQuery.setName("config_eight"); + List configList = siteConfigService.selectSiteConfigList(configQuery); + + if (configList.isEmpty()) { + // 配置不存在时返回空数组 + return AppletControllerUtil.appletSuccess(new ArrayList<>()); + } + + SiteConfig config = configList.get(0); + String configValue = config.getValue(); + + if (configValue == null || configValue.trim().isEmpty()) { + // 配置值为空时返回空数组 + return AppletControllerUtil.appletSuccess(new ArrayList<>()); + } + + // 解析JSON配置 + JSONObject configJson; + try { + configJson = JSONObject.parseObject(configValue); + } catch (Exception e) { + System.err.println("解析config_eight配置JSON失败:" + e.getMessage()); + return AppletControllerUtil.appletSuccess(new ArrayList<>()); + } + + // 获取activities数组 + if (!configJson.containsKey("activities")) { + return AppletControllerUtil.appletSuccess(new ArrayList<>()); + } + Object activitiesObj = configJson.get("activities"); + if (!(activitiesObj instanceof JSONArray)) { + return AppletControllerUtil.appletSuccess(new ArrayList<>()); + } + JSONArray activitiesArray = (JSONArray) activitiesObj; + // 直接返回activities数组 + result.put("data", activitiesArray); + return result; + } catch (Exception e) { + System.err.println("获取活动专区列表异常:" + e.getMessage()); + return AppletControllerUtil.appletError("获取活动专区列表失败:" + e.getMessage()); + } + } + + + + /** + * 首页拼团专区列表接口 + * 查询type=1且isgroup=1的服务商品前4个 + * 返回icon、标题、price、groupprice字段 + */ + public Map getGroupList() { + try { + Map result = new HashMap<>(); + // 构建查询条件 + ServiceGoods queryGoods = new ServiceGoods(); + queryGoods.setType(1); // type=1 + queryGoods.setIsgroup(1); // isgroup=1 + queryGoods.setStatus("1"); // 只查询启用状态的商品 + + // 查询服务商品列表 + List goodsList = serviceGoodsService.selectServiceGoodsList(queryGoods); + + // 只取前4个 + if (goodsList.size() > 4) { + goodsList = goodsList.subList(0, 6); + } + + // 构建返回数据 + List> resultList = new ArrayList<>(); + + for (ServiceGoods goods : goodsList) { + Map goodsData = new HashMap<>(); + + // 基本信息 + goodsData.put("id", goods.getId()); + goodsData.put("groupnum", goods.getGroupnum()); + goodsData.put("title", goods.getTitle()); + goodsData.put("price", goods.getPrice() != null ? goods.getPrice().toString() : "0.00"); + goodsData.put("groupprice", goods.getGroupprice() != null ? goods.getGroupprice().toString() : "0.00"); + + // 处理图片URL - 添加CDN前缀 + goodsData.put("icon", AppletControllerUtil.buildImageUrl(goods.getIcon())); + + resultList.add(goodsData); + } + result.put("data", resultList); + return result; + + } catch (Exception e) { + System.err.println("获取拼团专区列表异常:" + e.getMessage()); + return AppletControllerUtil.appletError("获取拼团专区列表失败:" + e.getMessage()); + } + } + + + /** + * 获取系统配置信息 + * 功能说明: + * - 根据配置名称获取对应的配置值 + * - 配置值以JSON格式返回 + * - 支持动态配置管理 + * + * @param name 配置项名称 + * @return 配置信息数据 + */ + public Map getConfig(String name) { + try { + Map result = new HashMap<>(); + name="config_two"; + // 参数验证 + if (StringUtils.isEmpty(name)) { + return AppletControllerUtil.appletWarning("配置名称不能为空"); + } + // 查询配置信息 + SiteConfig config = AppletControllerUtil.getSiteConfig(name, siteConfigService); + if (config == null) { + return AppletControllerUtil.appletWarning("未找到指定的配置项:" + name); + } + // 解析配置值为JSON对象 + JSONObject configJson = AppletControllerUtil.parseConfigValue(config.getValue()); + result.put("data", configJson); + return result; + } catch (Exception e) { + return AppletControllerUtil.appletError("获取配置信息失败:" + e.getMessage()); + } + } + + + /** + * 获取系统配置信息 + * 功能说明: + * - 根据配置名称获取对应的配置值 + * - 配置值以JSON格式返回 + * - 支持动态配置管理 + * + * @param name 配置项名称 + * @return 配置信息数据 + */ + public Map getConfigData(String name) { + try { + Map result = new HashMap<>(); + + // 参数验证 + if (StringUtils.isEmpty(name)) { + return AppletControllerUtil.appletWarning("配置名称不能为空"); + } + // 查询配置信息 + SiteConfig config = AppletControllerUtil.getSiteConfig(name, siteConfigService); + if (config == null) { + return AppletControllerUtil.appletWarning("未找到指定的配置项:" + name); + } + // 解析配置值为JSON对象 + JSONObject configJson = AppletControllerUtil.parseConfigValue(config.getValue()); + result.put("data", configJson); + return result; + } catch (Exception e) { + return AppletControllerUtil.appletError("获取配置信息失败:" + e.getMessage()); + } + } + + /** + * 判断用户的会员性质 + * @param user 用户对象 + * @return 1=会员,0=新会员,2=续费会员,-1=未知 + */ + public static int getMemberType(Users user) { + if (user == null) return -1; + Integer ismember = user.getIsmember(); + Object begin = null, end = null; + try { + begin = user.getClass().getMethod("getMemberBegin").invoke(user); + end = user.getClass().getMethod("getMemberEnd").invoke(user); + } catch (Exception e) { + // 兼容没有getMemberBegin/getMemberEnd方法的情况 + } + if (ismember != null && ismember == 0) { + if (begin == null && end == null) { + return 0; // 新会员 + } else if (begin != null && end != null) { + return 2; // 续费会员 + } + } else if (ismember != null && ismember == 1) { + return 1; // 会员 + } + return -1; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/RedBlackTree.java b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/RedBlackTree.java new file mode 100644 index 0000000..780fa80 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/RedBlackTree.java @@ -0,0 +1,882 @@ +package com.ruoyi.system.ControllerUtil; + +import java.util.*; + +/** + * 红黑树算法实现 + * + * 红黑树是一种自平衡二叉搜索树,具有以下特性: + * 1. 每个节点要么是红色,要么是黑色 + * 2. 根节点是黑色 + * 3. 所有叶子节点(NIL)都是黑色 + * 4. 如果一个节点是红色,则它的两个子节点都是黑色 + * 5. 从任一节点到其每个叶子的所有简单路径都包含相同数目的黑色节点 + * + * 时间复杂度: + * - 查找:O(log n) + * - 插入:O(log n) + * - 删除:O(log n) + * + * 应用场景: + * - Java TreeMap/TreeSet 底层实现 + * - 数据库索引 + * - 内存管理 + * - 任务调度 + * + * @author Mr. Zhang Pan + * @date 2025-01-03 + * @version 1.0 + * @param 数据类型,必须实现Comparable接口 + */ +public class RedBlackTree> { + + // ============================== 节点颜色常量 ============================== + + /** 红色节点 */ + private static final boolean RED = true; + + /** 黑色节点 */ + private static final boolean BLACK = false; + + // ============================== 内部节点类 ============================== + + /** + * 红黑树节点 + */ + private class Node { + /** 节点数据 */ + T data; + + /** 左子节点 */ + Node left; + + /** 右子节点 */ + Node right; + + /** 父节点 */ + Node parent; + + /** 节点颜色 */ + boolean color; + + /** + * 构造函数 + * + * @param data 节点数据 + * @param color 节点颜色 + */ + Node(T data, boolean color) { + this.data = data; + this.color = color; + this.left = null; + this.right = null; + this.parent = null; + } + + /** + * 构造函数 - 默认红色 + * + * @param data 节点数据 + */ + Node(T data) { + this(data, RED); + } + + /** + * 判断是否为红色节点 + * + * @return true=红色,false=黑色 + */ + boolean isRed() { + return color == RED; + } + + /** + * 判断是否为黑色节点 + * + * @return true=黑色,false=红色 + */ + boolean isBlack() { + return color == BLACK; + } + + /** + * 设置为红色 + */ + void setRed() { + color = RED; + } + + /** + * 设置为黑色 + */ + void setBlack() { + color = BLACK; + } + + @Override + public String toString() { + return String.format("%s(%s)", data, color == RED ? "R" : "B"); + } + } + + // ============================== 实例变量 ============================== + + /** 根节点 */ + private Node root; + + /** 树的大小 */ + private int size; + + // ============================== 构造方法 ============================== + + /** + * 默认构造函数 + */ + public RedBlackTree() { + root = null; + size = 0; + } + + /** + * 构造函数 - 从数组创建 + * + * @param array 数据数组 + */ + public RedBlackTree(T[] array) { + this(); + if (array != null) { + for (T item : array) { + if (item != null) { + insert(item); + } + } + } + } + + /** + * 构造函数 - 从集合创建 + * + * @param collection 数据集合 + */ + public RedBlackTree(Collection collection) { + this(); + if (collection != null) { + for (T item : collection) { + if (item != null) { + insert(item); + } + } + } + } + + // ============================== 基本操作 ============================== + + /** + * 获取树的大小 + * + * @return 节点数量 + */ + public int size() { + return size; + } + + /** + * 判断树是否为空 + * + * @return true=空树,false=非空 + */ + public boolean isEmpty() { + return size == 0; + } + + /** + * 清空树 + */ + public void clear() { + root = null; + size = 0; + } + + // ============================== 查找操作 ============================== + + /** + * 查找指定数据 + * + * @param data 要查找的数据 + * @return true=存在,false=不存在 + */ + public boolean contains(T data) { + return findNode(data) != null; + } + + /** + * 查找节点 + * + * @param data 要查找的数据 + * @return 找到的节点,null表示不存在 + */ + private Node findNode(T data) { + if (data == null) return null; + + Node current = root; + while (current != null) { + int cmp = data.compareTo(current.data); + if (cmp == 0) { + return current; + } else if (cmp < 0) { + current = current.left; + } else { + current = current.right; + } + } + return null; + } + + /** + * 查找最小值 + * + * @return 最小值,null表示空树 + */ + public T findMin() { + Node minNode = findMinNode(root); + return minNode != null ? minNode.data : null; + } + + /** + * 查找最大值 + * + * @return 最大值,null表示空树 + */ + public T findMax() { + Node maxNode = findMaxNode(root); + return maxNode != null ? maxNode.data : null; + } + + /** + * 查找最小节点 + * + * @param node 起始节点 + * @return 最小节点 + */ + private Node findMinNode(Node node) { + if (node == null) return null; + while (node.left != null) { + node = node.left; + } + return node; + } + + /** + * 查找最大节点 + * + * @param node 起始节点 + * @return 最大节点 + */ + private Node findMaxNode(Node node) { + if (node == null) return null; + while (node.right != null) { + node = node.right; + } + return node; + } + + // ============================== 插入操作 ============================== + + /** + * 插入数据 + * + * @param data 要插入的数据 + * @return true=插入成功,false=数据已存在 + */ + public boolean insert(T data) { + if (data == null) return false; + + // 空树情况 + if (root == null) { + root = new Node(data, BLACK); + size++; + return true; + } + + // 查找插入位置 + Node parent = null; + Node current = root; + int cmp = 0; + + while (current != null) { + parent = current; + cmp = data.compareTo(current.data); + if (cmp == 0) { + return false; // 数据已存在 + } else if (cmp < 0) { + current = current.left; + } else { + current = current.right; + } + } + + // 创建新节点 + Node newNode = new Node(data, RED); + newNode.parent = parent; + + // 插入新节点 + if (cmp < 0) { + parent.left = newNode; + } else { + parent.right = newNode; + } + + size++; + + // 修复红黑树性质 + insertFixup(newNode); + + return true; + } + + /** + * 插入后修复红黑树性质 + * + * @param node 新插入的节点 + */ + private void insertFixup(Node node) { + while (node != root && node.parent.isRed()) { + if (node.parent == node.parent.parent.left) { + // 父节点是祖父节点的左子节点 + Node uncle = node.parent.parent.right; + + if (uncle != null && uncle.isRed()) { + // 情况1:叔叔节点是红色 + node.parent.setBlack(); + uncle.setBlack(); + node.parent.parent.setRed(); + node = node.parent.parent; + } else { + if (node == node.parent.right) { + // 情况2:叔叔节点是黑色,当前节点是右子节点 + node = node.parent; + leftRotate(node); + } + // 情况3:叔叔节点是黑色,当前节点是左子节点 + node.parent.setBlack(); + node.parent.parent.setRed(); + rightRotate(node.parent.parent); + } + } else { + // 父节点是祖父节点的右子节点(对称情况) + Node uncle = node.parent.parent.left; + + if (uncle != null && uncle.isRed()) { + // 情况1:叔叔节点是红色 + node.parent.setBlack(); + uncle.setBlack(); + node.parent.parent.setRed(); + node = node.parent.parent; + } else { + if (node == node.parent.left) { + // 情况2:叔叔节点是黑色,当前节点是左子节点 + node = node.parent; + rightRotate(node); + } + // 情况3:叔叔节点是黑色,当前节点是右子节点 + node.parent.setBlack(); + node.parent.parent.setRed(); + leftRotate(node.parent.parent); + } + } + } + + // 根节点始终为黑色 + root.setBlack(); + } + + // ============================== 删除操作 ============================== + + /** + * 删除指定数据 + * + * @param data 要删除的数据 + * @return true=删除成功,false=数据不存在 + */ + public boolean delete(T data) { + if (data == null) return false; + + Node nodeToDelete = findNode(data); + if (nodeToDelete == null) { + return false; + } + + deleteNode(nodeToDelete); + size--; + return true; + } + + /** + * 删除节点 + * + * @param node 要删除的节点 + */ + private void deleteNode(Node node) { + Node y = node; + Node x; + boolean yOriginalColor = y.color; + + if (node.left == null) { + x = node.right; + transplant(node, node.right); + } else if (node.right == null) { + x = node.left; + transplant(node, node.left); + } else { + y = findMinNode(node.right); + yOriginalColor = y.color; + x = y.right; + + if (y.parent == node) { + if (x != null) x.parent = y; + } else { + transplant(y, y.right); + y.right = node.right; + if (y.right != null) y.right.parent = y; + } + + transplant(node, y); + y.left = node.left; + if (y.left != null) y.left.parent = y; + y.color = node.color; + } + + if (yOriginalColor == BLACK) { + deleteFixup(x); + } + } + + /** + * 节点移植 + * + * @param u 被替换的节点 + * @param v 替换节点 + */ + private void transplant(Node u, Node v) { + if (u.parent == null) { + root = v; + } else if (u == u.parent.left) { + u.parent.left = v; + } else { + u.parent.right = v; + } + + if (v != null) { + v.parent = u.parent; + } + } + + /** + * 删除后修复红黑树性质 + * + * @param node 替换节点 + */ + private void deleteFixup(Node node) { + while (node != root && (node == null || node.isBlack())) { + if (node == getParent(node).left) { + Node sibling = getParent(node).right; + + if (sibling != null && sibling.isRed()) { + sibling.setBlack(); + getParent(node).setRed(); + leftRotate(getParent(node)); + sibling = getParent(node).right; + } + + if ((sibling == null) || + (getLeft(sibling) == null || getLeft(sibling).isBlack()) && + (getRight(sibling) == null || getRight(sibling).isBlack())) { + if (sibling != null) sibling.setRed(); + node = getParent(node); + } else { + if (getRight(sibling) == null || getRight(sibling).isBlack()) { + if (getLeft(sibling) != null) getLeft(sibling).setBlack(); + if (sibling != null) sibling.setRed(); + rightRotate(sibling); + sibling = getParent(node).right; + } + + if (sibling != null) sibling.color = getParent(node).color; + getParent(node).setBlack(); + if (getRight(sibling) != null) getRight(sibling).setBlack(); + leftRotate(getParent(node)); + node = root; + } + } else { + Node sibling = getParent(node).left; + + if (sibling != null && sibling.isRed()) { + sibling.setBlack(); + getParent(node).setRed(); + rightRotate(getParent(node)); + sibling = getParent(node).left; + } + + if ((sibling == null) || + (getRight(sibling) == null || getRight(sibling).isBlack()) && + (getLeft(sibling) == null || getLeft(sibling).isBlack())) { + if (sibling != null) sibling.setRed(); + node = getParent(node); + } else { + if (getLeft(sibling) == null || getLeft(sibling).isBlack()) { + if (getRight(sibling) != null) getRight(sibling).setBlack(); + if (sibling != null) sibling.setRed(); + leftRotate(sibling); + sibling = getParent(node).left; + } + + if (sibling != null) sibling.color = getParent(node).color; + getParent(node).setBlack(); + if (getLeft(sibling) != null) getLeft(sibling).setBlack(); + rightRotate(getParent(node)); + node = root; + } + } + } + + if (node != null) node.setBlack(); + } + + // ============================== 旋转操作 ============================== + + /** + * 左旋转 + * + * @param node 旋转节点 + */ + private void leftRotate(Node node) { + Node rightChild = node.right; + node.right = rightChild.left; + + if (rightChild.left != null) { + rightChild.left.parent = node; + } + + rightChild.parent = node.parent; + + if (node.parent == null) { + root = rightChild; + } else if (node == node.parent.left) { + node.parent.left = rightChild; + } else { + node.parent.right = rightChild; + } + + rightChild.left = node; + node.parent = rightChild; + } + + /** + * 右旋转 + * + * @param node 旋转节点 + */ + private void rightRotate(Node node) { + Node leftChild = node.left; + node.left = leftChild.right; + + if (leftChild.right != null) { + leftChild.right.parent = node; + } + + leftChild.parent = node.parent; + + if (node.parent == null) { + root = leftChild; + } else if (node == node.parent.right) { + node.parent.right = leftChild; + } else { + node.parent.left = leftChild; + } + + leftChild.right = node; + node.parent = leftChild; + } + + // ============================== 辅助方法 ============================== + + /** + * 安全获取父节点 + */ + private Node getParent(Node node) { + return node != null ? node.parent : null; + } + + /** + * 安全获取左子节点 + */ + private Node getLeft(Node node) { + return node != null ? node.left : null; + } + + /** + * 安全获取右子节点 + */ + private Node getRight(Node node) { + return node != null ? node.right : null; + } + + // ============================== 遍历操作 ============================== + + /** + * 中序遍历 + * + * @return 有序数据列表 + */ + public List inorderTraversal() { + List result = new ArrayList<>(); + inorderTraversal(root, result); + return result; + } + + /** + * 中序遍历递归方法 + * + * @param node 当前节点 + * @param result 结果列表 + */ + private void inorderTraversal(Node node, List result) { + if (node != null) { + inorderTraversal(node.left, result); + result.add(node.data); + inorderTraversal(node.right, result); + } + } + + /** + * 前序遍历 + * + * @return 数据列表 + */ + public List preorderTraversal() { + List result = new ArrayList<>(); + preorderTraversal(root, result); + return result; + } + + /** + * 前序遍历递归方法 + * + * @param node 当前节点 + * @param result 结果列表 + */ + private void preorderTraversal(Node node, List result) { + if (node != null) { + result.add(node.data); + preorderTraversal(node.left, result); + preorderTraversal(node.right, result); + } + } + + /** + * 后序遍历 + * + * @return 数据列表 + */ + public List postorderTraversal() { + List result = new ArrayList<>(); + postorderTraversal(root, result); + return result; + } + + /** + * 后序遍历递归方法 + * + * @param node 当前节点 + * @param result 结果列表 + */ + private void postorderTraversal(Node node, List result) { + if (node != null) { + postorderTraversal(node.left, result); + postorderTraversal(node.right, result); + result.add(node.data); + } + } + + /** + * 层序遍历 + * + * @return 数据列表 + */ + public List levelOrderTraversal() { + List result = new ArrayList<>(); + if (root == null) return result; + + Queue queue = new LinkedList<>(); + queue.offer(root); + + while (!queue.isEmpty()) { + Node node = queue.poll(); + result.add(node.data); + + if (node.left != null) { + queue.offer(node.left); + } + if (node.right != null) { + queue.offer(node.right); + } + } + + return result; + } + + // ============================== 验证方法 ============================== + + /** + * 验证红黑树性质 + * + * @return true=符合红黑树性质,false=不符合 + */ + public boolean isValidRedBlackTree() { + return isValidRedBlackTree(root) != -1; + } + + /** + * 验证红黑树性质(递归) + * + * @param node 当前节点 + * @return 黑色节点数量,-1表示不符合红黑树性质 + */ + private int isValidRedBlackTree(Node node) { + if (node == null) return 1; // NIL节点为黑色 + + // 检查红色节点的子节点必须是黑色 + if (node.isRed()) { + if ((node.left != null && node.left.isRed()) || + (node.right != null && node.right.isRed())) { + return -1; + } + } + + // 递归检查左右子树 + int leftBlackHeight = isValidRedBlackTree(node.left); + int rightBlackHeight = isValidRedBlackTree(node.right); + + // 检查黑色高度是否相等 + if (leftBlackHeight == -1 || rightBlackHeight == -1 || + leftBlackHeight != rightBlackHeight) { + return -1; + } + + // 返回黑色节点数量 + return leftBlackHeight + (node.isBlack() ? 1 : 0); + } + + /** + * 获取树的高度 + * + * @return 树的高度 + */ + public int getHeight() { + return getHeight(root); + } + + /** + * 获取树的高度(递归) + * + * @param node 当前节点 + * @return 高度 + */ + private int getHeight(Node node) { + if (node == null) return 0; + return 1 + Math.max(getHeight(node.left), getHeight(node.right)); + } + + /** + * 获取黑色高度 + * + * @return 黑色高度 + */ + public int getBlackHeight() { + return getBlackHeight(root); + } + + /** + * 获取黑色高度(递归) + * + * @param node 当前节点 + * @return 黑色高度 + */ + private int getBlackHeight(Node node) { + if (node == null) return 1; + int leftHeight = getBlackHeight(node.left); + return leftHeight + (node.isBlack() ? 1 : 0); + } + + // ============================== 工具方法 ============================== + + /** + * 转换为数组 + * + * @return 有序数组 + */ + @SuppressWarnings("unchecked") + public T[] toArray() { + List list = inorderTraversal(); + return (T[]) list.toArray(); + } + + /** + * 转换为列表 + * + * @return 有序列表 + */ + public List toList() { + return inorderTraversal(); + } + + /** + * 打印树结构 + * + * @return 树结构字符串 + */ + public String printTree() { + if (root == null) return "Empty tree"; + + StringBuilder sb = new StringBuilder(); + printTree(root, "", true, sb); + return sb.toString(); + } + + /** + * 打印树结构(递归) + * + * @param node 当前节点 + * @param prefix 前缀 + * @param isLast 是否为最后一个节点 + * @param sb 字符串构建器 + */ + private void printTree(Node node, String prefix, boolean isLast, StringBuilder sb) { + if (node != null) { + sb.append(prefix); + sb.append(isLast ? "└── " : "├── "); + sb.append(node.toString()).append("\n"); + + List children = new ArrayList<>(); + if (node.left != null) children.add(node.left); + if (node.right != null) children.add(node.right); + + for (int i = 0; i < children.size(); i++) { + boolean last = (i == children.size() - 1); + String newPrefix = prefix + (isLast ? " " : "│ "); + if (children.get(i) == node.left) { + printTree(node.left, newPrefix, node.right == null, sb); + } else { + printTree(node.right, newPrefix, true, sb); + } + } + } + } + + @Override + public String toString() { + return String.format("RedBlackTree[size=%d, height=%d, valid=%s]", + size, getHeight(), isValidRedBlackTree()); + } +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/SnowflakeIdGenerator.java b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/SnowflakeIdGenerator.java new file mode 100644 index 0000000..7dd652a --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controllerUtil/SnowflakeIdGenerator.java @@ -0,0 +1,326 @@ +package com.ruoyi.system.ControllerUtil; + +/** + * 雪花算法 - 分布式唯一ID生成器 + * + * 雪花算法原理: + * - 64位Long类型数字 + * - 第1位:符号位,固定为0 + * - 第2-42位:时间戳(毫秒级),可使用69年 + * - 第43-52位:机器ID(10位),支持1024台机器 + * - 第53-64位:序列号(12位),每毫秒可生成4096个ID + * + * 优点: + * 1. 高性能:本地生成,无网络消耗 + * 2. 高可用:不依赖数据库或第三方系统 + * 3. 高并发:每毫秒可生成4096个ID + * 4. 趋势递增:时间戳在高位,ID整体趋势递增 + * 5. 信息安全:不暴露系统信息 + * + * @author Mr. Zhang Pan + * @date 2025-01-03 + * @version 1.0 + */ +public class SnowflakeIdGenerator { + + // ============================== 位数分配 ============================== + + /** 机器ID所占的位数 */ + private final long workerIdBits = 10L; + + /** 序列号所占的位数 */ + private final long sequenceBits = 12L; + + /** 机器ID最大值 (2^10 - 1 = 1023) */ + private final long maxWorkerId = ~(-1L << workerIdBits); + + /** 序列号最大值 (2^12 - 1 = 4095) */ + private final long sequenceMask = ~(-1L << sequenceBits); + + /** 机器ID左移位数 */ + private final long workerIdShift = sequenceBits; + + /** 时间戳左移位数 */ + private final long timestampLeftShift = sequenceBits + workerIdBits; + + // ============================== 实例变量 ============================== + + /** 机器ID */ + private final long workerId; + + /** 上次生成ID的时间戳 */ + private long lastTimestamp = -1L; + + /** 序列号 */ + private long sequence = 0L; + + /** 起始时间戳 (2021-01-01 00:00:00) */ + private final long startTimestamp = 1609459200000L; + + // ============================== 构造方法 ============================== + + /** + * 构造函数 + * + * @param workerId 机器ID (0-1023) + * @throws IllegalArgumentException 机器ID超出范围时抛出 + */ + public SnowflakeIdGenerator(long workerId) { + if (workerId > maxWorkerId || workerId < 0) { + throw new IllegalArgumentException( + String.format("机器ID必须在0到%d之间", maxWorkerId)); + } + this.workerId = workerId; + } + + /** + * 默认构造函数 - 使用本机IP最后一段作为机器ID + */ + public SnowflakeIdGenerator() { + this.workerId = getDefaultWorkerId(); + } + + // ============================== 核心方法 ============================== + + /** + * 生成下一个唯一ID + * + * @return 64位长整型ID + * @throws RuntimeException 时钟回拨时抛出 + */ + public synchronized long nextId() { + long timestamp = timeGen(); + + // 检查时钟回拨 + if (timestamp < lastTimestamp) { + throw new RuntimeException( + String.format("时钟回拨异常,拒绝生成ID。当前时间戳:%d,上次时间戳:%d", + timestamp, lastTimestamp)); + } + + // 同一毫秒内 + if (lastTimestamp == timestamp) { + // 序列号递增 + sequence = (sequence + 1) & sequenceMask; + + // 序列号溢出,等待下一毫秒 + if (sequence == 0) { + timestamp = tilNextMillis(lastTimestamp); + } + } else { + // 不同毫秒,序列号重置 + sequence = 0L; + } + + // 更新上次时间戳 + lastTimestamp = timestamp; + + // 组装64位ID + return ((timestamp - startTimestamp) << timestampLeftShift) | + (workerId << workerIdShift) | + sequence; + } + + /** + * 批量生成ID + * + * @param count 生成数量 + * @return ID数组 + */ + public long[] nextIds(int count) { + if (count <= 0) { + throw new IllegalArgumentException("生成数量必须大于0"); + } + + long[] ids = new long[count]; + for (int i = 0; i < count; i++) { + ids[i] = nextId(); + } + return ids; + } + + // ============================== 辅助方法 ============================== + + /** + * 获取当前时间戳(毫秒) + * + * @return 当前时间戳 + */ + private long timeGen() { + return System.currentTimeMillis(); + } + + /** + * 等待下一毫秒 + * + * @param lastTimestamp 上次时间戳 + * @return 下一毫秒时间戳 + */ + private long tilNextMillis(long lastTimestamp) { + long timestamp = timeGen(); + while (timestamp <= lastTimestamp) { + timestamp = timeGen(); + } + return timestamp; + } + + /** + * 获取默认机器ID(基于本机IP) + * + * @return 机器ID + */ + private long getDefaultWorkerId() { + try { + java.net.InetAddress inetAddress = java.net.InetAddress.getLocalHost(); + String hostAddress = inetAddress.getHostAddress(); + String[] segments = hostAddress.split("\\."); + if (segments.length == 4) { + // 使用IP最后一段作为机器ID + long id = Long.parseLong(segments[3]); + return id & maxWorkerId; // 确保在范围内 + } + } catch (Exception e) { + // 获取失败时使用随机数 + return (long) (Math.random() * maxWorkerId); + } + return 1L; // 默认值 + } + + // ============================== ID解析方法 ============================== + + /** + * 解析雪花ID的各个组成部分 + * + * @param id 雪花ID + * @return 解析结果Map + */ + public java.util.Map parseId(long id) { + java.util.Map result = new java.util.HashMap<>(); + + // 提取各部分 + long sequence = id & sequenceMask; + long workerId = (id >> workerIdShift) & ~(-1L << workerIdBits); + long timestamp = (id >> timestampLeftShift) + startTimestamp; + + result.put("id", id); + result.put("timestamp", timestamp); + result.put("workerId", workerId); + result.put("sequence", sequence); + result.put("datetime", new java.util.Date(timestamp)); + + return result; + } + + // ============================== 工具方法 ============================== + + /** + * 获取机器ID + * + * @return 当前机器ID + */ + public long getWorkerId() { + return workerId; + } + + /** + * 获取起始时间戳 + * + * @return 起始时间戳 + */ + public long getStartTimestamp() { + return startTimestamp; + } + + /** + * 检查ID是否为雪花算法生成 + * + * @param id 待检查的ID + * @return true=是雪花ID,false=不是 + */ + public boolean isSnowflakeId(long id) { + try { + java.util.Map parsed = parseId(id); + long timestamp = (Long) parsed.get("timestamp"); + + // 检查时间戳是否合理(在起始时间之后,当前时间之前) + return timestamp >= startTimestamp && timestamp <= System.currentTimeMillis(); + } catch (Exception e) { + return false; + } + } + + // ============================== 静态工具方法 ============================== + + /** 默认实例 */ + private static volatile SnowflakeIdGenerator defaultInstance; + + /** + * 获取默认实例(单例模式) + * + * @return 默认雪花算法实例 + */ + public static SnowflakeIdGenerator getDefaultInstance() { + if (defaultInstance == null) { + synchronized (SnowflakeIdGenerator.class) { + if (defaultInstance == null) { + defaultInstance = new SnowflakeIdGenerator(); + } + } + } + return defaultInstance; + } + + /** + * 快速生成ID(使用默认实例) + * + * @return 雪花ID + */ + public static long generateId() { + return getDefaultInstance().nextId(); + } + + /** + * 快速生成ID字符串(使用默认实例) + * + * @return 雪花ID字符串 + */ + public static String generateIdString() { + return String.valueOf(generateId()); + } + + // ============================== 性能测试方法 ============================== + + /** + * 性能测试 + * + * @param count 测试数量 + * @return 测试结果 + */ + public java.util.Map performanceTest(int count) { + java.util.Map result = new java.util.HashMap<>(); + + long startTime = System.currentTimeMillis(); + java.util.Set idSet = new java.util.HashSet<>(); + + // 生成ID并检查重复 + for (int i = 0; i < count; i++) { + long id = nextId(); + if (!idSet.add(id)) { + result.put("duplicate", true); + result.put("duplicateId", id); + break; + } + } + + long endTime = System.currentTimeMillis(); + long duration = endTime - startTime; + + result.put("count", count); + result.put("duration", duration + "ms"); + result.put("qps", count * 1000L / Math.max(duration, 1)); + result.put("duplicate", result.getOrDefault("duplicate", false)); + result.put("workerId", workerId); + + return result; + } +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/UserMemnerConsumptionLog.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/UserMemnerConsumptionLog.java index 5d3a1aa..3536e85 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/UserMemnerConsumptionLog.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/UserMemnerConsumptionLog.java @@ -42,6 +42,12 @@ public class UserMemnerConsumptionLog extends BaseEntity @Excel(name = "备注说明") private String reamk; + /** 备注说明 */ + @Excel(name = "订单编号") + private String orderid; + + + /** 消费前用户余额 */ @Excel(name = "消费前用户余额") private BigDecimal beformoney; @@ -214,6 +220,14 @@ public class UserMemnerConsumptionLog extends BaseEntity this.type = type; } + public String getOrderid() { + return orderid; + } + + public void setOrderid(String orderid) { + this.orderid = orderid; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/utils/QiniuUploadUtil.java b/ruoyi-system/src/main/java/com/ruoyi/system/utils/QiniuUploadUtil.java index f552288..217b7a8 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/utils/QiniuUploadUtil.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/utils/QiniuUploadUtil.java @@ -101,7 +101,7 @@ public class QiniuUploadUtil { DefaultPutRet putRet = JSON.parseObject(response.bodyString(), DefaultPutRet.class); // 返回完整的访问URL - return "https://" + config.getDomain() + "/" + putRet.key; + return putRet.key; } catch (QiniuException ex) { Response r = ex.response; diff --git a/ruoyi-system/src/main/resources/mapper/system/ServiceGoodsMapper.xml b/ruoyi-system/src/main/resources/mapper/system/ServiceGoodsMapper.xml index a7aac64..b3a5dad 100644 --- a/ruoyi-system/src/main/resources/mapper/system/ServiceGoodsMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/ServiceGoodsMapper.xml @@ -72,6 +72,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and first_cate_id = #{firstCateId} and second_cate_id = #{secondCateId} and type = #{type} + and isgroup = #{isgroup} order by id desc diff --git a/ruoyi-system/src/main/resources/mapper/system/UserMemnerConsumptionLogMapper.xml b/ruoyi-system/src/main/resources/mapper/system/UserMemnerConsumptionLogMapper.xml index bfb9a12..a77d477 100644 --- a/ruoyi-system/src/main/resources/mapper/system/UserMemnerConsumptionLogMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/UserMemnerConsumptionLogMapper.xml @@ -16,6 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -23,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, uid, consumptiontype, consumptiontime, consumptionmoney,type, reamk, beformoney, aftermoney, nowmoney, created_at, updated_at, deleted_at, del from user_memner_consumption_log + select id, uid, consumptiontype, consumptiontime,orderid, consumptionmoney,type, reamk, beformoney, aftermoney, nowmoney, created_at, updated_at, deleted_at, del from user_memner_consumption_log + +

+ +
+
+ {{ resultError }} +
+
+
+ + 以下为生成的结果 +
+ +
+
+
+
+
+
+
+ + 提示:您可以在上面输入文字生成内容 或 选择下方的操作 +
+
+ + 提示:您可以在上面输入文字生成内容 +
+
+ + + +
+
+ + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/ai/ai.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/ai/ai.js new file mode 100644 index 0000000..8c5347e --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/ai/ai.js @@ -0,0 +1 @@ +var aiConfig=editor.getOpt("ai");var aiFunctions=editor.getOpt("aiFunctions");var isMultiLine=function(text){return text.indexOf("\n")!==-1};var fetchStream=function(url,option,onStream,onFinish){fetch(url,Object.assign({method:"POST"},option)).then(response=>{if(!response.ok){onFinish({code:-1,msg:`HTTP error! status: ${response.status}`});return}const reader=response.body.getReader();const decoder=new TextDecoder("utf-8");let buffer="";const textList=[];function processChunk(chunk){buffer+=decoder.decode(chunk,{stream:true});const lines=buffer.split("\n");for(let line of lines){line=line.trim();if(line.startsWith("data:")){const jsonStr=line.replace("data:","").trim();if(jsonStr==="[DONE]"){onFinish({code:0,msg:"ok",data:{text:textList.join("")}});return}try{let text=null;const data=JSON.parse(jsonStr);if(data.choices&&data.choices.length>0&&data.choices[0].delta){text=data.choices[0].delta.content}else if(data.type){if(data.type==="error"){onFinish({code:-1,msg:data.data});return}else if(data.type==="end"){onFinish({code:0,msg:"ok",data:{text:textList.join("")}});return}else if(data.type==="data"){text=data.data}}if(text!==null){textList.push(text);onStream({code:0,msg:"ok",data:{text:text}})}else{onFinish({code:-1,msg:"No text found!"});console.log("data:",data)}}catch(e){onFinish({code:-1,msg:"JSON parse error!"+e})}}}buffer=lines.pop()||""}function read(){reader.read().then(({done,value})=>{if(done){if(buffer)processChunk(new Uint8Array);return}processChunk(value);read()}).catch(error=>{onFinish({code:-1,msg:"Stream error!"+error})})}read()}).catch(error=>{onFinish({code:-1,msg:"Request error!"+error})})};var openAiCompletion=function(url,param,option){option=Object.assign({body:null},option);if(!option.body){option.body={model:aiConfig.driverConfig.model,messages:[{role:"user",content:param.promptText}],stream:true}}fetchStream(url,{headers:{Authorization:`Bearer ${aiConfig.driverConfig.key}`,"Content-Type":"application/json"},body:JSON.stringify(option.body)},param.onStream,param.onFinish)};var drivers={ModStart:function(param){openAiCompletion(aiConfig.driverConfig.url,param,{body:{prompt:param.promptText}})},OpenAi:function(param){openAiCompletion(aiConfig.driverConfig.url||"https://api.openai.com/v1/engines/davinci/completions",param)},DeepSeek:function(param){openAiCompletion(aiConfig.driverConfig.url||"https://api.deepseek.com/chat/completions",param)}};function getRequest(driver){if(aiConfig.driverRequest){return aiConfig.driverRequest}if(driver in drivers){return drivers[driver]}return null}var converter=new window.showdown.Converter;var Ai={runtime:{range:null},init:function(){new Vue({el:"#app",data:{loading:false,selectText:"",inputText:"",promptText:"",resultText:"",resultError:"",functions:[]},mounted:function(){Ai.runtime.range=editor.selection.getRange();var cloneContents=Ai.runtime.range.cloneContents();if(cloneContents){this.selectText=cloneContents.textContent.trim()}else{this.selectText=""}this.buildFunctions()},computed:{resultHtml:function(){if(!this.resultText){return""}return converter.makeHtml(this.resultText)},resultHeight:function(){let height=255;if(this.selectText){height-=45}if(this.resultError){height-=45}return height+"px"}},methods:{buildFunctions:function(){var enableParam={selectText:this.selectText};this.functions=aiFunctions.map(function(f){if(!f.enable(enableParam)){return null}f.prompt=f.prompt.replace(/\{selectText\}/g,enableParam.selectText);return f}).filter(function(f){return!!f})},doSubmit:function(){if(this.loading){return}if(this.inputText){if(this.selectText){this.promptText=this.selectText+"\n\n"+this.inputText}else{this.promptText=this.inputText}}if(!this.promptText){editor.tipError("请输入内容");return}this.loading=true;this.resultError="";this.resultText="";var driverRequest=getRequest(aiConfig.driver);if(!driverRequest){editor.tipError("未找到驱动");return}driverRequest({promptText:this.promptText,onStream:res=>{if(res.code){this.resultError=res.msg;return}this.resultText+=res.data.text},onFinish:res=>{this.loading=false;if(res.code){this.resultError=res.msg;return}this.resultText=res.data.text}})},doSubmitFunction:function(f){this.promptText=f.prompt;this.doSubmit()},doInsert:function(){editor.fireEvent("saveScene");if(this.selectText){if(isMultiLine(this.resultText)){Ai.runtime.range.insertNode(document.createRange().createContextualFragment(this.resultHtml))}else{Ai.runtime.range.insertNode(document.createTextNode(this.resultText))}}else{if(isMultiLine(this.resultText)){editor.execCommand("insertHtml",this.resultHtml)}else{editor.execCommand("insertHtml",this.resultText)}}dialog.close(true)},doReplace:function(){editor.fireEvent("saveScene");Ai.runtime.range.deleteContents();if(isMultiLine(this.resultText)){Ai.runtime.range.insertNode(document.createRange().createContextualFragment(this.resultHtml))}else{Ai.runtime.range.insertNode(document.createTextNode(this.resultText))}dialog.close(true)}}})}};utils.domReady(function(){Ai.init()}); \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/anchor/anchor.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/anchor/anchor.html new file mode 100644 index 0000000..a8160a2 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/anchor/anchor.html @@ -0,0 +1,62 @@ + + + + + + + + +
+ +
+ + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/attachment.css b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/attachment.css new file mode 100644 index 0000000..0591493 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/attachment.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +@charset "utf-8";.wrapper{zoom:1;width:630px;*width:626px;height:380px;margin:0 auto;padding:10px;position:relative;font-family:sans-serif}.tabhead{float:left}.tabbody{width:100%;height:346px;position:relative;clear:both}.tabbody .panel{position:absolute;width:0;height:0;background:#fff;overflow:hidden;display:none}.tabbody .panel.focus{width:100%;height:346px;display:block}.tabbody #upload.panel{width:0;height:0;overflow:hidden;position:absolute!important;clip:rect(1px,1px,1px,1px);background:#fff;display:block}.tabbody #upload.panel.focus{width:100%;height:346px;display:block;clip:auto}#upload .queueList{margin:0;width:100%;height:100%;position:absolute;overflow:hidden}#upload p{margin:0}.element-invisible{width:0!important;height:0!important;border:0;padding:0;margin:0;overflow:hidden;position:absolute!important;clip:rect(1px,1px,1px,1px)}#upload .placeholder{margin:10px;border:2px dashed #e6e6e6;*border:0 dashed #e6e6e6;height:172px;padding-top:150px;text-align:center;background:url(./images/image.png) center 70px no-repeat;color:#ccc;font-size:18px;position:relative;top:0;*top:10px}#upload .placeholder .webuploader-pick{font-size:18px;background:#00b7ee;border-radius:3px;line-height:44px;padding:0 30px;*width:120px;color:#fff;display:inline-block;margin:0 auto 20px;cursor:pointer;box-shadow:0 1px 1px rgba(0,0,0,.1)}#upload .placeholder .webuploader-pick-hover{background:#00a2d4}#filePickerContainer{text-align:center}#upload .placeholder .flashTip{color:#666;font-size:12px;position:absolute;width:100%;text-align:center;bottom:20px}#upload .placeholder .flashTip a{color:#0785d1;text-decoration:none}#upload .placeholder .flashTip a:hover{text-decoration:underline}#upload .placeholder.webuploader-dnd-over{border-color:#999}#upload .filelist{list-style:none;margin:0;padding:0;overflow-x:hidden;overflow-y:auto;position:relative;height:300px}#upload .filelist:after{content:'';display:block;width:0;height:0;overflow:hidden;clear:both}#upload .filelist li{width:113px;height:113px;background:url(./images/bg.png);text-align:center;margin:9px 0 0 9px;*margin:6px 0 0 6px;position:relative;display:block;float:left;overflow:hidden;font-size:12px}#upload .filelist li p.log{position:relative;top:-45px}#upload .filelist li p.title{position:absolute;top:0;left:0;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;top:5px;text-indent:5px;text-align:left}#upload .filelist li p.progress{position:absolute;width:100%;bottom:0;left:0;height:8px;overflow:hidden;z-index:50;margin:0;border-radius:0;background:0 0;-webkit-box-shadow:0 0 0}#upload .filelist li p.progress span{display:none;overflow:hidden;width:0;height:100%;background:#1483d8 url(./images/progress.png) repeat-x;-webit-transition:width 200ms linear;-moz-transition:width 200ms linear;-o-transition:width 200ms linear;-ms-transition:width 200ms linear;transition:width 200ms linear;-webkit-animation:progressmove 2s linear infinite;-moz-animation:progressmove 2s linear infinite;-o-animation:progressmove 2s linear infinite;-ms-animation:progressmove 2s linear infinite;animation:progressmove 2s linear infinite;-webkit-transform:translateZ(0)}@-webkit-keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}@-moz-keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}@keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}#upload .filelist li p.imgWrap{position:relative;z-index:2;line-height:113px;vertical-align:middle;overflow:hidden;width:113px;height:113px;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-o-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;-webit-transition:200ms ease-out;-moz-transition:200ms ease-out;-o-transition:200ms ease-out;-ms-transition:200ms ease-out;transition:200ms ease-out}#upload .filelist li p.imgWrap.notimage{margin-top:0;width:111px;height:111px;border:1px #eee solid}#upload .filelist li p.imgWrap.notimage i.file-preview{margin-top:15px}#upload .filelist li img{width:100%}#upload .filelist li p.error{background:#f43838;color:#fff;position:absolute;bottom:0;left:0;height:28px;line-height:28px;width:100%;z-index:100;display:none}#upload .filelist li .success{display:block;position:absolute;left:0;bottom:0;height:40px;width:100%;z-index:200;background:url(./images/success.png) no-repeat right bottom;background-image:url(./images/success.gif) \9}#upload .filelist li.filePickerBlock{width:113px;height:113px;background:url(./images/image.png) no-repeat center 12px;border:1px solid #eee;border-radius:0}#upload .filelist li.filePickerBlock div.webuploader-pick{width:100%;height:100%;margin:0;padding:0;opacity:0;background:0 0;font-size:0}#upload .filelist div.file-panel{position:absolute;height:0;filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;background:rgba(0,0,0,.5);width:100%;top:0;left:0;overflow:hidden;z-index:300}#upload .filelist div.file-panel span{width:24px;height:24px;display:inline;float:right;text-indent:-9999px;overflow:hidden;background:url(./images/icons.png) no-repeat;background:url(./images/icons.gif) no-repeat \9;margin:5px 1px 1px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#upload .filelist div.file-panel span.rotateLeft{display:none;background-position:0 -24px}#upload .filelist div.file-panel span.rotateLeft:hover{background-position:0 0}#upload .filelist div.file-panel span.rotateRight{display:none;background-position:-24px -24px}#upload .filelist div.file-panel span.rotateRight:hover{background-position:-24px 0}#upload .filelist div.file-panel span.cancel{background-position:-48px -24px}#upload .filelist div.file-panel span.cancel:hover{background-position:-48px 0}#upload .statusBar{height:45px;border-bottom:1px solid #dadada;margin:0 10px;padding:0;line-height:45px;vertical-align:middle;position:relative}#upload .statusBar .progress{border:1px solid #1483d8;width:198px;background:#fff;height:18px;position:absolute;top:12px;display:none;text-align:center;line-height:18px;color:#6dbfff;margin:0 10px 0 0}#upload .statusBar .progress span.percentage{width:0;height:100%;left:0;top:0;background:#1483d8;position:absolute}#upload .statusBar .progress span.text{position:relative;z-index:10}#upload .statusBar .info{display:inline-block;font-size:14px;color:#666}#upload .statusBar .btns{position:absolute;top:7px;right:0;line-height:30px}#filePickerBtn{display:inline-block;float:left}#upload .statusBar .btns .webuploader-pick,#upload .statusBar .btns .uploadBtn,#upload .statusBar .btns .uploadBtn.state-uploading,#upload .statusBar .btns .uploadBtn.state-paused{background:#fff;border:1px solid #cfcfcf;color:#565656;padding:0 18px;display:inline-block;border-radius:3px;margin-left:10px;cursor:pointer;font-size:14px;float:left;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#upload .statusBar .btns .webuploader-pick-hover,#upload .statusBar .btns .uploadBtn:hover,#upload .statusBar .btns .uploadBtn.state-uploading:hover,#upload .statusBar .btns .uploadBtn.state-paused:hover{background:#f0f0f0}#upload .statusBar .btns .uploadBtn,#upload .statusBar .btns .uploadBtn.state-paused{background:#00b7ee;color:#fff;border-color:transparent}#upload .statusBar .btns .uploadBtn:hover,#upload .statusBar .btns .uploadBtn.state-paused:hover{background:#00a2d4}#upload .statusBar .btns .uploadBtn.disabled{pointer-events:none;filter:alpha(opacity=60);-moz-opacity:.6;-khtml-opacity:.6;opacity:.6}#online{width:100%;height:336px;padding:10px 0 0}#online #fileList{width:100%;height:100%;overflow-x:hidden;overflow-y:auto;position:relative}#online ul{display:block;list-style:none;margin:0;padding:0}#online li{float:left;display:block;list-style:none;padding:0;width:113px;height:113px;margin:0 0 9px 9px;*margin:0 0 6px 6px;background-color:#eee;overflow:hidden;cursor:pointer;position:relative}#online li.clearFloat{float:none;clear:both;display:block;width:0;height:0;margin:0;padding:0}#online li img{cursor:pointer}#online li div.file-wrapper{cursor:pointer;position:absolute;display:block;width:111px;height:111px;border:1px solid #eee;background:url(./images/bg.png) repeat}#online li div span.file-title{display:block;padding:0 3px;margin:3px 0 0;font-size:12px;height:15px;color:#555;text-align:center;width:107px;white-space:nowrap;word-break:break-all;overflow:hidden;text-overflow:ellipsis}#online li .icon{cursor:pointer;width:113px;height:113px;position:absolute;top:0;left:0;z-index:2;border:0;background-repeat:no-repeat}#online li .icon:hover{width:107px;height:107px;border:3px solid #1094fa}#online li.selected .icon{background-image:url(images/success.png);background-image:url(images/success.gif) \9;background-position:75px 75px}#online li.selected .icon:hover{width:107px;height:107px;border:3px solid #1094fa;background-position:72px 72px}i.file-preview{display:block;margin:10px auto;width:70px;height:70px;background-image:url(./images/file-icons.png);background-image:url(./images/file-icons.gif) \9;background-position:-140px center;background-repeat:no-repeat}i.file-preview.file-type-dir{background-position:0 center}i.file-preview.file-type-file{background-position:-140px center}i.file-preview.file-type-filelist{background-position:-210px center}i.file-preview.file-type-zip,i.file-preview.file-type-rar,i.file-preview.file-type-7z,i.file-preview.file-type-tar,i.file-preview.file-type-gz,i.file-preview.file-type-bz2{background-position:-280px center}i.file-preview.file-type-xls,i.file-preview.file-type-xlsx{background-position:-350px center}i.file-preview.file-type-doc,i.file-preview.file-type-docx{background-position:-420px center}i.file-preview.file-type-ppt,i.file-preview.file-type-pptx{background-position:-490px center}i.file-preview.file-type-vsd{background-position:-560px center}i.file-preview.file-type-pdf{background-position:-630px center}i.file-preview.file-type-txt,i.file-preview.file-type-md,i.file-preview.file-type-json,i.file-preview.file-type-htm,i.file-preview.file-type-xml,i.file-preview.file-type-html,i.file-preview.file-type-js,i.file-preview.file-type-css,i.file-preview.file-type-php,i.file-preview.file-type-jsp,i.file-preview.file-type-asp{background-position:-700px center}i.file-preview.file-type-apk{background-position:-770px center}i.file-preview.file-type-exe{background-position:-840px center}i.file-preview.file-type-ipa{background-position:-910px center}i.file-preview.file-type-mp4,i.file-preview.file-type-swf,i.file-preview.file-type-mkv,i.file-preview.file-type-avi,i.file-preview.file-type-flv,i.file-preview.file-type-mov,i.file-preview.file-type-mpg,i.file-preview.file-type-mpeg,i.file-preview.file-type-ogv,i.file-preview.file-type-webm,i.file-preview.file-type-rm,i.file-preview.file-type-rmvb{background-position:-980px center}i.file-preview.file-type-ogg,i.file-preview.file-type-wav,i.file-preview.file-type-wmv,i.file-preview.file-type-mid,i.file-preview.file-type-mp3{background-position:-1050px center}i.file-preview.file-type-jpg,i.file-preview.file-type-jpeg,i.file-preview.file-type-gif,i.file-preview.file-type-bmp,i.file-preview.file-type-png,i.file-preview.file-type-psd{background-position:-140px center} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/attachment.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/attachment.html new file mode 100644 index 0000000..272a711 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/attachment.html @@ -0,0 +1,61 @@ + + + + + ueditor图片对话框 + + + + + + + + + + + + + + +
+
+ + +
+
+ +
+
+
+
+ 0% + +
+
+
+
+
+
+
+
+
+
+
+
+
    +
  • +
+
+
+ + +
+
+
+ +
+
+ + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/attachment.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/attachment.js new file mode 100644 index 0000000..10d31be --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/attachment.js @@ -0,0 +1,797 @@ +/** + * User: Jinqn + * Date: 14-04-08 + * Time: 下午16:34 + * 上传图片对话框逻辑代码,包括tab: 远程图片/上传图片/在线图片/搜索图片 + */ + +(function () { + + var uploadFile, + onlineFile; + + window.onload = function () { + initTabs(); + initButtons(); + }; + + /* 初始化tab标签 */ + function initTabs() { + var tabs = $G('tabhead').children; + for (var i = 0; i < tabs.length; i++) { + domUtils.on(tabs[i], "click", function (e) { + var target = e.target || e.srcElement; + setTabFocus(target.getAttribute('data-content-id')); + }); + } + + setTabFocus('upload'); + } + + /* 初始化tabbody */ + function setTabFocus(id) { + if (!id) return; + var i, bodyId, tabs = $G('tabhead').children; + for (i = 0; i < tabs.length; i++) { + bodyId = tabs[i].getAttribute('data-content-id') + if (bodyId == id) { + domUtils.addClass(tabs[i], 'focus'); + domUtils.addClass($G(bodyId), 'focus'); + } else { + domUtils.removeClasses(tabs[i], 'focus'); + domUtils.removeClasses($G(bodyId), 'focus'); + } + } + switch (id) { + case 'upload': + uploadFile = uploadFile || new UploadFile('queueList'); + break; + case 'online': + onlineFile = onlineFile || new OnlineFile('fileList'); + break; + } + } + + /* 初始化onok事件 */ + function initButtons() { + + dialog.onok = function () { + var list = [], id, tabs = $G('tabhead').children; + for (var i = 0; i < tabs.length; i++) { + if (domUtils.hasClass(tabs[i], 'focus')) { + id = tabs[i].getAttribute('data-content-id'); + break; + } + } + + switch (id) { + case 'upload': + list = uploadFile.getInsertList(); + var count = uploadFile.getQueueCount(); + if (count) { + $('.info', '#queueList').html('' + '还有2个未上传文件'.replace(/[\d]/, count) + ''); + return false; + } + break; + case 'online': + list = onlineFile.getInsertList(); + break; + } + + editor.execCommand('insertfile', list); + }; + } + + + /* 上传附件 */ + function UploadFile(target) { + this.$wrap = target.constructor == String ? $('#' + target) : $(target); + this.init(); + } + + UploadFile.prototype = { + init: function () { + this.fileList = []; + this.initContainer(); + this.initUploader(); + }, + initContainer: function () { + this.$queue = this.$wrap.find('.filelist'); + }, + /* 初始化容器 */ + initUploader: function () { + var _this = this, + $ = jQuery, // just in case. Make sure it's not an other libaray. + $wrap = _this.$wrap, + // 图片容器 + $queue = $wrap.find('.filelist'), + // 状态栏,包括进度和控制按钮 + $statusBar = $wrap.find('.statusBar'), + // 文件总体选择信息。 + $info = $statusBar.find('.info'), + // 上传按钮 + $upload = $wrap.find('.uploadBtn'), + // 上传按钮 + $filePickerBtn = $wrap.find('.filePickerBtn'), + // 上传按钮 + $filePickerBlock = $wrap.find('.filePickerBlock'), + // 没选择文件之前的内容。 + $placeHolder = $wrap.find('.placeholder'), + // 总体进度条 + $progress = $statusBar.find('.progress').hide(), + // 添加的文件数量 + fileCount = 0, + // 添加的文件总大小 + fileSize = 0, + // 优化retina, 在retina下这个值是2 + ratio = window.devicePixelRatio || 1, + // 缩略图大小 + thumbnailWidth = 113 * ratio, + thumbnailHeight = 113 * ratio, + // 可能有pedding, ready, uploading, confirm, done. + state = '', + // 所有文件的进度信息,key为file id + percentages = {}, + supportTransition = (function () { + var s = document.createElement('p').style, + r = 'transition' in s || + 'WebkitTransition' in s || + 'MozTransition' in s || + 'msTransition' in s || + 'OTransition' in s; + s = null; + return r; + })(), + // WebUploader实例 + uploader, + actionUrl = editor.getActionUrl(editor.getOpt('fileActionName')), + fileMaxSize = editor.getOpt('fileMaxSize'), + acceptExtensions = (editor.getOpt('fileAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, ''); + ; + + if (!WebUploader.Uploader.support()) { + $('#filePickerReady').after($('
').html(lang.errorNotSupport)).hide(); + return; + } else if (!editor.getOpt('fileActionName')) { + $('#filePickerReady').after($('
').html(lang.errorLoadConfig)).hide(); + return; + } + + var uploaderOption = { + pick: { + id: '#filePickerReady', + label: lang.uploadSelectFile + }, + swf: '../../third-party/webuploader/Uploader.swf', + server: actionUrl, + fileVal: editor.getOpt('fileFieldName'), + duplicate: true, + fileSingleSizeLimit: fileMaxSize, + headers: editor.getOpt('serverHeaders') || {}, + compress: false + }; + if(editor.getOpt('uploadServiceEnable')) { + uploaderOption.customUpload = function (file, callback) { + editor.getOpt('uploadServiceUpload')('attachment', file, { + success: function( res ) { + callback.onSuccess(file, {_raw:JSON.stringify(res)}); + }, + error: function( err ) { + callback.onError(file, err); + }, + progress: function( percent ) { + callback.onProgress(file, percent); + } + }, { + from: 'attachment' + }); + }; + } + + + uploader = _this.uploader = WebUploader.create(uploaderOption); + uploader.addButton({ + id: '#filePickerBlock' + }); + uploader.addButton({ + id: '#filePickerBtn', + label: lang.uploadAddFile + }); + + setState('pedding'); + + // 当有文件添加进来时执行,负责view的创建 + function addFile(file) { + var $li = $('
  • ' + + '

    ' + file.name + '

    ' + + '

    ' + + '

    ' + + '
  • '), + + $btns = $('
    ' + + '' + lang.uploadDelete + '' + + '' + lang.uploadTurnRight + '' + + '' + lang.uploadTurnLeft + '
    ').appendTo($li), + $prgress = $li.find('p.progress span'), + $wrap = $li.find('p.imgWrap'), + $info = $('

    ').hide().appendTo($li), + + showError = function (code) { + switch (code) { + case 'exceed_size': + text = lang.errorExceedSize; + break; + case 'interrupt': + text = lang.errorInterrupt; + break; + case 'http': + text = lang.errorHttp; + break; + case 'not_allow_type': + text = lang.errorFileType; + break; + default: + text = lang.errorUploadRetry; + break; + } + $info.text(text).show(); + }; + + if (file.getStatus() === 'invalid') { + showError(file.statusText); + } else { + $wrap.text(lang.uploadPreview); + if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|' + file.ext.toLowerCase() + '|') == -1) { + $wrap.empty().addClass('notimage').append('' + + '' + file.name + ''); + } else { + if (browser.ie && browser.version <= 7) { + $wrap.text(lang.uploadNoPreview); + } else { + uploader.makeThumb(file, function (error, src) { + if (error || !src) { + $wrap.text(lang.uploadNoPreview); + } else { + var $img = $(''); + $wrap.empty().append($img); + $img.on('error', function () { + $wrap.text(lang.uploadNoPreview); + }); + } + }, thumbnailWidth, thumbnailHeight); + } + } + percentages[file.id] = [file.size, 0]; + file.rotation = 0; + + /* 检查文件格式 */ + if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) { + showError('not_allow_type'); + uploader.removeFile(file); + } + } + + file.on('statuschange', function (cur, prev) { + if (prev === 'progress') { + $prgress.hide().width(0); + } else if (prev === 'queued') { + $li.off('mouseenter mouseleave'); + $btns.remove(); + } + // 成功 + if (cur === 'error' || cur === 'invalid') { + showError(file.statusText); + percentages[file.id][1] = 1; + } else if (cur === 'interrupt') { + showError('interrupt'); + } else if (cur === 'queued') { + percentages[file.id][1] = 0; + } else if (cur === 'progress') { + $info.hide(); + $prgress.css('display', 'block'); + } else if (cur === 'complete') { + } + + $li.removeClass('state-' + prev).addClass('state-' + cur); + }); + + $li.on('mouseenter', function () { + $btns.stop().animate({height: 30}); + }); + $li.on('mouseleave', function () { + $btns.stop().animate({height: 0}); + }); + + $btns.on('click', 'span', function () { + var index = $(this).index(), + deg; + + switch (index) { + case 0: + uploader.removeFile(file); + return; + case 1: + file.rotation += 90; + break; + case 2: + file.rotation -= 90; + break; + } + + if (supportTransition) { + deg = 'rotate(' + file.rotation + 'deg)'; + $wrap.css({ + '-webkit-transform': deg, + '-mos-transform': deg, + '-o-transform': deg, + 'transform': deg + }); + } else { + $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')'); + } + + }); + + $li.insertBefore($filePickerBlock); + } + + // 负责view的销毁 + function removeFile(file) { + var $li = $('#' + file.id); + delete percentages[file.id]; + updateTotalProgress(); + $li.off().find('.file-panel').off().end().remove(); + } + + function updateTotalProgress() { + var loaded = 0, + total = 0, + spans = $progress.children(), + percent; + + $.each(percentages, function (k, v) { + total += v[0]; + loaded += v[0] * v[1]; + }); + + percent = total ? loaded / total : 0; + + spans.eq(0).text(Math.round(percent * 100) + '%'); + spans.eq(1).css('width', Math.round(percent * 100) + '%'); + updateStatus(); + } + + function setState(val, files) { + + if (val != state) { + + var stats = uploader.getStats(); + + $upload.removeClass('state-' + state); + $upload.addClass('state-' + val); + + switch (val) { + + /* 未选择文件 */ + case 'pedding': + $queue.addClass('element-invisible'); + $statusBar.addClass('element-invisible'); + $placeHolder.removeClass('element-invisible'); + $progress.hide(); + $info.hide(); + uploader.refresh(); + break; + + /* 可以开始上传 */ + case 'ready': + $placeHolder.addClass('element-invisible'); + $queue.removeClass('element-invisible'); + $statusBar.removeClass('element-invisible'); + $progress.hide(); + $info.show(); + $upload.text(lang.uploadStart); + uploader.refresh(); + break; + + /* 上传中 */ + case 'uploading': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadPause); + break; + + /* 暂停上传 */ + case 'paused': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadContinue); + break; + + case 'confirm': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadStart); + + stats = uploader.getStats(); + if (stats.successNum && !stats.uploadFailNum) { + setState('finish'); + return; + } + break; + + case 'finish': + $progress.hide(); + $info.show(); + if (stats.uploadFailNum) { + $upload.text(lang.uploadRetry); + } else { + $upload.text(lang.uploadStart); + } + break; + } + + state = val; + updateStatus(); + + } + + if (!_this.getQueueCount()) { + $upload.addClass('disabled') + } else { + $upload.removeClass('disabled') + } + + } + + function updateStatus() { + var text = '', stats; + + if (state === 'ready') { + text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)); + } else if (state === 'confirm') { + stats = uploader.getStats(); + if (stats.uploadFailNum) { + text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum); + } + } else { + stats = uploader.getStats(); + text = lang.updateStatusFinish.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)).replace('_', stats.successNum); + + if (stats.uploadFailNum) { + text += lang.updateStatusError.replace('_', stats.uploadFailNum); + } + } + + $info.html(text); + } + + uploader.on('fileQueued', function (file) { + if (file.ext && acceptExtensions.indexOf(file.ext.toLowerCase()) != -1 && file.size <= fileMaxSize) { + fileCount++; + fileSize += file.size; + } + + if (fileCount === 1) { + $placeHolder.addClass('element-invisible'); + $statusBar.show(); + } + + addFile(file); + }); + + uploader.on('fileDequeued', function (file) { + if (file.ext && acceptExtensions.indexOf(file.ext.toLowerCase()) != -1 && file.size <= fileMaxSize) { + fileCount--; + fileSize -= file.size; + } + + removeFile(file); + updateTotalProgress(); + }); + + uploader.on('filesQueued', function (file) { + if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) { + setState('ready'); + } + updateTotalProgress(); + }); + + uploader.on('all', function (type, files) { + switch (type) { + case 'uploadFinished': + setState('confirm', files); + break; + case 'startUpload': + /* 添加额外的GET参数 */ + var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', + url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?' : '&') + 'encode=utf-8&' + params); + uploader.option('server', url); + setState('uploading', files); + break; + case 'stopUpload': + setState('paused', files); + break; + } + }); + + uploader.on('uploadBeforeSend', function (file, data, header) { + //这里可以通过data对象添加POST参数 + if (actionUrl.toLowerCase().indexOf('jsp') != -1) { + header['X_Requested_With'] = 'XMLHttpRequest'; + } + }); + + uploader.on('uploadProgress', function (file, percentage) { + var $li = $('#' + file.id), + $percent = $li.find('.progress span'); + + $percent.css('width', percentage * 100 + '%'); + percentages[file.id][1] = percentage; + updateTotalProgress(); + }); + + uploader.on('uploadSuccess', function (file, ret) { + var $file = $('#' + file.id); + try { + var responseText = (ret._raw || ret), + json = utils.str2json(responseText); + json = editor.getOpt('serverResponsePrepare')(json); + if (json.state == 'SUCCESS') { + _this.fileList.push(json); + $file.append(''); + // 触发上传附件事件 + editor.fireEvent("uploadsuccess", { + res: json, + type: 'file' + }); + } else { + $file.find('.error').text(json.state).show(); + } + } catch (e) { + $file.find('.error').text(lang.errorServerUpload).show(); + } + }); + + uploader.on('uploadError', function (file, code) { + }); + uploader.on('error', function (code, param1, param2) { + if (code === 'F_EXCEED_SIZE') { + editor.getOpt('tipError')(lang.errorExceedSize + ' ' + (param1 / 1024 / 1024).toFixed(1) + 'MB'); + } else { + console.log('error', code, param1, param2); + } + }); + uploader.on('uploadComplete', function (file, ret) { + }); + + $upload.on('click', function () { + if ($(this).hasClass('disabled')) { + return false; + } + + if (state === 'ready') { + uploader.upload(); + } else if (state === 'paused') { + uploader.upload(); + } else if (state === 'uploading') { + uploader.stop(); + } + }); + + $upload.addClass('state-' + state); + updateTotalProgress(); + }, + getQueueCount: function () { + var file, i, status, readyFile = 0, files = this.uploader.getFiles(); + for (i = 0; file = files[i++];) { + status = file.getStatus(); + if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++; + } + return readyFile; + }, + getInsertList: function () { + var i, link, data, list = [], + prefix = editor.getOpt('fileUrlPrefix'); + for (i = 0; i < this.fileList.length; i++) { + data = this.fileList[i]; + link = data.url; + list.push({ + title: data.original || link.substr(link.lastIndexOf('/') + 1), + url: prefix + link + }); + } + return list; + } + }; + + + /* 在线附件 */ + function OnlineFile(target) { + this.container = utils.isString(target) ? document.getElementById(target) : target; + this.init(); + } + + OnlineFile.prototype = { + init: function () { + this.initContainer(); + this.initEvents(); + this.initData(); + }, + /* 初始化容器 */ + initContainer: function () { + this.container.innerHTML = ''; + this.list = document.createElement('ul'); + this.clearFloat = document.createElement('li'); + + domUtils.addClass(this.list, 'list'); + domUtils.addClass(this.clearFloat, 'clearFloat'); + + this.list.appendChild(this.clearFloat); + this.container.appendChild(this.list); + }, + /* 初始化滚动事件,滚动到地步自动拉取数据 */ + initEvents: function () { + var _this = this; + + /* 滚动拉取图片 */ + domUtils.on($G('fileList'), 'scroll', function (e) { + var panel = this; + if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) { + _this.getFileData(); + } + }); + /* 选中图片 */ + domUtils.on(this.list, 'click', function (e) { + var target = e.target || e.srcElement, + li = target.parentNode; + + if (li.tagName.toLowerCase() == 'li') { + if (domUtils.hasClass(li, 'selected')) { + domUtils.removeClasses(li, 'selected'); + } else { + domUtils.addClass(li, 'selected'); + } + } + }); + }, + /* 初始化第一次的数据 */ + initData: function () { + + /* 拉取数据需要使用的值 */ + this.state = 0; + this.listSize = editor.getOpt('fileManagerListSize'); + this.listIndex = 0; + this.listEnd = false; + + /* 第一次拉取数据 */ + this.getFileData(); + }, + /* 向后台拉取图片列表数据 */ + getFileData: function () { + var _this = this; + + if (!_this.listEnd && !this.isLoadingData) { + this.isLoadingData = true; + ajax.request(editor.getActionUrl(editor.getOpt('fileManagerActionName')), { + timeout: 100000, + data: utils.extend({ + start: this.listIndex, + size: this.listSize + }, editor.queryCommandValue('serverparam')), + headers: editor.options.serverHeaders || {}, + method: 'get', + onsuccess: function (r) { + try { + var json = eval('(' + r.responseText + ')'); + if (json.state == 'SUCCESS') { + _this.pushData(json.list); + _this.listIndex = parseInt(json.start) + parseInt(json.list.length); + if (_this.listIndex >= json.total) { + _this.listEnd = true; + } + _this.isLoadingData = false; + } + } catch (e) { + if (r.responseText.indexOf('ue_separate_ue') != -1) { + var list = r.responseText.split(r.responseText); + _this.pushData(list); + _this.listIndex = parseInt(list.length); + _this.listEnd = true; + _this.isLoadingData = false; + } + } + }, + onerror: function () { + _this.isLoadingData = false; + } + }); + } + }, + /* 添加图片到列表界面上 */ + pushData: function (list) { + var i, item, img, filetype, preview, icon, _this = this, + urlPrefix = editor.getOpt('fileManagerUrlPrefix'); + for (i = 0; i < list.length; i++) { + if (list[i] && list[i].url) { + item = document.createElement('li'); + icon = document.createElement('span'); + filetype = list[i].url.substr(list[i].url.lastIndexOf('.') + 1); + + if ("png|jpg|jpeg|gif|bmp".indexOf(filetype) != -1) { + preview = document.createElement('img'); + domUtils.on(preview, 'load', (function (image) { + return function () { + _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight); + }; + })(preview)); + preview.width = 113; + preview.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=' : '&noCache=') + (+new Date()).toString(36)); + } else { + var ic = document.createElement('i'), + textSpan = document.createElement('span'); + textSpan.innerHTML = list[i].original || list[i].url.substr(list[i].url.lastIndexOf('/') + 1); + preview = document.createElement('div'); + preview.appendChild(ic); + preview.appendChild(textSpan); + domUtils.addClass(preview, 'file-wrapper'); + domUtils.addClass(textSpan, 'file-title'); + domUtils.addClass(ic, 'file-type-' + filetype); + domUtils.addClass(ic, 'file-preview'); + } + domUtils.addClass(icon, 'icon'); + item.setAttribute('data-url', urlPrefix + list[i].url); + if (list[i].original) { + item.setAttribute('data-title', list[i].original); + } + + item.appendChild(preview); + item.appendChild(icon); + this.list.insertBefore(item, this.clearFloat); + } + } + }, + /* 改变图片大小 */ + scale: function (img, w, h, type) { + var ow = img.width, + oh = img.height; + + if (type == 'justify') { + if (ow >= oh) { + img.width = w; + img.height = h * oh / ow; + img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; + } else { + img.width = w * ow / oh; + img.height = h; + img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; + } + } else { + if (ow >= oh) { + img.width = w * ow / oh; + img.height = h; + img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; + } else { + img.width = w; + img.height = h * oh / ow; + img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; + } + } + }, + getInsertList: function () { + var i, lis = this.list.children, list = []; + for (i = 0; i < lis.length; i++) { + if (domUtils.hasClass(lis[i], 'selected')) { + var url = lis[i].getAttribute('data-url'); + var title = lis[i].getAttribute('data-title') || url.substr(url.lastIndexOf('/') + 1); + list.push({ + title: title, + url: url + }); + } + } + return list; + } + }; + + +})(); diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/alignicon.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/alignicon.gif new file mode 100644 index 0000000..005a5ac Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/alignicon.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/alignicon.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/alignicon.png new file mode 100644 index 0000000..4b6c444 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/alignicon.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/bg.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/bg.png new file mode 100644 index 0000000..580be0a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/bg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/file-icons.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/file-icons.gif new file mode 100644 index 0000000..d8c02c2 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/file-icons.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/file-icons.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/file-icons.png new file mode 100644 index 0000000..3ff82c8 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/file-icons.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/icons.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/icons.gif new file mode 100644 index 0000000..78459de Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/icons.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/icons.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/icons.png new file mode 100644 index 0000000..12e4700 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/icons.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/image.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/image.png new file mode 100644 index 0000000..19699f6 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/image.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/progress.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/progress.png new file mode 100644 index 0000000..717c486 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/progress.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/success.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/success.gif new file mode 100644 index 0000000..8d4f311 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/success.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/success.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/success.png new file mode 100644 index 0000000..94f968d Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/attachment/images/success.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/audio.css b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/audio.css new file mode 100644 index 0000000..c0bbf5c --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/audio.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +@charset "utf-8";.wrapper{width:570px;_width:575px;margin:10px auto;zoom:1;position:relative}.tabbody{height:355px}.tabbody .panel{position:absolute;width:0;height:0;background:#fff;overflow:hidden;display:none}.tabbody .panel.focus{width:100%;height:355px;display:block}.tabbody .panel table td{vertical-align:middle}#audioUrl{width:380px;height:26px;line-height:26px;margin:8px 5px;background:#FFF;border:1px solid #F2F2F2;outline:0;border-radius:3px;padding:0 5px}#audioSelect{width:100px;display:inline-block;background:#FFF;border:1px solid #EEE;line-height:26px;text-align:center;color:#333;text-decoration:none;border-radius:3px;vertical-align:middle}#audioSearchTxt{margin-left:15px;background:#FFF;width:200px;height:21px;line-height:21px;border:1px solid #F2F2F2}#searchList{width:570px;overflow:auto;zoom:1;height:270px}#searchList div{float:left;width:120px;height:135px;margin:5px 15px}#searchList img{margin:2px 8px;cursor:pointer;border:2px solid #fff}#searchList p{margin-left:10px}#audioType{width:65px;height:23px;line-height:22px;border:1px solid #F2F2F2}#audioSearchBtn,#audioSearchReset{height:25px;line-height:25px;background:#eee;border:1px solid #F2F2F2;cursor:pointer;padding:0 5px}#preview{position:relative;width:420px;padding:0;overflow:hidden;margin-left:10px;_margin-left:5px;height:280px;background-color:#ddd;float:left}#preview .previewMsg{position:absolute;top:0;margin:0;padding:0;height:280px;width:100%;background-color:#666}#preview .previewMsg span{display:block;margin:125px auto 0;text-align:center;font-size:18px;color:#fff}#preview .previewaudio{position:absolute;top:0;margin:0;padding:0;height:280px;width:100%}.edui-audio-wrapper fieldset{border:1px solid #ddd;padding-left:5px;margin-bottom:20px;padding-bottom:5px;width:115px}#audioInfo{width:120px;float:left;margin-left:10px;_margin-left:7px}fieldset{border:1px solid #ddd;padding-left:5px;margin-bottom:20px;padding-bottom:5px;width:115px}fieldset legend{font-weight:700}fieldset p{line-height:30px}fieldset input.txt{width:65px;height:21px;line-height:21px;margin:8px 5px;background:#FFF;border:1px solid #F2F2F2}label.url{font-weight:700;margin-left:5px}#audioFloat div{cursor:pointer;opacity:.5;filter:alpha(opacity=50);margin:9px;_margin:5px;width:38px;height:36px;float:left}#audioFloat .focus{opacity:1;filter:alpha(opacity=100)}span.view{display:inline-block;width:30px;float:right;cursor:pointer;color:#00f}.tabbody #upload.panel{width:0;height:0;overflow:hidden;position:absolute!important;clip:rect(1px,1px,1px,1px);background:#fff;display:block}.tabbody #upload.panel.focus{width:100%;height:335px;display:block;clip:auto}#upload_alignment div{cursor:pointer;opacity:.5;filter:alpha(opacity=50);margin:9px;_margin:5px;width:38px;height:36px;float:left}#upload_alignment .focus{opacity:1;filter:alpha(opacity=100)}#upload_left{width:427px;float:left}#upload_left .controller{height:30px;clear:both}#uploadaudioInfo{margin-top:10px;float:right;padding-right:8px}#upload .queueList{margin:0}#upload p{margin:0}.element-invisible{width:0!important;height:0!important;border:0;padding:0;margin:0;overflow:hidden;position:absolute!important;clip:rect(1px,1px,1px,1px)}#upload .placeholder{margin:10px;margin-right:0;border:2px dashed #e6e6e6;*border:0 dashed #e6e6e6;height:161px;padding-top:150px;text-align:center;width:97%;float:left;background:url(./images/image.png) center 70px no-repeat;color:#ccc;font-size:18px;position:relative;top:0;*margin-left:0;*left:10px}#upload .placeholder .webuploader-pick{font-size:18px;background:#00b7ee;border-radius:3px;line-height:44px;padding:0 30px;*width:120px;color:#fff;display:inline-block;margin:0 auto 20px;cursor:pointer;box-shadow:0 1px 1px rgba(0,0,0,.1)}#upload .placeholder .webuploader-pick-hover{background:#00a2d4}#filePickerContainer{text-align:center}#upload .placeholder .flashTip{color:#666;font-size:12px;position:absolute;width:100%;text-align:center;bottom:20px}#upload .placeholder .flashTip a{color:#0785d1;text-decoration:none}#upload .placeholder .flashTip a:hover{text-decoration:underline}#upload .placeholder.webuploader-dnd-over{border-color:#999}#upload .filelist{list-style:none;margin:0;padding:0;overflow-x:hidden;overflow-y:auto;position:relative;height:285px}#upload .filelist:after{content:'';display:block;width:0;height:0;overflow:hidden;clear:both}#upload .filelist li{width:113px;height:113px;background:url(./images/bg.png);text-align:center;margin:15px 0 0 20px;*margin:15px 0 0 15px;position:relative;display:block;float:left;overflow:hidden;font-size:12px}#upload .filelist li p.log{position:relative;top:-45px}#upload .filelist li p.title{position:absolute;top:0;left:0;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;top:5px;text-indent:5px;text-align:left}#upload .filelist li p.progress{position:absolute;width:100%;bottom:0;left:0;height:8px;overflow:hidden;z-index:50;margin:0;border-radius:0;background:0 0;-webkit-box-shadow:0 0 0}#upload .filelist li p.progress span{display:none;overflow:hidden;width:0;height:100%;background:#1483d8 url(./images/progress.png) repeat-x;-webit-transition:width 200ms linear;-moz-transition:width 200ms linear;-o-transition:width 200ms linear;-ms-transition:width 200ms linear;transition:width 200ms linear;-webkit-animation:progressmove 2s linear infinite;-moz-animation:progressmove 2s linear infinite;-o-animation:progressmove 2s linear infinite;-ms-animation:progressmove 2s linear infinite;animation:progressmove 2s linear infinite;-webkit-transform:translateZ(0)}@-webkit-keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}@-moz-keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}@keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}#upload .filelist li p.imgWrap{position:relative;z-index:2;line-height:113px;vertical-align:middle;overflow:hidden;width:113px;height:113px;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-o-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;-webit-transition:200ms ease-out;-moz-transition:200ms ease-out;-o-transition:200ms ease-out;-ms-transition:200ms ease-out;transition:200ms ease-out}#upload .filelist li p.imgWrap.notimage{margin-top:0;width:111px;height:111px;border:1px #eee solid}#upload .filelist li p.imgWrap.notimage i.file-preview{margin-top:15px}#upload .filelist li img{width:100%}#upload .filelist li p.error{background:#f43838;color:#fff;position:absolute;bottom:0;left:0;height:28px;line-height:28px;width:100%;z-index:100;display:none}#upload .filelist li .success{display:block;position:absolute;left:0;bottom:0;height:40px;width:100%;z-index:200;background:url(./images/success.png) no-repeat right bottom;background-image:url(./images/success.gif) \9}#upload .filelist li.filePickerBlock{width:113px;height:113px;background:url(./images/image.png) no-repeat center 12px;border:1px solid #eee;border-radius:0}#upload .filelist li.filePickerBlock div.webuploader-pick{width:100%;height:100%;margin:0;padding:0;opacity:0;background:0 0;font-size:0}#upload .filelist div.file-panel{position:absolute;height:0;filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;background:rgba(0,0,0,.5);width:100%;top:0;left:0;overflow:hidden;z-index:300}#upload .filelist div.file-panel span{width:24px;height:24px;display:inline;float:right;text-indent:-9999px;overflow:hidden;background:url(./images/icons.png) no-repeat;background:url(./images/icons.gif) no-repeat \9;margin:5px 1px 1px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#upload .filelist div.file-panel span.rotateLeft{display:none;background-position:0 -24px}#upload .filelist div.file-panel span.rotateLeft:hover{background-position:0 0}#upload .filelist div.file-panel span.rotateRight{display:none;background-position:-24px -24px}#upload .filelist div.file-panel span.rotateRight:hover{background-position:-24px 0}#upload .filelist div.file-panel span.cancel{background-position:-48px -24px}#upload .filelist div.file-panel span.cancel:hover{background-position:-48px 0}#upload .statusBar{height:45px;border-bottom:1px solid #dadada;margin:0 10px;padding:0;line-height:45px;vertical-align:middle;position:relative}#upload .statusBar .progress{border:1px solid #1483d8;width:198px;background:#fff;height:18px;position:absolute;top:12px;display:none;text-align:center;line-height:18px;color:#6dbfff;margin:0 10px 0 0}#upload .statusBar .progress span.percentage{width:0;height:100%;left:0;top:0;background:#1483d8;position:absolute}#upload .statusBar .progress span.text{position:relative;z-index:10}#upload .statusBar .info{display:inline-block;font-size:14px;color:#666}#upload .statusBar .btns{position:absolute;top:7px;right:0;line-height:30px}#filePickerBtn{display:inline-block;float:left}#upload .statusBar .btns .webuploader-pick,#upload .statusBar .btns .uploadBtn,#upload .statusBar .btns .uploadBtn.state-uploading,#upload .statusBar .btns .uploadBtn.state-paused{background:#fff;border:1px solid #cfcfcf;color:#565656;padding:0 18px;display:inline-block;border-radius:3px;margin-left:10px;cursor:pointer;font-size:14px;float:left;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#upload .statusBar .btns .webuploader-pick-hover,#upload .statusBar .btns .uploadBtn:hover,#upload .statusBar .btns .uploadBtn.state-uploading:hover,#upload .statusBar .btns .uploadBtn.state-paused:hover{background:#f0f0f0}#upload .statusBar .btns .uploadBtn,#upload .statusBar .btns .uploadBtn.state-paused{background:#00b7ee;color:#fff;border-color:transparent}#upload .statusBar .btns .uploadBtn:hover,#upload .statusBar .btns .uploadBtn.state-paused:hover{background:#00a2d4}#upload .statusBar .btns .uploadBtn.disabled{pointer-events:none;filter:alpha(opacity=60);-moz-opacity:.6;-khtml-opacity:.6;opacity:.6}i.file-preview{display:block;margin:10px auto;width:70px;height:70px;background-image:url(./images/file-icons.png);background-image:url(./images/file-icons.gif) \9;background-position:-140px center;background-repeat:no-repeat}i.file-preview.file-type-dir{background-position:0 center}i.file-preview.file-type-file{background-position:-140px center}i.file-preview.file-type-filelist{background-position:-210px center}i.file-preview.file-type-zip,i.file-preview.file-type-rar,i.file-preview.file-type-7z,i.file-preview.file-type-tar,i.file-preview.file-type-gz,i.file-preview.file-type-bz2{background-position:-280px center}i.file-preview.file-type-xls,i.file-preview.file-type-xlsx{background-position:-350px center}i.file-preview.file-type-doc,i.file-preview.file-type-docx{background-position:-420px center}i.file-preview.file-type-ppt,i.file-preview.file-type-pptx{background-position:-490px center}i.file-preview.file-type-vsd{background-position:-560px center}i.file-preview.file-type-pdf{background-position:-630px center}i.file-preview.file-type-txt,i.file-preview.file-type-md,i.file-preview.file-type-json,i.file-preview.file-type-htm,i.file-preview.file-type-xml,i.file-preview.file-type-html,i.file-preview.file-type-js,i.file-preview.file-type-css,i.file-preview.file-type-php,i.file-preview.file-type-jsp,i.file-preview.file-type-asp{background-position:-700px center}i.file-preview.file-type-apk{background-position:-770px center}i.file-preview.file-type-exe{background-position:-840px center}i.file-preview.file-type-ipa{background-position:-910px center}i.file-preview.file-type-mp4,i.file-preview.file-type-swf,i.file-preview.file-type-mkv,i.file-preview.file-type-avi,i.file-preview.file-type-flv,i.file-preview.file-type-mov,i.file-preview.file-type-mpg,i.file-preview.file-type-mpeg,i.file-preview.file-type-ogv,i.file-preview.file-type-webm,i.file-preview.file-type-rm,i.file-preview.file-type-rmvb{background-position:-980px center}i.file-preview.file-type-ogg,i.file-preview.file-type-wav,i.file-preview.file-type-wmv,i.file-preview.file-type-mid,i.file-preview.file-type-mp3{background-position:-1050px center}i.file-preview.file-type-jpg,i.file-preview.file-type-jpeg,i.file-preview.file-type-gif,i.file-preview.file-type-bmp,i.file-preview.file-type-png,i.file-preview.file-type-psd{background-position:-140px center} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/audio.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/audio.html new file mode 100644 index 0000000..56388ca --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/audio.html @@ -0,0 +1,83 @@ + + + + + + + + + +
    +
    +
    + + +
    +
    +
    + + + + + +
    +
    + 外链音频支持MP3格式 +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + 0% + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
      +
    • +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/audio.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/audio.js new file mode 100644 index 0000000..07edcf9 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/audio.js @@ -0,0 +1,805 @@ +/** + * Created by JetBrains PhpStorm. + * User: taoqili + * Date: 12-2-20 + * Time: 上午11:19 + * To change this template use File | Settings | File Templates. + */ + +(function () { + + var audio = {}, + uploadaudioList = [], + isModifyUploadaudio = false, + uploadFile; + var editorOpt = {}; + + window.onload = function () { + editorOpt = editor.getOpt('audioConfig'); + $focus($G("audioUrl")); + initTabs(); + initAudio(); + initUpload(); + }; + + /* 初始化tab标签 */ + function initTabs() { + var tabs = $G('tabHeads').children; + for (var i = 0; i < tabs.length; i++) { + domUtils.on(tabs[i], "click", function (e) { + var j, bodyId, target = e.target || e.srcElement; + for (j = 0; j < tabs.length; j++) { + bodyId = tabs[j].getAttribute('data-content-id'); + if (tabs[j] == target) { + domUtils.addClass(tabs[j], 'focus'); + domUtils.addClass($G(bodyId), 'focus'); + } else { + domUtils.removeClasses(tabs[j], 'focus'); + domUtils.removeClasses($G(bodyId), 'focus'); + } + } + }); + } + if (!editorOpt.disableUpload) { + $G('tabHeads').querySelector('[data-content-id="upload"]').style.display = 'inline-block'; + } + if (!!editorOpt.selectCallback) { + $G('audioSelect').style.display = 'inline-block'; + domUtils.on($G('audioSelect'), "click", function (e) { + editorOpt.selectCallback(editor, function (info) { + if (info) { + $G('audioUrl').value = info.path; + createPreview(info.path); + } + }); + }); + } + } + + function initAudio() { + createAlignButton(["audioFloat", "upload_alignment"]); + addUrlChangeListener($G("audioUrl")); + addOkListener(); + + //编辑视频时初始化相关信息 + (function () { + var img = editor.selection.getRange().getClosedNode(), url; + if (img && img.className) { + var hasFakedClass = (img.className == "edui-faked-audio"), + hasUploadClass = img.className.indexOf("edui-upload-audio") != -1; + if (hasFakedClass || hasUploadClass) { + $G("audioUrl").value = url = img.getAttribute("_url"); + var align = domUtils.getComputedStyle(img, "float"), + parentAlign = domUtils.getComputedStyle(img.parentNode, "text-align"); + updateAlignButton(parentAlign === "center" ? "center" : align); + } + if (hasUploadClass) { + isModifyUploadaudio = true; + } + } + createPreview(url); + })(); + } + + /** + * 监听确认和取消两个按钮事件,用户执行插入或者清空正在播放的视频实例操作 + */ + function addOkListener() { + dialog.onok = function () { + $G("preview").innerHTML = ""; + var currentTab = findFocus("tabHeads", "tabSrc"); + switch (currentTab) { + case "audio": + return insertSingle(); + break; + // case "audioSearch": + // return insertSearch("searchList"); + // break; + case "upload": + return insertUpload(); + break; + } + }; + dialog.oncancel = function () { + $G("preview").innerHTML = ""; + }; + } + + /** + * 依据传入的align值更新按钮信息 + * @param align + */ + function updateAlignButton(align) { + var aligns = $G("audioFloat").children; + for (var i = 0, ci; ci = aligns[i++];) { + if (ci.getAttribute("name") == align) { + if (ci.className != "focus") { + ci.className = "focus"; + } + } else { + if (ci.className == "focus") { + ci.className = ""; + } + } + } + } + + /** + * 将单个视频信息插入编辑器中 + */ + function insertSingle() { + var url = $G('audioUrl').value, + align = findFocus("audioFloat", "name"); + if (!url) return false; + editor.execCommand('insertaudio', { + url: url, + }, isModifyUploadaudio ? 'upload' : null); + } + + /** + * 将元素id下的所有代表视频的图片插入编辑器中 + * @param id + */ + function insertSearch(id) { + var imgs = domUtils.getElementsByTagName($G(id), "img"), + audioObjs = []; + for (var i = 0, img; img = imgs[i++];) { + if (img.getAttribute("selected")) { + audioObjs.push({ + url: img.getAttribute("ue_audio_url"), + width: 420, + height: 280, + align: "none" + }); + } + } + editor.execCommand('insertaudio', audioObjs); + } + + /** + * 找到id下具有focus类的节点并返回该节点下的某个属性 + * @param id + * @param returnProperty + */ + function findFocus(id, returnProperty) { + var tabs = $G(id).children, + property; + for (var i = 0, ci; ci = tabs[i++];) { + if (ci.className == "focus") { + property = ci.getAttribute(returnProperty); + break; + } + } + return property; + } + + /** + * 数字判断 + * @param value + */ + function isNumber(value) { + return /(0|^[1-9]\d*$)/.test(value); + } + + /** + * 创建图片浮动选择按钮 + * @param ids + */ + function createAlignButton(ids) { + for (var i = 0, ci; ci = ids[i++];) { + var floatContainer = $G(ci), + nameMaps = { + "none": lang['default'], + "left": lang.floatLeft, + "right": lang.floatRight, + "center": lang.block + }; + for (var j in nameMaps) { + var div = document.createElement("div"); + div.setAttribute("name", j); + if (j == "none") div.className = "focus"; + div.style.cssText = "background:url(images/" + j + "_focus.jpg);"; + div.setAttribute("title", nameMaps[j]); + floatContainer.appendChild(div); + } + switchSelect(ci); + } + } + + /** + * 选择切换 + * @param selectParentId + */ + function switchSelect(selectParentId) { + var selects = $G(selectParentId).children; + for (var i = 0, ci; ci = selects[i++];) { + domUtils.on(ci, "click", function () { + for (var j = 0, cj; cj = selects[j++];) { + cj.className = ""; + cj.removeAttribute && cj.removeAttribute("class"); + } + this.className = "focus"; + }) + } + } + + /** + * 监听url改变事件 + * @param url + */ + function addUrlChangeListener(url) { + if (browser.ie) { + url.onpropertychange = function () { + createPreview(this.value); + } + } else { + url.addEventListener("input", function () { + createPreview(this.value); + }, false); + } + } + + function createAudioHtml(url, param) { + param = param || {}; + var str = [ + "', + '', + '', + ]; + return str.join(''); + } + + /** + * 根据url生成视频预览 + * @param url + */ + function createPreview(url) { + if (!url) { + return; + } + + $G("preview").innerHTML = '
    ' + lang.urlError + '
    ' + + '
    ' + + '
    ' + createAudioHtml(url) + '
    ' + + '
    '; + } + + + /* 插入上传视频 */ + function insertUpload() { + var audioObjs = [], + uploadDir = editor.getOpt('audioUrlPrefix'), + align = findFocus("upload_alignment", "name") || 'none'; + for (var key in uploadaudioList) { + var file = uploadaudioList[key]; + audioObjs.push({ + url: uploadDir + file.url, + align: align + }); + } + + var count = uploadFile.getQueueCount(); + if (count) { + $('.info', '#queueList').html('' + '还有2个未上传文件'.replace(/[\d]/, count) + ''); + return false; + } else { + editor.execCommand('insertaudio', audioObjs, 'upload'); + } + } + + /*初始化上传标签*/ + function initUpload() { + uploadFile = new UploadFile('queueList'); + } + + + /* 上传附件 */ + function UploadFile(target) { + this.$wrap = target.constructor == String ? $('#' + target) : $(target); + this.init(); + } + + UploadFile.prototype = { + init: function () { + this.fileList = []; + this.initContainer(); + this.initUploader(); + }, + initContainer: function () { + this.$queue = this.$wrap.find('.filelist'); + }, + /* 初始化容器 */ + initUploader: function () { + var _this = this, + $ = jQuery, // just in case. Make sure it's not an other libaray. + $wrap = _this.$wrap, + // 图片容器 + $queue = $wrap.find('.filelist'), + // 状态栏,包括进度和控制按钮 + $statusBar = $wrap.find('.statusBar'), + // 文件总体选择信息。 + $info = $statusBar.find('.info'), + // 上传按钮 + $upload = $wrap.find('.uploadBtn'), + // 上传按钮 + $filePickerBtn = $wrap.find('.filePickerBtn'), + // 上传按钮 + $filePickerBlock = $wrap.find('.filePickerBlock'), + // 没选择文件之前的内容。 + $placeHolder = $wrap.find('.placeholder'), + // 总体进度条 + $progress = $statusBar.find('.progress').hide(), + // 添加的文件数量 + fileCount = 0, + // 添加的文件总大小 + fileSize = 0, + // 优化retina, 在retina下这个值是2 + ratio = window.devicePixelRatio || 1, + // 缩略图大小 + thumbnailWidth = 113 * ratio, + thumbnailHeight = 113 * ratio, + // 可能有pedding, ready, uploading, confirm, done. + state = '', + // 所有文件的进度信息,key为file id + percentages = {}, + supportTransition = (function () { + var s = document.createElement('p').style, + r = 'transition' in s || + 'WebkitTransition' in s || + 'MozTransition' in s || + 'msTransition' in s || + 'OTransition' in s; + s = null; + return r; + })(), + // WebUploader实例 + uploader, + actionUrl = editor.getActionUrl(editor.getOpt('audioActionName')), + fileMaxSize = editor.getOpt('audioMaxSize'), + acceptExtensions = (editor.getOpt('audioAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, ''); + ; + + if (!WebUploader.Uploader.support()) { + $('#filePickerReady').after($('
    ').html(lang.errorNotSupport)).hide(); + return; + } else if (!editor.getOpt('audioActionName')) { + $('#filePickerReady').after($('
    ').html(lang.errorLoadConfig)).hide(); + return; + } + + var uploaderOption = { + pick: { + id: '#filePickerReady', + label: lang.uploadSelectFile + }, + swf: '../../third-party/webuploader/Uploader.swf', + server: actionUrl, + fileVal: editor.getOpt('audioFieldName'), + duplicate: true, + fileSingleSizeLimit: fileMaxSize, + headers: editor.getOpt('serverHeaders') || {}, + compress: false + }; + + if(editor.getOpt('uploadServiceEnable')) { + uploaderOption.customUpload = function (file, callback) { + editor.getOpt('uploadServiceUpload')('audio', file, { + success: function( res ) { + callback.onSuccess(file, {_raw:JSON.stringify(res)}); + }, + error: function( err ) { + callback.onError(file, err); + }, + progress: function( percent ) { + callback.onProgress(file, percent); + } + }, { + from: 'audio' + }); + }; + } + + uploader = _this.uploader = WebUploader.create(uploaderOption); + uploader.addButton({ + id: '#filePickerBlock' + }); + uploader.addButton({ + id: '#filePickerBtn', + label: lang.uploadAddFile + }); + + setState('pedding'); + + // 当有文件添加进来时执行,负责view的创建 + function addFile(file) { + var $li = $('
  • ' + + '

    ' + file.name + '

    ' + + '

    ' + + '

    ' + + '
  • '), + + $btns = $('
    ' + + '' + lang.uploadDelete + '' + + '' + lang.uploadTurnRight + '' + + '' + lang.uploadTurnLeft + '
    ').appendTo($li), + $prgress = $li.find('p.progress span'), + $wrap = $li.find('p.imgWrap'), + $info = $('

    ').hide().appendTo($li), + + showError = function (code) { + switch (code) { + case 'exceed_size': + text = lang.errorExceedSize; + break; + case 'interrupt': + text = lang.errorInterrupt; + break; + case 'http': + text = lang.errorHttp; + break; + case 'not_allow_type': + text = lang.errorFileType; + break; + default: + text = lang.errorUploadRetry; + break; + } + $info.text(text).show(); + }; + + if (file.getStatus() === 'invalid') { + showError(file.statusText); + } else { + $wrap.text(lang.uploadPreview); + if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|' + file.ext.toLowerCase() + '|') == -1) { + $wrap.empty().addClass('notimage').append('' + + '' + file.name + ''); + } else { + if (browser.ie && browser.version <= 7) { + $wrap.text(lang.uploadNoPreview); + } else { + uploader.makeThumb(file, function (error, src) { + if (error || !src || (/^data:/.test(src) && browser.ie && browser.version <= 7)) { + $wrap.text(lang.uploadNoPreview); + } else { + var $img = $(''); + $wrap.empty().append($img); + $img.on('error', function () { + $wrap.text(lang.uploadNoPreview); + }); + } + }, thumbnailWidth, thumbnailHeight); + } + } + percentages[file.id] = [file.size, 0]; + file.rotation = 0; + + /* 检查文件格式 */ + if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) { + showError('not_allow_type'); + uploader.removeFile(file); + } + } + + file.on('statuschange', function (cur, prev) { + if (prev === 'progress') { + $prgress.hide().width(0); + } else if (prev === 'queued') { + $li.off('mouseenter mouseleave'); + $btns.remove(); + } + // 成功 + if (cur === 'error' || cur === 'invalid') { + showError(file.statusText); + percentages[file.id][1] = 1; + } else if (cur === 'interrupt') { + showError('interrupt'); + } else if (cur === 'queued') { + percentages[file.id][1] = 0; + } else if (cur === 'progress') { + $info.hide(); + $prgress.css('display', 'block'); + } else if (cur === 'complete') { + } + + $li.removeClass('state-' + prev).addClass('state-' + cur); + }); + + $li.on('mouseenter', function () { + $btns.stop().animate({height: 30}); + }); + $li.on('mouseleave', function () { + $btns.stop().animate({height: 0}); + }); + + $btns.on('click', 'span', function () { + var index = $(this).index(), + deg; + + switch (index) { + case 0: + uploader.removeFile(file); + return; + case 1: + file.rotation += 90; + break; + case 2: + file.rotation -= 90; + break; + } + + if (supportTransition) { + deg = 'rotate(' + file.rotation + 'deg)'; + $wrap.css({ + '-webkit-transform': deg, + '-mos-transform': deg, + '-o-transform': deg, + 'transform': deg + }); + } else { + $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')'); + } + + }); + + $li.insertBefore($filePickerBlock); + } + + // 负责view的销毁 + function removeFile(file) { + var $li = $('#' + file.id); + delete percentages[file.id]; + updateTotalProgress(); + $li.off().find('.file-panel').off().end().remove(); + } + + function updateTotalProgress() { + var loaded = 0, + total = 0, + spans = $progress.children(), + percent; + + $.each(percentages, function (k, v) { + total += v[0]; + loaded += v[0] * v[1]; + }); + + percent = total ? loaded / total : 0; + + spans.eq(0).text(Math.round(percent * 100) + '%'); + spans.eq(1).css('width', Math.round(percent * 100) + '%'); + updateStatus(); + } + + function setState(val, files) { + + if (val != state) { + + var stats = uploader.getStats(); + + $upload.removeClass('state-' + state); + $upload.addClass('state-' + val); + + switch (val) { + + /* 未选择文件 */ + case 'pedding': + $queue.addClass('element-invisible'); + $statusBar.addClass('element-invisible'); + $placeHolder.removeClass('element-invisible'); + $progress.hide(); + $info.hide(); + uploader.refresh(); + break; + + /* 可以开始上传 */ + case 'ready': + $placeHolder.addClass('element-invisible'); + $queue.removeClass('element-invisible'); + $statusBar.removeClass('element-invisible'); + $progress.hide(); + $info.show(); + $upload.text(lang.uploadStart); + uploader.refresh(); + break; + + /* 上传中 */ + case 'uploading': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadPause); + break; + + /* 暂停上传 */ + case 'paused': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadContinue); + break; + + case 'confirm': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadStart); + + stats = uploader.getStats(); + if (stats.successNum && !stats.uploadFailNum) { + setState('finish'); + return; + } + break; + + case 'finish': + $progress.hide(); + $info.show(); + if (stats.uploadFailNum) { + $upload.text(lang.uploadRetry); + } else { + $upload.text(lang.uploadStart); + } + break; + } + + state = val; + updateStatus(); + + } + + if (!_this.getQueueCount()) { + $upload.addClass('disabled') + } else { + $upload.removeClass('disabled') + } + + } + + function updateStatus() { + var text = '', stats; + + if (state === 'ready') { + text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)); + } else if (state === 'confirm') { + stats = uploader.getStats(); + if (stats.uploadFailNum) { + text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum); + } + } else { + stats = uploader.getStats(); + text = lang.updateStatusFinish.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)).replace('_', stats.successNum); + + if (stats.uploadFailNum) { + text += lang.updateStatusError.replace('_', stats.uploadFailNum); + } + } + + $info.html(text); + } + + uploader.on('fileQueued', function (file) { + fileCount++; + fileSize += file.size; + + if (fileCount === 1) { + $placeHolder.addClass('element-invisible'); + $statusBar.show(); + } + + addFile(file); + }); + + uploader.on('fileDequeued', function (file) { + fileCount--; + fileSize -= file.size; + + removeFile(file); + updateTotalProgress(); + }); + + uploader.on('filesQueued', function (file) { + if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) { + setState('ready'); + } + updateTotalProgress(); + }); + + uploader.on('all', function (type, files) { + switch (type) { + case 'uploadFinished': + setState('confirm', files); + break; + case 'startUpload': + /* 添加额外的GET参数 */ + var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', + url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?' : '&') + 'encode=utf-8&' + params); + uploader.option('server', url); + setState('uploading', files); + break; + case 'stopUpload': + setState('paused', files); + break; + } + }); + + uploader.on('uploadBeforeSend', function (file, data, header) { + //这里可以通过data对象添加POST参数 + if (actionUrl.toLowerCase().indexOf('jsp') != -1) { + header['X_Requested_With'] = 'XMLHttpRequest'; + } + }); + + uploader.on('uploadProgress', function (file, percentage) { + var $li = $('#' + file.id), + $percent = $li.find('.progress span'); + + $percent.css('width', percentage * 100 + '%'); + percentages[file.id][1] = percentage; + updateTotalProgress(); + }); + + uploader.on('uploadSuccess', function (file, ret) { + var $file = $('#' + file.id); + try { + var responseText = (ret._raw || ret), + json = utils.str2json(responseText); + json = editor.getOpt('serverResponsePrepare')(json); + if (json.state == 'SUCCESS') { + uploadaudioList.push({ + 'url': json.url, + 'type': json.type, + 'original': json.original + }); + $file.append(''); + } else { + $file.find('.error').text(json.state).show(); + } + } catch (e) { + $file.find('.error').text(lang.errorServerUpload).show(); + } + }); + + uploader.on('uploadError', function (file, code) { + }); + uploader.on('error', function (code, param1, param2) { + if (code === 'F_EXCEED_SIZE') { + editor.getOpt('tipError')(lang.errorExceedSize + ' ' + (param1 / 1024 / 1024).toFixed(1) + 'MB'); + } else { + console.log('error', code, param1, param2); + } + }); + uploader.on('uploadComplete', function (file, ret) { + }); + + $upload.on('click', function () { + if ($(this).hasClass('disabled')) { + return false; + } + + if (state === 'ready') { + uploader.upload(); + } else if (state === 'paused') { + uploader.upload(); + } else if (state === 'uploading') { + uploader.stop(); + } + }); + + $upload.addClass('state-' + state); + updateTotalProgress(); + }, + getQueueCount: function () { + var file, i, status, readyFile = 0, files = this.uploader.getFiles(); + for (i = 0; file = files[i++];) { + status = file.getStatus(); + if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++; + } + return readyFile; + }, + refresh: function () { + this.uploader.refresh(); + } + }; + +})(); diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/bg.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/bg.png new file mode 100644 index 0000000..580be0a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/bg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/center_focus.jpg b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/center_focus.jpg new file mode 100644 index 0000000..262b029 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/center_focus.jpg differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/file-icons.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/file-icons.gif new file mode 100644 index 0000000..d8c02c2 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/file-icons.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/file-icons.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/file-icons.png new file mode 100644 index 0000000..3ff82c8 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/file-icons.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/icons.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/icons.gif new file mode 100644 index 0000000..78459de Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/icons.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/icons.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/icons.png new file mode 100644 index 0000000..12e4700 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/icons.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/image.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/image.png new file mode 100644 index 0000000..19699f6 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/image.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/left_focus.jpg b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/left_focus.jpg new file mode 100644 index 0000000..7886d27 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/left_focus.jpg differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/none_focus.jpg b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/none_focus.jpg new file mode 100644 index 0000000..7c768dc Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/none_focus.jpg differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/progress.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/progress.png new file mode 100644 index 0000000..717c486 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/progress.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/right_focus.jpg b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/right_focus.jpg new file mode 100644 index 0000000..173e10d Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/right_focus.jpg differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/success.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/success.gif new file mode 100644 index 0000000..8d4f311 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/success.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/success.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/success.png new file mode 100644 index 0000000..94f968d Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/audio/images/success.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/background/background.css b/ruoyi-ui/public/static/UEditorPlus/dialogs/background/background.css new file mode 100644 index 0000000..13684ab --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/background/background.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +.wrapper{width:424px;margin:10px auto;zoom:1;position:relative}.tabbody{height:225px}.tabbody .panel{position:absolute;width:100%;height:100%;background:#fff;display:none}.tabbody .focus{display:block}body{font-size:12px;color:#888;overflow:hidden}input,label{vertical-align:middle}.clear{clear:both}.pl{padding-left:18px;padding-left:23px \9}#imageList{width:420px;height:215px;margin-top:10px;overflow:hidden;overflow-y:auto}#imageList div{float:left;width:100px;height:95px;margin:5px 10px}#imageList img{cursor:pointer;border:2px solid #fff}.bgarea{margin:10px;padding:5px;height:84%;border:1px solid #A8A297}.content div{margin:10px 0 10px 5px}.content .iptradio{margin:0 5px 5px 0}.txt{width:280px}.wrapcolor{height:19px}div.color{float:left;margin:0}#colorPicker{width:17px;height:17px;border:1px solid #CCC;display:inline-block;border-radius:3px;box-shadow:2px 2px 5px #D3D6DA;margin:0;float:left}div.alignment,#custom{margin-left:23px;margin-left:28px \9}#custom input{height:15px;min-height:15px;width:20px}#repeatType{width:100px}#imgManager{width:100%;height:225px}#imgManager #imageList{width:100%;overflow-x:hidden;overflow-y:auto}#imgManager ul{display:block;list-style:none;margin:0;padding:0}#imgManager li{float:left;display:block;list-style:none;padding:0;width:113px;height:113px;margin:9px 0 0 19px;background-color:#eee;overflow:hidden;cursor:pointer;position:relative}#imgManager li.clearFloat{float:none;clear:both;display:block;width:0;height:0;margin:0;padding:0}#imgManager li img{cursor:pointer}#imgManager li .icon{cursor:pointer;width:113px;height:113px;position:absolute;top:0;left:0;z-index:2;border:0;background-repeat:no-repeat}#imgManager li .icon:hover{width:107px;height:107px;border:3px solid #1094fa}#imgManager li.selected .icon{background-image:url(images/success.png);background-position:75px 75px}#imgManager li.selected .icon:hover{width:107px;height:107px;border:3px solid #1094fa;background-position:72px 72px} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/background/background.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/background/background.html new file mode 100644 index 0000000..804ca24 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/background/background.html @@ -0,0 +1,59 @@ + + + + + + + + +
    +
    + +
    +
    +
    +
    + +
    +
    + + +
    +
    +
    + : +
    +
    +
    +
    +
    + +
    +
    + : +
    +
    + :x:px  y:px +
    +
    +
    + +
    +
    +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/background/background.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/background/background.js new file mode 100644 index 0000000..d40a252 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/background/background.js @@ -0,0 +1,370 @@ +(function () { + + var onlineImage, + backupStyle = editor.queryCommandValue('background'); + + window.onload = function () { + initTabs(); + initColorSelector(); + }; + + /* 初始化tab标签 */ + function initTabs() { + var tabs = $G('tabHeads').children; + for (var i = 0; i < tabs.length; i++) { + domUtils.on(tabs[i], "click", function (e) { + var target = e.target || e.srcElement; + for (var j = 0; j < tabs.length; j++) { + if (tabs[j] == target) { + tabs[j].className = "focus"; + var contentId = tabs[j].getAttribute('data-content-id'); + $G(contentId).style.display = "block"; + } else { + tabs[j].className = ""; + $G(tabs[j].getAttribute('data-content-id')).style.display = "none"; + } + } + }); + } + } + + /* 初始化颜色设置 */ + function initColorSelector() { + var obj = editor.queryCommandValue('background'); + if (obj) { + var color = obj['background-color'], + repeat = obj['background-repeat'] || 'repeat', + image = obj['background-image'] || '', + position = obj['background-position'] || 'center center', + pos = position.split(' '), + x = parseInt(pos[0]) || 0, + y = parseInt(pos[1]) || 0; + + if (repeat == 'no-repeat' && (x || y)) repeat = 'self'; + + image = image.match(/url[\s]*\(([^\)]*)\)/); + image = image ? image[1] : ''; + updateFormState('colored', color, image, repeat, x, y); + } else { + updateFormState(); + } + + var updateHandler = function () { + updateFormState(); + updateBackground(); + } + domUtils.on($G('nocolorRadio'), 'click', updateBackground); + domUtils.on($G('coloredRadio'), 'click', updateHandler); + domUtils.on($G('url'), 'keyup', function () { + if ($G('url').value && $G('alignment').style.display == "none") { + utils.each($G('repeatType').children, function (item) { + item.selected = ('repeat' == item.getAttribute('value') ? 'selected' : false); + }); + } + updateHandler(); + }); + domUtils.on($G('repeatType'), 'change', updateHandler); + domUtils.on($G('x'), 'keyup', updateBackground); + domUtils.on($G('y'), 'keyup', updateBackground); + + initColorPicker(); + } + + /* 初始化颜色选择器 */ + function initColorPicker() { + var me = editor, + cp = $G("colorPicker"); + + /* 生成颜色选择器ui对象 */ + var popup = new UE.ui.Popup({ + content: new UE.ui.ColorPicker({ + noColorText: me.getLang("clearColor"), + editor: me, + onpickcolor: function (t, color) { + updateFormState('colored', color); + updateBackground(); + UE.ui.Popup.postHide(); + }, + onpicknocolor: function (t, color) { + updateFormState('colored', 'transparent'); + updateBackground(); + UE.ui.Popup.postHide(); + } + }), + editor: me, + onhide: function () { + } + }); + + /* 设置颜色选择器 */ + domUtils.on(cp, "click", function () { + popup.showAnchor(this); + }); + domUtils.on(document, 'mousedown', function (evt) { + var el = evt.target || evt.srcElement; + UE.ui.Popup.postHide(el); + }); + domUtils.on(window, 'scroll', function () { + UE.ui.Popup.postHide(); + }); + } + + /* 更新背景色设置面板 */ + function updateFormState(radio, color, url, align, x, y) { + var nocolorRadio = $G('nocolorRadio'), + coloredRadio = $G('coloredRadio'); + + if (radio) { + nocolorRadio.checked = (radio == 'colored' ? false : 'checked'); + coloredRadio.checked = (radio == 'colored' ? 'checked' : false); + } + if (color) { + domUtils.setStyle($G("colorPicker"), "background-color", color); + } + + if (url && /^\//.test(url)) { + var a = document.createElement('a'); + a.href = url; + browser.ie && (a.href = a.href); + url = browser.ie ? a.href : (a.protocol + '//' + a.host + a.pathname + a.search + a.hash); + } + + if (url || url === '') { + $G('url').value = url; + } + if (align) { + utils.each($G('repeatType').children, function (item) { + item.selected = (align == item.getAttribute('value') ? 'selected' : false); + }); + } + if (x || y) { + $G('x').value = parseInt(x) || 0; + $G('y').value = parseInt(y) || 0; + } + + $G('alignment').style.display = coloredRadio.checked && $G('url').value ? '' : 'none'; + $G('custom').style.display = coloredRadio.checked && $G('url').value && $G('repeatType').value == 'self' ? '' : 'none'; + } + + /* 更新背景颜色 */ + function updateBackground() { + if ($G('coloredRadio').checked) { + var color = domUtils.getStyle($G("colorPicker"), "background-color"), + bgimg = $G("url").value, + align = $G("repeatType").value, + backgroundObj = { + "background-repeat": "no-repeat", + "background-position": "center center" + }; + + if (color) backgroundObj["background-color"] = color; + if (bgimg) backgroundObj["background-image"] = 'url(' + bgimg + ')'; + if (align == 'self') { + backgroundObj["background-position"] = $G("x").value + "px " + $G("y").value + "px"; + } else if (align == 'repeat-x' || align == 'repeat-y' || align == 'repeat') { + backgroundObj["background-repeat"] = align; + } + + editor.execCommand('background', backgroundObj); + } else { + editor.execCommand('background', null); + } + } + + + /* 在线图片 */ + function OnlineImage(target) { + this.container = utils.isString(target) ? document.getElementById(target) : target; + this.init(); + } + + OnlineImage.prototype = { + init: function () { + this.reset(); + this.initEvents(); + }, + /* 初始化容器 */ + initContainer: function () { + this.container.innerHTML = ''; + this.list = document.createElement('ul'); + this.clearFloat = document.createElement('li'); + + domUtils.addClass(this.list, 'list'); + domUtils.addClass(this.clearFloat, 'clearFloat'); + + this.list.id = 'imageListUl'; + this.list.appendChild(this.clearFloat); + this.container.appendChild(this.list); + }, + /* 初始化滚动事件,滚动到地步自动拉取数据 */ + initEvents: function () { + var _this = this; + + /* 滚动拉取图片 */ + domUtils.on($G('imageList'), 'scroll', function (e) { + var panel = this; + if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) { + _this.getImageData(); + } + }); + /* 选中图片 */ + domUtils.on(this.container, 'click', function (e) { + var target = e.target || e.srcElement, + li = target.parentNode, + nodes = $G('imageListUl').childNodes; + + if (li.tagName.toLowerCase() == 'li') { + updateFormState('nocolor', null, ''); + for (var i = 0, node; node = nodes[i++];) { + if (node == li && !domUtils.hasClass(node, 'selected')) { + domUtils.addClass(node, 'selected'); + updateFormState('colored', null, li.firstChild.getAttribute("_src"), 'repeat'); + } else { + domUtils.removeClasses(node, 'selected'); + } + } + updateBackground(); + } + }); + }, + /* 初始化第一次的数据 */ + initData: function () { + + /* 拉取数据需要使用的值 */ + this.state = 0; + this.listSize = editor.getOpt('imageManagerListSize'); + this.listIndex = 0; + this.listEnd = false; + + /* 第一次拉取数据 */ + this.getImageData(); + }, + /* 重置界面 */ + reset: function () { + this.initContainer(); + this.initData(); + }, + /* 向后台拉取图片列表数据 */ + getImageData: function () { + var _this = this; + + if (!_this.listEnd && !this.isLoadingData) { + this.isLoadingData = true; + var url = editor.getActionUrl(editor.getOpt('imageManagerActionName')), + isJsonp = utils.isCrossDomainUrl(url); + ajax.request(url, { + 'timeout': 100000, + 'dataType': isJsonp ? 'jsonp' : '', + 'data': utils.extend({ + start: this.listIndex, + size: this.listSize + }, editor.queryCommandValue('serverparam')), + 'headers': editor.options.serverHeaders || {}, + 'method': 'get', + 'onsuccess': function (r) { + try { + var json = isJsonp ? r : eval('(' + r.responseText + ')'); + if (json.state == 'SUCCESS') { + _this.pushData(json.list); + _this.listIndex = parseInt(json.start) + parseInt(json.list.length); + if (_this.listIndex >= json.total) { + _this.listEnd = true; + } + _this.isLoadingData = false; + } + } catch (e) { + if (r.responseText.indexOf('ue_separate_ue') != -1) { + var list = r.responseText.split(r.responseText); + _this.pushData(list); + _this.listIndex = parseInt(list.length); + _this.listEnd = true; + _this.isLoadingData = false; + } + } + }, + 'onerror': function () { + _this.isLoadingData = false; + } + }); + } + }, + /* 添加图片到列表界面上 */ + pushData: function (list) { + var i, item, img, icon, _this = this, + urlPrefix = editor.getOpt('imageManagerUrlPrefix'); + for (i = 0; i < list.length; i++) { + if (list[i] && list[i].url) { + item = document.createElement('li'); + img = document.createElement('img'); + icon = document.createElement('span'); + + domUtils.on(img, 'load', (function (image) { + return function () { + _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight); + } + })(img)); + img.width = 113; + img.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=' : '&noCache=') + (+new Date()).toString(36)); + img.setAttribute('_src', urlPrefix + list[i].url); + domUtils.addClass(icon, 'icon'); + + item.appendChild(img); + item.appendChild(icon); + this.list.insertBefore(item, this.clearFloat); + } + } + }, + /* 改变图片大小 */ + scale: function (img, w, h, type) { + var ow = img.width, + oh = img.height; + + if (type == 'justify') { + if (ow >= oh) { + img.width = w; + img.height = h * oh / ow; + img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; + } else { + img.width = w * ow / oh; + img.height = h; + img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; + } + } else { + if (ow >= oh) { + img.width = w * ow / oh; + img.height = h; + img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; + } else { + img.width = w; + img.height = h * oh / ow; + img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; + } + } + }, + getInsertList: function () { + var i, lis = this.list.children, list = [], align = getAlign(); + for (i = 0; i < lis.length; i++) { + if (domUtils.hasClass(lis[i], 'selected')) { + var img = lis[i].firstChild, + src = img.getAttribute('_src'); + list.push({ + src: src, + _src: src, + floatStyle: align + }); + } + + } + return list; + } + }; + + dialog.onok = function () { + updateBackground(); + editor.fireEvent('saveScene'); + }; + dialog.oncancel = function () { + editor.execCommand('background', backupStyle); + }; + +})(); diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/background/images/bg.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/background/images/bg.png new file mode 100644 index 0000000..580be0a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/background/images/bg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/background/images/success.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/background/images/success.png new file mode 100644 index 0000000..94f968d Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/background/images/success.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/contentimport/contentimport.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/contentimport/contentimport.html new file mode 100644 index 0000000..8a6d751 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/contentimport/contentimport.html @@ -0,0 +1,177 @@ + + + + + + + + +
    +
    +
    +
    选择本地文件
    + +
    +
    +
    粘贴Markdown
    +
    +
    +
    +
    +
    + 支持文档格式 +
    +
    +
      +
    • Word:docx
    • +
    • Markdown:md
    • +
    +
    +
    +
    + +
    + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/contentimport/contentimport.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/contentimport/contentimport.js new file mode 100644 index 0000000..aaa28f0 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/contentimport/contentimport.js @@ -0,0 +1,91 @@ +var contentImport = {}; +var g = $G; + +contentImport.data = { + result: null, +}; +contentImport.init = function (opt, callbacks) { + addUploadButtonListener(); + addOkListener(); +}; + +function processWord(file) { + $('.file-tip').html('正在转换Word文件,请稍后...'); + $('.file-result').html('').hide(); + var reader = new FileReader(); + reader.onload = function (loadEvent) { + mammoth.convertToHtml({ + arrayBuffer: loadEvent.target.result + }) + .then(function displayResult(result) { + $('.file-tip').html('转换成功'); + contentImport.data.result = result.value; + $('.file-result').html(result.value).show(); + }, function (error) { + $('.file-tip').html('Word文件转换失败:' + error); + }); + }; + reader.onerror = function (loadEvent) { + $('.file-tip').html('Word文件转换失败:' + loadEvent); + }; + reader.readAsArrayBuffer(file); +} + +function processMarkdown( markdown ){ + var converter = new showdown.Converter(); + var html = converter.makeHtml(markdown); + $('.file-tip').html('转换成功'); + contentImport.data.result = html; + $('.file-result').html(html).show(); +} + +function processMarkdownFile(file) { + $('.file-tip').html('正在转换Markdown文件,请稍后...'); + $('.file-result').html('').hide(); + var reader = new FileReader(); + reader.onload = function (loadEvent) { + processMarkdown( loadEvent.target.result ); + }; + reader.onerror = function (loadEvent) { + $('.file-tip').html('Markdown文件转换失败:' + loadEvent); + }; + reader.readAsText(file, "UTF-8"); +} + +function addUploadButtonListener() { + g('contentImport').addEventListener('change', function () { + const file = this.files[0]; + const fileName = file.name; + const fileExt = fileName.substring(fileName.lastIndexOf('.') + 1).toLowerCase(); + switch (fileExt) { + case 'docx': + case 'doc': + processWord(file); + break; + case 'md': + processMarkdownFile(file); + break; + default: + $('.file-tip').html('不支持的文件格式:' + fileExt); + break; + } + }); + g('fileInputConfirm').addEventListener('click', function () { + processMarkdown( g('fileInputContent').value ); + $('.file-input').hide(); + }); +} + +function addOkListener() { + dialog.onok = function () { + if (!contentImport.data.result) { + alert('请先上传文件识别内容'); + return false; + } + editor.fireEvent('saveScene'); + editor.execCommand("inserthtml", contentImport.data.result); + editor.fireEvent('saveScene'); + }; + dialog.oncancel = function () { + }; +} diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/contentimport/mammoth.browser.min.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/contentimport/mammoth.browser.min.js new file mode 100644 index 0000000..cc8a19b --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/contentimport/mammoth.browser.min.js @@ -0,0 +1,21 @@ +!function(f){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=f();else if("function"==typeof define&&define.amd)define([],f);else{var g;g="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,g.mammoth=f()}}(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o0&&(childrenXml=deletedParagraphContents.concat(childrenXml),deletedParagraphContents=[]),ReadResult.map(readParagraphProperties(paragraphPropertiesElement),readXmlElements(childrenXml),function(properties,children){return new documents.Paragraph(children,properties)}).insertExtra()},"w:r":function(element){return ReadResult.map(readRunProperties(element.firstOrEmpty("w:rPr")),readXmlElements(element.children),function(properties,children){var hyperlinkOptions=currentHyperlinkOptions();return null!==hyperlinkOptions&&(children=[new documents.Hyperlink(children,hyperlinkOptions)]),new documents.Run(children,properties)})},"w:fldChar":readFldChar,"w:instrText":readInstrText,"w:t":function(element){return elementResult(new documents.Text(element.text()))},"w:tab":function(element){return elementResult(new documents.Tab)},"w:noBreakHyphen":function(){return elementResult(new documents.Text("‑"))},"w:softHyphen":function(element){return elementResult(new documents.Text("­"))},"w:sym":readSymbol,"w:hyperlink":function(element){var relationshipId=element.attributes["r:id"],anchor=element.attributes["w:anchor"];return readXmlElements(element.children).map(function(children){function create(options){var targetFrame=element.attributes["w:tgtFrame"]||null;return new documents.Hyperlink(children,_.extend({targetFrame:targetFrame},options))}if(relationshipId){var href=relationships.findTargetByRelationshipId(relationshipId);return anchor&&(href=uris.replaceFragment(href,anchor)),create({href:href})}return anchor?create({anchor:anchor}):children})},"w:tbl":readTable,"w:tr":readTableRow,"w:tc":readTableCell,"w:footnoteReference":noteReferenceReader("footnote"),"w:endnoteReference":noteReferenceReader("endnote"),"w:commentReference":readCommentReference,"w:br":function(element){var breakType=element.attributes["w:type"];return null==breakType||"textWrapping"===breakType?elementResult(documents.lineBreak):"page"===breakType?elementResult(documents.pageBreak):"column"===breakType?elementResult(documents.columnBreak):emptyResultWithMessages([warning("Unsupported break type: "+breakType)])},"w:bookmarkStart":function(element){var name=element.attributes["w:name"];return"_GoBack"===name?emptyResult():elementResult(new documents.BookmarkStart({name:name}))},"mc:AlternateContent":function(element){return readChildElements(element.first("mc:Fallback"))},"w:sdt":function(element){return readXmlElements(element.firstOrEmpty("w:sdtContent").children)},"w:ins":readChildElements,"w:object":readChildElements,"w:smartTag":readChildElements,"w:drawing":readChildElements,"w:pict":function(element){return readChildElements(element).toExtra()},"v:roundrect":readChildElements,"v:shape":readChildElements,"v:textbox":readChildElements,"w:txbxContent":readChildElements,"wp:inline":readDrawingElement,"wp:anchor":readDrawingElement,"v:imagedata":readImageData,"v:group":readChildElements,"v:rect":readChildElements};return{readXmlElement:readXmlElement,readXmlElements:readXmlElements}}function readNumberingProperties(styleId,element,numbering){if(null!=styleId){var levelByStyleId=numbering.findLevelByParagraphStyleId(styleId);if(null!=levelByStyleId)return levelByStyleId}var level=element.firstOrEmpty("w:ilvl").attributes["w:val"],numId=element.firstOrEmpty("w:numId").attributes["w:val"];return void 0===level||void 0===numId?null:numbering.findLevel(numId,level)}function emptyResultWithMessages(messages){return new ReadResult(null,null,messages)}function emptyResult(){return new ReadResult(null)}function elementResult(element){return new ReadResult(element)}function elementResultWithMessages(element,messages){return new ReadResult(element,null,messages)}function ReadResult(element,extra,messages){this.value=element||[],this.extra=extra||[],this._result=new Result({element:this.value,extra:extra},messages),this.messages=this._result.messages}function combineResults(results){var result=Result.combine(_.pluck(results,"_result"));return new ReadResult(_.flatten(_.pluck(result.value,"element")),_.filter(_.flatten(_.pluck(result.value,"extra")),identity),result.messages)}function joinElements(first,second){return _.flatten([first,second])}function identity(value){return value}exports.createBodyReader=createBodyReader,exports._readNumberingProperties=readNumberingProperties;var dingbatToUnicode=require("dingbat-to-unicode"),_=require("underscore"),documents=require("../documents"),Result=require("../results").Result,warning=require("../results").warning,uris=require("./uris"),supportedImageTypes={"image/png":!0,"image/gif":!0,"image/jpeg":!0,"image/svg+xml":!0,"image/tiff":!0},ignoreElements={"office-word:wrap":!0,"v:shadow":!0,"v:shapetype":!0,"w:annotationRef":!0,"w:bookmarkEnd":!0,"w:sectPr":!0,"w:proofErr":!0,"w:lastRenderedPageBreak":!0,"w:commentRangeStart":!0,"w:commentRangeEnd":!0,"w:del":!0,"w:footnoteRef":!0,"w:endnoteRef":!0,"w:pPr":!0,"w:rPr":!0,"w:tblPr":!0,"w:tblGrid":!0,"w:trPr":!0,"w:tcPr":!0};ReadResult.prototype.toExtra=function(){return new ReadResult(null,joinElements(this.extra,this.value),this.messages)},ReadResult.prototype.insertExtra=function(){var extra=this.extra;return extra&&extra.length?new ReadResult(joinElements(this.value,extra),null,this.messages):this},ReadResult.prototype.map=function(func){var result=this._result.map(function(value){return func(value.element)});return new ReadResult(result.value,this.extra,result.messages)},ReadResult.prototype.flatMap=function(func){var result=this._result.flatMap(function(value){return func(value.element)._result});return new ReadResult(result.value.element,joinElements(this.extra,result.value.extra),result.messages)},ReadResult.map=function(first,second,func){return new ReadResult(func(first.value,second.value),joinElements(first.extra,second.extra),first.messages.concat(second.messages))}},{"../documents":4,"../results":25,"./uris":16,"dingbat-to-unicode":85,underscore:103}],6:[function(require,module,exports){function createCommentsReader(bodyReader){function readCommentsXml(element){ +return Result.combine(element.getElementsByTagName("w:comment").map(readCommentElement))}function readCommentElement(element){function readOptionalAttribute(name){return(element.attributes[name]||"").trim()||null}var id=element.attributes["w:id"];return bodyReader.readXmlElements(element.children).map(function(body){return documents.comment({commentId:id,body:body,authorName:readOptionalAttribute("w:author"),authorInitials:readOptionalAttribute("w:initials")})})}return readCommentsXml}var documents=require("../documents"),Result=require("../results").Result;exports.createCommentsReader=createCommentsReader},{"../documents":4,"../results":25}],7:[function(require,module,exports){function readContentTypesFromXml(element){var extensionDefaults={},overrides={};return element.children.forEach(function(child){if("content-types:Default"===child.name&&(extensionDefaults[child.attributes.Extension]=child.attributes.ContentType),"content-types:Override"===child.name){var name=child.attributes.PartName;"/"===name.charAt(0)&&(name=name.substring(1)),overrides[name]=child.attributes.ContentType}}),contentTypes(overrides,extensionDefaults)}function contentTypes(overrides,extensionDefaults){return{findContentType:function(path){var overrideContentType=overrides[path];if(overrideContentType)return overrideContentType;var pathParts=path.split("."),extension=pathParts[pathParts.length-1];if(extensionDefaults.hasOwnProperty(extension))return extensionDefaults[extension];var fallback=fallbackContentTypes[extension.toLowerCase()];return fallback?"image/"+fallback:null}}}exports.readContentTypesFromXml=readContentTypesFromXml;var fallbackContentTypes={png:"png",gif:"gif",jpeg:"jpeg",jpg:"jpeg",tif:"tiff",tiff:"tiff",bmp:"bmp"};exports.defaultContentTypes=contentTypes({},{})},{}],8:[function(require,module,exports){function DocumentXmlReader(options){function convertXmlToDocument(element){var body=element.first("w:body"),result=bodyReader.readXmlElements(body.children).map(function(children){return new documents.Document(children,{notes:options.notes,comments:options.comments})});return new Result(result.value,result.messages)}var bodyReader=options.bodyReader;return{convertXmlToDocument:convertXmlToDocument}}exports.DocumentXmlReader=DocumentXmlReader;var documents=require("../documents"),Result=require("../results").Result},{"../documents":4,"../results":25}],9:[function(require,module,exports){function read(docxFile,input){return input=input||{},promises.props({contentTypes:readContentTypesFromZipFile(docxFile),partPaths:findPartPaths(docxFile),docxFile:docxFile,files:new Files(input.path?path.dirname(input.path):null)}).also(function(result){return{styles:readStylesFromZipFile(docxFile,result.partPaths.styles)}}).also(function(result){return{numbering:readNumberingFromZipFile(docxFile,result.partPaths.numbering,result.styles)}}).also(function(result){return{footnotes:readXmlFileWithBody(result.partPaths.footnotes,result,function(bodyReader,xml){return xml?notesReader.createFootnotesReader(bodyReader)(xml):new Result([])}),endnotes:readXmlFileWithBody(result.partPaths.endnotes,result,function(bodyReader,xml){return xml?notesReader.createEndnotesReader(bodyReader)(xml):new Result([])}),comments:readXmlFileWithBody(result.partPaths.comments,result,function(bodyReader,xml){return xml?commentsReader.createCommentsReader(bodyReader)(xml):new Result([])})}}).also(function(result){return{notes:result.footnotes.flatMap(function(footnotes){return result.endnotes.map(function(endnotes){return new documents.Notes(footnotes.concat(endnotes))})})}}).then(function(result){return readXmlFileWithBody(result.partPaths.mainDocument,result,function(bodyReader,xml){return result.notes.flatMap(function(notes){return result.comments.flatMap(function(comments){var reader=new DocumentXmlReader({bodyReader:bodyReader,notes:notes,comments:comments});return reader.convertXmlToDocument(xml)})})})})}function findPartPaths(docxFile){return readPackageRelationships(docxFile).then(function(packageRelationships){var mainDocumentPath=findPartPath({docxFile:docxFile,relationships:packageRelationships,relationshipType:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",basePath:"",fallbackPath:"word/document.xml"});if(!docxFile.exists(mainDocumentPath))throw new Error("Could not find main document part. Are you sure this is a valid .docx file?");return xmlFileReader({filename:relationshipsFilename(mainDocumentPath),readElement:relationshipsReader.readRelationships,defaultValue:relationshipsReader.defaultValue})(docxFile).then(function(documentRelationships){function findPartRelatedToMainDocument(name){return findPartPath({docxFile:docxFile,relationships:documentRelationships,relationshipType:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/"+name,basePath:zipfile.splitPath(mainDocumentPath).dirname,fallbackPath:"word/"+name+".xml"})}return{mainDocument:mainDocumentPath,comments:findPartRelatedToMainDocument("comments"),endnotes:findPartRelatedToMainDocument("endnotes"),footnotes:findPartRelatedToMainDocument("footnotes"),numbering:findPartRelatedToMainDocument("numbering"),styles:findPartRelatedToMainDocument("styles")}})})}function findPartPath(options){var docxFile=options.docxFile,relationships=options.relationships,relationshipType=options.relationshipType,basePath=options.basePath,fallbackPath=options.fallbackPath,targets=relationships.findTargetsByType(relationshipType),normalisedTargets=targets.map(function(target){return stripPrefix(zipfile.joinPath(basePath,target),"/")}),validTargets=normalisedTargets.filter(function(target){return docxFile.exists(target)});return 0===validTargets.length?fallbackPath:validTargets[0]}function stripPrefix(value,prefix){return value.substring(0,prefix.length)===prefix?value.substring(prefix.length):value}function xmlFileReader(options){return function(zipFile){return readXmlFromZipFile(zipFile,options.filename).then(function(element){return element?options.readElement(element):options.defaultValue})}}function readXmlFileWithBody(filename,options,func){var readRelationshipsFromZipFile=xmlFileReader({filename:relationshipsFilename(filename),readElement:relationshipsReader.readRelationships,defaultValue:relationshipsReader.defaultValue});return readRelationshipsFromZipFile(options.docxFile).then(function(relationships){var bodyReader=new createBodyReader({relationships:relationships,contentTypes:options.contentTypes,docxFile:options.docxFile,numbering:options.numbering,styles:options.styles,files:options.files});return readXmlFromZipFile(options.docxFile,filename).then(function(xml){return func(bodyReader,xml)})})}function relationshipsFilename(filename){var split=zipfile.splitPath(filename);return zipfile.joinPath(split.dirname,"_rels",split.basename+".rels")}function readNumberingFromZipFile(zipFile,path,styles){return xmlFileReader({filename:path,readElement:function(element){return numberingXml.readNumberingXml(element,{styles:styles})},defaultValue:numberingXml.defaultNumbering})(zipFile)}function readStylesFromZipFile(zipFile,path){return xmlFileReader({filename:path,readElement:stylesReader.readStylesXml,defaultValue:stylesReader.defaultStyles})(zipFile)}exports.read=read,exports._findPartPaths=findPartPaths;var path=require("path"),promises=require("../promises"),documents=require("../documents"),Result=require("../results").Result,zipfile=require("../zipfile"),readXmlFromZipFile=require("./office-xml-reader").readXmlFromZipFile,createBodyReader=require("./body-reader").createBodyReader,DocumentXmlReader=require("./document-xml-reader").DocumentXmlReader,relationshipsReader=require("./relationships-reader"),contentTypesReader=require("./content-types-reader"),numberingXml=require("./numbering-xml"),stylesReader=require("./styles-reader"),notesReader=require("./notes-reader"),commentsReader=require("./comments-reader"),Files=require("./files").Files,readContentTypesFromZipFile=xmlFileReader({filename:"[Content_Types].xml",readElement:contentTypesReader.readContentTypesFromXml,defaultValue:contentTypesReader.defaultContentTypes}),readPackageRelationships=xmlFileReader({filename:"_rels/.rels",readElement:relationshipsReader.readRelationships,defaultValue:relationshipsReader.defaultValue})},{"../documents":4,"../promises":23,"../results":25,"../zipfile":40,"./body-reader":5,"./comments-reader":6,"./content-types-reader":7,"./document-xml-reader":8,"./files":1,"./notes-reader":10,"./numbering-xml":11,"./office-xml-reader":12,"./relationships-reader":13,"./styles-reader":15,path:101}],10:[function(require,module,exports){function createReader(noteType,bodyReader){function readNotesXml(element){return Result.combine(element.getElementsByTagName("w:"+noteType).filter(isFootnoteElement).map(readFootnoteElement))}function isFootnoteElement(element){var type=element.attributes["w:type"];return"continuationSeparator"!==type&&"separator"!==type}function readFootnoteElement(footnoteElement){var id=footnoteElement.attributes["w:id"];return bodyReader.readXmlElements(footnoteElement.children).map(function(body){return documents.Note({noteType:noteType,noteId:id,body:body})})}return readNotesXml}var documents=require("../documents"),Result=require("../results").Result;exports.createFootnotesReader=createReader.bind(this,"footnote"),exports.createEndnotesReader=createReader.bind(this,"endnote")},{"../documents":4,"../results":25}],11:[function(require,module,exports){function Numbering(nums,abstractNums,styles){function findLevel(numId,level){var num=nums[numId];if(num){var abstractNum=abstractNums[num.abstractNumId];if(abstractNum){if(null==abstractNum.numStyleLink)return abstractNums[num.abstractNumId].levels[level];var style=styles.findNumberingStyleById(abstractNum.numStyleLink);return findLevel(style.numId,level)}return null}return null}function findLevelByParagraphStyleId(styleId){return levelsByParagraphStyleId[styleId]||null}var allLevels=_.flatten(_.values(abstractNums).map(function(abstractNum){return _.values(abstractNum.levels)})),levelsByParagraphStyleId=_.indexBy(allLevels.filter(function(level){return null!=level.paragraphStyleId}),"paragraphStyleId");return{findLevel:findLevel,findLevelByParagraphStyleId:findLevelByParagraphStyleId}}function readNumberingXml(root,options){if(!options||!options.styles)throw new Error("styles is missing");var abstractNums=readAbstractNums(root),nums=readNums(root,abstractNums);return new Numbering(nums,abstractNums,options.styles)}function readAbstractNums(root){var abstractNums={};return root.getElementsByTagName("w:abstractNum").forEach(function(element){var id=element.attributes["w:abstractNumId"];abstractNums[id]=readAbstractNum(element)}),abstractNums}function readAbstractNum(element){var levels={};element.getElementsByTagName("w:lvl").forEach(function(levelElement){var levelIndex=levelElement.attributes["w:ilvl"],numFmt=levelElement.first("w:numFmt").attributes["w:val"],paragraphStyleId=levelElement.firstOrEmpty("w:pStyle").attributes["w:val"];levels[levelIndex]={isOrdered:"bullet"!==numFmt,level:levelIndex,paragraphStyleId:paragraphStyleId}});var numStyleLink=element.firstOrEmpty("w:numStyleLink").attributes["w:val"];return{levels:levels,numStyleLink:numStyleLink}}function readNums(root){var nums={};return root.getElementsByTagName("w:num").forEach(function(element){var numId=element.attributes["w:numId"],abstractNumId=element.first("w:abstractNumId").attributes["w:val"];nums[numId]={abstractNumId:abstractNumId}}),nums}var _=require("underscore");exports.readNumberingXml=readNumberingXml,exports.Numbering=Numbering,exports.defaultNumbering=new Numbering({},{})},{underscore:103}],12:[function(require,module,exports){function read(xmlString){return xml.readString(xmlString,xmlNamespaceMap).then(function(document){return collapseAlternateContent(document)[0]})}function readXmlFromZipFile(docxFile,path){return docxFile.exists(path)?docxFile.read(path,"utf-8").then(stripUtf8Bom).then(read):promises.resolve(null)}function stripUtf8Bom(xmlString){return xmlString.replace(/^\uFEFF/g,"")}function collapseAlternateContent(node){return"element"===node.type?"mc:AlternateContent"===node.name?node.first("mc:Fallback").children:(node.children=_.flatten(node.children.map(collapseAlternateContent,!0)),[node]):[node]}var _=require("underscore"),promises=require("../promises"),xml=require("../xml");exports.read=read,exports.readXmlFromZipFile=readXmlFromZipFile;var xmlNamespaceMap={"http://schemas.openxmlformats.org/wordprocessingml/2006/main":"w","http://schemas.openxmlformats.org/officeDocument/2006/relationships":"r","http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing":"wp","http://schemas.openxmlformats.org/drawingml/2006/main":"a","http://schemas.openxmlformats.org/drawingml/2006/picture":"pic","http://schemas.openxmlformats.org/package/2006/content-types":"content-types","urn:schemas-microsoft-com:vml":"v","http://schemas.openxmlformats.org/markup-compatibility/2006":"mc","urn:schemas-microsoft-com:office:word":"office-word"}},{"../promises":23,"../xml":35,underscore:103}],13:[function(require,module,exports){function readRelationships(element){var relationships=[];return element.children.forEach(function(child){if("{http://schemas.openxmlformats.org/package/2006/relationships}Relationship"===child.name){var relationship={relationshipId:child.attributes.Id,target:child.attributes.Target,type:child.attributes.Type};relationships.push(relationship)}}),new Relationships(relationships)}function Relationships(relationships){var targetsByRelationshipId={};relationships.forEach(function(relationship){targetsByRelationshipId[relationship.relationshipId]=relationship.target});var targetsByType={};return relationships.forEach(function(relationship){targetsByType[relationship.type]||(targetsByType[relationship.type]=[]),targetsByType[relationship.type].push(relationship.target)}),{findTargetByRelationshipId:function(relationshipId){return targetsByRelationshipId[relationshipId]},findTargetsByType:function(type){return targetsByType[type]||[]}}}exports.readRelationships=readRelationships,exports.defaultValue=new Relationships([]),exports.Relationships=Relationships},{}],14:[function(require,module,exports){function writeStyleMap(docxFile,styleMap){return docxFile.write(styleMapPath,styleMap),updateRelationships(docxFile).then(function(){return updateContentTypes(docxFile)})}function updateRelationships(docxFile){var path="word/_rels/document.xml.rels",relationshipsUri="http://schemas.openxmlformats.org/package/2006/relationships",relationshipElementName="{"+relationshipsUri+"}Relationship";return docxFile.read(path,"utf8").then(xml.readString).then(function(relationshipsContainer){var relationships=relationshipsContainer.children;addOrUpdateElement(relationships,relationshipElementName,"Id",{Id:"rMammothStyleMap",Type:schema,Target:styleMapAbsolutePath});var namespaces={"":relationshipsUri};return docxFile.write(path,xml.writeString(relationshipsContainer,namespaces))})}function updateContentTypes(docxFile){var path="[Content_Types].xml",contentTypesUri="http://schemas.openxmlformats.org/package/2006/content-types",overrideName="{"+contentTypesUri+"}Override";return docxFile.read(path,"utf8").then(xml.readString).then(function(typesElement){var children=typesElement.children;addOrUpdateElement(children,overrideName,"PartName",{PartName:styleMapAbsolutePath,ContentType:"text/prs.mammoth.style-map"});var namespaces={"":contentTypesUri};return docxFile.write(path,xml.writeString(typesElement,namespaces))})}function addOrUpdateElement(elements,name,identifyingAttribute,attributes){var existingElement=_.find(elements,function(element){return element.name===name&&element.attributes[identifyingAttribute]===attributes[identifyingAttribute]});existingElement?existingElement.attributes=attributes:elements.push(xml.element(name,attributes))}function readStyleMap(docxFile){return docxFile.exists(styleMapPath)?docxFile.read(styleMapPath,"utf8"):promises.resolve(null)}var _=require("underscore"),promises=require("../promises"),xml=require("../xml");exports.writeStyleMap=writeStyleMap,exports.readStyleMap=readStyleMap;var schema="http://schemas.zwobble.org/mammoth/style-map",styleMapPath="mammoth/style-map",styleMapAbsolutePath="/"+styleMapPath},{"../promises":23,"../xml":35,underscore:103}],15:[function(require,module,exports){function Styles(paragraphStyles,characterStyles,tableStyles,numberingStyles){return{findParagraphStyleById:function(styleId){return paragraphStyles[styleId]},findCharacterStyleById:function(styleId){return characterStyles[styleId]},findTableStyleById:function(styleId){return tableStyles[styleId]},findNumberingStyleById:function(styleId){return numberingStyles[styleId]}}}function readStylesXml(root){var paragraphStyles={},characterStyles={},tableStyles={},numberingStyles={},styles={paragraph:paragraphStyles,character:characterStyles,table:tableStyles};return root.getElementsByTagName("w:style").forEach(function(styleElement){var style=readStyleElement(styleElement);if("numbering"===style.type)numberingStyles[style.styleId]=readNumberingStyleElement(styleElement);else{var styleSet=styles[style.type];styleSet&&(styleSet[style.styleId]=style)}}),new Styles(paragraphStyles,characterStyles,tableStyles,numberingStyles)}function readStyleElement(styleElement){var type=styleElement.attributes["w:type"],styleId=styleElement.attributes["w:styleId"],name=styleName(styleElement);return{type:type,styleId:styleId,name:name}}function styleName(styleElement){var nameElement=styleElement.first("w:name");return nameElement?nameElement.attributes["w:val"]:null}function readNumberingStyleElement(styleElement){var numId=styleElement.firstOrEmpty("w:pPr").firstOrEmpty("w:numPr").firstOrEmpty("w:numId").attributes["w:val"];return{numId:numId}}exports.readStylesXml=readStylesXml,exports.Styles=Styles,exports.defaultStyles=new Styles({},{}),Styles.EMPTY=new Styles({},{},{},{})},{}],16:[function(require,module,exports){function uriToZipEntryName(base,uri){return"/"===uri.charAt(0)?uri.substr(1):base+"/"+uri}function replaceFragment(uri,fragment){var hashIndex=uri.indexOf("#");return-1!==hashIndex&&(uri=uri.substring(0,hashIndex)),uri+"#"+fragment}exports.uriToZipEntryName=uriToZipEntryName,exports.replaceFragment=replaceFragment},{}],17:[function(require,module,exports){function nonFreshElement(tagName,attributes,children){return elementWithTag(htmlPaths.element(tagName,attributes,{fresh:!1}),children)}function freshElement(tagName,attributes,children){var tag=htmlPaths.element(tagName,attributes,{fresh:!0});return elementWithTag(tag,children)}function elementWithTag(tag,children){return{type:"element",tag:tag,children:children||[]}}function text(value){return{type:"text",value:value}}function isVoidElement(node){return 0===node.children.length&&voidTagNames[node.tag.tagName]}var htmlPaths=require("../styles/html-paths"),forceWrite={type:"forceWrite"};exports.freshElement=freshElement,exports.nonFreshElement=nonFreshElement,exports.elementWithTag=elementWithTag,exports.text=text,exports.forceWrite=forceWrite;var voidTagNames={br:!0,hr:!0,img:!0};exports.isVoidElement=isVoidElement},{"../styles/html-paths":28}],18:[function(require,module,exports){function write(writer,nodes){nodes.forEach(function(node){writeNode(writer,node)})}function writeNode(writer,node){toStrings[node.type](writer,node)}function generateElementString(writer,node){ast.isVoidElement(node)?writer.selfClosing(node.tag.tagName,node.tag.attributes):(writer.open(node.tag.tagName,node.tag.attributes),write(writer,node.children),writer.close(node.tag.tagName))}function generateTextString(writer,node){writer.text(node.value)}var ast=require("./ast");exports.freshElement=ast.freshElement,exports.nonFreshElement=ast.nonFreshElement,exports.elementWithTag=ast.elementWithTag,exports.text=ast.text,exports.forceWrite=ast.forceWrite,exports.simplify=require("./simplify");var toStrings={element:generateElementString,text:generateTextString,forceWrite:function(){}};exports.write=write},{"./ast":17,"./simplify":19}],19:[function(require,module,exports){function simplify(nodes){return collapse(removeEmpty(nodes))}function collapse(nodes){var children=[];return nodes.map(collapseNode).forEach(function(child){appendChild(children,child)}),children}function collapseNode(node){return collapsers[node.type](node)}function collapseElement(node){return ast.elementWithTag(node.tag,collapse(node.children))}function identity(value){return value}function appendChild(children,child){var lastChild=children[children.length-1];"element"===child.type&&!child.tag.fresh&&lastChild&&"element"===lastChild.type&&child.tag.matchesElement(lastChild.tag)?(child.tag.separator&&appendChild(lastChild.children,ast.text(child.tag.separator)),child.children.forEach(function(grandChild){appendChild(lastChild.children,grandChild)})):children.push(child)}function removeEmpty(nodes){return flatMap(nodes,function(node){return emptiers[node.type](node)})}function flatMap(values,func){return _.flatten(_.map(values,func),!0)}function neverEmpty(node){return[node]}function elementEmptier(element){var children=removeEmpty(element.children);return 0!==children.length||ast.isVoidElement(element)?[ast.elementWithTag(element.tag,children)]:[]}function textEmptier(node){return 0===node.value.length?[]:[node]}var _=require("underscore"),ast=require("./ast"),collapsers={element:collapseElement,text:identity,forceWrite:identity},emptiers={element:elementEmptier,text:textEmptier,forceWrite:neverEmpty};module.exports=simplify},{"./ast":17,underscore:103}],20:[function(require,module,exports){function imgElement(func){return function(element,messages){return promises.when(func(element)).then(function(result){var attributes={};return element.altText&&(attributes.alt=element.altText),_.extend(attributes,result),[Html.freshElement("img",attributes)]})}}var _=require("underscore"),promises=require("./promises"),Html=require("./html");exports.imgElement=imgElement,exports.inline=exports.imgElement,exports.dataUri=imgElement(function(element){return element.readAsBase64String().then(function(imageBuffer){return{src:"data:"+element.contentType+";base64,"+imageBuffer}})})},{"./html":18,"./promises":23,underscore:103}],21:[function(require,module,exports){(function(Buffer){function convertToHtml(input,options){return convert(input,options)}function convertToMarkdown(input,options){var markdownOptions=Object.create(options||{});return markdownOptions.outputFormat="markdown",convert(input,markdownOptions)}function convert(input,options){return options=readOptions(options),unzip.openZip(input).tap(function(docxFile){return docxStyleMap.readStyleMap(docxFile).then(function(styleMap){options.embeddedStyleMap=styleMap})}).then(function(docxFile){return docxReader.read(docxFile,input).then(function(documentResult){return documentResult.map(options.transformDocument)}).then(function(documentResult){return convertDocumentToHtml(documentResult,options)})})}function readEmbeddedStyleMap(input){return unzip.openZip(input).then(docxStyleMap.readStyleMap)}function convertDocumentToHtml(documentResult,options){var styleMapResult=parseStyleMap(options.readStyleMap()),parsedOptions=_.extend({},options,{styleMap:styleMapResult.value}),documentConverter=new DocumentConverter(parsedOptions);return documentResult.flatMapThen(function(document){return styleMapResult.flatMapThen(function(styleMap){return documentConverter.convertToHtml(document)})})}function parseStyleMap(styleMap){return Result.combine((styleMap||[]).map(readStyle)).map(function(styleMap){return styleMap.filter(function(styleMapping){return!!styleMapping})})}function extractRawText(input){return unzip.openZip(input).then(docxReader.read).then(function(documentResult){return documentResult.map(convertElementToRawText)})}function embedStyleMap(input,styleMap){return unzip.openZip(input).tap(function(docxFile){return docxStyleMap.writeStyleMap(docxFile,styleMap)}).then(function(docxFile){return docxFile.toArrayBuffer()}).then(function(arrayBuffer){return{toArrayBuffer:function(){return arrayBuffer},toBuffer:function(){return Buffer.from(arrayBuffer)}}})}var _=require("underscore"),docxReader=require("./docx/docx-reader"),docxStyleMap=require("./docx/style-map"),DocumentConverter=require("./document-to-html").DocumentConverter,convertElementToRawText=require("./raw-text").convertElementToRawText,readStyle=require("./style-reader").readStyle,readOptions=require("./options-reader").readOptions,unzip=require("./unzip"),Result=require("./results").Result;exports.convertToHtml=convertToHtml,exports.convertToMarkdown=convertToMarkdown,exports.convert=convert,exports.extractRawText=extractRawText,exports.images=require("./images"),exports.transforms=require("./transforms"),exports.underline=require("./underline"),exports.embedStyleMap=embedStyleMap,exports.readEmbeddedStyleMap=readEmbeddedStyleMap,exports.styleMapping=function(){throw new Error("Use a raw string instead of mammoth.styleMapping e.g. \"p[style-name='Title'] => h1\" instead of mammoth.styleMapping(\"p[style-name='Title'] => h1\")")}}).call(this,require("buffer").Buffer)},{"./document-to-html":3,"./docx/docx-reader":9,"./docx/style-map":14,"./images":20,"./options-reader":22,"./raw-text":24,"./results":25,"./style-reader":26,"./transforms":30,"./underline":31,"./unzip":2,buffer:83,underscore:103}],22:[function(require,module,exports){function readOptions(options){return options=options||{},_.extend({},standardOptions,options,{customStyleMap:readStyleMap(options.styleMap),readStyleMap:function(){var styleMap=this.customStyleMap;return this.includeEmbeddedStyleMap&&(styleMap=styleMap.concat(readStyleMap(this.embeddedStyleMap))),this.includeDefaultStyleMap&&(styleMap=styleMap.concat(defaultStyleMap)),styleMap}})}function readStyleMap(styleMap){return styleMap?_.isString(styleMap)?styleMap.split("\n").map(function(line){return line.trim()}).filter(function(line){return""!==line&&"#"!==line.charAt(0)}):styleMap:[]}function identity(value){return value}exports.readOptions=readOptions;var _=require("underscore"),defaultStyleMap=exports._defaultStyleMap=["p.Heading1 => h1:fresh","p.Heading2 => h2:fresh","p.Heading3 => h3:fresh","p.Heading4 => h4:fresh","p.Heading5 => h5:fresh","p.Heading6 => h6:fresh","p[style-name='Heading 1'] => h1:fresh","p[style-name='Heading 2'] => h2:fresh","p[style-name='Heading 3'] => h3:fresh","p[style-name='Heading 4'] => h4:fresh","p[style-name='Heading 5'] => h5:fresh","p[style-name='Heading 6'] => h6:fresh","p[style-name='heading 1'] => h1:fresh","p[style-name='heading 2'] => h2:fresh","p[style-name='heading 3'] => h3:fresh","p[style-name='heading 4'] => h4:fresh","p[style-name='heading 5'] => h5:fresh","p[style-name='heading 6'] => h6:fresh","r[style-name='Strong'] => strong","p[style-name='footnote text'] => p:fresh","r[style-name='footnote reference'] =>","p[style-name='endnote text'] => p:fresh","r[style-name='endnote reference'] =>","p[style-name='annotation text'] => p:fresh","r[style-name='annotation reference'] =>","p[style-name='Footnote'] => p:fresh","r[style-name='Footnote anchor'] =>","p[style-name='Endnote'] => p:fresh","r[style-name='Endnote anchor'] =>","p:unordered-list(1) => ul > li:fresh","p:unordered-list(2) => ul|ol > li > ul > li:fresh","p:unordered-list(3) => ul|ol > li > ul|ol > li > ul > li:fresh","p:unordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh","p:unordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh","p:ordered-list(1) => ol > li:fresh","p:ordered-list(2) => ul|ol > li > ol > li:fresh","p:ordered-list(3) => ul|ol > li > ul|ol > li > ol > li:fresh","p:ordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh","p:ordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh","r[style-name='Hyperlink'] =>","p[style-name='Normal'] => p:fresh"],standardOptions=exports._standardOptions={transformDocument:identity,includeDefaultStyleMap:!0,includeEmbeddedStyleMap:!0}},{underscore:103}],23:[function(require,module,exports){function defer(){var resolve,reject,promise=new bluebird.Promise(function(resolveArg,rejectArg){resolve=resolveArg,reject=rejectArg});return{resolve:resolve,reject:reject,promise:promise}}var _=require("underscore"),bluebird=require("bluebird/js/release/promise")();exports.defer=defer,exports.when=bluebird.resolve,exports.resolve=bluebird.resolve,exports.all=bluebird.all,exports.props=bluebird.props,exports.reject=bluebird.reject,exports.promisify=bluebird.promisify,exports.mapSeries=bluebird.mapSeries,exports.attempt=bluebird.attempt,exports.nfcall=function(func){var args=Array.prototype.slice.call(arguments,1),promisedFunc=bluebird.promisify(func);return promisedFunc.apply(null,args)},bluebird.prototype.fail=bluebird.prototype.caught,bluebird.prototype.also=function(func){return this.then(function(value){var returnValue=_.extend({},value,func(value));return bluebird.props(returnValue)})}},{"bluebird/js/release/promise":68,underscore:103}],24:[function(require,module,exports){function convertElementToRawText(element){if("text"===element.type)return element.value;if(element.type===documents.types.tab)return" ";var tail="paragraph"===element.type?"\n\n":"";return(element.children||[]).map(convertElementToRawText).join("")+tail}var documents=require("./documents");exports.convertElementToRawText=convertElementToRawText},{"./documents":4}],25:[function(require,module,exports){function Result(value,messages){this.value=value,this.messages=messages||[]}function success(value){return new Result(value,[])}function warning(message){return{type:"warning",message:message}}function error(exception){return{type:"error",message:exception.message,error:exception}}function combineMessages(results){var messages=[];return _.flatten(_.pluck(results,"messages"),!0).forEach(function(message){containsMessage(messages,message)||messages.push(message)}),messages}function containsMessage(messages,message){return void 0!==_.find(messages,isSameMessage.bind(null,message))}function isSameMessage(first,second){return first.type===second.type&&first.message===second.message}var _=require("underscore");exports.Result=Result,exports.success=success,exports.warning=warning,exports.error=error,Result.prototype.map=function(func){return new Result(func(this.value),this.messages)},Result.prototype.flatMap=function(func){var funcResult=func(this.value);return new Result(funcResult.value,combineMessages([this,funcResult]))},Result.prototype.flatMapThen=function(func){var that=this;return func(this.value).then(function(otherResult){return new Result(otherResult.value,combineMessages([that,otherResult]))})},Result.combine=function(results){var values=_.flatten(_.pluck(results,"value")),messages=combineMessages(results);return new Result(values,messages)}},{underscore:103}],26:[function(require,module,exports){function readStyle(string){return parseString(styleRule,string)}function createStyleRule(){return lop.rules.sequence(lop.rules.sequence.capture(documentMatcherRule()),lop.rules.tokenOfType("whitespace"),lop.rules.tokenOfType("arrow"),lop.rules.sequence.capture(lop.rules.optional(lop.rules.sequence(lop.rules.tokenOfType("whitespace"),lop.rules.sequence.capture(htmlPathRule())).head())),lop.rules.tokenOfType("end")).map(function(documentMatcher,htmlPath){return{from:documentMatcher,to:htmlPath.valueOrElse(htmlPaths.empty)}})}function readDocumentMatcher(string){return parseString(documentMatcherRule(),string)}function documentMatcherRule(){function createMatcherSuffixesRule(rules){var matcherSuffix=lop.rules.firstOf.apply(lop.rules.firstOf,["matcher suffix"].concat(rules)),matcherSuffixes=lop.rules.zeroOrMore(matcherSuffix);return lop.rules.then(matcherSuffixes,function(suffixes){var matcherOptions={};return suffixes.forEach(function(suffix){_.extend(matcherOptions,suffix)}),matcherOptions})}var sequence=lop.rules.sequence,identifierToConstant=function(identifier,constant){ +return lop.rules.then(lop.rules.token("identifier",identifier),function(){return constant})},paragraphRule=identifierToConstant("p",documentMatchers.paragraph),runRule=identifierToConstant("r",documentMatchers.run),elementTypeRule=lop.rules.firstOf("p or r or table",paragraphRule,runRule),styleIdRule=lop.rules.then(classRule,function(styleId){return{styleId:styleId}}),styleNameMatcherRule=lop.rules.firstOf("style name matcher",lop.rules.then(lop.rules.sequence(lop.rules.tokenOfType("equals"),lop.rules.sequence.cut(),lop.rules.sequence.capture(stringRule)).head(),function(styleName){return{styleName:documentMatchers.equalTo(styleName)}}),lop.rules.then(lop.rules.sequence(lop.rules.tokenOfType("startsWith"),lop.rules.sequence.cut(),lop.rules.sequence.capture(stringRule)).head(),function(styleName){return{styleName:documentMatchers.startsWith(styleName)}})),styleNameRule=lop.rules.sequence(lop.rules.tokenOfType("open-square-bracket"),lop.rules.sequence.cut(),lop.rules.token("identifier","style-name"),lop.rules.sequence.capture(styleNameMatcherRule),lop.rules.tokenOfType("close-square-bracket")).head(),listTypeRule=lop.rules.firstOf("list type",identifierToConstant("ordered-list",{isOrdered:!0}),identifierToConstant("unordered-list",{isOrdered:!1})),listRule=sequence(lop.rules.tokenOfType("colon"),sequence.capture(listTypeRule),sequence.cut(),lop.rules.tokenOfType("open-paren"),sequence.capture(integerRule),lop.rules.tokenOfType("close-paren")).map(function(listType,levelNumber){return{list:{isOrdered:listType.isOrdered,levelIndex:levelNumber-1}}}),paragraphOrRun=sequence(sequence.capture(elementTypeRule),sequence.capture(createMatcherSuffixesRule([styleIdRule,styleNameRule,listRule]))).map(function(createMatcher,matcherOptions){return createMatcher(matcherOptions)}),table=sequence(lop.rules.token("identifier","table"),sequence.capture(createMatcherSuffixesRule([styleIdRule,styleNameRule]))).map(function(options){return documentMatchers.table(options)}),bold=identifierToConstant("b",documentMatchers.bold),italic=identifierToConstant("i",documentMatchers.italic),underline=identifierToConstant("u",documentMatchers.underline),strikethrough=identifierToConstant("strike",documentMatchers.strikethrough),allCaps=identifierToConstant("all-caps",documentMatchers.allCaps),smallCaps=identifierToConstant("small-caps",documentMatchers.smallCaps),commentReference=identifierToConstant("comment-reference",documentMatchers.commentReference),breakMatcher=sequence(lop.rules.token("identifier","br"),sequence.cut(),lop.rules.tokenOfType("open-square-bracket"),lop.rules.token("identifier","type"),lop.rules.tokenOfType("equals"),sequence.capture(stringRule),lop.rules.tokenOfType("close-square-bracket")).map(function(breakType){switch(breakType){case"line":return documentMatchers.lineBreak;case"page":return documentMatchers.pageBreak;case"column":return documentMatchers.columnBreak}});return lop.rules.firstOf("element type",paragraphOrRun,table,bold,italic,underline,strikethrough,allCaps,smallCaps,commentReference,breakMatcher)}function readHtmlPath(string){return parseString(htmlPathRule(),string)}function htmlPathRule(){var capture=lop.rules.sequence.capture,whitespaceRule=lop.rules.tokenOfType("whitespace"),freshRule=lop.rules.then(lop.rules.optional(lop.rules.sequence(lop.rules.tokenOfType("colon"),lop.rules.token("identifier","fresh"))),function(option){return option.map(function(){return!0}).valueOrElse(!1)}),separatorRule=lop.rules.then(lop.rules.optional(lop.rules.sequence(lop.rules.tokenOfType("colon"),lop.rules.token("identifier","separator"),lop.rules.tokenOfType("open-paren"),capture(stringRule),lop.rules.tokenOfType("close-paren")).head()),function(option){return option.valueOrElse("")}),tagNamesRule=lop.rules.oneOrMoreWithSeparator(identifierRule,lop.rules.tokenOfType("choice")),styleElementRule=lop.rules.sequence(capture(tagNamesRule),capture(lop.rules.zeroOrMore(classRule)),capture(freshRule),capture(separatorRule)).map(function(tagName,classNames,fresh,separator){var attributes={},options={};return classNames.length>0&&(attributes["class"]=classNames.join(" ")),fresh&&(options.fresh=!0),separator&&(options.separator=separator),htmlPaths.element(tagName,attributes,options)});return lop.rules.firstOf("html path",lop.rules.then(lop.rules.tokenOfType("bang"),function(){return htmlPaths.ignore}),lop.rules.then(lop.rules.zeroOrMoreWithSeparator(styleElementRule,lop.rules.sequence(whitespaceRule,lop.rules.tokenOfType("gt"),whitespaceRule)),htmlPaths.elements))}function decodeEscapeSequences(value){return value.replace(/\\(.)/g,function(match,code){return escapeSequences[code]||code})}function parseString(rule,string){var tokens=tokenise(string),parser=lop.Parser(),parseResult=parser.parseTokens(rule,tokens);return parseResult.isSuccess()?results.success(parseResult.value()):new results.Result(null,[results.warning(describeFailure(string,parseResult))])}function describeFailure(input,parseResult){return"Did not understand this style mapping, so ignored it: "+input+"\n"+parseResult.errors().map(describeError).join("\n")}function describeError(error){return"Error was at character number "+error.characterNumber()+": Expected "+error.expected+" but got "+error.actual}var _=require("underscore"),lop=require("lop"),documentMatchers=require("./styles/document-matchers"),htmlPaths=require("./styles/html-paths"),tokenise=require("./styles/parser/tokeniser").tokenise,results=require("./results");exports.readHtmlPath=readHtmlPath,exports.readDocumentMatcher=readDocumentMatcher,exports.readStyle=readStyle;var identifierRule=lop.rules.then(lop.rules.tokenOfType("identifier"),decodeEscapeSequences),integerRule=lop.rules.tokenOfType("integer"),stringRule=lop.rules.then(lop.rules.tokenOfType("string"),decodeEscapeSequences),escapeSequences={n:"\n",r:"\r",t:" "},classRule=lop.rules.sequence(lop.rules.tokenOfType("dot"),lop.rules.sequence.cut(),lop.rules.sequence.capture(identifierRule)).head(),styleRule=createStyleRule()},{"./results":25,"./styles/document-matchers":27,"./styles/html-paths":28,"./styles/parser/tokeniser":29,lop:89,underscore:103}],27:[function(require,module,exports){function paragraph(options){return new Matcher("paragraph",options)}function run(options){return new Matcher("run",options)}function table(options){return new Matcher("table",options)}function Matcher(elementType,options){options=options||{},this._elementType=elementType,this._styleId=options.styleId,this._styleName=options.styleName,options.list&&(this._listIndex=options.list.levelIndex,this._listIsOrdered=options.list.isOrdered)}function isList(element,levelIndex,isOrdered){return element.numbering&&element.numbering.level==levelIndex&&element.numbering.isOrdered==isOrdered}function equalTo(value){return{operator:operatorEqualTo,operand:value}}function startsWith(value){return{operator:operatorStartsWith,operand:value}}function operatorEqualTo(first,second){return first.toUpperCase()===second.toUpperCase()}function operatorStartsWith(first,second){return 0===second.toUpperCase().indexOf(first.toUpperCase())}exports.paragraph=paragraph,exports.run=run,exports.table=table,exports.bold=new Matcher("bold"),exports.italic=new Matcher("italic"),exports.underline=new Matcher("underline"),exports.strikethrough=new Matcher("strikethrough"),exports.allCaps=new Matcher("allCaps"),exports.smallCaps=new Matcher("smallCaps"),exports.commentReference=new Matcher("commentReference"),exports.lineBreak=new Matcher("break",{breakType:"line"}),exports.pageBreak=new Matcher("break",{breakType:"page"}),exports.columnBreak=new Matcher("break",{breakType:"column"}),exports.equalTo=equalTo,exports.startsWith=startsWith,Matcher.prototype.matches=function(element){return element.type===this._elementType&&(void 0===this._styleId||element.styleId===this._styleId)&&(void 0===this._styleName||element.styleName&&this._styleName.operator(this._styleName.operand,element.styleName))&&(void 0===this._listIndex||isList(element,this._listIndex,this._listIsOrdered))&&(void 0===this._breakType||this._breakType===element.breakType)}},{}],28:[function(require,module,exports){function topLevelElement(tagName,attributes){return elements([element(tagName,attributes,{fresh:!0})])}function elements(elementStyles){return new HtmlPath(elementStyles.map(function(elementStyle){return _.isString(elementStyle)?element(elementStyle):elementStyle}))}function HtmlPath(elements){this._elements=elements}function element(tagName,attributes,options){return options=options||{},new Element(tagName,attributes,options)}function Element(tagName,attributes,options){var tagNames={};_.isArray(tagName)?(tagName.forEach(function(tagName){tagNames[tagName]=!0}),tagName=tagName[0]):tagNames[tagName]=!0,this.tagName=tagName,this.tagNames=tagNames,this.attributes=attributes||{},this.fresh=options.fresh,this.separator=options.separator}var _=require("underscore"),html=require("../html");exports.topLevelElement=topLevelElement,exports.elements=elements,exports.element=element,HtmlPath.prototype.wrap=function(children){for(var result=children(),index=this._elements.length-1;index>=0;index--)result=this._elements[index].wrapNodes(result);return result},Element.prototype.matchesElement=function(element){return this.tagNames[element.tagName]&&_.isEqual(this.attributes||{},element.attributes||{})},Element.prototype.wrap=function(generateNodes){return this.wrapNodes(generateNodes())},Element.prototype.wrapNodes=function(nodes){return[html.elementWithTag(this,nodes)]},exports.empty=elements([]),exports.ignore={wrap:function(){return[]}}},{"../html":18,underscore:103}],29:[function(require,module,exports){function tokenise(string){var identifierCharacter="(?:[a-zA-Z\\-_]|\\\\.)",tokeniser=new RegexTokeniser([{name:"identifier",regex:new RegExp("("+identifierCharacter+"(?:"+identifierCharacter+"|[0-9])*)")},{name:"dot",regex:/\./},{name:"colon",regex:/:/},{name:"gt",regex:/>/},{name:"whitespace",regex:/\s+/},{name:"arrow",regex:/=>/},{name:"equals",regex:/=/},{name:"startsWith",regex:/\^=/},{name:"open-paren",regex:/\(/},{name:"close-paren",regex:/\)/},{name:"open-square-bracket",regex:/\[/},{name:"close-square-bracket",regex:/\]/},{name:"string",regex:new RegExp(stringPrefix+"'")},{name:"unterminated-string",regex:new RegExp(stringPrefix)},{name:"integer",regex:/([0-9]+)/},{name:"choice",regex:/\|/},{name:"bang",regex:/(!)/}]);return tokeniser.tokenise(string)}var lop=require("lop"),RegexTokeniser=lop.RegexTokeniser;exports.tokenise=tokenise;var stringPrefix="'((?:\\\\.|[^'])*)"},{lop:89}],30:[function(require,module,exports){function paragraph(transform){return elementsOfType("paragraph",transform)}function run(transform){return elementsOfType("run",transform)}function elementsOfType(elementType,transform){return elements(function(element){return element.type===elementType?transform(element):element})}function elements(transform){return function transformElement(element){if(element.children){var children=_.map(element.children,transformElement);element=_.extend(element,{children:children})}return transform(element)}}function getDescendantsOfType(element,type){return getDescendants(element).filter(function(descendant){return descendant.type===type})}function getDescendants(element){var descendants=[];return visitDescendants(element,function(descendant){descendants.push(descendant)}),descendants}function visitDescendants(element,visit){element.children&&element.children.forEach(function(child){visitDescendants(child,visit),visit(child)})}var _=require("underscore");exports.paragraph=paragraph,exports.run=run,exports._elements=elements,exports.getDescendantsOfType=getDescendantsOfType,exports.getDescendants=getDescendants},{underscore:103}],31:[function(require,module,exports){function element(name){return function(html){return Html.elementWithTag(htmlPaths.element(name),[html])}}var htmlPaths=require("./styles/html-paths"),Html=require("./html");exports.element=element},{"./html":18,"./styles/html-paths":28}],32:[function(require,module,exports){function writer(options){return options=options||{},options.prettyPrint?prettyWriter():simpleWriter()}function prettyWriter(){function open(tagName,attributes){indentedElements[tagName]&&indent(),stack.push(tagName),writer.open(tagName,attributes),indentedElements[tagName]&&indentationLevel++,start=!1}function close(tagName){indentedElements[tagName]&&(indentationLevel--,indent()),stack.pop(),writer.close(tagName)}function text(value){startText();var text=isInPre()?value:value.replace("\n","\n"+indentation);writer.text(text)}function selfClosing(tagName,attributes){indent(),writer.selfClosing(tagName,attributes)}function insideIndentedElement(){return 0===stack.length||indentedElements[stack[stack.length-1]]}function startText(){inText||(indent(),inText=!0)}function indent(){if(inText=!1,!start&&insideIndentedElement()&&!isInPre()){writer._append("\n");for(var i=0;indentationLevel>i;i++)writer._append(indentation)}}function isInPre(){return _.some(stack,function(tagName){return"pre"===tagName})}var indentationLevel=0,indentation=" ",stack=[],start=!0,inText=!1,writer=simpleWriter();return{asString:writer.asString,open:open,close:close,text:text,selfClosing:selfClosing}}function simpleWriter(){function open(tagName,attributes){var attributeString=generateAttributeString(attributes);fragments.push("<"+tagName+attributeString+">")}function close(tagName){fragments.push("")}function selfClosing(tagName,attributes){var attributeString=generateAttributeString(attributes);fragments.push("<"+tagName+attributeString+" />")}function generateAttributeString(attributes){return _.map(attributes,function(value,key){return" "+key+'="'+escapeHtmlAttribute(value)+'"'}).join("")}function text(value){fragments.push(escapeHtmlText(value))}function append(html){fragments.push(html)}function asString(){return fragments.join("")}var fragments=[];return{asString:asString,open:open,close:close,text:text,selfClosing:selfClosing,_append:append}}function escapeHtmlText(value){return value.replace(/&/g,"&").replace(//g,">")}function escapeHtmlAttribute(value){return value.replace(/&/g,"&").replace(/"/g,""").replace(//g,">")}var _=require("underscore");exports.writer=writer;var indentedElements={div:!0,p:!0,ul:!0,li:!0}},{underscore:103}],33:[function(require,module,exports){function writer(options){return options=options||{},"markdown"===options.outputFormat?markdownWriter.writer():htmlWriter.writer(options)}var htmlWriter=require("./html-writer"),markdownWriter=require("./markdown-writer");exports.writer=writer},{"./html-writer":32,"./markdown-writer":34}],34:[function(require,module,exports){function symmetricMarkdownElement(end){return markdownElement(end,end)}function markdownElement(start,end){return function(){return{start:start,end:end}}}function markdownLink(attributes){var href=attributes.href||"";return href?{start:"[",end:"]("+href+")",anchorPosition:"before"}:{}}function markdownImage(attributes){var src=attributes.src||"",altText=attributes.alt||"";return src||altText?{start:"!["+altText+"]("+src+")"}:{}}function markdownList(options){return function(attributes,list){return{start:list?"\n":"",end:list?"":"\n",list:{isOrdered:options.isOrdered,indent:list?list.indent+1:0,count:0}}}}function markdownListItem(attributes,list,listItem){list=list||{indent:0,isOrdered:!1,count:0},list.count++,listItem.hasClosed=!1;var bullet=list.isOrdered?list.count+".":"-",start=repeatString(" ",list.indent)+bullet+" ";return{start:start,end:function(){return listItem.hasClosed?void 0:(listItem.hasClosed=!0,"\n")}}}function repeatString(value,count){return new Array(count+1).join(value)}function markdownWriter(){function open(tagName,attributes){attributes=attributes||{};var createElement=htmlToMarkdown[tagName]||function(){return{}},element=createElement(attributes,list,listItem);elementStack.push({end:element.end,list:list}),element.list&&(list=element.list);var anchorBeforeStart="before"===element.anchorPosition;anchorBeforeStart&&writeAnchor(attributes),fragments.push(element.start||""),anchorBeforeStart||writeAnchor(attributes)}function writeAnchor(attributes){attributes.id&&fragments.push('')}function close(tagName){var element=elementStack.pop();list=element.list;var end=_.isFunction(element.end)?element.end():element.end;fragments.push(end||"")}function selfClosing(tagName,attributes){open(tagName,attributes),close(tagName)}function text(value){fragments.push(escapeMarkdown(value))}function asString(){return fragments.join("")}var fragments=[],elementStack=[],list=null,listItem={};return{asString:asString,open:open,close:close,text:text,selfClosing:selfClosing}}function escapeMarkdown(value){return value.replace(/\\/g,"\\\\").replace(/([\`\*_\{\}\[\]\(\)\#\+\-\.\!])/g,"\\$1")}var _=require("underscore"),htmlToMarkdown={p:markdownElement("","\n\n"),br:markdownElement(""," \n"),ul:markdownList({isOrdered:!1}),ol:markdownList({isOrdered:!0}),li:markdownListItem,strong:symmetricMarkdownElement("__"),em:symmetricMarkdownElement("*"),a:markdownLink,img:markdownImage};!function(){for(var i=1;6>=i;i++)htmlToMarkdown["h"+i]=markdownElement(repeatString("#",i)+" ","\n\n")}(),exports.writer=markdownWriter},{underscore:103}],35:[function(require,module,exports){var nodes=require("./nodes");exports.Element=nodes.Element,exports.element=nodes.element,exports.text=nodes.text,exports.readString=require("./reader").readString,exports.writeString=require("./writer").writeString},{"./nodes":36,"./reader":37,"./writer":38}],36:[function(require,module,exports){function Element(name,attributes,children){this.type="element",this.name=name,this.attributes=attributes||{},this.children=children||[]}function toElementList(array){return _.extend(array,elementListPrototype)}var _=require("underscore");exports.Element=Element,exports.element=function(name,attributes,children){return new Element(name,attributes,children)},exports.text=function(value){return{type:"text",value:value}};var emptyElement={first:function(){return null},firstOrEmpty:function(){return emptyElement},attributes:{}};Element.prototype.first=function(name){return _.find(this.children,function(child){return child.name===name})},Element.prototype.firstOrEmpty=function(name){return this.first(name)||emptyElement},Element.prototype.getElementsByTagName=function(name){var elements=_.filter(this.children,function(child){return child.name===name});return toElementList(elements)},Element.prototype.text=function(){if(0===this.children.length)return"";if(1!==this.children.length||"text"!==this.children[0].type)throw new Error("Not implemented");return this.children[0].value};var elementListPrototype={getElementsByTagName:function(name){return toElementList(_.flatten(this.map(function(element){return element.getElementsByTagName(name)},!0)))}}},{underscore:103}],37:[function(require,module,exports){function readString(xmlString,namespaceMap){function convertNode(node){switch(node.nodeType){case Node.ELEMENT_NODE:return convertElement(node);case Node.TEXT_NODE:return nodes.text(node.nodeValue)}}function convertElement(element){var convertedName=convertName(element),convertedChildren=[];_.forEach(element.childNodes,function(childNode){var convertedNode=convertNode(childNode);convertedNode&&convertedChildren.push(convertedNode)});var convertedAttributes={};return _.forEach(element.attributes,function(attribute){convertedAttributes[convertName(attribute)]=attribute.value}),new Element(convertedName,convertedAttributes,convertedChildren)}function convertName(node){if(node.namespaceURI){var prefix,mappedPrefix=namespaceMap[node.namespaceURI];return prefix=mappedPrefix?mappedPrefix+":":"{"+node.namespaceURI+"}",prefix+node.localName}return node.localName}namespaceMap=namespaceMap||{};try{var document=xmldom.parseFromString(xmlString,"text/xml")}catch(error){return promises.reject(error)}return"parsererror"===document.documentElement.tagName?promises.resolve(new Error(document.documentElement.textContent)):promises.resolve(convertNode(document.documentElement))}var promises=require("../promises"),_=require("underscore"),xmldom=require("./xmldom"),nodes=require("./nodes"),Element=nodes.Element;exports.readString=readString;var Node=xmldom.Node},{"../promises":23,"./nodes":36,"./xmldom":39,underscore:103}],38:[function(require,module,exports){function writeString(root,namespaces){function writeNode(builder,node){return nodeWriters[node.type](builder,node)}function writeElement(builder,element){var elementBuilder=builder.element(mapElementName(element.name),element.attributes);element.children.forEach(function(child){writeNode(elementBuilder,child)})}function mapElementName(name){var longFormMatch=/^\{(.*)\}(.*)$/.exec(name);if(longFormMatch){var prefix=uriToPrefix[longFormMatch[1]];return prefix+(""===prefix?"":":")+longFormMatch[2]}return name}function writeDocument(root){var builder=xmlbuilder.create(mapElementName(root.name),{version:"1.0",encoding:"UTF-8",standalone:!0});return _.forEach(namespaces,function(uri,prefix){var key="xmlns"+(""===prefix?"":":"+prefix);builder.attribute(key,uri)}),root.children.forEach(function(child){writeNode(builder,child)}),builder.end()}var uriToPrefix=_.invert(namespaces),nodeWriters={element:writeElement,text:writeTextNode};return writeDocument(root)}function writeTextNode(builder,node){builder.text(node.value)}var _=require("underscore"),xmlbuilder=require("xmlbuilder");exports.writeString=writeString},{underscore:103,xmlbuilder:128}],39:[function(require,module,exports){function parseFromString(string){var error=null,domParser=new xmldom.DOMParser({errorHandler:function(level,message){error={level:level,message:message}}}),document=domParser.parseFromString(string);if(null===error)return document;throw new Error(error.level+": "+error.message)}var xmldom=require("@xmldom/xmldom"),dom=require("@xmldom/xmldom/lib/dom");exports.parseFromString=parseFromString,exports.Node=dom.Node},{"@xmldom/xmldom":45,"@xmldom/xmldom/lib/dom":43}],40:[function(require,module,exports){function openArrayBuffer(arrayBuffer){return JSZip.loadAsync(arrayBuffer).then(function(zipFile){function exists(name){return null!==zipFile.file(name)}function read(name,encoding){return zipFile.file(name).async("uint8array").then(function(array){if("base64"===encoding)return base64js.fromByteArray(array);if(encoding){var decoder=new TextDecoder(encoding);return decoder.decode(array)}return array})}function write(name,contents){zipFile.file(name,contents)}function toArrayBuffer(){return zipFile.generateAsync({type:"arraybuffer"})}return{exists:exists,read:read,write:write,toArrayBuffer:toArrayBuffer}})}function splitPath(path){var lastIndex=path.lastIndexOf("/");return-1===lastIndex?{dirname:"",basename:path}:{dirname:path.substring(0,lastIndex),basename:path.substring(lastIndex+1)}}function joinPath(){var nonEmptyPaths=Array.prototype.filter.call(arguments,function(path){return path}),relevantPaths=[];return nonEmptyPaths.forEach(function(path){/^\//.test(path)?relevantPaths=[path]:relevantPaths.push(path)}),relevantPaths.join("/")}var base64js=require("base64-js"),JSZip=require("jszip");exports.openArrayBuffer=openArrayBuffer,exports.splitPath=splitPath,exports.joinPath=joinPath},{"base64-js":47,jszip:88}],41:[function(require,module,exports){"use strict";function find(list,predicate,ac){if(void 0===ac&&(ac=Array.prototype),list&&"function"==typeof ac.find)return ac.find.call(list,predicate);for(var i=0;i=start+length||start?new java.lang.String(chars,start,length)+"":chars}function appendElement(hander,node){hander.currentElement?hander.currentElement.appendChild(node):hander.doc.appendChild(node)}var conventions=require("./conventions"),dom=require("./dom"),entities=require("./entities"),sax=require("./sax"),DOMImplementation=dom.DOMImplementation,NAMESPACE=conventions.NAMESPACE,ParseError=sax.ParseError,XMLReader=sax.XMLReader;DOMParser.prototype.parseFromString=function(source,mimeType){var options=this.options,sax=new XMLReader,domBuilder=options.domBuilder||new DOMHandler,errorHandler=options.errorHandler,locator=options.locator,defaultNSMap=options.xmlns||{},isHTML=/\/x?html?$/.test(mimeType),entityMap=isHTML?entities.HTML_ENTITIES:entities.XML_ENTITIES;locator&&domBuilder.setDocumentLocator(locator),sax.errorHandler=buildErrorHandler(errorHandler,domBuilder,locator),sax.domBuilder=options.domBuilder||domBuilder,isHTML&&(defaultNSMap[""]=NAMESPACE.HTML),defaultNSMap.xml=defaultNSMap.xml||NAMESPACE.XML;var normalize=options.normalizeLineEndings||normalizeLineEndings;return source&&"string"==typeof source?sax.parse(normalize(source),defaultNSMap,entityMap):sax.errorHandler.error("invalid doc source"),domBuilder.doc},DOMHandler.prototype={startDocument:function(){this.doc=(new DOMImplementation).createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(namespaceURI,localName,qName,attrs){var doc=this.doc,el=doc.createElementNS(namespaceURI,qName||localName),len=attrs.length;appendElement(this,el),this.currentElement=el,this.locator&&position(this.locator,el);for(var i=0;len>i;i++){var namespaceURI=attrs.getURI(i),value=attrs.getValue(i),qName=attrs.getQName(i),attr=doc.createAttributeNS(namespaceURI,qName);this.locator&&position(attrs.getLocator(i),attr),attr.value=attr.nodeValue=value,el.setAttributeNode(attr)}},endElement:function(namespaceURI,localName,qName){var current=this.currentElement;current.tagName;this.currentElement=current.parentNode},startPrefixMapping:function(prefix,uri){},endPrefixMapping:function(prefix){},processingInstruction:function(target,data){var ins=this.doc.createProcessingInstruction(target,data);this.locator&&position(this.locator,ins),appendElement(this,ins)},ignorableWhitespace:function(ch,start,length){},characters:function(chars,start,length){if(chars=_toString.apply(this,arguments)){if(this.cdata)var charNode=this.doc.createCDATASection(chars);else var charNode=this.doc.createTextNode(chars);this.currentElement?this.currentElement.appendChild(charNode):/^\s*$/.test(chars)&&this.doc.appendChild(charNode),this.locator&&position(this.locator,charNode)}},skippedEntity:function(name){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(locator){(this.locator=locator)&&(locator.lineNumber=0)},comment:function(chars,start,length){chars=_toString.apply(this,arguments);var comm=this.doc.createComment(chars);this.locator&&position(this.locator,comm),appendElement(this,comm)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(name,publicId,systemId){var impl=this.doc.implementation;if(impl&&impl.createDocumentType){var dt=impl.createDocumentType(name,publicId,systemId);this.locator&&position(this.locator,dt),appendElement(this,dt),this.doc.doctype=dt}},warning:function(error){console.warn("[xmldom warning] "+error,_locator(this.locator))},error:function(error){console.error("[xmldom error] "+error,_locator(this.locator))},fatalError:function(error){throw new ParseError(error,this.locator)}},"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(key){DOMHandler.prototype[key]=function(){return null}}),exports.__DOMHandler=DOMHandler,exports.normalizeLineEndings=normalizeLineEndings,exports.DOMParser=DOMParser},{"./conventions":41,"./dom":43,"./entities":44,"./sax":46}],43:[function(require,module,exports){function notEmptyString(input){return""!==input}function splitOnASCIIWhitespace(input){return input?input.split(/[\t\n\f\r ]+/).filter(notEmptyString):[]}function orderedSetReducer(current,element){return current.hasOwnProperty(element)||(current[element]=!0),current}function toOrderedSet(input){if(!input)return[];var list=splitOnASCIIWhitespace(input);return Object.keys(list.reduce(orderedSetReducer,{}))}function arrayIncludes(list){return function(element){return list&&-1!==list.indexOf(element)}}function copy(src,dest){for(var p in src)Object.prototype.hasOwnProperty.call(src,p)&&(dest[p]=src[p])}function _extends(Class,Super){function t(){}var pt=Class.prototype;pt instanceof Super||(t.prototype=Super.prototype,t=new t,copy(pt,t),Class.prototype=pt=t),pt.constructor!=Class&&("function"!=typeof Class&&console.error("unknown Class:"+Class),pt.constructor=Class)}function DOMException(code,message){if(message instanceof Error)var error=message;else error=this,Error.call(this,ExceptionMessage[code]),this.message=ExceptionMessage[code],Error.captureStackTrace&&Error.captureStackTrace(this,DOMException);return error.code=code,message&&(this.message=this.message+": "+message),error}function NodeList(){}function LiveNodeList(node,refresh){this._node=node,this._refresh=refresh,_updateLiveList(this)}function _updateLiveList(list){var inc=list._node._inc||list._node.ownerDocument._inc;if(list._inc!=inc){var ls=list._refresh(list._node);__set__(list,"length",ls.length),copy(ls,list),list._inc=inc}}function NamedNodeMap(){}function _findNodeIndex(list,node){for(var i=list.length;i--;)if(list[i]===node)return i}function _addNamedNode(el,list,newAttr,oldAttr){if(oldAttr?list[_findNodeIndex(list,oldAttr)]=newAttr:list[list.length++]=newAttr,el){newAttr.ownerElement=el;var doc=el.ownerDocument;doc&&(oldAttr&&_onRemoveAttribute(doc,el,oldAttr),_onAddAttribute(doc,el,newAttr))}}function _removeNamedNode(el,list,attr){var i=_findNodeIndex(list,attr);if(!(i>=0))throw new DOMException(NOT_FOUND_ERR,new Error(el.tagName+"@"+attr));for(var lastIndex=list.length-1;lastIndex>i;)list[i]=list[++i];if(list.length=lastIndex,el){var doc=el.ownerDocument;doc&&(_onRemoveAttribute(doc,el,attr),attr.ownerElement=null)}}function DOMImplementation(){} +function Node(){}function _xmlEncoder(c){return"<"==c&&"<"||">"==c&&">"||"&"==c&&"&"||'"'==c&&"""||"&#"+c.charCodeAt()+";"}function _visitNode(node,callback){if(callback(node))return!0;if(node=node.firstChild)do if(_visitNode(node,callback))return!0;while(node=node.nextSibling)}function Document(){this.ownerDocument=this}function _onAddAttribute(doc,el,newAttr){doc&&doc._inc++;var ns=newAttr.namespaceURI;ns===NAMESPACE.XMLNS&&(el._nsMap[newAttr.prefix?newAttr.localName:""]=newAttr.value)}function _onRemoveAttribute(doc,el,newAttr,remove){doc&&doc._inc++;var ns=newAttr.namespaceURI;ns===NAMESPACE.XMLNS&&delete el._nsMap[newAttr.prefix?newAttr.localName:""]}function _onUpdateChild(doc,el,newChild){if(doc&&doc._inc){doc._inc++;var cs=el.childNodes;if(newChild)cs[cs.length++]=newChild;else{for(var child=el.firstChild,i=0;child;)cs[i++]=child,child=child.nextSibling;cs.length=i,delete cs[cs.length]}}}function _removeChild(parentNode,child){var previous=child.previousSibling,next=child.nextSibling;return previous?previous.nextSibling=next:parentNode.firstChild=next,next?next.previousSibling=previous:parentNode.lastChild=previous,child.parentNode=null,child.previousSibling=null,child.nextSibling=null,_onUpdateChild(parentNode.ownerDocument,parentNode),child}function hasValidParentNodeType(node){return node&&(node.nodeType===Node.DOCUMENT_NODE||node.nodeType===Node.DOCUMENT_FRAGMENT_NODE||node.nodeType===Node.ELEMENT_NODE)}function hasInsertableNodeType(node){return node&&(isElementNode(node)||isTextNode(node)||isDocTypeNode(node)||node.nodeType===Node.DOCUMENT_FRAGMENT_NODE||node.nodeType===Node.COMMENT_NODE||node.nodeType===Node.PROCESSING_INSTRUCTION_NODE)}function isDocTypeNode(node){return node&&node.nodeType===Node.DOCUMENT_TYPE_NODE}function isElementNode(node){return node&&node.nodeType===Node.ELEMENT_NODE}function isTextNode(node){return node&&node.nodeType===Node.TEXT_NODE}function isElementInsertionPossible(doc,child){var parentChildNodes=doc.childNodes||[];if(find(parentChildNodes,isElementNode)||isDocTypeNode(child))return!1;var docTypeNode=find(parentChildNodes,isDocTypeNode);return!(child&&docTypeNode&&parentChildNodes.indexOf(docTypeNode)>parentChildNodes.indexOf(child))}function isElementReplacementPossible(doc,child){function hasElementChildThatIsNotChild(node){return isElementNode(node)&&node!==child}var parentChildNodes=doc.childNodes||[];if(find(parentChildNodes,hasElementChildThatIsNotChild))return!1;var docTypeNode=find(parentChildNodes,isDocTypeNode);return!(child&&docTypeNode&&parentChildNodes.indexOf(docTypeNode)>parentChildNodes.indexOf(child))}function assertPreInsertionValidity1to5(parent,node,child){if(!hasValidParentNodeType(parent))throw new DOMException(HIERARCHY_REQUEST_ERR,"Unexpected parent node type "+parent.nodeType);if(child&&child.parentNode!==parent)throw new DOMException(NOT_FOUND_ERR,"child not in parent");if(!hasInsertableNodeType(node)||isDocTypeNode(node)&&parent.nodeType!==Node.DOCUMENT_NODE)throw new DOMException(HIERARCHY_REQUEST_ERR,"Unexpected node type "+node.nodeType+" for parent node type "+parent.nodeType)}function assertPreInsertionValidityInDocument(parent,node,child){var parentChildNodes=parent.childNodes||[],nodeChildNodes=node.childNodes||[];if(node.nodeType===Node.DOCUMENT_FRAGMENT_NODE){var nodeChildElements=nodeChildNodes.filter(isElementNode);if(nodeChildElements.length>1||find(nodeChildNodes,isTextNode))throw new DOMException(HIERARCHY_REQUEST_ERR,"More than one element or text in fragment");if(1===nodeChildElements.length&&!isElementInsertionPossible(parent,child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Element in fragment can not be inserted before doctype")}if(isElementNode(node)&&!isElementInsertionPossible(parent,child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Only one element can be added and only after doctype");if(isDocTypeNode(node)){if(find(parentChildNodes,isDocTypeNode))throw new DOMException(HIERARCHY_REQUEST_ERR,"Only one doctype is allowed");var parentElementChild=find(parentChildNodes,isElementNode);if(child&&parentChildNodes.indexOf(parentElementChild)1||find(nodeChildNodes,isTextNode))throw new DOMException(HIERARCHY_REQUEST_ERR,"More than one element or text in fragment");if(1===nodeChildElements.length&&!isElementReplacementPossible(parent,child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Element in fragment can not be inserted before doctype")}if(isElementNode(node)&&!isElementReplacementPossible(parent,child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Only one element can be added and only after doctype");if(isDocTypeNode(node)){if(find(parentChildNodes,hasDoctypeChildThatIsNotChild))throw new DOMException(HIERARCHY_REQUEST_ERR,"Only one doctype is allowed");var parentElementChild=find(parentChildNodes,isElementNode);if(child&&parentChildNodes.indexOf(parentElementChild)=0;nsi--){var namespace=visibleNamespaces[nsi];if(""===namespace.prefix&&namespace.namespace===node.namespaceURI){defaultNS=namespace.namespace;break}}if(defaultNS!==node.namespaceURI)for(var nsi=visibleNamespaces.length-1;nsi>=0;nsi--){var namespace=visibleNamespaces[nsi];if(namespace.namespace===node.namespaceURI){namespace.prefix&&(prefixedNodeName=namespace.prefix+":"+nodeName);break}}}buf.push("<",prefixedNodeName);for(var i=0;len>i;i++){var attr=attrs.item(i);"xmlns"==attr.prefix?visibleNamespaces.push({prefix:attr.localName,namespace:attr.value}):"xmlns"==attr.nodeName&&visibleNamespaces.push({prefix:"",namespace:attr.value})}for(var i=0;len>i;i++){var attr=attrs.item(i);if(needNamespaceDefine(attr,isHTML,visibleNamespaces)){var prefix=attr.prefix||"",uri=attr.namespaceURI;addSerializedAttribute(buf,prefix?"xmlns:"+prefix:"xmlns",uri),visibleNamespaces.push({prefix:prefix,namespace:uri})}serializeToString(attr,buf,isHTML,nodeFilter,visibleNamespaces)}if(nodeName===prefixedNodeName&&needNamespaceDefine(node,isHTML,visibleNamespaces)){var prefix=node.prefix||"",uri=node.namespaceURI;addSerializedAttribute(buf,prefix?"xmlns:"+prefix:"xmlns",uri),visibleNamespaces.push({prefix:prefix,namespace:uri})}if(child||isHTML&&!/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)){if(buf.push(">"),isHTML&&/^script$/i.test(nodeName))for(;child;)child.data?buf.push(child.data):serializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces.slice()),child=child.nextSibling;else for(;child;)serializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces.slice()),child=child.nextSibling;buf.push("")}else buf.push("/>");return;case DOCUMENT_NODE:case DOCUMENT_FRAGMENT_NODE:for(var child=node.firstChild;child;)serializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces.slice()),child=child.nextSibling;return;case ATTRIBUTE_NODE:return addSerializedAttribute(buf,node.name,node.value);case TEXT_NODE:return buf.push(node.data.replace(/[<&>]/g,_xmlEncoder));case CDATA_SECTION_NODE:return buf.push("");case COMMENT_NODE:return buf.push("");case DOCUMENT_TYPE_NODE:var pubid=node.publicId,sysid=node.systemId;if(buf.push("");else if(sysid&&"."!=sysid)buf.push(" SYSTEM ",sysid,">");else{var sub=node.internalSubset;sub&&buf.push(" [",sub,"]"),buf.push(">")}return;case PROCESSING_INSTRUCTION_NODE:return buf.push("");case ENTITY_REFERENCE_NODE:return buf.push("&",node.nodeName,";");default:buf.push("??",node.nodeName)}}function importNode(doc,node,deep){var node2;switch(node.nodeType){case ELEMENT_NODE:node2=node.cloneNode(!1),node2.ownerDocument=doc;case DOCUMENT_FRAGMENT_NODE:break;case ATTRIBUTE_NODE:deep=!0}if(node2||(node2=node.cloneNode(!1)),node2.ownerDocument=doc,node2.parentNode=null,deep)for(var child=node.firstChild;child;)node2.appendChild(importNode(doc,child,deep)),child=child.nextSibling;return node2}function cloneNode(doc,node,deep){var node2=new node.constructor;for(var n in node)if(Object.prototype.hasOwnProperty.call(node,n)){var v=node[n];"object"!=typeof v&&v!=node2[n]&&(node2[n]=v)}switch(node.childNodes&&(node2.childNodes=new NodeList),node2.ownerDocument=doc,node2.nodeType){case ELEMENT_NODE:var attrs=node.attributes,attrs2=node2.attributes=new NamedNodeMap,len=attrs.length;attrs2._ownerElement=node2;for(var i=0;len>i;i++)node2.setAttributeNode(cloneNode(doc,attrs.item(i),!0));break;case ATTRIBUTE_NODE:deep=!0}if(deep)for(var child=node.firstChild;child;)node2.appendChild(cloneNode(doc,child,deep)),child=child.nextSibling;return node2}function __set__(object,key,value){object[key]=value}function getTextContent(node){switch(node.nodeType){case ELEMENT_NODE:case DOCUMENT_FRAGMENT_NODE:var buf=[];for(node=node.firstChild;node;)7!==node.nodeType&&8!==node.nodeType&&buf.push(getTextContent(node)),node=node.nextSibling;return buf.join("");default:return node.nodeValue}}var conventions=require("./conventions"),find=conventions.find,NAMESPACE=conventions.NAMESPACE,NodeType={},ELEMENT_NODE=NodeType.ELEMENT_NODE=1,ATTRIBUTE_NODE=NodeType.ATTRIBUTE_NODE=2,TEXT_NODE=NodeType.TEXT_NODE=3,CDATA_SECTION_NODE=NodeType.CDATA_SECTION_NODE=4,ENTITY_REFERENCE_NODE=NodeType.ENTITY_REFERENCE_NODE=5,ENTITY_NODE=NodeType.ENTITY_NODE=6,PROCESSING_INSTRUCTION_NODE=NodeType.PROCESSING_INSTRUCTION_NODE=7,COMMENT_NODE=NodeType.COMMENT_NODE=8,DOCUMENT_NODE=NodeType.DOCUMENT_NODE=9,DOCUMENT_TYPE_NODE=NodeType.DOCUMENT_TYPE_NODE=10,DOCUMENT_FRAGMENT_NODE=NodeType.DOCUMENT_FRAGMENT_NODE=11,NOTATION_NODE=NodeType.NOTATION_NODE=12,ExceptionCode={},ExceptionMessage={},HIERARCHY_REQUEST_ERR=(ExceptionCode.INDEX_SIZE_ERR=(ExceptionMessage[1]="Index size error",1),ExceptionCode.DOMSTRING_SIZE_ERR=(ExceptionMessage[2]="DOMString size error",2),ExceptionCode.HIERARCHY_REQUEST_ERR=(ExceptionMessage[3]="Hierarchy request error",3)),NOT_FOUND_ERR=(ExceptionCode.WRONG_DOCUMENT_ERR=(ExceptionMessage[4]="Wrong document",4),ExceptionCode.INVALID_CHARACTER_ERR=(ExceptionMessage[5]="Invalid character",5),ExceptionCode.NO_DATA_ALLOWED_ERR=(ExceptionMessage[6]="No data allowed",6),ExceptionCode.NO_MODIFICATION_ALLOWED_ERR=(ExceptionMessage[7]="No modification allowed",7),ExceptionCode.NOT_FOUND_ERR=(ExceptionMessage[8]="Not found",8)),INUSE_ATTRIBUTE_ERR=(ExceptionCode.NOT_SUPPORTED_ERR=(ExceptionMessage[9]="Not supported",9),ExceptionCode.INUSE_ATTRIBUTE_ERR=(ExceptionMessage[10]="Attribute in use",10));ExceptionCode.INVALID_STATE_ERR=(ExceptionMessage[11]="Invalid state",11),ExceptionCode.SYNTAX_ERR=(ExceptionMessage[12]="Syntax error",12),ExceptionCode.INVALID_MODIFICATION_ERR=(ExceptionMessage[13]="Invalid modification",13),ExceptionCode.NAMESPACE_ERR=(ExceptionMessage[14]="Invalid namespace",14),ExceptionCode.INVALID_ACCESS_ERR=(ExceptionMessage[15]="Invalid access",15);DOMException.prototype=Error.prototype,copy(ExceptionCode,DOMException),NodeList.prototype={length:0,item:function(index){return this[index]||null},toString:function(isHTML,nodeFilter){for(var buf=[],i=0;i0},lookupPrefix:function(namespaceURI){for(var el=this;el;){var map=el._nsMap;if(map)for(var n in map)if(Object.prototype.hasOwnProperty.call(map,n)&&map[n]===namespaceURI)return n;el=el.nodeType==ATTRIBUTE_NODE?el.ownerDocument:el.parentNode}return null},lookupNamespaceURI:function(prefix){for(var el=this;el;){var map=el._nsMap;if(map&&Object.prototype.hasOwnProperty.call(map,prefix))return map[prefix];el=el.nodeType==ATTRIBUTE_NODE?el.ownerDocument:el.parentNode}return null},isDefaultNamespace:function(namespaceURI){var prefix=this.lookupPrefix(namespaceURI);return null==prefix}},copy(NodeType,Node),copy(NodeType,Node.prototype),Document.prototype={nodeName:"#document",nodeType:DOCUMENT_NODE,doctype:null,documentElement:null,_inc:1,insertBefore:function(newChild,refChild){if(newChild.nodeType==DOCUMENT_FRAGMENT_NODE){for(var child=newChild.firstChild;child;){var next=child.nextSibling;this.insertBefore(child,refChild),child=next}return newChild}return _insertBefore(this,newChild,refChild),newChild.ownerDocument=this,null===this.documentElement&&newChild.nodeType===ELEMENT_NODE&&(this.documentElement=newChild),newChild},removeChild:function(oldChild){return this.documentElement==oldChild&&(this.documentElement=null),_removeChild(this,oldChild)},replaceChild:function(newChild,oldChild){_insertBefore(this,newChild,oldChild,assertPreReplacementValidityInDocument),newChild.ownerDocument=this,oldChild&&this.removeChild(oldChild),isElementNode(newChild)&&(this.documentElement=newChild)},importNode:function(importedNode,deep){return importNode(this,importedNode,deep)},getElementById:function(id){var rtv=null;return _visitNode(this.documentElement,function(node){return node.nodeType==ELEMENT_NODE&&node.getAttribute("id")==id?(rtv=node,!0):void 0}),rtv},getElementsByClassName:function(classNames){var classNamesSet=toOrderedSet(classNames);return new LiveNodeList(this,function(base){var ls=[];return classNamesSet.length>0&&_visitNode(base.documentElement,function(node){if(node!==base&&node.nodeType===ELEMENT_NODE){var nodeClassNames=node.getAttribute("class");if(nodeClassNames){var matches=classNames===nodeClassNames;if(!matches){var nodeClassNamesSet=toOrderedSet(nodeClassNames);matches=classNamesSet.every(arrayIncludes(nodeClassNamesSet))}matches&&ls.push(node)}}}),ls})},createElement:function(tagName){var node=new Element;node.ownerDocument=this,node.nodeName=tagName,node.tagName=tagName,node.localName=tagName,node.childNodes=new NodeList;var attrs=node.attributes=new NamedNodeMap;return attrs._ownerElement=node,node},createDocumentFragment:function(){var node=new DocumentFragment;return node.ownerDocument=this,node.childNodes=new NodeList,node},createTextNode:function(data){var node=new Text;return node.ownerDocument=this,node.appendData(data),node},createComment:function(data){var node=new Comment;return node.ownerDocument=this,node.appendData(data),node},createCDATASection:function(data){var node=new CDATASection;return node.ownerDocument=this,node.appendData(data),node},createProcessingInstruction:function(target,data){var node=new ProcessingInstruction;return node.ownerDocument=this,node.tagName=node.target=target,node.nodeValue=node.data=data,node},createAttribute:function(name){var node=new Attr;return node.ownerDocument=this,node.name=name,node.nodeName=name,node.localName=name,node.specified=!0,node},createEntityReference:function(name){var node=new EntityReference;return node.ownerDocument=this,node.nodeName=name,node},createElementNS:function(namespaceURI,qualifiedName){var node=new Element,pl=qualifiedName.split(":"),attrs=node.attributes=new NamedNodeMap;return node.childNodes=new NodeList,node.ownerDocument=this,node.nodeName=qualifiedName,node.tagName=qualifiedName,node.namespaceURI=namespaceURI,2==pl.length?(node.prefix=pl[0],node.localName=pl[1]):node.localName=qualifiedName,attrs._ownerElement=node,node},createAttributeNS:function(namespaceURI,qualifiedName){var node=new Attr,pl=qualifiedName.split(":");return node.ownerDocument=this,node.nodeName=qualifiedName,node.name=qualifiedName,node.namespaceURI=namespaceURI,node.specified=!0,2==pl.length?(node.prefix=pl[0],node.localName=pl[1]):node.localName=qualifiedName,node}},_extends(Document,Node),Element.prototype={nodeType:ELEMENT_NODE,hasAttribute:function(name){return null!=this.getAttributeNode(name)},getAttribute:function(name){var attr=this.getAttributeNode(name);return attr&&attr.value||""},getAttributeNode:function(name){return this.attributes.getNamedItem(name)},setAttribute:function(name,value){var attr=this.ownerDocument.createAttribute(name);attr.value=attr.nodeValue=""+value,this.setAttributeNode(attr)},removeAttribute:function(name){var attr=this.getAttributeNode(name);attr&&this.removeAttributeNode(attr)},appendChild:function(newChild){return newChild.nodeType===DOCUMENT_FRAGMENT_NODE?this.insertBefore(newChild,null):_appendSingleChild(this,newChild)},setAttributeNode:function(newAttr){return this.attributes.setNamedItem(newAttr)},setAttributeNodeNS:function(newAttr){return this.attributes.setNamedItemNS(newAttr)},removeAttributeNode:function(oldAttr){return this.attributes.removeNamedItem(oldAttr.nodeName)},removeAttributeNS:function(namespaceURI,localName){var old=this.getAttributeNodeNS(namespaceURI,localName);old&&this.removeAttributeNode(old)},hasAttributeNS:function(namespaceURI,localName){return null!=this.getAttributeNodeNS(namespaceURI,localName)},getAttributeNS:function(namespaceURI,localName){var attr=this.getAttributeNodeNS(namespaceURI,localName);return attr&&attr.value||""},setAttributeNS:function(namespaceURI,qualifiedName,value){var attr=this.ownerDocument.createAttributeNS(namespaceURI,qualifiedName);attr.value=attr.nodeValue=""+value,this.setAttributeNode(attr)},getAttributeNodeNS:function(namespaceURI,localName){return this.attributes.getNamedItemNS(namespaceURI,localName)},getElementsByTagName:function(tagName){return new LiveNodeList(this,function(base){var ls=[];return _visitNode(base,function(node){node===base||node.nodeType!=ELEMENT_NODE||"*"!==tagName&&node.tagName!=tagName||ls.push(node)}),ls})},getElementsByTagNameNS:function(namespaceURI,localName){return new LiveNodeList(this,function(base){var ls=[];return _visitNode(base,function(node){node===base||node.nodeType!==ELEMENT_NODE||"*"!==namespaceURI&&node.namespaceURI!==namespaceURI||"*"!==localName&&node.localName!=localName||ls.push(node)}),ls})}},Document.prototype.getElementsByTagName=Element.prototype.getElementsByTagName,Document.prototype.getElementsByTagNameNS=Element.prototype.getElementsByTagNameNS,_extends(Element,Node),Attr.prototype.nodeType=ATTRIBUTE_NODE,_extends(Attr,Node),CharacterData.prototype={data:"",substringData:function(offset,count){return this.data.substring(offset,offset+count)},appendData:function(text){text=this.data+text,this.nodeValue=this.data=text,this.length=text.length},insertData:function(offset,text){this.replaceData(offset,0,text)},appendChild:function(newChild){throw new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])},deleteData:function(offset,count){this.replaceData(offset,count,"")},replaceData:function(offset,count,text){var start=this.data.substring(0,offset),end=this.data.substring(offset+count);text=start+text+end,this.nodeValue=this.data=text,this.length=text.length}},_extends(CharacterData,Node),Text.prototype={nodeName:"#text",nodeType:TEXT_NODE,splitText:function(offset){var text=this.data,newText=text.substring(offset);text=text.substring(0,offset),this.data=this.nodeValue=text,this.length=text.length;var newNode=this.ownerDocument.createTextNode(newText);return this.parentNode&&this.parentNode.insertBefore(newNode,this.nextSibling),newNode}},_extends(Text,CharacterData),Comment.prototype={nodeName:"#comment",nodeType:COMMENT_NODE},_extends(Comment,CharacterData),CDATASection.prototype={nodeName:"#cdata-section",nodeType:CDATA_SECTION_NODE},_extends(CDATASection,CharacterData),DocumentType.prototype.nodeType=DOCUMENT_TYPE_NODE,_extends(DocumentType,Node),Notation.prototype.nodeType=NOTATION_NODE,_extends(Notation,Node),Entity.prototype.nodeType=ENTITY_NODE,_extends(Entity,Node),EntityReference.prototype.nodeType=ENTITY_REFERENCE_NODE,_extends(EntityReference,Node),DocumentFragment.prototype.nodeName="#document-fragment",DocumentFragment.prototype.nodeType=DOCUMENT_FRAGMENT_NODE,_extends(DocumentFragment,Node),ProcessingInstruction.prototype.nodeType=PROCESSING_INSTRUCTION_NODE,_extends(ProcessingInstruction,Node),XMLSerializer.prototype.serializeToString=function(node,isHtml,nodeFilter){return nodeSerializeToString.call(node,isHtml,nodeFilter)},Node.prototype.toString=nodeSerializeToString;try{Object.defineProperty&&(Object.defineProperty(LiveNodeList.prototype,"length",{get:function(){return _updateLiveList(this),this.$$length}}),Object.defineProperty(Node.prototype,"textContent",{get:function(){return getTextContent(this)},set:function(data){switch(this.nodeType){case ELEMENT_NODE:case DOCUMENT_FRAGMENT_NODE:for(;this.firstChild;)this.removeChild(this.firstChild);(data||String(data))&&this.appendChild(this.ownerDocument.createTextNode(data));break;default:this.data=data,this.value=data,this.nodeValue=data}}}),__set__=function(object,key,value){object["$$"+key]=value})}catch(e){}exports.DocumentType=DocumentType,exports.DOMException=DOMException,exports.DOMImplementation=DOMImplementation,exports.Element=Element,exports.Node=Node,exports.NodeList=NodeList,exports.XMLSerializer=XMLSerializer},{"./conventions":41}],44:[function(require,module,exports){var freeze=require("./conventions").freeze;exports.XML_ENTITIES=freeze({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}),exports.HTML_ENTITIES=freeze({lt:"<",gt:">",amp:"&",quot:'"',apos:"'",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",times:"×",divide:"÷",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪","int":"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",euro:"€",trade:"™",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"}),exports.entityMap=exports.HTML_ENTITIES},{"./conventions":41}],45:[function(require,module,exports){var dom=require("./dom");exports.DOMImplementation=dom.DOMImplementation,exports.XMLSerializer=dom.XMLSerializer,exports.DOMParser=require("./dom-parser").DOMParser},{"./dom":43,"./dom-parser":42}],46:[function(require,module,exports){function ParseError(message,locator){this.message=message,this.locator=locator,Error.captureStackTrace&&Error.captureStackTrace(this,ParseError)}function XMLReader(){}function parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){function fixedFromCharCode(code){if(code>65535){code-=65536;var surrogate1=55296+(code>>10),surrogate2=56320+(1023&code);return String.fromCharCode(surrogate1,surrogate2)}return String.fromCharCode(code)}function entityReplacer(a){var k=a.slice(1,-1);return Object.hasOwnProperty.call(entityMap,k)?entityMap[k]:"#"===k.charAt(0)?fixedFromCharCode(parseInt(k.substr(1).replace("x","0x"))):(errorHandler.error("entity not found:"+a),a)}function appendText(end){if(end>start){var xt=source.substring(start,end).replace(/&#?\w+;/g,entityReplacer);locator&&position(start),domBuilder.characters(xt,0,end-start),start=end}}function position(p,m){for(;p>=lineEnd&&(m=linePattern.exec(source));)lineStart=m.index,lineEnd=lineStart+m[0].length,locator.lineNumber++;locator.columnNumber=p-lineStart+1}for(var lineStart=0,lineEnd=0,linePattern=/.*(?:\r\n?|\n)|.*$/g,locator=domBuilder.locator,parseStack=[{currentNSMap:defaultNSMapCopy}],closeMap={},start=0;;){try{var tagStart=source.indexOf("<",start);if(0>tagStart){if(!source.substr(start).match(/^\s*$/)){var doc=domBuilder.doc,text=doc.createTextNode(source.substr(start));doc.appendChild(text),domBuilder.currentElement=text}return}switch(tagStart>start&&appendText(tagStart),source.charAt(tagStart+1)){case"/":var end=source.indexOf(">",tagStart+3),tagName=source.substring(tagStart+2,end).replace(/[ \t\n\r]+$/g,""),config=parseStack.pop(); +0>end?(tagName=source.substring(tagStart+2).replace(/[\s<].*/,""),errorHandler.error("end tag name: "+tagName+" is not complete:"+config.tagName),end=tagStart+1+tagName.length):tagName.match(/\si;i++){var a=el[i];position(a.offset),a.locator=copyLocator(locator,{})}domBuilder.locator=locator2,appendElement(el,domBuilder,currentNSMap)&&parseStack.push(el),domBuilder.locator=locator}else appendElement(el,domBuilder,currentNSMap)&&parseStack.push(el);NAMESPACE.isHTML(el.uri)&&!el.closed?end=parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder):end++}}catch(e){if(e instanceof ParseError)throw e;errorHandler.error("element parse error: "+e),end=-1}end>start?start=end:appendText(Math.max(tagStart,start)+1)}}function copyLocator(f,t){return t.lineNumber=f.lineNumber,t.columnNumber=f.columnNumber,t}function parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){function addAttribute(qname,value,startIndex){el.attributeNames.hasOwnProperty(qname)&&errorHandler.fatalError("Attribute "+qname+" redefined"),el.addValue(qname,value.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,entityReplacer),startIndex)}for(var attrName,value,p=++start,s=S_TAG;;){var c=source.charAt(p);switch(c){case"=":if(s===S_ATTR)attrName=source.slice(start,p),s=S_EQ;else{if(s!==S_ATTR_SPACE)throw new Error("attribute equal must after attrName");s=S_EQ}break;case"'":case'"':if(s===S_EQ||s===S_ATTR){if(s===S_ATTR&&(errorHandler.warning('attribute value must after "="'),attrName=source.slice(start,p)),start=p+1,p=source.indexOf(c,start),!(p>0))throw new Error("attribute value no end '"+c+"' match");value=source.slice(start,p),addAttribute(attrName,value,start-1),s=S_ATTR_END}else{if(s!=S_ATTR_NOQUOT_VALUE)throw new Error('attribute value must after "="');value=source.slice(start,p),addAttribute(attrName,value,start),errorHandler.warning('attribute "'+attrName+'" missed start quot('+c+")!!"),start=p+1,s=S_ATTR_END}break;case"/":switch(s){case S_TAG:el.setTagName(source.slice(start,p));case S_ATTR_END:case S_TAG_SPACE:case S_TAG_CLOSE:s=S_TAG_CLOSE,el.closed=!0;case S_ATTR_NOQUOT_VALUE:case S_ATTR:case S_ATTR_SPACE:break;default:throw new Error("attribute invalid close char('/')")}break;case"":return errorHandler.error("unexpected end of input"),s==S_TAG&&el.setTagName(source.slice(start,p)),p;case">":switch(s){case S_TAG:el.setTagName(source.slice(start,p));case S_ATTR_END:case S_TAG_SPACE:case S_TAG_CLOSE:break;case S_ATTR_NOQUOT_VALUE:case S_ATTR:value=source.slice(start,p),"/"===value.slice(-1)&&(el.closed=!0,value=value.slice(0,-1));case S_ATTR_SPACE:s===S_ATTR_SPACE&&(value=attrName),s==S_ATTR_NOQUOT_VALUE?(errorHandler.warning('attribute "'+value+'" missed quot(")!'),addAttribute(attrName,value,start)):(NAMESPACE.isHTML(currentNSMap[""])&&value.match(/^(?:disabled|checked|selected)$/i)||errorHandler.warning('attribute "'+value+'" missed value!! "'+value+'" instead!!'),addAttribute(value,value,start));break;case S_EQ:throw new Error("attribute value missed!!")}return p;case"€":c=" ";default:if(" ">=c)switch(s){case S_TAG:el.setTagName(source.slice(start,p)),s=S_TAG_SPACE;break;case S_ATTR:attrName=source.slice(start,p),s=S_ATTR_SPACE;break;case S_ATTR_NOQUOT_VALUE:var value=source.slice(start,p);errorHandler.warning('attribute "'+value+'" missed quot(")!!'),addAttribute(attrName,value,start);case S_ATTR_END:s=S_TAG_SPACE}else switch(s){case S_ATTR_SPACE:el.tagName;NAMESPACE.isHTML(currentNSMap[""])&&attrName.match(/^(?:disabled|checked|selected)$/i)||errorHandler.warning('attribute "'+attrName+'" missed value!! "'+attrName+'" instead2!!'),addAttribute(attrName,attrName,start),start=p,s=S_ATTR;break;case S_ATTR_END:errorHandler.warning('attribute space is required"'+attrName+'"!!');case S_TAG_SPACE:s=S_ATTR,start=p;break;case S_EQ:s=S_ATTR_NOQUOT_VALUE,start=p;break;case S_TAG_CLOSE:throw new Error("elements closed character '/' and '>' must be connected to")}}p++}}function appendElement(el,domBuilder,currentNSMap){for(var tagName=el.tagName,localNSMap=null,i=el.length;i--;){var a=el[i],qName=a.qName,value=a.value,nsp=qName.indexOf(":");if(nsp>0)var prefix=a.prefix=qName.slice(0,nsp),localName=qName.slice(nsp+1),nsPrefix="xmlns"===prefix&&localName;else localName=qName,prefix=null,nsPrefix="xmlns"===qName&&"";a.localName=localName,nsPrefix!==!1&&(null==localNSMap&&(localNSMap={},_copy(currentNSMap,currentNSMap={})),currentNSMap[nsPrefix]=localNSMap[nsPrefix]=value,a.uri=NAMESPACE.XMLNS,domBuilder.startPrefixMapping(nsPrefix,value))}for(var i=el.length;i--;){a=el[i];var prefix=a.prefix;prefix&&("xml"===prefix&&(a.uri=NAMESPACE.XML),"xmlns"!==prefix&&(a.uri=currentNSMap[prefix||""]))}var nsp=tagName.indexOf(":");nsp>0?(prefix=el.prefix=tagName.slice(0,nsp),localName=el.localName=tagName.slice(nsp+1)):(prefix=null,localName=el.localName=tagName);var ns=el.uri=currentNSMap[prefix||""];if(domBuilder.startElement(ns,localName,tagName,el),!el.closed)return el.currentNSMap=currentNSMap,el.localNSMap=localNSMap,!0;if(domBuilder.endElement(ns,localName,tagName),localNSMap)for(prefix in localNSMap)Object.prototype.hasOwnProperty.call(localNSMap,prefix)&&domBuilder.endPrefixMapping(prefix)}function parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){if(/^(?:script|textarea)$/i.test(tagName)){var elEndStart=source.indexOf("",elStartEnd),text=source.substring(elStartEnd+1,elEndStart);if(/[&<]/.test(text))return/^script$/i.test(tagName)?(domBuilder.characters(text,0,text.length),elEndStart):(text=text.replace(/&#?\w+;/g,entityReplacer),domBuilder.characters(text,0,text.length),elEndStart)}return elStartEnd+1}function fixSelfClosed(source,elStartEnd,tagName,closeMap){var pos=closeMap[tagName];return null==pos&&(pos=source.lastIndexOf(""),elStartEnd>pos&&(pos=source.lastIndexOf("pos}function _copy(source,target){for(var n in source)Object.prototype.hasOwnProperty.call(source,n)&&(target[n]=source[n])}function parseDCC(source,start,domBuilder,errorHandler){var next=source.charAt(start+2);switch(next){case"-":if("-"===source.charAt(start+3)){var end=source.indexOf("-->",start+4);return end>start?(domBuilder.comment(source,start+4,end-start-4),end+3):(errorHandler.error("Unclosed comment"),-1)}return-1;default:if("CDATA["==source.substr(start+3,6)){var end=source.indexOf("]]>",start+9);return domBuilder.startCDATA(),domBuilder.characters(source,start+9,end-start-9),domBuilder.endCDATA(),end+3}var matchs=split(source,start),len=matchs.length;if(len>1&&/!doctype/i.test(matchs[0][0])){var name=matchs[1][0],pubid=!1,sysid=!1;len>3&&(/^public$/i.test(matchs[2][0])?(pubid=matchs[3][0],sysid=len>4&&matchs[4][0]):/^system$/i.test(matchs[2][0])&&(sysid=matchs[3][0]));var lastMatch=matchs[len-1];return domBuilder.startDTD(name,pubid,sysid),domBuilder.endDTD(),lastMatch.index+lastMatch[0].length}}return-1}function parseInstruction(source,start,domBuilder){var end=source.indexOf("?>",start);if(end){var match=source.substring(start,end).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(match){match[0].length;return domBuilder.processingInstruction(match[1],match[2]),end+2}return-1}return-1}function ElementAttributes(){this.attributeNames={}}function split(source,start){var match,buf=[],reg=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;for(reg.lastIndex=start,reg.exec(source);match=reg.exec(source);)if(buf.push(match),match[1])return buf}var NAMESPACE=require("./conventions").NAMESPACE,nameStartChar=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,nameChar=new RegExp("[\\-\\.0-9"+nameStartChar.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),tagNamePattern=new RegExp("^"+nameStartChar.source+nameChar.source+"*(?::"+nameStartChar.source+nameChar.source+"*)?$"),S_TAG=0,S_ATTR=1,S_ATTR_SPACE=2,S_EQ=3,S_ATTR_NOQUOT_VALUE=4,S_ATTR_END=5,S_TAG_SPACE=6,S_TAG_CLOSE=7;ParseError.prototype=new Error,ParseError.prototype.name=ParseError.name,XMLReader.prototype={parse:function(source,defaultNSMap,entityMap){var domBuilder=this.domBuilder;domBuilder.startDocument(),_copy(defaultNSMap,defaultNSMap={}),parse(source,defaultNSMap,entityMap,domBuilder,this.errorHandler),domBuilder.endDocument()}},ElementAttributes.prototype={setTagName:function(tagName){if(!tagNamePattern.test(tagName))throw new Error("invalid tagName:"+tagName);this.tagName=tagName},addValue:function(qName,value,offset){if(!tagNamePattern.test(qName))throw new Error("invalid attribute:"+qName);this.attributeNames[qName]=this.length,this[this.length++]={qName:qName,value:value,offset:offset}},length:0,getLocalName:function(i){return this[i].localName},getLocator:function(i){return this[i].locator},getQName:function(i){return this[i].qName},getURI:function(i){return this[i].uri},getValue:function(i){return this[i].value}},exports.XMLReader=XMLReader,exports.ParseError=ParseError},{"./conventions":41}],47:[function(require,module,exports){"use strict";function getLens(b64){var len=b64.length;if(len%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var validLen=b64.indexOf("=");-1===validLen&&(validLen=len);var placeHoldersLen=validLen===len?0:4-validLen%4;return[validLen,placeHoldersLen]}function byteLength(b64){var lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1];return 3*(validLen+placeHoldersLen)/4-placeHoldersLen}function _byteLength(b64,validLen,placeHoldersLen){return 3*(validLen+placeHoldersLen)/4-placeHoldersLen}function toByteArray(b64){var tmp,i,lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1],arr=new Arr(_byteLength(b64,validLen,placeHoldersLen)),curByte=0,len=placeHoldersLen>0?validLen-4:validLen;for(i=0;len>i;i+=4)tmp=revLookup[b64.charCodeAt(i)]<<18|revLookup[b64.charCodeAt(i+1)]<<12|revLookup[b64.charCodeAt(i+2)]<<6|revLookup[b64.charCodeAt(i+3)],arr[curByte++]=tmp>>16&255,arr[curByte++]=tmp>>8&255,arr[curByte++]=255&tmp;return 2===placeHoldersLen&&(tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4,arr[curByte++]=255&tmp),1===placeHoldersLen&&(tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2,arr[curByte++]=tmp>>8&255,arr[curByte++]=255&tmp),arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[63&num]}function encodeChunk(uint8,start,end){for(var tmp,output=[],i=start;end>i;i+=3)tmp=(uint8[i]<<16&16711680)+(uint8[i+1]<<8&65280)+(255&uint8[i+2]),output.push(tripletToBase64(tmp));return output.join("")}function fromByteArray(uint8){for(var tmp,len=uint8.length,extraBytes=len%3,parts=[],maxChunkLength=16383,i=0,len2=len-extraBytes;len2>i;i+=maxChunkLength)parts.push(encodeChunk(uint8,i,i+maxChunkLength>len2?len2:i+maxChunkLength));return 1===extraBytes?(tmp=uint8[len-1],parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+"==")):2===extraBytes&&(tmp=(uint8[len-2]<<8)+uint8[len-1],parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+"=")),parts.join("")}exports.byteLength=byteLength,exports.toByteArray=toByteArray,exports.fromByteArray=fromByteArray;for(var lookup=[],revLookup=[],Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0,len=code.length;len>i;++i)lookup[i]=code[i],revLookup[code.charCodeAt(i)]=i;revLookup["-".charCodeAt(0)]=62,revLookup["_".charCodeAt(0)]=63},{}],48:[function(require,module,exports){"use strict";module.exports=function(Promise){function any(promises){var ret=new SomePromiseArray(promises),promise=ret.promise();return ret.setHowMany(1),ret.setUnwrap(),ret.init(),promise}var SomePromiseArray=Promise._SomePromiseArray;Promise.any=function(promises){return any(promises)},Promise.prototype.any=function(){return any(this)}}},{}],49:[function(require,module,exports){(function(process){"use strict";function Async(){this._customScheduler=!1,this._isTickUsed=!1,this._lateQueue=new Queue(16),this._normalQueue=new Queue(16),this._haveDrainedQueues=!1,this._trampolineEnabled=!0;var self=this;this.drainQueues=function(){self._drainQueues()},this._schedule=schedule}function AsyncInvokeLater(fn,receiver,arg){this._lateQueue.push(fn,receiver,arg),this._queueTick()}function AsyncInvoke(fn,receiver,arg){this._normalQueue.push(fn,receiver,arg),this._queueTick()}function AsyncSettlePromises(promise){this._normalQueue._pushOne(promise),this._queueTick()}var firstLineError;try{throw new Error}catch(e){firstLineError=e}var schedule=require("./schedule"),Queue=require("./queue"),util=require("./util");Async.prototype.setScheduler=function(fn){var prev=this._schedule;return this._schedule=fn,this._customScheduler=!0,prev},Async.prototype.hasCustomScheduler=function(){return this._customScheduler},Async.prototype.enableTrampoline=function(){this._trampolineEnabled=!0},Async.prototype.disableTrampolineIfNecessary=function(){util.hasDevTools&&(this._trampolineEnabled=!1)},Async.prototype.haveItemsQueued=function(){return this._isTickUsed||this._haveDrainedQueues},Async.prototype.fatalError=function(e,isNode){isNode?(process.stderr.write("Fatal "+(e instanceof Error?e.stack:e)+"\n"),process.exit(2)):this.throwLater(e)},Async.prototype.throwLater=function(fn,arg){if(1===arguments.length&&(arg=fn,fn=function(){throw arg}),"undefined"!=typeof setTimeout)setTimeout(function(){fn(arg)},0);else try{this._schedule(function(){fn(arg)})}catch(e){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")}},util.hasDevTools?(Async.prototype.invokeLater=function(fn,receiver,arg){this._trampolineEnabled?AsyncInvokeLater.call(this,fn,receiver,arg):this._schedule(function(){setTimeout(function(){fn.call(receiver,arg)},100)})},Async.prototype.invoke=function(fn,receiver,arg){this._trampolineEnabled?AsyncInvoke.call(this,fn,receiver,arg):this._schedule(function(){fn.call(receiver,arg)})},Async.prototype.settlePromises=function(promise){this._trampolineEnabled?AsyncSettlePromises.call(this,promise):this._schedule(function(){promise._settlePromises()})}):(Async.prototype.invokeLater=AsyncInvokeLater,Async.prototype.invoke=AsyncInvoke,Async.prototype.settlePromises=AsyncSettlePromises),Async.prototype._drainQueue=function(queue){for(;queue.length()>0;){var fn=queue.shift();if("function"==typeof fn){var receiver=queue.shift(),arg=queue.shift();fn.call(receiver,arg)}else fn._settlePromises()}},Async.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},Async.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},Async.prototype._reset=function(){this._isTickUsed=!1},module.exports=Async,module.exports.firstLineError=firstLineError}).call(this,require("_process"))},{"./queue":72,"./schedule":75,"./util":82,_process:102}],50:[function(require,module,exports){"use strict";module.exports=function(Promise,INTERNAL,tryConvertToPromise,debug){var calledBind=!1,rejectThis=function(_,e){this._reject(e)},targetRejected=function(e,context){context.promiseRejectionQueued=!0,context.bindingPromise._then(rejectThis,rejectThis,null,this,e)},bindingResolved=function(thisArg,context){0===(50397184&this._bitField)&&this._resolveCallback(context.target)},bindingRejected=function(e,context){context.promiseRejectionQueued||this._reject(e)};Promise.prototype.bind=function(thisArg){calledBind||(calledBind=!0,Promise.prototype._propagateFrom=debug.propagateFromFunction(),Promise.prototype._boundValue=debug.boundValueFunction());var maybePromise=tryConvertToPromise(thisArg),ret=new Promise(INTERNAL);ret._propagateFrom(this,1);var target=this._target();if(ret._setBoundTo(maybePromise),maybePromise instanceof Promise){var context={promiseRejectionQueued:!1,promise:ret,target:target,bindingPromise:maybePromise};target._then(INTERNAL,targetRejected,void 0,ret,context),maybePromise._then(bindingResolved,bindingRejected,void 0,ret,context),ret._setOnCancel(maybePromise)}else ret._resolveCallback(target);return ret},Promise.prototype._setBoundTo=function(obj){void 0!==obj?(this._bitField=2097152|this._bitField,this._boundTo=obj):this._bitField=-2097153&this._bitField},Promise.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},Promise.bind=function(thisArg,value){return Promise.resolve(value).bind(thisArg)}}},{}],51:[function(require,module,exports){"use strict";var cr=Object.create;if(cr){var callerCache=cr(null),getterCache=cr(null);callerCache[" size"]=getterCache[" size"]=0}module.exports=function(Promise){function ensureMethod(obj,methodName){var fn;if(null!=obj&&(fn=obj[methodName]),"function"!=typeof fn){var message="Object "+util.classString(obj)+" has no method '"+util.toString(methodName)+"'";throw new Promise.TypeError(message)}return fn}function caller(obj){var methodName=this.pop(),fn=ensureMethod(obj,methodName);return fn.apply(obj,this)}function namedGetter(obj){return obj[this]}function indexedGetter(obj){var index=+this;return 0>index&&(index=Math.max(0,index+obj.length)),obj[index]}var getMethodCaller,getGetter,util=require("./util"),canEvaluate=util.canEvaluate,isIdentifier=util.isIdentifier,makeMethodCaller=function(methodName){return new Function("ensureMethod"," \n return function(obj) { \n 'use strict' \n var len = this.length; \n ensureMethod(obj, 'methodName'); \n switch(len) { \n case 1: return obj.methodName(this[0]); \n case 2: return obj.methodName(this[0], this[1]); \n case 3: return obj.methodName(this[0], this[1], this[2]); \n case 0: return obj.methodName(); \n default: \n return obj.methodName.apply(obj, this); \n } \n }; \n ".replace(/methodName/g,methodName))(ensureMethod)},makeGetter=function(propertyName){return new Function("obj"," \n 'use strict'; \n return obj.propertyName; \n ".replace("propertyName",propertyName))},getCompiled=function(name,compiler,cache){var ret=cache[name];if("function"!=typeof ret){if(!isIdentifier(name))return null;if(ret=compiler(name),cache[name]=ret,cache[" size"]++,cache[" size"]>512){for(var keys=Object.keys(cache),i=0;256>i;++i)delete cache[keys[i]];cache[" size"]=keys.length-256}}return ret};getMethodCaller=function(name){return getCompiled(name,makeMethodCaller,callerCache)},getGetter=function(name){return getCompiled(name,makeGetter,getterCache)},Promise.prototype.call=function(methodName){for(var $_len=arguments.length,args=new Array(Math.max($_len-1,0)),$_i=1;$_len>$_i;++$_i)args[$_i-1]=arguments[$_i];if(canEvaluate){var maybeCaller=getMethodCaller(methodName);if(null!==maybeCaller)return this._then(maybeCaller,void 0,void 0,args,void 0)}return args.push(methodName),this._then(caller,void 0,void 0,args,void 0)},Promise.prototype.get=function(propertyName){var getter,isIndex="number"==typeof propertyName;if(isIndex)getter=indexedGetter;else if(canEvaluate){var maybeGetter=getGetter(propertyName);getter=null!==maybeGetter?maybeGetter:namedGetter}else getter=namedGetter;return this._then(getter,void 0,void 0,propertyName,void 0)}}},{"./util":82}],52:[function(require,module,exports){"use strict";module.exports=function(Promise,PromiseArray,apiRejection,debug){var util=require("./util"),tryCatch=util.tryCatch,errorObj=util.errorObj,async=Promise._async;Promise.prototype["break"]=Promise.prototype.cancel=function(){if(!debug.cancellation())return this._warn("cancellation is disabled");for(var promise=this,child=promise;promise._isCancellable();){if(!promise._cancelBy(child)){child._isFollowing()?child._followee().cancel():child._cancelBranched();break}var parent=promise._cancellationParent;if(null==parent||!parent._isCancellable()){promise._isFollowing()?promise._followee().cancel():promise._cancelBranched();break}promise._isFollowing()&&promise._followee().cancel(),promise._setWillBeCancelled(),child=promise,promise=parent}},Promise.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},Promise.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},Promise.prototype._cancelBy=function(canceller){return canceller===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},Promise.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},Promise.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),async.invoke(this._cancelPromises,this,void 0))},Promise.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},Promise.prototype._unsetOnCancel=function(){this._onCancelField=void 0},Promise.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},Promise.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},Promise.prototype._doInvokeOnCancel=function(onCancelCallback,internalOnly){if(util.isArray(onCancelCallback))for(var i=0;i=0?contextStack[lastIndex]:void 0}var longStackTraces=!1,contextStack=[];return Promise.prototype._promiseCreated=function(){},Promise.prototype._pushContext=function(){},Promise.prototype._popContext=function(){return null},Promise._peekContext=Promise.prototype._peekContext=function(){},Context.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,contextStack.push(this._trace))},Context.prototype._popContext=function(){if(void 0!==this._trace){var trace=contextStack.pop(),ret=trace._promiseCreated;return trace._promiseCreated=null,ret}return null},Context.CapturedTrace=null,Context.create=createContext,Context.deactivateLongStackTraces=function(){},Context.activateLongStackTraces=function(){var Promise_pushContext=Promise.prototype._pushContext,Promise_popContext=Promise.prototype._popContext,Promise_PeekContext=Promise._peekContext,Promise_peekContext=Promise.prototype._peekContext,Promise_promiseCreated=Promise.prototype._promiseCreated;Context.deactivateLongStackTraces=function(){Promise.prototype._pushContext=Promise_pushContext,Promise.prototype._popContext=Promise_popContext,Promise._peekContext=Promise_PeekContext,Promise.prototype._peekContext=Promise_peekContext,Promise.prototype._promiseCreated=Promise_promiseCreated,longStackTraces=!1},longStackTraces=!0,Promise.prototype._pushContext=Context.prototype._pushContext,Promise.prototype._popContext=Context.prototype._popContext,Promise._peekContext=Promise.prototype._peekContext=peekContext,Promise.prototype._promiseCreated=function(){var ctx=this._peekContext();ctx&&null==ctx._promiseCreated&&(ctx._promiseCreated=this)}},Context}},{}],55:[function(require,module,exports){(function(process){"use strict";module.exports=function(Promise,Context){function generatePromiseLifecycleEventObject(name,promise){return{promise:promise}}function defaultFireEvent(){return!1}function cancellationExecute(executor,resolve,reject){var promise=this;try{executor(resolve,reject,function(onCancel){if("function"!=typeof onCancel)throw new TypeError("onCancel must be a function, got: "+util.toString(onCancel));promise._attachCancellationCallback(onCancel)})}catch(e){return e}}function cancellationAttachCancellationCallback(onCancel){if(!this._isCancellable())return this;var previousOnCancel=this._onCancel();void 0!==previousOnCancel?util.isArray(previousOnCancel)?previousOnCancel.push(onCancel):this._setOnCancel([previousOnCancel,onCancel]):this._setOnCancel(onCancel)}function cancellationOnCancel(){return this._onCancelField}function cancellationSetOnCancel(onCancel){this._onCancelField=onCancel}function cancellationClearCancellationData(){this._cancellationParent=void 0,this._onCancelField=void 0}function cancellationPropagateFrom(parent,flags){if(0!==(1&flags)){this._cancellationParent=parent;var branchesRemainingToCancel=parent._branchesRemainingToCancel;void 0===branchesRemainingToCancel&&(branchesRemainingToCancel=0),parent._branchesRemainingToCancel=branchesRemainingToCancel+1}0!==(2&flags)&&parent._isBound()&&this._setBoundTo(parent._boundTo)}function bindingPropagateFrom(parent,flags){0!==(2&flags)&&parent._isBound()&&this._setBoundTo(parent._boundTo)}function boundValueFunction(){var ret=this._boundTo;return void 0!==ret&&ret instanceof Promise?ret.isFulfilled()?ret.value():void 0:ret}function longStackTracesCaptureStackTrace(){this._trace=new CapturedTrace(this._peekContext())}function longStackTracesAttachExtraTrace(error,ignoreSelf){if(canAttachTrace(error)){var trace=this._trace;if(void 0!==trace&&ignoreSelf&&(trace=trace._parent),void 0!==trace)trace.attachExtraTrace(error);else if(!error.__stackCleaned__){var parsed=parseStackAndMessage(error);util.notEnumerableProp(error,"stack",parsed.message+"\n"+parsed.stack.join("\n")),util.notEnumerableProp(error,"__stackCleaned__",!0)}}}function checkForgottenReturns(returnValue,promiseCreated,name,promise,parent){if(void 0===returnValue&&null!==promiseCreated&&wForgottenReturn){if(void 0!==parent&&parent._returnedNonUndefined())return;if(0===(65535&promise._bitField))return;name&&(name+=" ");var handlerLine="",creatorLine="";if(promiseCreated._trace){for(var traceLines=promiseCreated._trace.stack.split("\n"),stack=cleanStack(traceLines),i=stack.length-1;i>=0;--i){var line=stack[i];if(!nodeFramePattern.test(line)){var lineMatches=line.match(parseLinePattern);lineMatches&&(handlerLine="at "+lineMatches[1]+":"+lineMatches[2]+":"+lineMatches[3]+" ");break}}if(stack.length>0)for(var firstUserLine=stack[0],i=0;i0&&(creatorLine="\n"+traceLines[i-1]);break}}var msg="a promise was created in a "+name+"handler "+handlerLine+"but was not returned from it, see http://goo.gl/rRqMUw"+creatorLine;promise._warn(msg,!0,promiseCreated)}}function deprecated(name,replacement){var message=name+" is deprecated and will be removed in a future version.";return replacement&&(message+=" Use "+replacement+" instead."),warn(message)}function warn(message,shouldUseOwnTrace,promise){if(config.warnings){var ctx,warning=new Warning(message);if(shouldUseOwnTrace)promise._attachExtraTrace(warning);else if(config.longStackTraces&&(ctx=Promise._peekContext()))ctx.attachExtraTrace(warning);else{var parsed=parseStackAndMessage(warning);warning.stack=parsed.message+"\n"+parsed.stack.join("\n")}activeFireEvent("warning",warning)||formatAndLogError(warning,"",!0)}}function reconstructStack(message,stacks){for(var i=0;i=0;--j)if(prev[j]===currentLastLine){commonRootMeetPoint=j;break}for(var j=commonRootMeetPoint;j>=0;--j){var line=prev[j];if(current[currentLastIndex]!==line)break;current.pop(),currentLastIndex--}current=prev}}function cleanStack(stack){for(var ret=[],i=0;i0&&"SyntaxError"!=error.name&&(stack=stack.slice(i)),stack}function parseStackAndMessage(error){ +var stack=error.stack,message=error.toString();return stack="string"==typeof stack&&stack.length>0?stackFramesAsArray(error):[" (No stack trace)"],{message:message,stack:"SyntaxError"==error.name?stack:cleanStack(stack)}}function formatAndLogError(error,title,isSoft){if("undefined"!=typeof console){var message;if(util.isObject(error)){var stack=error.stack;message=title+formatStack(stack,error)}else message=title+String(error);"function"==typeof printWarning?printWarning(message,isSoft):("function"==typeof console.log||"object"==typeof console.log)&&console.log(message)}}function fireRejectionEvent(name,localHandler,reason,promise){var localEventFired=!1;try{"function"==typeof localHandler&&(localEventFired=!0,"rejectionHandled"===name?localHandler(promise):localHandler(reason,promise))}catch(e){async.throwLater(e)}"unhandledRejection"===name?activeFireEvent(name,reason,promise)||localEventFired||formatAndLogError(reason,"Unhandled rejection "):activeFireEvent(name,promise)}function formatNonError(obj){var str;if("function"==typeof obj)str="[function "+(obj.name||"anonymous")+"]";else{str=obj&&"function"==typeof obj.toString?obj.toString():util.toString(obj);var ruselessToString=/\[object [a-zA-Z0-9$_]+\]/;if(ruselessToString.test(str))try{var newStr=JSON.stringify(obj);str=newStr}catch(e){}0===str.length&&(str="(empty array)")}return"(<"+snip(str)+">, no stack trace)"}function snip(str){var maxChars=41;return str.lengthfirstIndex||0>lastIndex||!firstFileName||!lastFileName||firstFileName!==lastFileName||firstIndex>=lastIndex||(shouldIgnore=function(line){if(bluebirdFramePattern.test(line))return!0;var info=parseLineInfo(line);return info&&info.fileName===firstFileName&&firstIndex<=info.line&&info.line<=lastIndex?!0:!1})}}function CapturedTrace(parent){this._parent=parent,this._promisesCreated=0;var length=this._length=1+(void 0===parent?0:parent._length);captureStackTrace(this,CapturedTrace),length>32&&this.uncycle()}var unhandledRejectionHandled,possiblyUnhandledRejection,printWarning,getDomain=Promise._getDomain,async=Promise._async,Warning=require("./errors").Warning,util=require("./util"),canAttachTrace=util.canAttachTrace,bluebirdFramePattern=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,nodeFramePattern=/\((?:timers\.js):\d+:\d+\)/,parseLinePattern=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,stackFramePattern=null,formatStack=null,indentStackFrames=!1,debugging=!(0==util.env("BLUEBIRD_DEBUG")||!util.env("BLUEBIRD_DEBUG")&&"development"!==util.env("NODE_ENV")),warnings=!(0==util.env("BLUEBIRD_WARNINGS")||!debugging&&!util.env("BLUEBIRD_WARNINGS")),longStackTraces=!(0==util.env("BLUEBIRD_LONG_STACK_TRACES")||!debugging&&!util.env("BLUEBIRD_LONG_STACK_TRACES")),wForgottenReturn=0!=util.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(warnings||!!util.env("BLUEBIRD_W_FORGOTTEN_RETURN"));Promise.prototype.suppressUnhandledRejections=function(){var target=this._target();target._bitField=-1048577&target._bitField|524288},Promise.prototype._ensurePossibleRejectionHandled=function(){0===(524288&this._bitField)&&(this._setRejectionIsUnhandled(),async.invokeLater(this._notifyUnhandledRejection,this,void 0))},Promise.prototype._notifyUnhandledRejectionIsHandled=function(){fireRejectionEvent("rejectionHandled",unhandledRejectionHandled,void 0,this)},Promise.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},Promise.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},Promise.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var reason=this._settledValue();this._setUnhandledRejectionIsNotified(),fireRejectionEvent("unhandledRejection",possiblyUnhandledRejection,reason,this)}},Promise.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},Promise.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},Promise.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},Promise.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},Promise.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},Promise.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},Promise.prototype._warn=function(message,shouldUseOwnTrace,promise){return warn(message,shouldUseOwnTrace,promise||this)},Promise.onPossiblyUnhandledRejection=function(fn){var domain=getDomain();possiblyUnhandledRejection="function"==typeof fn?null===domain?fn:util.domainBind(domain,fn):void 0},Promise.onUnhandledRejectionHandled=function(fn){var domain=getDomain();unhandledRejectionHandled="function"==typeof fn?null===domain?fn:util.domainBind(domain,fn):void 0};var disableLongStackTraces=function(){};Promise.longStackTraces=function(){if(async.haveItemsQueued()&&!config.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!config.longStackTraces&&longStackTracesIsSupported()){var Promise_captureStackTrace=Promise.prototype._captureStackTrace,Promise_attachExtraTrace=Promise.prototype._attachExtraTrace;config.longStackTraces=!0,disableLongStackTraces=function(){if(async.haveItemsQueued()&&!config.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");Promise.prototype._captureStackTrace=Promise_captureStackTrace,Promise.prototype._attachExtraTrace=Promise_attachExtraTrace,Context.deactivateLongStackTraces(),async.enableTrampoline(),config.longStackTraces=!1},Promise.prototype._captureStackTrace=longStackTracesCaptureStackTrace,Promise.prototype._attachExtraTrace=longStackTracesAttachExtraTrace,Context.activateLongStackTraces(),async.disableTrampolineIfNecessary()}},Promise.hasLongStackTraces=function(){return config.longStackTraces&&longStackTracesIsSupported()};var fireDomEvent=function(){try{if("function"==typeof CustomEvent){var event=new CustomEvent("CustomEvent");return util.global.dispatchEvent(event),function(name,event){var domEvent=new CustomEvent(name.toLowerCase(),{detail:event,cancelable:!0});return!util.global.dispatchEvent(domEvent)}}if("function"==typeof Event){var event=new Event("CustomEvent");return util.global.dispatchEvent(event),function(name,event){var domEvent=new Event(name.toLowerCase(),{cancelable:!0});return domEvent.detail=event,!util.global.dispatchEvent(domEvent)}}var event=document.createEvent("CustomEvent");return event.initCustomEvent("testingtheevent",!1,!0,{}),util.global.dispatchEvent(event),function(name,event){var domEvent=document.createEvent("CustomEvent");return domEvent.initCustomEvent(name.toLowerCase(),!1,!0,event),!util.global.dispatchEvent(domEvent)}}catch(e){}return function(){return!1}}(),fireGlobalEvent=function(){return util.isNode?function(){return process.emit.apply(process,arguments)}:util.global?function(name){var methodName="on"+name.toLowerCase(),method=util.global[methodName];return method?(method.apply(util.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),eventToObjectGenerator={promiseCreated:generatePromiseLifecycleEventObject,promiseFulfilled:generatePromiseLifecycleEventObject,promiseRejected:generatePromiseLifecycleEventObject,promiseResolved:generatePromiseLifecycleEventObject,promiseCancelled:generatePromiseLifecycleEventObject,promiseChained:function(name,promise,child){return{promise:promise,child:child}},warning:function(name,warning){return{warning:warning}},unhandledRejection:function(name,reason,promise){return{reason:reason,promise:promise}},rejectionHandled:generatePromiseLifecycleEventObject},activeFireEvent=function(name){var globalEventFired=!1;try{globalEventFired=fireGlobalEvent.apply(null,arguments)}catch(e){async.throwLater(e),globalEventFired=!0}var domEventFired=!1;try{domEventFired=fireDomEvent(name,eventToObjectGenerator[name].apply(null,arguments))}catch(e){async.throwLater(e),domEventFired=!0}return domEventFired||globalEventFired};Promise.config=function(opts){if(opts=Object(opts),"longStackTraces"in opts&&(opts.longStackTraces?Promise.longStackTraces():!opts.longStackTraces&&Promise.hasLongStackTraces()&&disableLongStackTraces()),"warnings"in opts){var warningsOption=opts.warnings;config.warnings=!!warningsOption,wForgottenReturn=config.warnings,util.isObject(warningsOption)&&"wForgottenReturn"in warningsOption&&(wForgottenReturn=!!warningsOption.wForgottenReturn)}if("cancellation"in opts&&opts.cancellation&&!config.cancellation){if(async.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");Promise.prototype._clearCancellationData=cancellationClearCancellationData,Promise.prototype._propagateFrom=cancellationPropagateFrom,Promise.prototype._onCancel=cancellationOnCancel,Promise.prototype._setOnCancel=cancellationSetOnCancel,Promise.prototype._attachCancellationCallback=cancellationAttachCancellationCallback,Promise.prototype._execute=cancellationExecute,propagateFromFunction=cancellationPropagateFrom,config.cancellation=!0}return"monitoring"in opts&&(opts.monitoring&&!config.monitoring?(config.monitoring=!0,Promise.prototype._fireEvent=activeFireEvent):!opts.monitoring&&config.monitoring&&(config.monitoring=!1,Promise.prototype._fireEvent=defaultFireEvent)),Promise},Promise.prototype._fireEvent=defaultFireEvent,Promise.prototype._execute=function(executor,resolve,reject){try{executor(resolve,reject)}catch(e){return e}},Promise.prototype._onCancel=function(){},Promise.prototype._setOnCancel=function(handler){},Promise.prototype._attachCancellationCallback=function(onCancel){},Promise.prototype._captureStackTrace=function(){},Promise.prototype._attachExtraTrace=function(){},Promise.prototype._clearCancellationData=function(){},Promise.prototype._propagateFrom=function(parent,flags){};var propagateFromFunction=bindingPropagateFrom,shouldIgnore=function(){return!1},parseLineInfoRegex=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;util.inherits(CapturedTrace,Error),Context.CapturedTrace=CapturedTrace,CapturedTrace.prototype.uncycle=function(){var length=this._length;if(!(2>length)){for(var nodes=[],stackToIndex={},i=0,node=this;void 0!==node;++i)nodes.push(node),node=node._parent;length=this._length=i;for(var i=length-1;i>=0;--i){var stack=nodes[i].stack;void 0===stackToIndex[stack]&&(stackToIndex[stack]=i)}for(var i=0;length>i;++i){var currentStack=nodes[i].stack,index=stackToIndex[currentStack];if(void 0!==index&&index!==i){index>0&&(nodes[index-1]._parent=void 0,nodes[index-1]._length=1),nodes[i]._parent=void 0,nodes[i]._length=1;var cycleEdgeNode=i>0?nodes[i-1]:this;length-1>index?(cycleEdgeNode._parent=nodes[index+1],cycleEdgeNode._parent.uncycle(),cycleEdgeNode._length=cycleEdgeNode._parent._length+1):(cycleEdgeNode._parent=void 0,cycleEdgeNode._length=1);for(var currentChildLength=cycleEdgeNode._length+1,j=i-2;j>=0;--j)nodes[j]._length=currentChildLength,currentChildLength++;return}}}},CapturedTrace.prototype.attachExtraTrace=function(error){if(!error.__stackCleaned__){this.uncycle();for(var parsed=parseStackAndMessage(error),message=parsed.message,stacks=[parsed.stack],trace=this;void 0!==trace;)stacks.push(cleanStack(trace.stack.split("\n"))),trace=trace._parent;removeCommonRoots(stacks),removeDuplicateOrEmptyJumps(stacks),util.notEnumerableProp(error,"stack",reconstructStack(message,stacks)),util.notEnumerableProp(error,"__stackCleaned__",!0)}};var captureStackTrace=function(){var v8stackFramePattern=/^\s*at\s*/,v8stackFormatter=function(stack,error){return"string"==typeof stack?stack:void 0!==error.name&&void 0!==error.message?error.toString():formatNonError(error)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,stackFramePattern=v8stackFramePattern,formatStack=v8stackFormatter;var captureStackTrace=Error.captureStackTrace;return shouldIgnore=function(line){return bluebirdFramePattern.test(line)},function(receiver,ignoreUntil){Error.stackTraceLimit+=6,captureStackTrace(receiver,ignoreUntil),Error.stackTraceLimit-=6}}var err=new Error;if("string"==typeof err.stack&&err.stack.split("\n")[0].indexOf("stackDetection@")>=0)return stackFramePattern=/@/,formatStack=v8stackFormatter,indentStackFrames=!0,function(o){o.stack=(new Error).stack};var hasStackAfterThrow;try{throw new Error}catch(e){hasStackAfterThrow="stack"in e}return"stack"in err||!hasStackAfterThrow||"number"!=typeof Error.stackTraceLimit?(formatStack=function(stack,error){return"string"==typeof stack?stack:"object"!=typeof error&&"function"!=typeof error||void 0===error.name||void 0===error.message?formatNonError(error):error.toString()},null):(stackFramePattern=v8stackFramePattern,formatStack=v8stackFormatter,function(o){Error.stackTraceLimit+=6;try{throw new Error}catch(e){o.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(printWarning=function(message){console.warn(message)},util.isNode&&process.stderr.isTTY?printWarning=function(message,isSoft){var color=isSoft?"":"";console.warn(color+message+"\n")}:util.isNode||"string"!=typeof(new Error).stack||(printWarning=function(message,isSoft){console.warn("%c"+message,isSoft?"color: darkorange":"color: red")}));var config={warnings:warnings,longStackTraces:!1,cancellation:!1,monitoring:!1};return longStackTraces&&Promise.longStackTraces(),{longStackTraces:function(){return config.longStackTraces},warnings:function(){return config.warnings},cancellation:function(){return config.cancellation},monitoring:function(){return config.monitoring},propagateFromFunction:function(){return propagateFromFunction},boundValueFunction:function(){return boundValueFunction},checkForgottenReturns:checkForgottenReturns,setBounds:setBounds,warn:warn,deprecated:deprecated,CapturedTrace:CapturedTrace,fireDomEvent:fireDomEvent,fireGlobalEvent:fireGlobalEvent}}}).call(this,require("_process"))},{"./errors":58,"./util":82,_process:102}],56:[function(require,module,exports){"use strict";module.exports=function(Promise){function returner(){return this.value}function thrower(){throw this.reason}Promise.prototype["return"]=Promise.prototype.thenReturn=function(value){return value instanceof Promise&&value.suppressUnhandledRejections(),this._then(returner,void 0,void 0,{value:value},void 0)},Promise.prototype["throw"]=Promise.prototype.thenThrow=function(reason){return this._then(thrower,void 0,void 0,{reason:reason},void 0)},Promise.prototype.catchThrow=function(reason){if(arguments.length<=1)return this._then(void 0,thrower,void 0,{reason:reason},void 0);var _reason=arguments[1],handler=function(){throw _reason};return this.caught(reason,handler)},Promise.prototype.catchReturn=function(value){if(arguments.length<=1)return value instanceof Promise&&value.suppressUnhandledRejections(),this._then(void 0,returner,void 0,{value:value},void 0);var _value=arguments[1];_value instanceof Promise&&_value.suppressUnhandledRejections();var handler=function(){return _value};return this.caught(value,handler)}}},{}],57:[function(require,module,exports){"use strict";module.exports=function(Promise,INTERNAL){function promiseAllThis(){return PromiseAll(this)}function PromiseMapSeries(promises,fn){return PromiseReduce(promises,fn,INTERNAL,INTERNAL)}var PromiseReduce=Promise.reduce,PromiseAll=Promise.all;Promise.prototype.each=function(fn){return PromiseReduce(this,fn,INTERNAL,0)._then(promiseAllThis,void 0,void 0,this,void 0)},Promise.prototype.mapSeries=function(fn){return PromiseReduce(this,fn,INTERNAL,INTERNAL)},Promise.each=function(promises,fn){return PromiseReduce(promises,fn,INTERNAL,0)._then(promiseAllThis,void 0,void 0,promises,void 0)},Promise.mapSeries=PromiseMapSeries}},{}],58:[function(require,module,exports){"use strict";function subError(nameProperty,defaultMessage){function SubError(message){return this instanceof SubError?(notEnumerableProp(this,"message","string"==typeof message?message:defaultMessage),notEnumerableProp(this,"name",nameProperty),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new SubError(message)}return inherits(SubError,Error),SubError}function OperationalError(message){return this instanceof OperationalError?(notEnumerableProp(this,"name","OperationalError"),notEnumerableProp(this,"message",message),this.cause=message,this.isOperational=!0,void(message instanceof Error?(notEnumerableProp(this,"message",message.message),notEnumerableProp(this,"stack",message.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new OperationalError(message)}var _TypeError,_RangeError,es5=require("./es5"),Objectfreeze=es5.freeze,util=require("./util"),inherits=util.inherits,notEnumerableProp=util.notEnumerableProp,Warning=subError("Warning","warning"),CancellationError=subError("CancellationError","cancellation error"),TimeoutError=subError("TimeoutError","timeout error"),AggregateError=subError("AggregateError","aggregate error");try{_TypeError=TypeError,_RangeError=RangeError}catch(e){_TypeError=subError("TypeError","type error"),_RangeError=subError("RangeError","range error")}for(var methods="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),i=0;i1?ctx.cancelPromise._reject(reason):ctx.cancelPromise._cancel(),ctx.cancelPromise=null,!0):!1}function succeed(){return finallyHandler.call(this,this.promise._target()._settledValue())}function fail(reason){return checkCancel(this,reason)?void 0:(errorObj.e=reason,errorObj)}function finallyHandler(reasonOrValue){var promise=this.promise,handler=this.handler;if(!this.called){this.called=!0;var ret=this.isFinallyHandler()?handler.call(promise._boundValue()):handler.call(promise._boundValue(),reasonOrValue);if(void 0!==ret){promise._setReturnedNonUndefined();var maybePromise=tryConvertToPromise(ret,promise);if(maybePromise instanceof Promise){if(null!=this.cancelPromise){if(maybePromise._isCancelled()){var reason=new CancellationError("late cancellation observer");return promise._attachExtraTrace(reason),errorObj.e=reason,errorObj}maybePromise.isPending()&&maybePromise._attachCancellationCallback(new FinallyHandlerCancelReaction(this))}return maybePromise._then(succeed,fail,void 0,this,void 0)}}}return promise.isRejected()?(checkCancel(this),errorObj.e=reasonOrValue,errorObj):(checkCancel(this),reasonOrValue)}var util=require("./util"),CancellationError=Promise.CancellationError,errorObj=util.errorObj;return PassThroughHandlerContext.prototype.isFinallyHandler=function(){return 0===this.type},FinallyHandlerCancelReaction.prototype._resultCancelled=function(){checkCancel(this.finallyHandler)},Promise.prototype._passThrough=function(handler,type,success,fail){return"function"!=typeof handler?this.then():this._then(success,fail,void 0,new PassThroughHandlerContext(this,type,handler),void 0)},Promise.prototype.lastly=Promise.prototype["finally"]=function(handler){return this._passThrough(handler,0,finallyHandler,finallyHandler)},Promise.prototype.tap=function(handler){return this._passThrough(handler,1,finallyHandler)},PassThroughHandlerContext}},{"./util":82}],62:[function(require,module,exports){"use strict";module.exports=function(Promise,apiRejection,INTERNAL,tryConvertToPromise,Proxyable,debug){function promiseFromYieldHandler(value,yieldHandlers,traceParent){for(var i=0;ii;++i)holderClasses.push(generateHolderClass(i+1)),thenCallbacks.push(thenCallback(i+1)),promiseSetters.push(promiseSetter(i+1));reject=function(reason){this._reject(reason)}}Promise.join=function(){var fn,last=arguments.length-1;if(last>0&&"function"==typeof arguments[last]&&(fn=arguments[last],8>=last&&canEvaluate)){var ret=new Promise(INTERNAL);ret._captureStackTrace();for(var HolderClass=holderClasses[last-1],holder=new HolderClass(fn),callbacks=thenCallbacks,i=0;last>i;++i){var maybePromise=tryConvertToPromise(arguments[i],ret);if(maybePromise instanceof Promise){maybePromise=maybePromise._target();var bitField=maybePromise._bitField;0===(50397184&bitField)?(maybePromise._then(callbacks[i],reject,void 0,ret,holder),promiseSetters[i](maybePromise,holder),holder.asyncNeeded=!1):0!==(33554432&bitField)?callbacks[i].call(ret,maybePromise._value(),holder):0!==(16777216&bitField)?ret._reject(maybePromise._reason()):ret._cancel()}else callbacks[i].call(ret,maybePromise,holder)}if(!ret._isFateSealed()){if(holder.asyncNeeded){var domain=getDomain();null!==domain&&(holder.fn=util.domainBind(domain,holder.fn))}ret._setAsyncGuaranteed(),ret._setOnCancel(holder)}return ret}for(var $_len=arguments.length,args=new Array($_len),$_i=0;$_len>$_i;++$_i)args[$_i]=arguments[$_i];fn&&args.pop();var ret=new PromiseArray(args).promise();return void 0!==fn?ret.spread(fn):ret}}},{"./util":82}],64:[function(require,module,exports){"use strict";module.exports=function(Promise,PromiseArray,apiRejection,tryConvertToPromise,INTERNAL,debug){function MappingPromiseArray(promises,fn,limit,_filter){this.constructor$(promises),this._promise._captureStackTrace();var domain=getDomain();this._callback=null===domain?fn:util.domainBind(domain,fn),this._preservedValues=_filter===INTERNAL?new Array(this.length()):null,this._limit=limit,this._inFlight=0,this._queue=[],async.invoke(this._asyncInit,this,void 0)}function map(promises,fn,options,_filter){if("function"!=typeof fn)return apiRejection("expecting a function but got "+util.classString(fn));var limit=0;if(void 0!==options){if("object"!=typeof options||null===options)return Promise.reject(new TypeError("options argument must be an object but it is "+util.classString(options)));if("number"!=typeof options.concurrency)return Promise.reject(new TypeError("'concurrency' must be a number but it is "+util.classString(options.concurrency)));limit=options.concurrency}return limit="number"==typeof limit&&isFinite(limit)&&limit>=1?limit:0,new MappingPromiseArray(promises,fn,limit,_filter).promise()}var getDomain=Promise._getDomain,util=require("./util"),tryCatch=util.tryCatch,errorObj=util.errorObj,async=Promise._async;util.inherits(MappingPromiseArray,PromiseArray),MappingPromiseArray.prototype._asyncInit=function(){this._init$(void 0,-2)},MappingPromiseArray.prototype._init=function(){},MappingPromiseArray.prototype._promiseFulfilled=function(value,index){var values=this._values,length=this.length(),preservedValues=this._preservedValues,limit=this._limit;if(0>index){if(index=-1*index-1,values[index]=value,limit>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(limit>=1&&this._inFlight>=limit)return values[index]=value,this._queue.push(index),!1;null!==preservedValues&&(preservedValues[index]=value);var promise=this._promise,callback=this._callback,receiver=promise._boundValue();promise._pushContext();var ret=tryCatch(callback).call(receiver,value,index,length),promiseCreated=promise._popContext();if(debug.checkForgottenReturns(ret,promiseCreated,null!==preservedValues?"Promise.filter":"Promise.map",promise),ret===errorObj)return this._reject(ret.e),!0;var maybePromise=tryConvertToPromise(ret,this._promise);if(maybePromise instanceof Promise){maybePromise=maybePromise._target();var bitField=maybePromise._bitField;if(0===(50397184&bitField))return limit>=1&&this._inFlight++,values[index]=maybePromise,maybePromise._proxy(this,-1*(index+1)),!1;if(0===(33554432&bitField))return 0!==(16777216&bitField)?(this._reject(maybePromise._reason()),!0):(this._cancel(),!0);ret=maybePromise._value()}values[index]=ret}var totalResolved=++this._totalResolved;return totalResolved>=length?(null!==preservedValues?this._filter(values,preservedValues):this._resolve(values),!0):!1},MappingPromiseArray.prototype._drainQueue=function(){for(var queue=this._queue,limit=this._limit,values=this._values;queue.length>0&&this._inFlighti;++i)booleans[i]&&(ret[j++]=values[i]);ret.length=j,this._resolve(ret)},MappingPromiseArray.prototype.preservedValues=function(){return this._preservedValues},Promise.prototype.map=function(fn,options){return map(this,fn,options,null)},Promise.map=function(promises,fn,options,_filter){return map(promises,fn,options,_filter)}}},{"./util":82}],65:[function(require,module,exports){"use strict";module.exports=function(Promise,INTERNAL,tryConvertToPromise,apiRejection,debug){var util=require("./util"),tryCatch=util.tryCatch;Promise.method=function(fn){if("function"!=typeof fn)throw new Promise.TypeError("expecting a function but got "+util.classString(fn));return function(){var ret=new Promise(INTERNAL);ret._captureStackTrace(),ret._pushContext();var value=tryCatch(fn).apply(this,arguments),promiseCreated=ret._popContext();return debug.checkForgottenReturns(value,promiseCreated,"Promise.method",ret),ret._resolveFromSyncValue(value),ret}},Promise.attempt=Promise["try"]=function(fn){if("function"!=typeof fn)return apiRejection("expecting a function but got "+util.classString(fn));var ret=new Promise(INTERNAL);ret._captureStackTrace(),ret._pushContext();var value;if(arguments.length>1){debug.deprecated("calling Promise.try with more than 1 argument");var arg=arguments[1],ctx=arguments[2];value=util.isArray(arg)?tryCatch(fn).apply(ctx,arg):tryCatch(fn).call(ctx,arg)}else value=tryCatch(fn)();var promiseCreated=ret._popContext();return debug.checkForgottenReturns(value,promiseCreated,"Promise.try",ret),ret._resolveFromSyncValue(value),ret},Promise.prototype._resolveFromSyncValue=function(value){value===util.errorObj?this._rejectCallback(value.e,!1):this._resolveCallback(value,!0)}}},{"./util":82}],66:[function(require,module,exports){"use strict";function isUntypedError(obj){return obj instanceof Error&&es5.getPrototypeOf(obj)===Error.prototype}function wrapAsOperationalError(obj){var ret;if(isUntypedError(obj)){ret=new OperationalError(obj),ret.name=obj.name,ret.message=obj.message,ret.stack=obj.stack;for(var keys=es5.keys(obj),i=0;i$_i;++$_i)args[$_i-1]=arguments[$_i];promise._fulfill(args)}else promise._fulfill(value);promise=null}}}var util=require("./util"),maybeWrapAsError=util.maybeWrapAsError,errors=require("./errors"),OperationalError=errors.OperationalError,es5=require("./es5"),rErrorKey=/^(?:name|message|stack|cause)$/;module.exports=nodebackForPromise},{"./errors":58,"./es5":59,"./util":82}],67:[function(require,module,exports){"use strict";module.exports=function(Promise){function spreadAdapter(val,nodeback){var promise=this;if(!util.isArray(val))return successAdapter.call(promise,val,nodeback);var ret=tryCatch(nodeback).apply(promise._boundValue(),[null].concat(val));ret===errorObj&&async.throwLater(ret.e)}function successAdapter(val,nodeback){var promise=this,receiver=promise._boundValue(),ret=void 0===val?tryCatch(nodeback).call(receiver,null):tryCatch(nodeback).call(receiver,null,val);ret===errorObj&&async.throwLater(ret.e)}function errorAdapter(reason,nodeback){var promise=this;if(!reason){var newReason=new Error(reason+"");newReason.cause=reason,reason=newReason}var ret=tryCatch(nodeback).call(promise._boundValue(),reason);ret===errorObj&&async.throwLater(ret.e)}var util=require("./util"),async=Promise._async,tryCatch=util.tryCatch,errorObj=util.errorObj;Promise.prototype.asCallback=Promise.prototype.nodeify=function(nodeback,options){if("function"==typeof nodeback){var adapter=successAdapter;void 0!==options&&Object(options).spread&&(adapter=spreadAdapter),this._then(adapter,errorAdapter,void 0,this,nodeback)}return this}}},{"./util":82}],68:[function(require,module,exports){(function(process){"use strict";module.exports=function(){function Proxyable(){}function check(self,executor){if("function"!=typeof executor)throw new TypeError("expecting a function but got "+util.classString(executor));if(self.constructor!==Promise)throw new TypeError("the promise constructor cannot be invoked directly\n\n See http://goo.gl/MqrFmX\n")}function Promise(executor){this._bitField=0,this._fulfillmentHandler0=void 0,this._rejectionHandler0=void 0,this._promise0=void 0,this._receiver0=void 0,executor!==INTERNAL&&(check(this,executor),this._resolveFromExecutor(executor)),this._promiseCreated(),this._fireEvent("promiseCreated",this)}function deferResolve(v){this.promise._resolveCallback(v)}function deferReject(v){this.promise._rejectCallback(v,!1)}function fillTypes(value){var p=new Promise(INTERNAL);p._fulfillmentHandler0=value,p._rejectionHandler0=value,p._promise0=value,p._receiver0=value}var getDomain,makeSelfResolutionError=function(){return new TypeError("circular promise resolution chain\n\n See http://goo.gl/MqrFmX\n")},reflectHandler=function(){return new Promise.PromiseInspection(this._target())},apiRejection=function(msg){return Promise.reject(new TypeError(msg))},UNDEFINED_BINDING={},util=require("./util");getDomain=util.isNode?function(){var ret=process.domain;return void 0===ret&&(ret=null),ret}:function(){return null},util.notEnumerableProp(Promise,"_getDomain",getDomain);var es5=require("./es5"),Async=require("./async"),async=new Async;es5.defineProperty(Promise,"_async",{value:async});var errors=require("./errors"),TypeError=Promise.TypeError=errors.TypeError;Promise.RangeError=errors.RangeError;var CancellationError=Promise.CancellationError=errors.CancellationError;Promise.TimeoutError=errors.TimeoutError,Promise.OperationalError=errors.OperationalError,Promise.RejectionError=errors.OperationalError,Promise.AggregateError=errors.AggregateError;var INTERNAL=function(){},APPLY={},NEXT_FILTER={},tryConvertToPromise=require("./thenables")(Promise,INTERNAL),PromiseArray=require("./promise_array")(Promise,INTERNAL,tryConvertToPromise,apiRejection,Proxyable),Context=require("./context")(Promise),createContext=Context.create,debug=require("./debuggability")(Promise,Context),PassThroughHandlerContext=(debug.CapturedTrace,require("./finally")(Promise,tryConvertToPromise)),catchFilter=require("./catch_filter")(NEXT_FILTER),nodebackForPromise=require("./nodeback"),errorObj=util.errorObj,tryCatch=util.tryCatch;return Promise.prototype.toString=function(){return"[object Promise]"},Promise.prototype.caught=Promise.prototype["catch"]=function(fn){var len=arguments.length;if(len>1){var i,catchInstances=new Array(len-1),j=0;for(i=0;len-1>i;++i){var item=arguments[i];if(!util.isObject(item))return apiRejection("expecting an object but got A catch statement predicate "+util.classString(item));catchInstances[j++]=item}return catchInstances.length=j,fn=arguments[i],this.then(void 0,catchFilter(catchInstances,fn,this))}return this.then(void 0,fn)},Promise.prototype.reflect=function(){return this._then(reflectHandler,reflectHandler,void 0,this,void 0)},Promise.prototype.then=function(didFulfill,didReject){if(debug.warnings()&&arguments.length>0&&"function"!=typeof didFulfill&&"function"!=typeof didReject){var msg=".then() only accepts functions but was passed: "+util.classString(didFulfill);arguments.length>1&&(msg+=", "+util.classString(didReject)),this._warn(msg)}return this._then(didFulfill,didReject,void 0,void 0,void 0)},Promise.prototype.done=function(didFulfill,didReject){var promise=this._then(didFulfill,didReject,void 0,void 0,void 0);promise._setIsFinal()},Promise.prototype.spread=function(fn){return"function"!=typeof fn?apiRejection("expecting a function but got "+util.classString(fn)):this.all()._then(fn,void 0,void 0,APPLY,void 0)},Promise.prototype.toJSON=function(){var ret={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(ret.fulfillmentValue=this.value(),ret.isFulfilled=!0):this.isRejected()&&(ret.rejectionReason=this.reason(),ret.isRejected=!0),ret},Promise.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new PromiseArray(this).promise()},Promise.prototype.error=function(fn){return this.caught(util.originatesFromRejection,fn)},Promise.getNewLibraryCopy=module.exports,Promise.is=function(val){return val instanceof Promise},Promise.fromNode=Promise.fromCallback=function(fn){var ret=new Promise(INTERNAL);ret._captureStackTrace();var multiArgs=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,result=tryCatch(fn)(nodebackForPromise(ret,multiArgs));return result===errorObj&&ret._rejectCallback(result.e,!0),ret._isFateSealed()||ret._setAsyncGuaranteed(),ret},Promise.all=function(promises){return new PromiseArray(promises).promise()},Promise.cast=function(obj){var ret=tryConvertToPromise(obj);return ret instanceof Promise||(ret=new Promise(INTERNAL),ret._captureStackTrace(),ret._setFulfilled(),ret._rejectionHandler0=obj),ret},Promise.resolve=Promise.fulfilled=Promise.cast,Promise.reject=Promise.rejected=function(reason){var ret=new Promise(INTERNAL);return ret._captureStackTrace(),ret._rejectCallback(reason,!0),ret},Promise.setScheduler=function(fn){if("function"!=typeof fn)throw new TypeError("expecting a function but got "+util.classString(fn));return async.setScheduler(fn)},Promise.prototype._then=function(didFulfill,didReject,_,receiver,internalData){var haveInternalData=void 0!==internalData,promise=haveInternalData?internalData:new Promise(INTERNAL),target=this._target(),bitField=target._bitField;haveInternalData||(promise._propagateFrom(this,3),promise._captureStackTrace(),void 0===receiver&&0!==(2097152&this._bitField)&&(receiver=0!==(50397184&bitField)?this._boundValue():target===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,promise));var domain=getDomain();if(0!==(50397184&bitField)){var handler,value,settler=target._settlePromiseCtx;0!==(33554432&bitField)?(value=target._rejectionHandler0,handler=didFulfill):0!==(16777216&bitField)?(value=target._fulfillmentHandler0,handler=didReject,target._unsetRejectionIsUnhandled()):(settler=target._settlePromiseLateCancellationObserver,value=new CancellationError("late cancellation observer"),target._attachExtraTrace(value),handler=didReject),async.invoke(settler,target,{handler:null===domain?handler:"function"==typeof handler&&util.domainBind(domain,handler),promise:promise,receiver:receiver,value:value})}else target._addCallbacks(didFulfill,didReject,promise,receiver,domain);return promise},Promise.prototype._length=function(){return 65535&this._bitField},Promise.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},Promise.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},Promise.prototype._setLength=function(len){this._bitField=-65536&this._bitField|65535&len},Promise.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},Promise.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},Promise.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},Promise.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},Promise.prototype._isFinal=function(){return(4194304&this._bitField)>0},Promise.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},Promise.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},Promise.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},Promise.prototype._setAsyncGuaranteed=function(){async.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},Promise.prototype._receiverAt=function(index){var ret=0===index?this._receiver0:this[4*index-4+3];return ret===UNDEFINED_BINDING?void 0:void 0===ret&&this._isBound()?this._boundValue():ret},Promise.prototype._promiseAt=function(index){return this[4*index-4+2]},Promise.prototype._fulfillmentHandlerAt=function(index){return this[4*index-4+0]},Promise.prototype._rejectionHandlerAt=function(index){return this[4*index-4+1]},Promise.prototype._boundValue=function(){},Promise.prototype._migrateCallback0=function(follower){var fulfill=(follower._bitField,follower._fulfillmentHandler0),reject=follower._rejectionHandler0,promise=follower._promise0,receiver=follower._receiverAt(0);void 0===receiver&&(receiver=UNDEFINED_BINDING),this._addCallbacks(fulfill,reject,promise,receiver,null)},Promise.prototype._migrateCallbackAt=function(follower,index){var fulfill=follower._fulfillmentHandlerAt(index),reject=follower._rejectionHandlerAt(index),promise=follower._promiseAt(index),receiver=follower._receiverAt(index);void 0===receiver&&(receiver=UNDEFINED_BINDING),this._addCallbacks(fulfill,reject,promise,receiver,null)},Promise.prototype._addCallbacks=function(fulfill,reject,promise,receiver,domain){var index=this._length();if(index>=65531&&(index=0,this._setLength(0)),0===index)this._promise0=promise,this._receiver0=receiver,"function"==typeof fulfill&&(this._fulfillmentHandler0=null===domain?fulfill:util.domainBind(domain,fulfill)),"function"==typeof reject&&(this._rejectionHandler0=null===domain?reject:util.domainBind(domain,reject));else{var base=4*index-4;this[base+2]=promise,this[base+3]=receiver,"function"==typeof fulfill&&(this[base+0]=null===domain?fulfill:util.domainBind(domain,fulfill)),"function"==typeof reject&&(this[base+1]=null===domain?reject:util.domainBind(domain,reject))}return this._setLength(index+1),index},Promise.prototype._proxy=function(proxyable,arg){this._addCallbacks(void 0,void 0,arg,proxyable,null)},Promise.prototype._resolveCallback=function(value,shouldBind){if(0===(117506048&this._bitField)){if(value===this)return this._rejectCallback(makeSelfResolutionError(),!1);var maybePromise=tryConvertToPromise(value,this);if(!(maybePromise instanceof Promise))return this._fulfill(value);shouldBind&&this._propagateFrom(maybePromise,2);var promise=maybePromise._target();if(promise===this)return void this._reject(makeSelfResolutionError());var bitField=promise._bitField;if(0===(50397184&bitField)){var len=this._length();len>0&&promise._migrateCallback0(this);for(var i=1;len>i;++i)promise._migrateCallbackAt(this,i);this._setFollowing(),this._setLength(0),this._setFollowee(promise)}else if(0!==(33554432&bitField))this._fulfill(promise._value());else if(0!==(16777216&bitField))this._reject(promise._reason());else{var reason=new CancellationError("late cancellation observer");promise._attachExtraTrace(reason),this._reject(reason)}}},Promise.prototype._rejectCallback=function(reason,synchronous,ignoreNonErrorWarnings){var trace=util.ensureErrorObject(reason),hasStack=trace===reason;if(!hasStack&&!ignoreNonErrorWarnings&&debug.warnings()){var message="a promise was rejected with a non-error: "+util.classString(reason);this._warn(message,!0)}this._attachExtraTrace(trace,synchronous?hasStack:!1),this._reject(reason)},Promise.prototype._resolveFromExecutor=function(executor){var promise=this;this._captureStackTrace(),this._pushContext();var synchronous=!0,r=this._execute(executor,function(value){promise._resolveCallback(value)},function(reason){promise._rejectCallback(reason,synchronous)});synchronous=!1,this._popContext(),void 0!==r&&promise._rejectCallback(r,!0)},Promise.prototype._settlePromiseFromHandler=function(handler,receiver,value,promise){var bitField=promise._bitField;if(0===(65536&bitField)){promise._pushContext();var x;receiver===APPLY?value&&"number"==typeof value.length?x=tryCatch(handler).apply(this._boundValue(),value):(x=errorObj,x.e=new TypeError("cannot .spread() a non-array: "+util.classString(value))):x=tryCatch(handler).call(receiver,value);var promiseCreated=promise._popContext();bitField=promise._bitField,0===(65536&bitField)&&(x===NEXT_FILTER?promise._reject(value):x===errorObj?promise._rejectCallback(x.e,!1):(debug.checkForgottenReturns(x,promiseCreated,"",promise,this),promise._resolveCallback(x)))}},Promise.prototype._target=function(){for(var ret=this;ret._isFollowing();)ret=ret._followee();return ret},Promise.prototype._followee=function(){return this._rejectionHandler0},Promise.prototype._setFollowee=function(promise){this._rejectionHandler0=promise},Promise.prototype._settlePromise=function(promise,handler,receiver,value){var isPromise=promise instanceof Promise,bitField=this._bitField,asyncGuaranteed=0!==(134217728&bitField);0!==(65536&bitField)?(isPromise&&promise._invokeInternalOnCancel(),receiver instanceof PassThroughHandlerContext&&receiver.isFinallyHandler()?(receiver.cancelPromise=promise,tryCatch(handler).call(receiver,value)===errorObj&&promise._reject(errorObj.e)):handler===reflectHandler?promise._fulfill(reflectHandler.call(receiver)):receiver instanceof Proxyable?receiver._promiseCancelled(promise):isPromise||promise instanceof PromiseArray?promise._cancel():receiver.cancel()):"function"==typeof handler?isPromise?(asyncGuaranteed&&promise._setAsyncGuaranteed(),this._settlePromiseFromHandler(handler,receiver,value,promise)):handler.call(receiver,value,promise):receiver instanceof Proxyable?receiver._isResolved()||(0!==(33554432&bitField)?receiver._promiseFulfilled(value,promise):receiver._promiseRejected(value,promise)):isPromise&&(asyncGuaranteed&&promise._setAsyncGuaranteed(),0!==(33554432&bitField)?promise._fulfill(value):promise._reject(value))},Promise.prototype._settlePromiseLateCancellationObserver=function(ctx){var handler=ctx.handler,promise=ctx.promise,receiver=ctx.receiver,value=ctx.value;"function"==typeof handler?promise instanceof Promise?this._settlePromiseFromHandler(handler,receiver,value,promise):handler.call(receiver,value,promise):promise instanceof Promise&&promise._reject(value)},Promise.prototype._settlePromiseCtx=function(ctx){this._settlePromise(ctx.promise,ctx.handler,ctx.receiver,ctx.value)},Promise.prototype._settlePromise0=function(handler,value,bitField){var promise=this._promise0,receiver=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(promise,handler,receiver,value)},Promise.prototype._clearCallbackDataAtIndex=function(index){var base=4*index-4;this[base+2]=this[base+3]=this[base+0]=this[base+1]=void 0},Promise.prototype._fulfill=function(value){var bitField=this._bitField;if(!((117506048&bitField)>>>16)){if(value===this){var err=makeSelfResolutionError();return this._attachExtraTrace(err),this._reject(err)}this._setFulfilled(),this._rejectionHandler0=value,(65535&bitField)>0&&(0!==(134217728&bitField)?this._settlePromises():async.settlePromises(this))}},Promise.prototype._reject=function(reason){var bitField=this._bitField;if(!((117506048&bitField)>>>16))return this._setRejected(),this._fulfillmentHandler0=reason,this._isFinal()?async.fatalError(reason,util.isNode):void((65535&bitField)>0?async.settlePromises(this):this._ensurePossibleRejectionHandled())},Promise.prototype._fulfillPromises=function(len,value){for(var i=1;len>i;i++){var handler=this._fulfillmentHandlerAt(i),promise=this._promiseAt(i),receiver=this._receiverAt(i);this._clearCallbackDataAtIndex(i),this._settlePromise(promise,handler,receiver,value)}},Promise.prototype._rejectPromises=function(len,reason){for(var i=1;len>i;i++){var handler=this._rejectionHandlerAt(i),promise=this._promiseAt(i),receiver=this._receiverAt(i);this._clearCallbackDataAtIndex(i),this._settlePromise(promise,handler,receiver,reason)}},Promise.prototype._settlePromises=function(){var bitField=this._bitField,len=65535&bitField;if(len>0){if(0!==(16842752&bitField)){var reason=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,reason,bitField),this._rejectPromises(len,reason)}else{var value=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,value,bitField),this._fulfillPromises(len,value)}this._setLength(0)}this._clearCancellationData()},Promise.prototype._settledValue=function(){var bitField=this._bitField;return 0!==(33554432&bitField)?this._rejectionHandler0:0!==(16777216&bitField)?this._fulfillmentHandler0:void 0},Promise.defer=Promise.pending=function(){debug.deprecated("Promise.defer","new Promise");var promise=new Promise(INTERNAL);return{promise:promise,resolve:deferResolve,reject:deferReject}},util.notEnumerableProp(Promise,"_makeSelfResolutionError",makeSelfResolutionError),require("./method")(Promise,INTERNAL,tryConvertToPromise,apiRejection,debug),require("./bind")(Promise,INTERNAL,tryConvertToPromise,debug),require("./cancel")(Promise,PromiseArray,apiRejection,debug),require("./direct_resolve")(Promise),require("./synchronous_inspection")(Promise),require("./join")(Promise,PromiseArray,tryConvertToPromise,INTERNAL,async,getDomain),Promise.Promise=Promise,Promise.version="3.4.7",require("./map.js")(Promise,PromiseArray,apiRejection,tryConvertToPromise,INTERNAL,debug),require("./call_get.js")(Promise),require("./using.js")(Promise,apiRejection,tryConvertToPromise,createContext,INTERNAL,debug),require("./timers.js")(Promise,INTERNAL,debug),require("./generators.js")(Promise,apiRejection,INTERNAL,tryConvertToPromise,Proxyable,debug),require("./nodeify.js")(Promise),require("./promisify.js")(Promise,INTERNAL),require("./props.js")(Promise,PromiseArray,tryConvertToPromise,apiRejection),require("./race.js")(Promise,INTERNAL,tryConvertToPromise,apiRejection),require("./reduce.js")(Promise,PromiseArray,apiRejection,tryConvertToPromise,INTERNAL,debug),require("./settle.js")(Promise,PromiseArray,debug),require("./some.js")(Promise,PromiseArray,apiRejection),require("./filter.js")(Promise,INTERNAL),require("./each.js")(Promise,INTERNAL),require("./any.js")(Promise),util.toFastProperties(Promise),util.toFastProperties(Promise.prototype),fillTypes({a:1}),fillTypes({b:2}),fillTypes({c:3}),fillTypes(1),fillTypes(function(){}),fillTypes(void 0),fillTypes(!1),fillTypes(new Promise(INTERNAL)),debug.setBounds(Async.firstLineError,util.lastLineError),Promise}}).call(this,require("_process"))},{"./any.js":48,"./async":49,"./bind":50,"./call_get.js":51,"./cancel":52,"./catch_filter":53,"./context":54,"./debuggability":55,"./direct_resolve":56,"./each.js":57,"./errors":58,"./es5":59,"./filter.js":60,"./finally":61,"./generators.js":62,"./join":63,"./map.js":64,"./method":65,"./nodeback":66,"./nodeify.js":67,"./promise_array":69,"./promisify.js":70,"./props.js":71,"./race.js":73,"./reduce.js":74,"./settle.js":76,"./some.js":77,"./synchronous_inspection":78,"./thenables":79,"./timers.js":80,"./using.js":81,"./util":82,_process:102}],69:[function(require,module,exports){"use strict";module.exports=function(Promise,INTERNAL,tryConvertToPromise,apiRejection,Proxyable){function toResolutionValue(val){switch(val){case-2:return[];case-3:return{}}}function PromiseArray(values){var promise=this._promise=new Promise(INTERNAL);values instanceof Promise&&promise._propagateFrom(values,3),promise._setOnCancel(this),this._values=values,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var util=require("./util");util.isArray;return util.inherits(PromiseArray,Proxyable),PromiseArray.prototype.length=function(){return this._length},PromiseArray.prototype.promise=function(){return this._promise},PromiseArray.prototype._init=function init(_,resolveValueIfEmpty){var values=tryConvertToPromise(this._values,this._promise);if(values instanceof Promise){values=values._target();var bitField=values._bitField;if(this._values=values,0===(50397184&bitField))return this._promise._setAsyncGuaranteed(),values._then(init,this._reject,void 0,this,resolveValueIfEmpty);if(0===(33554432&bitField))return 0!==(16777216&bitField)?this._reject(values._reason()):this._cancel();values=values._value()}if(values=util.asArray(values),null===values){var err=apiRejection("expecting an array or an iterable object but got "+util.classString(values)).reason();return void this._promise._rejectCallback(err,!1)}return 0===values.length?void(-5===resolveValueIfEmpty?this._resolveEmptyArray():this._resolve(toResolutionValue(resolveValueIfEmpty))):void this._iterate(values)},PromiseArray.prototype._iterate=function(values){var len=this.getActualLength(values.length);this._length=len,this._values=this.shouldCopyValues()?new Array(len):this._values;for(var result=this._promise,isResolved=!1,bitField=null,i=0;len>i;++i){var maybePromise=tryConvertToPromise(values[i],result);maybePromise instanceof Promise?(maybePromise=maybePromise._target(),bitField=maybePromise._bitField):bitField=null,isResolved?null!==bitField&&maybePromise.suppressUnhandledRejections():null!==bitField?0===(50397184&bitField)?(maybePromise._proxy(this,i),this._values[i]=maybePromise):isResolved=0!==(33554432&bitField)?this._promiseFulfilled(maybePromise._value(),i):0!==(16777216&bitField)?this._promiseRejected(maybePromise._reason(),i):this._promiseCancelled(i):isResolved=this._promiseFulfilled(maybePromise,i)}isResolved||result._setAsyncGuaranteed()},PromiseArray.prototype._isResolved=function(){return null===this._values},PromiseArray.prototype._resolve=function(value){this._values=null,this._promise._fulfill(value)},PromiseArray.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},PromiseArray.prototype._reject=function(reason){this._values=null,this._promise._rejectCallback(reason,!1)},PromiseArray.prototype._promiseFulfilled=function(value,index){this._values[index]=value;var totalResolved=++this._totalResolved;return totalResolved>=this._length?(this._resolve(this._values),!0):!1},PromiseArray.prototype._promiseCancelled=function(){return this._cancel(),!0},PromiseArray.prototype._promiseRejected=function(reason){return this._totalResolved++,this._reject(reason),!0},PromiseArray.prototype._resultCancelled=function(){if(!this._isResolved()){var values=this._values;if(this._cancel(),values instanceof Promise)values.cancel();else for(var i=0;ii;i+=2){var key=methods[i],fn=methods[i+1],promisifiedKey=key+suffix;if(promisifier===makeNodePromisified)obj[promisifiedKey]=makeNodePromisified(key,THIS,key,fn,suffix,multiArgs);else{var promisified=promisifier(fn,function(){return makeNodePromisified(key,THIS,key,fn,suffix,multiArgs)});util.notEnumerableProp(promisified,"__isPromisified__",!0),obj[promisifiedKey]=promisified}}return util.toFastProperties(obj),obj}function promisify(callback,receiver,multiArgs){return makeNodePromisified(callback,receiver,void 0,callback,null,multiArgs)}var makeNodePromisifiedEval,THIS={},util=require("./util"),nodebackForPromise=require("./nodeback"),withAppended=util.withAppended,maybeWrapAsError=util.maybeWrapAsError,canEvaluate=util.canEvaluate,TypeError=require("./errors").TypeError,defaultSuffix="Async",defaultPromisified={__isPromisified__:!0},noCopyProps=["arity","length","name","arguments","caller","callee","prototype","__isPromisified__"],noCopyPropsPattern=new RegExp("^(?:"+noCopyProps.join("|")+")$"),defaultFilter=function(name){return util.isIdentifier(name)&&"_"!==name.charAt(0)&&"constructor"!==name},escapeIdentRegex=function(str){return str.replace(/([$])/,"\\$")},switchCaseArgumentOrder=function(likelyArgumentCount){for(var ret=[likelyArgumentCount],min=Math.max(0,likelyArgumentCount-1-3),i=likelyArgumentCount-1;i>=min;--i)ret.push(i);for(var i=likelyArgumentCount+1;3>=i;++i)ret.push(i);return ret},argumentSequence=function(argumentCount){return util.filledRange(argumentCount,"_arg","")},parameterDeclaration=function(parameterCount){return util.filledRange(Math.max(parameterCount,3),"_arg","")},parameterCount=function(fn){return"number"==typeof fn.length?Math.max(Math.min(fn.length,1024),0):0};makeNodePromisifiedEval=function(callback,receiver,originalName,fn,_,multiArgs){function generateCallForArgumentCount(count){var ret,args=argumentSequence(count).join(", "),comma=count>0?", ":"";return ret=shouldProxyThis?"ret = callback.call(this, {{args}}, nodeback); break;\n":void 0===receiver?"ret = callback({{args}}, nodeback); break;\n":"ret = callback.call(receiver, {{args}}, nodeback); break;\n",ret.replace("{{args}}",args).replace(", ",comma)}function generateArgumentSwitchCase(){for(var ret="",i=0;ii;++i){var key=keys[i];entries[i]=obj[key],entries[i+len]=key}}this.constructor$(entries),this._isMap=isMap,this._init$(void 0,-3)}function props(promises){var ret,castValue=tryConvertToPromise(promises);return isObject(castValue)?(ret=castValue instanceof Promise?castValue._then(Promise.props,void 0,void 0,void 0,void 0):new PropertiesPromiseArray(castValue).promise(),castValue instanceof Promise&&ret._propagateFrom(castValue,2),ret):apiRejection("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n")}var Es6Map,util=require("./util"),isObject=util.isObject,es5=require("./es5");"function"==typeof Map&&(Es6Map=Map);var mapToEntries=function(){function extractEntry(value,key){this[index]=value,this[index+size]=key,index++}var index=0,size=0;return function(map){size=map.size,index=0;var ret=new Array(2*map.size);return map.forEach(extractEntry,ret),ret}}(),entriesToMap=function(entries){for(var ret=new Es6Map,length=entries.length/2|0,i=0;length>i;++i){var key=entries[length+i],value=entries[i];ret.set(key,value)}return ret};util.inherits(PropertiesPromiseArray,PromiseArray),PropertiesPromiseArray.prototype._init=function(){},PropertiesPromiseArray.prototype._promiseFulfilled=function(value,index){this._values[index]=value;var totalResolved=++this._totalResolved;if(totalResolved>=this._length){var val;if(this._isMap)val=entriesToMap(this._values);else{val={};for(var keyOffset=this.length(),i=0,len=this.length();len>i;++i)val[this._values[i+keyOffset]]=this._values[i]}return this._resolve(val),!0}return!1},PropertiesPromiseArray.prototype.shouldCopyValues=function(){return!1},PropertiesPromiseArray.prototype.getActualLength=function(len){return len>>1},Promise.prototype.props=function(){return props(this)},Promise.props=function(promises){return props(promises)}}},{"./es5":59,"./util":82}],72:[function(require,module,exports){"use strict";function arrayMove(src,srcIndex,dst,dstIndex,len){for(var j=0;len>j;++j)dst[j+dstIndex]=src[j+srcIndex],src[j+srcIndex]=void 0}function Queue(capacity){this._capacity=capacity,this._length=0,this._front=0}Queue.prototype._willBeOverCapacity=function(size){return this._capacityi;++i){var val=promises[i];(void 0!==val||i in promises)&&Promise.cast(val)._then(fulfill,reject,void 0,ret,null)}return ret}var util=require("./util"),raceLater=function(promise){return promise.then(function(array){return race(array,promise)})};Promise.race=function(promises){return race(promises,void 0)},Promise.prototype.race=function(){return race(this,void 0)}}},{"./util":82}],74:[function(require,module,exports){"use strict";module.exports=function(Promise,PromiseArray,apiRejection,tryConvertToPromise,INTERNAL,debug){function ReductionPromiseArray(promises,fn,initialValue,_each){this.constructor$(promises);var domain=getDomain();this._fn=null===domain?fn:util.domainBind(domain,fn),void 0!==initialValue&&(initialValue=Promise.resolve(initialValue),initialValue._attachCancellationCallback(this)),this._initialValue=initialValue,this._currentCancellable=null,_each===INTERNAL?this._eachValues=Array(this._length):0===_each?this._eachValues=null:this._eachValues=void 0,this._promise._captureStackTrace(),this._init$(void 0,-5)}function completed(valueOrReason,array){this.isFulfilled()?array._resolve(valueOrReason):array._reject(valueOrReason)}function reduce(promises,fn,initialValue,_each){if("function"!=typeof fn)return apiRejection("expecting a function but got "+util.classString(fn));var array=new ReductionPromiseArray(promises,fn,initialValue,_each);return array.promise()}function gotAccum(accum){this.accum=accum,this.array._gotAccum(accum);var value=tryConvertToPromise(this.value,this.array._promise);return value instanceof Promise?(this.array._currentCancellable=value,value._then(gotValue,void 0,void 0,this,void 0)):gotValue.call(this,value)}function gotValue(value){var array=this.array,promise=array._promise,fn=tryCatch(array._fn);promise._pushContext();var ret;ret=void 0!==array._eachValues?fn.call(promise._boundValue(),value,this.index,this.length):fn.call(promise._boundValue(),this.accum,value,this.index,this.length),ret instanceof Promise&&(array._currentCancellable=ret);var promiseCreated=promise._popContext();return debug.checkForgottenReturns(ret,promiseCreated,void 0!==array._eachValues?"Promise.each":"Promise.reduce",promise),ret}var getDomain=Promise._getDomain,util=require("./util"),tryCatch=util.tryCatch;util.inherits(ReductionPromiseArray,PromiseArray),ReductionPromiseArray.prototype._gotAccum=function(accum){void 0!==this._eachValues&&null!==this._eachValues&&accum!==INTERNAL&&this._eachValues.push(accum)},ReductionPromiseArray.prototype._eachComplete=function(value){return null!==this._eachValues&&this._eachValues.push(value),this._eachValues},ReductionPromiseArray.prototype._init=function(){},ReductionPromiseArray.prototype._resolveEmptyArray=function(){this._resolve(void 0!==this._eachValues?this._eachValues:this._initialValue)},ReductionPromiseArray.prototype.shouldCopyValues=function(){return!1},ReductionPromiseArray.prototype._resolve=function(value){this._promise._resolveCallback(value),this._values=null},ReductionPromiseArray.prototype._resultCancelled=function(sender){return sender===this._initialValue?this._cancel():void(this._isResolved()||(this._resultCancelled$(),this._currentCancellable instanceof Promise&&this._currentCancellable.cancel(),this._initialValue instanceof Promise&&this._initialValue.cancel()))},ReductionPromiseArray.prototype._iterate=function(values){this._values=values;var value,i,length=values.length;if(void 0!==this._initialValue?(value=this._initialValue,i=0):(value=Promise.resolve(values[0]),i=1),this._currentCancellable=value,!value.isRejected())for(;length>i;++i){var ctx={accum:null,value:values[i],index:i,length:length,array:this};value=value._then(gotAccum,void 0,void 0,ctx,void 0)}void 0!==this._eachValues&&(value=value._then(this._eachComplete,void 0,void 0,this,void 0)),value._then(completed,completed,void 0,value,this)},Promise.prototype.reduce=function(fn,initialValue){return reduce(this,fn,initialValue,null)},Promise.reduce=function(promises,fn,initialValue,_each){return reduce(promises,fn,initialValue,_each)}}},{"./util":82}],75:[function(require,module,exports){(function(process,global){"use strict";var schedule,util=require("./util"),noAsyncScheduler=function(){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")},NativePromise=util.getNativePromise();if(util.isNode&&"undefined"==typeof MutationObserver){var GlobalSetImmediate=global.setImmediate,ProcessNextTick=process.nextTick;schedule=util.isRecentNode?function(fn){GlobalSetImmediate.call(global,fn)}:function(fn){ProcessNextTick.call(process,fn)}}else if("function"==typeof NativePromise&&"function"==typeof NativePromise.resolve){var nativePromise=NativePromise.resolve();schedule=function(fn){nativePromise.then(fn)}}else schedule="undefined"==typeof MutationObserver||"undefined"!=typeof window&&window.navigator&&(window.navigator.standalone||window.cordova)?"undefined"!=typeof setImmediate?function(fn){setImmediate(fn)}:"undefined"!=typeof setTimeout?function(fn){setTimeout(fn,0)}:noAsyncScheduler:function(){var div=document.createElement("div"),opts={attributes:!0},toggleScheduled=!1,div2=document.createElement("div"),o2=new MutationObserver(function(){div.classList.toggle("foo"),toggleScheduled=!1});o2.observe(div2,opts);var scheduleToggle=function(){toggleScheduled||(toggleScheduled=!0,div2.classList.toggle("foo"))};return function(fn){var o=new MutationObserver(function(){o.disconnect(),fn()});o.observe(div,opts),scheduleToggle()}}();module.exports=schedule}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./util":82,_process:102}],76:[function(require,module,exports){"use strict";module.exports=function(Promise,PromiseArray,debug){function SettledPromiseArray(values){this.constructor$(values)}var PromiseInspection=Promise.PromiseInspection,util=require("./util");util.inherits(SettledPromiseArray,PromiseArray),SettledPromiseArray.prototype._promiseResolved=function(index,inspection){this._values[index]=inspection;var totalResolved=++this._totalResolved;return totalResolved>=this._length?(this._resolve(this._values),!0):!1},SettledPromiseArray.prototype._promiseFulfilled=function(value,index){var ret=new PromiseInspection;return ret._bitField=33554432,ret._settledValueField=value,this._promiseResolved(index,ret)},SettledPromiseArray.prototype._promiseRejected=function(reason,index){var ret=new PromiseInspection;return ret._bitField=16777216,ret._settledValueField=reason,this._promiseResolved(index,ret)},Promise.settle=function(promises){return debug.deprecated(".settle()",".reflect()"),new SettledPromiseArray(promises).promise()},Promise.prototype.settle=function(){return Promise.settle(this)}}},{"./util":82}],77:[function(require,module,exports){"use strict";module.exports=function(Promise,PromiseArray,apiRejection){function SomePromiseArray(values){this.constructor$(values),this._howMany=0,this._unwrap=!1,this._initialized=!1}function some(promises,howMany){if((0|howMany)!==howMany||0>howMany)return apiRejection("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var ret=new SomePromiseArray(promises),promise=ret.promise();return ret.setHowMany(howMany),ret.init(),promise}var util=require("./util"),RangeError=require("./errors").RangeError,AggregateError=require("./errors").AggregateError,isArray=util.isArray,CANCELLATION={};util.inherits(SomePromiseArray,PromiseArray),SomePromiseArray.prototype._init=function(){if(this._initialized){if(0===this._howMany)return void this._resolve([]);this._init$(void 0,-5);var isArrayResolved=isArray(this._values);!this._isResolved()&&isArrayResolved&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}},SomePromiseArray.prototype.init=function(){this._initialized=!0,this._init()},SomePromiseArray.prototype.setUnwrap=function(){this._unwrap=!0},SomePromiseArray.prototype.howMany=function(){return this._howMany},SomePromiseArray.prototype.setHowMany=function(count){this._howMany=count},SomePromiseArray.prototype._promiseFulfilled=function(value){return this._addFulfilled(value),this._fulfilled()===this.howMany()?(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0):!1},SomePromiseArray.prototype._promiseRejected=function(reason){return this._addRejected(reason),this._checkOutcome()},SomePromiseArray.prototype._promiseCancelled=function(){return this._values instanceof Promise||null==this._values?this._cancel():(this._addRejected(CANCELLATION),this._checkOutcome())},SomePromiseArray.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var e=new AggregateError,i=this.length();i0?this._reject(e):this._cancel(),!0}return!1},SomePromiseArray.prototype._fulfilled=function(){return this._totalResolved},SomePromiseArray.prototype._rejected=function(){return this._values.length-this.length()},SomePromiseArray.prototype._addRejected=function(reason){this._values.push(reason)},SomePromiseArray.prototype._addFulfilled=function(value){this._values[this._totalResolved++]=value},SomePromiseArray.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},SomePromiseArray.prototype._getRangeError=function(count){var message="Input array must contain at least "+this._howMany+" items but contains only "+count+" items";return new RangeError(message)},SomePromiseArray.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},Promise.some=function(promises,howMany){return some(promises,howMany)},Promise.prototype.some=function(howMany){return some(this,howMany)},Promise._SomePromiseArray=SomePromiseArray}},{"./errors":58,"./util":82}],78:[function(require,module,exports){"use strict";module.exports=function(Promise){function PromiseInspection(promise){void 0!==promise?(promise=promise._target(),this._bitField=promise._bitField,this._settledValueField=promise._isFateSealed()?promise._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}PromiseInspection.prototype._settledValue=function(){return this._settledValueField};var value=PromiseInspection.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},reason=PromiseInspection.prototype.error=PromiseInspection.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},isFulfilled=PromiseInspection.prototype.isFulfilled=function(){return 0!==(33554432&this._bitField)},isRejected=PromiseInspection.prototype.isRejected=function(){return 0!==(16777216&this._bitField)},isPending=PromiseInspection.prototype.isPending=function(){return 0===(50397184&this._bitField)},isResolved=PromiseInspection.prototype.isResolved=function(){return 0!==(50331648&this._bitField)};PromiseInspection.prototype.isCancelled=function(){return 0!==(8454144&this._bitField)},Promise.prototype.__isCancelled=function(){return 65536===(65536&this._bitField)},Promise.prototype._isCancelled=function(){return this._target().__isCancelled()},Promise.prototype.isCancelled=function(){return 0!==(8454144&this._target()._bitField)},Promise.prototype.isPending=function(){return isPending.call(this._target())},Promise.prototype.isRejected=function(){return isRejected.call(this._target())},Promise.prototype.isFulfilled=function(){return isFulfilled.call(this._target())},Promise.prototype.isResolved=function(){return isResolved.call(this._target())},Promise.prototype.value=function(){return value.call(this._target())},Promise.prototype.reason=function(){var target=this._target();return target._unsetRejectionIsUnhandled(),reason.call(target)},Promise.prototype._value=function(){return this._settledValue()},Promise.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},Promise.PromiseInspection=PromiseInspection}},{}],79:[function(require,module,exports){"use strict";module.exports=function(Promise,INTERNAL){function tryConvertToPromise(obj,context){if(isObject(obj)){if(obj instanceof Promise)return obj;var then=getThen(obj);if(then===errorObj){context&&context._pushContext();var ret=Promise.reject(then.e);return context&&context._popContext(),ret}if("function"==typeof then){if(isAnyBluebirdPromise(obj)){var ret=new Promise(INTERNAL);return obj._then(ret._fulfill,ret._reject,void 0,ret,null),ret}return doThenable(obj,then,context)}}return obj}function doGetThen(obj){return obj.then}function getThen(obj){try{return doGetThen(obj)}catch(e){return errorObj.e=e,errorObj}}function isAnyBluebirdPromise(obj){try{return hasProp.call(obj,"_promise0")}catch(e){return!1}}function doThenable(x,then,context){function resolve(value){promise&&(promise._resolveCallback(value),promise=null)}function reject(reason){promise&&(promise._rejectCallback(reason,synchronous,!0),promise=null)}var promise=new Promise(INTERNAL),ret=promise;context&&context._pushContext(),promise._captureStackTrace(),context&&context._popContext();var synchronous=!0,result=util.tryCatch(then).call(x,resolve,reject);return synchronous=!1,promise&&result===errorObj&&(promise._rejectCallback(result.e,!0,!0),promise=null),ret}var util=require("./util"),errorObj=util.errorObj,isObject=util.isObject,hasProp={}.hasOwnProperty;return tryConvertToPromise}},{"./util":82}],80:[function(require,module,exports){"use strict";module.exports=function(Promise,INTERNAL,debug){function HandleWrapper(handle){this.handle=handle}function successClear(value){return clearTimeout(this.handle),value}function failureClear(reason){throw clearTimeout(this.handle),reason}var util=require("./util"),TimeoutError=Promise.TimeoutError;HandleWrapper.prototype._resultCancelled=function(){clearTimeout(this.handle)};var afterValue=function(value){return delay(+this).thenReturn(value)},delay=Promise.delay=function(ms,value){var ret,handle;return void 0!==value?(ret=Promise.resolve(value)._then(afterValue,null,null,ms,void 0),debug.cancellation()&&value instanceof Promise&&ret._setOnCancel(value)):(ret=new Promise(INTERNAL),handle=setTimeout(function(){ret._fulfill()},+ms),debug.cancellation()&&ret._setOnCancel(new HandleWrapper(handle)),ret._captureStackTrace()),ret._setAsyncGuaranteed(),ret};Promise.prototype.delay=function(ms){return delay(ms,this)};var afterTimeout=function(promise,message,parent){var err;err="string"!=typeof message?message instanceof Error?message:new TimeoutError("operation timed out"):new TimeoutError(message),util.markAsOriginatingFromRejection(err),promise._attachExtraTrace(err),promise._reject(err),null!=parent&&parent.cancel()};Promise.prototype.timeout=function(ms,message){ms=+ms;var ret,parent,handleWrapper=new HandleWrapper(setTimeout(function(){ret.isPending()&&afterTimeout(ret,message,parent)},ms));return debug.cancellation()?(parent=this.then(),ret=parent._then(successClear,failureClear,void 0,handleWrapper,void 0),ret._setOnCancel(handleWrapper)):ret=this._then(successClear,failureClear,void 0,handleWrapper,void 0),ret}}},{"./util":82}],81:[function(require,module,exports){"use strict";module.exports=function(Promise,apiRejection,tryConvertToPromise,createContext,INTERNAL,debug){function thrower(e){setTimeout(function(){throw e},0)}function castPreservingDisposable(thenable){var maybePromise=tryConvertToPromise(thenable);return maybePromise!==thenable&&"function"==typeof thenable._isDisposable&&"function"==typeof thenable._getDisposer&&thenable._isDisposable()&&maybePromise._setDisposable(thenable._getDisposer()),maybePromise}function dispose(resources,inspection){function iterator(){if(i>=len)return ret._fulfill();var maybePromise=castPreservingDisposable(resources[i++]);if(maybePromise instanceof Promise&&maybePromise._isDisposable()){try{maybePromise=tryConvertToPromise(maybePromise._getDisposer().tryDispose(inspection),resources.promise)}catch(e){return thrower(e)}if(maybePromise instanceof Promise)return maybePromise._then(iterator,thrower,null,null,null)}iterator()}var i=0,len=resources.length,ret=new Promise(INTERNAL);return iterator(),ret}function Disposer(data,promise,context){this._data=data,this._promise=promise,this._context=context}function FunctionDisposer(fn,promise,context){this.constructor$(fn,promise,context)}function maybeUnwrapDisposer(value){return Disposer.isDisposer(value)?(this.resources[this.index]._setDisposable(value),value.promise()):value}function ResourceList(length){this.length=length,this.promise=null,this[length-1]=null}var util=require("./util"),TypeError=require("./errors").TypeError,inherits=require("./util").inherits,errorObj=util.errorObj,tryCatch=util.tryCatch,NULL={};Disposer.prototype.data=function(){return this._data},Disposer.prototype.promise=function(){return this._promise},Disposer.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():NULL},Disposer.prototype.tryDispose=function(inspection){var resource=this.resource(),context=this._context;void 0!==context&&context._pushContext();var ret=resource!==NULL?this.doDispose(resource,inspection):null;return void 0!==context&&context._popContext(),this._promise._unsetDisposable(),this._data=null,ret},Disposer.isDisposer=function(d){return null!=d&&"function"==typeof d.resource&&"function"==typeof d.tryDispose},inherits(FunctionDisposer,Disposer),FunctionDisposer.prototype.doDispose=function(resource,inspection){var fn=this.data();return fn.call(resource,resource,inspection)},ResourceList.prototype._resultCancelled=function(){for(var len=this.length,i=0;len>i;++i){var item=this[i];item instanceof Promise&&item.cancel()}},Promise.using=function(){var len=arguments.length;if(2>len)return apiRejection("you must pass at least 2 arguments to Promise.using");var fn=arguments[len-1];if("function"!=typeof fn)return apiRejection("expecting a function but got "+util.classString(fn));var input,spreadArgs=!0;2===len&&Array.isArray(arguments[0])?(input=arguments[0],len=input.length,spreadArgs=!1):(input=arguments,len--);for(var resources=new ResourceList(len),i=0;len>i;++i){var resource=input[i];if(Disposer.isDisposer(resource)){var disposer=resource;resource=resource.promise(),resource._setDisposable(disposer)}else{var maybePromise=tryConvertToPromise(resource);maybePromise instanceof Promise&&(resource=maybePromise._then(maybeUnwrapDisposer,null,null,{resources:resources,index:i},void 0))}resources[i]=resource}for(var reflectedResources=new Array(resources.length),i=0;i0},Promise.prototype._getDisposer=function(){return this._disposer},Promise.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},Promise.prototype.disposer=function(fn){if("function"==typeof fn)return new FunctionDisposer(fn,this,createContext());throw new TypeError}}},{"./errors":58,"./util":82}],82:[function(require,module,exports){(function(process,global){"use strict";function tryCatcher(){try{var target=tryCatchTarget;return tryCatchTarget=null,target.apply(this,arguments)}catch(e){return errorObj.e=e,errorObj}}function tryCatch(fn){return tryCatchTarget=fn,tryCatcher}function isPrimitive(val){return null==val||val===!0||val===!1||"string"==typeof val||"number"==typeof val}function isObject(value){return"function"==typeof value||"object"==typeof value&&null!==value}function maybeWrapAsError(maybeError){return isPrimitive(maybeError)?new Error(safeToString(maybeError)):maybeError}function withAppended(target,appendee){var i,len=target.length,ret=new Array(len+1);for(i=0;len>i;++i)ret[i]=target[i];return ret[i]=appendee,ret}function getDataPropertyOrDefault(obj,key,defaultValue){if(!es5.isES5)return{}.hasOwnProperty.call(obj,key)?obj[key]:void 0;var desc=Object.getOwnPropertyDescriptor(obj,key);return null!=desc?null==desc.get&&null==desc.set?desc.value:defaultValue:void 0}function notEnumerableProp(obj,name,value){if(isPrimitive(obj))return obj;var descriptor={value:value,configurable:!0,enumerable:!1,writable:!0};return es5.defineProperty(obj,name,descriptor),obj}function thrower(r){throw r}function isClass(fn){try{if("function"==typeof fn){var keys=es5.names(fn.prototype),hasMethods=es5.isES5&&keys.length>1,hasMethodsOtherThanConstructor=keys.length>0&&!(1===keys.length&&"constructor"===keys[0]),hasThisAssignmentAndStaticMethods=thisAssignmentPattern.test(fn+"")&&es5.names(fn).length>0;if(hasMethods||hasMethodsOtherThanConstructor||hasThisAssignmentAndStaticMethods)return!0}return!1}catch(e){return!1}}function toFastProperties(obj){function FakeConstructor(){}FakeConstructor.prototype=obj;for(var l=8;l--;)new FakeConstructor;return obj}function isIdentifier(str){return rident.test(str)}function filledRange(count,prefix,suffix){for(var ret=new Array(count),i=0;count>i;++i)ret[i]=prefix+i+suffix;return ret}function safeToString(obj){try{return obj+""}catch(e){return"[no string representation]"}}function isError(obj){return null!==obj&&"object"==typeof obj&&"string"==typeof obj.message&&"string"==typeof obj.name}function markAsOriginatingFromRejection(e){try{notEnumerableProp(e,"isOperational",!0)}catch(ignore){}}function originatesFromRejection(e){return null==e?!1:e instanceof Error.__BluebirdErrorTypes__.OperationalError||e.isOperational===!0}function canAttachTrace(obj){return isError(obj)&&es5.propertyIsWritable(obj,"stack")}function classString(obj){return{}.toString.call(obj)}function copyDescriptors(from,to,filter){for(var keys=es5.names(from),i=0;i10||version[0]>0}(),ret.isNode&&ret.toFastProperties(process);try{throw new Error}catch(e){ret.lastLineError=e}module.exports=ret}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./es5":59,_process:102}],83:[function(require,module,exports){(function(global){"use strict";function typedArraySupport(){try{var arr=new Uint8Array(1);return arr.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===arr.foo()&&"function"==typeof arr.subarray&&0===arr.subarray(1,1).byteLength}catch(e){return!1}}function kMaxLength(){return Buffer.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function createBuffer(that,length){if(kMaxLength()size)throw new RangeError('"size" argument must not be negative')}function alloc(that,size,fill,encoding){return assertSize(size),0>=size?createBuffer(that,size):void 0!==fill?"string"==typeof encoding?createBuffer(that,size).fill(fill,encoding):createBuffer(that,size).fill(fill):createBuffer(that,size)}function allocUnsafe(that,size){if(assertSize(size),that=createBuffer(that,0>size?0:0|checked(size)),!Buffer.TYPED_ARRAY_SUPPORT)for(var i=0;size>i;++i)that[i]=0;return that}function fromString(that,string,encoding){if(("string"!=typeof encoding||""===encoding)&&(encoding="utf8"),!Buffer.isEncoding(encoding))throw new TypeError('"encoding" must be a valid string encoding');var length=0|byteLength(string,encoding);that=createBuffer(that,length);var actual=that.write(string,encoding);return actual!==length&&(that=that.slice(0,actual)),that}function fromArrayLike(that,array){var length=array.length<0?0:0|checked(array.length);that=createBuffer(that,length);for(var i=0;length>i;i+=1)that[i]=255&array[i];return that}function fromArrayBuffer(that,array,byteOffset,length){if(array.byteLength,0>byteOffset||array.byteLength=kMaxLength())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+kMaxLength().toString(16)+" bytes");return 0|length}function SlowBuffer(length){return+length!=length&&(length=0),Buffer.alloc(+length)}function byteLength(string,encoding){if(Buffer.isBuffer(string))return string.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(string)||string instanceof ArrayBuffer))return string.byteLength;"string"!=typeof string&&(string=""+string);var len=string.length;if(0===len)return 0;for(var loweredCase=!1;;)switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":case void 0:return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*len;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase(),loweredCase=!0}}function slowToString(encoding,start,end){var loweredCase=!1;if((void 0===start||0>start)&&(start=0),start>this.length)return"";if((void 0===end||end>this.length)&&(end=this.length),0>=end)return"";if(end>>>=0,start>>>=0,start>=end)return"";for(encoding||(encoding="utf8");;)switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase(),loweredCase=!0}}function swap(b,n,m){var i=b[n];b[n]=b[m],b[m]=i}function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){if(0===buffer.length)return-1;if("string"==typeof byteOffset?(encoding=byteOffset,byteOffset=0):byteOffset>2147483647?byteOffset=2147483647:-2147483648>byteOffset&&(byteOffset=-2147483648),byteOffset=+byteOffset,isNaN(byteOffset)&&(byteOffset=dir?0:buffer.length-1),0>byteOffset&&(byteOffset=buffer.length+byteOffset),byteOffset>=buffer.length){if(dir)return-1;byteOffset=buffer.length-1}else if(0>byteOffset){if(!dir)return-1;byteOffset=0}if("string"==typeof val&&(val=Buffer.from(val,encoding)),Buffer.isBuffer(val))return 0===val.length?-1:arrayIndexOf(buffer,val,byteOffset,encoding,dir);if("number"==typeof val)return val=255&val,Buffer.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?dir?Uint8Array.prototype.indexOf.call(buffer,val,byteOffset):Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset):arrayIndexOf(buffer,[val],byteOffset,encoding,dir);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){function read(buf,i){return 1===indexSize?buf[i]:buf.readUInt16BE(i*indexSize)}var indexSize=1,arrLength=arr.length,valLength=val.length;if(void 0!==encoding&&(encoding=String(encoding).toLowerCase(),"ucs2"===encoding||"ucs-2"===encoding||"utf16le"===encoding||"utf-16le"===encoding)){if(arr.length<2||val.length<2)return-1;indexSize=2,arrLength/=2,valLength/=2,byteOffset/=2}var i;if(dir){var foundIndex=-1;for(i=byteOffset;arrLength>i;i++)if(read(arr,i)===read(val,-1===foundIndex?0:i-foundIndex)){if(-1===foundIndex&&(foundIndex=i),i-foundIndex+1===valLength)return foundIndex*indexSize}else-1!==foundIndex&&(i-=i-foundIndex),foundIndex=-1}else for(byteOffset+valLength>arrLength&&(byteOffset=arrLength-valLength),i=byteOffset;i>=0;i--){for(var found=!0,j=0;valLength>j;j++)if(read(arr,i+j)!==read(val,j)){found=!1;break}if(found)return i}return-1}function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;length?(length=Number(length),length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;if(strLen%2!==0)throw new TypeError("Invalid hex string");length>strLen/2&&(length=strLen/2);for(var i=0;length>i;++i){var parsed=parseInt(string.substr(2*i,2),16);if(isNaN(parsed))return i;buf[offset+i]=parsed}return i}function utf8Write(buf,string,offset,length){return blitBuffer(utf8ToBytes(string,buf.length-offset),buf,offset,length)}function asciiWrite(buf,string,offset,length){return blitBuffer(asciiToBytes(string),buf,offset,length)}function latin1Write(buf,string,offset,length){return asciiWrite(buf,string,offset,length)}function base64Write(buf,string,offset,length){return blitBuffer(base64ToBytes(string),buf,offset,length)}function ucs2Write(buf,string,offset,length){return blitBuffer(utf16leToBytes(string,buf.length-offset),buf,offset,length)}function base64Slice(buf,start,end){return 0===start&&end===buf.length?base64.fromByteArray(buf):base64.fromByteArray(buf.slice(start,end))}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);for(var res=[],i=start;end>i;){var firstByte=buf[i],codePoint=null,bytesPerSequence=firstByte>239?4:firstByte>223?3:firstByte>191?2:1;if(end>=i+bytesPerSequence){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:128>firstByte&&(codePoint=firstByte);break;case 2:secondByte=buf[i+1],128===(192&secondByte)&&(tempCodePoint=(31&firstByte)<<6|63&secondByte,tempCodePoint>127&&(codePoint=tempCodePoint));break;case 3:secondByte=buf[i+1],thirdByte=buf[i+2],128===(192&secondByte)&&128===(192&thirdByte)&&(tempCodePoint=(15&firstByte)<<12|(63&secondByte)<<6|63&thirdByte,tempCodePoint>2047&&(55296>tempCodePoint||tempCodePoint>57343)&&(codePoint=tempCodePoint));break;case 4:secondByte=buf[i+1],thirdByte=buf[i+2],fourthByte=buf[i+3],128===(192&secondByte)&&128===(192&thirdByte)&&128===(192&fourthByte)&&(tempCodePoint=(15&firstByte)<<18|(63&secondByte)<<12|(63&thirdByte)<<6|63&fourthByte,tempCodePoint>65535&&1114112>tempCodePoint&&(codePoint=tempCodePoint))}}null===codePoint?(codePoint=65533,bytesPerSequence=1):codePoint>65535&&(codePoint-=65536,res.push(codePoint>>>10&1023|55296),codePoint=56320|1023&codePoint),res.push(codePoint),i+=bytesPerSequence}return decodeCodePointsArray(res)}function decodeCodePointsArray(codePoints){var len=codePoints.length;if(MAX_ARGUMENTS_LENGTH>=len)return String.fromCharCode.apply(String,codePoints);for(var res="",i=0;len>i;)res+=String.fromCharCode.apply(String,codePoints.slice(i,i+=MAX_ARGUMENTS_LENGTH));return res}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;end>i;++i)ret+=String.fromCharCode(127&buf[i]);return ret}function latin1Slice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;end>i;++i)ret+=String.fromCharCode(buf[i]);return ret}function hexSlice(buf,start,end){var len=buf.length;(!start||0>start)&&(start=0),(!end||0>end||end>len)&&(end=len);for(var out="",i=start;end>i;++i)out+=toHex(buf[i]);return out}function utf16leSlice(buf,start,end){for(var bytes=buf.slice(start,end),res="",i=0;ioffset)throw new RangeError("offset is not uint");if(offset+ext>length)throw new RangeError("Trying to access beyond buffer length")}function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||min>value)throw new RangeError('"value" argument is out of bounds');if(offset+ext>buf.length)throw new RangeError("Index out of range")}function objectWriteUInt16(buf,value,offset,littleEndian){0>value&&(value=65535+value+1);for(var i=0,j=Math.min(buf.length-offset,2);j>i;++i)buf[offset+i]=(value&255<<8*(littleEndian?i:1-i))>>>8*(littleEndian?i:1-i)}function objectWriteUInt32(buf,value,offset,littleEndian){0>value&&(value=4294967295+value+1);for(var i=0,j=Math.min(buf.length-offset,4);j>i;++i)buf[offset+i]=value>>>8*(littleEndian?i:3-i)&255}function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(0>offset)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){return noAssert||checkIEEE754(buf,value,offset,4,3.4028234663852886e38,-3.4028234663852886e38),ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}function writeDouble(buf,value,offset,littleEndian,noAssert){return noAssert||checkIEEE754(buf,value,offset,8,1.7976931348623157e308,-1.7976931348623157e308),ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}function base64clean(str){if(str=stringtrim(str).replace(INVALID_BASE64_RE,""),str.length<2)return"";for(;str.length%4!==0;)str+="=";return str}function stringtrim(str){return str.trim?str.trim():str.replace(/^\s+|\s+$/g,"")}function toHex(n){return 16>n?"0"+n.toString(16):n.toString(16)}function utf8ToBytes(string,units){units=units||1/0;for(var codePoint,length=string.length,leadSurrogate=null,bytes=[],i=0;length>i;++i){if(codePoint=string.charCodeAt(i),codePoint>55295&&57344>codePoint){if(!leadSurrogate){if(codePoint>56319){(units-=3)>-1&&bytes.push(239,191,189);continue}if(i+1===length){(units-=3)>-1&&bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(56320>codePoint){(units-=3)>-1&&bytes.push(239,191,189),leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else leadSurrogate&&(units-=3)>-1&&bytes.push(239,191,189);if(leadSurrogate=null,128>codePoint){if((units-=1)<0)break;bytes.push(codePoint)}else if(2048>codePoint){if((units-=2)<0)break;bytes.push(codePoint>>6|192,63&codePoint|128)}else if(65536>codePoint){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,63&codePoint|128)}else{if(!(1114112>codePoint))throw new Error("Invalid code point");if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,63&codePoint|128)}}return bytes}function asciiToBytes(str){for(var byteArray=[],i=0;i>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;length>i&&!(i+offset>=dst.length||i>=src.length);++i)dst[i+offset]=src[i];return i}function isnan(val){return val!==val}var base64=require("base64-js"),ieee754=require("ieee754"),isArray=require("isarray");exports.Buffer=Buffer,exports.SlowBuffer=SlowBuffer,exports.INSPECT_MAX_BYTES=50,Buffer.TYPED_ARRAY_SUPPORT=void 0!==global.TYPED_ARRAY_SUPPORT?global.TYPED_ARRAY_SUPPORT:typedArraySupport(),exports.kMaxLength=kMaxLength(),Buffer.poolSize=8192,Buffer._augment=function(arr){return arr.__proto__=Buffer.prototype,arr},Buffer.from=function(value,encodingOrOffset,length){return from(null,value,encodingOrOffset,length)},Buffer.TYPED_ARRAY_SUPPORT&&(Buffer.prototype.__proto__=Uint8Array.prototype,Buffer.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&Buffer[Symbol.species]===Buffer&&Object.defineProperty(Buffer,Symbol.species,{value:null,configurable:!0})),Buffer.alloc=function(size,fill,encoding){return alloc(null,size,fill,encoding)},Buffer.allocUnsafe=function(size){return allocUnsafe(null,size)},Buffer.allocUnsafeSlow=function(size){return allocUnsafe(null,size)},Buffer.isBuffer=function(b){return!(null==b||!b._isBuffer)},Buffer.compare=function(a,b){if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b))throw new TypeError("Arguments must be Buffers");if(a===b)return 0;for(var x=a.length,y=b.length,i=0,len=Math.min(x,y);len>i;++i)if(a[i]!==b[i]){x=a[i],y=b[i];break}return y>x?-1:x>y?1:0},Buffer.isEncoding=function(encoding){switch(String(encoding).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}},Buffer.concat=function(list,length){if(!isArray(list))throw new TypeError('"list" argument must be an Array of Buffers');if(0===list.length)return Buffer.alloc(0);var i;if(void 0===length)for(length=0,i=0;ii;i+=2)swap(this,i,i+1);return this},Buffer.prototype.swap32=function(){var len=this.length;if(len%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var i=0;len>i;i+=4)swap(this,i,i+3),swap(this,i+1,i+2);return this},Buffer.prototype.swap64=function(){var len=this.length;if(len%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var i=0;len>i;i+=8)swap(this,i,i+7),swap(this,i+1,i+6),swap(this,i+2,i+5),swap(this,i+3,i+4);return this},Buffer.prototype.toString=function(){var length=0|this.length;return 0===length?"":0===arguments.length?utf8Slice(this,0,length):slowToString.apply(this,arguments)},Buffer.prototype.equals=function(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b?!0:0===Buffer.compare(this,b)},Buffer.prototype.inspect=function(){var str="",max=exports.INSPECT_MAX_BYTES;return this.length>0&&(str=this.toString("hex",0,max).match(/.{2}/g).join(" "),this.length>max&&(str+=" ... ")),""},Buffer.prototype.compare=function(target,start,end,thisStart,thisEnd){if(!Buffer.isBuffer(target))throw new TypeError("Argument must be a Buffer");if(void 0===start&&(start=0),void 0===end&&(end=target?target.length:0),void 0===thisStart&&(thisStart=0),void 0===thisEnd&&(thisEnd=this.length),0>start||end>target.length||0>thisStart||thisEnd>this.length)throw new RangeError("out of range index");if(thisStart>=thisEnd&&start>=end)return 0;if(thisStart>=thisEnd)return-1;if(start>=end)return 1;if(start>>>=0,end>>>=0,thisStart>>>=0,thisEnd>>>=0,this===target)return 0;for(var x=thisEnd-thisStart,y=end-start,len=Math.min(x,y),thisCopy=this.slice(thisStart,thisEnd),targetCopy=target.slice(start,end),i=0;len>i;++i)if(thisCopy[i]!==targetCopy[i]){x=thisCopy[i],y=targetCopy[i];break}return y>x?-1:x>y?1:0},Buffer.prototype.includes=function(val,byteOffset,encoding){return-1!==this.indexOf(val,byteOffset,encoding)},Buffer.prototype.indexOf=function(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,!0)},Buffer.prototype.lastIndexOf=function(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,!1)},Buffer.prototype.write=function(string,offset,length,encoding){if(void 0===offset)encoding="utf8",length=this.length,offset=0;else if(void 0===length&&"string"==typeof offset)encoding=offset,length=this.length,offset=0;else{if(!isFinite(offset))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");offset=0|offset,isFinite(length)?(length=0|length,void 0===encoding&&(encoding="utf8")):(encoding=length,length=void 0)}var remaining=this.length-offset;if((void 0===length||length>remaining)&&(length=remaining),string.length>0&&(0>length||0>offset)||offset>this.length)throw new RangeError("Attempt to write outside buffer bounds");encoding||(encoding="utf8");for(var loweredCase=!1;;)switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"latin1":case"binary":return latin1Write(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase(),loweredCase=!0}},Buffer.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var MAX_ARGUMENTS_LENGTH=4096;Buffer.prototype.slice=function(start,end){var len=this.length;start=~~start,end=void 0===end?len:~~end,0>start?(start+=len,0>start&&(start=0)):start>len&&(start=len),0>end?(end+=len,0>end&&(end=0)):end>len&&(end=len),start>end&&(end=start);var newBuf;if(Buffer.TYPED_ARRAY_SUPPORT)newBuf=this.subarray(start,end),newBuf.__proto__=Buffer.prototype;else{var sliceLen=end-start;newBuf=new Buffer(sliceLen,void 0);for(var i=0;sliceLen>i;++i)newBuf[i]=this[i+start]}return newBuf},Buffer.prototype.readUIntLE=function(offset,byteLength,noAssert){offset=0|offset,byteLength=0|byteLength,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i0&&(mul*=256);)val+=this[offset+--byteLength]*mul;return val},Buffer.prototype.readUInt8=function(offset,noAssert){return noAssert||checkOffset(offset,1,this.length),this[offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return noAssert||checkOffset(offset,2,this.length),this[offset]|this[offset+1]<<8},Buffer.prototype.readUInt16BE=function(offset,noAssert){return noAssert||checkOffset(offset,2,this.length),this[offset]<<8|this[offset+1]},Buffer.prototype.readUInt32LE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+16777216*this[offset+3]},Buffer.prototype.readUInt32BE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),16777216*this[offset]+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])},Buffer.prototype.readIntLE=function(offset,byteLength,noAssert){offset=0|offset,byteLength=0|byteLength,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i=mul&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readIntBE=function(offset,byteLength,noAssert){offset=0|offset,byteLength=0|byteLength,noAssert||checkOffset(offset,byteLength,this.length);for(var i=byteLength,mul=1,val=this[offset+--i];i>0&&(mul*=256);)val+=this[offset+--i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readInt8=function(offset,noAssert){return noAssert||checkOffset(offset,1,this.length),128&this[offset]?-1*(255-this[offset]+1):this[offset]},Buffer.prototype.readInt16LE=function(offset,noAssert){noAssert||checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt16BE=function(offset,noAssert){noAssert||checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt32LE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24},Buffer.prototype.readInt32BE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]},Buffer.prototype.readFloatLE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!0,23,4)},Buffer.prototype.readFloatBE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!1,23,4)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!0,52,8)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!1,52,8)},Buffer.prototype.writeUIntLE=function(value,offset,byteLength,noAssert){if(value=+value,offset=0|offset,byteLength=0|byteLength,!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var mul=1,i=0;for(this[offset]=255&value;++i=0&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength},Buffer.prototype.writeUInt8=function(value,offset,noAssert){ +return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,1,255,0),Buffer.TYPED_ARRAY_SUPPORT||(value=Math.floor(value)),this[offset]=255&value,offset+1},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=255&value,this[offset+1]=value>>>8):objectWriteUInt16(this,value,offset,!0),offset+2},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>8,this[offset+1]=255&value):objectWriteUInt16(this,value,offset,!1),offset+2},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset+3]=value>>>24,this[offset+2]=value>>>16,this[offset+1]=value>>>8,this[offset]=255&value):objectWriteUInt32(this,value,offset,!0),offset+4},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=255&value):objectWriteUInt32(this,value,offset,!1),offset+4},Buffer.prototype.writeIntLE=function(value,offset,byteLength,noAssert){if(value=+value,offset=0|offset,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0,mul=1,sub=0;for(this[offset]=255&value;++ivalue&&0===sub&&0!==this[offset+i-1]&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength},Buffer.prototype.writeIntBE=function(value,offset,byteLength,noAssert){if(value=+value,offset=0|offset,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1,mul=1,sub=0;for(this[offset+i]=255&value;--i>=0&&(mul*=256);)0>value&&0===sub&&0!==this[offset+i+1]&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength},Buffer.prototype.writeInt8=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,1,127,-128),Buffer.TYPED_ARRAY_SUPPORT||(value=Math.floor(value)),0>value&&(value=255+value+1),this[offset]=255&value,offset+1},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=255&value,this[offset+1]=value>>>8):objectWriteUInt16(this,value,offset,!0),offset+2},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>8,this[offset+1]=255&value):objectWriteUInt16(this,value,offset,!1),offset+2},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=255&value,this[offset+1]=value>>>8,this[offset+2]=value>>>16,this[offset+3]=value>>>24):objectWriteUInt32(this,value,offset,!0),offset+4},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),0>value&&(value=4294967295+value+1),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=255&value):objectWriteUInt32(this,value,offset,!1),offset+4},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.copy=function(target,targetStart,start,end){if(start||(start=0),end||0===end||(end=this.length),targetStart>=target.length&&(targetStart=target.length),targetStart||(targetStart=0),end>0&&start>end&&(end=start),end===start)return 0;if(0===target.length||0===this.length)return 0;if(0>targetStart)throw new RangeError("targetStart out of bounds");if(0>start||start>=this.length)throw new RangeError("sourceStart out of bounds");if(0>end)throw new RangeError("sourceEnd out of bounds");end>this.length&&(end=this.length),target.length-targetStartstart&&end>targetStart)for(i=len-1;i>=0;--i)target[i+targetStart]=this[i+start];else if(1e3>len||!Buffer.TYPED_ARRAY_SUPPORT)for(i=0;len>i;++i)target[i+targetStart]=this[i+start];else Uint8Array.prototype.set.call(target,this.subarray(start,start+len),targetStart);return len},Buffer.prototype.fill=function(val,start,end,encoding){if("string"==typeof val){if("string"==typeof start?(encoding=start,start=0,end=this.length):"string"==typeof end&&(encoding=end,end=this.length),1===val.length){var code=val.charCodeAt(0);256>code&&(val=code)}if(void 0!==encoding&&"string"!=typeof encoding)throw new TypeError("encoding must be a string");if("string"==typeof encoding&&!Buffer.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding)}else"number"==typeof val&&(val=255&val);if(0>start||this.length=end)return this;start>>>=0,end=void 0===end?this.length:end>>>0,val||(val=0);var i;if("number"==typeof val)for(i=start;end>i;++i)this[i]=val;else{var bytes=Buffer.isBuffer(val)?val:utf8ToBytes(new Buffer(val,encoding).toString()),len=bytes.length;for(i=0;end-start>i;++i)this[i+start]=bytes[i%len]}return this};var INVALID_BASE64_RE=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":47,ieee754:86,isarray:87}],84:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var dingbats=[{"Typeface name":"Symbol","Dingbat dec":"32","Dingbat hex":"20","Unicode dec":"32","Unicode hex":"20"},{"Typeface name":"Symbol","Dingbat dec":"33","Dingbat hex":"21","Unicode dec":"33","Unicode hex":"21"},{"Typeface name":"Symbol","Dingbat dec":"34","Dingbat hex":"22","Unicode dec":"8704","Unicode hex":"2200"},{"Typeface name":"Symbol","Dingbat dec":"35","Dingbat hex":"23","Unicode dec":"35","Unicode hex":"23"},{"Typeface name":"Symbol","Dingbat dec":"36","Dingbat hex":"24","Unicode dec":"8707","Unicode hex":"2203"},{"Typeface name":"Symbol","Dingbat dec":"37","Dingbat hex":"25","Unicode dec":"37","Unicode hex":"25"},{"Typeface name":"Symbol","Dingbat dec":"38","Dingbat hex":"26","Unicode dec":"38","Unicode hex":"26"},{"Typeface name":"Symbol","Dingbat dec":"39","Dingbat hex":"27","Unicode dec":"8717","Unicode hex":"220D"},{"Typeface name":"Symbol","Dingbat dec":"40","Dingbat hex":"28","Unicode dec":"40","Unicode hex":"28"},{"Typeface name":"Symbol","Dingbat dec":"41","Dingbat hex":"29","Unicode dec":"41","Unicode hex":"29"},{"Typeface name":"Symbol","Dingbat dec":"42","Dingbat hex":"2A","Unicode dec":"42","Unicode hex":"2A"},{"Typeface name":"Symbol","Dingbat dec":"43","Dingbat hex":"2B","Unicode dec":"43","Unicode hex":"2B"},{"Typeface name":"Symbol","Dingbat dec":"44","Dingbat hex":"2C","Unicode dec":"44","Unicode hex":"2C"},{"Typeface name":"Symbol","Dingbat dec":"45","Dingbat hex":"2D","Unicode dec":"8722","Unicode hex":"2212"},{"Typeface name":"Symbol","Dingbat dec":"46","Dingbat hex":"2E","Unicode dec":"46","Unicode hex":"2E"},{"Typeface name":"Symbol","Dingbat dec":"47","Dingbat hex":"2F","Unicode dec":"47","Unicode hex":"2F"},{"Typeface name":"Symbol","Dingbat dec":"48","Dingbat hex":"30","Unicode dec":"48","Unicode hex":"30"},{"Typeface name":"Symbol","Dingbat dec":"49","Dingbat hex":"31","Unicode dec":"49","Unicode hex":"31"},{"Typeface name":"Symbol","Dingbat dec":"50","Dingbat hex":"32","Unicode dec":"50","Unicode hex":"32"},{"Typeface name":"Symbol","Dingbat dec":"51","Dingbat hex":"33","Unicode dec":"51","Unicode hex":"33"},{"Typeface name":"Symbol","Dingbat dec":"52","Dingbat hex":"34","Unicode dec":"52","Unicode hex":"34"},{"Typeface name":"Symbol","Dingbat dec":"53","Dingbat hex":"35","Unicode dec":"53","Unicode hex":"35"},{"Typeface name":"Symbol","Dingbat dec":"54","Dingbat hex":"36","Unicode dec":"54","Unicode hex":"36"},{"Typeface name":"Symbol","Dingbat dec":"55","Dingbat hex":"37","Unicode dec":"55","Unicode hex":"37"},{"Typeface name":"Symbol","Dingbat dec":"56","Dingbat hex":"38","Unicode dec":"56","Unicode hex":"38"},{"Typeface name":"Symbol","Dingbat dec":"57","Dingbat hex":"39","Unicode dec":"57","Unicode hex":"39"},{"Typeface name":"Symbol","Dingbat dec":"58","Dingbat hex":"3A","Unicode dec":"58","Unicode hex":"3A"},{"Typeface name":"Symbol","Dingbat dec":"59","Dingbat hex":"3B","Unicode dec":"59","Unicode hex":"3B"},{"Typeface name":"Symbol","Dingbat dec":"60","Dingbat hex":"3C","Unicode dec":"60","Unicode hex":"3C"},{"Typeface name":"Symbol","Dingbat dec":"61","Dingbat hex":"3D","Unicode dec":"61","Unicode hex":"3D"},{"Typeface name":"Symbol","Dingbat dec":"62","Dingbat hex":"3E","Unicode dec":"62","Unicode hex":"3E"},{"Typeface name":"Symbol","Dingbat dec":"63","Dingbat hex":"3F","Unicode dec":"63","Unicode hex":"3F"},{"Typeface name":"Symbol","Dingbat dec":"64","Dingbat hex":"40","Unicode dec":"8773","Unicode hex":"2245"},{"Typeface name":"Symbol","Dingbat dec":"65","Dingbat hex":"41","Unicode dec":"913","Unicode hex":"391"},{"Typeface name":"Symbol","Dingbat dec":"66","Dingbat hex":"42","Unicode dec":"914","Unicode hex":"392"},{"Typeface name":"Symbol","Dingbat dec":"67","Dingbat hex":"43","Unicode dec":"935","Unicode hex":"3A7"},{"Typeface name":"Symbol","Dingbat dec":"68","Dingbat hex":"44","Unicode dec":"916","Unicode hex":"394"},{"Typeface name":"Symbol","Dingbat dec":"69","Dingbat hex":"45","Unicode dec":"917","Unicode hex":"395"},{"Typeface name":"Symbol","Dingbat dec":"70","Dingbat hex":"46","Unicode dec":"934","Unicode hex":"3A6"},{"Typeface name":"Symbol","Dingbat dec":"71","Dingbat hex":"47","Unicode dec":"915","Unicode hex":"393"},{"Typeface name":"Symbol","Dingbat dec":"72","Dingbat hex":"48","Unicode dec":"919","Unicode hex":"397"},{"Typeface name":"Symbol","Dingbat dec":"73","Dingbat hex":"49","Unicode dec":"921","Unicode hex":"399"},{"Typeface name":"Symbol","Dingbat dec":"74","Dingbat hex":"4A","Unicode dec":"977","Unicode hex":"3D1"},{"Typeface name":"Symbol","Dingbat dec":"75","Dingbat hex":"4B","Unicode dec":"922","Unicode hex":"39A"},{"Typeface name":"Symbol","Dingbat dec":"76","Dingbat hex":"4C","Unicode dec":"923","Unicode hex":"39B"},{"Typeface name":"Symbol","Dingbat dec":"77","Dingbat hex":"4D","Unicode dec":"924","Unicode hex":"39C"},{"Typeface name":"Symbol","Dingbat dec":"78","Dingbat hex":"4E","Unicode dec":"925","Unicode hex":"39D"},{"Typeface name":"Symbol","Dingbat dec":"79","Dingbat hex":"4F","Unicode dec":"927","Unicode hex":"39F"},{"Typeface name":"Symbol","Dingbat dec":"80","Dingbat hex":"50","Unicode dec":"928","Unicode hex":"3A0"},{"Typeface name":"Symbol","Dingbat dec":"81","Dingbat hex":"51","Unicode dec":"920","Unicode hex":"398"},{"Typeface name":"Symbol","Dingbat dec":"82","Dingbat hex":"52","Unicode dec":"929","Unicode hex":"3A1"},{"Typeface name":"Symbol","Dingbat dec":"83","Dingbat hex":"53","Unicode dec":"931","Unicode hex":"3A3"},{"Typeface name":"Symbol","Dingbat dec":"84","Dingbat hex":"54","Unicode dec":"932","Unicode hex":"3A4"},{"Typeface name":"Symbol","Dingbat dec":"85","Dingbat hex":"55","Unicode dec":"933","Unicode hex":"3A5"},{"Typeface name":"Symbol","Dingbat dec":"86","Dingbat hex":"56","Unicode dec":"962","Unicode hex":"3C2"},{"Typeface name":"Symbol","Dingbat dec":"87","Dingbat hex":"57","Unicode dec":"937","Unicode hex":"3A9"},{"Typeface name":"Symbol","Dingbat dec":"88","Dingbat hex":"58","Unicode dec":"926","Unicode hex":"39E"},{"Typeface name":"Symbol","Dingbat dec":"89","Dingbat hex":"59","Unicode dec":"936","Unicode hex":"3A8"},{"Typeface name":"Symbol","Dingbat dec":"90","Dingbat hex":"5A","Unicode dec":"918","Unicode hex":"396"},{"Typeface name":"Symbol","Dingbat dec":"91","Dingbat hex":"5B","Unicode dec":"91","Unicode hex":"5B"},{"Typeface name":"Symbol","Dingbat dec":"92","Dingbat hex":"5C","Unicode dec":"8756","Unicode hex":"2234"},{"Typeface name":"Symbol","Dingbat dec":"93","Dingbat hex":"5D","Unicode dec":"93","Unicode hex":"5D"},{"Typeface name":"Symbol","Dingbat dec":"94","Dingbat hex":"5E","Unicode dec":"8869","Unicode hex":"22A5"},{"Typeface name":"Symbol","Dingbat dec":"95","Dingbat hex":"5F","Unicode dec":"95","Unicode hex":"5F"},{"Typeface name":"Symbol","Dingbat dec":"96","Dingbat hex":"60","Unicode dec":"8254","Unicode hex":"203E"},{"Typeface name":"Symbol","Dingbat dec":"97","Dingbat hex":"61","Unicode dec":"945","Unicode hex":"3B1"},{"Typeface name":"Symbol","Dingbat dec":"98","Dingbat hex":"62","Unicode dec":"946","Unicode hex":"3B2"},{"Typeface name":"Symbol","Dingbat dec":"99","Dingbat hex":"63","Unicode dec":"967","Unicode hex":"3C7"},{"Typeface name":"Symbol","Dingbat dec":"100","Dingbat hex":"64","Unicode dec":"948","Unicode hex":"3B4"},{"Typeface name":"Symbol","Dingbat dec":"101","Dingbat hex":"65","Unicode dec":"949","Unicode hex":"3B5"},{"Typeface name":"Symbol","Dingbat dec":"102","Dingbat hex":"66","Unicode dec":"966","Unicode hex":"3C6"},{"Typeface name":"Symbol","Dingbat dec":"103","Dingbat hex":"67","Unicode dec":"947","Unicode hex":"3B3"},{"Typeface name":"Symbol","Dingbat dec":"104","Dingbat hex":"68","Unicode dec":"951","Unicode hex":"3B7"},{"Typeface name":"Symbol","Dingbat dec":"105","Dingbat hex":"69","Unicode dec":"953","Unicode hex":"3B9"},{"Typeface name":"Symbol","Dingbat dec":"106","Dingbat hex":"6A","Unicode dec":"981","Unicode hex":"3D5"},{"Typeface name":"Symbol","Dingbat dec":"107","Dingbat hex":"6B","Unicode dec":"954","Unicode hex":"3BA"},{"Typeface name":"Symbol","Dingbat dec":"108","Dingbat hex":"6C","Unicode dec":"955","Unicode hex":"3BB"},{"Typeface name":"Symbol","Dingbat dec":"109","Dingbat hex":"6D","Unicode dec":"956","Unicode hex":"3BC"},{"Typeface name":"Symbol","Dingbat dec":"110","Dingbat hex":"6E","Unicode dec":"957","Unicode hex":"3BD"},{"Typeface name":"Symbol","Dingbat dec":"111","Dingbat hex":"6F","Unicode dec":"959","Unicode hex":"3BF"},{"Typeface name":"Symbol","Dingbat dec":"112","Dingbat hex":"70","Unicode dec":"960","Unicode hex":"3C0"},{"Typeface name":"Symbol","Dingbat dec":"113","Dingbat hex":"71","Unicode dec":"952","Unicode hex":"3B8"},{"Typeface name":"Symbol","Dingbat dec":"114","Dingbat hex":"72","Unicode dec":"961","Unicode hex":"3C1"},{"Typeface name":"Symbol","Dingbat dec":"115","Dingbat hex":"73","Unicode dec":"963","Unicode hex":"3C3"},{"Typeface name":"Symbol","Dingbat dec":"116","Dingbat hex":"74","Unicode dec":"964","Unicode hex":"3C4"},{"Typeface name":"Symbol","Dingbat dec":"117","Dingbat hex":"75","Unicode dec":"965","Unicode hex":"3C5"},{"Typeface name":"Symbol","Dingbat dec":"118","Dingbat hex":"76","Unicode dec":"982","Unicode hex":"3D6"},{"Typeface name":"Symbol","Dingbat dec":"119","Dingbat hex":"77","Unicode dec":"969","Unicode hex":"3C9"},{"Typeface name":"Symbol","Dingbat dec":"120","Dingbat hex":"78","Unicode dec":"958","Unicode hex":"3BE"},{"Typeface name":"Symbol","Dingbat dec":"121","Dingbat hex":"79","Unicode dec":"968","Unicode hex":"3C8"},{"Typeface name":"Symbol","Dingbat dec":"122","Dingbat hex":"7A","Unicode dec":"950","Unicode hex":"3B6"},{"Typeface name":"Symbol","Dingbat dec":"123","Dingbat hex":"7B","Unicode dec":"123","Unicode hex":"7B"},{"Typeface name":"Symbol","Dingbat dec":"124","Dingbat hex":"7C","Unicode dec":"124","Unicode hex":"7C"},{"Typeface name":"Symbol","Dingbat dec":"125","Dingbat hex":"7D","Unicode dec":"125","Unicode hex":"7D"},{"Typeface name":"Symbol","Dingbat dec":"126","Dingbat hex":"7E","Unicode dec":"126","Unicode hex":"7E"},{"Typeface name":"Symbol","Dingbat dec":"160","Dingbat hex":"A0","Unicode dec":"8364","Unicode hex":"20AC"},{"Typeface name":"Symbol","Dingbat dec":"161","Dingbat hex":"A1","Unicode dec":"978","Unicode hex":"3D2"},{"Typeface name":"Symbol","Dingbat dec":"162","Dingbat hex":"A2","Unicode dec":"8242","Unicode hex":"2032"},{"Typeface name":"Symbol","Dingbat dec":"163","Dingbat hex":"A3","Unicode dec":"8804","Unicode hex":"2264"},{"Typeface name":"Symbol","Dingbat dec":"164","Dingbat hex":"A4","Unicode dec":"8260","Unicode hex":"2044"},{"Typeface name":"Symbol","Dingbat dec":"165","Dingbat hex":"A5","Unicode dec":"8734","Unicode hex":"221E"},{"Typeface name":"Symbol","Dingbat dec":"166","Dingbat hex":"A6","Unicode dec":"402","Unicode hex":"192"},{"Typeface name":"Symbol","Dingbat dec":"167","Dingbat hex":"A7","Unicode dec":"9827","Unicode hex":"2663"},{"Typeface name":"Symbol","Dingbat dec":"168","Dingbat hex":"A8","Unicode dec":"9830","Unicode hex":"2666"},{"Typeface name":"Symbol","Dingbat dec":"169","Dingbat hex":"A9","Unicode dec":"9829","Unicode hex":"2665"},{"Typeface name":"Symbol","Dingbat dec":"170","Dingbat hex":"AA","Unicode dec":"9824","Unicode hex":"2660"},{"Typeface name":"Symbol","Dingbat dec":"171","Dingbat hex":"AB","Unicode dec":"8596","Unicode hex":"2194"},{"Typeface name":"Symbol","Dingbat dec":"172","Dingbat hex":"AC","Unicode dec":"8592","Unicode hex":"2190"},{"Typeface name":"Symbol","Dingbat dec":"173","Dingbat hex":"AD","Unicode dec":"8593","Unicode hex":"2191"},{"Typeface name":"Symbol","Dingbat dec":"174","Dingbat hex":"AE","Unicode dec":"8594","Unicode hex":"2192"},{"Typeface name":"Symbol","Dingbat dec":"175","Dingbat hex":"AF","Unicode dec":"8595","Unicode hex":"2193"},{"Typeface name":"Symbol","Dingbat dec":"176","Dingbat hex":"B0","Unicode dec":"176","Unicode hex":"B0"},{"Typeface name":"Symbol","Dingbat dec":"177","Dingbat hex":"B1","Unicode dec":"177","Unicode hex":"B1"},{"Typeface name":"Symbol","Dingbat dec":"178","Dingbat hex":"B2","Unicode dec":"8243","Unicode hex":"2033"},{"Typeface name":"Symbol","Dingbat dec":"179","Dingbat hex":"B3","Unicode dec":"8805","Unicode hex":"2265"},{"Typeface name":"Symbol","Dingbat dec":"180","Dingbat hex":"B4","Unicode dec":"215","Unicode hex":"D7"},{"Typeface name":"Symbol","Dingbat dec":"181","Dingbat hex":"B5","Unicode dec":"8733","Unicode hex":"221D"},{"Typeface name":"Symbol","Dingbat dec":"182","Dingbat hex":"B6","Unicode dec":"8706","Unicode hex":"2202"},{"Typeface name":"Symbol","Dingbat dec":"183","Dingbat hex":"B7","Unicode dec":"8226","Unicode hex":"2022"},{"Typeface name":"Symbol","Dingbat dec":"184","Dingbat hex":"B8","Unicode dec":"247","Unicode hex":"F7"},{"Typeface name":"Symbol","Dingbat dec":"185","Dingbat hex":"B9","Unicode dec":"8800","Unicode hex":"2260"},{"Typeface name":"Symbol","Dingbat dec":"186","Dingbat hex":"BA","Unicode dec":"8801","Unicode hex":"2261"},{"Typeface name":"Symbol","Dingbat dec":"187","Dingbat hex":"BB","Unicode dec":"8776","Unicode hex":"2248"},{"Typeface name":"Symbol","Dingbat dec":"188","Dingbat hex":"BC","Unicode dec":"8230","Unicode hex":"2026"},{"Typeface name":"Symbol","Dingbat dec":"189","Dingbat hex":"BD","Unicode dec":"9168","Unicode hex":"23D0"},{"Typeface name":"Symbol","Dingbat dec":"190","Dingbat hex":"BE","Unicode dec":"9135","Unicode hex":"23AF"},{"Typeface name":"Symbol","Dingbat dec":"191","Dingbat hex":"BF","Unicode dec":"8629","Unicode hex":"21B5"},{"Typeface name":"Symbol","Dingbat dec":"192","Dingbat hex":"C0","Unicode dec":"8501","Unicode hex":"2135"},{"Typeface name":"Symbol","Dingbat dec":"193","Dingbat hex":"C1","Unicode dec":"8465","Unicode hex":"2111"},{"Typeface name":"Symbol","Dingbat dec":"194","Dingbat hex":"C2","Unicode dec":"8476","Unicode hex":"211C"},{"Typeface name":"Symbol","Dingbat dec":"195","Dingbat hex":"C3","Unicode dec":"8472","Unicode hex":"2118"},{"Typeface name":"Symbol","Dingbat dec":"196","Dingbat hex":"C4","Unicode dec":"8855","Unicode hex":"2297"},{"Typeface name":"Symbol","Dingbat dec":"197","Dingbat hex":"C5","Unicode dec":"8853","Unicode hex":"2295"},{"Typeface name":"Symbol","Dingbat dec":"198","Dingbat hex":"C6","Unicode dec":"8709","Unicode hex":"2205"},{"Typeface name":"Symbol","Dingbat dec":"199","Dingbat hex":"C7","Unicode dec":"8745","Unicode hex":"2229"},{"Typeface name":"Symbol","Dingbat dec":"200","Dingbat hex":"C8","Unicode dec":"8746","Unicode hex":"222A"},{"Typeface name":"Symbol","Dingbat dec":"201","Dingbat hex":"C9","Unicode dec":"8835","Unicode hex":"2283"},{"Typeface name":"Symbol","Dingbat dec":"202","Dingbat hex":"CA","Unicode dec":"8839","Unicode hex":"2287"},{"Typeface name":"Symbol","Dingbat dec":"203","Dingbat hex":"CB","Unicode dec":"8836","Unicode hex":"2284"},{"Typeface name":"Symbol","Dingbat dec":"204","Dingbat hex":"CC","Unicode dec":"8834","Unicode hex":"2282"},{"Typeface name":"Symbol","Dingbat dec":"205","Dingbat hex":"CD","Unicode dec":"8838","Unicode hex":"2286"},{"Typeface name":"Symbol","Dingbat dec":"206","Dingbat hex":"CE","Unicode dec":"8712","Unicode hex":"2208"},{"Typeface name":"Symbol","Dingbat dec":"207","Dingbat hex":"CF","Unicode dec":"8713","Unicode hex":"2209"},{"Typeface name":"Symbol","Dingbat dec":"208","Dingbat hex":"D0","Unicode dec":"8736","Unicode hex":"2220"},{"Typeface name":"Symbol","Dingbat dec":"209","Dingbat hex":"D1","Unicode dec":"8711","Unicode hex":"2207"},{"Typeface name":"Symbol","Dingbat dec":"210","Dingbat hex":"D2","Unicode dec":"174","Unicode hex":"AE"},{"Typeface name":"Symbol","Dingbat dec":"211","Dingbat hex":"D3","Unicode dec":"169","Unicode hex":"A9"},{"Typeface name":"Symbol","Dingbat dec":"212","Dingbat hex":"D4","Unicode dec":"8482","Unicode hex":"2122"},{"Typeface name":"Symbol","Dingbat dec":"213","Dingbat hex":"D5","Unicode dec":"8719","Unicode hex":"220F"},{"Typeface name":"Symbol","Dingbat dec":"214","Dingbat hex":"D6","Unicode dec":"8730","Unicode hex":"221A"},{"Typeface name":"Symbol","Dingbat dec":"215","Dingbat hex":"D7","Unicode dec":"8901","Unicode hex":"22C5"},{"Typeface name":"Symbol","Dingbat dec":"216","Dingbat hex":"D8","Unicode dec":"172","Unicode hex":"AC"},{"Typeface name":"Symbol","Dingbat dec":"217","Dingbat hex":"D9","Unicode dec":"8743","Unicode hex":"2227"},{"Typeface name":"Symbol","Dingbat dec":"218","Dingbat hex":"DA","Unicode dec":"8744","Unicode hex":"2228"},{"Typeface name":"Symbol","Dingbat dec":"219","Dingbat hex":"DB","Unicode dec":"8660","Unicode hex":"21D4"},{"Typeface name":"Symbol","Dingbat dec":"220","Dingbat hex":"DC","Unicode dec":"8656","Unicode hex":"21D0"},{"Typeface name":"Symbol","Dingbat dec":"221","Dingbat hex":"DD","Unicode dec":"8657","Unicode hex":"21D1"},{"Typeface name":"Symbol","Dingbat dec":"222","Dingbat hex":"DE","Unicode dec":"8658","Unicode hex":"21D2"},{"Typeface name":"Symbol","Dingbat dec":"223","Dingbat hex":"DF","Unicode dec":"8659","Unicode hex":"21D3"},{"Typeface name":"Symbol","Dingbat dec":"224","Dingbat hex":"E0","Unicode dec":"9674","Unicode hex":"25CA"},{"Typeface name":"Symbol","Dingbat dec":"225","Dingbat hex":"E1","Unicode dec":"12296","Unicode hex":"3008"},{"Typeface name":"Symbol","Dingbat dec":"226","Dingbat hex":"E2","Unicode dec":"174","Unicode hex":"AE"},{"Typeface name":"Symbol","Dingbat dec":"227","Dingbat hex":"E3","Unicode dec":"169","Unicode hex":"A9"},{"Typeface name":"Symbol","Dingbat dec":"228","Dingbat hex":"E4","Unicode dec":"8482","Unicode hex":"2122"},{"Typeface name":"Symbol","Dingbat dec":"229","Dingbat hex":"E5","Unicode dec":"8721","Unicode hex":"2211"},{"Typeface name":"Symbol","Dingbat dec":"230","Dingbat hex":"E6","Unicode dec":"9115","Unicode hex":"239B"},{"Typeface name":"Symbol","Dingbat dec":"231","Dingbat hex":"E7","Unicode dec":"9116","Unicode hex":"239C"},{"Typeface name":"Symbol","Dingbat dec":"232","Dingbat hex":"E8","Unicode dec":"9117","Unicode hex":"239D"},{"Typeface name":"Symbol","Dingbat dec":"233","Dingbat hex":"E9","Unicode dec":"9121","Unicode hex":"23A1"},{"Typeface name":"Symbol","Dingbat dec":"234","Dingbat hex":"EA","Unicode dec":"9122","Unicode hex":"23A2"},{"Typeface name":"Symbol","Dingbat dec":"235","Dingbat hex":"EB","Unicode dec":"9123","Unicode hex":"23A3"},{"Typeface name":"Symbol","Dingbat dec":"236","Dingbat hex":"EC","Unicode dec":"9127","Unicode hex":"23A7"},{"Typeface name":"Symbol","Dingbat dec":"237","Dingbat hex":"ED","Unicode dec":"9128","Unicode hex":"23A8"},{"Typeface name":"Symbol","Dingbat dec":"238","Dingbat hex":"EE","Unicode dec":"9129","Unicode hex":"23A9"},{"Typeface name":"Symbol","Dingbat dec":"239","Dingbat hex":"EF","Unicode dec":"9130","Unicode hex":"23AA"},{"Typeface name":"Symbol","Dingbat dec":"240","Dingbat hex":"F0","Unicode dec":"63743","Unicode hex":"F8FF"},{"Typeface name":"Symbol","Dingbat dec":"241","Dingbat hex":"F1","Unicode dec":"12297","Unicode hex":"3009"},{"Typeface name":"Symbol","Dingbat dec":"242","Dingbat hex":"F2","Unicode dec":"8747","Unicode hex":"222B"},{"Typeface name":"Symbol","Dingbat dec":"243","Dingbat hex":"F3","Unicode dec":"8992","Unicode hex":"2320"},{"Typeface name":"Symbol","Dingbat dec":"244","Dingbat hex":"F4","Unicode dec":"9134","Unicode hex":"23AE"},{"Typeface name":"Symbol","Dingbat dec":"245","Dingbat hex":"F5","Unicode dec":"8993","Unicode hex":"2321"},{"Typeface name":"Symbol","Dingbat dec":"246","Dingbat hex":"F6","Unicode dec":"9118","Unicode hex":"239E"},{"Typeface name":"Symbol","Dingbat dec":"247","Dingbat hex":"F7","Unicode dec":"9119","Unicode hex":"239F"},{"Typeface name":"Symbol","Dingbat dec":"248","Dingbat hex":"F8","Unicode dec":"9120","Unicode hex":"23A0"},{"Typeface name":"Symbol","Dingbat dec":"249","Dingbat hex":"F9","Unicode dec":"9124","Unicode hex":"23A4"},{"Typeface name":"Symbol","Dingbat dec":"250","Dingbat hex":"FA","Unicode dec":"9125","Unicode hex":"23A5"},{"Typeface name":"Symbol","Dingbat dec":"251","Dingbat hex":"FB","Unicode dec":"9126","Unicode hex":"23A6"},{"Typeface name":"Symbol","Dingbat dec":"252","Dingbat hex":"FC","Unicode dec":"9131","Unicode hex":"23AB"},{"Typeface name":"Symbol","Dingbat dec":"253","Dingbat hex":"FD","Unicode dec":"9132","Unicode hex":"23AC"},{"Typeface name":"Symbol","Dingbat dec":"254","Dingbat hex":"FE","Unicode dec":"9133","Unicode hex":"23AD"},{"Typeface name":"Webdings","Dingbat dec":"32","Dingbat hex":"20","Unicode dec":"32","Unicode hex":"20"},{"Typeface name":"Webdings","Dingbat dec":"33","Dingbat hex":"21","Unicode dec":"128375","Unicode hex":"1F577"},{"Typeface name":"Webdings","Dingbat dec":"34","Dingbat hex":"22","Unicode dec":"128376","Unicode hex":"1F578"},{"Typeface name":"Webdings","Dingbat dec":"35","Dingbat hex":"23","Unicode dec":"128370","Unicode hex":"1F572"},{"Typeface name":"Webdings","Dingbat dec":"36","Dingbat hex":"24","Unicode dec":"128374","Unicode hex":"1F576"},{"Typeface name":"Webdings","Dingbat dec":"37","Dingbat hex":"25","Unicode dec":"127942","Unicode hex":"1F3C6"},{"Typeface name":"Webdings","Dingbat dec":"38","Dingbat hex":"26","Unicode dec":"127894","Unicode hex":"1F396"},{"Typeface name":"Webdings","Dingbat dec":"39","Dingbat hex":"27","Unicode dec":"128391","Unicode hex":"1F587"},{"Typeface name":"Webdings","Dingbat dec":"40","Dingbat hex":"28","Unicode dec":"128488","Unicode hex":"1F5E8"},{"Typeface name":"Webdings","Dingbat dec":"41","Dingbat hex":"29","Unicode dec":"128489","Unicode hex":"1F5E9"},{"Typeface name":"Webdings","Dingbat dec":"42","Dingbat hex":"2A","Unicode dec":"128496","Unicode hex":"1F5F0"},{"Typeface name":"Webdings","Dingbat dec":"43","Dingbat hex":"2B","Unicode dec":"128497","Unicode hex":"1F5F1"},{"Typeface name":"Webdings","Dingbat dec":"44","Dingbat hex":"2C","Unicode dec":"127798","Unicode hex":"1F336"},{"Typeface name":"Webdings","Dingbat dec":"45","Dingbat hex":"2D","Unicode dec":"127895","Unicode hex":"1F397"},{"Typeface name":"Webdings","Dingbat dec":"46","Dingbat hex":"2E","Unicode dec":"128638","Unicode hex":"1F67E"},{"Typeface name":"Webdings","Dingbat dec":"47","Dingbat hex":"2F","Unicode dec":"128636","Unicode hex":"1F67C"},{"Typeface name":"Webdings","Dingbat dec":"48","Dingbat hex":"30","Unicode dec":"128469","Unicode hex":"1F5D5"},{"Typeface name":"Webdings","Dingbat dec":"49","Dingbat hex":"31","Unicode dec":"128470","Unicode hex":"1F5D6"},{"Typeface name":"Webdings","Dingbat dec":"50","Dingbat hex":"32","Unicode dec":"128471","Unicode hex":"1F5D7"},{"Typeface name":"Webdings","Dingbat dec":"51","Dingbat hex":"33","Unicode dec":"9204","Unicode hex":"23F4"},{"Typeface name":"Webdings","Dingbat dec":"52","Dingbat hex":"34","Unicode dec":"9205","Unicode hex":"23F5"},{"Typeface name":"Webdings","Dingbat dec":"53","Dingbat hex":"35","Unicode dec":"9206","Unicode hex":"23F6"},{"Typeface name":"Webdings","Dingbat dec":"54","Dingbat hex":"36","Unicode dec":"9207","Unicode hex":"23F7"},{"Typeface name":"Webdings","Dingbat dec":"55","Dingbat hex":"37","Unicode dec":"9194","Unicode hex":"23EA"},{"Typeface name":"Webdings","Dingbat dec":"56","Dingbat hex":"38","Unicode dec":"9193","Unicode hex":"23E9"},{"Typeface name":"Webdings","Dingbat dec":"57","Dingbat hex":"39","Unicode dec":"9198","Unicode hex":"23EE"},{"Typeface name":"Webdings","Dingbat dec":"58","Dingbat hex":"3A","Unicode dec":"9197","Unicode hex":"23ED"},{"Typeface name":"Webdings","Dingbat dec":"59","Dingbat hex":"3B","Unicode dec":"9208","Unicode hex":"23F8"},{"Typeface name":"Webdings","Dingbat dec":"60","Dingbat hex":"3C","Unicode dec":"9209","Unicode hex":"23F9"},{"Typeface name":"Webdings","Dingbat dec":"61","Dingbat hex":"3D","Unicode dec":"9210","Unicode hex":"23FA"},{"Typeface name":"Webdings","Dingbat dec":"62","Dingbat hex":"3E","Unicode dec":"128474","Unicode hex":"1F5DA"},{"Typeface name":"Webdings","Dingbat dec":"63","Dingbat hex":"3F","Unicode dec":"128499","Unicode hex":"1F5F3"},{"Typeface name":"Webdings","Dingbat dec":"64","Dingbat hex":"40","Unicode dec":"128736","Unicode hex":"1F6E0"},{"Typeface name":"Webdings","Dingbat dec":"65","Dingbat hex":"41","Unicode dec":"127959","Unicode hex":"1F3D7"},{"Typeface name":"Webdings","Dingbat dec":"66","Dingbat hex":"42","Unicode dec":"127960","Unicode hex":"1F3D8"},{"Typeface name":"Webdings","Dingbat dec":"67","Dingbat hex":"43","Unicode dec":"127961","Unicode hex":"1F3D9"},{"Typeface name":"Webdings","Dingbat dec":"68","Dingbat hex":"44","Unicode dec":"127962","Unicode hex":"1F3DA"},{"Typeface name":"Webdings","Dingbat dec":"69","Dingbat hex":"45","Unicode dec":"127964","Unicode hex":"1F3DC"},{"Typeface name":"Webdings","Dingbat dec":"70","Dingbat hex":"46","Unicode dec":"127981","Unicode hex":"1F3ED"},{"Typeface name":"Webdings","Dingbat dec":"71","Dingbat hex":"47","Unicode dec":"127963","Unicode hex":"1F3DB"},{"Typeface name":"Webdings","Dingbat dec":"72","Dingbat hex":"48","Unicode dec":"127968","Unicode hex":"1F3E0"},{"Typeface name":"Webdings","Dingbat dec":"73","Dingbat hex":"49","Unicode dec":"127958","Unicode hex":"1F3D6"},{"Typeface name":"Webdings","Dingbat dec":"74","Dingbat hex":"4A","Unicode dec":"127965","Unicode hex":"1F3DD"},{"Typeface name":"Webdings","Dingbat dec":"75","Dingbat hex":"4B","Unicode dec":"128739","Unicode hex":"1F6E3"},{"Typeface name":"Webdings","Dingbat dec":"76","Dingbat hex":"4C","Unicode dec":"128269","Unicode hex":"1F50D"},{"Typeface name":"Webdings","Dingbat dec":"77","Dingbat hex":"4D","Unicode dec":"127956","Unicode hex":"1F3D4"},{"Typeface name":"Webdings","Dingbat dec":"78","Dingbat hex":"4E","Unicode dec":"128065","Unicode hex":"1F441"},{"Typeface name":"Webdings","Dingbat dec":"79","Dingbat hex":"4F","Unicode dec":"128066","Unicode hex":"1F442"},{"Typeface name":"Webdings","Dingbat dec":"80","Dingbat hex":"50","Unicode dec":"127966","Unicode hex":"1F3DE"},{"Typeface name":"Webdings","Dingbat dec":"81", +"Dingbat hex":"51","Unicode dec":"127957","Unicode hex":"1F3D5"},{"Typeface name":"Webdings","Dingbat dec":"82","Dingbat hex":"52","Unicode dec":"128740","Unicode hex":"1F6E4"},{"Typeface name":"Webdings","Dingbat dec":"83","Dingbat hex":"53","Unicode dec":"127967","Unicode hex":"1F3DF"},{"Typeface name":"Webdings","Dingbat dec":"84","Dingbat hex":"54","Unicode dec":"128755","Unicode hex":"1F6F3"},{"Typeface name":"Webdings","Dingbat dec":"85","Dingbat hex":"55","Unicode dec":"128364","Unicode hex":"1F56C"},{"Typeface name":"Webdings","Dingbat dec":"86","Dingbat hex":"56","Unicode dec":"128363","Unicode hex":"1F56B"},{"Typeface name":"Webdings","Dingbat dec":"87","Dingbat hex":"57","Unicode dec":"128360","Unicode hex":"1F568"},{"Typeface name":"Webdings","Dingbat dec":"88","Dingbat hex":"58","Unicode dec":"128264","Unicode hex":"1F508"},{"Typeface name":"Webdings","Dingbat dec":"89","Dingbat hex":"59","Unicode dec":"127892","Unicode hex":"1F394"},{"Typeface name":"Webdings","Dingbat dec":"90","Dingbat hex":"5A","Unicode dec":"127893","Unicode hex":"1F395"},{"Typeface name":"Webdings","Dingbat dec":"91","Dingbat hex":"5B","Unicode dec":"128492","Unicode hex":"1F5EC"},{"Typeface name":"Webdings","Dingbat dec":"92","Dingbat hex":"5C","Unicode dec":"128637","Unicode hex":"1F67D"},{"Typeface name":"Webdings","Dingbat dec":"93","Dingbat hex":"5D","Unicode dec":"128493","Unicode hex":"1F5ED"},{"Typeface name":"Webdings","Dingbat dec":"94","Dingbat hex":"5E","Unicode dec":"128490","Unicode hex":"1F5EA"},{"Typeface name":"Webdings","Dingbat dec":"95","Dingbat hex":"5F","Unicode dec":"128491","Unicode hex":"1F5EB"},{"Typeface name":"Webdings","Dingbat dec":"96","Dingbat hex":"60","Unicode dec":"11156","Unicode hex":"2B94"},{"Typeface name":"Webdings","Dingbat dec":"97","Dingbat hex":"61","Unicode dec":"10004","Unicode hex":"2714"},{"Typeface name":"Webdings","Dingbat dec":"98","Dingbat hex":"62","Unicode dec":"128690","Unicode hex":"1F6B2"},{"Typeface name":"Webdings","Dingbat dec":"99","Dingbat hex":"63","Unicode dec":"11036","Unicode hex":"2B1C"},{"Typeface name":"Webdings","Dingbat dec":"100","Dingbat hex":"64","Unicode dec":"128737","Unicode hex":"1F6E1"},{"Typeface name":"Webdings","Dingbat dec":"101","Dingbat hex":"65","Unicode dec":"128230","Unicode hex":"1F4E6"},{"Typeface name":"Webdings","Dingbat dec":"102","Dingbat hex":"66","Unicode dec":"128753","Unicode hex":"1F6F1"},{"Typeface name":"Webdings","Dingbat dec":"103","Dingbat hex":"67","Unicode dec":"11035","Unicode hex":"2B1B"},{"Typeface name":"Webdings","Dingbat dec":"104","Dingbat hex":"68","Unicode dec":"128657","Unicode hex":"1F691"},{"Typeface name":"Webdings","Dingbat dec":"105","Dingbat hex":"69","Unicode dec":"128712","Unicode hex":"1F6C8"},{"Typeface name":"Webdings","Dingbat dec":"106","Dingbat hex":"6A","Unicode dec":"128745","Unicode hex":"1F6E9"},{"Typeface name":"Webdings","Dingbat dec":"107","Dingbat hex":"6B","Unicode dec":"128752","Unicode hex":"1F6F0"},{"Typeface name":"Webdings","Dingbat dec":"108","Dingbat hex":"6C","Unicode dec":"128968","Unicode hex":"1F7C8"},{"Typeface name":"Webdings","Dingbat dec":"109","Dingbat hex":"6D","Unicode dec":"128372","Unicode hex":"1F574"},{"Typeface name":"Webdings","Dingbat dec":"110","Dingbat hex":"6E","Unicode dec":"11044","Unicode hex":"2B24"},{"Typeface name":"Webdings","Dingbat dec":"111","Dingbat hex":"6F","Unicode dec":"128741","Unicode hex":"1F6E5"},{"Typeface name":"Webdings","Dingbat dec":"112","Dingbat hex":"70","Unicode dec":"128660","Unicode hex":"1F694"},{"Typeface name":"Webdings","Dingbat dec":"113","Dingbat hex":"71","Unicode dec":"128472","Unicode hex":"1F5D8"},{"Typeface name":"Webdings","Dingbat dec":"114","Dingbat hex":"72","Unicode dec":"128473","Unicode hex":"1F5D9"},{"Typeface name":"Webdings","Dingbat dec":"115","Dingbat hex":"73","Unicode dec":"10067","Unicode hex":"2753"},{"Typeface name":"Webdings","Dingbat dec":"116","Dingbat hex":"74","Unicode dec":"128754","Unicode hex":"1F6F2"},{"Typeface name":"Webdings","Dingbat dec":"117","Dingbat hex":"75","Unicode dec":"128647","Unicode hex":"1F687"},{"Typeface name":"Webdings","Dingbat dec":"118","Dingbat hex":"76","Unicode dec":"128653","Unicode hex":"1F68D"},{"Typeface name":"Webdings","Dingbat dec":"119","Dingbat hex":"77","Unicode dec":"9971","Unicode hex":"26F3"},{"Typeface name":"Webdings","Dingbat dec":"120","Dingbat hex":"78","Unicode dec":"10680","Unicode hex":"29B8"},{"Typeface name":"Webdings","Dingbat dec":"121","Dingbat hex":"79","Unicode dec":"8854","Unicode hex":"2296"},{"Typeface name":"Webdings","Dingbat dec":"122","Dingbat hex":"7A","Unicode dec":"128685","Unicode hex":"1F6AD"},{"Typeface name":"Webdings","Dingbat dec":"123","Dingbat hex":"7B","Unicode dec":"128494","Unicode hex":"1F5EE"},{"Typeface name":"Webdings","Dingbat dec":"124","Dingbat hex":"7C","Unicode dec":"9168","Unicode hex":"23D0"},{"Typeface name":"Webdings","Dingbat dec":"125","Dingbat hex":"7D","Unicode dec":"128495","Unicode hex":"1F5EF"},{"Typeface name":"Webdings","Dingbat dec":"126","Dingbat hex":"7E","Unicode dec":"128498","Unicode hex":"1F5F2"},{"Typeface name":"Webdings","Dingbat dec":"128","Dingbat hex":"80","Unicode dec":"128697","Unicode hex":"1F6B9"},{"Typeface name":"Webdings","Dingbat dec":"129","Dingbat hex":"81","Unicode dec":"128698","Unicode hex":"1F6BA"},{"Typeface name":"Webdings","Dingbat dec":"130","Dingbat hex":"82","Unicode dec":"128713","Unicode hex":"1F6C9"},{"Typeface name":"Webdings","Dingbat dec":"131","Dingbat hex":"83","Unicode dec":"128714","Unicode hex":"1F6CA"},{"Typeface name":"Webdings","Dingbat dec":"132","Dingbat hex":"84","Unicode dec":"128700","Unicode hex":"1F6BC"},{"Typeface name":"Webdings","Dingbat dec":"133","Dingbat hex":"85","Unicode dec":"128125","Unicode hex":"1F47D"},{"Typeface name":"Webdings","Dingbat dec":"134","Dingbat hex":"86","Unicode dec":"127947","Unicode hex":"1F3CB"},{"Typeface name":"Webdings","Dingbat dec":"135","Dingbat hex":"87","Unicode dec":"9975","Unicode hex":"26F7"},{"Typeface name":"Webdings","Dingbat dec":"136","Dingbat hex":"88","Unicode dec":"127938","Unicode hex":"1F3C2"},{"Typeface name":"Webdings","Dingbat dec":"137","Dingbat hex":"89","Unicode dec":"127948","Unicode hex":"1F3CC"},{"Typeface name":"Webdings","Dingbat dec":"138","Dingbat hex":"8A","Unicode dec":"127946","Unicode hex":"1F3CA"},{"Typeface name":"Webdings","Dingbat dec":"139","Dingbat hex":"8B","Unicode dec":"127940","Unicode hex":"1F3C4"},{"Typeface name":"Webdings","Dingbat dec":"140","Dingbat hex":"8C","Unicode dec":"127949","Unicode hex":"1F3CD"},{"Typeface name":"Webdings","Dingbat dec":"141","Dingbat hex":"8D","Unicode dec":"127950","Unicode hex":"1F3CE"},{"Typeface name":"Webdings","Dingbat dec":"142","Dingbat hex":"8E","Unicode dec":"128664","Unicode hex":"1F698"},{"Typeface name":"Webdings","Dingbat dec":"143","Dingbat hex":"8F","Unicode dec":"128480","Unicode hex":"1F5E0"},{"Typeface name":"Webdings","Dingbat dec":"144","Dingbat hex":"90","Unicode dec":"128738","Unicode hex":"1F6E2"},{"Typeface name":"Webdings","Dingbat dec":"145","Dingbat hex":"91","Unicode dec":"128176","Unicode hex":"1F4B0"},{"Typeface name":"Webdings","Dingbat dec":"146","Dingbat hex":"92","Unicode dec":"127991","Unicode hex":"1F3F7"},{"Typeface name":"Webdings","Dingbat dec":"147","Dingbat hex":"93","Unicode dec":"128179","Unicode hex":"1F4B3"},{"Typeface name":"Webdings","Dingbat dec":"148","Dingbat hex":"94","Unicode dec":"128106","Unicode hex":"1F46A"},{"Typeface name":"Webdings","Dingbat dec":"149","Dingbat hex":"95","Unicode dec":"128481","Unicode hex":"1F5E1"},{"Typeface name":"Webdings","Dingbat dec":"150","Dingbat hex":"96","Unicode dec":"128482","Unicode hex":"1F5E2"},{"Typeface name":"Webdings","Dingbat dec":"151","Dingbat hex":"97","Unicode dec":"128483","Unicode hex":"1F5E3"},{"Typeface name":"Webdings","Dingbat dec":"152","Dingbat hex":"98","Unicode dec":"10031","Unicode hex":"272F"},{"Typeface name":"Webdings","Dingbat dec":"153","Dingbat hex":"99","Unicode dec":"128388","Unicode hex":"1F584"},{"Typeface name":"Webdings","Dingbat dec":"154","Dingbat hex":"9A","Unicode dec":"128389","Unicode hex":"1F585"},{"Typeface name":"Webdings","Dingbat dec":"155","Dingbat hex":"9B","Unicode dec":"128387","Unicode hex":"1F583"},{"Typeface name":"Webdings","Dingbat dec":"156","Dingbat hex":"9C","Unicode dec":"128390","Unicode hex":"1F586"},{"Typeface name":"Webdings","Dingbat dec":"157","Dingbat hex":"9D","Unicode dec":"128441","Unicode hex":"1F5B9"},{"Typeface name":"Webdings","Dingbat dec":"158","Dingbat hex":"9E","Unicode dec":"128442","Unicode hex":"1F5BA"},{"Typeface name":"Webdings","Dingbat dec":"159","Dingbat hex":"9F","Unicode dec":"128443","Unicode hex":"1F5BB"},{"Typeface name":"Webdings","Dingbat dec":"160","Dingbat hex":"A0","Unicode dec":"128373","Unicode hex":"1F575"},{"Typeface name":"Webdings","Dingbat dec":"161","Dingbat hex":"A1","Unicode dec":"128368","Unicode hex":"1F570"},{"Typeface name":"Webdings","Dingbat dec":"162","Dingbat hex":"A2","Unicode dec":"128445","Unicode hex":"1F5BD"},{"Typeface name":"Webdings","Dingbat dec":"163","Dingbat hex":"A3","Unicode dec":"128446","Unicode hex":"1F5BE"},{"Typeface name":"Webdings","Dingbat dec":"164","Dingbat hex":"A4","Unicode dec":"128203","Unicode hex":"1F4CB"},{"Typeface name":"Webdings","Dingbat dec":"165","Dingbat hex":"A5","Unicode dec":"128466","Unicode hex":"1F5D2"},{"Typeface name":"Webdings","Dingbat dec":"166","Dingbat hex":"A6","Unicode dec":"128467","Unicode hex":"1F5D3"},{"Typeface name":"Webdings","Dingbat dec":"167","Dingbat hex":"A7","Unicode dec":"128366","Unicode hex":"1F56E"},{"Typeface name":"Webdings","Dingbat dec":"168","Dingbat hex":"A8","Unicode dec":"128218","Unicode hex":"1F4DA"},{"Typeface name":"Webdings","Dingbat dec":"169","Dingbat hex":"A9","Unicode dec":"128478","Unicode hex":"1F5DE"},{"Typeface name":"Webdings","Dingbat dec":"170","Dingbat hex":"AA","Unicode dec":"128479","Unicode hex":"1F5DF"},{"Typeface name":"Webdings","Dingbat dec":"171","Dingbat hex":"AB","Unicode dec":"128451","Unicode hex":"1F5C3"},{"Typeface name":"Webdings","Dingbat dec":"172","Dingbat hex":"AC","Unicode dec":"128450","Unicode hex":"1F5C2"},{"Typeface name":"Webdings","Dingbat dec":"173","Dingbat hex":"AD","Unicode dec":"128444","Unicode hex":"1F5BC"},{"Typeface name":"Webdings","Dingbat dec":"174","Dingbat hex":"AE","Unicode dec":"127917","Unicode hex":"1F3AD"},{"Typeface name":"Webdings","Dingbat dec":"175","Dingbat hex":"AF","Unicode dec":"127900","Unicode hex":"1F39C"},{"Typeface name":"Webdings","Dingbat dec":"176","Dingbat hex":"B0","Unicode dec":"127896","Unicode hex":"1F398"},{"Typeface name":"Webdings","Dingbat dec":"177","Dingbat hex":"B1","Unicode dec":"127897","Unicode hex":"1F399"},{"Typeface name":"Webdings","Dingbat dec":"178","Dingbat hex":"B2","Unicode dec":"127911","Unicode hex":"1F3A7"},{"Typeface name":"Webdings","Dingbat dec":"179","Dingbat hex":"B3","Unicode dec":"128191","Unicode hex":"1F4BF"},{"Typeface name":"Webdings","Dingbat dec":"180","Dingbat hex":"B4","Unicode dec":"127902","Unicode hex":"1F39E"},{"Typeface name":"Webdings","Dingbat dec":"181","Dingbat hex":"B5","Unicode dec":"128247","Unicode hex":"1F4F7"},{"Typeface name":"Webdings","Dingbat dec":"182","Dingbat hex":"B6","Unicode dec":"127903","Unicode hex":"1F39F"},{"Typeface name":"Webdings","Dingbat dec":"183","Dingbat hex":"B7","Unicode dec":"127916","Unicode hex":"1F3AC"},{"Typeface name":"Webdings","Dingbat dec":"184","Dingbat hex":"B8","Unicode dec":"128253","Unicode hex":"1F4FD"},{"Typeface name":"Webdings","Dingbat dec":"185","Dingbat hex":"B9","Unicode dec":"128249","Unicode hex":"1F4F9"},{"Typeface name":"Webdings","Dingbat dec":"186","Dingbat hex":"BA","Unicode dec":"128254","Unicode hex":"1F4FE"},{"Typeface name":"Webdings","Dingbat dec":"187","Dingbat hex":"BB","Unicode dec":"128251","Unicode hex":"1F4FB"},{"Typeface name":"Webdings","Dingbat dec":"188","Dingbat hex":"BC","Unicode dec":"127898","Unicode hex":"1F39A"},{"Typeface name":"Webdings","Dingbat dec":"189","Dingbat hex":"BD","Unicode dec":"127899","Unicode hex":"1F39B"},{"Typeface name":"Webdings","Dingbat dec":"190","Dingbat hex":"BE","Unicode dec":"128250","Unicode hex":"1F4FA"},{"Typeface name":"Webdings","Dingbat dec":"191","Dingbat hex":"BF","Unicode dec":"128187","Unicode hex":"1F4BB"},{"Typeface name":"Webdings","Dingbat dec":"192","Dingbat hex":"C0","Unicode dec":"128421","Unicode hex":"1F5A5"},{"Typeface name":"Webdings","Dingbat dec":"193","Dingbat hex":"C1","Unicode dec":"128422","Unicode hex":"1F5A6"},{"Typeface name":"Webdings","Dingbat dec":"194","Dingbat hex":"C2","Unicode dec":"128423","Unicode hex":"1F5A7"},{"Typeface name":"Webdings","Dingbat dec":"195","Dingbat hex":"C3","Unicode dec":"128377","Unicode hex":"1F579"},{"Typeface name":"Webdings","Dingbat dec":"196","Dingbat hex":"C4","Unicode dec":"127918","Unicode hex":"1F3AE"},{"Typeface name":"Webdings","Dingbat dec":"197","Dingbat hex":"C5","Unicode dec":"128379","Unicode hex":"1F57B"},{"Typeface name":"Webdings","Dingbat dec":"198","Dingbat hex":"C6","Unicode dec":"128380","Unicode hex":"1F57C"},{"Typeface name":"Webdings","Dingbat dec":"199","Dingbat hex":"C7","Unicode dec":"128223","Unicode hex":"1F4DF"},{"Typeface name":"Webdings","Dingbat dec":"200","Dingbat hex":"C8","Unicode dec":"128385","Unicode hex":"1F581"},{"Typeface name":"Webdings","Dingbat dec":"201","Dingbat hex":"C9","Unicode dec":"128384","Unicode hex":"1F580"},{"Typeface name":"Webdings","Dingbat dec":"202","Dingbat hex":"CA","Unicode dec":"128424","Unicode hex":"1F5A8"},{"Typeface name":"Webdings","Dingbat dec":"203","Dingbat hex":"CB","Unicode dec":"128425","Unicode hex":"1F5A9"},{"Typeface name":"Webdings","Dingbat dec":"204","Dingbat hex":"CC","Unicode dec":"128447","Unicode hex":"1F5BF"},{"Typeface name":"Webdings","Dingbat dec":"205","Dingbat hex":"CD","Unicode dec":"128426","Unicode hex":"1F5AA"},{"Typeface name":"Webdings","Dingbat dec":"206","Dingbat hex":"CE","Unicode dec":"128476","Unicode hex":"1F5DC"},{"Typeface name":"Webdings","Dingbat dec":"207","Dingbat hex":"CF","Unicode dec":"128274","Unicode hex":"1F512"},{"Typeface name":"Webdings","Dingbat dec":"208","Dingbat hex":"D0","Unicode dec":"128275","Unicode hex":"1F513"},{"Typeface name":"Webdings","Dingbat dec":"209","Dingbat hex":"D1","Unicode dec":"128477","Unicode hex":"1F5DD"},{"Typeface name":"Webdings","Dingbat dec":"210","Dingbat hex":"D2","Unicode dec":"128229","Unicode hex":"1F4E5"},{"Typeface name":"Webdings","Dingbat dec":"211","Dingbat hex":"D3","Unicode dec":"128228","Unicode hex":"1F4E4"},{"Typeface name":"Webdings","Dingbat dec":"212","Dingbat hex":"D4","Unicode dec":"128371","Unicode hex":"1F573"},{"Typeface name":"Webdings","Dingbat dec":"213","Dingbat hex":"D5","Unicode dec":"127779","Unicode hex":"1F323"},{"Typeface name":"Webdings","Dingbat dec":"214","Dingbat hex":"D6","Unicode dec":"127780","Unicode hex":"1F324"},{"Typeface name":"Webdings","Dingbat dec":"215","Dingbat hex":"D7","Unicode dec":"127781","Unicode hex":"1F325"},{"Typeface name":"Webdings","Dingbat dec":"216","Dingbat hex":"D8","Unicode dec":"127782","Unicode hex":"1F326"},{"Typeface name":"Webdings","Dingbat dec":"217","Dingbat hex":"D9","Unicode dec":"9729","Unicode hex":"2601"},{"Typeface name":"Webdings","Dingbat dec":"218","Dingbat hex":"DA","Unicode dec":"127784","Unicode hex":"1F328"},{"Typeface name":"Webdings","Dingbat dec":"219","Dingbat hex":"DB","Unicode dec":"127783","Unicode hex":"1F327"},{"Typeface name":"Webdings","Dingbat dec":"220","Dingbat hex":"DC","Unicode dec":"127785","Unicode hex":"1F329"},{"Typeface name":"Webdings","Dingbat dec":"221","Dingbat hex":"DD","Unicode dec":"127786","Unicode hex":"1F32A"},{"Typeface name":"Webdings","Dingbat dec":"222","Dingbat hex":"DE","Unicode dec":"127788","Unicode hex":"1F32C"},{"Typeface name":"Webdings","Dingbat dec":"223","Dingbat hex":"DF","Unicode dec":"127787","Unicode hex":"1F32B"},{"Typeface name":"Webdings","Dingbat dec":"224","Dingbat hex":"E0","Unicode dec":"127772","Unicode hex":"1F31C"},{"Typeface name":"Webdings","Dingbat dec":"225","Dingbat hex":"E1","Unicode dec":"127777","Unicode hex":"1F321"},{"Typeface name":"Webdings","Dingbat dec":"226","Dingbat hex":"E2","Unicode dec":"128715","Unicode hex":"1F6CB"},{"Typeface name":"Webdings","Dingbat dec":"227","Dingbat hex":"E3","Unicode dec":"128719","Unicode hex":"1F6CF"},{"Typeface name":"Webdings","Dingbat dec":"228","Dingbat hex":"E4","Unicode dec":"127869","Unicode hex":"1F37D"},{"Typeface name":"Webdings","Dingbat dec":"229","Dingbat hex":"E5","Unicode dec":"127864","Unicode hex":"1F378"},{"Typeface name":"Webdings","Dingbat dec":"230","Dingbat hex":"E6","Unicode dec":"128718","Unicode hex":"1F6CE"},{"Typeface name":"Webdings","Dingbat dec":"231","Dingbat hex":"E7","Unicode dec":"128717","Unicode hex":"1F6CD"},{"Typeface name":"Webdings","Dingbat dec":"232","Dingbat hex":"E8","Unicode dec":"9413","Unicode hex":"24C5"},{"Typeface name":"Webdings","Dingbat dec":"233","Dingbat hex":"E9","Unicode dec":"9855","Unicode hex":"267F"},{"Typeface name":"Webdings","Dingbat dec":"234","Dingbat hex":"EA","Unicode dec":"128710","Unicode hex":"1F6C6"},{"Typeface name":"Webdings","Dingbat dec":"235","Dingbat hex":"EB","Unicode dec":"128392","Unicode hex":"1F588"},{"Typeface name":"Webdings","Dingbat dec":"236","Dingbat hex":"EC","Unicode dec":"127891","Unicode hex":"1F393"},{"Typeface name":"Webdings","Dingbat dec":"237","Dingbat hex":"ED","Unicode dec":"128484","Unicode hex":"1F5E4"},{"Typeface name":"Webdings","Dingbat dec":"238","Dingbat hex":"EE","Unicode dec":"128485","Unicode hex":"1F5E5"},{"Typeface name":"Webdings","Dingbat dec":"239","Dingbat hex":"EF","Unicode dec":"128486","Unicode hex":"1F5E6"},{"Typeface name":"Webdings","Dingbat dec":"240","Dingbat hex":"F0","Unicode dec":"128487","Unicode hex":"1F5E7"},{"Typeface name":"Webdings","Dingbat dec":"241","Dingbat hex":"F1","Unicode dec":"128746","Unicode hex":"1F6EA"},{"Typeface name":"Webdings","Dingbat dec":"242","Dingbat hex":"F2","Unicode dec":"128063","Unicode hex":"1F43F"},{"Typeface name":"Webdings","Dingbat dec":"243","Dingbat hex":"F3","Unicode dec":"128038","Unicode hex":"1F426"},{"Typeface name":"Webdings","Dingbat dec":"244","Dingbat hex":"F4","Unicode dec":"128031","Unicode hex":"1F41F"},{"Typeface name":"Webdings","Dingbat dec":"245","Dingbat hex":"F5","Unicode dec":"128021","Unicode hex":"1F415"},{"Typeface name":"Webdings","Dingbat dec":"246","Dingbat hex":"F6","Unicode dec":"128008","Unicode hex":"1F408"},{"Typeface name":"Webdings","Dingbat dec":"247","Dingbat hex":"F7","Unicode dec":"128620","Unicode hex":"1F66C"},{"Typeface name":"Webdings","Dingbat dec":"248","Dingbat hex":"F8","Unicode dec":"128622","Unicode hex":"1F66E"},{"Typeface name":"Webdings","Dingbat dec":"249","Dingbat hex":"F9","Unicode dec":"128621","Unicode hex":"1F66D"},{"Typeface name":"Webdings","Dingbat dec":"250","Dingbat hex":"FA","Unicode dec":"128623","Unicode hex":"1F66F"},{"Typeface name":"Webdings","Dingbat dec":"251","Dingbat hex":"FB","Unicode dec":"128506","Unicode hex":"1F5FA"},{"Typeface name":"Webdings","Dingbat dec":"252","Dingbat hex":"FC","Unicode dec":"127757","Unicode hex":"1F30D"},{"Typeface name":"Webdings","Dingbat dec":"253","Dingbat hex":"FD","Unicode dec":"127759","Unicode hex":"1F30F"},{"Typeface name":"Webdings","Dingbat dec":"254","Dingbat hex":"FE","Unicode dec":"127758","Unicode hex":"1F30E"},{"Typeface name":"Webdings","Dingbat dec":"255","Dingbat hex":"FF","Unicode dec":"128330","Unicode hex":"1F54A"},{"Typeface name":"Wingdings","Dingbat dec":"32","Dingbat hex":"20","Unicode dec":"32","Unicode hex":"20"},{"Typeface name":"Wingdings","Dingbat dec":"33","Dingbat hex":"21","Unicode dec":"128393","Unicode hex":"1F589"},{"Typeface name":"Wingdings","Dingbat dec":"34","Dingbat hex":"22","Unicode dec":"9986","Unicode hex":"2702"},{"Typeface name":"Wingdings","Dingbat dec":"35","Dingbat hex":"23","Unicode dec":"9985","Unicode hex":"2701"},{"Typeface name":"Wingdings","Dingbat dec":"36","Dingbat hex":"24","Unicode dec":"128083","Unicode hex":"1F453"},{"Typeface name":"Wingdings","Dingbat dec":"37","Dingbat hex":"25","Unicode dec":"128365","Unicode hex":"1F56D"},{"Typeface name":"Wingdings","Dingbat dec":"38","Dingbat hex":"26","Unicode dec":"128366","Unicode hex":"1F56E"},{"Typeface name":"Wingdings","Dingbat dec":"39","Dingbat hex":"27","Unicode dec":"128367","Unicode hex":"1F56F"},{"Typeface name":"Wingdings","Dingbat dec":"40","Dingbat hex":"28","Unicode dec":"128383","Unicode hex":"1F57F"},{"Typeface name":"Wingdings","Dingbat dec":"41","Dingbat hex":"29","Unicode dec":"9990","Unicode hex":"2706"},{"Typeface name":"Wingdings","Dingbat dec":"42","Dingbat hex":"2A","Unicode dec":"128386","Unicode hex":"1F582"},{"Typeface name":"Wingdings","Dingbat dec":"43","Dingbat hex":"2B","Unicode dec":"128387","Unicode hex":"1F583"},{"Typeface name":"Wingdings","Dingbat dec":"44","Dingbat hex":"2C","Unicode dec":"128234","Unicode hex":"1F4EA"},{"Typeface name":"Wingdings","Dingbat dec":"45","Dingbat hex":"2D","Unicode dec":"128235","Unicode hex":"1F4EB"},{"Typeface name":"Wingdings","Dingbat dec":"46","Dingbat hex":"2E","Unicode dec":"128236","Unicode hex":"1F4EC"},{"Typeface name":"Wingdings","Dingbat dec":"47","Dingbat hex":"2F","Unicode dec":"128237","Unicode hex":"1F4ED"},{"Typeface name":"Wingdings","Dingbat dec":"48","Dingbat hex":"30","Unicode dec":"128448","Unicode hex":"1F5C0"},{"Typeface name":"Wingdings","Dingbat dec":"49","Dingbat hex":"31","Unicode dec":"128449","Unicode hex":"1F5C1"},{"Typeface name":"Wingdings","Dingbat dec":"50","Dingbat hex":"32","Unicode dec":"128462","Unicode hex":"1F5CE"},{"Typeface name":"Wingdings","Dingbat dec":"51","Dingbat hex":"33","Unicode dec":"128463","Unicode hex":"1F5CF"},{"Typeface name":"Wingdings","Dingbat dec":"52","Dingbat hex":"34","Unicode dec":"128464","Unicode hex":"1F5D0"},{"Typeface name":"Wingdings","Dingbat dec":"53","Dingbat hex":"35","Unicode dec":"128452","Unicode hex":"1F5C4"},{"Typeface name":"Wingdings","Dingbat dec":"54","Dingbat hex":"36","Unicode dec":"8987","Unicode hex":"231B"},{"Typeface name":"Wingdings","Dingbat dec":"55","Dingbat hex":"37","Unicode dec":"128430","Unicode hex":"1F5AE"},{"Typeface name":"Wingdings","Dingbat dec":"56","Dingbat hex":"38","Unicode dec":"128432","Unicode hex":"1F5B0"},{"Typeface name":"Wingdings","Dingbat dec":"57","Dingbat hex":"39","Unicode dec":"128434","Unicode hex":"1F5B2"},{"Typeface name":"Wingdings","Dingbat dec":"58","Dingbat hex":"3A","Unicode dec":"128435","Unicode hex":"1F5B3"},{"Typeface name":"Wingdings","Dingbat dec":"59","Dingbat hex":"3B","Unicode dec":"128436","Unicode hex":"1F5B4"},{"Typeface name":"Wingdings","Dingbat dec":"60","Dingbat hex":"3C","Unicode dec":"128427","Unicode hex":"1F5AB"},{"Typeface name":"Wingdings","Dingbat dec":"61","Dingbat hex":"3D","Unicode dec":"128428","Unicode hex":"1F5AC"},{"Typeface name":"Wingdings","Dingbat dec":"62","Dingbat hex":"3E","Unicode dec":"9991","Unicode hex":"2707"},{"Typeface name":"Wingdings","Dingbat dec":"63","Dingbat hex":"3F","Unicode dec":"9997","Unicode hex":"270D"},{"Typeface name":"Wingdings","Dingbat dec":"64","Dingbat hex":"40","Unicode dec":"128398","Unicode hex":"1F58E"},{"Typeface name":"Wingdings","Dingbat dec":"65","Dingbat hex":"41","Unicode dec":"9996","Unicode hex":"270C"},{"Typeface name":"Wingdings","Dingbat dec":"66","Dingbat hex":"42","Unicode dec":"128399","Unicode hex":"1F58F"},{"Typeface name":"Wingdings","Dingbat dec":"67","Dingbat hex":"43","Unicode dec":"128077","Unicode hex":"1F44D"},{"Typeface name":"Wingdings","Dingbat dec":"68","Dingbat hex":"44","Unicode dec":"128078","Unicode hex":"1F44E"},{"Typeface name":"Wingdings","Dingbat dec":"69","Dingbat hex":"45","Unicode dec":"9756","Unicode hex":"261C"},{"Typeface name":"Wingdings","Dingbat dec":"70","Dingbat hex":"46","Unicode dec":"9758","Unicode hex":"261E"},{"Typeface name":"Wingdings","Dingbat dec":"71","Dingbat hex":"47","Unicode dec":"9757","Unicode hex":"261D"},{"Typeface name":"Wingdings","Dingbat dec":"72","Dingbat hex":"48","Unicode dec":"9759","Unicode hex":"261F"},{"Typeface name":"Wingdings","Dingbat dec":"73","Dingbat hex":"49","Unicode dec":"128400","Unicode hex":"1F590"},{"Typeface name":"Wingdings","Dingbat dec":"74","Dingbat hex":"4A","Unicode dec":"9786","Unicode hex":"263A"},{"Typeface name":"Wingdings","Dingbat dec":"75","Dingbat hex":"4B","Unicode dec":"128528","Unicode hex":"1F610"},{"Typeface name":"Wingdings","Dingbat dec":"76","Dingbat hex":"4C","Unicode dec":"9785","Unicode hex":"2639"},{"Typeface name":"Wingdings","Dingbat dec":"77","Dingbat hex":"4D","Unicode dec":"128163","Unicode hex":"1F4A3"},{"Typeface name":"Wingdings","Dingbat dec":"78","Dingbat hex":"4E","Unicode dec":"128369","Unicode hex":"1F571"},{"Typeface name":"Wingdings","Dingbat dec":"79","Dingbat hex":"4F","Unicode dec":"127987","Unicode hex":"1F3F3"},{"Typeface name":"Wingdings","Dingbat dec":"80","Dingbat hex":"50","Unicode dec":"127985","Unicode hex":"1F3F1"},{"Typeface name":"Wingdings","Dingbat dec":"81","Dingbat hex":"51","Unicode dec":"9992","Unicode hex":"2708"},{"Typeface name":"Wingdings","Dingbat dec":"82","Dingbat hex":"52","Unicode dec":"9788","Unicode hex":"263C"},{"Typeface name":"Wingdings","Dingbat dec":"83","Dingbat hex":"53","Unicode dec":"127778","Unicode hex":"1F322"},{"Typeface name":"Wingdings","Dingbat dec":"84","Dingbat hex":"54","Unicode dec":"10052","Unicode hex":"2744"},{"Typeface name":"Wingdings","Dingbat dec":"85","Dingbat hex":"55","Unicode dec":"128326","Unicode hex":"1F546"},{"Typeface name":"Wingdings","Dingbat dec":"86","Dingbat hex":"56","Unicode dec":"10014","Unicode hex":"271E"},{"Typeface name":"Wingdings","Dingbat dec":"87","Dingbat hex":"57","Unicode dec":"128328","Unicode hex":"1F548"},{"Typeface name":"Wingdings","Dingbat dec":"88","Dingbat hex":"58","Unicode dec":"10016","Unicode hex":"2720"},{"Typeface name":"Wingdings","Dingbat dec":"89","Dingbat hex":"59","Unicode dec":"10017","Unicode hex":"2721"},{"Typeface name":"Wingdings","Dingbat dec":"90","Dingbat hex":"5A","Unicode dec":"9770","Unicode hex":"262A"},{"Typeface name":"Wingdings","Dingbat dec":"91","Dingbat hex":"5B","Unicode dec":"9775","Unicode hex":"262F"},{"Typeface name":"Wingdings","Dingbat dec":"92","Dingbat hex":"5C","Unicode dec":"128329","Unicode hex":"1F549"},{"Typeface name":"Wingdings","Dingbat dec":"93","Dingbat hex":"5D","Unicode dec":"9784","Unicode hex":"2638"},{"Typeface name":"Wingdings","Dingbat dec":"94","Dingbat hex":"5E","Unicode dec":"9800","Unicode hex":"2648"},{"Typeface name":"Wingdings","Dingbat dec":"95","Dingbat hex":"5F","Unicode dec":"9801","Unicode hex":"2649"},{"Typeface name":"Wingdings","Dingbat dec":"96","Dingbat hex":"60","Unicode dec":"9802","Unicode hex":"264A"},{"Typeface name":"Wingdings","Dingbat dec":"97","Dingbat hex":"61","Unicode dec":"9803","Unicode hex":"264B"},{"Typeface name":"Wingdings","Dingbat dec":"98","Dingbat hex":"62","Unicode dec":"9804","Unicode hex":"264C"},{"Typeface name":"Wingdings","Dingbat dec":"99","Dingbat hex":"63","Unicode dec":"9805","Unicode hex":"264D"},{"Typeface name":"Wingdings","Dingbat dec":"100","Dingbat hex":"64","Unicode dec":"9806","Unicode hex":"264E"},{"Typeface name":"Wingdings","Dingbat dec":"101","Dingbat hex":"65","Unicode dec":"9807","Unicode hex":"264F"},{"Typeface name":"Wingdings","Dingbat dec":"102","Dingbat hex":"66","Unicode dec":"9808","Unicode hex":"2650"},{"Typeface name":"Wingdings","Dingbat dec":"103","Dingbat hex":"67","Unicode dec":"9809","Unicode hex":"2651"},{"Typeface name":"Wingdings","Dingbat dec":"104","Dingbat hex":"68","Unicode dec":"9810","Unicode hex":"2652"},{"Typeface name":"Wingdings","Dingbat dec":"105","Dingbat hex":"69","Unicode dec":"9811","Unicode hex":"2653"},{"Typeface name":"Wingdings","Dingbat dec":"106","Dingbat hex":"6A","Unicode dec":"128624","Unicode hex":"1F670"},{"Typeface name":"Wingdings","Dingbat dec":"107","Dingbat hex":"6B","Unicode dec":"128629","Unicode hex":"1F675"},{"Typeface name":"Wingdings","Dingbat dec":"108","Dingbat hex":"6C","Unicode dec":"9899","Unicode hex":"26AB"},{"Typeface name":"Wingdings","Dingbat dec":"109","Dingbat hex":"6D","Unicode dec":"128318","Unicode hex":"1F53E"},{"Typeface name":"Wingdings","Dingbat dec":"110","Dingbat hex":"6E","Unicode dec":"9724","Unicode hex":"25FC"},{"Typeface name":"Wingdings","Dingbat dec":"111","Dingbat hex":"6F","Unicode dec":"128911","Unicode hex":"1F78F"},{"Typeface name":"Wingdings","Dingbat dec":"112","Dingbat hex":"70","Unicode dec":"128912","Unicode hex":"1F790"},{"Typeface name":"Wingdings","Dingbat dec":"113","Dingbat hex":"71","Unicode dec":"10065","Unicode hex":"2751"},{"Typeface name":"Wingdings","Dingbat dec":"114","Dingbat hex":"72","Unicode dec":"10066","Unicode hex":"2752"},{"Typeface name":"Wingdings","Dingbat dec":"115","Dingbat hex":"73","Unicode dec":"128927","Unicode hex":"1F79F"},{"Typeface name":"Wingdings","Dingbat dec":"116","Dingbat hex":"74","Unicode dec":"10731","Unicode hex":"29EB"},{"Typeface name":"Wingdings","Dingbat dec":"117","Dingbat hex":"75","Unicode dec":"9670","Unicode hex":"25C6"},{"Typeface name":"Wingdings","Dingbat dec":"118","Dingbat hex":"76","Unicode dec":"10070","Unicode hex":"2756"},{"Typeface name":"Wingdings","Dingbat dec":"119","Dingbat hex":"77","Unicode dec":"11049","Unicode hex":"2B29"},{"Typeface name":"Wingdings","Dingbat dec":"120","Dingbat hex":"78","Unicode dec":"8999","Unicode hex":"2327"},{"Typeface name":"Wingdings","Dingbat dec":"121","Dingbat hex":"79","Unicode dec":"11193","Unicode hex":"2BB9"},{"Typeface name":"Wingdings","Dingbat dec":"122","Dingbat hex":"7A","Unicode dec":"8984","Unicode hex":"2318"},{"Typeface name":"Wingdings","Dingbat dec":"123","Dingbat hex":"7B","Unicode dec":"127989","Unicode hex":"1F3F5"},{"Typeface name":"Wingdings","Dingbat dec":"124","Dingbat hex":"7C","Unicode dec":"127990","Unicode hex":"1F3F6"},{"Typeface name":"Wingdings","Dingbat dec":"125","Dingbat hex":"7D","Unicode dec":"128630","Unicode hex":"1F676"},{"Typeface name":"Wingdings","Dingbat dec":"126","Dingbat hex":"7E","Unicode dec":"128631","Unicode hex":"1F677"},{"Typeface name":"Wingdings","Dingbat dec":"127","Dingbat hex":"7F","Unicode dec":"9647","Unicode hex":"25AF"},{"Typeface name":"Wingdings","Dingbat dec":"128","Dingbat hex":"80","Unicode dec":"127243","Unicode hex":"1F10B"},{"Typeface name":"Wingdings","Dingbat dec":"129","Dingbat hex":"81","Unicode dec":"10112","Unicode hex":"2780"},{"Typeface name":"Wingdings","Dingbat dec":"130","Dingbat hex":"82","Unicode dec":"10113","Unicode hex":"2781"},{"Typeface name":"Wingdings","Dingbat dec":"131","Dingbat hex":"83","Unicode dec":"10114","Unicode hex":"2782"},{"Typeface name":"Wingdings","Dingbat dec":"132","Dingbat hex":"84","Unicode dec":"10115","Unicode hex":"2783"},{"Typeface name":"Wingdings","Dingbat dec":"133","Dingbat hex":"85","Unicode dec":"10116","Unicode hex":"2784"},{"Typeface name":"Wingdings","Dingbat dec":"134","Dingbat hex":"86","Unicode dec":"10117","Unicode hex":"2785"},{"Typeface name":"Wingdings","Dingbat dec":"135","Dingbat hex":"87","Unicode dec":"10118","Unicode hex":"2786"},{"Typeface name":"Wingdings","Dingbat dec":"136","Dingbat hex":"88","Unicode dec":"10119","Unicode hex":"2787"},{"Typeface name":"Wingdings","Dingbat dec":"137","Dingbat hex":"89","Unicode dec":"10120","Unicode hex":"2788"},{"Typeface name":"Wingdings","Dingbat dec":"138","Dingbat hex":"8A","Unicode dec":"10121","Unicode hex":"2789"},{"Typeface name":"Wingdings","Dingbat dec":"139","Dingbat hex":"8B","Unicode dec":"127244","Unicode hex":"1F10C"},{"Typeface name":"Wingdings","Dingbat dec":"140","Dingbat hex":"8C","Unicode dec":"10122","Unicode hex":"278A"},{"Typeface name":"Wingdings","Dingbat dec":"141","Dingbat hex":"8D","Unicode dec":"10123","Unicode hex":"278B"},{"Typeface name":"Wingdings","Dingbat dec":"142","Dingbat hex":"8E","Unicode dec":"10124","Unicode hex":"278C"},{"Typeface name":"Wingdings", +"Dingbat dec":"143","Dingbat hex":"8F","Unicode dec":"10125","Unicode hex":"278D"},{"Typeface name":"Wingdings","Dingbat dec":"144","Dingbat hex":"90","Unicode dec":"10126","Unicode hex":"278E"},{"Typeface name":"Wingdings","Dingbat dec":"145","Dingbat hex":"91","Unicode dec":"10127","Unicode hex":"278F"},{"Typeface name":"Wingdings","Dingbat dec":"146","Dingbat hex":"92","Unicode dec":"10128","Unicode hex":"2790"},{"Typeface name":"Wingdings","Dingbat dec":"147","Dingbat hex":"93","Unicode dec":"10129","Unicode hex":"2791"},{"Typeface name":"Wingdings","Dingbat dec":"148","Dingbat hex":"94","Unicode dec":"10130","Unicode hex":"2792"},{"Typeface name":"Wingdings","Dingbat dec":"149","Dingbat hex":"95","Unicode dec":"10131","Unicode hex":"2793"},{"Typeface name":"Wingdings","Dingbat dec":"150","Dingbat hex":"96","Unicode dec":"128610","Unicode hex":"1F662"},{"Typeface name":"Wingdings","Dingbat dec":"151","Dingbat hex":"97","Unicode dec":"128608","Unicode hex":"1F660"},{"Typeface name":"Wingdings","Dingbat dec":"152","Dingbat hex":"98","Unicode dec":"128609","Unicode hex":"1F661"},{"Typeface name":"Wingdings","Dingbat dec":"153","Dingbat hex":"99","Unicode dec":"128611","Unicode hex":"1F663"},{"Typeface name":"Wingdings","Dingbat dec":"154","Dingbat hex":"9A","Unicode dec":"128606","Unicode hex":"1F65E"},{"Typeface name":"Wingdings","Dingbat dec":"155","Dingbat hex":"9B","Unicode dec":"128604","Unicode hex":"1F65C"},{"Typeface name":"Wingdings","Dingbat dec":"156","Dingbat hex":"9C","Unicode dec":"128605","Unicode hex":"1F65D"},{"Typeface name":"Wingdings","Dingbat dec":"157","Dingbat hex":"9D","Unicode dec":"128607","Unicode hex":"1F65F"},{"Typeface name":"Wingdings","Dingbat dec":"158","Dingbat hex":"9E","Unicode dec":"8729","Unicode hex":"2219"},{"Typeface name":"Wingdings","Dingbat dec":"159","Dingbat hex":"9F","Unicode dec":"8226","Unicode hex":"2022"},{"Typeface name":"Wingdings","Dingbat dec":"160","Dingbat hex":"A0","Unicode dec":"11037","Unicode hex":"2B1D"},{"Typeface name":"Wingdings","Dingbat dec":"161","Dingbat hex":"A1","Unicode dec":"11096","Unicode hex":"2B58"},{"Typeface name":"Wingdings","Dingbat dec":"162","Dingbat hex":"A2","Unicode dec":"128902","Unicode hex":"1F786"},{"Typeface name":"Wingdings","Dingbat dec":"163","Dingbat hex":"A3","Unicode dec":"128904","Unicode hex":"1F788"},{"Typeface name":"Wingdings","Dingbat dec":"164","Dingbat hex":"A4","Unicode dec":"128906","Unicode hex":"1F78A"},{"Typeface name":"Wingdings","Dingbat dec":"165","Dingbat hex":"A5","Unicode dec":"128907","Unicode hex":"1F78B"},{"Typeface name":"Wingdings","Dingbat dec":"166","Dingbat hex":"A6","Unicode dec":"128319","Unicode hex":"1F53F"},{"Typeface name":"Wingdings","Dingbat dec":"167","Dingbat hex":"A7","Unicode dec":"9642","Unicode hex":"25AA"},{"Typeface name":"Wingdings","Dingbat dec":"168","Dingbat hex":"A8","Unicode dec":"128910","Unicode hex":"1F78E"},{"Typeface name":"Wingdings","Dingbat dec":"169","Dingbat hex":"A9","Unicode dec":"128961","Unicode hex":"1F7C1"},{"Typeface name":"Wingdings","Dingbat dec":"170","Dingbat hex":"AA","Unicode dec":"128965","Unicode hex":"1F7C5"},{"Typeface name":"Wingdings","Dingbat dec":"171","Dingbat hex":"AB","Unicode dec":"9733","Unicode hex":"2605"},{"Typeface name":"Wingdings","Dingbat dec":"172","Dingbat hex":"AC","Unicode dec":"128971","Unicode hex":"1F7CB"},{"Typeface name":"Wingdings","Dingbat dec":"173","Dingbat hex":"AD","Unicode dec":"128975","Unicode hex":"1F7CF"},{"Typeface name":"Wingdings","Dingbat dec":"174","Dingbat hex":"AE","Unicode dec":"128979","Unicode hex":"1F7D3"},{"Typeface name":"Wingdings","Dingbat dec":"175","Dingbat hex":"AF","Unicode dec":"128977","Unicode hex":"1F7D1"},{"Typeface name":"Wingdings","Dingbat dec":"176","Dingbat hex":"B0","Unicode dec":"11216","Unicode hex":"2BD0"},{"Typeface name":"Wingdings","Dingbat dec":"177","Dingbat hex":"B1","Unicode dec":"8982","Unicode hex":"2316"},{"Typeface name":"Wingdings","Dingbat dec":"178","Dingbat hex":"B2","Unicode dec":"11214","Unicode hex":"2BCE"},{"Typeface name":"Wingdings","Dingbat dec":"179","Dingbat hex":"B3","Unicode dec":"11215","Unicode hex":"2BCF"},{"Typeface name":"Wingdings","Dingbat dec":"180","Dingbat hex":"B4","Unicode dec":"11217","Unicode hex":"2BD1"},{"Typeface name":"Wingdings","Dingbat dec":"181","Dingbat hex":"B5","Unicode dec":"10026","Unicode hex":"272A"},{"Typeface name":"Wingdings","Dingbat dec":"182","Dingbat hex":"B6","Unicode dec":"10032","Unicode hex":"2730"},{"Typeface name":"Wingdings","Dingbat dec":"183","Dingbat hex":"B7","Unicode dec":"128336","Unicode hex":"1F550"},{"Typeface name":"Wingdings","Dingbat dec":"184","Dingbat hex":"B8","Unicode dec":"128337","Unicode hex":"1F551"},{"Typeface name":"Wingdings","Dingbat dec":"185","Dingbat hex":"B9","Unicode dec":"128338","Unicode hex":"1F552"},{"Typeface name":"Wingdings","Dingbat dec":"186","Dingbat hex":"BA","Unicode dec":"128339","Unicode hex":"1F553"},{"Typeface name":"Wingdings","Dingbat dec":"187","Dingbat hex":"BB","Unicode dec":"128340","Unicode hex":"1F554"},{"Typeface name":"Wingdings","Dingbat dec":"188","Dingbat hex":"BC","Unicode dec":"128341","Unicode hex":"1F555"},{"Typeface name":"Wingdings","Dingbat dec":"189","Dingbat hex":"BD","Unicode dec":"128342","Unicode hex":"1F556"},{"Typeface name":"Wingdings","Dingbat dec":"190","Dingbat hex":"BE","Unicode dec":"128343","Unicode hex":"1F557"},{"Typeface name":"Wingdings","Dingbat dec":"191","Dingbat hex":"BF","Unicode dec":"128344","Unicode hex":"1F558"},{"Typeface name":"Wingdings","Dingbat dec":"192","Dingbat hex":"C0","Unicode dec":"128345","Unicode hex":"1F559"},{"Typeface name":"Wingdings","Dingbat dec":"193","Dingbat hex":"C1","Unicode dec":"128346","Unicode hex":"1F55A"},{"Typeface name":"Wingdings","Dingbat dec":"194","Dingbat hex":"C2","Unicode dec":"128347","Unicode hex":"1F55B"},{"Typeface name":"Wingdings","Dingbat dec":"195","Dingbat hex":"C3","Unicode dec":"11184","Unicode hex":"2BB0"},{"Typeface name":"Wingdings","Dingbat dec":"196","Dingbat hex":"C4","Unicode dec":"11185","Unicode hex":"2BB1"},{"Typeface name":"Wingdings","Dingbat dec":"197","Dingbat hex":"C5","Unicode dec":"11186","Unicode hex":"2BB2"},{"Typeface name":"Wingdings","Dingbat dec":"198","Dingbat hex":"C6","Unicode dec":"11187","Unicode hex":"2BB3"},{"Typeface name":"Wingdings","Dingbat dec":"199","Dingbat hex":"C7","Unicode dec":"11188","Unicode hex":"2BB4"},{"Typeface name":"Wingdings","Dingbat dec":"200","Dingbat hex":"C8","Unicode dec":"11189","Unicode hex":"2BB5"},{"Typeface name":"Wingdings","Dingbat dec":"201","Dingbat hex":"C9","Unicode dec":"11190","Unicode hex":"2BB6"},{"Typeface name":"Wingdings","Dingbat dec":"202","Dingbat hex":"CA","Unicode dec":"11191","Unicode hex":"2BB7"},{"Typeface name":"Wingdings","Dingbat dec":"203","Dingbat hex":"CB","Unicode dec":"128618","Unicode hex":"1F66A"},{"Typeface name":"Wingdings","Dingbat dec":"204","Dingbat hex":"CC","Unicode dec":"128619","Unicode hex":"1F66B"},{"Typeface name":"Wingdings","Dingbat dec":"205","Dingbat hex":"CD","Unicode dec":"128597","Unicode hex":"1F655"},{"Typeface name":"Wingdings","Dingbat dec":"206","Dingbat hex":"CE","Unicode dec":"128596","Unicode hex":"1F654"},{"Typeface name":"Wingdings","Dingbat dec":"207","Dingbat hex":"CF","Unicode dec":"128599","Unicode hex":"1F657"},{"Typeface name":"Wingdings","Dingbat dec":"208","Dingbat hex":"D0","Unicode dec":"128598","Unicode hex":"1F656"},{"Typeface name":"Wingdings","Dingbat dec":"209","Dingbat hex":"D1","Unicode dec":"128592","Unicode hex":"1F650"},{"Typeface name":"Wingdings","Dingbat dec":"210","Dingbat hex":"D2","Unicode dec":"128593","Unicode hex":"1F651"},{"Typeface name":"Wingdings","Dingbat dec":"211","Dingbat hex":"D3","Unicode dec":"128594","Unicode hex":"1F652"},{"Typeface name":"Wingdings","Dingbat dec":"212","Dingbat hex":"D4","Unicode dec":"128595","Unicode hex":"1F653"},{"Typeface name":"Wingdings","Dingbat dec":"213","Dingbat hex":"D5","Unicode dec":"9003","Unicode hex":"232B"},{"Typeface name":"Wingdings","Dingbat dec":"214","Dingbat hex":"D6","Unicode dec":"8998","Unicode hex":"2326"},{"Typeface name":"Wingdings","Dingbat dec":"215","Dingbat hex":"D7","Unicode dec":"11160","Unicode hex":"2B98"},{"Typeface name":"Wingdings","Dingbat dec":"216","Dingbat hex":"D8","Unicode dec":"11162","Unicode hex":"2B9A"},{"Typeface name":"Wingdings","Dingbat dec":"217","Dingbat hex":"D9","Unicode dec":"11161","Unicode hex":"2B99"},{"Typeface name":"Wingdings","Dingbat dec":"218","Dingbat hex":"DA","Unicode dec":"11163","Unicode hex":"2B9B"},{"Typeface name":"Wingdings","Dingbat dec":"219","Dingbat hex":"DB","Unicode dec":"11144","Unicode hex":"2B88"},{"Typeface name":"Wingdings","Dingbat dec":"220","Dingbat hex":"DC","Unicode dec":"11146","Unicode hex":"2B8A"},{"Typeface name":"Wingdings","Dingbat dec":"221","Dingbat hex":"DD","Unicode dec":"11145","Unicode hex":"2B89"},{"Typeface name":"Wingdings","Dingbat dec":"222","Dingbat hex":"DE","Unicode dec":"11147","Unicode hex":"2B8B"},{"Typeface name":"Wingdings","Dingbat dec":"223","Dingbat hex":"DF","Unicode dec":"129128","Unicode hex":"1F868"},{"Typeface name":"Wingdings","Dingbat dec":"224","Dingbat hex":"E0","Unicode dec":"129130","Unicode hex":"1F86A"},{"Typeface name":"Wingdings","Dingbat dec":"225","Dingbat hex":"E1","Unicode dec":"129129","Unicode hex":"1F869"},{"Typeface name":"Wingdings","Dingbat dec":"226","Dingbat hex":"E2","Unicode dec":"129131","Unicode hex":"1F86B"},{"Typeface name":"Wingdings","Dingbat dec":"227","Dingbat hex":"E3","Unicode dec":"129132","Unicode hex":"1F86C"},{"Typeface name":"Wingdings","Dingbat dec":"228","Dingbat hex":"E4","Unicode dec":"129133","Unicode hex":"1F86D"},{"Typeface name":"Wingdings","Dingbat dec":"229","Dingbat hex":"E5","Unicode dec":"129135","Unicode hex":"1F86F"},{"Typeface name":"Wingdings","Dingbat dec":"230","Dingbat hex":"E6","Unicode dec":"129134","Unicode hex":"1F86E"},{"Typeface name":"Wingdings","Dingbat dec":"231","Dingbat hex":"E7","Unicode dec":"129144","Unicode hex":"1F878"},{"Typeface name":"Wingdings","Dingbat dec":"232","Dingbat hex":"E8","Unicode dec":"129146","Unicode hex":"1F87A"},{"Typeface name":"Wingdings","Dingbat dec":"233","Dingbat hex":"E9","Unicode dec":"129145","Unicode hex":"1F879"},{"Typeface name":"Wingdings","Dingbat dec":"234","Dingbat hex":"EA","Unicode dec":"129147","Unicode hex":"1F87B"},{"Typeface name":"Wingdings","Dingbat dec":"235","Dingbat hex":"EB","Unicode dec":"129148","Unicode hex":"1F87C"},{"Typeface name":"Wingdings","Dingbat dec":"236","Dingbat hex":"EC","Unicode dec":"129149","Unicode hex":"1F87D"},{"Typeface name":"Wingdings","Dingbat dec":"237","Dingbat hex":"ED","Unicode dec":"129151","Unicode hex":"1F87F"},{"Typeface name":"Wingdings","Dingbat dec":"238","Dingbat hex":"EE","Unicode dec":"129150","Unicode hex":"1F87E"},{"Typeface name":"Wingdings","Dingbat dec":"239","Dingbat hex":"EF","Unicode dec":"8678","Unicode hex":"21E6"},{"Typeface name":"Wingdings","Dingbat dec":"240","Dingbat hex":"F0","Unicode dec":"8680","Unicode hex":"21E8"},{"Typeface name":"Wingdings","Dingbat dec":"241","Dingbat hex":"F1","Unicode dec":"8679","Unicode hex":"21E7"},{"Typeface name":"Wingdings","Dingbat dec":"242","Dingbat hex":"F2","Unicode dec":"8681","Unicode hex":"21E9"},{"Typeface name":"Wingdings","Dingbat dec":"243","Dingbat hex":"F3","Unicode dec":"11012","Unicode hex":"2B04"},{"Typeface name":"Wingdings","Dingbat dec":"244","Dingbat hex":"F4","Unicode dec":"8691","Unicode hex":"21F3"},{"Typeface name":"Wingdings","Dingbat dec":"245","Dingbat hex":"F5","Unicode dec":"11009","Unicode hex":"2B01"},{"Typeface name":"Wingdings","Dingbat dec":"246","Dingbat hex":"F6","Unicode dec":"11008","Unicode hex":"2B00"},{"Typeface name":"Wingdings","Dingbat dec":"247","Dingbat hex":"F7","Unicode dec":"11011","Unicode hex":"2B03"},{"Typeface name":"Wingdings","Dingbat dec":"248","Dingbat hex":"F8","Unicode dec":"11010","Unicode hex":"2B02"},{"Typeface name":"Wingdings","Dingbat dec":"249","Dingbat hex":"F9","Unicode dec":"129196","Unicode hex":"1F8AC"},{"Typeface name":"Wingdings","Dingbat dec":"250","Dingbat hex":"FA","Unicode dec":"129197","Unicode hex":"1F8AD"},{"Typeface name":"Wingdings","Dingbat dec":"251","Dingbat hex":"FB","Unicode dec":"128502","Unicode hex":"1F5F6"},{"Typeface name":"Wingdings","Dingbat dec":"252","Dingbat hex":"FC","Unicode dec":"10003","Unicode hex":"2713"},{"Typeface name":"Wingdings","Dingbat dec":"253","Dingbat hex":"FD","Unicode dec":"128503","Unicode hex":"1F5F7"},{"Typeface name":"Wingdings","Dingbat dec":"254","Dingbat hex":"FE","Unicode dec":"128505","Unicode hex":"1F5F9"},{"Typeface name":"Wingdings 2","Dingbat dec":"32","Dingbat hex":"20","Unicode dec":"32","Unicode hex":"20"},{"Typeface name":"Wingdings 2","Dingbat dec":"33","Dingbat hex":"21","Unicode dec":"128394","Unicode hex":"1F58A"},{"Typeface name":"Wingdings 2","Dingbat dec":"34","Dingbat hex":"22","Unicode dec":"128395","Unicode hex":"1F58B"},{"Typeface name":"Wingdings 2","Dingbat dec":"35","Dingbat hex":"23","Unicode dec":"128396","Unicode hex":"1F58C"},{"Typeface name":"Wingdings 2","Dingbat dec":"36","Dingbat hex":"24","Unicode dec":"128397","Unicode hex":"1F58D"},{"Typeface name":"Wingdings 2","Dingbat dec":"37","Dingbat hex":"25","Unicode dec":"9988","Unicode hex":"2704"},{"Typeface name":"Wingdings 2","Dingbat dec":"38","Dingbat hex":"26","Unicode dec":"9984","Unicode hex":"2700"},{"Typeface name":"Wingdings 2","Dingbat dec":"39","Dingbat hex":"27","Unicode dec":"128382","Unicode hex":"1F57E"},{"Typeface name":"Wingdings 2","Dingbat dec":"40","Dingbat hex":"28","Unicode dec":"128381","Unicode hex":"1F57D"},{"Typeface name":"Wingdings 2","Dingbat dec":"41","Dingbat hex":"29","Unicode dec":"128453","Unicode hex":"1F5C5"},{"Typeface name":"Wingdings 2","Dingbat dec":"42","Dingbat hex":"2A","Unicode dec":"128454","Unicode hex":"1F5C6"},{"Typeface name":"Wingdings 2","Dingbat dec":"43","Dingbat hex":"2B","Unicode dec":"128455","Unicode hex":"1F5C7"},{"Typeface name":"Wingdings 2","Dingbat dec":"44","Dingbat hex":"2C","Unicode dec":"128456","Unicode hex":"1F5C8"},{"Typeface name":"Wingdings 2","Dingbat dec":"45","Dingbat hex":"2D","Unicode dec":"128457","Unicode hex":"1F5C9"},{"Typeface name":"Wingdings 2","Dingbat dec":"46","Dingbat hex":"2E","Unicode dec":"128458","Unicode hex":"1F5CA"},{"Typeface name":"Wingdings 2","Dingbat dec":"47","Dingbat hex":"2F","Unicode dec":"128459","Unicode hex":"1F5CB"},{"Typeface name":"Wingdings 2","Dingbat dec":"48","Dingbat hex":"30","Unicode dec":"128460","Unicode hex":"1F5CC"},{"Typeface name":"Wingdings 2","Dingbat dec":"49","Dingbat hex":"31","Unicode dec":"128461","Unicode hex":"1F5CD"},{"Typeface name":"Wingdings 2","Dingbat dec":"50","Dingbat hex":"32","Unicode dec":"128203","Unicode hex":"1F4CB"},{"Typeface name":"Wingdings 2","Dingbat dec":"51","Dingbat hex":"33","Unicode dec":"128465","Unicode hex":"1F5D1"},{"Typeface name":"Wingdings 2","Dingbat dec":"52","Dingbat hex":"34","Unicode dec":"128468","Unicode hex":"1F5D4"},{"Typeface name":"Wingdings 2","Dingbat dec":"53","Dingbat hex":"35","Unicode dec":"128437","Unicode hex":"1F5B5"},{"Typeface name":"Wingdings 2","Dingbat dec":"54","Dingbat hex":"36","Unicode dec":"128438","Unicode hex":"1F5B6"},{"Typeface name":"Wingdings 2","Dingbat dec":"55","Dingbat hex":"37","Unicode dec":"128439","Unicode hex":"1F5B7"},{"Typeface name":"Wingdings 2","Dingbat dec":"56","Dingbat hex":"38","Unicode dec":"128440","Unicode hex":"1F5B8"},{"Typeface name":"Wingdings 2","Dingbat dec":"57","Dingbat hex":"39","Unicode dec":"128429","Unicode hex":"1F5AD"},{"Typeface name":"Wingdings 2","Dingbat dec":"58","Dingbat hex":"3A","Unicode dec":"128431","Unicode hex":"1F5AF"},{"Typeface name":"Wingdings 2","Dingbat dec":"59","Dingbat hex":"3B","Unicode dec":"128433","Unicode hex":"1F5B1"},{"Typeface name":"Wingdings 2","Dingbat dec":"60","Dingbat hex":"3C","Unicode dec":"128402","Unicode hex":"1F592"},{"Typeface name":"Wingdings 2","Dingbat dec":"61","Dingbat hex":"3D","Unicode dec":"128403","Unicode hex":"1F593"},{"Typeface name":"Wingdings 2","Dingbat dec":"62","Dingbat hex":"3E","Unicode dec":"128408","Unicode hex":"1F598"},{"Typeface name":"Wingdings 2","Dingbat dec":"63","Dingbat hex":"3F","Unicode dec":"128409","Unicode hex":"1F599"},{"Typeface name":"Wingdings 2","Dingbat dec":"64","Dingbat hex":"40","Unicode dec":"128410","Unicode hex":"1F59A"},{"Typeface name":"Wingdings 2","Dingbat dec":"65","Dingbat hex":"41","Unicode dec":"128411","Unicode hex":"1F59B"},{"Typeface name":"Wingdings 2","Dingbat dec":"66","Dingbat hex":"42","Unicode dec":"128072","Unicode hex":"1F448"},{"Typeface name":"Wingdings 2","Dingbat dec":"67","Dingbat hex":"43","Unicode dec":"128073","Unicode hex":"1F449"},{"Typeface name":"Wingdings 2","Dingbat dec":"68","Dingbat hex":"44","Unicode dec":"128412","Unicode hex":"1F59C"},{"Typeface name":"Wingdings 2","Dingbat dec":"69","Dingbat hex":"45","Unicode dec":"128413","Unicode hex":"1F59D"},{"Typeface name":"Wingdings 2","Dingbat dec":"70","Dingbat hex":"46","Unicode dec":"128414","Unicode hex":"1F59E"},{"Typeface name":"Wingdings 2","Dingbat dec":"71","Dingbat hex":"47","Unicode dec":"128415","Unicode hex":"1F59F"},{"Typeface name":"Wingdings 2","Dingbat dec":"72","Dingbat hex":"48","Unicode dec":"128416","Unicode hex":"1F5A0"},{"Typeface name":"Wingdings 2","Dingbat dec":"73","Dingbat hex":"49","Unicode dec":"128417","Unicode hex":"1F5A1"},{"Typeface name":"Wingdings 2","Dingbat dec":"74","Dingbat hex":"4A","Unicode dec":"128070","Unicode hex":"1F446"},{"Typeface name":"Wingdings 2","Dingbat dec":"75","Dingbat hex":"4B","Unicode dec":"128071","Unicode hex":"1F447"},{"Typeface name":"Wingdings 2","Dingbat dec":"76","Dingbat hex":"4C","Unicode dec":"128418","Unicode hex":"1F5A2"},{"Typeface name":"Wingdings 2","Dingbat dec":"77","Dingbat hex":"4D","Unicode dec":"128419","Unicode hex":"1F5A3"},{"Typeface name":"Wingdings 2","Dingbat dec":"78","Dingbat hex":"4E","Unicode dec":"128401","Unicode hex":"1F591"},{"Typeface name":"Wingdings 2","Dingbat dec":"79","Dingbat hex":"4F","Unicode dec":"128500","Unicode hex":"1F5F4"},{"Typeface name":"Wingdings 2","Dingbat dec":"80","Dingbat hex":"50","Unicode dec":"128504","Unicode hex":"1F5F8"},{"Typeface name":"Wingdings 2","Dingbat dec":"81","Dingbat hex":"51","Unicode dec":"128501","Unicode hex":"1F5F5"},{"Typeface name":"Wingdings 2","Dingbat dec":"82","Dingbat hex":"52","Unicode dec":"9745","Unicode hex":"2611"},{"Typeface name":"Wingdings 2","Dingbat dec":"83","Dingbat hex":"53","Unicode dec":"11197","Unicode hex":"2BBD"},{"Typeface name":"Wingdings 2","Dingbat dec":"84","Dingbat hex":"54","Unicode dec":"9746","Unicode hex":"2612"},{"Typeface name":"Wingdings 2","Dingbat dec":"85","Dingbat hex":"55","Unicode dec":"11198","Unicode hex":"2BBE"},{"Typeface name":"Wingdings 2","Dingbat dec":"86","Dingbat hex":"56","Unicode dec":"11199","Unicode hex":"2BBF"},{"Typeface name":"Wingdings 2","Dingbat dec":"87","Dingbat hex":"57","Unicode dec":"128711","Unicode hex":"1F6C7"},{"Typeface name":"Wingdings 2","Dingbat dec":"88","Dingbat hex":"58","Unicode dec":"10680","Unicode hex":"29B8"},{"Typeface name":"Wingdings 2","Dingbat dec":"89","Dingbat hex":"59","Unicode dec":"128625","Unicode hex":"1F671"},{"Typeface name":"Wingdings 2","Dingbat dec":"90","Dingbat hex":"5A","Unicode dec":"128628","Unicode hex":"1F674"},{"Typeface name":"Wingdings 2","Dingbat dec":"91","Dingbat hex":"5B","Unicode dec":"128626","Unicode hex":"1F672"},{"Typeface name":"Wingdings 2","Dingbat dec":"92","Dingbat hex":"5C","Unicode dec":"128627","Unicode hex":"1F673"},{"Typeface name":"Wingdings 2","Dingbat dec":"93","Dingbat hex":"5D","Unicode dec":"8253","Unicode hex":"203D"},{"Typeface name":"Wingdings 2","Dingbat dec":"94","Dingbat hex":"5E","Unicode dec":"128633","Unicode hex":"1F679"},{"Typeface name":"Wingdings 2","Dingbat dec":"95","Dingbat hex":"5F","Unicode dec":"128634","Unicode hex":"1F67A"},{"Typeface name":"Wingdings 2","Dingbat dec":"96","Dingbat hex":"60","Unicode dec":"128635","Unicode hex":"1F67B"},{"Typeface name":"Wingdings 2","Dingbat dec":"97","Dingbat hex":"61","Unicode dec":"128614","Unicode hex":"1F666"},{"Typeface name":"Wingdings 2","Dingbat dec":"98","Dingbat hex":"62","Unicode dec":"128612","Unicode hex":"1F664"},{"Typeface name":"Wingdings 2","Dingbat dec":"99","Dingbat hex":"63","Unicode dec":"128613","Unicode hex":"1F665"},{"Typeface name":"Wingdings 2","Dingbat dec":"100","Dingbat hex":"64","Unicode dec":"128615","Unicode hex":"1F667"},{"Typeface name":"Wingdings 2","Dingbat dec":"101","Dingbat hex":"65","Unicode dec":"128602","Unicode hex":"1F65A"},{"Typeface name":"Wingdings 2","Dingbat dec":"102","Dingbat hex":"66","Unicode dec":"128600","Unicode hex":"1F658"},{"Typeface name":"Wingdings 2","Dingbat dec":"103","Dingbat hex":"67","Unicode dec":"128601","Unicode hex":"1F659"},{"Typeface name":"Wingdings 2","Dingbat dec":"104","Dingbat hex":"68","Unicode dec":"128603","Unicode hex":"1F65B"},{"Typeface name":"Wingdings 2","Dingbat dec":"105","Dingbat hex":"69","Unicode dec":"9450","Unicode hex":"24EA"},{"Typeface name":"Wingdings 2","Dingbat dec":"106","Dingbat hex":"6A","Unicode dec":"9312","Unicode hex":"2460"},{"Typeface name":"Wingdings 2","Dingbat dec":"107","Dingbat hex":"6B","Unicode dec":"9313","Unicode hex":"2461"},{"Typeface name":"Wingdings 2","Dingbat dec":"108","Dingbat hex":"6C","Unicode dec":"9314","Unicode hex":"2462"},{"Typeface name":"Wingdings 2","Dingbat dec":"109","Dingbat hex":"6D","Unicode dec":"9315","Unicode hex":"2463"},{"Typeface name":"Wingdings 2","Dingbat dec":"110","Dingbat hex":"6E","Unicode dec":"9316","Unicode hex":"2464"},{"Typeface name":"Wingdings 2","Dingbat dec":"111","Dingbat hex":"6F","Unicode dec":"9317","Unicode hex":"2465"},{"Typeface name":"Wingdings 2","Dingbat dec":"112","Dingbat hex":"70","Unicode dec":"9318","Unicode hex":"2466"},{"Typeface name":"Wingdings 2","Dingbat dec":"113","Dingbat hex":"71","Unicode dec":"9319","Unicode hex":"2467"},{"Typeface name":"Wingdings 2","Dingbat dec":"114","Dingbat hex":"72","Unicode dec":"9320","Unicode hex":"2468"},{"Typeface name":"Wingdings 2","Dingbat dec":"115","Dingbat hex":"73","Unicode dec":"9321","Unicode hex":"2469"},{"Typeface name":"Wingdings 2","Dingbat dec":"116","Dingbat hex":"74","Unicode dec":"9471","Unicode hex":"24FF"},{"Typeface name":"Wingdings 2","Dingbat dec":"117","Dingbat hex":"75","Unicode dec":"10102","Unicode hex":"2776"},{"Typeface name":"Wingdings 2","Dingbat dec":"118","Dingbat hex":"76","Unicode dec":"10103","Unicode hex":"2777"},{"Typeface name":"Wingdings 2","Dingbat dec":"119","Dingbat hex":"77","Unicode dec":"10104","Unicode hex":"2778"},{"Typeface name":"Wingdings 2","Dingbat dec":"120","Dingbat hex":"78","Unicode dec":"10105","Unicode hex":"2779"},{"Typeface name":"Wingdings 2","Dingbat dec":"121","Dingbat hex":"79","Unicode dec":"10106","Unicode hex":"277A"},{"Typeface name":"Wingdings 2","Dingbat dec":"122","Dingbat hex":"7A","Unicode dec":"10107","Unicode hex":"277B"},{"Typeface name":"Wingdings 2","Dingbat dec":"123","Dingbat hex":"7B","Unicode dec":"10108","Unicode hex":"277C"},{"Typeface name":"Wingdings 2","Dingbat dec":"124","Dingbat hex":"7C","Unicode dec":"10109","Unicode hex":"277D"},{"Typeface name":"Wingdings 2","Dingbat dec":"125","Dingbat hex":"7D","Unicode dec":"10110","Unicode hex":"277E"},{"Typeface name":"Wingdings 2","Dingbat dec":"126","Dingbat hex":"7E","Unicode dec":"10111","Unicode hex":"277F"},{"Typeface name":"Wingdings 2","Dingbat dec":"128","Dingbat hex":"80","Unicode dec":"9737","Unicode hex":"2609"},{"Typeface name":"Wingdings 2","Dingbat dec":"129","Dingbat hex":"81","Unicode dec":"127765","Unicode hex":"1F315"},{"Typeface name":"Wingdings 2","Dingbat dec":"130","Dingbat hex":"82","Unicode dec":"9789","Unicode hex":"263D"},{"Typeface name":"Wingdings 2","Dingbat dec":"131","Dingbat hex":"83","Unicode dec":"9790","Unicode hex":"263E"},{"Typeface name":"Wingdings 2","Dingbat dec":"132","Dingbat hex":"84","Unicode dec":"11839","Unicode hex":"2E3F"},{"Typeface name":"Wingdings 2","Dingbat dec":"133","Dingbat hex":"85","Unicode dec":"10013","Unicode hex":"271D"},{"Typeface name":"Wingdings 2","Dingbat dec":"134","Dingbat hex":"86","Unicode dec":"128327","Unicode hex":"1F547"},{"Typeface name":"Wingdings 2","Dingbat dec":"135","Dingbat hex":"87","Unicode dec":"128348","Unicode hex":"1F55C"},{"Typeface name":"Wingdings 2","Dingbat dec":"136","Dingbat hex":"88","Unicode dec":"128349","Unicode hex":"1F55D"},{"Typeface name":"Wingdings 2","Dingbat dec":"137","Dingbat hex":"89","Unicode dec":"128350","Unicode hex":"1F55E"},{"Typeface name":"Wingdings 2","Dingbat dec":"138","Dingbat hex":"8A","Unicode dec":"128351","Unicode hex":"1F55F"},{"Typeface name":"Wingdings 2","Dingbat dec":"139","Dingbat hex":"8B","Unicode dec":"128352","Unicode hex":"1F560"},{"Typeface name":"Wingdings 2","Dingbat dec":"140","Dingbat hex":"8C","Unicode dec":"128353","Unicode hex":"1F561"},{"Typeface name":"Wingdings 2","Dingbat dec":"141","Dingbat hex":"8D","Unicode dec":"128354","Unicode hex":"1F562"},{"Typeface name":"Wingdings 2","Dingbat dec":"142","Dingbat hex":"8E","Unicode dec":"128355","Unicode hex":"1F563"},{"Typeface name":"Wingdings 2","Dingbat dec":"143","Dingbat hex":"8F","Unicode dec":"128356","Unicode hex":"1F564"},{"Typeface name":"Wingdings 2","Dingbat dec":"144","Dingbat hex":"90","Unicode dec":"128357","Unicode hex":"1F565"},{"Typeface name":"Wingdings 2","Dingbat dec":"145","Dingbat hex":"91","Unicode dec":"128358","Unicode hex":"1F566"},{"Typeface name":"Wingdings 2","Dingbat dec":"146","Dingbat hex":"92","Unicode dec":"128359","Unicode hex":"1F567"},{"Typeface name":"Wingdings 2","Dingbat dec":"147","Dingbat hex":"93","Unicode dec":"128616","Unicode hex":"1F668"},{"Typeface name":"Wingdings 2","Dingbat dec":"148","Dingbat hex":"94","Unicode dec":"128617","Unicode hex":"1F669"},{"Typeface name":"Wingdings 2","Dingbat dec":"149","Dingbat hex":"95","Unicode dec":"8901","Unicode hex":"22C5"},{"Typeface name":"Wingdings 2","Dingbat dec":"150","Dingbat hex":"96","Unicode dec":"128900","Unicode hex":"1F784"},{"Typeface name":"Wingdings 2","Dingbat dec":"151","Dingbat hex":"97","Unicode dec":"10625","Unicode hex":"2981"},{"Typeface name":"Wingdings 2","Dingbat dec":"152","Dingbat hex":"98","Unicode dec":"9679","Unicode hex":"25CF"},{"Typeface name":"Wingdings 2","Dingbat dec":"153","Dingbat hex":"99","Unicode dec":"9675","Unicode hex":"25CB"},{"Typeface name":"Wingdings 2","Dingbat dec":"154","Dingbat hex":"9A","Unicode dec":"128901","Unicode hex":"1F785"},{"Typeface name":"Wingdings 2","Dingbat dec":"155","Dingbat hex":"9B","Unicode dec":"128903","Unicode hex":"1F787"},{"Typeface name":"Wingdings 2","Dingbat dec":"156","Dingbat hex":"9C","Unicode dec":"128905","Unicode hex":"1F789"},{"Typeface name":"Wingdings 2","Dingbat dec":"157","Dingbat hex":"9D","Unicode dec":"8857","Unicode hex":"2299"},{"Typeface name":"Wingdings 2","Dingbat dec":"158","Dingbat hex":"9E","Unicode dec":"10687","Unicode hex":"29BF"},{"Typeface name":"Wingdings 2","Dingbat dec":"159","Dingbat hex":"9F","Unicode dec":"128908","Unicode hex":"1F78C"},{"Typeface name":"Wingdings 2","Dingbat dec":"160","Dingbat hex":"A0","Unicode dec":"128909","Unicode hex":"1F78D"},{"Typeface name":"Wingdings 2","Dingbat dec":"161","Dingbat hex":"A1","Unicode dec":"9726","Unicode hex":"25FE"},{"Typeface name":"Wingdings 2","Dingbat dec":"162","Dingbat hex":"A2","Unicode dec":"9632","Unicode hex":"25A0"},{"Typeface name":"Wingdings 2","Dingbat dec":"163","Dingbat hex":"A3","Unicode dec":"9633","Unicode hex":"25A1"},{"Typeface name":"Wingdings 2","Dingbat dec":"164","Dingbat hex":"A4","Unicode dec":"128913","Unicode hex":"1F791"},{"Typeface name":"Wingdings 2","Dingbat dec":"165","Dingbat hex":"A5","Unicode dec":"128914","Unicode hex":"1F792"},{"Typeface name":"Wingdings 2","Dingbat dec":"166","Dingbat hex":"A6","Unicode dec":"128915","Unicode hex":"1F793"},{"Typeface name":"Wingdings 2","Dingbat dec":"167","Dingbat hex":"A7","Unicode dec":"128916","Unicode hex":"1F794"},{"Typeface name":"Wingdings 2","Dingbat dec":"168","Dingbat hex":"A8","Unicode dec":"9635","Unicode hex":"25A3"},{"Typeface name":"Wingdings 2","Dingbat dec":"169","Dingbat hex":"A9","Unicode dec":"128917","Unicode hex":"1F795"},{"Typeface name":"Wingdings 2","Dingbat dec":"170","Dingbat hex":"AA","Unicode dec":"128918","Unicode hex":"1F796"},{"Typeface name":"Wingdings 2","Dingbat dec":"171","Dingbat hex":"AB","Unicode dec":"128919","Unicode hex":"1F797"},{"Typeface name":"Wingdings 2","Dingbat dec":"172","Dingbat hex":"AC","Unicode dec":"128920","Unicode hex":"1F798"},{"Typeface name":"Wingdings 2","Dingbat dec":"173","Dingbat hex":"AD","Unicode dec":"11049","Unicode hex":"2B29"},{"Typeface name":"Wingdings 2","Dingbat dec":"174","Dingbat hex":"AE","Unicode dec":"11045","Unicode hex":"2B25"},{"Typeface name":"Wingdings 2","Dingbat dec":"175","Dingbat hex":"AF","Unicode dec":"9671","Unicode hex":"25C7"},{"Typeface name":"Wingdings 2","Dingbat dec":"176","Dingbat hex":"B0","Unicode dec":"128922","Unicode hex":"1F79A"},{"Typeface name":"Wingdings 2","Dingbat dec":"177","Dingbat hex":"B1","Unicode dec":"9672","Unicode hex":"25C8"},{"Typeface name":"Wingdings 2","Dingbat dec":"178","Dingbat hex":"B2","Unicode dec":"128923","Unicode hex":"1F79B"},{"Typeface name":"Wingdings 2","Dingbat dec":"179","Dingbat hex":"B3","Unicode dec":"128924","Unicode hex":"1F79C"},{"Typeface name":"Wingdings 2","Dingbat dec":"180","Dingbat hex":"B4","Unicode dec":"128925","Unicode hex":"1F79D"},{"Typeface name":"Wingdings 2","Dingbat dec":"181","Dingbat hex":"B5","Unicode dec":"128926","Unicode hex":"1F79E"},{"Typeface name":"Wingdings 2","Dingbat dec":"182","Dingbat hex":"B6","Unicode dec":"11050","Unicode hex":"2B2A"},{"Typeface name":"Wingdings 2","Dingbat dec":"183","Dingbat hex":"B7","Unicode dec":"11047","Unicode hex":"2B27"},{"Typeface name":"Wingdings 2","Dingbat dec":"184","Dingbat hex":"B8","Unicode dec":"9674","Unicode hex":"25CA"},{"Typeface name":"Wingdings 2","Dingbat dec":"185","Dingbat hex":"B9","Unicode dec":"128928","Unicode hex":"1F7A0"},{"Typeface name":"Wingdings 2","Dingbat dec":"186","Dingbat hex":"BA","Unicode dec":"9686","Unicode hex":"25D6"},{"Typeface name":"Wingdings 2","Dingbat dec":"187","Dingbat hex":"BB","Unicode dec":"9687","Unicode hex":"25D7"},{"Typeface name":"Wingdings 2","Dingbat dec":"188","Dingbat hex":"BC","Unicode dec":"11210","Unicode hex":"2BCA"},{"Typeface name":"Wingdings 2","Dingbat dec":"189","Dingbat hex":"BD","Unicode dec":"11211","Unicode hex":"2BCB"},{"Typeface name":"Wingdings 2","Dingbat dec":"190","Dingbat hex":"BE","Unicode dec":"11200","Unicode hex":"2BC0"},{"Typeface name":"Wingdings 2","Dingbat dec":"191","Dingbat hex":"BF","Unicode dec":"11201","Unicode hex":"2BC1"},{"Typeface name":"Wingdings 2","Dingbat dec":"192","Dingbat hex":"C0","Unicode dec":"11039","Unicode hex":"2B1F"},{"Typeface name":"Wingdings 2","Dingbat dec":"193","Dingbat hex":"C1","Unicode dec":"11202","Unicode hex":"2BC2"},{"Typeface name":"Wingdings 2","Dingbat dec":"194","Dingbat hex":"C2","Unicode dec":"11043","Unicode hex":"2B23"},{"Typeface name":"Wingdings 2","Dingbat dec":"195","Dingbat hex":"C3","Unicode dec":"11042","Unicode hex":"2B22"},{"Typeface name":"Wingdings 2","Dingbat dec":"196","Dingbat hex":"C4","Unicode dec":"11203","Unicode hex":"2BC3"},{"Typeface name":"Wingdings 2","Dingbat dec":"197","Dingbat hex":"C5","Unicode dec":"11204","Unicode hex":"2BC4"},{"Typeface name":"Wingdings 2","Dingbat dec":"198","Dingbat hex":"C6","Unicode dec":"128929","Unicode hex":"1F7A1"},{"Typeface name":"Wingdings 2","Dingbat dec":"199","Dingbat hex":"C7","Unicode dec":"128930","Unicode hex":"1F7A2"},{"Typeface name":"Wingdings 2","Dingbat dec":"200","Dingbat hex":"C8","Unicode dec":"128931","Unicode hex":"1F7A3"},{"Typeface name":"Wingdings 2","Dingbat dec":"201","Dingbat hex":"C9","Unicode dec":"128932","Unicode hex":"1F7A4"},{"Typeface name":"Wingdings 2", +"Dingbat dec":"202","Dingbat hex":"CA","Unicode dec":"128933","Unicode hex":"1F7A5"},{"Typeface name":"Wingdings 2","Dingbat dec":"203","Dingbat hex":"CB","Unicode dec":"128934","Unicode hex":"1F7A6"},{"Typeface name":"Wingdings 2","Dingbat dec":"204","Dingbat hex":"CC","Unicode dec":"128935","Unicode hex":"1F7A7"},{"Typeface name":"Wingdings 2","Dingbat dec":"205","Dingbat hex":"CD","Unicode dec":"128936","Unicode hex":"1F7A8"},{"Typeface name":"Wingdings 2","Dingbat dec":"206","Dingbat hex":"CE","Unicode dec":"128937","Unicode hex":"1F7A9"},{"Typeface name":"Wingdings 2","Dingbat dec":"207","Dingbat hex":"CF","Unicode dec":"128938","Unicode hex":"1F7AA"},{"Typeface name":"Wingdings 2","Dingbat dec":"208","Dingbat hex":"D0","Unicode dec":"128939","Unicode hex":"1F7AB"},{"Typeface name":"Wingdings 2","Dingbat dec":"209","Dingbat hex":"D1","Unicode dec":"128940","Unicode hex":"1F7AC"},{"Typeface name":"Wingdings 2","Dingbat dec":"210","Dingbat hex":"D2","Unicode dec":"128941","Unicode hex":"1F7AD"},{"Typeface name":"Wingdings 2","Dingbat dec":"211","Dingbat hex":"D3","Unicode dec":"128942","Unicode hex":"1F7AE"},{"Typeface name":"Wingdings 2","Dingbat dec":"212","Dingbat hex":"D4","Unicode dec":"128943","Unicode hex":"1F7AF"},{"Typeface name":"Wingdings 2","Dingbat dec":"213","Dingbat hex":"D5","Unicode dec":"128944","Unicode hex":"1F7B0"},{"Typeface name":"Wingdings 2","Dingbat dec":"214","Dingbat hex":"D6","Unicode dec":"128945","Unicode hex":"1F7B1"},{"Typeface name":"Wingdings 2","Dingbat dec":"215","Dingbat hex":"D7","Unicode dec":"128946","Unicode hex":"1F7B2"},{"Typeface name":"Wingdings 2","Dingbat dec":"216","Dingbat hex":"D8","Unicode dec":"128947","Unicode hex":"1F7B3"},{"Typeface name":"Wingdings 2","Dingbat dec":"217","Dingbat hex":"D9","Unicode dec":"128948","Unicode hex":"1F7B4"},{"Typeface name":"Wingdings 2","Dingbat dec":"218","Dingbat hex":"DA","Unicode dec":"128949","Unicode hex":"1F7B5"},{"Typeface name":"Wingdings 2","Dingbat dec":"219","Dingbat hex":"DB","Unicode dec":"128950","Unicode hex":"1F7B6"},{"Typeface name":"Wingdings 2","Dingbat dec":"220","Dingbat hex":"DC","Unicode dec":"128951","Unicode hex":"1F7B7"},{"Typeface name":"Wingdings 2","Dingbat dec":"221","Dingbat hex":"DD","Unicode dec":"128952","Unicode hex":"1F7B8"},{"Typeface name":"Wingdings 2","Dingbat dec":"222","Dingbat hex":"DE","Unicode dec":"128953","Unicode hex":"1F7B9"},{"Typeface name":"Wingdings 2","Dingbat dec":"223","Dingbat hex":"DF","Unicode dec":"128954","Unicode hex":"1F7BA"},{"Typeface name":"Wingdings 2","Dingbat dec":"224","Dingbat hex":"E0","Unicode dec":"128955","Unicode hex":"1F7BB"},{"Typeface name":"Wingdings 2","Dingbat dec":"225","Dingbat hex":"E1","Unicode dec":"128956","Unicode hex":"1F7BC"},{"Typeface name":"Wingdings 2","Dingbat dec":"226","Dingbat hex":"E2","Unicode dec":"128957","Unicode hex":"1F7BD"},{"Typeface name":"Wingdings 2","Dingbat dec":"227","Dingbat hex":"E3","Unicode dec":"128958","Unicode hex":"1F7BE"},{"Typeface name":"Wingdings 2","Dingbat dec":"228","Dingbat hex":"E4","Unicode dec":"128959","Unicode hex":"1F7BF"},{"Typeface name":"Wingdings 2","Dingbat dec":"229","Dingbat hex":"E5","Unicode dec":"128960","Unicode hex":"1F7C0"},{"Typeface name":"Wingdings 2","Dingbat dec":"230","Dingbat hex":"E6","Unicode dec":"128962","Unicode hex":"1F7C2"},{"Typeface name":"Wingdings 2","Dingbat dec":"231","Dingbat hex":"E7","Unicode dec":"128964","Unicode hex":"1F7C4"},{"Typeface name":"Wingdings 2","Dingbat dec":"232","Dingbat hex":"E8","Unicode dec":"128966","Unicode hex":"1F7C6"},{"Typeface name":"Wingdings 2","Dingbat dec":"233","Dingbat hex":"E9","Unicode dec":"128969","Unicode hex":"1F7C9"},{"Typeface name":"Wingdings 2","Dingbat dec":"234","Dingbat hex":"EA","Unicode dec":"128970","Unicode hex":"1F7CA"},{"Typeface name":"Wingdings 2","Dingbat dec":"235","Dingbat hex":"EB","Unicode dec":"10038","Unicode hex":"2736"},{"Typeface name":"Wingdings 2","Dingbat dec":"236","Dingbat hex":"EC","Unicode dec":"128972","Unicode hex":"1F7CC"},{"Typeface name":"Wingdings 2","Dingbat dec":"237","Dingbat hex":"ED","Unicode dec":"128974","Unicode hex":"1F7CE"},{"Typeface name":"Wingdings 2","Dingbat dec":"238","Dingbat hex":"EE","Unicode dec":"128976","Unicode hex":"1F7D0"},{"Typeface name":"Wingdings 2","Dingbat dec":"239","Dingbat hex":"EF","Unicode dec":"128978","Unicode hex":"1F7D2"},{"Typeface name":"Wingdings 2","Dingbat dec":"240","Dingbat hex":"F0","Unicode dec":"10041","Unicode hex":"2739"},{"Typeface name":"Wingdings 2","Dingbat dec":"241","Dingbat hex":"F1","Unicode dec":"128963","Unicode hex":"1F7C3"},{"Typeface name":"Wingdings 2","Dingbat dec":"242","Dingbat hex":"F2","Unicode dec":"128967","Unicode hex":"1F7C7"},{"Typeface name":"Wingdings 2","Dingbat dec":"243","Dingbat hex":"F3","Unicode dec":"10031","Unicode hex":"272F"},{"Typeface name":"Wingdings 2","Dingbat dec":"244","Dingbat hex":"F4","Unicode dec":"128973","Unicode hex":"1F7CD"},{"Typeface name":"Wingdings 2","Dingbat dec":"245","Dingbat hex":"F5","Unicode dec":"128980","Unicode hex":"1F7D4"},{"Typeface name":"Wingdings 2","Dingbat dec":"246","Dingbat hex":"F6","Unicode dec":"11212","Unicode hex":"2BCC"},{"Typeface name":"Wingdings 2","Dingbat dec":"247","Dingbat hex":"F7","Unicode dec":"11213","Unicode hex":"2BCD"},{"Typeface name":"Wingdings 2","Dingbat dec":"248","Dingbat hex":"F8","Unicode dec":"8251","Unicode hex":"203B"},{"Typeface name":"Wingdings 2","Dingbat dec":"249","Dingbat hex":"F9","Unicode dec":"8258","Unicode hex":"2042"},{"Typeface name":"Wingdings 3","Dingbat dec":"32","Dingbat hex":"20","Unicode dec":"32","Unicode hex":"20"},{"Typeface name":"Wingdings 3","Dingbat dec":"33","Dingbat hex":"21","Unicode dec":"11104","Unicode hex":"2B60"},{"Typeface name":"Wingdings 3","Dingbat dec":"34","Dingbat hex":"22","Unicode dec":"11106","Unicode hex":"2B62"},{"Typeface name":"Wingdings 3","Dingbat dec":"35","Dingbat hex":"23","Unicode dec":"11105","Unicode hex":"2B61"},{"Typeface name":"Wingdings 3","Dingbat dec":"36","Dingbat hex":"24","Unicode dec":"11107","Unicode hex":"2B63"},{"Typeface name":"Wingdings 3","Dingbat dec":"37","Dingbat hex":"25","Unicode dec":"11110","Unicode hex":"2B66"},{"Typeface name":"Wingdings 3","Dingbat dec":"38","Dingbat hex":"26","Unicode dec":"11111","Unicode hex":"2B67"},{"Typeface name":"Wingdings 3","Dingbat dec":"39","Dingbat hex":"27","Unicode dec":"11113","Unicode hex":"2B69"},{"Typeface name":"Wingdings 3","Dingbat dec":"40","Dingbat hex":"28","Unicode dec":"11112","Unicode hex":"2B68"},{"Typeface name":"Wingdings 3","Dingbat dec":"41","Dingbat hex":"29","Unicode dec":"11120","Unicode hex":"2B70"},{"Typeface name":"Wingdings 3","Dingbat dec":"42","Dingbat hex":"2A","Unicode dec":"11122","Unicode hex":"2B72"},{"Typeface name":"Wingdings 3","Dingbat dec":"43","Dingbat hex":"2B","Unicode dec":"11121","Unicode hex":"2B71"},{"Typeface name":"Wingdings 3","Dingbat dec":"44","Dingbat hex":"2C","Unicode dec":"11123","Unicode hex":"2B73"},{"Typeface name":"Wingdings 3","Dingbat dec":"45","Dingbat hex":"2D","Unicode dec":"11126","Unicode hex":"2B76"},{"Typeface name":"Wingdings 3","Dingbat dec":"46","Dingbat hex":"2E","Unicode dec":"11128","Unicode hex":"2B78"},{"Typeface name":"Wingdings 3","Dingbat dec":"47","Dingbat hex":"2F","Unicode dec":"11131","Unicode hex":"2B7B"},{"Typeface name":"Wingdings 3","Dingbat dec":"48","Dingbat hex":"30","Unicode dec":"11133","Unicode hex":"2B7D"},{"Typeface name":"Wingdings 3","Dingbat dec":"49","Dingbat hex":"31","Unicode dec":"11108","Unicode hex":"2B64"},{"Typeface name":"Wingdings 3","Dingbat dec":"50","Dingbat hex":"32","Unicode dec":"11109","Unicode hex":"2B65"},{"Typeface name":"Wingdings 3","Dingbat dec":"51","Dingbat hex":"33","Unicode dec":"11114","Unicode hex":"2B6A"},{"Typeface name":"Wingdings 3","Dingbat dec":"52","Dingbat hex":"34","Unicode dec":"11116","Unicode hex":"2B6C"},{"Typeface name":"Wingdings 3","Dingbat dec":"53","Dingbat hex":"35","Unicode dec":"11115","Unicode hex":"2B6B"},{"Typeface name":"Wingdings 3","Dingbat dec":"54","Dingbat hex":"36","Unicode dec":"11117","Unicode hex":"2B6D"},{"Typeface name":"Wingdings 3","Dingbat dec":"55","Dingbat hex":"37","Unicode dec":"11085","Unicode hex":"2B4D"},{"Typeface name":"Wingdings 3","Dingbat dec":"56","Dingbat hex":"38","Unicode dec":"11168","Unicode hex":"2BA0"},{"Typeface name":"Wingdings 3","Dingbat dec":"57","Dingbat hex":"39","Unicode dec":"11169","Unicode hex":"2BA1"},{"Typeface name":"Wingdings 3","Dingbat dec":"58","Dingbat hex":"3A","Unicode dec":"11170","Unicode hex":"2BA2"},{"Typeface name":"Wingdings 3","Dingbat dec":"59","Dingbat hex":"3B","Unicode dec":"11171","Unicode hex":"2BA3"},{"Typeface name":"Wingdings 3","Dingbat dec":"60","Dingbat hex":"3C","Unicode dec":"11172","Unicode hex":"2BA4"},{"Typeface name":"Wingdings 3","Dingbat dec":"61","Dingbat hex":"3D","Unicode dec":"11173","Unicode hex":"2BA5"},{"Typeface name":"Wingdings 3","Dingbat dec":"62","Dingbat hex":"3E","Unicode dec":"11174","Unicode hex":"2BA6"},{"Typeface name":"Wingdings 3","Dingbat dec":"63","Dingbat hex":"3F","Unicode dec":"11175","Unicode hex":"2BA7"},{"Typeface name":"Wingdings 3","Dingbat dec":"64","Dingbat hex":"40","Unicode dec":"11152","Unicode hex":"2B90"},{"Typeface name":"Wingdings 3","Dingbat dec":"65","Dingbat hex":"41","Unicode dec":"11153","Unicode hex":"2B91"},{"Typeface name":"Wingdings 3","Dingbat dec":"66","Dingbat hex":"42","Unicode dec":"11154","Unicode hex":"2B92"},{"Typeface name":"Wingdings 3","Dingbat dec":"67","Dingbat hex":"43","Unicode dec":"11155","Unicode hex":"2B93"},{"Typeface name":"Wingdings 3","Dingbat dec":"68","Dingbat hex":"44","Unicode dec":"11136","Unicode hex":"2B80"},{"Typeface name":"Wingdings 3","Dingbat dec":"69","Dingbat hex":"45","Unicode dec":"11139","Unicode hex":"2B83"},{"Typeface name":"Wingdings 3","Dingbat dec":"70","Dingbat hex":"46","Unicode dec":"11134","Unicode hex":"2B7E"},{"Typeface name":"Wingdings 3","Dingbat dec":"71","Dingbat hex":"47","Unicode dec":"11135","Unicode hex":"2B7F"},{"Typeface name":"Wingdings 3","Dingbat dec":"72","Dingbat hex":"48","Unicode dec":"11140","Unicode hex":"2B84"},{"Typeface name":"Wingdings 3","Dingbat dec":"73","Dingbat hex":"49","Unicode dec":"11142","Unicode hex":"2B86"},{"Typeface name":"Wingdings 3","Dingbat dec":"74","Dingbat hex":"4A","Unicode dec":"11141","Unicode hex":"2B85"},{"Typeface name":"Wingdings 3","Dingbat dec":"75","Dingbat hex":"4B","Unicode dec":"11143","Unicode hex":"2B87"},{"Typeface name":"Wingdings 3","Dingbat dec":"76","Dingbat hex":"4C","Unicode dec":"11151","Unicode hex":"2B8F"},{"Typeface name":"Wingdings 3","Dingbat dec":"77","Dingbat hex":"4D","Unicode dec":"11149","Unicode hex":"2B8D"},{"Typeface name":"Wingdings 3","Dingbat dec":"78","Dingbat hex":"4E","Unicode dec":"11150","Unicode hex":"2B8E"},{"Typeface name":"Wingdings 3","Dingbat dec":"79","Dingbat hex":"4F","Unicode dec":"11148","Unicode hex":"2B8C"},{"Typeface name":"Wingdings 3","Dingbat dec":"80","Dingbat hex":"50","Unicode dec":"11118","Unicode hex":"2B6E"},{"Typeface name":"Wingdings 3","Dingbat dec":"81","Dingbat hex":"51","Unicode dec":"11119","Unicode hex":"2B6F"},{"Typeface name":"Wingdings 3","Dingbat dec":"82","Dingbat hex":"52","Unicode dec":"9099","Unicode hex":"238B"},{"Typeface name":"Wingdings 3","Dingbat dec":"83","Dingbat hex":"53","Unicode dec":"8996","Unicode hex":"2324"},{"Typeface name":"Wingdings 3","Dingbat dec":"84","Dingbat hex":"54","Unicode dec":"8963","Unicode hex":"2303"},{"Typeface name":"Wingdings 3","Dingbat dec":"85","Dingbat hex":"55","Unicode dec":"8997","Unicode hex":"2325"},{"Typeface name":"Wingdings 3","Dingbat dec":"86","Dingbat hex":"56","Unicode dec":"9251","Unicode hex":"2423"},{"Typeface name":"Wingdings 3","Dingbat dec":"87","Dingbat hex":"57","Unicode dec":"9085","Unicode hex":"237D"},{"Typeface name":"Wingdings 3","Dingbat dec":"88","Dingbat hex":"58","Unicode dec":"8682","Unicode hex":"21EA"},{"Typeface name":"Wingdings 3","Dingbat dec":"89","Dingbat hex":"59","Unicode dec":"11192","Unicode hex":"2BB8"},{"Typeface name":"Wingdings 3","Dingbat dec":"90","Dingbat hex":"5A","Unicode dec":"129184","Unicode hex":"1F8A0"},{"Typeface name":"Wingdings 3","Dingbat dec":"91","Dingbat hex":"5B","Unicode dec":"129185","Unicode hex":"1F8A1"},{"Typeface name":"Wingdings 3","Dingbat dec":"92","Dingbat hex":"5C","Unicode dec":"129186","Unicode hex":"1F8A2"},{"Typeface name":"Wingdings 3","Dingbat dec":"93","Dingbat hex":"5D","Unicode dec":"129187","Unicode hex":"1F8A3"},{"Typeface name":"Wingdings 3","Dingbat dec":"94","Dingbat hex":"5E","Unicode dec":"129188","Unicode hex":"1F8A4"},{"Typeface name":"Wingdings 3","Dingbat dec":"95","Dingbat hex":"5F","Unicode dec":"129189","Unicode hex":"1F8A5"},{"Typeface name":"Wingdings 3","Dingbat dec":"96","Dingbat hex":"60","Unicode dec":"129190","Unicode hex":"1F8A6"},{"Typeface name":"Wingdings 3","Dingbat dec":"97","Dingbat hex":"61","Unicode dec":"129191","Unicode hex":"1F8A7"},{"Typeface name":"Wingdings 3","Dingbat dec":"98","Dingbat hex":"62","Unicode dec":"129192","Unicode hex":"1F8A8"},{"Typeface name":"Wingdings 3","Dingbat dec":"99","Dingbat hex":"63","Unicode dec":"129193","Unicode hex":"1F8A9"},{"Typeface name":"Wingdings 3","Dingbat dec":"100","Dingbat hex":"64","Unicode dec":"129194","Unicode hex":"1F8AA"},{"Typeface name":"Wingdings 3","Dingbat dec":"101","Dingbat hex":"65","Unicode dec":"129195","Unicode hex":"1F8AB"},{"Typeface name":"Wingdings 3","Dingbat dec":"102","Dingbat hex":"66","Unicode dec":"129104","Unicode hex":"1F850"},{"Typeface name":"Wingdings 3","Dingbat dec":"103","Dingbat hex":"67","Unicode dec":"129106","Unicode hex":"1F852"},{"Typeface name":"Wingdings 3","Dingbat dec":"104","Dingbat hex":"68","Unicode dec":"129105","Unicode hex":"1F851"},{"Typeface name":"Wingdings 3","Dingbat dec":"105","Dingbat hex":"69","Unicode dec":"129107","Unicode hex":"1F853"},{"Typeface name":"Wingdings 3","Dingbat dec":"106","Dingbat hex":"6A","Unicode dec":"129108","Unicode hex":"1F854"},{"Typeface name":"Wingdings 3","Dingbat dec":"107","Dingbat hex":"6B","Unicode dec":"129109","Unicode hex":"1F855"},{"Typeface name":"Wingdings 3","Dingbat dec":"108","Dingbat hex":"6C","Unicode dec":"129111","Unicode hex":"1F857"},{"Typeface name":"Wingdings 3","Dingbat dec":"109","Dingbat hex":"6D","Unicode dec":"129110","Unicode hex":"1F856"},{"Typeface name":"Wingdings 3","Dingbat dec":"110","Dingbat hex":"6E","Unicode dec":"129112","Unicode hex":"1F858"},{"Typeface name":"Wingdings 3","Dingbat dec":"111","Dingbat hex":"6F","Unicode dec":"129113","Unicode hex":"1F859"},{"Typeface name":"Wingdings 3","Dingbat dec":"112","Dingbat hex":"70","Unicode dec":"9650","Unicode hex":"25B2"},{"Typeface name":"Wingdings 3","Dingbat dec":"113","Dingbat hex":"71","Unicode dec":"9660","Unicode hex":"25BC"},{"Typeface name":"Wingdings 3","Dingbat dec":"114","Dingbat hex":"72","Unicode dec":"9651","Unicode hex":"25B3"},{"Typeface name":"Wingdings 3","Dingbat dec":"115","Dingbat hex":"73","Unicode dec":"9661","Unicode hex":"25BD"},{"Typeface name":"Wingdings 3","Dingbat dec":"116","Dingbat hex":"74","Unicode dec":"9664","Unicode hex":"25C0"},{"Typeface name":"Wingdings 3","Dingbat dec":"117","Dingbat hex":"75","Unicode dec":"9654","Unicode hex":"25B6"},{"Typeface name":"Wingdings 3","Dingbat dec":"118","Dingbat hex":"76","Unicode dec":"9665","Unicode hex":"25C1"},{"Typeface name":"Wingdings 3","Dingbat dec":"119","Dingbat hex":"77","Unicode dec":"9655","Unicode hex":"25B7"},{"Typeface name":"Wingdings 3","Dingbat dec":"120","Dingbat hex":"78","Unicode dec":"9699","Unicode hex":"25E3"},{"Typeface name":"Wingdings 3","Dingbat dec":"121","Dingbat hex":"79","Unicode dec":"9698","Unicode hex":"25E2"},{"Typeface name":"Wingdings 3","Dingbat dec":"122","Dingbat hex":"7A","Unicode dec":"9700","Unicode hex":"25E4"},{"Typeface name":"Wingdings 3","Dingbat dec":"123","Dingbat hex":"7B","Unicode dec":"9701","Unicode hex":"25E5"},{"Typeface name":"Wingdings 3","Dingbat dec":"124","Dingbat hex":"7C","Unicode dec":"128896","Unicode hex":"1F780"},{"Typeface name":"Wingdings 3","Dingbat dec":"125","Dingbat hex":"7D","Unicode dec":"128898","Unicode hex":"1F782"},{"Typeface name":"Wingdings 3","Dingbat dec":"126","Dingbat hex":"7E","Unicode dec":"128897","Unicode hex":"1F781"},{"Typeface name":"Wingdings 3","Dingbat dec":"128","Dingbat hex":"80","Unicode dec":"128899","Unicode hex":"1F783"},{"Typeface name":"Wingdings 3","Dingbat dec":"129","Dingbat hex":"81","Unicode dec":"11205","Unicode hex":"2BC5"},{"Typeface name":"Wingdings 3","Dingbat dec":"130","Dingbat hex":"82","Unicode dec":"11206","Unicode hex":"2BC6"},{"Typeface name":"Wingdings 3","Dingbat dec":"131","Dingbat hex":"83","Unicode dec":"11207","Unicode hex":"2BC7"},{"Typeface name":"Wingdings 3","Dingbat dec":"132","Dingbat hex":"84","Unicode dec":"11208","Unicode hex":"2BC8"},{"Typeface name":"Wingdings 3","Dingbat dec":"133","Dingbat hex":"85","Unicode dec":"11164","Unicode hex":"2B9C"},{"Typeface name":"Wingdings 3","Dingbat dec":"134","Dingbat hex":"86","Unicode dec":"11166","Unicode hex":"2B9E"},{"Typeface name":"Wingdings 3","Dingbat dec":"135","Dingbat hex":"87","Unicode dec":"11165","Unicode hex":"2B9D"},{"Typeface name":"Wingdings 3","Dingbat dec":"136","Dingbat hex":"88","Unicode dec":"11167","Unicode hex":"2B9F"},{"Typeface name":"Wingdings 3","Dingbat dec":"137","Dingbat hex":"89","Unicode dec":"129040","Unicode hex":"1F810"},{"Typeface name":"Wingdings 3","Dingbat dec":"138","Dingbat hex":"8A","Unicode dec":"129042","Unicode hex":"1F812"},{"Typeface name":"Wingdings 3","Dingbat dec":"139","Dingbat hex":"8B","Unicode dec":"129041","Unicode hex":"1F811"},{"Typeface name":"Wingdings 3","Dingbat dec":"140","Dingbat hex":"8C","Unicode dec":"129043","Unicode hex":"1F813"},{"Typeface name":"Wingdings 3","Dingbat dec":"141","Dingbat hex":"8D","Unicode dec":"129044","Unicode hex":"1F814"},{"Typeface name":"Wingdings 3","Dingbat dec":"142","Dingbat hex":"8E","Unicode dec":"129046","Unicode hex":"1F816"},{"Typeface name":"Wingdings 3","Dingbat dec":"143","Dingbat hex":"8F","Unicode dec":"129045","Unicode hex":"1F815"},{"Typeface name":"Wingdings 3","Dingbat dec":"144","Dingbat hex":"90","Unicode dec":"129047","Unicode hex":"1F817"},{"Typeface name":"Wingdings 3","Dingbat dec":"145","Dingbat hex":"91","Unicode dec":"129048","Unicode hex":"1F818"},{"Typeface name":"Wingdings 3","Dingbat dec":"146","Dingbat hex":"92","Unicode dec":"129050","Unicode hex":"1F81A"},{"Typeface name":"Wingdings 3","Dingbat dec":"147","Dingbat hex":"93","Unicode dec":"129049","Unicode hex":"1F819"},{"Typeface name":"Wingdings 3","Dingbat dec":"148","Dingbat hex":"94","Unicode dec":"129051","Unicode hex":"1F81B"},{"Typeface name":"Wingdings 3","Dingbat dec":"149","Dingbat hex":"95","Unicode dec":"129052","Unicode hex":"1F81C"},{"Typeface name":"Wingdings 3","Dingbat dec":"150","Dingbat hex":"96","Unicode dec":"129054","Unicode hex":"1F81E"},{"Typeface name":"Wingdings 3","Dingbat dec":"151","Dingbat hex":"97","Unicode dec":"129053","Unicode hex":"1F81D"},{"Typeface name":"Wingdings 3","Dingbat dec":"152","Dingbat hex":"98","Unicode dec":"129055","Unicode hex":"1F81F"},{"Typeface name":"Wingdings 3","Dingbat dec":"153","Dingbat hex":"99","Unicode dec":"129024","Unicode hex":"1F800"},{"Typeface name":"Wingdings 3","Dingbat dec":"154","Dingbat hex":"9A","Unicode dec":"129026","Unicode hex":"1F802"},{"Typeface name":"Wingdings 3","Dingbat dec":"155","Dingbat hex":"9B","Unicode dec":"129025","Unicode hex":"1F801"},{"Typeface name":"Wingdings 3","Dingbat dec":"156","Dingbat hex":"9C","Unicode dec":"129027","Unicode hex":"1F803"},{"Typeface name":"Wingdings 3","Dingbat dec":"157","Dingbat hex":"9D","Unicode dec":"129028","Unicode hex":"1F804"},{"Typeface name":"Wingdings 3","Dingbat dec":"158","Dingbat hex":"9E","Unicode dec":"129030","Unicode hex":"1F806"},{"Typeface name":"Wingdings 3","Dingbat dec":"159","Dingbat hex":"9F","Unicode dec":"129029","Unicode hex":"1F805"},{"Typeface name":"Wingdings 3","Dingbat dec":"160","Dingbat hex":"A0","Unicode dec":"129031","Unicode hex":"1F807"},{"Typeface name":"Wingdings 3","Dingbat dec":"161","Dingbat hex":"A1","Unicode dec":"129032","Unicode hex":"1F808"},{"Typeface name":"Wingdings 3","Dingbat dec":"162","Dingbat hex":"A2","Unicode dec":"129034","Unicode hex":"1F80A"},{"Typeface name":"Wingdings 3","Dingbat dec":"163","Dingbat hex":"A3","Unicode dec":"129033","Unicode hex":"1F809"},{"Typeface name":"Wingdings 3","Dingbat dec":"164","Dingbat hex":"A4","Unicode dec":"129035","Unicode hex":"1F80B"},{"Typeface name":"Wingdings 3","Dingbat dec":"165","Dingbat hex":"A5","Unicode dec":"129056","Unicode hex":"1F820"},{"Typeface name":"Wingdings 3","Dingbat dec":"166","Dingbat hex":"A6","Unicode dec":"129058","Unicode hex":"1F822"},{"Typeface name":"Wingdings 3","Dingbat dec":"167","Dingbat hex":"A7","Unicode dec":"129060","Unicode hex":"1F824"},{"Typeface name":"Wingdings 3","Dingbat dec":"168","Dingbat hex":"A8","Unicode dec":"129062","Unicode hex":"1F826"},{"Typeface name":"Wingdings 3","Dingbat dec":"169","Dingbat hex":"A9","Unicode dec":"129064","Unicode hex":"1F828"},{"Typeface name":"Wingdings 3","Dingbat dec":"170","Dingbat hex":"AA","Unicode dec":"129066","Unicode hex":"1F82A"},{"Typeface name":"Wingdings 3","Dingbat dec":"171","Dingbat hex":"AB","Unicode dec":"129068","Unicode hex":"1F82C"},{"Typeface name":"Wingdings 3","Dingbat dec":"172","Dingbat hex":"AC","Unicode dec":"129180","Unicode hex":"1F89C"},{"Typeface name":"Wingdings 3","Dingbat dec":"173","Dingbat hex":"AD","Unicode dec":"129181","Unicode hex":"1F89D"},{"Typeface name":"Wingdings 3","Dingbat dec":"174","Dingbat hex":"AE","Unicode dec":"129182","Unicode hex":"1F89E"},{"Typeface name":"Wingdings 3","Dingbat dec":"175","Dingbat hex":"AF","Unicode dec":"129183","Unicode hex":"1F89F"},{"Typeface name":"Wingdings 3","Dingbat dec":"176","Dingbat hex":"B0","Unicode dec":"129070","Unicode hex":"1F82E"},{"Typeface name":"Wingdings 3","Dingbat dec":"177","Dingbat hex":"B1","Unicode dec":"129072","Unicode hex":"1F830"},{"Typeface name":"Wingdings 3","Dingbat dec":"178","Dingbat hex":"B2","Unicode dec":"129074","Unicode hex":"1F832"},{"Typeface name":"Wingdings 3","Dingbat dec":"179","Dingbat hex":"B3","Unicode dec":"129076","Unicode hex":"1F834"},{"Typeface name":"Wingdings 3","Dingbat dec":"180","Dingbat hex":"B4","Unicode dec":"129078","Unicode hex":"1F836"},{"Typeface name":"Wingdings 3","Dingbat dec":"181","Dingbat hex":"B5","Unicode dec":"129080","Unicode hex":"1F838"},{"Typeface name":"Wingdings 3","Dingbat dec":"182","Dingbat hex":"B6","Unicode dec":"129082","Unicode hex":"1F83A"},{"Typeface name":"Wingdings 3","Dingbat dec":"183","Dingbat hex":"B7","Unicode dec":"129081","Unicode hex":"1F839"},{"Typeface name":"Wingdings 3","Dingbat dec":"184","Dingbat hex":"B8","Unicode dec":"129083","Unicode hex":"1F83B"},{"Typeface name":"Wingdings 3","Dingbat dec":"185","Dingbat hex":"B9","Unicode dec":"129176","Unicode hex":"1F898"},{"Typeface name":"Wingdings 3","Dingbat dec":"186","Dingbat hex":"BA","Unicode dec":"129178","Unicode hex":"1F89A"},{"Typeface name":"Wingdings 3","Dingbat dec":"187","Dingbat hex":"BB","Unicode dec":"129177","Unicode hex":"1F899"},{"Typeface name":"Wingdings 3","Dingbat dec":"188","Dingbat hex":"BC","Unicode dec":"129179","Unicode hex":"1F89B"},{"Typeface name":"Wingdings 3","Dingbat dec":"189","Dingbat hex":"BD","Unicode dec":"129084","Unicode hex":"1F83C"},{"Typeface name":"Wingdings 3","Dingbat dec":"190","Dingbat hex":"BE","Unicode dec":"129086","Unicode hex":"1F83E"},{"Typeface name":"Wingdings 3","Dingbat dec":"191","Dingbat hex":"BF","Unicode dec":"129085","Unicode hex":"1F83D"},{"Typeface name":"Wingdings 3","Dingbat dec":"192","Dingbat hex":"C0","Unicode dec":"129087","Unicode hex":"1F83F"},{"Typeface name":"Wingdings 3","Dingbat dec":"193","Dingbat hex":"C1","Unicode dec":"129088","Unicode hex":"1F840"},{"Typeface name":"Wingdings 3","Dingbat dec":"194","Dingbat hex":"C2","Unicode dec":"129090","Unicode hex":"1F842"},{"Typeface name":"Wingdings 3","Dingbat dec":"195","Dingbat hex":"C3","Unicode dec":"129089","Unicode hex":"1F841"},{"Typeface name":"Wingdings 3","Dingbat dec":"196","Dingbat hex":"C4","Unicode dec":"129091","Unicode hex":"1F843"},{"Typeface name":"Wingdings 3","Dingbat dec":"197","Dingbat hex":"C5","Unicode dec":"129092","Unicode hex":"1F844"},{"Typeface name":"Wingdings 3","Dingbat dec":"198","Dingbat hex":"C6","Unicode dec":"129094","Unicode hex":"1F846"},{"Typeface name":"Wingdings 3","Dingbat dec":"199","Dingbat hex":"C7","Unicode dec":"129093","Unicode hex":"1F845"},{"Typeface name":"Wingdings 3","Dingbat dec":"200","Dingbat hex":"C8","Unicode dec":"129095","Unicode hex":"1F847"},{"Typeface name":"Wingdings 3","Dingbat dec":"201","Dingbat hex":"C9","Unicode dec":"11176","Unicode hex":"2BA8"},{"Typeface name":"Wingdings 3","Dingbat dec":"202","Dingbat hex":"CA","Unicode dec":"11177","Unicode hex":"2BA9"},{"Typeface name":"Wingdings 3","Dingbat dec":"203","Dingbat hex":"CB","Unicode dec":"11178","Unicode hex":"2BAA"},{"Typeface name":"Wingdings 3","Dingbat dec":"204","Dingbat hex":"CC","Unicode dec":"11179","Unicode hex":"2BAB"},{"Typeface name":"Wingdings 3","Dingbat dec":"205","Dingbat hex":"CD","Unicode dec":"11180","Unicode hex":"2BAC"},{"Typeface name":"Wingdings 3","Dingbat dec":"206","Dingbat hex":"CE","Unicode dec":"11181","Unicode hex":"2BAD"},{"Typeface name":"Wingdings 3","Dingbat dec":"207","Dingbat hex":"CF","Unicode dec":"11182","Unicode hex":"2BAE"},{"Typeface name":"Wingdings 3","Dingbat dec":"208","Dingbat hex":"D0","Unicode dec":"11183","Unicode hex":"2BAF"},{"Typeface name":"Wingdings 3","Dingbat dec":"209","Dingbat hex":"D1","Unicode dec":"129120","Unicode hex":"1F860"},{"Typeface name":"Wingdings 3","Dingbat dec":"210","Dingbat hex":"D2","Unicode dec":"129122","Unicode hex":"1F862"},{"Typeface name":"Wingdings 3","Dingbat dec":"211","Dingbat hex":"D3","Unicode dec":"129121","Unicode hex":"1F861"},{"Typeface name":"Wingdings 3","Dingbat dec":"212","Dingbat hex":"D4","Unicode dec":"129123","Unicode hex":"1F863"},{"Typeface name":"Wingdings 3","Dingbat dec":"213","Dingbat hex":"D5","Unicode dec":"129124","Unicode hex":"1F864"},{"Typeface name":"Wingdings 3","Dingbat dec":"214","Dingbat hex":"D6","Unicode dec":"129125","Unicode hex":"1F865"},{"Typeface name":"Wingdings 3","Dingbat dec":"215","Dingbat hex":"D7","Unicode dec":"129127","Unicode hex":"1F867"},{"Typeface name":"Wingdings 3","Dingbat dec":"216","Dingbat hex":"D8","Unicode dec":"129126","Unicode hex":"1F866"},{"Typeface name":"Wingdings 3","Dingbat dec":"217","Dingbat hex":"D9","Unicode dec":"129136","Unicode hex":"1F870"},{"Typeface name":"Wingdings 3","Dingbat dec":"218","Dingbat hex":"DA","Unicode dec":"129138","Unicode hex":"1F872"},{"Typeface name":"Wingdings 3","Dingbat dec":"219","Dingbat hex":"DB","Unicode dec":"129137","Unicode hex":"1F871"},{"Typeface name":"Wingdings 3","Dingbat dec":"220","Dingbat hex":"DC","Unicode dec":"129139","Unicode hex":"1F873"},{"Typeface name":"Wingdings 3","Dingbat dec":"221","Dingbat hex":"DD","Unicode dec":"129140","Unicode hex":"1F874"},{"Typeface name":"Wingdings 3","Dingbat dec":"222","Dingbat hex":"DE","Unicode dec":"129141","Unicode hex":"1F875"},{"Typeface name":"Wingdings 3","Dingbat dec":"223","Dingbat hex":"DF","Unicode dec":"129143","Unicode hex":"1F877"},{"Typeface name":"Wingdings 3","Dingbat dec":"224","Dingbat hex":"E0","Unicode dec":"129142","Unicode hex":"1F876"},{"Typeface name":"Wingdings 3","Dingbat dec":"225","Dingbat hex":"E1","Unicode dec":"129152","Unicode hex":"1F880"},{"Typeface name":"Wingdings 3","Dingbat dec":"226","Dingbat hex":"E2","Unicode dec":"129154","Unicode hex":"1F882"},{"Typeface name":"Wingdings 3","Dingbat dec":"227","Dingbat hex":"E3","Unicode dec":"129153","Unicode hex":"1F881"},{"Typeface name":"Wingdings 3","Dingbat dec":"228","Dingbat hex":"E4","Unicode dec":"129155","Unicode hex":"1F883"},{"Typeface name":"Wingdings 3","Dingbat dec":"229","Dingbat hex":"E5","Unicode dec":"129156","Unicode hex":"1F884"},{"Typeface name":"Wingdings 3","Dingbat dec":"230","Dingbat hex":"E6","Unicode dec":"129157","Unicode hex":"1F885"},{"Typeface name":"Wingdings 3","Dingbat dec":"231","Dingbat hex":"E7","Unicode dec":"129159","Unicode hex":"1F887"},{"Typeface name":"Wingdings 3","Dingbat dec":"232","Dingbat hex":"E8","Unicode dec":"129158","Unicode hex":"1F886"},{"Typeface name":"Wingdings 3","Dingbat dec":"233","Dingbat hex":"E9","Unicode dec":"129168","Unicode hex":"1F890"},{"Typeface name":"Wingdings 3","Dingbat dec":"234","Dingbat hex":"EA","Unicode dec":"129170","Unicode hex":"1F892"},{"Typeface name":"Wingdings 3","Dingbat dec":"235","Dingbat hex":"EB","Unicode dec":"129169","Unicode hex":"1F891"},{"Typeface name":"Wingdings 3","Dingbat dec":"236","Dingbat hex":"EC","Unicode dec":"129171","Unicode hex":"1F893"},{"Typeface name":"Wingdings 3","Dingbat dec":"237","Dingbat hex":"ED","Unicode dec":"129172","Unicode hex":"1F894"},{"Typeface name":"Wingdings 3","Dingbat dec":"238","Dingbat hex":"EE","Unicode dec":"129174","Unicode hex":"1F896"},{"Typeface name":"Wingdings 3","Dingbat dec":"239","Dingbat hex":"EF","Unicode dec":"129173","Unicode hex":"1F895"},{"Typeface name":"Wingdings 3","Dingbat dec":"240","Dingbat hex":"F0","Unicode dec":"129175","Unicode hex":"1F897"}];exports["default"]=dingbats},{}],85:[function(require,module,exports){"use strict";function codePoint(typeface,codePoint){return dingbatsByCodePoint[typeface.toUpperCase()+"_"+codePoint]}function dec(typeface,dec){return codePoint(typeface,parseInt(dec,10))}function hex(typeface,hex){return codePoint(typeface,parseInt(hex,16))}function fromCodePointPolyfill(codePoint){if(65535>=codePoint)return String.fromCharCode(codePoint);var highSurrogate=Math.floor((codePoint-65536)/1024)+55296,lowSurrogate=(codePoint-65536)%1024+56320;return String.fromCharCode(highSurrogate,lowSurrogate)}var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.hex=exports.dec=exports.codePoint=void 0;for(var dingbats_1=__importDefault(require("./dingbats")),dingbatsByCodePoint={},fromCodePoint=String.fromCodePoint?String.fromCodePoint:fromCodePointPolyfill,_i=0,dingbats_2=dingbats_1["default"];_i>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i];for(i+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?NaN:(s?-1:1)*(1/0);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1<>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=0>value||0===value&&0>1/value?1:0;for(value=Math.abs(value),isNaN(value)||value===1/0?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1&&(e--,c*=2),value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e<0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s; +}},{}],87:[function(require,module,exports){var toString={}.toString;module.exports=Array.isArray||function(arr){return"[object Array]"==toString.call(arr)}},{}],88:[function(require,module,exports){(function(global,Buffer){!function(t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).JSZip=t()}(function(){return function s(a,o,h){function u(r,t){if(!o[r]){if(!a[r]){var e="function"==typeof require&&require;if(!t&&e)return e(r,!0);if(l)return l(r,!0);var i=new Error("Cannot find module '"+r+"'");throw i.code="MODULE_NOT_FOUND",i}var n=o[r]={exports:{}};a[r][0].call(n.exports,function(t){var e=a[r][1][t];return u(e||t)},n,n.exports,s,a,o,h)}return o[r].exports}for(var l="function"==typeof require&&require,t=0;tu?t[u++]:0,l>u?t[u++]:0):(e=t.charCodeAt(u++),r=l>u?t.charCodeAt(u++):0,l>u?t.charCodeAt(u++):0),n=e>>2,s=(3&e)<<4|r>>4,a=f>1?(15&r)<<2|i>>6:64,o=f>2?63&i:64,h.push(p.charAt(n)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join("")},r.decode=function(t){var e,r,i,n,s,a,o=0,h=0,u="data:";if(t.substr(0,u.length)===u)throw new Error("Invalid base64 input, it looks like a data url.");var l,f=3*(t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"")).length/4;if(t.charAt(t.length-1)===p.charAt(64)&&f--,t.charAt(t.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error("Invalid base64 input, bad content length.");for(l=d.uint8array?new Uint8Array(0|f):new Array(0|f);o>4,r=(15&n)<<4|(s=p.indexOf(t.charAt(o++)))>>2,i=(3&s)<<6|(a=p.indexOf(t.charAt(o++))),l[h++]=e,64!==s&&(l[h++]=r),64!==a&&(l[h++]=i);return l}},{"./support":30,"./utils":32}],2:[function(t,e,r){"use strict";function o(t,e,r,i,n){this.compressedSize=t,this.uncompressedSize=e,this.crc32=r,this.compression=i,this.compressedContent=n}var i=t("./external"),n=t("./stream/DataWorker"),s=t("./stream/Crc32Probe"),a=t("./stream/DataLengthProbe");o.prototype={getContentWorker:function(){var t=new n(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")),e=this;return t.on("end",function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),t},getCompressedWorker:function(){return new n(i.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(t,e,r){return t.pipe(new s).pipe(new a("uncompressedSize")).pipe(e.compressWorker(r)).pipe(new a("compressedSize")).withStreamInfo("compression",e)},e.exports=o},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(t,e,r){"use strict";var i=t("./stream/GenericWorker");r.STORE={magic:"\x00\x00",compressWorker:function(t){return new i("STORE compression")},uncompressWorker:function(){return new i("STORE decompression")}},r.DEFLATE=t("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(t,e,r){"use strict";var i=t("./utils"),o=function(){for(var t,e=[],r=0;256>r;r++){t=r;for(var i=0;8>i;i++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e){return void 0!==t&&t.length?"string"!==i.getTypeOf(t)?function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;s>a;a++)t=t>>>8^n[255&(t^e[a])];return-1^t}(0|e,t,t.length,0):function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;s>a;a++)t=t>>>8^n[255&(t^e.charCodeAt(a))];return-1^t}(0|e,t,t.length,0):0}},{"./utils":32}],5:[function(t,e,r){"use strict";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(t,e,r){"use strict";var i=null;i="undefined"!=typeof Promise?Promise:t("lie"),e.exports={Promise:i}},{lie:37}],7:[function(t,e,r){"use strict";function h(t,e){a.call(this,"FlateWorker/"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}var i="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,n=t("pako"),s=t("./utils"),a=t("./stream/GenericWorker"),o=i?"uint8array":"array";r.magic="\b\x00",s.inherits(h,a),h.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,t.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new n[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},r.compressWorker=function(t){return new h("Deflate",t)},r.uncompressWorker=function(){return new h("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(t,e,r){"use strict";function A(t,e){var r,i="";for(r=0;e>r;r++)i+=String.fromCharCode(255&t),t>>>=8;return i}function i(t,e,r,i,n,s){var a,o,h=t.file,u=t.compression,l=s!==O.utf8encode,f=I.transformTo("string",s(h.name)),d=I.transformTo("string",O.utf8encode(h.name)),c=h.comment,p=I.transformTo("string",s(c)),m=I.transformTo("string",O.utf8encode(c)),_=d.length!==h.name.length,g=m.length!==c.length,b="",v="",y="",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};e&&!r||(x.crc32=t.crc32,x.compressedSize=t.compressedSize,x.uncompressedSize=t.uncompressedSize);var S=0;e&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),"UNIX"===n?(C=798,z|=function(t,e){var r=t;return t||(r=e?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(t){return 63&(t||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+d,b+="up"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+="uc"+A(y.length,2)+y);var E="";return E+="\n\x00",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+"\x00\x00\x00\x00"+A(z,4)+A(i,4)+f+b+p}}function s(t,e,r,i){n.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=r,this.encodeFileName=i,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}var I=t("../utils"),n=t("../stream/GenericWorker"),O=t("../utf8"),B=t("../crc32"),R=t("../signature");I.inherits(s,n),s.prototype.push=function(t){var e=t.meta.percent||0,r=this.entriesCount,i=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,n.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:r?(e+100*(r-i-1))/r:100}}))},s.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var r=i(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(t){this.accumulate=!1;var e=this.streamFiles&&!t.file.dir,r=i(t,e,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),e)this.push({data:function(t){return R.DATA_DESCRIPTOR+A(t.crc32,4)+A(t.compressedSize,4)+A(t.uncompressedSize,4)}(t),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e0?t.substring(0,e):""},g=function(t){return"/"!==t.slice(-1)&&(t+="/"),t},b=function(t,e){return e=void 0!==e?e:f.createFolders,t=g(t),this.files[t]||s.call(this,t,null,{dir:!0,createFolders:e}),this.files[t]},i={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(t){var e,r,i;for(e in this.files)i=this.files[e],(r=e.slice(this.root.length,e.length))&&e.slice(0,this.root.length)===this.root&&t(r,i)},filter:function(r){var i=[];return this.forEach(function(t,e){r(t,e)&&i.push(e)}),i},file:function(t,e,r){if(1!==arguments.length)return t=this.root+t,s.call(this,t,e,r),this;if(h(t)){var i=t;return this.filter(function(t,e){return!e.dir&&i.test(t)})}var n=this.files[this.root+t];return n&&!n.dir?n:null},folder:function(r){if(!r)return this;if(h(r))return this.filter(function(t,e){return e.dir&&r.test(t)});var t=this.root+r,e=b.call(this,t),i=this.clone();return i.root=e.name,i},remove:function(r){r=this.root+r;var t=this.files[r];if(t||("/"!==r.slice(-1)&&(r+="/"),t=this.files[r]),t&&!t.dir)delete this.files[r];else for(var e=this.filter(function(t,e){return e.name.slice(0,r.length)===r}),i=0;i=0;--s)if(this.data[s]===e&&this.data[s+1]===r&&this.data[s+2]===i&&this.data[s+3]===n)return s-this.zero;return-1},n.prototype.readAndCheckSignature=function(t){var e=t.charCodeAt(0),r=t.charCodeAt(1),i=t.charCodeAt(2),n=t.charCodeAt(3),s=this.readData(4);return e===s[0]&&r===s[1]&&i===s[2]&&n===s[3]},n.prototype.readData=function(t){if(this.checkOffset(t),0===t)return[];var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{"../utils":32,"./DataReader":18}],18:[function(t,e,r){"use strict";function n(t){this.data=t,this.length=t.length,this.index=0,this.zero=0}var i=t("../utils");n.prototype={checkOffset:function(t){this.checkIndex(this.index+t)},checkIndex:function(t){if(this.lengtht)throw new Error("End of data reached (data length = "+this.length+", asked index = "+t+"). Corrupted zip ?")},setIndex:function(t){this.checkIndex(t),this.index=t},skip:function(t){this.setIndex(this.index+t)},byteAt:function(t){},readInt:function(t){var e,r=0;for(this.checkOffset(t),e=this.index+t-1;e>=this.index;e--)r=(r<<8)+this.byteAt(e);return this.index+=t,r},readString:function(t){return i.transformTo("string",this.readData(t))},readData:function(t){},lastIndexOfSignature:function(t){},readAndCheckSignature:function(t){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}},e.exports=n},{"../utils":32}],19:[function(t,e,r){"use strict";function n(t){i.call(this,t)}var i=t("./Uint8ArrayReader");t("../utils").inherits(n,i),n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(t,e,r){"use strict";function n(t){i.call(this,t)}var i=t("./DataReader");t("../utils").inherits(n,i),n.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},n.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},n.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{"../utils":32,"./DataReader":18}],21:[function(t,e,r){"use strict";function n(t){i.call(this,t)}var i=t("./ArrayReader");t("../utils").inherits(n,i),n.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{"../utils":32,"./ArrayReader":17}],22:[function(t,e,r){"use strict";var i=t("../utils"),n=t("../support"),s=t("./ArrayReader"),a=t("./StringReader"),o=t("./NodeBufferReader"),h=t("./Uint8ArrayReader");e.exports=function(t){var e=i.getTypeOf(t);return i.checkSupport(e),"string"!==e||n.uint8array?"nodebuffer"===e?new o(t):n.uint8array?new h(i.transformTo("uint8array",t)):new s(i.transformTo("array",t)):new a(t)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(t,e,r){"use strict";r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\b"},{}],24:[function(t,e,r){"use strict";function s(t){i.call(this,"ConvertWorker to "+t),this.destType=t}var i=t("./GenericWorker"),n=t("../utils");n.inherits(s,i),s.prototype.processChunk=function(t){this.push({data:n.transformTo(this.destType,t.data),meta:t.meta})},e.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(t,e,r){"use strict";function s(){i.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}var i=t("./GenericWorker"),n=t("../crc32");t("../utils").inherits(s,i),s.prototype.processChunk=function(t){this.streamInfo.crc32=n(t.data,this.streamInfo.crc32||0),this.push(t)},e.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(t,e,r){"use strict";function s(t){n.call(this,"DataLengthProbe for "+t),this.propName=t,this.withStreamInfo(t,0)}var i=t("../utils"),n=t("./GenericWorker");i.inherits(s,n),s.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}n.prototype.processChunk.call(this,t)},e.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(t,e,r){"use strict";function s(t){n.call(this,"DataWorker");var e=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,t.then(function(t){e.dataIsReady=!0,e.data=t,e.max=t&&t.length||0,e.type=i.getTypeOf(t),e.isPaused||e._tickAndRepeat()},function(t){e.error(t)})}var i=t("../utils"),n=t("./GenericWorker");i.inherits(s,n),s.prototype.cleanUp=function(){n.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,i.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(i.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var t=null,e=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":t=this.data.substring(this.index,e);break;case"uint8array":t=this.data.subarray(this.index,e);break;case"array":case"nodebuffer":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})},e.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(t,e,r){"use strict";function i(t){this.name=t||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}i.prototype={push:function(t){this.emit("data",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit("error",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit("error",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,e){return this._listeners[t].push(e),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,e){if(this._listeners[t])for(var r=0;r "+t:t}},e.exports=i},{}],29:[function(t,e,r){"use strict";function l(t,o){return new a.Promise(function(e,r){var i=[],n=t._internalType,s=t._outputType,a=t._mimeType;t.on("data",function(t,e){i.push(t),o&&o(e)}).on("error",function(t){i=[],r(t)}).on("end",function(){try{var t=function(t,e,r){switch(t){case"blob":return h.newBlob(h.transformTo("arraybuffer",e),r);case"base64":return u.encode(e);default:return h.transformTo(t,e)}}(s,function(t,e){var r,i=0,n=null,s=0;for(r=0;rn;n++)u[n]=n>=252?6:n>=248?5:n>=240?4:n>=224?3:n>=192?2:1;u[254]=u[254]=1,s.utf8encode=function(t){return h.nodebuffer?r.newBufferFrom(t,"utf-8"):function(t){var e,r,i,n,s,a=t.length,o=0;for(n=0;a>n;n++)55296==(64512&(r=t.charCodeAt(n)))&&a>n+1&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),o+=128>r?1:2048>r?2:65536>r?3:4;for(e=h.uint8array?new Uint8Array(o):new Array(o),n=s=0;o>s;n++)55296==(64512&(r=t.charCodeAt(n)))&&a>n+1&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),128>r?e[s++]=r:(2048>r?e[s++]=192|r>>>6:(65536>r?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e}(t)},s.utf8decode=function(t){return h.nodebuffer?o.transformTo("nodebuffer",t).toString("utf-8"):function(t){var e,r,i,n,s=t.length,a=new Array(2*s);for(e=r=0;s>e;)if((i=t[e++])<128)a[r++]=i;else if(4<(n=u[i]))a[r++]=65533,e+=n-1;else{for(i&=2===n?31:3===n?15:7;n>1&&s>e;)i=i<<6|63&t[e++],n--;n>1?a[r++]=65533:65536>i?a[r++]=i:(i-=65536,a[r++]=55296|i>>10&1023,a[r++]=56320|1023&i)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(t=o.transformTo(h.uint8array?"uint8array":"array",t))},o.inherits(a,i),a.prototype.processChunk=function(t){var e=o.transformTo(h.uint8array?"uint8array":"array",t.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=e;(e=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),e.set(r,this.leftOver.length)}else e=this.leftOver.concat(e);this.leftOver=null}var i=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;r>=0&&128==(192&t[r]);)r--;return 0>r?e:0===r?e:r+u[t[r]]>e?r:e}(e),n=e;i!==e.length&&(h.uint8array?(n=e.subarray(0,i),this.leftOver=e.subarray(i,e.length)):(n=e.slice(0,i),this.leftOver=e.slice(i,e.length))),this.push({data:s.utf8decode(n),meta:t.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,i),l.prototype.processChunk=function(t){this.push({data:s.utf8encode(t.data),meta:t.meta})},s.Utf8EncodeWorker=l},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(t,e,a){"use strict";function n(t){return t}function l(t,e){for(var r=0;r1;)try{return s.stringifyByChunk(t,r,e)}catch(t){e=Math.floor(e/2)}return s.stringifyByChar(t)}function d(t,e){for(var r=0;r=s)return String.fromCharCode.apply(null,t);for(;s>n;)"array"===e||"nodebuffer"===e?i.push(String.fromCharCode.apply(null,t.slice(n,Math.min(n+r,s)))):i.push(String.fromCharCode.apply(null,t.subarray(n,Math.min(n+r,s)))),n+=r;return i.join("")},stringifyByChar:function(t){for(var e="",r=0;r0;)t=this.reader.readInt(2),e=this.reader.readInt(4),r=this.reader.readData(e),this.zip64ExtensibleData[t]={id:t,length:e,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1t)throw this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(t);var e=t;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===n.MAX_VALUE_16BITS||this.diskWithCentralDirStart===n.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===n.MAX_VALUE_16BITS||this.centralDirRecords===n.MAX_VALUE_16BITS||this.centralDirSize===n.MAX_VALUE_32BITS||this.centralDirOffset===n.MAX_VALUE_32BITS){if(this.zip64=!0,(t=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(t),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var i=e-r;if(i>0)this.isSignature(e,s.CENTRAL_FILE_HEADER)||(this.reader.zero=i);else if(0>i)throw new Error("Corrupted zip: missing "+Math.abs(i)+" bytes.")},prepareReader:function(t){this.reader=i(t)},load:function(t){this.prepareReader(t),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},e.exports=h},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(t,e,r){"use strict";function l(t,e){this.options=t,this.loadOptions=e}var i=t("./reader/readerFor"),s=t("./utils"),n=t("./compressedObject"),a=t("./crc32"),o=t("./utf8"),h=t("./compressions"),u=t("./support");l.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(t){var e,r;if(t.skip(22),this.fileNameLength=t.readInt(2),r=t.readInt(2),this.fileName=t.readData(this.fileNameLength),t.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(null===(e=function(t){for(var e in h)if(h.hasOwnProperty(e)&&h[e].magic===t)return h[e];return null}(this.compressionMethod)))throw new Error("Corrupted zip : compression "+s.pretty(this.compressionMethod)+" unknown (inner file : "+s.transformTo("string",this.fileName)+")");this.decompressed=new n(this.compressedSize,this.uncompressedSize,this.crc32,e,t.readData(this.compressedSize))},readCentralPart:function(t){this.versionMadeBy=t.readInt(2),t.skip(2),this.bitFlag=t.readInt(2),this.compressionMethod=t.readString(2),this.date=t.readDate(),this.crc32=t.readInt(4),this.compressedSize=t.readInt(4),this.uncompressedSize=t.readInt(4);var e=t.readInt(2);if(this.extraFieldsLength=t.readInt(2),this.fileCommentLength=t.readInt(2),this.diskNumberStart=t.readInt(2),this.internalFileAttributes=t.readInt(2),this.externalFileAttributes=t.readInt(4),this.localHeaderOffset=t.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");t.skip(e),this.readExtraFields(t),this.parseZIP64ExtraField(t),this.fileComment=t.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var t=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==t&&(this.dosPermissions=63&this.externalFileAttributes),3==t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(t){if(this.extraFields[1]){var e=i(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(t){var e,r,i,n=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+4s;s++)t[n+s]=e[r+s]},flattenChunks:function(t){var e,r,i,n,s,a;for(e=i=0,r=t.length;r>e;e++)i+=t[e].length;for(a=new Uint8Array(i),e=n=0,r=t.length;r>e;e++)s=t[e],a.set(s,n),n+=s.length;return a}},s={arraySet:function(t,e,r,i,n){for(var s=0;i>s;s++)t[n+s]=e[r+s]},flattenChunks:function(t){return[].concat.apply([],t)}};r.setTyped=function(t){t?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,n)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s))},r.setTyped(i)},{}],42:[function(t,e,r){"use strict";function l(t,e){if(65537>e&&(t.subarray&&s||!t.subarray&&n))return String.fromCharCode.apply(null,h.shrinkBuf(t,e));for(var r="",i=0;e>i;i++)r+=String.fromCharCode(t[i]);return r}var h=t("./common"),n=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(t){n=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){s=!1}for(var u=new h.Buf8(256),i=0;256>i;i++)u[i]=i>=252?6:i>=248?5:i>=240?4:i>=224?3:i>=192?2:1;u[254]=u[254]=1,r.string2buf=function(t){var e,r,i,n,s,a=t.length,o=0;for(n=0;a>n;n++)55296==(64512&(r=t.charCodeAt(n)))&&a>n+1&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),o+=128>r?1:2048>r?2:65536>r?3:4;for(e=new h.Buf8(o),n=s=0;o>s;n++)55296==(64512&(r=t.charCodeAt(n)))&&a>n+1&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),128>r?e[s++]=r:(2048>r?e[s++]=192|r>>>6:(65536>r?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e},r.buf2binstring=function(t){return l(t,t.length)},r.binstring2buf=function(t){for(var e=new h.Buf8(t.length),r=0,i=e.length;i>r;r++)e[r]=t.charCodeAt(r);return e},r.buf2string=function(t,e){var r,i,n,s,a=e||t.length,o=new Array(2*a);for(r=i=0;a>r;)if((n=t[r++])<128)o[i++]=n;else if(4<(s=u[n]))o[i++]=65533,r+=s-1;else{for(n&=2===s?31:3===s?15:7;s>1&&a>r;)n=n<<6|63&t[r++],s--;s>1?o[i++]=65533:65536>n?o[i++]=n:(n-=65536,o[i++]=55296|n>>10&1023,o[i++]=56320|1023&n)}return l(o,i)},r.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;r>=0&&128==(192&t[r]);)r--;return 0>r?e:0===r?e:r+u[t[r]]>e?r:e}},{"./common":41}],43:[function(t,e,r){"use strict";e.exports=function(t,e,r,i){for(var n=65535&t|0,s=t>>>16&65535|0,a=0;0!==r;){for(r-=a=r>2e3?2e3:r;s=s+(n=n+e[i++]|0)|0,--a;);n%=65521,s%=65521}return n|s<<16|0}},{}],44:[function(t,e,r){"use strict";e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(t,e,r){"use strict";var o=function(){for(var t,e=[],r=0;256>r;r++){t=r;for(var i=0;8>i;i++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;s>a;a++)t=t>>>8^n[255&(t^e[a])];return-1^t}},{}],46:[function(t,e,r){"use strict";function R(t,e){return t.msg=i[e],e}function T(t){return(t<<1)-(t>4?9:0)}function D(t){for(var e=t.length;0<=--e;)t[e]=0}function F(t){var e=t.state,r=e.pending;r>t.avail_out&&(r=t.avail_out),0!==r&&(d.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function N(t,e){u._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,F(t.strm)}function U(t,e){t.pending_buf[t.pending++]=e}function P(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function L(t,e){var r,i,n=t.max_chain_length,s=t.strstart,a=t.prev_length,o=t.nice_match,h=t.strstart>t.w_size-z?t.strstart-(t.w_size-z):0,u=t.window,l=t.w_mask,f=t.prev,d=t.strstart+S,c=u[s+a-1],p=u[s+a];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do if(u[(r=e)+a]===p&&u[r+a-1]===c&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do;while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&d>s);if(i=S-(d-s),s=d-S,i>a){if(t.match_start=e,o<=(a=i))break;c=u[s+a-1],p=u[s+a]}}while((e=f[e&l])>h&&0!=--n);return a<=t.lookahead?a:t.lookahead}function j(t){var e,r,i,n,s,a,o,h,u,l,f=t.w_size;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=f+(f-z)){for(d.arraySet(t.window,t.window,f,f,0),t.match_start-=f,t.strstart-=f,t.block_start-=f,e=r=t.hash_size;i=t.head[--e],t.head[e]=i>=f?i-f:0,--r;);for(e=r=f;i=t.prev[--e],t.prev[e]=i>=f?i-f:0,--r;);n+=f}if(0===t.strm.avail_in)break;if(a=t.strm,o=t.window,h=t.strstart+t.lookahead,u=n,l=void 0,l=a.avail_in,l>u&&(l=u),r=0===l?0:(a.avail_in-=l,d.arraySet(o,a.input,a.next_in,l,h),1===a.state.wrap?a.adler=c(a.adler,o,l,h):2===a.state.wrap&&(a.adler=p(a.adler,o,l,h)),a.next_in+=l,a.total_in+=l,l),t.lookahead+=r,t.lookahead+t.insert>=x)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=(t.ins_h<=x&&(t.ins_h=(t.ins_h<=x)if(i=u._tr_tally(t,t.strstart-t.match_start,t.match_length-x),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=x){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<=x&&(t.ins_h=(t.ins_h<=x&&t.match_length<=t.prev_length){for(n=t.strstart+t.lookahead-x,i=u._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-x),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=n&&(t.ins_h=(t.ins_h<i?(a=0,i=-i):i>15&&(a=2,i-=16),1>n||n>y||r!==v||8>i||i>15||0>e||e>9||0>s||s>b)return R(t,_);8===i&&(i=9);var o=new H;return(t.state=o).strm=t,o.wrap=a,o.gzhead=null,o.w_bits=i,o.w_size=1<t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(j(t),0===t.lookahead&&e===l)return A;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+r;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,N(t,!1),0===t.strm.avail_out))return A;if(t.strstart-t.block_start>=t.w_size-z&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):(t.strstart>t.block_start&&(N(t,!1),t.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(t,e){return Y(t,e,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?_:(t.state.gzhead=e,m):_},r.deflate=function(t,e){var r,i,n,s;if(!t||!t.state||e>5||0>e)return t?R(t,_):_;if(i=t.state,!t.output||!t.input&&0!==t.avail_in||666===i.status&&e!==f)return R(t,0===t.avail_out?-5:_);if(i.strm=t,r=i.last_flush,i.last_flush=e,i.status===C)if(2===i.wrap)t.adler=0,U(i,31),U(i,139),U(i,8),i.gzhead?(U(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),U(i,255&i.gzhead.time),U(i,i.gzhead.time>>8&255),U(i,i.gzhead.time>>16&255),U(i,i.gzhead.time>>24&255),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(U(i,255&i.gzhead.extra.length),U(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=p(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(U(i,0),U(i,0),U(i,0),U(i,0),U(i,0),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,3),i.status=E);else{var a=v+(i.w_bits-8<<4)<<8;a|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(a|=32),a+=31-a%31,i.status=E,P(i,a),0!==i.strstart&&(P(i,t.adler>>>16),P(i,65535&t.adler)),t.adler=1}if(69===i.status)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending!==i.pending_buf_size));)U(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindexn&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindexn&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&F(t),i.pending+2<=i.pending_buf_size&&(U(i,255&t.adler),U(i,t.adler>>8&255),t.adler=0,i.status=E)):i.status=E),0!==i.pending){if(F(t),0===t.avail_out)return i.last_flush=-1,m}else if(0===t.avail_in&&T(e)<=T(r)&&e!==f)return R(t,-5);if(666===i.status&&0!==t.avail_in)return R(t,-5);if(0!==t.avail_in||0!==i.lookahead||e!==l&&666!==i.status){var o=2===i.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(j(t),0===t.lookahead)){if(e===l)return A;break}if(t.match_length=0,r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):3===i.strategy?function(t,e){for(var r,i,n,s,a=t.window;;){if(t.lookahead<=S){if(j(t),t.lookahead<=S&&e===l)return A;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=x&&0n);t.match_length=S-(s-n),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=x?(r=u._tr_tally(t,1,t.match_length-x),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):h[i.level].func(i,e);if(o!==O&&o!==B||(i.status=666),o===A||o===O)return 0===t.avail_out&&(i.last_flush=-1),m;if(o===I&&(1===e?u._tr_align(i):5!==e&&(u._tr_stored_block(i,0,0,!1),3===e&&(D(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),F(t),0===t.avail_out))return i.last_flush=-1,m}return e!==f?m:i.wrap<=0?1:(2===i.wrap?(U(i,255&t.adler),U(i,t.adler>>8&255),U(i,t.adler>>16&255),U(i,t.adler>>24&255),U(i,255&t.total_in),U(i,t.total_in>>8&255),U(i,t.total_in>>16&255),U(i,t.total_in>>24&255)):(P(i,t.adler>>>16),P(i,65535&t.adler)),F(t),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new d.Buf8(r.w_size),d.arraySet(u,e,l-r.w_size,r.w_size,0),e=u,l=r.w_size),a=t.avail_in,o=t.next_in,h=t.input,t.avail_in=l,t.next_in=0,t.input=e,j(r);r.lookahead>=x;){for(i=r.strstart,n=r.lookahead-(x-1);r.ins_h=(r.ins_h<p&&(c+=z[i++]<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(c&(1<p&&(c+=z[i++]<>>=y,p-=y),15>p&&(c+=z[i++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(c&(1<>>=y,p-=y,(y=s-a)y){for(w-=y;C[s++]=d[x++],--y;);x=s-k,S=C}}else if(y>f){if(x+=u+f-y,(y-=f)f){for(w-=y=f;C[s++]=d[x++],--y;);x=s-k,S=C}}}else if(x+=f-y,w>y){for(w-=y;C[s++]=d[x++],--y;);x=s-k,S=C}for(;w>2;)C[s++]=S[x++],C[s++]=S[x++],C[s++]=S[x++],w-=3;w&&(C[s++]=S[x++],w>1&&(C[s++]=S[x++]))}else{for(x=s-k;C[s++]=C[x++],C[s++]=C[x++],C[s++]=C[x++],2<(w-=3););w&&(C[s++]=C[x++],w>1&&(C[s++]=C[x++]))}break}}break}}while(n>i&&o>s);i-=w=p>>3,c&=(1<<(p-=w<<3))-1,t.next_in=i,t.next_out=s,t.avail_in=n>i?n-i+5:5-(i-n),t.avail_out=o>s?o-s+257:257-(s-o),r.hold=c,r.bits=p}},{}],49:[function(t,e,r){"use strict";function L(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=P,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new I.Buf32(i),e.distcode=e.distdyn=new I.Buf32(n),e.sane=1,e.back=-1,N):U}function o(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,a(t)):U}function h(t,e){var r,i;return t&&t.state?(i=t.state,0>e?(r=0,e=-e):(r=1+(e>>4),48>e&&(e&=15)),e&&(8>e||e>15)?U:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=r,i.wbits=e,o(t))):U}function u(t,e){var r,i;return t?(i=new s,(t.state=i).window=null,(r=h(t,e))!==N&&(t.state=null),r):U}function j(t){if(d){var e;for(l=new I.Buf32(512),f=new I.Buf32(32),e=0;144>e;)t.lens[e++]=8;for(;256>e;)t.lens[e++]=9;for(;280>e;)t.lens[e++]=7;for(;288>e;)t.lens[e++]=8;for(T(D,t.lens,0,288,l,0,t.work,{bits:9}),e=0;32>e;)t.lens[e++]=5;T(F,t.lens,0,32,f,0,t.work,{bits:5}),d=!1}t.lencode=l,t.lenbits=9,t.distcode=f,t.distbits=5}function Z(t,e,r,i){var n,s=t.state;return null===s.window&&(s.wsize=1<=s.wsize?(I.arraySet(s.window,e,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(i<(n=s.wsize-s.wnext)&&(n=i),I.arraySet(s.window,e,r-i,n,s.wnext),(i-=n)?(I.arraySet(s.window,e,r-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whavel;){if(0===o)break t;o--,u+=i[s++]<>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){t.msg="incorrect header check",r.mode=30;break}if(8!=(15&u)){t.msg="unknown compression method",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){t.msg="invalid window size",r.mode=30;break}r.dmax=1<l;){if(0===o)break t;o--,u+=i[s++]<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;32>l;){if(0===o)break t;o--,u+=i[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;16>l;){if(0===o)break t;o--,u+=i[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;16>l;){if(0===o)break t;o--,u+=i[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(c=r.length)&&(c=o),c&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,i,s,c,k)),512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,r.length-=c),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break t;for(c=0;k=i[s+c++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&o>c;);if(512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,k)break t}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===o)break t;for(c=0;k=i[s+c++],r.head&&k&&r.length<65536&&(r.head.comment+=String.fromCharCode(k)),k&&o>c;);if(512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,k)break t}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;16>l;){if(0===o)break t;o--,u+=i[s++]<>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=12;break;case 10:for(;32>l;){if(0===o)break t;o--,u+=i[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;3>l;){if(0===o)break t;o--,u+=i[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==e)break;u>>>=2,l-=2;break t;case 2:r.mode=17;break;case 3:t.msg="invalid block type",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;32>l;){if(0===o)break t;o--,u+=i[s++]<>>16^65535)){t.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(c=r.length){if(c>o&&(c=o),c>h&&(c=h),0===c)break t;I.arraySet(n,i,s,c,a),o-=c,s+=c,h-=c,a+=c,r.length-=c;break}r.mode=12;break;case 17:for(;14>l;){if(0===o)break t;o--,u+=i[s++]<>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286l;){if(0===o)break t;o--,u+=i[s++]<>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<b)u>>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;z>l;){if(0===o)break t;o--,u+=i[s++]<>>=_,l-=_,0===r.have){t.msg="invalid bit length repeat",r.mode=30;break}k=r.lens[r.have-1],c=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;z>l;){if(0===o)break t;o--,u+=i[s++]<>>=_)),u>>>=3,l-=3}else{for(z=_+7;z>l;){if(0===o)break t;o--,u+=i[s++]<>>=_)),u>>>=7,l-=7}if(r.have+c>r.nlen+r.ndist){t.msg="invalid bit length repeat",r.mode=30;break}for(;c--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){t.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){t.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(o>=6&&h>=258){t.next_out=a,t.avail_out=h,t.next_in=s,t.avail_in=o,r.hold=u,r.bits=l,R(t,d),a=t.next_out,n=t.output,h=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){t.msg="invalid literal/length code",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;z>l;){if(0===o)break t;o--,u+=i[s++]<>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){t.msg="invalid distance code",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;z>l;){if(0===o)break t;o--,u+=i[s++]<>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===h)break t;if(c=d-h,r.offset>c){if((c=r.offset-c)>r.whave&&r.sane){t.msg="invalid distance too far back",r.mode=30;break}p=c>r.wnext?(c-=r.wnext,r.wsize-c):r.wnext-c,c>r.length&&(c=r.length),m=r.window}else m=n,p=a-r.offset,c=r.length;for(c>h&&(c=h),h-=c,r.length-=c;n[a++]=m[p++],--c;);0===r.length&&(r.mode=21);break;case 26:if(0===h)break t;n[a++]=r.length,h--,r.mode=21;break;case 27:if(r.wrap){for(;32>l;){if(0===o)break t;o--,u|=i[s++]<l;){if(0===o)break t;o--,u+=i[s++]<=b;b++)O[b]=0;for(v=0;i>v;v++)O[e[r+v]]++;for(k=g,w=15;w>=1&&0===O[w];w--);if(k>w&&(k=w),0===w)return n[s++]=20971520,n[s++]=20971520,o.bits=1,0;for(y=1;w>y&&0===O[y];y++);for(y>k&&(k=y),b=z=1;15>=b;b++)if(z<<=1,(z-=O[b])<0)return-1;if(z>0&&(0===t||1!==w))return-1;for(B[1]=0,b=1;15>b;b++)B[b+1]=B[b]+O[b];for(v=0;i>v;v++)0!==e[r+v]&&(a[B[e[r+v]]++]=v);if(c=0===t?(A=R=a,19):1===t?(A=F,I-=257,R=N,T-=257,256):(A=U,R=P,-1),b=y,d=s,S=v=E=0,l=-1,f=(C=1<<(x=k))-1,1===t&&C>852||2===t&&C>592)return 1;for(;;){for(p=b-S,_=a[v]c?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=e[r+a[v]]}if(b>k&&(E&f)!==l){for(0===S&&(S=k),d+=y,z=1<<(x=b-S);w>x+S&&!((z-=O[x+S])<=0);)x++,z<<=1;if(C+=1<852||2===t&&C>592)return 1;n[l=E&f]=k<<24|x<<16|d-s|0}}return 0!==E&&(n[d+E]=b-S<<24|64<<16|0),o.bits=k,0}},{"../utils/common":41}],51:[function(t,e,r){"use strict";e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(t,e,r){"use strict";function i(t){for(var e=t.length;0<=--e;)t[e]=0}function D(t,e,r,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=r,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}function F(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function N(t){return 256>t?E[t]:E[256+(t>>>7)]}function U(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function P(t,e,r){t.bi_valid>c-r?(t.bi_buf|=e<>c-t.bi_valid,t.bi_valid+=r-c):(t.bi_buf|=e<>>=1,r<<=1,0<--e;);return r>>>1}function Z(t,e,r){var i,n,s=new Array(g+1),a=0;for(i=1;g>=i;i++)s[i]=a=a+r[i-1]<<1;for(n=0;e>=n;n++){var o=t[2*n+1];0!==o&&(t[2*n]=j(s[o]++,o))}}function W(t){var e;for(e=0;l>e;e++)t.dyn_ltree[2*e]=0;for(e=0;f>e;e++)t.dyn_dtree[2*e]=0;for(e=0;d>e;e++)t.bl_tree[2*e]=0;t.dyn_ltree[2*m]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function M(t){8r;r++)0!==s[2*r]?(t.heap[++t.heap_len]=u=r,t.depth[r]=0):s[2*r+1]=0;for(;t.heap_len<2;)s[2*(n=t.heap[++t.heap_len]=2>u?++u:0)]=1,t.depth[n]=0,t.opt_len--,o&&(t.static_len-=a[2*n+1]);for(e.max_code=u,r=t.heap_len>>1;r>=1;r--)G(t,s,r);for(n=h;r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],G(t,s,1),i=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=i,s[2*n]=s[2*r]+s[2*i],t.depth[n]=(t.depth[r]>=t.depth[i]?t.depth[r]:t.depth[i])+1,s[2*r+1]=s[2*i+1]=n,t.heap[1]=n++,G(t,s,1),2<=t.heap_len;);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,i,n,s,a,o,h=e.dyn_tree,u=e.max_code,l=e.stat_desc.static_tree,f=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,p=e.stat_desc.max_length,m=0;for(s=0;g>=s;s++)t.bl_count[s]=0;for(h[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;_>r;r++)p<(s=h[2*h[2*(i=t.heap[r])+1]+1]+1)&&(s=p,m++),h[2*i+1]=s,i>u||(t.bl_count[s]++,a=0,i>=c&&(a=d[i-c]),o=h[2*i],t.opt_len+=o*(s+a),f&&(t.static_len+=o*(l[2*i+1]+a)));if(0!==m){do{for(s=p-1;0===t.bl_count[s];)s--;t.bl_count[s]--,t.bl_count[s+1]+=2,t.bl_count[p]--,m-=2}while(m>0);for(s=p;0!==s;s--)for(i=t.bl_count[s];0!==i;)u<(n=t.heap[--r])||(h[2*n+1]!==s&&(t.opt_len+=(s-h[2*n+1])*h[2*n],h[2*n+1]=s),i--)}}(t,e),Z(s,u,t.bl_count)}function X(t,e,r){var i,n,s=-1,a=e[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),e[2*(r+1)+1]=65535,i=0;r>=i;i++)n=a,a=e[2*(i+1)+1],++oo?t.bl_tree[2*n]+=o:0!==n?(n!==s&&t.bl_tree[2*n]++,t.bl_tree[2*b]++):10>=o?t.bl_tree[2*v]++:t.bl_tree[2*y]++,s=n,u=(o=0)===a?(h=138,3):n===a?(h=6,3):(h=7,4))}function V(t,e,r){var i,n,s=-1,a=e[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),i=0;r>=i;i++)if(n=a,a=e[2*(i+1)+1],!(++oo)for(;L(t,n,t.bl_tree),0!=--o;);else 0!==n?(n!==s&&(L(t,n,t.bl_tree),o--),L(t,b,t.bl_tree),P(t,o-3,2)):10>=o?(L(t,v,t.bl_tree),P(t,o-3,3)):(L(t,y,t.bl_tree),P(t,o-11,7));s=n,u=(o=0)===a?(h=138,3):n===a?(h=6,3):(h=7,4)}}function J(t,e,r,i){P(t,(s<<1)+(i?1:0),3),function(t,e,r,i){M(t),i&&(U(t,r),U(t,~r)),n.arraySet(t.pending_buf,t.window,e,r,t.pending),t.pending+=r}(t,e,r,!0)}var n=t("../utils/common"),o=0,h=1,s=0,a=29,u=256,l=u+1+a,f=30,d=19,_=2*l+1,g=15,c=16,p=7,m=256,b=16,v=17,y=18,w=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],k=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],x=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],S=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],z=new Array(2*(l+2));i(z);var C=new Array(2*f);i(C);var E=new Array(512);i(E);var A=new Array(256);i(A);var I=new Array(a);i(I);var O,B,R,T=new Array(f);i(T);var q=!1;r._tr_init=function(t){q||(function(){var t,e,r,i,n,s=new Array(g+1);for(i=r=0;a-1>i;i++)for(I[i]=r,t=0;t<1<i;i++)for(T[i]=n,t=0;t<1<>=7;f>i;i++)for(T[i]=n<<7,t=0;t<1<=e;e++)s[e]=0;for(t=0;143>=t;)z[2*t+1]=8,t++,s[8]++;for(;255>=t;)z[2*t+1]=9,t++,s[9]++;for(;279>=t;)z[2*t+1]=7,t++,s[7]++;for(;287>=t;)z[2*t+1]=8,t++,s[8]++;for(Z(z,l+1,s),t=0;f>t;t++)C[2*t+1]=5,C[2*t]=j(t,5);O=new D(z,w,u+1,l,g),B=new D(C,k,0,f,g),R=new D(new Array(0),x,0,d,p)}(),q=!0),t.l_desc=new F(t.dyn_ltree,O),t.d_desc=new F(t.dyn_dtree,B),t.bl_desc=new F(t.bl_tree,R),t.bi_buf=0,t.bi_valid=0,W(t)},r._tr_stored_block=J,r._tr_flush_block=function(t,e,r,i){var n,s,a=0;0=e;e++,r>>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return o;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return h;for(e=32;u>e;e++)if(0!==t.dyn_ltree[2*e])return h;return o}(t)),Y(t,t.l_desc),Y(t,t.d_desc),a=function(t){var e;for(X(t,t.dyn_ltree,t.l_desc.max_code),X(t,t.dyn_dtree,t.d_desc.max_code),Y(t,t.bl_desc),e=d-1;e>=3&&0===t.bl_tree[2*S[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),n=t.opt_len+3+7>>>3,(s=t.static_len+3+7>>>3)<=n&&(n=s)):n=s=r+5,n>=r+4&&-1!==e?J(t,e,r,i):4===t.strategy||s===n?(P(t,2+(i?1:0),3),K(t,z,C)):(P(t,4+(i?1:0),3),function(t,e,r,i){var n;for(P(t,e-257,5),P(t,r-1,5),P(t,i-4,4),n=0;i>n;n++)P(t,t.bl_tree[2*S[n]+1],3);V(t,t.dyn_ltree,e-1),V(t,t.dyn_dtree,r-1)}(t,t.l_desc.max_code+1,t.d_desc.max_code+1,a+1),K(t,t.dyn_ltree,t.dyn_dtree)),W(t),i&&M(t)},r._tr_tally=function(t,e,r){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*(A[r]+u+1)]++,t.dyn_dtree[2*N(e)]++),t.last_lit===t.lit_bufsize-1},r._tr_align=function(t){P(t,2,3),L(t,m,z),function(t){16===t.bi_valid?(U(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):8<=t.bi_valid&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},{"../utils/common":41}],53:[function(t,e,r){"use strict";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,e,r){"use strict";e.exports="function"==typeof setImmediate?setImmediate:function(){var t=[].slice.apply(arguments);t.splice(1,0,0),setTimeout.apply(null,t)}},{}]},{},[10])(10)})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},require("buffer").Buffer)},{buffer:83}],89:[function(require,module,exports){exports.Parser=require("./lib/parser").Parser,exports.rules=require("./lib/rules"),exports.errors=require("./lib/errors"),exports.results=require("./lib/parsing-results"),exports.StringSource=require("./lib/StringSource"),exports.Token=require("./lib/Token"),exports.bottomUp=require("./lib/bottom-up"),exports.RegexTokeniser=require("./lib/regex-tokeniser").RegexTokeniser, +exports.rule=function(ruleBuilder){var rule;return function(input){return rule||(rule=ruleBuilder()),rule(input)}}},{"./lib/StringSource":90,"./lib/Token":91,"./lib/bottom-up":93,"./lib/errors":94,"./lib/parser":96,"./lib/parsing-results":97,"./lib/regex-tokeniser":98,"./lib/rules":99}],90:[function(require,module,exports){var util=require("util"),StringSourceRange=(module.exports=function(string,description){var self={asString:function(){return string},range:function(startIndex,endIndex){return new StringSourceRange(string,description,startIndex,endIndex)}};return self},function(string,description,startIndex,endIndex){this._string=string,this._description=description,this._startIndex=startIndex,this._endIndex=endIndex});StringSourceRange.prototype.to=function(otherRange){return new StringSourceRange(this._string,this._description,this._startIndex,otherRange._endIndex)},StringSourceRange.prototype.describe=function(){var position=this._position(),description=this._description?this._description+"\n":"";return util.format("%sLine number: %s\nCharacter number: %s",description,position.lineNumber,position.characterNumber)},StringSourceRange.prototype.lineNumber=function(){return this._position().lineNumber},StringSourceRange.prototype.characterNumber=function(){return this._position().characterNumber},StringSourceRange.prototype._position=function(){for(var self=this,index=0,nextNewLine=function(){return self._string.indexOf("\n",index)},lineNumber=1;-1!==nextNewLine()&&nextNewLine()startIndex){var value=result[1],token=new Token(rules[i].name,value,source.range(startIndex,endIndex));return{token:token,endIndex:endIndex}}}}var endIndex=startIndex+1,token=new Token("unrecognisedCharacter",string.substring(startIndex,endIndex),source.range(startIndex,endIndex));return{token:token,endIndex:endIndex}}function endToken(input,source){return new Token("end",null,source.range(input.length,input.length))}return rules=rules.map(function(rule){return{name:rule.name,regex:new RegExp(rule.regex.source,"g")}}),{tokenise:tokenise}}var Token=require("./Token"),StringSource=require("./StringSource");exports.RegexTokeniser=RegexTokeniser},{"./StringSource":90,"./Token":91}],99:[function(require,module,exports){function noOpRule(input){return results.success(null,input)}function describeTokenMismatch(input,expected){var error,token=input.head();return error=token?errors.error({expected:expected,actual:describeToken(token),location:token.source}):errors.error({expected:expected,actual:"end of tokens"}),results.failure([error],input)}var _=require("underscore"),options=require("option"),results=require("./parsing-results"),errors=require("./errors"),lazyIterators=require("./lazy-iterators");exports.token=function(tokenType,value){var matchValue=void 0!==value;return function(input){var token=input.head();if(!token||token.name!==tokenType||matchValue&&token.value!==value){var expected=describeToken({name:tokenType,value:value});return describeTokenMismatch(input,expected)}return results.success(token.value,input.tail(),token.source)}},exports.tokenOfType=function(tokenType){return exports.token(tokenType)},exports.firstOf=function(name,parsers){return _.isArray(parsers)||(parsers=Array.prototype.slice.call(arguments,1)),function(input){return lazyIterators.fromArray(parsers).map(function(parser){return parser(input)}).filter(function(result){return result.isSuccess()||result.isError()}).first()||describeTokenMismatch(input,name)}},exports.then=function(parser,func){return function(input){var result=parser(input);return result.map||console.log(result),result.map(func)}},exports.sequence=function(){function isCapturedRule(subRule){return subRule.isCaptured}var parsers=Array.prototype.slice.call(arguments,0),rule=function(input){var result=_.foldl(parsers,function(memo,parser){var result=memo.result,hasCut=memo.hasCut;if(!result.isSuccess())return{result:result,hasCut:hasCut};var subResult=parser(result.remaining());if(subResult.isCut())return{result:result,hasCut:!0};if(subResult.isSuccess()){var values;values=parser.isCaptured?result.value().withValue(parser,subResult.value()):result.value();var remaining=subResult.remaining(),source=input.to(remaining);return{result:results.success(values,remaining,source),hasCut:hasCut}}return hasCut?{result:results.error(subResult.errors(),subResult.remaining()),hasCut:hasCut}:{result:subResult,hasCut:hasCut}},{result:results.success(new SequenceValues,input),hasCut:!1}).result,source=input.to(result.remaining());return result.map(function(values){return values.withValue(exports.sequence.source,source)})};return rule.head=function(){var firstCapture=_.find(parsers,isCapturedRule);return exports.then(rule,exports.sequence.extract(firstCapture))},rule.map=function(func){return exports.then(rule,function(result){return func.apply(this,result.toArray())})},rule};var SequenceValues=function(values,valuesArray){this._values=values||{},this._valuesArray=valuesArray||[]};SequenceValues.prototype.withValue=function(rule,value){if(rule.captureName&&rule.captureName in this._values)throw new Error('Cannot add second value for capture "'+rule.captureName+'"');var newValues=_.clone(this._values);newValues[rule.captureName]=value;var newValuesArray=this._valuesArray.concat([value]);return new SequenceValues(newValues,newValuesArray)},SequenceValues.prototype.get=function(rule){if(rule.captureName in this._values)return this._values[rule.captureName];throw new Error('No value for capture "'+rule.captureName+'"')},SequenceValues.prototype.toArray=function(){return this._valuesArray},exports.sequence.capture=function(rule,name){var captureRule=function(){return rule.apply(this,arguments)};return captureRule.captureName=name,captureRule.isCaptured=!0,captureRule},exports.sequence.extract=function(rule){return function(result){return result.get(rule)}},exports.sequence.applyValues=function(func){var rules=Array.prototype.slice.call(arguments,1);return function(result){var values=rules.map(function(rule){return result.get(rule)});return func.apply(this,values)}},exports.sequence.source={captureName:"☃source☃"},exports.sequence.cut=function(){return function(input){return results.cut(input)}},exports.optional=function(rule){return function(input){var result=rule(input);return result.isSuccess()?result.map(options.some):result.isFailure()?results.success(options.none,input):result}},exports.zeroOrMoreWithSeparator=function(rule,separator){return repeatedWithSeparator(rule,separator,!1)},exports.oneOrMoreWithSeparator=function(rule,separator){return repeatedWithSeparator(rule,separator,!0)};var zeroOrMore=exports.zeroOrMore=function(rule){return function(input){for(var result,values=[];(result=rule(input))&&result.isSuccess();)input=result.remaining(),values.push(result.value());return result.isError()?result:results.success(values,input)}};exports.oneOrMore=function(rule){return exports.oneOrMoreWithSeparator(rule,noOpRule)};var repeatedWithSeparator=function(rule,separator,isOneOrMore){return function(input){var result=rule(input);if(result.isSuccess()){var mainRule=exports.sequence.capture(rule,"main"),remainingRule=zeroOrMore(exports.then(exports.sequence(separator,mainRule),exports.sequence.extract(mainRule))),remainingResult=remainingRule(result.remaining());return results.success([result.value()].concat(remainingResult.value()),remainingResult.remaining())}return isOneOrMore||result.isError()?result:results.success([],input)}};exports.leftAssociative=function(leftRule,rightRule,func){var rights;rights=func?[{func:func,rule:rightRule}]:rightRule,rights=rights.map(function(right){return exports.then(right.rule,function(rightValue){return function(leftValue,source){return right.func(leftValue,rightValue,source)}})});var repeatedRule=exports.firstOf.apply(null,["rules"].concat(rights));return function(input){var start=input,leftResult=leftRule(input);if(!leftResult.isSuccess())return leftResult;for(var repeatedResult=repeatedRule(leftResult.remaining());repeatedResult.isSuccess();){var remaining=repeatedResult.remaining(),source=start.to(repeatedResult.remaining()),right=repeatedResult.value();leftResult=results.success(right(leftResult.value(),source),remaining,source),repeatedResult=repeatedRule(leftResult.remaining())}return repeatedResult.isError()?repeatedResult:leftResult}},exports.leftAssociative.firstOf=function(){return Array.prototype.slice.call(arguments,0)},exports.nonConsuming=function(rule){return function(input){return rule(input).changeRemaining(input)}};var describeToken=function(token){return token.value?token.name+' "'+token.value+'"':token.name}},{"./errors":94,"./lazy-iterators":95,"./parsing-results":97,option:100,underscore:103}],100:[function(require,module,exports){function callOrReturn(value){return"function"==typeof value?value():value}exports.none=Object.create({value:function(){throw new Error("Called value on none")},isNone:function(){return!0},isSome:function(){return!1},map:function(){return exports.none},flatMap:function(){return exports.none},filter:function(){return exports.none},toArray:function(){return[]},orElse:callOrReturn,valueOrElse:callOrReturn}),exports.some=function(value){return new Some(value)};var Some=function(value){this._value=value};Some.prototype.value=function(){return this._value},Some.prototype.isNone=function(){return!1},Some.prototype.isSome=function(){return!0},Some.prototype.map=function(func){return new Some(func(this._value))},Some.prototype.flatMap=function(func){return func(this._value)},Some.prototype.filter=function(predicate){return predicate(this._value)?this:exports.none},Some.prototype.toArray=function(){return[this._value]},Some.prototype.orElse=function(value){return this},Some.prototype.valueOrElse=function(value){return this._value},exports.isOption=function(value){return value===exports.none||value instanceof Some},exports.fromNullable=function(value){return null==value?exports.none:new Some(value)}},{}],101:[function(require,module,exports){(function(process){function normalizeArray(parts,allowAboveRoot){for(var up=0,i=parts.length-1;i>=0;i--){var last=parts[i];"."===last?parts.splice(i,1):".."===last?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up--;up)parts.unshift("..");return parts}function filter(xs,f){if(xs.filter)return xs.filter(f);for(var res=[],i=0;i=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:process.cwd();if("string"!=typeof path)throw new TypeError("Arguments to path.resolve must be strings");path&&(resolvedPath=path+"/"+resolvedPath,resolvedAbsolute="/"===path.charAt(0))}return resolvedPath=normalizeArray(filter(resolvedPath.split("/"),function(p){return!!p}),!resolvedAbsolute).join("/"),(resolvedAbsolute?"/":"")+resolvedPath||"."},exports.normalize=function(path){var isAbsolute=exports.isAbsolute(path),trailingSlash="/"===substr(path,-1);return path=normalizeArray(filter(path.split("/"),function(p){return!!p}),!isAbsolute).join("/"),path||isAbsolute||(path="."),path&&trailingSlash&&(path+="/"),(isAbsolute?"/":"")+path},exports.isAbsolute=function(path){return"/"===path.charAt(0)},exports.join=function(){var paths=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(paths,function(p,index){if("string"!=typeof p)throw new TypeError("Arguments to path.join must be strings");return p}).join("/"))},exports.relative=function(from,to){function trim(arr){for(var start=0;start=0&&""===arr[end];end--);return start>end?[]:arr.slice(start,end-start+1)}from=exports.resolve(from).substr(1),to=exports.resolve(to).substr(1);for(var fromParts=trim(from.split("/")),toParts=trim(to.split("/")),length=Math.min(fromParts.length,toParts.length),samePartsLength=length,i=0;length>i;i++)if(fromParts[i]!==toParts[i]){samePartsLength=i;break}for(var outputParts=[],i=samePartsLength;istart&&(start=str.length+start),str.substr(start,len)}}).call(this,require("_process"))},{_process:102}],102:[function(require,module,exports){function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}function runTimeout(fun){if(cachedSetTimeout===setTimeout)return setTimeout(fun,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(fun,0);try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout)return clearTimeout(marker);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(marker);try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e){return cachedClearTimeout.call(this,marker)}}}function cleanUpNextTick(){draining&¤tQueue&&(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var timeout=runTimeout(cleanUpNextTick);draining=!0;for(var len=queue.length;len;){for(currentQueue=queue,queue=[];++queueIndex1)for(var i=1;iindex;index++)rest[index]=arguments[index+startIndex];switch(startIndex){case 0:return func.call(this,rest);case 1:return func.call(this,arguments[0],rest);case 2:return func.call(this,arguments[0],arguments[1],rest)}var args=Array(startIndex+1);for(index=0;startIndex>index;index++)args[index]=arguments[index];return args[startIndex]=rest,func.apply(this,args)}}function isObject(obj){var type=typeof obj;return"function"===type||"object"===type&&!!obj}function isNull(obj){return null===obj}function isUndefined(obj){return void 0===obj}function isBoolean(obj){return obj===!0||obj===!1||"[object Boolean]"===toString.call(obj)}function isElement(obj){return!(!obj||1!==obj.nodeType)}function tagTester(name){var tag="[object "+name+"]";return function(obj){return toString.call(obj)===tag}}function ie10IsDataView(obj){return null!=obj&&isFunction$1(obj.getInt8)&&isArrayBuffer(obj.buffer)}function has$1(obj,key){return null!=obj&&hasOwnProperty.call(obj,key)}function isFinite$1(obj){return!isSymbol(obj)&&_isFinite(obj)&&!isNaN(parseFloat(obj))}function isNaN$1(obj){return isNumber(obj)&&_isNaN(obj)}function constant(value){return function(){return value}}function createSizePropertyCheck(getSizeProperty){return function(collection){var sizeProperty=getSizeProperty(collection);return"number"==typeof sizeProperty&&sizeProperty>=0&&MAX_ARRAY_INDEX>=sizeProperty}}function shallowProperty(key){return function(obj){return null==obj?void 0:obj[key]}}function isTypedArray(obj){return nativeIsView?nativeIsView(obj)&&!isDataView$1(obj):isBufferLike(obj)&&typedArrayPattern.test(toString.call(obj))}function emulatedSet(keys){for(var hash={},l=keys.length,i=0;l>i;++i)hash[keys[i]]=!0;return{contains:function(key){return hash[key]},push:function(key){return hash[key]=!0,keys.push(key)}}}function collectNonEnumProps(obj,keys){keys=emulatedSet(keys);var nonEnumIdx=nonEnumerableProps.length,constructor=obj.constructor,proto=isFunction$1(constructor)&&constructor.prototype||ObjProto,prop="constructor";for(has$1(obj,prop)&&!keys.contains(prop)&&keys.push(prop);nonEnumIdx--;)prop=nonEnumerableProps[nonEnumIdx],prop in obj&&obj[prop]!==proto[prop]&&!keys.contains(prop)&&keys.push(prop)}function keys(obj){if(!isObject(obj))return[];if(nativeKeys)return nativeKeys(obj);var keys=[];for(var key in obj)has$1(obj,key)&&keys.push(key);return hasEnumBug&&collectNonEnumProps(obj,keys),keys}function isEmpty(obj){if(null==obj)return!0;var length=getLength(obj);return"number"==typeof length&&(isArray(obj)||isString(obj)||isArguments$1(obj))?0===length:0===getLength(keys(obj))}function isMatch(object,attrs){var _keys=keys(attrs),length=_keys.length;if(null==object)return!length;for(var obj=Object(object),i=0;length>i;i++){var key=_keys[i];if(attrs[key]!==obj[key]||!(key in obj))return!1}return!0}function _$1(obj){return obj instanceof _$1?obj:this instanceof _$1?void(this._wrapped=obj):new _$1(obj)}function toBufferView(bufferSource){return new Uint8Array(bufferSource.buffer||bufferSource,bufferSource.byteOffset||0,getByteLength(bufferSource))}function eq(a,b,aStack,bStack){if(a===b)return 0!==a||1/a===1/b;if(null==a||null==b)return!1;if(a!==a)return b!==b;var type=typeof a;return"function"!==type&&"object"!==type&&"object"!=typeof b?!1:deepEq(a,b,aStack,bStack)}function deepEq(a,b,aStack,bStack){a instanceof _$1&&(a=a._wrapped),b instanceof _$1&&(b=b._wrapped);var className=toString.call(a);if(className!==toString.call(b))return!1;if(hasStringTagBug&&"[object Object]"==className&&isDataView$1(a)){if(!isDataView$1(b))return!1;className=tagDataView}switch(className){case"[object RegExp]":case"[object String]":return""+a==""+b;case"[object Number]":return+a!==+a?+b!==+b:0===+a?1/+a===1/b:+a===+b;case"[object Date]":case"[object Boolean]":return+a===+b;case"[object Symbol]":return SymbolProto.valueOf.call(a)===SymbolProto.valueOf.call(b);case"[object ArrayBuffer]":case tagDataView:return deepEq(toBufferView(a),toBufferView(b),aStack,bStack)}var areArrays="[object Array]"===className;if(!areArrays&&isTypedArray$1(a)){var byteLength=getByteLength(a);if(byteLength!==getByteLength(b))return!1;if(a.buffer===b.buffer&&a.byteOffset===b.byteOffset)return!0;areArrays=!0}if(!areArrays){if("object"!=typeof a||"object"!=typeof b)return!1;var aCtor=a.constructor,bCtor=b.constructor;if(aCtor!==bCtor&&!(isFunction$1(aCtor)&&aCtor instanceof aCtor&&isFunction$1(bCtor)&&bCtor instanceof bCtor)&&"constructor"in a&&"constructor"in b)return!1}aStack=aStack||[],bStack=bStack||[];for(var length=aStack.length;length--;)if(aStack[length]===a)return bStack[length]===b;if(aStack.push(a),bStack.push(b),areArrays){if(length=a.length,length!==b.length)return!1;for(;length--;)if(!eq(a[length],b[length],aStack,bStack))return!1}else{var key,_keys=keys(a);if(length=_keys.length,keys(b).length!==length)return!1;for(;length--;)if(key=_keys[length],!has$1(b,key)||!eq(a[key],b[key],aStack,bStack))return!1}return aStack.pop(),bStack.pop(),!0}function isEqual(a,b){return eq(a,b)}function allKeys(obj){if(!isObject(obj))return[];var keys=[];for(var key in obj)keys.push(key);return hasEnumBug&&collectNonEnumProps(obj,keys),keys}function ie11fingerprint(methods){var length=getLength(methods);return function(obj){if(null==obj)return!1;var keys=allKeys(obj);if(getLength(keys))return!1;for(var i=0;length>i;i++)if(!isFunction$1(obj[methods[i]]))return!1;return methods!==weakMapMethods||!isFunction$1(obj[forEachName])}}function values(obj){for(var _keys=keys(obj),length=_keys.length,values=Array(length),i=0;length>i;i++)values[i]=obj[_keys[i]];return values}function pairs(obj){for(var _keys=keys(obj),length=_keys.length,pairs=Array(length),i=0;length>i;i++)pairs[i]=[_keys[i],obj[_keys[i]]];return pairs}function invert(obj){for(var result={},_keys=keys(obj),i=0,length=_keys.length;length>i;i++)result[obj[_keys[i]]]=_keys[i];return result}function functions(obj){var names=[];for(var key in obj)isFunction$1(obj[key])&&names.push(key);return names.sort()}function createAssigner(keysFunc,defaults){return function(obj){var length=arguments.length;if(defaults&&(obj=Object(obj)),2>length||null==obj)return obj;for(var index=1;length>index;index++)for(var source=arguments[index],keys=keysFunc(source),l=keys.length,i=0;l>i;i++){var key=keys[i];defaults&&void 0!==obj[key]||(obj[key]=source[key])}return obj}}function ctor(){return function(){}}function baseCreate(prototype){if(!isObject(prototype))return{};if(nativeCreate)return nativeCreate(prototype);var Ctor=ctor();Ctor.prototype=prototype;var result=new Ctor;return Ctor.prototype=null,result}function create(prototype,props){var result=baseCreate(prototype);return props&&extendOwn(result,props),result}function clone(obj){return isObject(obj)?isArray(obj)?obj.slice():extend({},obj):obj}function tap(obj,interceptor){return interceptor(obj),obj}function toPath$1(path){return isArray(path)?path:[path]}function toPath(path){return _$1.toPath(path)}function deepGet(obj,path){for(var length=path.length,i=0;length>i;i++){if(null==obj)return void 0;obj=obj[path[i]]}return length?obj:void 0}function get(object,path,defaultValue){var value=deepGet(object,toPath(path));return isUndefined(value)?defaultValue:value}function has(obj,path){path=toPath(path);for(var length=path.length,i=0;length>i;i++){var key=path[i];if(!has$1(obj,key))return!1;obj=obj[key]}return!!length}function identity(value){return value}function matcher(attrs){return attrs=extendOwn({},attrs),function(obj){return isMatch(obj,attrs)}}function property(path){return path=toPath(path),function(obj){return deepGet(obj,path)}}function optimizeCb(func,context,argCount){if(void 0===context)return func;switch(null==argCount?3:argCount){case 1:return function(value){return func.call(context,value)};case 3:return function(value,index,collection){return func.call(context,value,index,collection)};case 4:return function(accumulator,value,index,collection){return func.call(context,accumulator,value,index,collection)}}return function(){return func.apply(context,arguments)}}function baseIteratee(value,context,argCount){return null==value?identity:isFunction$1(value)?optimizeCb(value,context,argCount):isObject(value)&&!isArray(value)?matcher(value):property(value); +}function iteratee(value,context){return baseIteratee(value,context,1/0)}function cb(value,context,argCount){return _$1.iteratee!==iteratee?_$1.iteratee(value,context):baseIteratee(value,context,argCount)}function mapObject(obj,iteratee,context){iteratee=cb(iteratee,context);for(var _keys=keys(obj),length=_keys.length,results={},index=0;length>index;index++){var currentKey=_keys[index];results[currentKey]=iteratee(obj[currentKey],currentKey,obj)}return results}function noop(){}function propertyOf(obj){return null==obj?noop:function(path){return get(obj,path)}}function times(n,iteratee,context){var accum=Array(Math.max(0,n));iteratee=optimizeCb(iteratee,context,1);for(var i=0;n>i;i++)accum[i]=iteratee(i);return accum}function random(min,max){return null==max&&(max=min,min=0),min+Math.floor(Math.random()*(max-min+1))}function createEscaper(map){var escaper=function(match){return map[match]},source="(?:"+keys(map).join("|")+")",testRegexp=RegExp(source),replaceRegexp=RegExp(source,"g");return function(string){return string=null==string?"":""+string,testRegexp.test(string)?string.replace(replaceRegexp,escaper):string}}function escapeChar(match){return"\\"+escapes[match]}function template(text,settings,oldSettings){!settings&&oldSettings&&(settings=oldSettings),settings=defaults({},settings,_$1.templateSettings);var matcher=RegExp([(settings.escape||noMatch).source,(settings.interpolate||noMatch).source,(settings.evaluate||noMatch).source].join("|")+"|$","g"),index=0,source="__p+='";text.replace(matcher,function(match,escape,interpolate,evaluate,offset){return source+=text.slice(index,offset).replace(escapeRegExp,escapeChar),index=offset+match.length,escape?source+="'+\n((__t=("+escape+"))==null?'':_.escape(__t))+\n'":interpolate?source+="'+\n((__t=("+interpolate+"))==null?'':__t)+\n'":evaluate&&(source+="';\n"+evaluate+"\n__p+='"),match}),source+="';\n";var argument=settings.variable;if(argument){if(!bareIdentifier.test(argument))throw new Error("variable is not a bare identifier: "+argument)}else source="with(obj||{}){\n"+source+"}\n",argument="obj";source="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+source+"return __p;\n";var render;try{render=new Function(argument,"_",source)}catch(e){throw e.source=source,e}var template=function(data){return render.call(this,data,_$1)};return template.source="function("+argument+"){\n"+source+"}",template}function result(obj,path,fallback){path=toPath(path);var length=path.length;if(!length)return isFunction$1(fallback)?fallback.call(obj):fallback;for(var i=0;length>i;i++){var prop=null==obj?void 0:obj[path[i]];void 0===prop&&(prop=fallback,i=length),obj=isFunction$1(prop)?prop.call(obj):prop}return obj}function uniqueId(prefix){var id=++idCounter+"";return prefix?prefix+id:id}function chain(obj){var instance=_$1(obj);return instance._chain=!0,instance}function executeBound(sourceFunc,boundFunc,context,callingContext,args){if(!(callingContext instanceof boundFunc))return sourceFunc.apply(context,args);var self=baseCreate(sourceFunc.prototype),result=sourceFunc.apply(self,args);return isObject(result)?result:self}function flatten$1(input,depth,strict,output){if(output=output||[],depth||0===depth){if(0>=depth)return output.concat(input)}else depth=1/0;for(var idx=output.length,i=0,length=getLength(input);length>i;i++){var value=input[i];if(isArrayLike(value)&&(isArray(value)||isArguments$1(value)))if(depth>1)flatten$1(value,depth-1,strict,output),idx=output.length;else for(var j=0,len=value.length;len>j;)output[idx++]=value[j++];else strict||(output[idx++]=value)}return output}function memoize(func,hasher){var memoize=function(key){var cache=memoize.cache,address=""+(hasher?hasher.apply(this,arguments):key);return has$1(cache,address)||(cache[address]=func.apply(this,arguments)),cache[address]};return memoize.cache={},memoize}function throttle(func,wait,options){var timeout,context,args,result,previous=0;options||(options={});var later=function(){previous=options.leading===!1?0:now(),timeout=null,result=func.apply(context,args),timeout||(context=args=null)},throttled=function(){var _now=now();previous||options.leading!==!1||(previous=_now);var remaining=wait-(_now-previous);return context=this,args=arguments,0>=remaining||remaining>wait?(timeout&&(clearTimeout(timeout),timeout=null),previous=_now,result=func.apply(context,args),timeout||(context=args=null)):timeout||options.trailing===!1||(timeout=setTimeout(later,remaining)),result};return throttled.cancel=function(){clearTimeout(timeout),previous=0,timeout=context=args=null},throttled}function debounce(func,wait,immediate){var timeout,previous,args,result,context,later=function(){var passed=now()-previous;wait>passed?timeout=setTimeout(later,wait-passed):(timeout=null,immediate||(result=func.apply(context,args)),timeout||(args=context=null))},debounced=restArguments(function(_args){return context=this,args=_args,previous=now(),timeout||(timeout=setTimeout(later,wait),immediate&&(result=func.apply(context,args))),result});return debounced.cancel=function(){clearTimeout(timeout),timeout=args=context=null},debounced}function wrap(func,wrapper){return partial(wrapper,func)}function negate(predicate){return function(){return!predicate.apply(this,arguments)}}function compose(){var args=arguments,start=args.length-1;return function(){for(var i=start,result=args[start].apply(this,arguments);i--;)result=args[i].call(this,result);return result}}function after(times,func){return function(){return--times<1?func.apply(this,arguments):void 0}}function before(times,func){var memo;return function(){return--times>0&&(memo=func.apply(this,arguments)),1>=times&&(func=null),memo}}function findKey(obj,predicate,context){predicate=cb(predicate,context);for(var key,_keys=keys(obj),i=0,length=_keys.length;length>i;i++)if(key=_keys[i],predicate(obj[key],key,obj))return key}function createPredicateIndexFinder(dir){return function(array,predicate,context){predicate=cb(predicate,context);for(var length=getLength(array),index=dir>0?0:length-1;index>=0&&length>index;index+=dir)if(predicate(array[index],index,array))return index;return-1}}function sortedIndex(array,obj,iteratee,context){iteratee=cb(iteratee,context,1);for(var value=iteratee(obj),low=0,high=getLength(array);high>low;){var mid=Math.floor((low+high)/2);iteratee(array[mid])0?i=idx>=0?idx:Math.max(idx+length,i):length=idx>=0?Math.min(idx+1,length):idx+length+1;else if(sortedIndex&&idx&&length)return idx=sortedIndex(array,item),array[idx]===item?idx:-1;if(item!==item)return idx=predicateFind(slice.call(array,i,length),isNaN$1),idx>=0?idx+i:-1;for(idx=dir>0?i:length-1;idx>=0&&length>idx;idx+=dir)if(array[idx]===item)return idx;return-1}}function find(obj,predicate,context){var keyFinder=isArrayLike(obj)?findIndex:findKey,key=keyFinder(obj,predicate,context);return void 0!==key&&-1!==key?obj[key]:void 0}function findWhere(obj,attrs){return find(obj,matcher(attrs))}function each(obj,iteratee,context){iteratee=optimizeCb(iteratee,context);var i,length;if(isArrayLike(obj))for(i=0,length=obj.length;length>i;i++)iteratee(obj[i],i,obj);else{var _keys=keys(obj);for(i=0,length=_keys.length;length>i;i++)iteratee(obj[_keys[i]],_keys[i],obj)}return obj}function map(obj,iteratee,context){iteratee=cb(iteratee,context);for(var _keys=!isArrayLike(obj)&&keys(obj),length=(_keys||obj).length,results=Array(length),index=0;length>index;index++){var currentKey=_keys?_keys[index]:index;results[index]=iteratee(obj[currentKey],currentKey,obj)}return results}function createReduce(dir){var reducer=function(obj,iteratee,memo,initial){var _keys=!isArrayLike(obj)&&keys(obj),length=(_keys||obj).length,index=dir>0?0:length-1;for(initial||(memo=obj[_keys?_keys[index]:index],index+=dir);index>=0&&length>index;index+=dir){var currentKey=_keys?_keys[index]:index;memo=iteratee(memo,obj[currentKey],currentKey,obj)}return memo};return function(obj,iteratee,memo,context){var initial=arguments.length>=3;return reducer(obj,optimizeCb(iteratee,context,4),memo,initial)}}function filter(obj,predicate,context){var results=[];return predicate=cb(predicate,context),each(obj,function(value,index,list){predicate(value,index,list)&&results.push(value)}),results}function reject(obj,predicate,context){return filter(obj,negate(cb(predicate)),context)}function every(obj,predicate,context){predicate=cb(predicate,context);for(var _keys=!isArrayLike(obj)&&keys(obj),length=(_keys||obj).length,index=0;length>index;index++){var currentKey=_keys?_keys[index]:index;if(!predicate(obj[currentKey],currentKey,obj))return!1}return!0}function some(obj,predicate,context){predicate=cb(predicate,context);for(var _keys=!isArrayLike(obj)&&keys(obj),length=(_keys||obj).length,index=0;length>index;index++){var currentKey=_keys?_keys[index]:index;if(predicate(obj[currentKey],currentKey,obj))return!0}return!1}function contains(obj,item,fromIndex,guard){return isArrayLike(obj)||(obj=values(obj)),("number"!=typeof fromIndex||guard)&&(fromIndex=0),indexOf(obj,item,fromIndex)>=0}function pluck(obj,key){return map(obj,property(key))}function where(obj,attrs){return filter(obj,matcher(attrs))}function max(obj,iteratee,context){var value,computed,result=-(1/0),lastComputed=-(1/0);if(null==iteratee||"number"==typeof iteratee&&"object"!=typeof obj[0]&&null!=obj){obj=isArrayLike(obj)?obj:values(obj);for(var i=0,length=obj.length;length>i;i++)value=obj[i],null!=value&&value>result&&(result=value)}else iteratee=cb(iteratee,context),each(obj,function(v,index,list){computed=iteratee(v,index,list),(computed>lastComputed||computed===-(1/0)&&result===-(1/0))&&(result=v,lastComputed=computed)});return result}function min(obj,iteratee,context){var value,computed,result=1/0,lastComputed=1/0;if(null==iteratee||"number"==typeof iteratee&&"object"!=typeof obj[0]&&null!=obj){obj=isArrayLike(obj)?obj:values(obj);for(var i=0,length=obj.length;length>i;i++)value=obj[i],null!=value&&result>value&&(result=value)}else iteratee=cb(iteratee,context),each(obj,function(v,index,list){computed=iteratee(v,index,list),(lastComputed>computed||computed===1/0&&result===1/0)&&(result=v,lastComputed=computed)});return result}function sample(obj,n,guard){if(null==n||guard)return isArrayLike(obj)||(obj=values(obj)),obj[random(obj.length-1)];var sample=isArrayLike(obj)?clone(obj):values(obj),length=getLength(sample);n=Math.max(Math.min(n,length),0);for(var last=length-1,index=0;n>index;index++){var rand=random(index,last),temp=sample[index];sample[index]=sample[rand],sample[rand]=temp}return sample.slice(0,n)}function shuffle(obj){return sample(obj,1/0)}function sortBy(obj,iteratee,context){var index=0;return iteratee=cb(iteratee,context),pluck(map(obj,function(value,key,list){return{value:value,index:index++,criteria:iteratee(value,key,list)}}).sort(function(left,right){var a=left.criteria,b=right.criteria;if(a!==b){if(a>b||void 0===a)return 1;if(b>a||void 0===b)return-1}return left.index-right.index}),"value")}function group(behavior,partition){return function(obj,iteratee,context){var result=partition?[[],[]]:{};return iteratee=cb(iteratee,context),each(obj,function(value,index){var key=iteratee(value,index,obj);behavior(result,value,key)}),result}}function toArray(obj){return obj?isArray(obj)?slice.call(obj):isString(obj)?obj.match(reStrSymbol):isArrayLike(obj)?map(obj,identity):values(obj):[]}function size(obj){return null==obj?0:isArrayLike(obj)?obj.length:keys(obj).length}function keyInObj(value,key,obj){return key in obj}function initial(array,n,guard){return slice.call(array,0,Math.max(0,array.length-(null==n||guard?1:n)))}function first(array,n,guard){return null==array||array.length<1?null==n||guard?void 0:[]:null==n||guard?array[0]:initial(array,array.length-n)}function rest(array,n,guard){return slice.call(array,null==n||guard?1:n)}function last(array,n,guard){return null==array||array.length<1?null==n||guard?void 0:[]:null==n||guard?array[array.length-1]:rest(array,Math.max(0,array.length-n))}function compact(array){return filter(array,Boolean)}function flatten(array,depth){return flatten$1(array,depth,!1)}function uniq(array,isSorted,iteratee,context){isBoolean(isSorted)||(context=iteratee,iteratee=isSorted,isSorted=!1),null!=iteratee&&(iteratee=cb(iteratee,context));for(var result=[],seen=[],i=0,length=getLength(array);length>i;i++){var value=array[i],computed=iteratee?iteratee(value,i,array):value;isSorted&&!iteratee?(i&&seen===computed||result.push(value),seen=computed):iteratee?contains(seen,computed)||(seen.push(computed),result.push(value)):contains(result,value)||result.push(value)}return result}function intersection(array){for(var result=[],argsLength=arguments.length,i=0,length=getLength(array);length>i;i++){var item=array[i];if(!contains(result,item)){var j;for(j=1;argsLength>j&&contains(arguments[j],item);j++);j===argsLength&&result.push(item)}}return result}function unzip(array){for(var length=array&&max(array,getLength).length||0,result=Array(length),index=0;length>index;index++)result[index]=pluck(array,index);return result}function object(list,values){for(var result={},i=0,length=getLength(list);length>i;i++)values?result[list[i]]=values[i]:result[list[i][0]]=list[i][1];return result}function range(start,stop,step){null==stop&&(stop=start||0,start=0),step||(step=start>stop?-1:1);for(var length=Math.max(Math.ceil((stop-start)/step),0),range=Array(length),idx=0;length>idx;idx++,start+=step)range[idx]=start;return range}function chunk(array,count){if(null==count||1>count)return[];for(var result=[],i=0,length=array.length;length>i;)result.push(slice.call(array,i,i+=count));return result}function chainResult(instance,obj){return instance._chain?_$1(obj).chain():obj}function mixin(obj){return each(functions(obj),function(name){var func=_$1[name]=obj[name];_$1.prototype[name]=function(){var args=[this._wrapped];return push.apply(args,arguments),chainResult(this,func.apply(_$1,args))}}),_$1}var VERSION="1.13.1",root="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},ArrayProto=Array.prototype,ObjProto=Object.prototype,SymbolProto="undefined"!=typeof Symbol?Symbol.prototype:null,push=ArrayProto.push,slice=ArrayProto.slice,toString=ObjProto.toString,hasOwnProperty=ObjProto.hasOwnProperty,supportsArrayBuffer="undefined"!=typeof ArrayBuffer,supportsDataView="undefined"!=typeof DataView,nativeIsArray=Array.isArray,nativeKeys=Object.keys,nativeCreate=Object.create,nativeIsView=supportsArrayBuffer&&ArrayBuffer.isView,_isNaN=isNaN,_isFinite=isFinite,hasEnumBug=!{toString:null}.propertyIsEnumerable("toString"),nonEnumerableProps=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],MAX_ARRAY_INDEX=Math.pow(2,53)-1,isString=tagTester("String"),isNumber=tagTester("Number"),isDate=tagTester("Date"),isRegExp=tagTester("RegExp"),isError=tagTester("Error"),isSymbol=tagTester("Symbol"),isArrayBuffer=tagTester("ArrayBuffer"),isFunction=tagTester("Function"),nodelist=root.document&&root.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof nodelist&&(isFunction=function(obj){return"function"==typeof obj||!1});var isFunction$1=isFunction,hasObjectTag=tagTester("Object"),hasStringTagBug=supportsDataView&&hasObjectTag(new DataView(new ArrayBuffer(8))),isIE11="undefined"!=typeof Map&&hasObjectTag(new Map),isDataView=tagTester("DataView"),isDataView$1=hasStringTagBug?ie10IsDataView:isDataView,isArray=nativeIsArray||tagTester("Array"),isArguments=tagTester("Arguments");!function(){isArguments(arguments)||(isArguments=function(obj){return has$1(obj,"callee")})}();var isArguments$1=isArguments,getByteLength=shallowProperty("byteLength"),isBufferLike=createSizePropertyCheck(getByteLength),typedArrayPattern=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/,isTypedArray$1=supportsArrayBuffer?isTypedArray:constant(!1),getLength=shallowProperty("length");_$1.VERSION=VERSION,_$1.prototype.value=function(){return this._wrapped},_$1.prototype.valueOf=_$1.prototype.toJSON=_$1.prototype.value,_$1.prototype.toString=function(){return String(this._wrapped)};var tagDataView="[object DataView]",forEachName="forEach",hasName="has",commonInit=["clear","delete"],mapTail=["get",hasName,"set"],mapMethods=commonInit.concat(forEachName,mapTail),weakMapMethods=commonInit.concat(mapTail),setMethods=["add"].concat(commonInit,forEachName,hasName),isMap=isIE11?ie11fingerprint(mapMethods):tagTester("Map"),isWeakMap=isIE11?ie11fingerprint(weakMapMethods):tagTester("WeakMap"),isSet=isIE11?ie11fingerprint(setMethods):tagTester("Set"),isWeakSet=tagTester("WeakSet"),extend=createAssigner(allKeys),extendOwn=createAssigner(keys),defaults=createAssigner(allKeys,!0);_$1.toPath=toPath$1,_$1.iteratee=iteratee;var now=Date.now||function(){return(new Date).getTime()},escapeMap={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},_escape=createEscaper(escapeMap),unescapeMap=invert(escapeMap),_unescape=createEscaper(unescapeMap),templateSettings=_$1.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},noMatch=/(.)^/,escapes={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},escapeRegExp=/\\|'|\r|\n|\u2028|\u2029/g,bareIdentifier=/^\s*(\w|\$)+\s*$/,idCounter=0,partial=restArguments(function(func,boundArgs){var placeholder=partial.placeholder,bound=function(){for(var position=0,length=boundArgs.length,args=Array(length),i=0;length>i;i++)args[i]=boundArgs[i]===placeholder?arguments[position++]:boundArgs[i];for(;positionindex)throw new Error("bindAll must be passed function names");for(;index--;){var key=keys[index];obj[key]=bind(obj[key],obj)}return obj}),delay=restArguments(function(func,wait,args){return setTimeout(function(){return func.apply(null,args)},wait)}),defer=partial(delay,_$1,1),once=partial(before,2),findIndex=createPredicateIndexFinder(1),findLastIndex=createPredicateIndexFinder(-1),indexOf=createIndexFinder(1,findIndex,sortedIndex),lastIndexOf=createIndexFinder(-1,findLastIndex),reduce=createReduce(1),reduceRight=createReduce(-1),invoke=restArguments(function(obj,path,args){var contextPath,func;return isFunction$1(path)?func=path:(path=toPath(path),contextPath=path.slice(0,-1),path=path[path.length-1]),map(obj,function(context){var method=func;if(!method){if(contextPath&&contextPath.length&&(context=deepGet(context,contextPath)),null==context)return void 0;method=context[path]}return null==method?method:method.apply(context,args)})}),groupBy=group(function(result,value,key){has$1(result,key)?result[key].push(value):result[key]=[value]}),indexBy=group(function(result,value,key){result[key]=value}),countBy=group(function(result,value,key){has$1(result,key)?result[key]++:result[key]=1}),partition=group(function(result,value,pass){result[pass?0:1].push(value)},!0),reStrSymbol=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g,pick=restArguments(function(obj,keys){var result={},iteratee=keys[0];if(null==obj)return result;isFunction$1(iteratee)?(keys.length>1&&(iteratee=optimizeCb(iteratee,keys[1])),keys=allKeys(obj)):(iteratee=keyInObj,keys=flatten$1(keys,!1,!1),obj=Object(obj));for(var i=0,length=keys.length;length>i;i++){var key=keys[i],value=obj[key];iteratee(value,key,obj)&&(result[key]=value)}return result}),omit=restArguments(function(obj,keys){var context,iteratee=keys[0];return isFunction$1(iteratee)?(iteratee=negate(iteratee),keys.length>1&&(context=keys[1])):(keys=map(flatten$1(keys,!1,!1),String),iteratee=function(value,key){return!contains(keys,key)}),pick(obj,iteratee,context)}),difference=restArguments(function(array,rest){return rest=flatten$1(rest,!0,!0),filter(array,function(value){return!contains(rest,value)})}),without=restArguments(function(array,otherArrays){return difference(array,otherArrays)}),union=restArguments(function(arrays){return uniq(flatten$1(arrays,!0,!0))}),zip=restArguments(unzip);each(["pop","push","reverse","shift","sort","splice","unshift"],function(name){var method=ArrayProto[name];_$1.prototype[name]=function(){var obj=this._wrapped;return null!=obj&&(method.apply(obj,arguments),"shift"!==name&&"splice"!==name||0!==obj.length||delete obj[0]),chainResult(this,obj)}}),each(["concat","join","slice"],function(name){var method=ArrayProto[name];_$1.prototype[name]=function(){var obj=this._wrapped;return null!=obj&&(obj=method.apply(obj,arguments)),chainResult(this,obj)}});var allExports={__proto__:null,VERSION:VERSION,restArguments:restArguments,isObject:isObject,isNull:isNull,isUndefined:isUndefined,isBoolean:isBoolean,isElement:isElement,isString:isString,isNumber:isNumber,isDate:isDate,isRegExp:isRegExp,isError:isError,isSymbol:isSymbol,isArrayBuffer:isArrayBuffer,isDataView:isDataView$1,isArray:isArray,isFunction:isFunction$1,isArguments:isArguments$1,isFinite:isFinite$1,isNaN:isNaN$1,isTypedArray:isTypedArray$1,isEmpty:isEmpty,isMatch:isMatch,isEqual:isEqual,isMap:isMap,isWeakMap:isWeakMap,isSet:isSet,isWeakSet:isWeakSet,keys:keys,allKeys:allKeys,values:values,pairs:pairs,invert:invert,functions:functions,methods:functions,extend:extend,extendOwn:extendOwn,assign:extendOwn,defaults:defaults,create:create,clone:clone,tap:tap,get:get,has:has,mapObject:mapObject,identity:identity,constant:constant,noop:noop,toPath:toPath$1,property:property,propertyOf:propertyOf,matcher:matcher,matches:matcher,times:times,random:random,now:now,escape:_escape,unescape:_unescape,templateSettings:templateSettings,template:template,result:result,uniqueId:uniqueId,chain:chain,iteratee:iteratee,partial:partial,bind:bind,bindAll:bindAll,memoize:memoize,delay:delay,defer:defer,throttle:throttle,debounce:debounce,wrap:wrap,negate:negate,compose:compose,after:after,before:before,once:once,findKey:findKey,findIndex:findIndex,findLastIndex:findLastIndex,sortedIndex:sortedIndex,indexOf:indexOf,lastIndexOf:lastIndexOf,find:find,detect:find,findWhere:findWhere,each:each,forEach:each,map:map,collect:map,reduce:reduce,foldl:reduce,inject:reduce,reduceRight:reduceRight,foldr:reduceRight,filter:filter,select:filter,reject:reject,every:every,all:every,some:some,any:some,contains:contains,includes:contains,include:contains,invoke:invoke,pluck:pluck,where:where,max:max,min:min,shuffle:shuffle,sample:sample,sortBy:sortBy,groupBy:groupBy,indexBy:indexBy,countBy:countBy,partition:partition,toArray:toArray,size:size,pick:pick,omit:omit,first:first,head:first,take:first,initial:initial,last:last,rest:rest,tail:rest,drop:rest,compact:compact,flatten:flatten,without:without,uniq:uniq,unique:uniq,union:union,intersection:intersection,difference:difference,unzip:unzip,transpose:unzip,zip:zip,object:object,range:range,chunk:chunk,mixin:mixin,"default":_$1},_=mixin(allExports);return _._=_,_})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],104:[function(require,module,exports){"function"==typeof Object.create?module.exports=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})}:module.exports=function(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}},{}],105:[function(require,module,exports){module.exports=function(arg){return arg&&"object"==typeof arg&&"function"==typeof arg.copy&&"function"==typeof arg.fill&&"function"==typeof arg.readUInt8}},{}],106:[function(require,module,exports){(function(process,global){function inspect(obj,opts){var ctx={seen:[],stylize:stylizeNoColor};return arguments.length>=3&&(ctx.depth=arguments[2]),arguments.length>=4&&(ctx.colors=arguments[3]),isBoolean(opts)?ctx.showHidden=opts:opts&&exports._extend(ctx,opts),isUndefined(ctx.showHidden)&&(ctx.showHidden=!1),isUndefined(ctx.depth)&&(ctx.depth=2),isUndefined(ctx.colors)&&(ctx.colors=!1),isUndefined(ctx.customInspect)&&(ctx.customInspect=!0),ctx.colors&&(ctx.stylize=stylizeWithColor),formatValue(ctx,obj,ctx.depth)}function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];return style?"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m":str}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};return array.forEach(function(val,idx){hash[val]=!0}),hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&(!value.constructor||value.constructor.prototype!==value)){var ret=value.inspect(recurseTimes,ctx);return isString(ret)||(ret=formatValue(ctx,ret,recurseTimes)),ret}var primitive=formatPrimitive(ctx,value);if(primitive)return primitive;var keys=Object.keys(value),visibleKeys=arrayToHash(keys);if(ctx.showHidden&&(keys=Object.getOwnPropertyNames(value)),isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0))return formatError(value);if(0===keys.length){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value))return ctx.stylize(RegExp.prototype.toString.call(value),"regexp");if(isDate(value))return ctx.stylize(Date.prototype.toString.call(value),"date");if(isError(value))return formatError(value)}var base="",array=!1,braces=["{","}"];if(isArray(value)&&(array=!0,braces=["[","]"]),isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)&&(base=" "+RegExp.prototype.toString.call(value)),isDate(value)&&(base=" "+Date.prototype.toUTCString.call(value)),isError(value)&&(base=" "+formatError(value)),0===keys.length&&(!array||0==value.length))return braces[0]+base+braces[1];if(0>recurseTimes)return isRegExp(value)?ctx.stylize(RegExp.prototype.toString.call(value),"regexp"):ctx.stylize("[Object]","special");ctx.seen.push(value);var output;return output=array?formatArray(ctx,value,recurseTimes,visibleKeys,keys):keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)}),ctx.seen.pop(),reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}return isNumber(value)?ctx.stylize(""+value,"number"):isBoolean(value)?ctx.stylize(""+value,"boolean"):isNull(value)?ctx.stylize("null","null"):void 0}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){for(var output=[],i=0,l=value.length;l>i;++i)hasOwnProperty(value,String(i))?output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,String(i),!0)):output.push("");return keys.forEach(function(key){key.match(/^\d+$/)||output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,key,!0))}),output}function formatProperty(ctx,value,recurseTimes,visibleKeys,key,array){var name,str,desc;if(desc=Object.getOwnPropertyDescriptor(value,key)||{value:value[key]},desc.get?str=desc.set?ctx.stylize("[Getter/Setter]","special"):ctx.stylize("[Getter]","special"):desc.set&&(str=ctx.stylize("[Setter]","special")),hasOwnProperty(visibleKeys,key)||(name="["+key+"]"),str||(ctx.seen.indexOf(desc.value)<0?(str=isNull(recurseTimes)?formatValue(ctx,desc.value,null):formatValue(ctx,desc.value,recurseTimes-1),str.indexOf("\n")>-1&&(str=array?str.split("\n").map(function(line){return" "+line}).join("\n").substr(2):"\n"+str.split("\n").map(function(line){return" "+line}).join("\n"))):str=ctx.stylize("[Circular]","special")),isUndefined(name)){if(array&&key.match(/^\d+$/))return str;name=JSON.stringify(""+key),name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(name=name.substr(1,name.length-2),name=ctx.stylize(name,"name")):(name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),name=ctx.stylize(name,"string"))}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0,length=output.reduce(function(prev,cur){return numLinesEst++,cur.indexOf("\n")>=0&&numLinesEst++,prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);return length>60?braces[0]+(""===base?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]:braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}function isBoolean(arg){return"boolean"==typeof arg}function isNull(arg){return null===arg}function isNullOrUndefined(arg){return null==arg}function isNumber(arg){return"number"==typeof arg}function isString(arg){return"string"==typeof arg}function isSymbol(arg){return"symbol"==typeof arg}function isUndefined(arg){return void 0===arg}function isRegExp(re){return isObject(re)&&"[object RegExp]"===objectToString(re)}function isObject(arg){return"object"==typeof arg&&null!==arg}function isDate(d){return isObject(d)&&"[object Date]"===objectToString(d)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(arg){return"function"==typeof arg}function isPrimitive(arg){return null===arg||"boolean"==typeof arg||"number"==typeof arg||"string"==typeof arg||"symbol"==typeof arg||"undefined"==typeof arg}function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return 10>n?"0"+n.toString(10):n.toString(10)}function timestamp(){var d=new Date,time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){for(var objects=[],i=0;i=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}}),x=args[i];len>i;x=args[++i])str+=isNull(x)||!isObject(x)?" "+x:" "+inspect(x);return str},exports.deprecate=function(fn,msg){function deprecated(){if(!warned){if(process.throwDeprecation)throw new Error(msg);process.traceDeprecation?console.trace(msg):console.error(msg),warned=!0}return fn.apply(this,arguments)}if(isUndefined(global.process))return function(){return exports.deprecate(fn,msg).apply(this,arguments)};if(process.noDeprecation===!0)return fn;var warned=!1;return deprecated};var debugEnviron,debugs={};exports.debuglog=function(set){if(isUndefined(debugEnviron)&&(debugEnviron=process.env.NODE_DEBUG||""),set=set.toUpperCase(),!debugs[set])if(new RegExp("\\b"+set+"\\b","i").test(debugEnviron)){var pid=process.pid;debugs[set]=function(){var msg=exports.format.apply(exports,arguments);console.error("%s %d: %s",set,pid,msg)}}else debugs[set]=function(){};return debugs[set]},exports.inspect=inspect,inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39], +green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},inspect.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},exports.isArray=isArray,exports.isBoolean=isBoolean,exports.isNull=isNull,exports.isNullOrUndefined=isNullOrUndefined,exports.isNumber=isNumber,exports.isString=isString,exports.isSymbol=isSymbol,exports.isUndefined=isUndefined,exports.isRegExp=isRegExp,exports.isObject=isObject,exports.isDate=isDate,exports.isError=isError,exports.isFunction=isFunction,exports.isPrimitive=isPrimitive,exports.isBuffer=require("./support/isBuffer");var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))},exports.inherits=require("inherits"),exports._extend=function(origin,add){if(!add||!isObject(add))return origin;for(var keys=Object.keys(add),i=keys.length;i--;)origin[keys[i]]=add[keys[i]];return origin}}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":105,_process:102,inherits:104}],107:[function(require,module,exports){(function(){var assign,getValue,isArray,isEmpty,isFunction,isObject,isPlainObject,slice=[].slice,hasProp={}.hasOwnProperty;assign=function(){var i,key,len,source,sources,target;if(target=arguments[0],sources=2<=arguments.length?slice.call(arguments,1):[],isFunction(Object.assign))Object.assign.apply(null,arguments);else for(i=0,len=sources.length;len>i;i++)if(source=sources[i],null!=source)for(key in source)hasProp.call(source,key)&&(target[key]=source[key]);return target},isFunction=function(val){return!!val&&"[object Function]"===Object.prototype.toString.call(val)},isObject=function(val){var ref;return!!val&&("function"==(ref=typeof val)||"object"===ref)},isArray=function(val){return isFunction(Array.isArray)?Array.isArray(val):"[object Array]"===Object.prototype.toString.call(val)},isEmpty=function(val){var key;if(isArray(val))return!val.length;for(key in val)if(hasProp.call(val,key))return!1;return!0},isPlainObject=function(val){var ctor,proto;return isObject(val)&&(proto=Object.getPrototypeOf(val))&&(ctor=proto.constructor)&&"function"==typeof ctor&&ctor instanceof ctor&&Function.prototype.toString.call(ctor)===Function.prototype.toString.call(Object)},getValue=function(obj){return isFunction(obj.valueOf)?obj.valueOf():obj},module.exports.assign=assign,module.exports.isFunction=isFunction,module.exports.isObject=isObject,module.exports.isArray=isArray,module.exports.isEmpty=isEmpty,module.exports.isPlainObject=isPlainObject,module.exports.getValue=getValue}).call(this)},{}],108:[function(require,module,exports){(function(){var XMLAttribute;module.exports=XMLAttribute=function(){function XMLAttribute(parent,name,value){if(this.options=parent.options,this.stringify=parent.stringify,this.parent=parent,null==name)throw new Error("Missing attribute name. "+this.debugInfo(name));if(null==value)throw new Error("Missing attribute value. "+this.debugInfo(name));this.name=this.stringify.attName(name),this.value=this.stringify.attValue(value)}return XMLAttribute.prototype.clone=function(){return Object.create(this)},XMLAttribute.prototype.toString=function(options){return this.options.writer.set(options).attribute(this)},XMLAttribute.prototype.debugInfo=function(name){var ref,ref1;return name=name||this.name,null!=name||(null!=(ref=this.parent)?ref.name:void 0)?null==name?"parent: <"+this.parent.name+">":(null!=(ref1=this.parent)?ref1.name:void 0)?"attribute: {"+name+"}, parent: <"+this.parent.name+">":"attribute: {"+name+"}":""},XMLAttribute}()}).call(this)},{}],109:[function(require,module,exports){(function(){var XMLCData,XMLNode,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;XMLNode=require("./XMLNode"),module.exports=XMLCData=function(superClass){function XMLCData(parent,text){if(XMLCData.__super__.constructor.call(this,parent),null==text)throw new Error("Missing CDATA text. "+this.debugInfo());this.text=this.stringify.cdata(text)}return extend(XMLCData,superClass),XMLCData.prototype.clone=function(){return Object.create(this)},XMLCData.prototype.toString=function(options){return this.options.writer.set(options).cdata(this)},XMLCData}(XMLNode)}).call(this)},{"./XMLNode":120}],110:[function(require,module,exports){(function(){var XMLComment,XMLNode,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;XMLNode=require("./XMLNode"),module.exports=XMLComment=function(superClass){function XMLComment(parent,text){if(XMLComment.__super__.constructor.call(this,parent),null==text)throw new Error("Missing comment text. "+this.debugInfo());this.text=this.stringify.comment(text)}return extend(XMLComment,superClass),XMLComment.prototype.clone=function(){return Object.create(this)},XMLComment.prototype.toString=function(options){return this.options.writer.set(options).comment(this)},XMLComment}(XMLNode)}).call(this)},{"./XMLNode":120}],111:[function(require,module,exports){(function(){var XMLDTDAttList,XMLNode,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;XMLNode=require("./XMLNode"),module.exports=XMLDTDAttList=function(superClass){function XMLDTDAttList(parent,elementName,attributeName,attributeType,defaultValueType,defaultValue){if(XMLDTDAttList.__super__.constructor.call(this,parent),null==elementName)throw new Error("Missing DTD element name. "+this.debugInfo());if(null==attributeName)throw new Error("Missing DTD attribute name. "+this.debugInfo(elementName));if(!attributeType)throw new Error("Missing DTD attribute type. "+this.debugInfo(elementName));if(!defaultValueType)throw new Error("Missing DTD attribute default. "+this.debugInfo(elementName));if(0!==defaultValueType.indexOf("#")&&(defaultValueType="#"+defaultValueType),!defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/))throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT. "+this.debugInfo(elementName));if(defaultValue&&!defaultValueType.match(/^(#FIXED|#DEFAULT)$/))throw new Error("Default value only applies to #FIXED or #DEFAULT. "+this.debugInfo(elementName));this.elementName=this.stringify.eleName(elementName),this.attributeName=this.stringify.attName(attributeName),this.attributeType=this.stringify.dtdAttType(attributeType),this.defaultValue=this.stringify.dtdAttDefault(defaultValue),this.defaultValueType=defaultValueType}return extend(XMLDTDAttList,superClass),XMLDTDAttList.prototype.toString=function(options){return this.options.writer.set(options).dtdAttList(this)},XMLDTDAttList}(XMLNode)}).call(this)},{"./XMLNode":120}],112:[function(require,module,exports){(function(){var XMLDTDElement,XMLNode,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;XMLNode=require("./XMLNode"),module.exports=XMLDTDElement=function(superClass){function XMLDTDElement(parent,name,value){if(XMLDTDElement.__super__.constructor.call(this,parent),null==name)throw new Error("Missing DTD element name. "+this.debugInfo());value||(value="(#PCDATA)"),Array.isArray(value)&&(value="("+value.join(",")+")"),this.name=this.stringify.eleName(name),this.value=this.stringify.dtdElementValue(value)}return extend(XMLDTDElement,superClass),XMLDTDElement.prototype.toString=function(options){return this.options.writer.set(options).dtdElement(this)},XMLDTDElement}(XMLNode)}).call(this)},{"./XMLNode":120}],113:[function(require,module,exports){(function(){var XMLDTDEntity,XMLNode,isObject,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;isObject=require("./Utility").isObject,XMLNode=require("./XMLNode"),module.exports=XMLDTDEntity=function(superClass){function XMLDTDEntity(parent,pe,name,value){if(XMLDTDEntity.__super__.constructor.call(this,parent),null==name)throw new Error("Missing DTD entity name. "+this.debugInfo(name));if(null==value)throw new Error("Missing DTD entity value. "+this.debugInfo(name));if(this.pe=!!pe,this.name=this.stringify.eleName(name),isObject(value)){if(!value.pubID&&!value.sysID)throw new Error("Public and/or system identifiers are required for an external entity. "+this.debugInfo(name));if(value.pubID&&!value.sysID)throw new Error("System identifier is required for a public external entity. "+this.debugInfo(name));if(null!=value.pubID&&(this.pubID=this.stringify.dtdPubID(value.pubID)),null!=value.sysID&&(this.sysID=this.stringify.dtdSysID(value.sysID)),null!=value.nData&&(this.nData=this.stringify.dtdNData(value.nData)),this.pe&&this.nData)throw new Error("Notation declaration is not allowed in a parameter entity. "+this.debugInfo(name))}else this.value=this.stringify.dtdEntityValue(value)}return extend(XMLDTDEntity,superClass),XMLDTDEntity.prototype.toString=function(options){return this.options.writer.set(options).dtdEntity(this)},XMLDTDEntity}(XMLNode)}).call(this)},{"./Utility":107,"./XMLNode":120}],114:[function(require,module,exports){(function(){var XMLDTDNotation,XMLNode,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;XMLNode=require("./XMLNode"),module.exports=XMLDTDNotation=function(superClass){function XMLDTDNotation(parent,name,value){if(XMLDTDNotation.__super__.constructor.call(this,parent),null==name)throw new Error("Missing DTD notation name. "+this.debugInfo(name));if(!value.pubID&&!value.sysID)throw new Error("Public or system identifiers are required for an external entity. "+this.debugInfo(name));this.name=this.stringify.eleName(name),null!=value.pubID&&(this.pubID=this.stringify.dtdPubID(value.pubID)),null!=value.sysID&&(this.sysID=this.stringify.dtdSysID(value.sysID))}return extend(XMLDTDNotation,superClass),XMLDTDNotation.prototype.toString=function(options){return this.options.writer.set(options).dtdNotation(this)},XMLDTDNotation}(XMLNode)}).call(this)},{"./XMLNode":120}],115:[function(require,module,exports){(function(){var XMLDeclaration,XMLNode,isObject,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;isObject=require("./Utility").isObject,XMLNode=require("./XMLNode"),module.exports=XMLDeclaration=function(superClass){function XMLDeclaration(parent,version,encoding,standalone){var ref;XMLDeclaration.__super__.constructor.call(this,parent),isObject(version)&&(ref=version,version=ref.version,encoding=ref.encoding,standalone=ref.standalone),version||(version="1.0"),this.version=this.stringify.xmlVersion(version),null!=encoding&&(this.encoding=this.stringify.xmlEncoding(encoding)),null!=standalone&&(this.standalone=this.stringify.xmlStandalone(standalone))}return extend(XMLDeclaration,superClass),XMLDeclaration.prototype.toString=function(options){return this.options.writer.set(options).declaration(this)},XMLDeclaration}(XMLNode)}).call(this)},{"./Utility":107,"./XMLNode":120}],116:[function(require,module,exports){(function(){var XMLDTDAttList,XMLDTDElement,XMLDTDEntity,XMLDTDNotation,XMLDocType,XMLNode,isObject,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;isObject=require("./Utility").isObject,XMLNode=require("./XMLNode"),XMLDTDAttList=require("./XMLDTDAttList"),XMLDTDEntity=require("./XMLDTDEntity"),XMLDTDElement=require("./XMLDTDElement"),XMLDTDNotation=require("./XMLDTDNotation"),module.exports=XMLDocType=function(superClass){function XMLDocType(parent,pubID,sysID){var ref,ref1;XMLDocType.__super__.constructor.call(this,parent),this.name="!DOCTYPE",this.documentObject=parent,isObject(pubID)&&(ref=pubID,pubID=ref.pubID,sysID=ref.sysID),null==sysID&&(ref1=[pubID,sysID],sysID=ref1[0],pubID=ref1[1]),null!=pubID&&(this.pubID=this.stringify.dtdPubID(pubID)),null!=sysID&&(this.sysID=this.stringify.dtdSysID(sysID))}return extend(XMLDocType,superClass),XMLDocType.prototype.element=function(name,value){var child;return child=new XMLDTDElement(this,name,value),this.children.push(child),this},XMLDocType.prototype.attList=function(elementName,attributeName,attributeType,defaultValueType,defaultValue){var child;return child=new XMLDTDAttList(this,elementName,attributeName,attributeType,defaultValueType,defaultValue),this.children.push(child),this},XMLDocType.prototype.entity=function(name,value){var child;return child=new XMLDTDEntity(this,!1,name,value),this.children.push(child),this},XMLDocType.prototype.pEntity=function(name,value){var child;return child=new XMLDTDEntity(this,!0,name,value),this.children.push(child),this},XMLDocType.prototype.notation=function(name,value){var child;return child=new XMLDTDNotation(this,name,value),this.children.push(child),this},XMLDocType.prototype.toString=function(options){return this.options.writer.set(options).docType(this)},XMLDocType.prototype.ele=function(name,value){return this.element(name,value)},XMLDocType.prototype.att=function(elementName,attributeName,attributeType,defaultValueType,defaultValue){return this.attList(elementName,attributeName,attributeType,defaultValueType,defaultValue)},XMLDocType.prototype.ent=function(name,value){return this.entity(name,value)},XMLDocType.prototype.pent=function(name,value){return this.pEntity(name,value)},XMLDocType.prototype.not=function(name,value){return this.notation(name,value)},XMLDocType.prototype.up=function(){return this.root()||this.documentObject},XMLDocType}(XMLNode)}).call(this)},{"./Utility":107,"./XMLDTDAttList":111,"./XMLDTDElement":112,"./XMLDTDEntity":113,"./XMLDTDNotation":114,"./XMLNode":120}],117:[function(require,module,exports){(function(){var XMLDocument,XMLNode,XMLStringWriter,XMLStringifier,isPlainObject,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;isPlainObject=require("./Utility").isPlainObject,XMLNode=require("./XMLNode"),XMLStringifier=require("./XMLStringifier"),XMLStringWriter=require("./XMLStringWriter"),module.exports=XMLDocument=function(superClass){function XMLDocument(options){XMLDocument.__super__.constructor.call(this,null),this.name="?xml",options||(options={}),options.writer||(options.writer=new XMLStringWriter),this.options=options,this.stringify=new XMLStringifier(options),this.isDocument=!0}return extend(XMLDocument,superClass),XMLDocument.prototype.end=function(writer){var writerOptions;return writer?isPlainObject(writer)&&(writerOptions=writer,writer=this.options.writer.set(writerOptions)):writer=this.options.writer,writer.document(this)},XMLDocument.prototype.toString=function(options){return this.options.writer.set(options).document(this)},XMLDocument}(XMLNode)}).call(this)},{"./Utility":107,"./XMLNode":120,"./XMLStringWriter":124,"./XMLStringifier":125}],118:[function(require,module,exports){(function(){var XMLAttribute,XMLCData,XMLComment,XMLDTDAttList,XMLDTDElement,XMLDTDEntity,XMLDTDNotation,XMLDeclaration,XMLDocType,XMLDocumentCB,XMLElement,XMLProcessingInstruction,XMLRaw,XMLStringWriter,XMLStringifier,XMLText,getValue,isFunction,isObject,isPlainObject,ref,hasProp={}.hasOwnProperty;ref=require("./Utility"),isObject=ref.isObject,isFunction=ref.isFunction,isPlainObject=ref.isPlainObject,getValue=ref.getValue,XMLElement=require("./XMLElement"),XMLCData=require("./XMLCData"),XMLComment=require("./XMLComment"),XMLRaw=require("./XMLRaw"),XMLText=require("./XMLText"),XMLProcessingInstruction=require("./XMLProcessingInstruction"),XMLDeclaration=require("./XMLDeclaration"),XMLDocType=require("./XMLDocType"),XMLDTDAttList=require("./XMLDTDAttList"),XMLDTDEntity=require("./XMLDTDEntity"),XMLDTDElement=require("./XMLDTDElement"),XMLDTDNotation=require("./XMLDTDNotation"),XMLAttribute=require("./XMLAttribute"),XMLStringifier=require("./XMLStringifier"),XMLStringWriter=require("./XMLStringWriter"),module.exports=XMLDocumentCB=function(){function XMLDocumentCB(options,onData,onEnd){var writerOptions;this.name="?xml",options||(options={}),options.writer?isPlainObject(options.writer)&&(writerOptions=options.writer,options.writer=new XMLStringWriter(writerOptions)):options.writer=new XMLStringWriter(options),this.options=options,this.writer=options.writer,this.stringify=new XMLStringifier(options),this.onDataCallback=onData||function(){},this.onEndCallback=onEnd||function(){},this.currentNode=null,this.currentLevel=-1,this.openTags={},this.documentStarted=!1,this.documentCompleted=!1,this.root=null}return XMLDocumentCB.prototype.node=function(name,attributes,text){var ref1;if(null==name)throw new Error("Missing node name.");if(this.root&&-1===this.currentLevel)throw new Error("Document can only have one root node. "+this.debugInfo(name));return this.openCurrent(),name=getValue(name),null==attributes&&(attributes={}),attributes=getValue(attributes),isObject(attributes)||(ref1=[attributes,text],text=ref1[0],attributes=ref1[1]),this.currentNode=new XMLElement(this,name,attributes),this.currentNode.children=!1,this.currentLevel++,this.openTags[this.currentLevel]=this.currentNode,null!=text&&this.text(text),this},XMLDocumentCB.prototype.element=function(name,attributes,text){return this.currentNode&&this.currentNode instanceof XMLDocType?this.dtdElement.apply(this,arguments):this.node(name,attributes,text)},XMLDocumentCB.prototype.attribute=function(name,value){var attName,attValue;if(!this.currentNode||this.currentNode.children)throw new Error("att() can only be used immediately after an ele() call in callback mode. "+this.debugInfo(name));if(null!=name&&(name=getValue(name)),isObject(name))for(attName in name)hasProp.call(name,attName)&&(attValue=name[attName],this.attribute(attName,attValue));else isFunction(value)&&(value=value.apply()),this.options.skipNullAttributes&&null==value||(this.currentNode.attributes[name]=new XMLAttribute(this,name,value));return this},XMLDocumentCB.prototype.text=function(value){var node;return this.openCurrent(),node=new XMLText(this,value),this.onData(this.writer.text(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.cdata=function(value){var node;return this.openCurrent(),node=new XMLCData(this,value),this.onData(this.writer.cdata(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.comment=function(value){var node;return this.openCurrent(),node=new XMLComment(this,value),this.onData(this.writer.comment(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.raw=function(value){var node;return this.openCurrent(),node=new XMLRaw(this,value),this.onData(this.writer.raw(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.instruction=function(target,value){var i,insTarget,insValue,len,node;if(this.openCurrent(),null!=target&&(target=getValue(target)),null!=value&&(value=getValue(value)),Array.isArray(target))for(i=0,len=target.length;len>i;i++)insTarget=target[i],this.instruction(insTarget);else if(isObject(target))for(insTarget in target)hasProp.call(target,insTarget)&&(insValue=target[insTarget],this.instruction(insTarget,insValue));else isFunction(value)&&(value=value.apply()),node=new XMLProcessingInstruction(this,target,value),this.onData(this.writer.processingInstruction(node,this.currentLevel+1),this.currentLevel+1);return this},XMLDocumentCB.prototype.declaration=function(version,encoding,standalone){var node;if(this.openCurrent(),this.documentStarted)throw new Error("declaration() must be the first node.");return node=new XMLDeclaration(this,version,encoding,standalone),this.onData(this.writer.declaration(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.doctype=function(root,pubID,sysID){if(this.openCurrent(),null==root)throw new Error("Missing root node name.");if(this.root)throw new Error("dtd() must come before the root node.");return this.currentNode=new XMLDocType(this,pubID,sysID),this.currentNode.rootNodeName=root,this.currentNode.children=!1,this.currentLevel++,this.openTags[this.currentLevel]=this.currentNode,this},XMLDocumentCB.prototype.dtdElement=function(name,value){var node;return this.openCurrent(),node=new XMLDTDElement(this,name,value),this.onData(this.writer.dtdElement(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.attList=function(elementName,attributeName,attributeType,defaultValueType,defaultValue){var node;return this.openCurrent(),node=new XMLDTDAttList(this,elementName,attributeName,attributeType,defaultValueType,defaultValue),this.onData(this.writer.dtdAttList(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.entity=function(name,value){var node;return this.openCurrent(),node=new XMLDTDEntity(this,!1,name,value),this.onData(this.writer.dtdEntity(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.pEntity=function(name,value){var node;return this.openCurrent(),node=new XMLDTDEntity(this,!0,name,value),this.onData(this.writer.dtdEntity(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.notation=function(name,value){var node;return this.openCurrent(),node=new XMLDTDNotation(this,name,value),this.onData(this.writer.dtdNotation(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.up=function(){if(this.currentLevel<0)throw new Error("The document node has no parent.");return this.currentNode?(this.currentNode.children?this.closeNode(this.currentNode):this.openNode(this.currentNode),this.currentNode=null):this.closeNode(this.openTags[this.currentLevel]),delete this.openTags[this.currentLevel],this.currentLevel--,this},XMLDocumentCB.prototype.end=function(){for(;this.currentLevel>=0;)this.up();return this.onEnd()},XMLDocumentCB.prototype.openCurrent=function(){return this.currentNode?(this.currentNode.children=!0,this.openNode(this.currentNode)):void 0},XMLDocumentCB.prototype.openNode=function(node){return node.isOpen?void 0:(!this.root&&0===this.currentLevel&&node instanceof XMLElement&&(this.root=node),this.onData(this.writer.openNode(node,this.currentLevel),this.currentLevel),node.isOpen=!0)},XMLDocumentCB.prototype.closeNode=function(node){return node.isClosed?void 0:(this.onData(this.writer.closeNode(node,this.currentLevel),this.currentLevel),node.isClosed=!0)},XMLDocumentCB.prototype.onData=function(chunk,level){return this.documentStarted=!0,this.onDataCallback(chunk,level+1)},XMLDocumentCB.prototype.onEnd=function(){return this.documentCompleted=!0,this.onEndCallback()},XMLDocumentCB.prototype.debugInfo=function(name){return null==name?"":"node: <"+name+">"},XMLDocumentCB.prototype.ele=function(){return this.element.apply(this,arguments)},XMLDocumentCB.prototype.nod=function(name,attributes,text){return this.node(name,attributes,text)},XMLDocumentCB.prototype.txt=function(value){return this.text(value)},XMLDocumentCB.prototype.dat=function(value){return this.cdata(value)},XMLDocumentCB.prototype.com=function(value){return this.comment(value)},XMLDocumentCB.prototype.ins=function(target,value){return this.instruction(target,value)},XMLDocumentCB.prototype.dec=function(version,encoding,standalone){return this.declaration(version,encoding,standalone)},XMLDocumentCB.prototype.dtd=function(root,pubID,sysID){return this.doctype(root,pubID,sysID)},XMLDocumentCB.prototype.e=function(name,attributes,text){return this.element(name,attributes,text)},XMLDocumentCB.prototype.n=function(name,attributes,text){return this.node(name,attributes,text)},XMLDocumentCB.prototype.t=function(value){return this.text(value)},XMLDocumentCB.prototype.d=function(value){return this.cdata(value)},XMLDocumentCB.prototype.c=function(value){return this.comment(value)},XMLDocumentCB.prototype.r=function(value){return this.raw(value)},XMLDocumentCB.prototype.i=function(target,value){return this.instruction(target,value)},XMLDocumentCB.prototype.att=function(){return this.currentNode&&this.currentNode instanceof XMLDocType?this.attList.apply(this,arguments):this.attribute.apply(this,arguments)},XMLDocumentCB.prototype.a=function(){return this.currentNode&&this.currentNode instanceof XMLDocType?this.attList.apply(this,arguments):this.attribute.apply(this,arguments)},XMLDocumentCB.prototype.ent=function(name,value){return this.entity(name,value)},XMLDocumentCB.prototype.pent=function(name,value){return this.pEntity(name,value)},XMLDocumentCB.prototype.not=function(name,value){return this.notation(name,value)},XMLDocumentCB}()}).call(this)},{"./Utility":107,"./XMLAttribute":108,"./XMLCData":109,"./XMLComment":110,"./XMLDTDAttList":111,"./XMLDTDElement":112,"./XMLDTDEntity":113,"./XMLDTDNotation":114,"./XMLDeclaration":115,"./XMLDocType":116,"./XMLElement":119,"./XMLProcessingInstruction":121,"./XMLRaw":122,"./XMLStringWriter":124,"./XMLStringifier":125,"./XMLText":126}],119:[function(require,module,exports){(function(){var XMLAttribute,XMLElement,XMLNode,getValue,isFunction,isObject,ref,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;ref=require("./Utility"),isObject=ref.isObject,isFunction=ref.isFunction,getValue=ref.getValue,XMLNode=require("./XMLNode"),XMLAttribute=require("./XMLAttribute"),module.exports=XMLElement=function(superClass){function XMLElement(parent,name,attributes){if(XMLElement.__super__.constructor.call(this,parent),null==name)throw new Error("Missing element name. "+this.debugInfo());this.name=this.stringify.eleName(name),this.attributes={},null!=attributes&&this.attribute(attributes),parent.isDocument&&(this.isRoot=!0,this.documentObject=parent,parent.rootObject=this)}return extend(XMLElement,superClass),XMLElement.prototype.clone=function(){var att,attName,clonedSelf,ref1;clonedSelf=Object.create(this),clonedSelf.isRoot&&(clonedSelf.documentObject=null),clonedSelf.attributes={},ref1=this.attributes;for(attName in ref1)hasProp.call(ref1,attName)&&(att=ref1[attName],clonedSelf.attributes[attName]=att.clone());return clonedSelf.children=[],this.children.forEach(function(child){var clonedChild;return clonedChild=child.clone(),clonedChild.parent=clonedSelf,clonedSelf.children.push(clonedChild)}),clonedSelf},XMLElement.prototype.attribute=function(name,value){var attName,attValue;if(null!=name&&(name=getValue(name)),isObject(name))for(attName in name)hasProp.call(name,attName)&&(attValue=name[attName],this.attribute(attName,attValue));else isFunction(value)&&(value=value.apply()),this.options.skipNullAttributes&&null==value||(this.attributes[name]=new XMLAttribute(this,name,value));return this},XMLElement.prototype.removeAttribute=function(name){var attName,i,len;if(null==name)throw new Error("Missing attribute name. "+this.debugInfo());if(name=getValue(name),Array.isArray(name))for(i=0,len=name.length;len>i;i++)attName=name[i],delete this.attributes[attName];else delete this.attributes[name];return this},XMLElement.prototype.toString=function(options){return this.options.writer.set(options).element(this)},XMLElement.prototype.att=function(name,value){return this.attribute(name,value)},XMLElement.prototype.a=function(name,value){return this.attribute(name,value)},XMLElement}(XMLNode)}).call(this)},{"./Utility":107,"./XMLAttribute":108,"./XMLNode":120}],120:[function(require,module,exports){(function(){var XMLCData,XMLComment,XMLDeclaration,XMLDocType,XMLElement,XMLNode,XMLProcessingInstruction,XMLRaw,XMLText,getValue,isEmpty,isFunction,isObject,ref,hasProp={}.hasOwnProperty;ref=require("./Utility"),isObject=ref.isObject,isFunction=ref.isFunction,isEmpty=ref.isEmpty,getValue=ref.getValue,XMLElement=null,XMLCData=null,XMLComment=null,XMLDeclaration=null,XMLDocType=null,XMLRaw=null,XMLText=null,XMLProcessingInstruction=null,module.exports=XMLNode=function(){function XMLNode(parent){this.parent=parent,this.parent&&(this.options=this.parent.options,this.stringify=this.parent.stringify),this.children=[],XMLElement||(XMLElement=require("./XMLElement"),XMLCData=require("./XMLCData"),XMLComment=require("./XMLComment"),XMLDeclaration=require("./XMLDeclaration"),XMLDocType=require("./XMLDocType"),XMLRaw=require("./XMLRaw"),XMLText=require("./XMLText"),XMLProcessingInstruction=require("./XMLProcessingInstruction"))}return XMLNode.prototype.element=function(name,attributes,text){var childNode,item,j,k,key,lastChild,len,len1,ref1,val;if(lastChild=null,null==attributes&&(attributes={}),attributes=getValue(attributes),isObject(attributes)||(ref1=[attributes,text],text=ref1[0],attributes=ref1[1]),null!=name&&(name=getValue(name)),Array.isArray(name))for(j=0,len=name.length;len>j;j++)item=name[j],lastChild=this.element(item);else if(isFunction(name))lastChild=this.element(name.apply());else if(isObject(name)){for(key in name)if(hasProp.call(name,key))if(val=name[key],isFunction(val)&&(val=val.apply()),isObject(val)&&isEmpty(val)&&(val=null),!this.options.ignoreDecorators&&this.stringify.convertAttKey&&0===key.indexOf(this.stringify.convertAttKey))lastChild=this.attribute(key.substr(this.stringify.convertAttKey.length),val);else if(!this.options.separateArrayItems&&Array.isArray(val))for(k=0,len1=val.length;len1>k;k++)item=val[k],childNode={},childNode[key]=item,lastChild=this.element(childNode);else isObject(val)?(lastChild=this.element(key),lastChild.element(val)):lastChild=this.element(key,val)}else lastChild=!this.options.ignoreDecorators&&this.stringify.convertTextKey&&0===name.indexOf(this.stringify.convertTextKey)?this.text(text):!this.options.ignoreDecorators&&this.stringify.convertCDataKey&&0===name.indexOf(this.stringify.convertCDataKey)?this.cdata(text):!this.options.ignoreDecorators&&this.stringify.convertCommentKey&&0===name.indexOf(this.stringify.convertCommentKey)?this.comment(text):!this.options.ignoreDecorators&&this.stringify.convertRawKey&&0===name.indexOf(this.stringify.convertRawKey)?this.raw(text):!this.options.ignoreDecorators&&this.stringify.convertPIKey&&0===name.indexOf(this.stringify.convertPIKey)?this.instruction(name.substr(this.stringify.convertPIKey.length),text):this.node(name,attributes,text);if(null==lastChild)throw new Error("Could not create any elements with: "+name+". "+this.debugInfo());return lastChild},XMLNode.prototype.insertBefore=function(name,attributes,text){var child,i,removed;if(this.isRoot)throw new Error("Cannot insert elements at root level. "+this.debugInfo(name)); +return i=this.parent.children.indexOf(this),removed=this.parent.children.splice(i),child=this.parent.element(name,attributes,text),Array.prototype.push.apply(this.parent.children,removed),child},XMLNode.prototype.insertAfter=function(name,attributes,text){var child,i,removed;if(this.isRoot)throw new Error("Cannot insert elements at root level. "+this.debugInfo(name));return i=this.parent.children.indexOf(this),removed=this.parent.children.splice(i+1),child=this.parent.element(name,attributes,text),Array.prototype.push.apply(this.parent.children,removed),child},XMLNode.prototype.remove=function(){var i,ref1;if(this.isRoot)throw new Error("Cannot remove the root element. "+this.debugInfo());return i=this.parent.children.indexOf(this),[].splice.apply(this.parent.children,[i,i-i+1].concat(ref1=[])),ref1,this.parent},XMLNode.prototype.node=function(name,attributes,text){var child,ref1;return null!=name&&(name=getValue(name)),attributes||(attributes={}),attributes=getValue(attributes),isObject(attributes)||(ref1=[attributes,text],text=ref1[0],attributes=ref1[1]),child=new XMLElement(this,name,attributes),null!=text&&child.text(text),this.children.push(child),child},XMLNode.prototype.text=function(value){var child;return child=new XMLText(this,value),this.children.push(child),this},XMLNode.prototype.cdata=function(value){var child;return child=new XMLCData(this,value),this.children.push(child),this},XMLNode.prototype.comment=function(value){var child;return child=new XMLComment(this,value),this.children.push(child),this},XMLNode.prototype.commentBefore=function(value){var child,i,removed;return i=this.parent.children.indexOf(this),removed=this.parent.children.splice(i),child=this.parent.comment(value),Array.prototype.push.apply(this.parent.children,removed),this},XMLNode.prototype.commentAfter=function(value){var child,i,removed;return i=this.parent.children.indexOf(this),removed=this.parent.children.splice(i+1),child=this.parent.comment(value),Array.prototype.push.apply(this.parent.children,removed),this},XMLNode.prototype.raw=function(value){var child;return child=new XMLRaw(this,value),this.children.push(child),this},XMLNode.prototype.instruction=function(target,value){var insTarget,insValue,instruction,j,len;if(null!=target&&(target=getValue(target)),null!=value&&(value=getValue(value)),Array.isArray(target))for(j=0,len=target.length;len>j;j++)insTarget=target[j],this.instruction(insTarget);else if(isObject(target))for(insTarget in target)hasProp.call(target,insTarget)&&(insValue=target[insTarget],this.instruction(insTarget,insValue));else isFunction(value)&&(value=value.apply()),instruction=new XMLProcessingInstruction(this,target,value),this.children.push(instruction);return this},XMLNode.prototype.instructionBefore=function(target,value){var child,i,removed;return i=this.parent.children.indexOf(this),removed=this.parent.children.splice(i),child=this.parent.instruction(target,value),Array.prototype.push.apply(this.parent.children,removed),this},XMLNode.prototype.instructionAfter=function(target,value){var child,i,removed;return i=this.parent.children.indexOf(this),removed=this.parent.children.splice(i+1),child=this.parent.instruction(target,value),Array.prototype.push.apply(this.parent.children,removed),this},XMLNode.prototype.declaration=function(version,encoding,standalone){var doc,xmldec;return doc=this.document(),xmldec=new XMLDeclaration(doc,version,encoding,standalone),doc.children[0]instanceof XMLDeclaration?doc.children[0]=xmldec:doc.children.unshift(xmldec),doc.root()||doc},XMLNode.prototype.doctype=function(pubID,sysID){var child,doc,doctype,i,j,k,len,len1,ref1,ref2;for(doc=this.document(),doctype=new XMLDocType(doc,pubID,sysID),ref1=doc.children,i=j=0,len=ref1.length;len>j;i=++j)if(child=ref1[i],child instanceof XMLDocType)return doc.children[i]=doctype,doctype;for(ref2=doc.children,i=k=0,len1=ref2.length;len1>k;i=++k)if(child=ref2[i],child.isRoot)return doc.children.splice(i,0,doctype),doctype;return doc.children.push(doctype),doctype},XMLNode.prototype.up=function(){if(this.isRoot)throw new Error("The root node has no parent. Use doc() if you need to get the document object.");return this.parent},XMLNode.prototype.root=function(){var node;for(node=this;node;){if(node.isDocument)return node.rootObject;if(node.isRoot)return node;node=node.parent}},XMLNode.prototype.document=function(){var node;for(node=this;node;){if(node.isDocument)return node;node=node.parent}},XMLNode.prototype.end=function(options){return this.document().end(options)},XMLNode.prototype.prev=function(){var i;if(i=this.parent.children.indexOf(this),1>i)throw new Error("Already at the first node. "+this.debugInfo());return this.parent.children[i-1]},XMLNode.prototype.next=function(){var i;if(i=this.parent.children.indexOf(this),-1===i||i===this.parent.children.length-1)throw new Error("Already at the last node. "+this.debugInfo());return this.parent.children[i+1]},XMLNode.prototype.importDocument=function(doc){var clonedRoot;return clonedRoot=doc.root().clone(),clonedRoot.parent=this,clonedRoot.isRoot=!1,this.children.push(clonedRoot),this},XMLNode.prototype.debugInfo=function(name){var ref1,ref2;return name=name||this.name,null!=name||(null!=(ref1=this.parent)?ref1.name:void 0)?null==name?"parent: <"+this.parent.name+">":(null!=(ref2=this.parent)?ref2.name:void 0)?"node: <"+name+">, parent: <"+this.parent.name+">":"node: <"+name+">":""},XMLNode.prototype.ele=function(name,attributes,text){return this.element(name,attributes,text)},XMLNode.prototype.nod=function(name,attributes,text){return this.node(name,attributes,text)},XMLNode.prototype.txt=function(value){return this.text(value)},XMLNode.prototype.dat=function(value){return this.cdata(value)},XMLNode.prototype.com=function(value){return this.comment(value)},XMLNode.prototype.ins=function(target,value){return this.instruction(target,value)},XMLNode.prototype.doc=function(){return this.document()},XMLNode.prototype.dec=function(version,encoding,standalone){return this.declaration(version,encoding,standalone)},XMLNode.prototype.dtd=function(pubID,sysID){return this.doctype(pubID,sysID)},XMLNode.prototype.e=function(name,attributes,text){return this.element(name,attributes,text)},XMLNode.prototype.n=function(name,attributes,text){return this.node(name,attributes,text)},XMLNode.prototype.t=function(value){return this.text(value)},XMLNode.prototype.d=function(value){return this.cdata(value)},XMLNode.prototype.c=function(value){return this.comment(value)},XMLNode.prototype.r=function(value){return this.raw(value)},XMLNode.prototype.i=function(target,value){return this.instruction(target,value)},XMLNode.prototype.u=function(){return this.up()},XMLNode.prototype.importXMLBuilder=function(doc){return this.importDocument(doc)},XMLNode}()}).call(this)},{"./Utility":107,"./XMLCData":109,"./XMLComment":110,"./XMLDeclaration":115,"./XMLDocType":116,"./XMLElement":119,"./XMLProcessingInstruction":121,"./XMLRaw":122,"./XMLText":126}],121:[function(require,module,exports){(function(){var XMLNode,XMLProcessingInstruction,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;XMLNode=require("./XMLNode"),module.exports=XMLProcessingInstruction=function(superClass){function XMLProcessingInstruction(parent,target,value){if(XMLProcessingInstruction.__super__.constructor.call(this,parent),null==target)throw new Error("Missing instruction target. "+this.debugInfo());this.target=this.stringify.insTarget(target),value&&(this.value=this.stringify.insValue(value))}return extend(XMLProcessingInstruction,superClass),XMLProcessingInstruction.prototype.clone=function(){return Object.create(this)},XMLProcessingInstruction.prototype.toString=function(options){return this.options.writer.set(options).processingInstruction(this)},XMLProcessingInstruction}(XMLNode)}).call(this)},{"./XMLNode":120}],122:[function(require,module,exports){(function(){var XMLNode,XMLRaw,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;XMLNode=require("./XMLNode"),module.exports=XMLRaw=function(superClass){function XMLRaw(parent,text){if(XMLRaw.__super__.constructor.call(this,parent),null==text)throw new Error("Missing raw text. "+this.debugInfo());this.value=this.stringify.raw(text)}return extend(XMLRaw,superClass),XMLRaw.prototype.clone=function(){return Object.create(this)},XMLRaw.prototype.toString=function(options){return this.options.writer.set(options).raw(this)},XMLRaw}(XMLNode)}).call(this)},{"./XMLNode":120}],123:[function(require,module,exports){(function(){var XMLCData,XMLComment,XMLDTDAttList,XMLDTDElement,XMLDTDEntity,XMLDTDNotation,XMLDeclaration,XMLDocType,XMLElement,XMLProcessingInstruction,XMLRaw,XMLStreamWriter,XMLText,XMLWriterBase,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;XMLDeclaration=require("./XMLDeclaration"),XMLDocType=require("./XMLDocType"),XMLCData=require("./XMLCData"),XMLComment=require("./XMLComment"),XMLElement=require("./XMLElement"),XMLRaw=require("./XMLRaw"),XMLText=require("./XMLText"),XMLProcessingInstruction=require("./XMLProcessingInstruction"),XMLDTDAttList=require("./XMLDTDAttList"),XMLDTDElement=require("./XMLDTDElement"),XMLDTDEntity=require("./XMLDTDEntity"),XMLDTDNotation=require("./XMLDTDNotation"),XMLWriterBase=require("./XMLWriterBase"),module.exports=XMLStreamWriter=function(superClass){function XMLStreamWriter(stream,options){XMLStreamWriter.__super__.constructor.call(this,options),this.stream=stream}return extend(XMLStreamWriter,superClass),XMLStreamWriter.prototype.document=function(doc){var child,i,j,len,len1,ref,ref1,results;for(ref=doc.children,i=0,len=ref.length;len>i;i++)child=ref[i],child.isLastRootNode=!1;for(doc.children[doc.children.length-1].isLastRootNode=!0,ref1=doc.children,results=[],j=0,len1=ref1.length;len1>j;j++)switch(child=ref1[j],!1){case!(child instanceof XMLDeclaration):results.push(this.declaration(child));break;case!(child instanceof XMLDocType):results.push(this.docType(child));break;case!(child instanceof XMLComment):results.push(this.comment(child));break;case!(child instanceof XMLProcessingInstruction):results.push(this.processingInstruction(child));break;default:results.push(this.element(child))}return results},XMLStreamWriter.prototype.attribute=function(att){return this.stream.write(" "+att.name+'="'+att.value+'"')},XMLStreamWriter.prototype.cdata=function(node,level){return this.stream.write(this.space(level)+""+this.endline(node))},XMLStreamWriter.prototype.comment=function(node,level){return this.stream.write(this.space(level)+""+this.endline(node))},XMLStreamWriter.prototype.declaration=function(node,level){return this.stream.write(this.space(level)),this.stream.write('"),this.stream.write(this.endline(node))},XMLStreamWriter.prototype.docType=function(node,level){var child,i,len,ref;if(level||(level=0),this.stream.write(this.space(level)),this.stream.write("0){for(this.stream.write(" ["),this.stream.write(this.endline(node)),ref=node.children,i=0,len=ref.length;len>i;i++)switch(child=ref[i],!1){case!(child instanceof XMLDTDAttList):this.dtdAttList(child,level+1);break;case!(child instanceof XMLDTDElement):this.dtdElement(child,level+1);break;case!(child instanceof XMLDTDEntity):this.dtdEntity(child,level+1);break;case!(child instanceof XMLDTDNotation):this.dtdNotation(child,level+1);break;case!(child instanceof XMLCData):this.cdata(child,level+1);break;case!(child instanceof XMLComment):this.comment(child,level+1);break;case!(child instanceof XMLProcessingInstruction):this.processingInstruction(child,level+1);break;default:throw new Error("Unknown DTD node type: "+child.constructor.name)}this.stream.write("]")}return this.stream.write(this.spacebeforeslash+">"),this.stream.write(this.endline(node))},XMLStreamWriter.prototype.element=function(node,level){var att,child,i,len,name,ref,ref1,space;level||(level=0),space=this.space(level),this.stream.write(space+"<"+node.name),ref=node.attributes;for(name in ref)hasProp.call(ref,name)&&(att=ref[name],this.attribute(att));if(0===node.children.length||node.children.every(function(e){return""===e.value}))this.allowEmpty?this.stream.write(">"):this.stream.write(this.spacebeforeslash+"/>");else if(this.pretty&&1===node.children.length&&null!=node.children[0].value)this.stream.write(">"),this.stream.write(node.children[0].value),this.stream.write("");else{for(this.stream.write(">"+this.newline),ref1=node.children,i=0,len=ref1.length;len>i;i++)switch(child=ref1[i],!1){case!(child instanceof XMLCData):this.cdata(child,level+1);break;case!(child instanceof XMLComment):this.comment(child,level+1);break;case!(child instanceof XMLElement):this.element(child,level+1);break;case!(child instanceof XMLRaw):this.raw(child,level+1);break;case!(child instanceof XMLText):this.text(child,level+1);break;case!(child instanceof XMLProcessingInstruction):this.processingInstruction(child,level+1);break;default:throw new Error("Unknown XML node type: "+child.constructor.name)}this.stream.write(space+"")}return this.stream.write(this.endline(node))},XMLStreamWriter.prototype.processingInstruction=function(node,level){return this.stream.write(this.space(level)+""+this.endline(node))},XMLStreamWriter.prototype.raw=function(node,level){return this.stream.write(this.space(level)+node.value+this.endline(node))},XMLStreamWriter.prototype.text=function(node,level){return this.stream.write(this.space(level)+node.value+this.endline(node))},XMLStreamWriter.prototype.dtdAttList=function(node,level){return this.stream.write(this.space(level)+""+this.endline(node))},XMLStreamWriter.prototype.dtdElement=function(node,level){return this.stream.write(this.space(level)+""+this.endline(node))},XMLStreamWriter.prototype.dtdEntity=function(node,level){return this.stream.write(this.space(level)+""+this.endline(node))},XMLStreamWriter.prototype.dtdNotation=function(node,level){return this.stream.write(this.space(level)+""+this.endline(node))},XMLStreamWriter.prototype.endline=function(node){return node.isLastRootNode?"":this.newline},XMLStreamWriter}(XMLWriterBase)}).call(this)},{"./XMLCData":109,"./XMLComment":110,"./XMLDTDAttList":111,"./XMLDTDElement":112,"./XMLDTDEntity":113,"./XMLDTDNotation":114,"./XMLDeclaration":115,"./XMLDocType":116,"./XMLElement":119,"./XMLProcessingInstruction":121,"./XMLRaw":122,"./XMLText":126,"./XMLWriterBase":127}],124:[function(require,module,exports){(function(){var XMLCData,XMLComment,XMLDTDAttList,XMLDTDElement,XMLDTDEntity,XMLDTDNotation,XMLDeclaration,XMLDocType,XMLElement,XMLProcessingInstruction,XMLRaw,XMLStringWriter,XMLText,XMLWriterBase,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;XMLDeclaration=require("./XMLDeclaration"),XMLDocType=require("./XMLDocType"),XMLCData=require("./XMLCData"),XMLComment=require("./XMLComment"),XMLElement=require("./XMLElement"),XMLRaw=require("./XMLRaw"),XMLText=require("./XMLText"),XMLProcessingInstruction=require("./XMLProcessingInstruction"),XMLDTDAttList=require("./XMLDTDAttList"),XMLDTDElement=require("./XMLDTDElement"),XMLDTDEntity=require("./XMLDTDEntity"),XMLDTDNotation=require("./XMLDTDNotation"),XMLWriterBase=require("./XMLWriterBase"),module.exports=XMLStringWriter=function(superClass){function XMLStringWriter(options){XMLStringWriter.__super__.constructor.call(this,options)}return extend(XMLStringWriter,superClass),XMLStringWriter.prototype.document=function(doc){var child,i,len,r,ref;for(this.textispresent=!1,r="",ref=doc.children,i=0,len=ref.length;len>i;i++)child=ref[i],r+=function(){switch(!1){case!(child instanceof XMLDeclaration):return this.declaration(child);case!(child instanceof XMLDocType):return this.docType(child);case!(child instanceof XMLComment):return this.comment(child);case!(child instanceof XMLProcessingInstruction):return this.processingInstruction(child);default:return this.element(child,0)}}.call(this);return this.pretty&&r.slice(-this.newline.length)===this.newline&&(r=r.slice(0,-this.newline.length)),r},XMLStringWriter.prototype.attribute=function(att){return" "+att.name+'="'+att.value+'"'},XMLStringWriter.prototype.cdata=function(node,level){return this.space(level)+""+this.newline},XMLStringWriter.prototype.comment=function(node,level){return this.space(level)+""+this.newline},XMLStringWriter.prototype.declaration=function(node,level){var r;return r=this.space(level),r+='",r+=this.newline},XMLStringWriter.prototype.docType=function(node,level){var child,i,len,r,ref;if(level||(level=0),r=this.space(level),r+="0){for(r+=" [",r+=this.newline,ref=node.children,i=0,len=ref.length;len>i;i++)child=ref[i],r+=function(){switch(!1){case!(child instanceof XMLDTDAttList):return this.dtdAttList(child,level+1);case!(child instanceof XMLDTDElement):return this.dtdElement(child,level+1);case!(child instanceof XMLDTDEntity):return this.dtdEntity(child,level+1);case!(child instanceof XMLDTDNotation):return this.dtdNotation(child,level+1);case!(child instanceof XMLCData):return this.cdata(child,level+1);case!(child instanceof XMLComment):return this.comment(child,level+1);case!(child instanceof XMLProcessingInstruction):return this.processingInstruction(child,level+1);default:throw new Error("Unknown DTD node type: "+child.constructor.name)}}.call(this);r+="]"}return r+=this.spacebeforeslash+">",r+=this.newline},XMLStringWriter.prototype.element=function(node,level){var att,child,i,j,len,len1,name,r,ref,ref1,ref2,space,textispresentwasset;level||(level=0),textispresentwasset=!1,this.textispresent?(this.newline="",this.pretty=!1):(this.newline=this.newlinedefault,this.pretty=this.prettydefault),space=this.space(level),r="",r+=space+"<"+node.name,ref=node.attributes;for(name in ref)hasProp.call(ref,name)&&(att=ref[name],r+=this.attribute(att));if(0===node.children.length||node.children.every(function(e){return""===e.value}))r+=this.allowEmpty?">"+this.newline:this.spacebeforeslash+"/>"+this.newline;else if(this.pretty&&1===node.children.length&&null!=node.children[0].value)r+=">",r+=node.children[0].value,r+=""+this.newline;else{if(this.dontprettytextnodes)for(ref1=node.children,i=0,len=ref1.length;len>i;i++)if(child=ref1[i],null!=child.value){this.textispresent++,textispresentwasset=!0;break}for(this.textispresent&&(this.newline="",this.pretty=!1,space=this.space(level)),r+=">"+this.newline,ref2=node.children,j=0,len1=ref2.length;len1>j;j++)child=ref2[j],r+=function(){switch(!1){case!(child instanceof XMLCData):return this.cdata(child,level+1);case!(child instanceof XMLComment):return this.comment(child,level+1);case!(child instanceof XMLElement):return this.element(child,level+1);case!(child instanceof XMLRaw):return this.raw(child,level+1);case!(child instanceof XMLText):return this.text(child,level+1);case!(child instanceof XMLProcessingInstruction):return this.processingInstruction(child,level+1);default:throw new Error("Unknown XML node type: "+child.constructor.name)}}.call(this);textispresentwasset&&this.textispresent--,this.textispresent||(this.newline=this.newlinedefault,this.pretty=this.prettydefault),r+=space+""+this.newline}return r},XMLStringWriter.prototype.processingInstruction=function(node,level){var r;return r=this.space(level)+""+this.newline},XMLStringWriter.prototype.raw=function(node,level){return this.space(level)+node.value+this.newline},XMLStringWriter.prototype.text=function(node,level){return this.space(level)+node.value+this.newline},XMLStringWriter.prototype.dtdAttList=function(node,level){var r;return r=this.space(level)+""+this.newline},XMLStringWriter.prototype.dtdElement=function(node,level){return this.space(level)+""+this.newline},XMLStringWriter.prototype.dtdEntity=function(node,level){var r;return r=this.space(level)+""+this.newline},XMLStringWriter.prototype.dtdNotation=function(node,level){var r;return r=this.space(level)+""+this.newline},XMLStringWriter.prototype.openNode=function(node,level){var att,name,r,ref;if(level||(level=0),node instanceof XMLElement){r=this.space(level)+"<"+node.name,ref=node.attributes;for(name in ref)hasProp.call(ref,name)&&(att=ref[name],r+=this.attribute(att));return r+=(node.children?">":"/>")+this.newline}return r=this.space(level)+"")+this.newline},XMLStringWriter.prototype.closeNode=function(node,level){switch(level||(level=0),!1){case!(node instanceof XMLElement):return this.space(level)+""+this.newline;case!(node instanceof XMLDocType):return this.space(level)+"]>"+this.newline}},XMLStringWriter}(XMLWriterBase)}).call(this)},{"./XMLCData":109,"./XMLComment":110,"./XMLDTDAttList":111,"./XMLDTDElement":112,"./XMLDTDEntity":113,"./XMLDTDNotation":114,"./XMLDeclaration":115,"./XMLDocType":116,"./XMLElement":119,"./XMLProcessingInstruction":121,"./XMLRaw":122,"./XMLText":126,"./XMLWriterBase":127}],125:[function(require,module,exports){(function(){var XMLStringifier,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},hasProp={}.hasOwnProperty;module.exports=XMLStringifier=function(){function XMLStringifier(options){this.assertLegalChar=bind(this.assertLegalChar,this);var key,ref,value;options||(options={}),this.noDoubleEncoding=options.noDoubleEncoding,ref=options.stringify||{};for(key in ref)hasProp.call(ref,key)&&(value=ref[key],this[key]=value)}return XMLStringifier.prototype.eleName=function(val){return val=""+val||"",this.assertLegalChar(val)},XMLStringifier.prototype.eleText=function(val){return val=""+val||"",this.assertLegalChar(this.elEscape(val))},XMLStringifier.prototype.cdata=function(val){return val=""+val||"",val=val.replace("]]>","]]]]>"),this.assertLegalChar(val)},XMLStringifier.prototype.comment=function(val){if(val=""+val||"",val.match(/--/))throw new Error("Comment text cannot contain double-hypen: "+val);return this.assertLegalChar(val)},XMLStringifier.prototype.raw=function(val){return""+val||""},XMLStringifier.prototype.attName=function(val){return val=""+val||""},XMLStringifier.prototype.attValue=function(val){return val=""+val||"",this.attEscape(val)},XMLStringifier.prototype.insTarget=function(val){return""+val||""},XMLStringifier.prototype.insValue=function(val){if(val=""+val||"",val.match(/\?>/))throw new Error("Invalid processing instruction value: "+val);return val},XMLStringifier.prototype.xmlVersion=function(val){if(val=""+val||"",!val.match(/1\.[0-9]+/))throw new Error("Invalid version number: "+val);return val},XMLStringifier.prototype.xmlEncoding=function(val){if(val=""+val||"",!val.match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/))throw new Error("Invalid encoding: "+val);return val},XMLStringifier.prototype.xmlStandalone=function(val){return val?"yes":"no"},XMLStringifier.prototype.dtdPubID=function(val){return""+val||""},XMLStringifier.prototype.dtdSysID=function(val){return""+val||""},XMLStringifier.prototype.dtdElementValue=function(val){return""+val||""},XMLStringifier.prototype.dtdAttType=function(val){return""+val||""},XMLStringifier.prototype.dtdAttDefault=function(val){return null!=val?""+val||"":val},XMLStringifier.prototype.dtdEntityValue=function(val){return""+val||""},XMLStringifier.prototype.dtdNData=function(val){return""+val||""},XMLStringifier.prototype.convertAttKey="@",XMLStringifier.prototype.convertPIKey="?",XMLStringifier.prototype.convertTextKey="#text",XMLStringifier.prototype.convertCDataKey="#cdata",XMLStringifier.prototype.convertCommentKey="#comment",XMLStringifier.prototype.convertRawKey="#raw",XMLStringifier.prototype.assertLegalChar=function(str){var res;if(res=str.match(/[\0\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/))throw new Error("Invalid character in string: "+str+" at index "+res.index);return str},XMLStringifier.prototype.elEscape=function(str){var ampregex;return ampregex=this.noDoubleEncoding?/(?!&\S+;)&/g:/&/g,str.replace(ampregex,"&").replace(//g,">").replace(/\r/g," ")},XMLStringifier.prototype.attEscape=function(str){var ampregex;return ampregex=this.noDoubleEncoding?/(?!&\S+;)&/g:/&/g,str.replace(ampregex,"&").replace(/0?new Array(indent).join(this.indent):""):""},XMLWriterBase}()}).call(this)},{}],128:[function(require,module,exports){(function(){var XMLDocument,XMLDocumentCB,XMLStreamWriter,XMLStringWriter,assign,isFunction,ref;ref=require("./Utility"),assign=ref.assign,isFunction=ref.isFunction,XMLDocument=require("./XMLDocument"),XMLDocumentCB=require("./XMLDocumentCB"),XMLStringWriter=require("./XMLStringWriter"),XMLStreamWriter=require("./XMLStreamWriter"),module.exports.create=function(name,xmldec,doctype,options){var doc,root;if(null==name)throw new Error("Root element needs a name.");return options=assign({},xmldec,doctype,options),doc=new XMLDocument(options),root=doc.element(name),options.headless||(doc.declaration(options),(null!=options.pubID||null!=options.sysID)&&doc.doctype(options)),root},module.exports.begin=function(options,onData,onEnd){var ref1;return isFunction(options)&&(ref1=[options,onData],onData=ref1[0],onEnd=ref1[1],options={}),onData?new XMLDocumentCB(options,onData,onEnd):new XMLDocument(options)},module.exports.stringWriter=function(options){return new XMLStringWriter(options)},module.exports.streamWriter=function(stream,options){return new XMLStreamWriter(stream,options)}}).call(this)},{"./Utility":107,"./XMLDocument":117,"./XMLDocumentCB":118,"./XMLStreamWriter":123,"./XMLStringWriter":124 +}]},{},[21])(21)}); diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/contentimport/showdown.min.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/contentimport/showdown.min.js new file mode 100644 index 0000000..cf721d9 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/contentimport/showdown.min.js @@ -0,0 +1,3 @@ +/*! showdown v 2.1.0 - 21-04-2022 */ +!function(){function a(e){"use strict";var r={omitExtraWLInCodeBlocks:{defaultValue:!1,describe:"Omit the default extra whiteline added to code blocks",type:"boolean"},noHeaderId:{defaultValue:!1,describe:"Turn on/off generated header id",type:"boolean"},prefixHeaderId:{defaultValue:!1,describe:"Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic 'section-' prefix",type:"string"},rawPrefixHeaderId:{defaultValue:!1,describe:'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)',type:"boolean"},ghCompatibleHeaderId:{defaultValue:!1,describe:"Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)",type:"boolean"},rawHeaderId:{defaultValue:!1,describe:"Remove only spaces, ' and \" from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids",type:"boolean"},headerLevelStart:{defaultValue:!1,describe:"The header blocks level start",type:"integer"},parseImgDimensions:{defaultValue:!1,describe:"Turn on/off image dimension parsing",type:"boolean"},simplifiedAutoLink:{defaultValue:!1,describe:"Turn on/off GFM autolink style",type:"boolean"},excludeTrailingPunctuationFromURLs:{defaultValue:!1,describe:"Excludes trailing punctuation from links generated with autoLinking",type:"boolean"},literalMidWordUnderscores:{defaultValue:!1,describe:"Parse midword underscores as literal underscores",type:"boolean"},literalMidWordAsterisks:{defaultValue:!1,describe:"Parse midword asterisks as literal asterisks",type:"boolean"},strikethrough:{defaultValue:!1,describe:"Turn on/off strikethrough support",type:"boolean"},tables:{defaultValue:!1,describe:"Turn on/off tables support",type:"boolean"},tablesHeaderId:{defaultValue:!1,describe:"Add an id to table headers",type:"boolean"},ghCodeBlocks:{defaultValue:!0,describe:"Turn on/off GFM fenced code blocks support",type:"boolean"},tasklists:{defaultValue:!1,describe:"Turn on/off GFM tasklist support",type:"boolean"},smoothLivePreview:{defaultValue:!1,describe:"Prevents weird effects in live previews due to incomplete input",type:"boolean"},smartIndentationFix:{defaultValue:!1,describe:"Tries to smartly fix indentation in es6 strings",type:"boolean"},disableForced4SpacesIndentedSublists:{defaultValue:!1,describe:"Disables the requirement of indenting nested sublists by 4 spaces",type:"boolean"},simpleLineBreaks:{defaultValue:!1,describe:"Parses simple line breaks as
    (GFM Style)",type:"boolean"},requireSpaceBeforeHeadingText:{defaultValue:!1,describe:"Makes adding a space between `#` and the header text mandatory (GFM Style)",type:"boolean"},ghMentions:{defaultValue:!1,describe:"Enables github @mentions",type:"boolean"},ghMentionsLink:{defaultValue:"https://github.com/{u}",describe:"Changes the link generated by @mentions. Only applies if ghMentions option is enabled.",type:"string"},encodeEmails:{defaultValue:!0,describe:"Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities",type:"boolean"},openLinksInNewWindow:{defaultValue:!1,describe:"Open all links in new windows",type:"boolean"},backslashEscapesHTMLTags:{defaultValue:!1,describe:"Support for HTML Tag escaping. ex:
    foo
    ",type:"boolean"},emoji:{defaultValue:!1,describe:"Enable emoji support. Ex: `this is a :smile: emoji`",type:"boolean"},underline:{defaultValue:!1,describe:"Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `` and ``",type:"boolean"},ellipsis:{defaultValue:!0,describe:"Replaces three dots with the ellipsis unicode character",type:"boolean"},completeHTMLDocument:{defaultValue:!1,describe:"Outputs a complete html document, including ``, `` and `` tags",type:"boolean"},metadata:{defaultValue:!1,describe:"Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).",type:"boolean"},splitAdjacentBlockquotes:{defaultValue:!1,describe:"Split adjacent blockquote blocks",type:"boolean"}};if(!1===e)return JSON.parse(JSON.stringify(r));var t,a={};for(t in r)r.hasOwnProperty(t)&&(a[t]=r[t].defaultValue);return a}var x={},t={},d={},p=a(!0),h="vanilla",_={github:{omitExtraWLInCodeBlocks:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,disableForced4SpacesIndentedSublists:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghCompatibleHeaderId:!0,ghMentions:!0,backslashEscapesHTMLTags:!0,emoji:!0,splitAdjacentBlockquotes:!0},original:{noHeaderId:!0,ghCodeBlocks:!1},ghost:{omitExtraWLInCodeBlocks:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,smoothLivePreview:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!1,encodeEmails:!0},vanilla:a(!0),allOn:function(){"use strict";var e,r=a(!0),t={};for(e in r)r.hasOwnProperty(e)&&(t[e]=!0);return t}()};function g(e,r){"use strict";var t=r?"Error in "+r+" extension->":"Error in unnamed extension",a={valid:!0,error:""};x.helper.isArray(e)||(e=[e]);for(var n=0;n").replace(/&/g,"&")};function u(e,r,t,a){"use strict";var n,s,o,i=-1<(a=a||"").indexOf("g"),l=new RegExp(r+"|"+t,"g"+a.replace(/g/g,"")),c=new RegExp(r,a.replace(/g/g,"")),u=[];do{for(n=0;p=l.exec(e);)if(c.test(p[0]))n++||(o=(s=l.lastIndex)-p[0].length);else if(n&&!--n){var d=p.index+p[0].length,p={left:{start:o,end:s},match:{start:s,end:p.index},right:{start:p.index,end:d},wholeMatch:{start:o,end:d}};if(u.push(p),!i)return u}}while(n&&(l.lastIndex=s));return u}function s(u){"use strict";return function(e,r,t,a,n,s,o){var i=t=t.replace(x.helper.regexes.asteriskDashAndColon,x.helper.escapeCharactersCallback),l="",c="",r=r||"",o=o||"";return/^www\./i.test(t)&&(t=t.replace(/^www\./i,"http://www.")),u.excludeTrailingPunctuationFromURLs&&s&&(l=s),r+'"+i+""+l+o}}function o(n,s){"use strict";return function(e,r,t){var a="mailto:";return r=r||"",t=x.subParser("unescapeSpecialChars")(t,n,s),n.encodeEmails?(a=x.helper.encodeEmailAddress(a+t),t=x.helper.encodeEmailAddress(t)):a+=t,r+''+t+""}}x.helper.matchRecursiveRegExp=function(e,r,t,a){"use strict";for(var n=u(e,r,t,a),s=[],o=0;o>=0,t=String(t||" "),e.length>r?String(e):((r-=e.length)>t.length&&(t+=t.repeat(r/t.length)),String(e)+t.slice(0,r))},"undefined"==typeof console&&(console={warn:function(e){"use strict";alert(e)},log:function(e){"use strict";alert(e)},error:function(e){"use strict";throw e}}),x.helper.regexes={asteriskDashAndColon:/([*_:~])/g},x.helper.emojis={"+1":"👍","-1":"👎",100:"💯",1234:"🔢","1st_place_medal":"🥇","2nd_place_medal":"🥈","3rd_place_medal":"🥉","8ball":"🎱",a:"🅰️",ab:"🆎",abc:"🔤",abcd:"🔡",accept:"🉑",aerial_tramway:"🚡",airplane:"✈️",alarm_clock:"⏰",alembic:"⚗️",alien:"👽",ambulance:"🚑",amphora:"🏺",anchor:"⚓️",angel:"👼",anger:"💢",angry:"😠",anguished:"😧",ant:"🐜",apple:"🍎",aquarius:"♒️",aries:"♈️",arrow_backward:"◀️",arrow_double_down:"⏬",arrow_double_up:"⏫",arrow_down:"⬇️",arrow_down_small:"🔽",arrow_forward:"▶️",arrow_heading_down:"⤵️",arrow_heading_up:"⤴️",arrow_left:"⬅️",arrow_lower_left:"↙️",arrow_lower_right:"↘️",arrow_right:"➡️",arrow_right_hook:"↪️",arrow_up:"⬆️",arrow_up_down:"↕️",arrow_up_small:"🔼",arrow_upper_left:"↖️",arrow_upper_right:"↗️",arrows_clockwise:"🔃",arrows_counterclockwise:"🔄",art:"🎨",articulated_lorry:"🚛",artificial_satellite:"🛰",astonished:"😲",athletic_shoe:"👟",atm:"🏧",atom_symbol:"⚛️",avocado:"🥑",b:"🅱️",baby:"👶",baby_bottle:"🍼",baby_chick:"🐤",baby_symbol:"🚼",back:"🔙",bacon:"🥓",badminton:"🏸",baggage_claim:"🛄",baguette_bread:"🥖",balance_scale:"⚖️",balloon:"🎈",ballot_box:"🗳",ballot_box_with_check:"☑️",bamboo:"🎍",banana:"🍌",bangbang:"‼️",bank:"🏦",bar_chart:"📊",barber:"💈",baseball:"⚾️",basketball:"🏀",basketball_man:"⛹️",basketball_woman:"⛹️‍♀️",bat:"🦇",bath:"🛀",bathtub:"🛁",battery:"🔋",beach_umbrella:"🏖",bear:"🐻",bed:"🛏",bee:"🐝",beer:"🍺",beers:"🍻",beetle:"🐞",beginner:"🔰",bell:"🔔",bellhop_bell:"🛎",bento:"🍱",biking_man:"🚴",bike:"🚲",biking_woman:"🚴‍♀️",bikini:"👙",biohazard:"☣️",bird:"🐦",birthday:"🎂",black_circle:"⚫️",black_flag:"🏴",black_heart:"🖤",black_joker:"🃏",black_large_square:"⬛️",black_medium_small_square:"◾️",black_medium_square:"◼️",black_nib:"✒️",black_small_square:"▪️",black_square_button:"🔲",blonde_man:"👱",blonde_woman:"👱‍♀️",blossom:"🌼",blowfish:"🐡",blue_book:"📘",blue_car:"🚙",blue_heart:"💙",blush:"😊",boar:"🐗",boat:"⛵️",bomb:"💣",book:"📖",bookmark:"🔖",bookmark_tabs:"📑",books:"📚",boom:"💥",boot:"👢",bouquet:"💐",bowing_man:"🙇",bow_and_arrow:"🏹",bowing_woman:"🙇‍♀️",bowling:"🎳",boxing_glove:"🥊",boy:"👦",bread:"🍞",bride_with_veil:"👰",bridge_at_night:"🌉",briefcase:"💼",broken_heart:"💔",bug:"🐛",building_construction:"🏗",bulb:"💡",bullettrain_front:"🚅",bullettrain_side:"🚄",burrito:"🌯",bus:"🚌",business_suit_levitating:"🕴",busstop:"🚏",bust_in_silhouette:"👤",busts_in_silhouette:"👥",butterfly:"🦋",cactus:"🌵",cake:"🍰",calendar:"📆",call_me_hand:"🤙",calling:"📲",camel:"🐫",camera:"📷",camera_flash:"📸",camping:"🏕",cancer:"♋️",candle:"🕯",candy:"🍬",canoe:"🛶",capital_abcd:"🔠",capricorn:"♑️",car:"🚗",card_file_box:"🗃",card_index:"📇",card_index_dividers:"🗂",carousel_horse:"🎠",carrot:"🥕",cat:"🐱",cat2:"🐈",cd:"💿",chains:"⛓",champagne:"🍾",chart:"💹",chart_with_downwards_trend:"📉",chart_with_upwards_trend:"📈",checkered_flag:"🏁",cheese:"🧀",cherries:"🍒",cherry_blossom:"🌸",chestnut:"🌰",chicken:"🐔",children_crossing:"🚸",chipmunk:"🐿",chocolate_bar:"🍫",christmas_tree:"🎄",church:"⛪️",cinema:"🎦",circus_tent:"🎪",city_sunrise:"🌇",city_sunset:"🌆",cityscape:"🏙",cl:"🆑",clamp:"🗜",clap:"👏",clapper:"🎬",classical_building:"🏛",clinking_glasses:"🥂",clipboard:"📋",clock1:"🕐",clock10:"🕙",clock1030:"🕥",clock11:"🕚",clock1130:"🕦",clock12:"🕛",clock1230:"🕧",clock130:"🕜",clock2:"🕑",clock230:"🕝",clock3:"🕒",clock330:"🕞",clock4:"🕓",clock430:"🕟",clock5:"🕔",clock530:"🕠",clock6:"🕕",clock630:"🕡",clock7:"🕖",clock730:"🕢",clock8:"🕗",clock830:"🕣",clock9:"🕘",clock930:"🕤",closed_book:"📕",closed_lock_with_key:"🔐",closed_umbrella:"🌂",cloud:"☁️",cloud_with_lightning:"🌩",cloud_with_lightning_and_rain:"⛈",cloud_with_rain:"🌧",cloud_with_snow:"🌨",clown_face:"🤡",clubs:"♣️",cocktail:"🍸",coffee:"☕️",coffin:"⚰️",cold_sweat:"😰",comet:"☄️",computer:"💻",computer_mouse:"🖱",confetti_ball:"🎊",confounded:"😖",confused:"😕",congratulations:"㊗️",construction:"🚧",construction_worker_man:"👷",construction_worker_woman:"👷‍♀️",control_knobs:"🎛",convenience_store:"🏪",cookie:"🍪",cool:"🆒",policeman:"👮",copyright:"©️",corn:"🌽",couch_and_lamp:"🛋",couple:"👫",couple_with_heart_woman_man:"💑",couple_with_heart_man_man:"👨‍❤️‍👨",couple_with_heart_woman_woman:"👩‍❤️‍👩",couplekiss_man_man:"👨‍❤️‍💋‍👨",couplekiss_man_woman:"💏",couplekiss_woman_woman:"👩‍❤️‍💋‍👩",cow:"🐮",cow2:"🐄",cowboy_hat_face:"🤠",crab:"🦀",crayon:"🖍",credit_card:"💳",crescent_moon:"🌙",cricket:"🏏",crocodile:"🐊",croissant:"🥐",crossed_fingers:"🤞",crossed_flags:"🎌",crossed_swords:"⚔️",crown:"👑",cry:"😢",crying_cat_face:"😿",crystal_ball:"🔮",cucumber:"🥒",cupid:"💘",curly_loop:"➰",currency_exchange:"💱",curry:"🍛",custard:"🍮",customs:"🛃",cyclone:"🌀",dagger:"🗡",dancer:"💃",dancing_women:"👯",dancing_men:"👯‍♂️",dango:"🍡",dark_sunglasses:"🕶",dart:"🎯",dash:"💨",date:"📅",deciduous_tree:"🌳",deer:"🦌",department_store:"🏬",derelict_house:"🏚",desert:"🏜",desert_island:"🏝",desktop_computer:"🖥",male_detective:"🕵️",diamond_shape_with_a_dot_inside:"💠",diamonds:"♦️",disappointed:"😞",disappointed_relieved:"😥",dizzy:"💫",dizzy_face:"😵",do_not_litter:"🚯",dog:"🐶",dog2:"🐕",dollar:"💵",dolls:"🎎",dolphin:"🐬",door:"🚪",doughnut:"🍩",dove:"🕊",dragon:"🐉",dragon_face:"🐲",dress:"👗",dromedary_camel:"🐪",drooling_face:"🤤",droplet:"💧",drum:"🥁",duck:"🦆",dvd:"📀","e-mail":"📧",eagle:"🦅",ear:"👂",ear_of_rice:"🌾",earth_africa:"🌍",earth_americas:"🌎",earth_asia:"🌏",egg:"🥚",eggplant:"🍆",eight_pointed_black_star:"✴️",eight_spoked_asterisk:"✳️",electric_plug:"🔌",elephant:"🐘",email:"✉️",end:"🔚",envelope_with_arrow:"📩",euro:"💶",european_castle:"🏰",european_post_office:"🏤",evergreen_tree:"🌲",exclamation:"❗️",expressionless:"😑",eye:"👁",eye_speech_bubble:"👁‍🗨",eyeglasses:"👓",eyes:"👀",face_with_head_bandage:"🤕",face_with_thermometer:"🤒",fist_oncoming:"👊",factory:"🏭",fallen_leaf:"🍂",family_man_woman_boy:"👪",family_man_boy:"👨‍👦",family_man_boy_boy:"👨‍👦‍👦",family_man_girl:"👨‍👧",family_man_girl_boy:"👨‍👧‍👦",family_man_girl_girl:"👨‍👧‍👧",family_man_man_boy:"👨‍👨‍👦",family_man_man_boy_boy:"👨‍👨‍👦‍👦",family_man_man_girl:"👨‍👨‍👧",family_man_man_girl_boy:"👨‍👨‍👧‍👦",family_man_man_girl_girl:"👨‍👨‍👧‍👧",family_man_woman_boy_boy:"👨‍👩‍👦‍👦",family_man_woman_girl:"👨‍👩‍👧",family_man_woman_girl_boy:"👨‍👩‍👧‍👦",family_man_woman_girl_girl:"👨‍👩‍👧‍👧",family_woman_boy:"👩‍👦",family_woman_boy_boy:"👩‍👦‍👦",family_woman_girl:"👩‍👧",family_woman_girl_boy:"👩‍👧‍👦",family_woman_girl_girl:"👩‍👧‍👧",family_woman_woman_boy:"👩‍👩‍👦",family_woman_woman_boy_boy:"👩‍👩‍👦‍👦",family_woman_woman_girl:"👩‍👩‍👧",family_woman_woman_girl_boy:"👩‍👩‍👧‍👦",family_woman_woman_girl_girl:"👩‍👩‍👧‍👧",fast_forward:"⏩",fax:"📠",fearful:"😨",feet:"🐾",female_detective:"🕵️‍♀️",ferris_wheel:"🎡",ferry:"⛴",field_hockey:"🏑",file_cabinet:"🗄",file_folder:"📁",film_projector:"📽",film_strip:"🎞",fire:"🔥",fire_engine:"🚒",fireworks:"🎆",first_quarter_moon:"🌓",first_quarter_moon_with_face:"🌛",fish:"🐟",fish_cake:"🍥",fishing_pole_and_fish:"🎣",fist_raised:"✊",fist_left:"🤛",fist_right:"🤜",flags:"🎏",flashlight:"🔦",fleur_de_lis:"⚜️",flight_arrival:"🛬",flight_departure:"🛫",floppy_disk:"💾",flower_playing_cards:"🎴",flushed:"😳",fog:"🌫",foggy:"🌁",football:"🏈",footprints:"👣",fork_and_knife:"🍴",fountain:"⛲️",fountain_pen:"🖋",four_leaf_clover:"🍀",fox_face:"🦊",framed_picture:"🖼",free:"🆓",fried_egg:"🍳",fried_shrimp:"🍤",fries:"🍟",frog:"🐸",frowning:"😦",frowning_face:"☹️",frowning_man:"🙍‍♂️",frowning_woman:"🙍",middle_finger:"🖕",fuelpump:"⛽️",full_moon:"🌕",full_moon_with_face:"🌝",funeral_urn:"⚱️",game_die:"🎲",gear:"⚙️",gem:"💎",gemini:"♊️",ghost:"👻",gift:"🎁",gift_heart:"💝",girl:"👧",globe_with_meridians:"🌐",goal_net:"🥅",goat:"🐐",golf:"⛳️",golfing_man:"🏌️",golfing_woman:"🏌️‍♀️",gorilla:"🦍",grapes:"🍇",green_apple:"🍏",green_book:"📗",green_heart:"💚",green_salad:"🥗",grey_exclamation:"❕",grey_question:"❔",grimacing:"😬",grin:"😁",grinning:"😀",guardsman:"💂",guardswoman:"💂‍♀️",guitar:"🎸",gun:"🔫",haircut_woman:"💇",haircut_man:"💇‍♂️",hamburger:"🍔",hammer:"🔨",hammer_and_pick:"⚒",hammer_and_wrench:"🛠",hamster:"🐹",hand:"✋",handbag:"👜",handshake:"🤝",hankey:"💩",hatched_chick:"🐥",hatching_chick:"🐣",headphones:"🎧",hear_no_evil:"🙉",heart:"❤️",heart_decoration:"💟",heart_eyes:"😍",heart_eyes_cat:"😻",heartbeat:"💓",heartpulse:"💗",hearts:"♥️",heavy_check_mark:"✔️",heavy_division_sign:"➗",heavy_dollar_sign:"💲",heavy_heart_exclamation:"❣️",heavy_minus_sign:"➖",heavy_multiplication_x:"✖️",heavy_plus_sign:"➕",helicopter:"🚁",herb:"🌿",hibiscus:"🌺",high_brightness:"🔆",high_heel:"👠",hocho:"🔪",hole:"🕳",honey_pot:"🍯",horse:"🐴",horse_racing:"🏇",hospital:"🏥",hot_pepper:"🌶",hotdog:"🌭",hotel:"🏨",hotsprings:"♨️",hourglass:"⌛️",hourglass_flowing_sand:"⏳",house:"🏠",house_with_garden:"🏡",houses:"🏘",hugs:"🤗",hushed:"😯",ice_cream:"🍨",ice_hockey:"🏒",ice_skate:"⛸",icecream:"🍦",id:"🆔",ideograph_advantage:"🉐",imp:"👿",inbox_tray:"📥",incoming_envelope:"📨",tipping_hand_woman:"💁",information_source:"ℹ️",innocent:"😇",interrobang:"⁉️",iphone:"📱",izakaya_lantern:"🏮",jack_o_lantern:"🎃",japan:"🗾",japanese_castle:"🏯",japanese_goblin:"👺",japanese_ogre:"👹",jeans:"👖",joy:"😂",joy_cat:"😹",joystick:"🕹",kaaba:"🕋",key:"🔑",keyboard:"⌨️",keycap_ten:"🔟",kick_scooter:"🛴",kimono:"👘",kiss:"💋",kissing:"😗",kissing_cat:"😽",kissing_closed_eyes:"😚",kissing_heart:"😘",kissing_smiling_eyes:"😙",kiwi_fruit:"🥝",koala:"🐨",koko:"🈁",label:"🏷",large_blue_circle:"🔵",large_blue_diamond:"🔷",large_orange_diamond:"🔶",last_quarter_moon:"🌗",last_quarter_moon_with_face:"🌜",latin_cross:"✝️",laughing:"😆",leaves:"🍃",ledger:"📒",left_luggage:"🛅",left_right_arrow:"↔️",leftwards_arrow_with_hook:"↩️",lemon:"🍋",leo:"♌️",leopard:"🐆",level_slider:"🎚",libra:"♎️",light_rail:"🚈",link:"🔗",lion:"🦁",lips:"👄",lipstick:"💄",lizard:"🦎",lock:"🔒",lock_with_ink_pen:"🔏",lollipop:"🍭",loop:"➿",loud_sound:"🔊",loudspeaker:"📢",love_hotel:"🏩",love_letter:"💌",low_brightness:"🔅",lying_face:"🤥",m:"Ⓜ️",mag:"🔍",mag_right:"🔎",mahjong:"🀄️",mailbox:"📫",mailbox_closed:"📪",mailbox_with_mail:"📬",mailbox_with_no_mail:"📭",man:"👨",man_artist:"👨‍🎨",man_astronaut:"👨‍🚀",man_cartwheeling:"🤸‍♂️",man_cook:"👨‍🍳",man_dancing:"🕺",man_facepalming:"🤦‍♂️",man_factory_worker:"👨‍🏭",man_farmer:"👨‍🌾",man_firefighter:"👨‍🚒",man_health_worker:"👨‍⚕️",man_in_tuxedo:"🤵",man_judge:"👨‍⚖️",man_juggling:"🤹‍♂️",man_mechanic:"👨‍🔧",man_office_worker:"👨‍💼",man_pilot:"👨‍✈️",man_playing_handball:"🤾‍♂️",man_playing_water_polo:"🤽‍♂️",man_scientist:"👨‍🔬",man_shrugging:"🤷‍♂️",man_singer:"👨‍🎤",man_student:"👨‍🎓",man_teacher:"👨‍🏫",man_technologist:"👨‍💻",man_with_gua_pi_mao:"👲",man_with_turban:"👳",tangerine:"🍊",mans_shoe:"👞",mantelpiece_clock:"🕰",maple_leaf:"🍁",martial_arts_uniform:"🥋",mask:"😷",massage_woman:"💆",massage_man:"💆‍♂️",meat_on_bone:"🍖",medal_military:"🎖",medal_sports:"🏅",mega:"📣",melon:"🍈",memo:"📝",men_wrestling:"🤼‍♂️",menorah:"🕎",mens:"🚹",metal:"🤘",metro:"🚇",microphone:"🎤",microscope:"🔬",milk_glass:"🥛",milky_way:"🌌",minibus:"🚐",minidisc:"💽",mobile_phone_off:"📴",money_mouth_face:"🤑",money_with_wings:"💸",moneybag:"💰",monkey:"🐒",monkey_face:"🐵",monorail:"🚝",moon:"🌔",mortar_board:"🎓",mosque:"🕌",motor_boat:"🛥",motor_scooter:"🛵",motorcycle:"🏍",motorway:"🛣",mount_fuji:"🗻",mountain:"⛰",mountain_biking_man:"🚵",mountain_biking_woman:"🚵‍♀️",mountain_cableway:"🚠",mountain_railway:"🚞",mountain_snow:"🏔",mouse:"🐭",mouse2:"🐁",movie_camera:"🎥",moyai:"🗿",mrs_claus:"🤶",muscle:"💪",mushroom:"🍄",musical_keyboard:"🎹",musical_note:"🎵",musical_score:"🎼",mute:"🔇",nail_care:"💅",name_badge:"📛",national_park:"🏞",nauseated_face:"🤢",necktie:"👔",negative_squared_cross_mark:"❎",nerd_face:"🤓",neutral_face:"😐",new:"🆕",new_moon:"🌑",new_moon_with_face:"🌚",newspaper:"📰",newspaper_roll:"🗞",next_track_button:"⏭",ng:"🆖",no_good_man:"🙅‍♂️",no_good_woman:"🙅",night_with_stars:"🌃",no_bell:"🔕",no_bicycles:"🚳",no_entry:"⛔️",no_entry_sign:"🚫",no_mobile_phones:"📵",no_mouth:"😶",no_pedestrians:"🚷",no_smoking:"🚭","non-potable_water":"🚱",nose:"👃",notebook:"📓",notebook_with_decorative_cover:"📔",notes:"🎶",nut_and_bolt:"🔩",o:"⭕️",o2:"🅾️",ocean:"🌊",octopus:"🐙",oden:"🍢",office:"🏢",oil_drum:"🛢",ok:"🆗",ok_hand:"👌",ok_man:"🙆‍♂️",ok_woman:"🙆",old_key:"🗝",older_man:"👴",older_woman:"👵",om:"🕉",on:"🔛",oncoming_automobile:"🚘",oncoming_bus:"🚍",oncoming_police_car:"🚔",oncoming_taxi:"🚖",open_file_folder:"📂",open_hands:"👐",open_mouth:"😮",open_umbrella:"☂️",ophiuchus:"⛎",orange_book:"📙",orthodox_cross:"☦️",outbox_tray:"📤",owl:"🦉",ox:"🐂",package:"📦",page_facing_up:"📄",page_with_curl:"📃",pager:"📟",paintbrush:"🖌",palm_tree:"🌴",pancakes:"🥞",panda_face:"🐼",paperclip:"📎",paperclips:"🖇",parasol_on_ground:"⛱",parking:"🅿️",part_alternation_mark:"〽️",partly_sunny:"⛅️",passenger_ship:"🛳",passport_control:"🛂",pause_button:"⏸",peace_symbol:"☮️",peach:"🍑",peanuts:"🥜",pear:"🍐",pen:"🖊",pencil2:"✏️",penguin:"🐧",pensive:"😔",performing_arts:"🎭",persevere:"😣",person_fencing:"🤺",pouting_woman:"🙎",phone:"☎️",pick:"⛏",pig:"🐷",pig2:"🐖",pig_nose:"🐽",pill:"💊",pineapple:"🍍",ping_pong:"🏓",pisces:"♓️",pizza:"🍕",place_of_worship:"🛐",plate_with_cutlery:"🍽",play_or_pause_button:"⏯",point_down:"👇",point_left:"👈",point_right:"👉",point_up:"☝️",point_up_2:"👆",police_car:"🚓",policewoman:"👮‍♀️",poodle:"🐩",popcorn:"🍿",post_office:"🏣",postal_horn:"📯",postbox:"📮",potable_water:"🚰",potato:"🥔",pouch:"👝",poultry_leg:"🍗",pound:"💷",rage:"😡",pouting_cat:"😾",pouting_man:"🙎‍♂️",pray:"🙏",prayer_beads:"📿",pregnant_woman:"🤰",previous_track_button:"⏮",prince:"🤴",princess:"👸",printer:"🖨",purple_heart:"💜",purse:"👛",pushpin:"📌",put_litter_in_its_place:"🚮",question:"❓",rabbit:"🐰",rabbit2:"🐇",racehorse:"🐎",racing_car:"🏎",radio:"📻",radio_button:"🔘",radioactive:"☢️",railway_car:"🚃",railway_track:"🛤",rainbow:"🌈",rainbow_flag:"🏳️‍🌈",raised_back_of_hand:"🤚",raised_hand_with_fingers_splayed:"🖐",raised_hands:"🙌",raising_hand_woman:"🙋",raising_hand_man:"🙋‍♂️",ram:"🐏",ramen:"🍜",rat:"🐀",record_button:"⏺",recycle:"♻️",red_circle:"🔴",registered:"®️",relaxed:"☺️",relieved:"😌",reminder_ribbon:"🎗",repeat:"🔁",repeat_one:"🔂",rescue_worker_helmet:"⛑",restroom:"🚻",revolving_hearts:"💞",rewind:"⏪",rhinoceros:"🦏",ribbon:"🎀",rice:"🍚",rice_ball:"🍙",rice_cracker:"🍘",rice_scene:"🎑",right_anger_bubble:"🗯",ring:"💍",robot:"🤖",rocket:"🚀",rofl:"🤣",roll_eyes:"🙄",roller_coaster:"🎢",rooster:"🐓",rose:"🌹",rosette:"🏵",rotating_light:"🚨",round_pushpin:"📍",rowing_man:"🚣",rowing_woman:"🚣‍♀️",rugby_football:"🏉",running_man:"🏃",running_shirt_with_sash:"🎽",running_woman:"🏃‍♀️",sa:"🈂️",sagittarius:"♐️",sake:"🍶",sandal:"👡",santa:"🎅",satellite:"📡",saxophone:"🎷",school:"🏫",school_satchel:"🎒",scissors:"✂️",scorpion:"🦂",scorpius:"♏️",scream:"😱",scream_cat:"🙀",scroll:"📜",seat:"💺",secret:"㊙️",see_no_evil:"🙈",seedling:"🌱",selfie:"🤳",shallow_pan_of_food:"🥘",shamrock:"☘️",shark:"🦈",shaved_ice:"🍧",sheep:"🐑",shell:"🐚",shield:"🛡",shinto_shrine:"⛩",ship:"🚢",shirt:"👕",shopping:"🛍",shopping_cart:"🛒",shower:"🚿",shrimp:"🦐",signal_strength:"📶",six_pointed_star:"🔯",ski:"🎿",skier:"⛷",skull:"💀",skull_and_crossbones:"☠️",sleeping:"😴",sleeping_bed:"🛌",sleepy:"😪",slightly_frowning_face:"🙁",slightly_smiling_face:"🙂",slot_machine:"🎰",small_airplane:"🛩",small_blue_diamond:"🔹",small_orange_diamond:"🔸",small_red_triangle:"🔺",small_red_triangle_down:"🔻",smile:"😄",smile_cat:"😸",smiley:"😃",smiley_cat:"😺",smiling_imp:"😈",smirk:"😏",smirk_cat:"😼",smoking:"🚬",snail:"🐌",snake:"🐍",sneezing_face:"🤧",snowboarder:"🏂",snowflake:"❄️",snowman:"⛄️",snowman_with_snow:"☃️",sob:"😭",soccer:"⚽️",soon:"🔜",sos:"🆘",sound:"🔉",space_invader:"👾",spades:"♠️",spaghetti:"🍝",sparkle:"❇️",sparkler:"🎇",sparkles:"✨",sparkling_heart:"💖",speak_no_evil:"🙊",speaker:"🔈",speaking_head:"🗣",speech_balloon:"💬",speedboat:"🚤",spider:"🕷",spider_web:"🕸",spiral_calendar:"🗓",spiral_notepad:"🗒",spoon:"🥄",squid:"🦑",stadium:"🏟",star:"⭐️",star2:"🌟",star_and_crescent:"☪️",star_of_david:"✡️",stars:"🌠",station:"🚉",statue_of_liberty:"🗽",steam_locomotive:"🚂",stew:"🍲",stop_button:"⏹",stop_sign:"🛑",stopwatch:"⏱",straight_ruler:"📏",strawberry:"🍓",stuck_out_tongue:"😛",stuck_out_tongue_closed_eyes:"😝",stuck_out_tongue_winking_eye:"😜",studio_microphone:"🎙",stuffed_flatbread:"🥙",sun_behind_large_cloud:"🌥",sun_behind_rain_cloud:"🌦",sun_behind_small_cloud:"🌤",sun_with_face:"🌞",sunflower:"🌻",sunglasses:"😎",sunny:"☀️",sunrise:"🌅",sunrise_over_mountains:"🌄",surfing_man:"🏄",surfing_woman:"🏄‍♀️",sushi:"🍣",suspension_railway:"🚟",sweat:"😓",sweat_drops:"💦",sweat_smile:"😅",sweet_potato:"🍠",swimming_man:"🏊",swimming_woman:"🏊‍♀️",symbols:"🔣",synagogue:"🕍",syringe:"💉",taco:"🌮",tada:"🎉",tanabata_tree:"🎋",taurus:"♉️",taxi:"🚕",tea:"🍵",telephone_receiver:"📞",telescope:"🔭",tennis:"🎾",tent:"⛺️",thermometer:"🌡",thinking:"🤔",thought_balloon:"💭",ticket:"🎫",tickets:"🎟",tiger:"🐯",tiger2:"🐅",timer_clock:"⏲",tipping_hand_man:"💁‍♂️",tired_face:"😫",tm:"™️",toilet:"🚽",tokyo_tower:"🗼",tomato:"🍅",tongue:"👅",top:"🔝",tophat:"🎩",tornado:"🌪",trackball:"🖲",tractor:"🚜",traffic_light:"🚥",train:"🚋",train2:"🚆",tram:"🚊",triangular_flag_on_post:"🚩",triangular_ruler:"📐",trident:"🔱",triumph:"😤",trolleybus:"🚎",trophy:"🏆",tropical_drink:"🍹",tropical_fish:"🐠",truck:"🚚",trumpet:"🎺",tulip:"🌷",tumbler_glass:"🥃",turkey:"🦃",turtle:"🐢",tv:"📺",twisted_rightwards_arrows:"🔀",two_hearts:"💕",two_men_holding_hands:"👬",two_women_holding_hands:"👭",u5272:"🈹",u5408:"🈴",u55b6:"🈺",u6307:"🈯️",u6708:"🈷️",u6709:"🈶",u6e80:"🈵",u7121:"🈚️",u7533:"🈸",u7981:"🈲",u7a7a:"🈳",umbrella:"☔️",unamused:"😒",underage:"🔞",unicorn:"🦄",unlock:"🔓",up:"🆙",upside_down_face:"🙃",v:"✌️",vertical_traffic_light:"🚦",vhs:"📼",vibration_mode:"📳",video_camera:"📹",video_game:"🎮",violin:"🎻",virgo:"♍️",volcano:"🌋",volleyball:"🏐",vs:"🆚",vulcan_salute:"🖖",walking_man:"🚶",walking_woman:"🚶‍♀️",waning_crescent_moon:"🌘",waning_gibbous_moon:"🌖",warning:"⚠️",wastebasket:"🗑",watch:"⌚️",water_buffalo:"🐃",watermelon:"🍉",wave:"👋",wavy_dash:"〰️",waxing_crescent_moon:"🌒",wc:"🚾",weary:"😩",wedding:"💒",weight_lifting_man:"🏋️",weight_lifting_woman:"🏋️‍♀️",whale:"🐳",whale2:"🐋",wheel_of_dharma:"☸️",wheelchair:"♿️",white_check_mark:"✅",white_circle:"⚪️",white_flag:"🏳️",white_flower:"💮",white_large_square:"⬜️",white_medium_small_square:"◽️",white_medium_square:"◻️",white_small_square:"▫️",white_square_button:"🔳",wilted_flower:"🥀",wind_chime:"🎐",wind_face:"🌬",wine_glass:"🍷",wink:"😉",wolf:"🐺",woman:"👩",woman_artist:"👩‍🎨",woman_astronaut:"👩‍🚀",woman_cartwheeling:"🤸‍♀️",woman_cook:"👩‍🍳",woman_facepalming:"🤦‍♀️",woman_factory_worker:"👩‍🏭",woman_farmer:"👩‍🌾",woman_firefighter:"👩‍🚒",woman_health_worker:"👩‍⚕️",woman_judge:"👩‍⚖️",woman_juggling:"🤹‍♀️",woman_mechanic:"👩‍🔧",woman_office_worker:"👩‍💼",woman_pilot:"👩‍✈️",woman_playing_handball:"🤾‍♀️",woman_playing_water_polo:"🤽‍♀️",woman_scientist:"👩‍🔬",woman_shrugging:"🤷‍♀️",woman_singer:"👩‍🎤",woman_student:"👩‍🎓",woman_teacher:"👩‍🏫",woman_technologist:"👩‍💻",woman_with_turban:"👳‍♀️",womans_clothes:"👚",womans_hat:"👒",women_wrestling:"🤼‍♀️",womens:"🚺",world_map:"🗺",worried:"😟",wrench:"🔧",writing_hand:"✍️",x:"❌",yellow_heart:"💛",yen:"💴",yin_yang:"☯️",yum:"😋",zap:"⚡️",zipper_mouth_face:"🤐",zzz:"💤",octocat:':octocat:',showdown:"S"},x.Converter=function(e){"use strict";var r,t,n={},i=[],l=[],o={},a=h,s={parsed:{},raw:"",format:""};for(r in e=e||{},p)p.hasOwnProperty(r)&&(n[r]=p[r]);if("object"!=typeof e)throw Error("Converter expects the passed parameter to be an object, but "+typeof e+" was passed instead.");for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);function c(e,r){if(r=r||null,x.helper.isString(e)){if(r=e=x.helper.stdExtName(e),x.extensions[e]){console.warn("DEPRECATION WARNING: "+e+" is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!");var t=x.extensions[e],a=e;if("function"==typeof t&&(t=t(new x.Converter)),x.helper.isArray(t)||(t=[t]),!(a=g(t,a)).valid)throw Error(a.error);for(var n=0;n[ \t]+¨NBSP;<"),!r){if(!window||!window.document)throw new Error("HTMLParser is undefined. If in a webworker or nodejs environment, you need to provide a WHATWG DOM and HTML such as JSDOM");r=window.document}for(var r=r.createElement("div"),t=(r.innerHTML=e,{preList:function(e){for(var r=e.querySelectorAll("pre"),t=[],a=0;a'}else t.push(r[a].innerHTML),r[a].innerHTML="",r[a].setAttribute("prenum",a.toString());return t}(r)}),a=(!function e(r){for(var t=0;t? ?(['"].*['"])?\)$/m))a="";else if(!a){if(a="#"+(t=t||r.toLowerCase().replace(/ ?\n/g," ")),x.helper.isUndefined(l.gUrls[t]))return e;a=l.gUrls[t],x.helper.isUndefined(l.gTitles[t])||(o=l.gTitles[t])}return e='"}return e=(e=(e=(e=(e=l.converter._dispatch("anchors.before",e,i,l)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)] ?(?:\n *)?\[(.*?)]()()()()/g,r)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<([^>]*)>(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,r)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]??(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,r)).replace(/\[([^\[\]]+)]()()()()()/g,r),i.ghMentions&&(e=e.replace(/(^|\s)(\\)?(@([a-z\d]+(?:[a-z\d.-]+?[a-z\d]+)*))/gim,function(e,r,t,a,n){if("\\"===t)return r+a;if(!x.helper.isString(i.ghMentionsLink))throw new Error("ghMentionsLink option must be a string");t="";return r+'"+a+""})),e=l.converter._dispatch("anchors.after",e,i,l)});var i=/([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+?\.[^'">\s]+?)()(\1)?(?=\s|$)(?!["<>])/gi,l=/([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+\.[^'">\s]+?)([.!?,()\[\]])?(\1)?(?=\s|$)(?!["<>])/gi,c=/()<(((https?|ftp|dict):\/\/|www\.)[^'">\s]+)()>()/gi,m=/(^|\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-/=?^_`{|}~.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?=$|\s)/gim,f=/<()(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi;x.subParser("autoLinks",function(e,r,t){"use strict";return e=(e=(e=t.converter._dispatch("autoLinks.before",e,r,t)).replace(c,s(r))).replace(f,o(r,t)),e=t.converter._dispatch("autoLinks.after",e,r,t)}),x.subParser("simplifiedAutoLinks",function(e,r,t){"use strict";return r.simplifiedAutoLink?(e=t.converter._dispatch("simplifiedAutoLinks.before",e,r,t),e=(e=r.excludeTrailingPunctuationFromURLs?e.replace(l,s(r)):e.replace(i,s(r))).replace(m,o(r,t)),t.converter._dispatch("simplifiedAutoLinks.after",e,r,t)):e}),x.subParser("blockGamut",function(e,r,t){"use strict";return e=t.converter._dispatch("blockGamut.before",e,r,t),e=x.subParser("blockQuotes")(e,r,t),e=x.subParser("headers")(e,r,t),e=x.subParser("horizontalRule")(e,r,t),e=x.subParser("lists")(e,r,t),e=x.subParser("codeBlocks")(e,r,t),e=x.subParser("tables")(e,r,t),e=x.subParser("hashHTMLBlocks")(e,r,t),e=x.subParser("paragraphs")(e,r,t),e=t.converter._dispatch("blockGamut.after",e,r,t)}),x.subParser("blockQuotes",function(e,r,t){"use strict";e=t.converter._dispatch("blockQuotes.before",e,r,t);var a=/(^ {0,3}>[ \t]?.+\n(.+\n)*\n*)+/gm;return r.splitAdjacentBlockquotes&&(a=/^ {0,3}>[\s\S]*?(?:\n\n)/gm),e=(e+="\n\n").replace(a,function(e){return e=(e=(e=e.replace(/^[ \t]*>[ \t]?/gm,"")).replace(/¨0/g,"")).replace(/^[ \t]+$/gm,""),e=x.subParser("githubCodeBlocks")(e,r,t),e=(e=(e=x.subParser("blockGamut")(e,r,t)).replace(/(^|\n)/g,"$1 ")).replace(/(\s*
    [^\r]+?<\/pre>)/gm,function(e,r){return r.replace(/^  /gm,"¨0").replace(/¨0/g,"")}),x.subParser("hashBlock")("
    \n"+e+"\n
    ",r,t)}),e=t.converter._dispatch("blockQuotes.after",e,r,t)}),x.subParser("codeBlocks",function(e,n,s){"use strict";e=s.converter._dispatch("codeBlocks.before",e,n,s);return e=(e=(e+="¨0").replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=¨0))/g,function(e,r,t){var a="\n",r=x.subParser("outdent")(r,n,s);return r=x.subParser("encodeCode")(r,n,s),r="
    "+(r=(r=(r=x.subParser("detab")(r,n,s)).replace(/^\n+/g,"")).replace(/\n+$/g,""))+(a=n.omitExtraWLInCodeBlocks?"":a)+"
    ",x.subParser("hashBlock")(r,n,s)+t})).replace(/¨0/,""),e=s.converter._dispatch("codeBlocks.after",e,n,s)}),x.subParser("codeSpans",function(e,n,s){"use strict";return e=(e=void 0===(e=s.converter._dispatch("codeSpans.before",e,n,s))?"":e).replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(e,r,t,a){return a=(a=a.replace(/^([ \t]*)/g,"")).replace(/[ \t]*$/g,""),a=r+""+(a=x.subParser("encodeCode")(a,n,s))+"",a=x.subParser("hashHTMLSpans")(a,n,s)}),e=s.converter._dispatch("codeSpans.after",e,n,s)}),x.subParser("completeHTMLDocument",function(e,r,t){"use strict";if(!r.completeHTMLDocument)return e;e=t.converter._dispatch("completeHTMLDocument.before",e,r,t);var a,n="html",s="\n",o="",i='\n',l="",c="";for(a in void 0!==t.metadata.parsed.doctype&&(s="\n","html"!==(n=t.metadata.parsed.doctype.toString().toLowerCase())&&"html5"!==n||(i='')),t.metadata.parsed)if(t.metadata.parsed.hasOwnProperty(a))switch(a.toLowerCase()){case"doctype":break;case"title":o=""+t.metadata.parsed.title+"\n";break;case"charset":i="html"===n||"html5"===n?'\n':'\n';break;case"language":case"lang":l=' lang="'+t.metadata.parsed[a]+'"',c+='\n';break;default:c+='\n'}return e=s+"\n\n"+o+i+c+"\n\n"+e.trim()+"\n\n",e=t.converter._dispatch("completeHTMLDocument.after",e,r,t)}),x.subParser("detab",function(e,r,t){"use strict";return e=(e=(e=(e=(e=(e=t.converter._dispatch("detab.before",e,r,t)).replace(/\t(?=\t)/g," ")).replace(/\t/g,"¨A¨B")).replace(/¨B(.+?)¨A/g,function(e,r){for(var t=r,a=4-t.length%4,n=0;n/g,">"),e=t.converter._dispatch("encodeAmpsAndAngles.after",e,r,t)}),x.subParser("encodeBackslashEscapes",function(e,r,t){"use strict";return e=(e=(e=t.converter._dispatch("encodeBackslashEscapes.before",e,r,t)).replace(/\\(\\)/g,x.helper.escapeCharactersCallback)).replace(/\\([`*_{}\[\]()>#+.!~=|:-])/g,x.helper.escapeCharactersCallback),e=t.converter._dispatch("encodeBackslashEscapes.after",e,r,t)}),x.subParser("encodeCode",function(e,r,t){"use strict";return e=(e=t.converter._dispatch("encodeCode.before",e,r,t)).replace(/&/g,"&").replace(//g,">").replace(/([*_{}\[\]\\=~-])/g,x.helper.escapeCharactersCallback),e=t.converter._dispatch("encodeCode.after",e,r,t)}),x.subParser("escapeSpecialCharsWithinTagAttributes",function(e,r,t){"use strict";return e=(e=(e=t.converter._dispatch("escapeSpecialCharsWithinTagAttributes.before",e,r,t)).replace(/<\/?[a-z\d_:-]+(?:[\s]+[\s\S]+?)?>/gi,function(e){return e.replace(/(.)<\/?code>(?=.)/g,"$1`").replace(/([\\`*_~=|])/g,x.helper.escapeCharactersCallback)})).replace(/-]|-[^>])(?:[^-]|-[^-])*)--)>/gi,function(e){return e.replace(/([\\`*_~=|])/g,x.helper.escapeCharactersCallback)}),e=t.converter._dispatch("escapeSpecialCharsWithinTagAttributes.after",e,r,t)}),x.subParser("githubCodeBlocks",function(e,s,o){"use strict";return s.ghCodeBlocks?(e=o.converter._dispatch("githubCodeBlocks.before",e,s,o),e=(e=(e+="¨0").replace(/(?:^|\n)(?: {0,3})(```+|~~~+)(?: *)([^\s`~]*)\n([\s\S]*?)\n(?: {0,3})\1/g,function(e,r,t,a){var n=s.omitExtraWLInCodeBlocks?"":"\n";return a=x.subParser("encodeCode")(a,s,o),a="
    "+(a=(a=(a=x.subParser("detab")(a,s,o)).replace(/^\n+/g,"")).replace(/\n+$/g,""))+n+"
    ",a=x.subParser("hashBlock")(a,s,o),"\n\n¨G"+(o.ghCodeBlocks.push({text:e,codeblock:a})-1)+"G\n\n"})).replace(/¨0/,""),o.converter._dispatch("githubCodeBlocks.after",e,s,o)):e}),x.subParser("hashBlock",function(e,r,t){"use strict";return e=(e=t.converter._dispatch("hashBlock.before",e,r,t)).replace(/(^\n+|\n+$)/g,""),e="\n\n¨K"+(t.gHtmlBlocks.push(e)-1)+"K\n\n",e=t.converter._dispatch("hashBlock.after",e,r,t)}),x.subParser("hashCodeTags",function(e,n,s){"use strict";e=s.converter._dispatch("hashCodeTags.before",e,n,s);return e=x.helper.replaceRecursiveRegExp(e,function(e,r,t,a){t=t+x.subParser("encodeCode")(r,n,s)+a;return"¨C"+(s.gHtmlSpans.push(t)-1)+"C"},"]*>","","gim"),e=s.converter._dispatch("hashCodeTags.after",e,n,s)}),x.subParser("hashElement",function(e,r,t){"use strict";return function(e,r){return r=(r=(r=r.replace(/\n\n/g,"\n")).replace(/^\n/,"")).replace(/\n+$/g,""),r="\n\n¨K"+(t.gHtmlBlocks.push(r)-1)+"K\n\n"}}),x.subParser("hashHTMLBlocks",function(e,r,n){"use strict";e=n.converter._dispatch("hashHTMLBlocks.before",e,r,n);function t(e,r,t,a){return-1!==t.search(/\bmarkdown\b/)&&(e=t+n.converter.makeHtml(r)+a),"\n\n¨K"+(n.gHtmlBlocks.push(e)-1)+"K\n\n"}var a=["pre","div","h1","h2","h3","h4","h5","h6","blockquote","table","dl","ol","ul","script","noscript","form","fieldset","iframe","math","style","section","header","footer","nav","article","aside","address","audio","canvas","figure","hgroup","output","video","p"];r.backslashEscapesHTMLTags&&(e=e.replace(/\\<(\/?[^>]+?)>/g,function(e,r){return"<"+r+">"}));for(var s=0;s]*>)","im"),i="<"+a[s]+"\\b[^>]*>",l="";-1!==(c=x.helper.regexIndexOf(e,o));){var c=x.helper.splitAtIndex(e,c),u=x.helper.replaceRecursiveRegExp(c[1],t,i,l,"im");if(u===c[1])break;e=c[0].concat(u)}return e=e.replace(/(\n {0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,x.subParser("hashElement")(e,r,n)),e=(e=x.helper.replaceRecursiveRegExp(e,function(e){return"\n\n¨K"+(n.gHtmlBlocks.push(e)-1)+"K\n\n"},"^ {0,3}\x3c!--","--\x3e","gm")).replace(/(?:\n\n)( {0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,x.subParser("hashElement")(e,r,n)),e=n.converter._dispatch("hashHTMLBlocks.after",e,r,n)}),x.subParser("hashHTMLSpans",function(e,r,t){"use strict";function a(e){return"¨C"+(t.gHtmlSpans.push(e)-1)+"C"}return e=(e=(e=(e=(e=t.converter._dispatch("hashHTMLSpans.before",e,r,t)).replace(/<[^>]+?\/>/gi,a)).replace(/<([^>]+?)>[\s\S]*?<\/\1>/g,a)).replace(/<([^>]+?)\s[^>]+?>[\s\S]*?<\/\1>/g,a)).replace(/<[^>]+?>/gi,a),e=t.converter._dispatch("hashHTMLSpans.after",e,r,t)}),x.subParser("unhashHTMLSpans",function(e,r,t){"use strict";e=t.converter._dispatch("unhashHTMLSpans.before",e,r,t);for(var a=0;a]*>\\s*]*>","^ {0,3}\\s*
    ","gim"),e=s.converter._dispatch("hashPreCodeTags.after",e,n,s)}),x.subParser("headers",function(e,n,s){"use strict";e=s.converter._dispatch("headers.before",e,n,s);var o=isNaN(parseInt(n.headerLevelStart))?1:parseInt(n.headerLevelStart),r=n.smoothLivePreview?/^(.+)[ \t]*\n={2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n=+[ \t]*\n+/gm,t=n.smoothLivePreview?/^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n-+[ \t]*\n+/gm,r=(e=(e=e.replace(r,function(e,r){var t=x.subParser("spanGamut")(r,n,s),r=n.noHeaderId?"":' id="'+i(r)+'"',r=""+t+"";return x.subParser("hashBlock")(r,n,s)})).replace(t,function(e,r){var t=x.subParser("spanGamut")(r,n,s),r=n.noHeaderId?"":' id="'+i(r)+'"',a=o+1,r=""+t+"";return x.subParser("hashBlock")(r,n,s)}),n.requireSpaceBeforeHeadingText?/^(#{1,6})[ \t]+(.+?)[ \t]*#*\n+/gm:/^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm);function i(e){var r=e=n.customizedHeaderId&&(r=e.match(/\{([^{]+?)}\s*$/))&&r[1]?r[1]:e,e=x.helper.isString(n.prefixHeaderId)?n.prefixHeaderId:!0===n.prefixHeaderId?"section-":"";return n.rawPrefixHeaderId||(r=e+r),r=(n.ghCompatibleHeaderId?r.replace(/ /g,"-").replace(/&/g,"").replace(/¨T/g,"").replace(/¨D/g,"").replace(/[&+$,\/:;=?@"#{}|^¨~\[\]`\\*)(%.!'<>]/g,""):n.rawHeaderId?r.replace(/ /g,"-").replace(/&/g,"&").replace(/¨T/g,"¨").replace(/¨D/g,"$").replace(/["']/g,"-"):r.replace(/[^\w]/g,"")).toLowerCase(),n.rawPrefixHeaderId&&(r=e+r),s.hashLinkCounts[r]?r=r+"-"+s.hashLinkCounts[r]++:s.hashLinkCounts[r]=1,r}return e=e.replace(r,function(e,r,t){var a=t,a=(n.customizedHeaderId&&(a=t.replace(/\s?\{([^{]+?)}\s*$/,"")),x.subParser("spanGamut")(a,n,s)),t=n.noHeaderId?"":' id="'+i(t)+'"',r=o-1+r.length,t=""+a+"";return x.subParser("hashBlock")(t,n,s)}),e=s.converter._dispatch("headers.after",e,n,s)}),x.subParser("horizontalRule",function(e,r,t){"use strict";e=t.converter._dispatch("horizontalRule.before",e,r,t);var a=x.subParser("hashBlock")("
    ",r,t);return e=(e=(e=e.replace(/^ {0,2}( ?-){3,}[ \t]*$/gm,a)).replace(/^ {0,2}( ?\*){3,}[ \t]*$/gm,a)).replace(/^ {0,2}( ?_){3,}[ \t]*$/gm,a),e=t.converter._dispatch("horizontalRule.after",e,r,t)}),x.subParser("images",function(e,r,d){"use strict";function l(e,r,t,a,n,s,o,i){var l=d.gUrls,c=d.gTitles,u=d.gDimensions;if(t=t.toLowerCase(),i=i||"",-1? ?(['"].*['"])?\)$/m))a="";else if(""===a||null===a){if(a="#"+(t=""!==t&&null!==t?t:r.toLowerCase().replace(/ ?\n/g," ")),x.helper.isUndefined(l[t]))return e;a=l[t],x.helper.isUndefined(c[t])||(i=c[t]),x.helper.isUndefined(u[t])||(n=u[t].width,s=u[t].height)}r=r.replace(/"/g,""").replace(x.helper.regexes.asteriskDashAndColon,x.helper.escapeCharactersCallback);e=''+r+'"}return e=(e=(e=(e=(e=(e=d.converter._dispatch("images.before",e,r,d)).replace(/!\[([^\]]*?)] ?(?:\n *)?\[([\s\S]*?)]()()()()()/g,l)).replace(/!\[([^\]]*?)][ \t]*()\([ \t]??(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,function(e,r,t,a,n,s,o,i){return l(e,r,t,a=a.replace(/\s/g,""),n,s,0,i)})).replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<([^>]*)>(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(?:(["'])([^"]*?)\6))?[ \t]?\)/g,l)).replace(/!\[([^\]]*?)][ \t]*()\([ \t]??(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,l)).replace(/!\[([^\[\]]+)]()()()()()/g,l),e=d.converter._dispatch("images.after",e,r,d)}),x.subParser("italicsAndBold",function(e,r,t){"use strict";return e=t.converter._dispatch("italicsAndBold.before",e,r,t),e=r.literalMidWordUnderscores?(e=(e=e.replace(/\b___(\S[\s\S]*?)___\b/g,function(e,r){return""+r+""})).replace(/\b__(\S[\s\S]*?)__\b/g,function(e,r){return""+r+""})).replace(/\b_(\S[\s\S]*?)_\b/g,function(e,r){return""+r+""}):(e=(e=e.replace(/___(\S[\s\S]*?)___/g,function(e,r){return/\S$/.test(r)?""+r+"":e})).replace(/__(\S[\s\S]*?)__/g,function(e,r){return/\S$/.test(r)?""+r+"":e})).replace(/_([^\s_][\s\S]*?)_/g,function(e,r){return/\S$/.test(r)?""+r+"":e}),e=r.literalMidWordAsterisks?(e=(e=e.replace(/([^*]|^)\B\*\*\*(\S[\s\S]*?)\*\*\*\B(?!\*)/g,function(e,r,t){return r+""+t+""})).replace(/([^*]|^)\B\*\*(\S[\s\S]*?)\*\*\B(?!\*)/g,function(e,r,t){return r+""+t+""})).replace(/([^*]|^)\B\*(\S[\s\S]*?)\*\B(?!\*)/g,function(e,r,t){return r+""+t+""}):(e=(e=e.replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g,function(e,r){return/\S$/.test(r)?""+r+"":e})).replace(/\*\*(\S[\s\S]*?)\*\*/g,function(e,r){return/\S$/.test(r)?""+r+"":e})).replace(/\*([^\s*][\s\S]*?)\*/g,function(e,r){return/\S$/.test(r)?""+r+"":e}),e=t.converter._dispatch("italicsAndBold.after",e,r,t)}),x.subParser("lists",function(e,d,c){"use strict";function p(e,r){c.gListLevel++,e=e.replace(/\n{2,}$/,"\n");var t=/(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0| {0,3}([*+-]|\d+[.])[ \t]+))/gm,l=/\n[ \t]*\n(?!¨0)/.test(e+="¨0");return d.disableForced4SpacesIndentedSublists&&(t=/(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0|\2([*+-]|\d+[.])[ \t]+))/gm),e=(e=e.replace(t,function(e,r,t,a,n,s,o){o=o&&""!==o.trim();var n=x.subParser("outdent")(n,d,c),i="";return s&&d.tasklists&&(i=' class="task-list-item" style="list-style-type: none;"',n=n.replace(/^[ \t]*\[(x|X| )?]/m,function(){var e='"+(n=(n=r||-1\n"})).replace(/¨0/g,""),c.gListLevel--,e=r?e.replace(/\s+$/,""):e}function h(e,r){if("ol"===r){r=e.match(/^ *(\d+)\./);if(r&&"1"!==r[1])return' start="'+r[1]+'"'}return""}function n(n,s,o){var e,i=d.disableForced4SpacesIndentedSublists?/^ ?\d+\.[ \t]/gm:/^ {0,3}\d+\.[ \t]/gm,l=d.disableForced4SpacesIndentedSublists?/^ ?[*+-][ \t]/gm:/^ {0,3}[*+-][ \t]/gm,c="ul"===s?i:l,u="";return-1!==n.search(c)?function e(r){var t=r.search(c),a=h(n,s);-1!==t?(u+="\n\n<"+s+a+">\n"+p(r.slice(0,t),!!o)+"\n",c="ul"===(s="ul"===s?"ol":"ul")?i:l,e(r.slice(t))):u+="\n\n<"+s+a+">\n"+p(r,!!o)+"\n"}(n):(e=h(n,s),u="\n\n<"+s+e+">\n"+p(n,!!o)+"\n"),u}return e=c.converter._dispatch("lists.before",e,d,c),e+="¨0",e=(e=c.gListLevel?e.replace(/^(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm,function(e,r,t){return n(r,-1"),i+="

    ",n.push(i))}for(s=n.length,o=0;o]*>\s*]*>/.test(c)&&(u=!0)}n[o]=c}return e=(e=(e=n.join("\n")).replace(/^\n+/g,"")).replace(/\n+$/g,""),t.converter._dispatch("paragraphs.after",e,r,t)}),x.subParser("runExtension",function(e,r,t,a){"use strict";return e.filter?r=e.filter(r,a.converter,t):e.regex&&((a=e.regex)instanceof RegExp||(a=new RegExp(a,"g")),r=r.replace(a,e.replace)),r}),x.subParser("spanGamut",function(e,r,t){"use strict";return e=t.converter._dispatch("spanGamut.before",e,r,t),e=x.subParser("codeSpans")(e,r,t),e=x.subParser("escapeSpecialCharsWithinTagAttributes")(e,r,t),e=x.subParser("encodeBackslashEscapes")(e,r,t),e=x.subParser("images")(e,r,t),e=x.subParser("anchors")(e,r,t),e=x.subParser("autoLinks")(e,r,t),e=x.subParser("simplifiedAutoLinks")(e,r,t),e=x.subParser("emoji")(e,r,t),e=x.subParser("underline")(e,r,t),e=x.subParser("italicsAndBold")(e,r,t),e=x.subParser("strikethrough")(e,r,t),e=x.subParser("ellipsis")(e,r,t),e=x.subParser("hashHTMLSpans")(e,r,t),e=x.subParser("encodeAmpsAndAngles")(e,r,t),r.simpleLineBreaks?/\n\n¨K/.test(e)||(e=e.replace(/\n+/g,"
    \n")):e=e.replace(/ +\n/g,"
    \n"),e=t.converter._dispatch("spanGamut.after",e,r,t)}),x.subParser("strikethrough",function(e,t,a){"use strict";return t.strikethrough&&(e=(e=a.converter._dispatch("strikethrough.before",e,t,a)).replace(/(?:~){2}([\s\S]+?)(?:~){2}/g,function(e,r){return r=r,""+(r=t.simplifiedAutoLink?x.subParser("simplifiedAutoLinks")(r,t,a):r)+""}),e=a.converter._dispatch("strikethrough.after",e,t,a)),e}),x.subParser("stripLinkDefinitions",function(i,l,c){"use strict";function e(e,r,t,a,n,s,o){return r=r.toLowerCase(),i.toLowerCase().split(r).length-1<2?e:(t.match(/^data:.+?\/.+?;base64,/)?c.gUrls[r]=t.replace(/\s/g,""):c.gUrls[r]=x.subParser("encodeAmpsAndAngles")(t,l,c),s?s+o:(o&&(c.gTitles[r]=o.replace(/"|'/g,""")),l.parseImgDimensions&&a&&n&&(c.gDimensions[r]={width:a,height:n}),""))}return i=(i=(i=(i+="¨0").replace(/^ {0,3}\[([^\]]+)]:[ \t]*\n?[ \t]*?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n\n|(?=¨0)|(?=\n\[))/gm,e)).replace(/^ {0,3}\[([^\]]+)]:[ \t]*\n?[ \t]*\s]+)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=¨0))/gm,e)).replace(/¨0/,"")}),x.subParser("tables",function(e,y,P){"use strict";if(!y.tables)return e;function r(e){for(var r=e.split("\n"),t=0;t"+(n=x.subParser("spanGamut")(n,y,P))+"\n"));for(t=0;t"+x.subParser("spanGamut")(i,y,P)+"\n"));h.push(_)}for(var m=d,f=h,b="\n\n\n",w=m.length,k=0;k\n\n\n",k=0;k\n";for(var v=0;v\n"}return b+="\n
    \n"}return e=(e=(e=(e=P.converter._dispatch("tables.before",e,y,P)).replace(/\\(\|)/g,x.helper.escapeCharactersCallback)).replace(/^ {0,3}\|?.+\|.+\n {0,3}\|?[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:[-=]){2,}[\s\S]+?(?:\n\n|¨0)/gm,r)).replace(/^ {0,3}\|.+\|[ \t]*\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n( {0,3}\|.+\|[ \t]*\n)*(?:\n|¨0)/gm,r),e=P.converter._dispatch("tables.after",e,y,P)}),x.subParser("underline",function(e,r,t){"use strict";return r.underline?(e=t.converter._dispatch("underline.before",e,r,t),e=(e=r.literalMidWordUnderscores?(e=e.replace(/\b___(\S[\s\S]*?)___\b/g,function(e,r){return""+r+""})).replace(/\b__(\S[\s\S]*?)__\b/g,function(e,r){return""+r+""}):(e=e.replace(/___(\S[\s\S]*?)___/g,function(e,r){return/\S$/.test(r)?""+r+"":e})).replace(/__(\S[\s\S]*?)__/g,function(e,r){return/\S$/.test(r)?""+r+"":e})).replace(/(_)/g,x.helper.escapeCharactersCallback),t.converter._dispatch("underline.after",e,r,t)):e}),x.subParser("unescapeSpecialChars",function(e,r,t){"use strict";return e=(e=t.converter._dispatch("unescapeSpecialChars.before",e,r,t)).replace(/¨E(\d+)E/g,function(e,r){r=parseInt(r);return String.fromCharCode(r)}),e=t.converter._dispatch("unescapeSpecialChars.after",e,r,t)}),x.subParser("makeMarkdown.blockquote",function(e,r){"use strict";var t="";if(e.hasChildNodes())for(var a=e.childNodes,n=a.length,s=0;s ")}),x.subParser("makeMarkdown.codeBlock",function(e,r){"use strict";var t=e.getAttribute("language"),e=e.getAttribute("precodenum");return"```"+t+"\n"+r.preList[e]+"\n```"}),x.subParser("makeMarkdown.codeSpan",function(e){"use strict";return"`"+e.innerHTML+"`"}),x.subParser("makeMarkdown.emphasis",function(e,r){"use strict";var t="";if(e.hasChildNodes()){t+="*";for(var a=e.childNodes,n=a.length,s=0;s",e.hasAttribute("width")&&e.hasAttribute("height")&&(r+=" ="+e.getAttribute("width")+"x"+e.getAttribute("height")),e.hasAttribute("title")&&(r+=' "'+e.getAttribute("title")+'"'),r+=")"),r}),x.subParser("makeMarkdown.links",function(e,r){"use strict";var t="";if(e.hasChildNodes()&&e.hasAttribute("href")){for(var a=e.childNodes,n=a.length,t="[",s=0;s"),e.hasAttribute("title")&&(t+=' "'+e.getAttribute("title")+'"'),t+=")"}return t}),x.subParser("makeMarkdown.list",function(e,r,t){"use strict";var a="";if(!e.hasChildNodes())return"";for(var n=e.childNodes,s=n.length,o=e.getAttribute("start")||1,i=0;i"+r.preList[e]+""}),x.subParser("makeMarkdown.strikethrough",function(e,r){"use strict";var t="";if(e.hasChildNodes()){t+="~~";for(var a=e.childNodes,n=a.length,s=0;str>th"),s=e.querySelectorAll("tbody>tr"),o=0;o/g,"\\$1>")).replace(/^#/gm,"\\#")).replace(/^(\s*)([-=]{3,})(\s*)$/,"$1\\$2$3")).replace(/^( {0,3}\d+)\./gm,"$1\\.")).replace(/^( {0,3})([+-])/gm,"$1\\$2")).replace(/]([\s]*)\(/g,"\\]$1\\(")).replace(/^ {0,3}\[([\S \t]*?)]:/gm,"\\[$1]:")});"function"==typeof define&&define.amd?define(function(){"use strict";return x}):"undefined"!=typeof module&&module.exports?module.exports=x:this.showdown=x}.call(this); +//# sourceMappingURL=showdown.min.js.map diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/emotion.css b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/emotion.css new file mode 100644 index 0000000..f2e0fc1 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/emotion.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +.jd img{background:transparent url(images/jxface2.gif?v=1.1) no-repeat scroll left top;cursor:pointer;width:35px;height:35px;display:block}.pp img{background:transparent url(images/fface.gif?v=1.1) no-repeat scroll left top;cursor:pointer;width:25px;height:25px;display:block}.ldw img{background:transparent url(images/wface.gif?v=1.1) no-repeat scroll left top;cursor:pointer;width:35px;height:35px;display:block}.tsj img{background:transparent url(images/tface.gif?v=1.1) no-repeat scroll left top;cursor:pointer;width:35px;height:35px;display:block}.cat img{background:transparent url(images/cface.gif?v=1.1) no-repeat scroll left top;cursor:pointer;width:35px;height:35px;display:block}.bb img{background:transparent url(images/bface.gif?v=1.1) no-repeat scroll left top;cursor:pointer;width:35px;height:35px;display:block}.youa img{background:transparent url(images/yface.gif?v=1.1) no-repeat scroll left top;cursor:pointer;width:35px;height:35px;display:block}.smileytable td{height:37px}#tabPanel{margin-left:5px;overflow:hidden}#tabContent{float:left;background:#FFF}#tabContent div{display:none;width:480px;overflow:hidden}#tabIconReview.show{left:17px;display:block}.menuFocus{background:#ACCD3C}.menuDefault{background:#FFF}#tabIconReview{position:absolute;left:406px;left:398px \9;top:41px;z-index:65533;width:90px;height:76px}img.review{width:90px;height:76px;border:2px solid #9cb945;background:#FFF;background-position:center;background-repeat:no-repeat}.wrapper .tabbody{position:relative;float:left;clear:both;padding:10px;width:95%}.tabbody table{width:100%}.tabbody td{border:1px solid #BAC498}.tabbody td span{display:block;zoom:1;padding:0 4px} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/emotion.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/emotion.html new file mode 100644 index 0000000..95b5880 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/emotion.html @@ -0,0 +1,70 @@ + + + + + + + + + + +
    +
    + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/emotion.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/emotion.js new file mode 100644 index 0000000..5e907f0 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/emotion.js @@ -0,0 +1,186 @@ +window.onload = function () { + editor.setOpt({ + emotionLocalization: false + }); + + emotion.SmileyPath = editor.options.emotionLocalization === true ? 'images/' : "http://img.baidu.com/hi/"; + emotion.SmileyBox = createTabList(emotion.tabNum); + emotion.tabExist = createArr(emotion.tabNum); + + initImgName(); + initEvtHandler("tabHeads"); +}; + +function initImgName() { + for (var pro in emotion.SmilmgName) { + var tempName = emotion.SmilmgName[pro], + tempBox = emotion.SmileyBox[pro], + tempStr = ""; + + if (tempBox.length) return; + for (var i = 1; i <= tempName[1]; i++) { + tempStr = tempName[0]; + if (i < 10) tempStr = tempStr + '0'; + tempStr = tempStr + i + '.gif'; + tempBox.push(tempStr); + } + } +} + +function initEvtHandler(conId) { + var tabHeads = $G(conId); + for (var i = 0, j = 0; i < tabHeads.childNodes.length; i++) { + var tabObj = tabHeads.childNodes[i]; + if (tabObj.nodeType == 1) { + domUtils.on(tabObj, "click", (function (index) { + return function () { + switchTab(index); + }; + })(j)); + j++; + } + } + switchTab(0); + $G("tabIconReview").style.display = 'none'; +} + +function InsertSmiley(url, evt) { + var obj = { + src: editor.options.emotionLocalization ? editor.options.UEDITOR_HOME_URL + "dialogs/emotion/" + url : url + }; + obj._src = obj.src; + editor.execCommand('insertimage', obj); + if (!evt.ctrlKey) { + dialog.popup.hide(); + } +} + +function switchTab(index) { + + autoHeight(index); + if (emotion.tabExist[index] == 0) { + emotion.tabExist[index] = 1; + createTab('tab' + index); + } + //获取呈现元素句柄数组 + var tabHeads = $G("tabHeads").getElementsByTagName("span"), + tabBodys = $G("tabBodys").getElementsByTagName("div"), + i = 0, L = tabHeads.length; + //隐藏所有呈现元素 + for (; i < L; i++) { + tabHeads[i].className = ""; + tabBodys[i].style.display = "none"; + } + //显示对应呈现元素 + tabHeads[index].className = "focus"; + tabBodys[index].style.display = "block"; +} + +function autoHeight(index) { + var iframe = dialog.getDom("iframe"), + parent = iframe.parentNode.parentNode; + switch (index) { + case 0: + iframe.style.height = "380px"; + parent.style.height = "392px"; + break; + case 1: + iframe.style.height = "220px"; + parent.style.height = "232px"; + break; + case 2: + iframe.style.height = "260px"; + parent.style.height = "272px"; + break; + case 3: + iframe.style.height = "300px"; + parent.style.height = "312px"; + break; + case 4: + iframe.style.height = "140px"; + parent.style.height = "152px"; + break; + case 5: + iframe.style.height = "260px"; + parent.style.height = "272px"; + break; + case 6: + iframe.style.height = "230px"; + parent.style.height = "242px"; + break; + default: + + } +} + + +function createTab(tabName) { + var faceVersion = "?v=1.1", //版本号 + tab = $G(tabName), //获取将要生成的Div句柄 + imagePath = emotion.SmileyPath + emotion.imageFolders[tabName], //获取显示表情和预览表情的路径 + positionLine = 11 / 2, //中间数 + iWidth = iHeight = 35, //图片长宽 + iColWidth = 3, //表格剩余空间的显示比例 + tableCss = emotion.imageCss[tabName], + cssOffset = emotion.imageCssOffset[tabName], + textHTML = [''], + i = 0, imgNum = emotion.SmileyBox[tabName].length, imgColNum = 11, faceImage, + sUrl, realUrl, posflag, offset, infor; + + for (; i < imgNum;) { + textHTML.push(''); + for (var j = 0; j < imgColNum; j++, i++) { + faceImage = emotion.SmileyBox[tabName][i]; + if (faceImage) { + sUrl = imagePath + faceImage + faceVersion; + realUrl = imagePath + faceImage; + posflag = j < positionLine ? 0 : 1; + offset = cssOffset * i * (-1) - 1; + infor = emotion.SmileyInfor[tabName][i]; + + textHTML.push(''); + } + textHTML.push(''); + } + textHTML.push('
    '); + textHTML.push(''); + textHTML.push(''); + textHTML.push(''); + } else { + textHTML.push(''); + } + textHTML.push('
    '); + textHTML = textHTML.join(""); + tab.innerHTML = textHTML; +} + +function over(td, srcPath, posFlag) { + td.style.backgroundColor = "#ACCD3C"; + $G('faceReview').style.backgroundImage = "url(" + srcPath + ")"; + if (posFlag == 1) $G("tabIconReview").className = "show"; + $G("tabIconReview").style.display = 'block'; +} + +function out(td) { + td.style.backgroundColor = "transparent"; + var tabIconRevew = $G("tabIconReview"); + tabIconRevew.className = ""; + tabIconRevew.style.display = 'none'; +} + +function createTabList(tabNum) { + var obj = {}; + for (var i = 0; i < tabNum; i++) { + obj["tab" + i] = []; + } + return obj; +} + +function createArr(tabNum) { + var arr = []; + for (var i = 0; i < tabNum; i++) { + arr[i] = 0; + } + return arr; +} + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/0.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/0.gif new file mode 100644 index 0000000..6964168 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/0.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/bface.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/bface.gif new file mode 100644 index 0000000..14fe618 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/bface.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/cface.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/cface.gif new file mode 100644 index 0000000..bff947f Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/cface.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/fface.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/fface.gif new file mode 100644 index 0000000..0d8a6af Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/fface.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/jxface2.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/jxface2.gif new file mode 100644 index 0000000..a959c90 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/jxface2.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/neweditor-tab-bg.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/neweditor-tab-bg.png new file mode 100644 index 0000000..8f398b0 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/neweditor-tab-bg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/tface.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/tface.gif new file mode 100644 index 0000000..1354f54 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/tface.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/wface.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/wface.gif new file mode 100644 index 0000000..5667160 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/wface.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/yface.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/yface.gif new file mode 100644 index 0000000..51608be Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/emotion/images/yface.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/formula/formula.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/formula/formula.html new file mode 100644 index 0000000..ee49f92 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/formula/formula.html @@ -0,0 +1,98 @@ + + + + + + + + + +
    + + + + + +
    + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/formula/formula.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/formula/formula.js new file mode 100644 index 0000000..de47bfe --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/formula/formula.js @@ -0,0 +1,147 @@ +function preg_quote(str, delimiter) { + // Quote regular expression characters plus an optional character + // + // version: 1107.2516 + // discuss at: http://phpjs.org/functions/preg_quote + // + original by: booeyOH + // + improved by: Ates Goral (http://magnetiq.com) + // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) + // + bugfixed by: Onno Marsman + // + improved by: Brett Zamir (http://brett-zamir.me) + // * example 1: preg_quote("$40"); + // * returns 1: '\$40' + // * example 2: preg_quote("*RRRING* Hello?"); + // * returns 2: '\*RRRING\* Hello\?' + // * example 3: preg_quote("\\.+*?[^]$(){}=!<>|:"); + // * returns 3: '\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:' + return (str + '').replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\' + (delimiter || '') + '-]', 'g'), '\\$&'); +} + +function loadScript(url, cb) { + var script; + script = document.createElement('script'); + script.src = url; + script.onload = function () { + cb && cb({isNew: true}) + }; + document.getElementsByTagName('head')[0].appendChild(script); +} + +var Formula = { + mode: 'plain', + latexeasy: null, + init: function () { + // console.log('Formula.init') + Formula.initMode(); + Formula.initEvent(); + Formula.initSubmit(); + }, + renderPlain: function () { + var $preview = $('#preview'); + var value = $('#editor').val(); + if (!value) { + $preview.hide(); + return; + } + value = encodeURIComponent(value); + var formulaConfig = editor.getOpt('formulaConfig'); + var src = formulaConfig.imageUrlTemplate.replace(/\{\}/, value); + $('#previewImage').attr('src', src); + $preview.show(); + }, + setValuePlain: function (value) { + $('#editor').val(value); + Formula.renderPlain(); + }, + setValueLive: function (value) { + if (!Formula.latexeasy) { + setTimeout(function () { + Formula.setValueLive(value); + }, 100); + return; + } + Formula.latexeasy.call('set.latex', {latex: value}); + }, + initMode: function () { + var formulaConfig = editor.getOpt('formulaConfig'); + if ('live' === formulaConfig.editorMode) { + $('#liveEditor').attr('src', formulaConfig.editorLiveServer + '/editor'); + $('#modeLive').show(); + Formula.mode = 'live'; + } else { + $('#modePlain').show(); + Formula.mode = 'plain'; + } + var img = editor.selection.getRange().getClosedNode(); + if (img && img.getAttribute('data-formula-image') !== null) { + var value = img.getAttribute('data-formula-image'); + if (value) { + Formula.setValue(decodeURIComponent(value)); + } + } + }, + setValue: function (value) { + switch (Formula.mode) { + case 'plain': + Formula.setValuePlain(value); + break; + case 'live': + Formula.setValueLive(value); + break; + } + }, + getValue: function (cb) { + switch (Formula.mode) { + case 'plain': + cb($.trim($('#editor').val())); + break; + case 'live': + Formula.latexeasy.call('get.latex', {}, function (data) { + cb(data.latex); + }); + break; + } + }, + initEvent: function () { + var changeTimer = null, le; + switch (Formula.mode) { + case 'plain': + // console.log('Formula.initEvent'); + $('#editor').on('change keypress', function () { + changeTimer && clearTimeout(changeTimer); + changeTimer = setTimeout(function () { + Formula.renderPlain(); + }, 1000); + }); + $('#inputDemo').on('click', function () { + $('#editor').val('f(a) = \\frac{1}{2\\pi i} \\oint\\frac{f(z)}{z-a}dz'); + Formula.renderPlain(); + }); + break; + case 'live': + var formulaConfig = editor.getOpt('formulaConfig'); + loadScript(formulaConfig.editorLiveServer + '/vendor/LatexEasyEditor/editor/sdk.js', function () { + le = new window.LatexEasy(document.getElementById('liveEditor')); + le.on('ready', function () { + Formula.latexeasy = le; + }); + le.init(); + }); + break; + } + }, + initSubmit: function () { + dialog.onclose = function (t, ok) { + if (!ok) { + return true; + } + // console.log('onclose', t, ok); + Formula.getValue(function (value) { + editor.execCommand('formula', value); + editor.fireEvent('saveScene'); + dialog.close(false); + }); + return false; + }; + } +}; diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/help/help.css b/ruoyi-ui/public/static/UEditorPlus/dialogs/help/help.css new file mode 100644 index 0000000..51e034e --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/help/help.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +.wrapper{width:370px;margin:10px auto;zoom:1}.tabbody{height:360px}.tabbody .panel{width:100%;height:360px;position:absolute;background:#fff}.tabbody .panel h1{font-size:26px;margin:5px 0 0 5px}.tabbody .panel p{font-size:12px;margin:5px 0 0 5px}.tabbody table{width:90%;line-height:20px;margin:5px 0 0 5px}.tabbody table thead{font-weight:700;line-height:25px} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/help/help.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/help/help.html new file mode 100644 index 0000000..7d8c8c6 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/help/help.html @@ -0,0 +1,82 @@ + + + + 帮助 + + + + + +
    +
    + + +
    +
    +
    +

    UEditor Plus

    +

    +

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ctrl+b
    ctrl+c
    ctrl+x
    ctrl+v
    ctrl+y
    ctrl+z
    ctrl+i
    ctrl+u
    ctrl+a
    shift+enter
    alt+z
    +
    +
    +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/help/help.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/help/help.js new file mode 100644 index 0000000..87e2c6a --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/help/help.js @@ -0,0 +1,57 @@ +/** + * Created with JetBrains PhpStorm. + * User: xuheng + * Date: 12-9-26 + * Time: 下午1:06 + * To change this template use File | Settings | File Templates. + */ +/** + * tab点击处理事件 + * @param tabHeads + * @param tabBodys + * @param obj + */ +function clickHandler(tabHeads, tabBodys, obj) { + //head样式更改 + for (var k = 0, len = tabHeads.length; k < len; k++) { + tabHeads[k].className = ""; + } + obj.className = "focus"; + //body显隐 + var tabSrc = obj.getAttribute("tabSrc"); + for (var j = 0, length = tabBodys.length; j < length; j++) { + var body = tabBodys[j], + id = body.getAttribute("id"); + body.onclick = function () { + this.style.zoom = 1; + }; + if (id != tabSrc) { + body.style.zIndex = 1; + } else { + body.style.zIndex = 200; + } + } + +} + +/** + * TAB切换 + * @param tabParentId tab的父节点ID或者对象本身 + */ +function switchTab(tabParentId) { + var tabElements = $G(tabParentId).children, + tabHeads = tabElements[0].children, + tabBodys = tabElements[1].children; + + for (var i = 0, length = tabHeads.length; i < length; i++) { + var head = tabHeads[i]; + if (head.className === "focus") clickHandler(tabHeads, tabBodys, head); + head.onclick = function () { + clickHandler(tabHeads, tabBodys, this); + } + } +} + +switchTab("helptab"); + +document.getElementById('version').innerHTML = parent.UE.version; diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/image/image.css b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/image.css new file mode 100644 index 0000000..30535c4 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/image.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +@charset "utf-8";.wrapper{zoom:1;width:630px;*width:626px;height:380px;margin:0 auto;padding:10px;position:relative;font-family:sans-serif}.tabhead{float:left}.tabbody{width:100%;height:346px;position:relative;clear:both}.tabbody .panel{position:absolute;width:0;height:0;background:#fff;overflow:hidden;display:none}.tabbody .panel.focus{width:100%;height:346px;display:block}.alignBar{float:right;margin-top:5px;position:relative}.alignBar .algnLabel{float:left;height:20px;line-height:20px}.alignBar #alignIcon{zoom:1;_display:inline;display:inline-block;position:relative}.alignBar #alignIcon span{float:left;cursor:pointer;display:block;width:19px;height:17px;margin-right:3px;margin-left:3px;background-image:url(./images/alignicon.jpg)}.alignBar #alignIcon .none-align{background-position:0 -18px}.alignBar #alignIcon .left-align{background-position:-20px -18px}.alignBar #alignIcon .right-align{background-position:-40px -18px}.alignBar #alignIcon .center-align{background-position:-60px -18px}.alignBar #alignIcon .none-align.focus{background-position:0 0}.alignBar #alignIcon .left-align.focus{background-position:-20px 0}.alignBar #alignIcon .right-align.focus{background-position:-40px 0}.alignBar #alignIcon .center-align.focus{background-position:-60px 0}#remote{z-index:200}#remote .top{width:100%;margin-top:25px}#remote .left{display:block;float:left;width:300px;height:10px}#remote .right{display:block;float:right;width:300px;height:10px}#remote .row{margin-left:20px;clear:both;height:40px}#remote .row label{text-align:center;width:50px;zoom:1;_display:inline;display:inline-block;vertical-align:middle}#remote .row label.algnLabel{float:left}#remote input.text{width:150px;padding:3px 6px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}#remote input.text:focus{outline:0}#remote #url{width:400px;margin-bottom:2px}#remote #imageSelect{width:100px;display:inline-block;background:#FFF;border:1px solid #EEE;line-height:26px;text-align:center;color:#333;text-decoration:none;border-radius:3px;vertical-align:top}#remote #width,#remote #height{width:30px;margin-left:2px;margin-right:2px;text-align:center}#remote #border,#remote #vhSpace,#remote #title{width:180px;margin-right:5px}#remote #lock{display:inline-block;vertical-align:middle}#remote #lockicon{zoom:1;_display:inline;display:inline-block;width:20px;height:20px;background:url(../../themes/default/images/lock.gif) -13px -13px no-repeat;vertical-align:middle}#remote #preview{clear:both;width:260px;height:240px;z-index:9999;margin-top:10px;background-color:#eee;overflow:hidden}.tabbody #upload.panel{width:0;height:0;overflow:hidden;position:absolute!important;clip:rect(1px,1px,1px,1px);background:#fff;display:block}.tabbody #upload.panel.focus{width:100%;height:346px;display:block;clip:auto}#upload .queueList{margin:0;width:100%;height:100%;position:absolute;overflow:hidden}#upload p{margin:0}.element-invisible{width:0!important;height:0!important;border:0;padding:0;margin:0;overflow:hidden;position:absolute!important;clip:rect(1px,1px,1px,1px)}#upload .placeholder{margin:10px;border:2px dashed #e6e6e6;*border:0 dashed #e6e6e6;height:172px;padding-top:150px;text-align:center;background:url(./images/image.png) center 70px no-repeat;color:#ccc;font-size:18px;position:relative;top:0;*top:10px}#upload .placeholder .webuploader-pick{font-size:18px;background:#00b7ee;border-radius:3px;line-height:44px;padding:0 30px;*width:120px;color:#fff;display:inline-block;margin:0 auto 20px;cursor:pointer;box-shadow:0 1px 1px rgba(0,0,0,.1)}#upload .placeholder .webuploader-pick-hover{background:#00a2d4}#filePickerContainer{text-align:center}#upload .placeholder .flashTip{color:#666;font-size:12px;position:absolute;width:100%;text-align:center;bottom:20px}#upload .placeholder .flashTip a{color:#0785d1;text-decoration:none}#upload .placeholder .flashTip a:hover{text-decoration:underline}#upload .placeholder.webuploader-dnd-over{border-color:#999}#upload .filelist{list-style:none;margin:0;padding:0;overflow-x:hidden;overflow-y:auto;position:relative;height:300px}#upload .filelist:after{content:'';display:block;width:0;height:0;overflow:hidden;clear:both;position:relative}#upload .filelist li{width:113px;height:113px;background:url(./images/bg.png);text-align:center;margin:9px 0 0 9px;*margin:6px 0 0 6px;position:relative;display:block;float:left;overflow:hidden;font-size:12px}#upload .filelist li p.log{position:relative;top:-45px}#upload .filelist li p.title{position:absolute;top:0;left:0;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;top:5px;text-indent:5px;text-align:left}#upload .filelist li p.progress{position:absolute;width:100%;bottom:0;left:0;height:8px;overflow:hidden;z-index:50;margin:0;border-radius:0;background:0 0;-webkit-box-shadow:0 0 0}#upload .filelist li p.progress span{display:none;overflow:hidden;width:0;height:100%;background:#1483d8 url(./images/progress.png) repeat-x;-webit-transition:width 200ms linear;-moz-transition:width 200ms linear;-o-transition:width 200ms linear;-ms-transition:width 200ms linear;transition:width 200ms linear;-webkit-animation:progressmove 2s linear infinite;-moz-animation:progressmove 2s linear infinite;-o-animation:progressmove 2s linear infinite;-ms-animation:progressmove 2s linear infinite;animation:progressmove 2s linear infinite;-webkit-transform:translateZ(0)}@-webkit-keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}@-moz-keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}@keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}#upload .filelist li p.imgWrap{position:relative;z-index:2;line-height:113px;vertical-align:middle;overflow:hidden;width:113px;height:113px;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-o-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;-webit-transition:200ms ease-out;-moz-transition:200ms ease-out;-o-transition:200ms ease-out;-ms-transition:200ms ease-out;transition:200ms ease-out}#upload .filelist li img{width:100%}#upload .filelist li p.error{background:#f43838;color:#fff;position:absolute;bottom:0;left:0;height:28px;line-height:28px;width:100%;z-index:100;display:none}#upload .filelist li .success{display:block;position:absolute;left:0;bottom:0;height:40px;width:100%;z-index:200;background:url(./images/success.png) no-repeat right bottom;background:url(./images/success.gif) no-repeat right bottom \9}#upload .filelist li.filePickerBlock{width:113px;height:113px;background:url(./images/image.png) no-repeat center 12px;border:1px solid #eee;border-radius:0}#upload .filelist li.filePickerBlock div.webuploader-pick{width:100%;height:100%;margin:0;padding:0;opacity:0;background:0 0;font-size:0}#upload .filelist div.file-panel{position:absolute;height:0;filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;background:rgba(0,0,0,.5);width:100%;top:0;left:0;overflow:hidden;z-index:300}#upload .filelist div.file-panel span{width:24px;height:24px;display:inline;float:right;text-indent:-9999px;overflow:hidden;background:url(./images/icons.png) no-repeat;background:url(./images/icons.gif) no-repeat \9;margin:5px 1px 1px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#upload .filelist div.file-panel span.rotateLeft{display:none;background-position:0 -24px}#upload .filelist div.file-panel span.rotateLeft:hover{background-position:0 0}#upload .filelist div.file-panel span.rotateRight{display:none;background-position:-24px -24px}#upload .filelist div.file-panel span.rotateRight:hover{background-position:-24px 0}#upload .filelist div.file-panel span.cancel{background-position:-48px -24px}#upload .filelist div.file-panel span.cancel:hover{background-position:-48px 0}#upload .statusBar{height:45px;border-bottom:1px solid #dadada;margin:0 10px;padding:0;line-height:45px;vertical-align:middle;position:relative}#upload .statusBar .progress{border:1px solid #1483d8;width:198px;background:#fff;height:18px;position:absolute;top:12px;display:none;text-align:center;line-height:18px;color:#6dbfff;margin:0 10px 0 0}#upload .statusBar .progress span.percentage{width:0;height:100%;left:0;top:0;background:#1483d8;position:absolute}#upload .statusBar .progress span.text{position:relative;z-index:10}#upload .statusBar .info{display:inline-block;font-size:14px;color:#666}#upload .statusBar .btns{position:absolute;top:7px;right:0;line-height:30px}#filePickerBtn{display:inline-block;float:left}#upload .statusBar .btns .webuploader-pick,#upload .statusBar .btns .uploadBtn,#upload .statusBar .btns .uploadBtn.state-uploading,#upload .statusBar .btns .uploadBtn.state-paused{background:#fff;border:1px solid #cfcfcf;color:#565656;padding:0 18px;display:inline-block;border-radius:3px;margin-left:10px;cursor:pointer;font-size:14px;float:left;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#upload .statusBar .btns .webuploader-pick-hover,#upload .statusBar .btns .uploadBtn:hover,#upload .statusBar .btns .uploadBtn.state-uploading:hover,#upload .statusBar .btns .uploadBtn.state-paused:hover{background:#f0f0f0}#upload .statusBar .btns .uploadBtn,#upload .statusBar .btns .uploadBtn.state-paused{background:#00b7ee;color:#fff;border-color:transparent}#upload .statusBar .btns .uploadBtn:hover,#upload .statusBar .btns .uploadBtn.state-paused:hover{background:#00a2d4}#upload .statusBar .btns .uploadBtn.disabled{pointer-events:none;filter:alpha(opacity=60);-moz-opacity:.6;-khtml-opacity:.6;opacity:.6}#online{width:100%;height:336px;padding:10px 0 0}#online #imageList{width:100%;height:100%;overflow-x:hidden;overflow-y:auto;position:relative}#online ul{display:block;list-style:none;margin:0;padding:0}#online li{float:left;display:block;list-style:none;padding:0;width:113px;height:113px;margin:0 0 9px 9px;*margin:0 0 6px 6px;background-color:#eee;overflow:hidden;cursor:pointer;position:relative}#online li.clearFloat{float:none;clear:both;display:block;width:0;height:0;margin:0;padding:0}#online li img{cursor:pointer}#online li .icon{cursor:pointer;width:113px;height:113px;position:absolute;top:0;left:0;z-index:2;border:0;background-repeat:no-repeat}#online li .icon:hover{width:107px;height:107px;border:3px solid #1094fa}#online li.selected .icon{background-image:url(images/success.png);background-image:url(images/success.gif) \9;background-position:75px 75px}#online li.selected .icon:hover{width:107px;height:107px;border:3px solid #1094fa;background-position:72px 72px} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/image/image.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/image.html new file mode 100644 index 0000000..9064878 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/image.html @@ -0,0 +1,125 @@ + + + + + ueditor图片对话框 + + + + + + + + + + + + + + +
    +
    + + + +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    + + + +
    +
    +
    +
    + +   px +   px + +
    +
    + + px +
    +
    + + px +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    +
    +
    +
    + 0% + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
      +
    • +
    +
    +
    + + +
    +
    +
    + + + + +
    +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/image/image.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/image.js new file mode 100644 index 0000000..418cfe0 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/image.js @@ -0,0 +1,1051 @@ +/** + * User: Jinqn + * Date: 14-04-08 + * Time: 下午16:34 + * 上传图片对话框逻辑代码,包括tab: 远程图片/上传图片/在线图片/搜索图片 + */ +(function () { + + var remoteImage, + uploadImage, + onlineImage; + var editorOpt = {}; + + window.onload = function () { + editorOpt = editor.getOpt('imageConfig'); + initTabs(); + initAlign(); + initButtons(); + }; + + /* 初始化tab标签 */ + function initTabs() { + var tabs = $G('tabhead').children; + for (var i = 0; i < tabs.length; i++) { + domUtils.on(tabs[i], "click", function (e) { + var target = e.target || e.srcElement; + setTabFocus(target.getAttribute('data-content-id')); + }); + } + if (!editorOpt.disableUpload) { + $G('tabhead').querySelector('[data-content-id="upload"]').style.display = 'inline-block'; + } + if (!editorOpt.disableOnline) { + $G('tabhead').querySelector('[data-content-id="online"]').style.display = 'inline-block'; + } + if (!!editorOpt.selectCallback) { + $G('imageSelect').style.display = 'inline-block'; + domUtils.on($G('imageSelect'), "click", function (e) { + editorOpt.selectCallback(editor, function (info) { + if (info) { + $G('url').value = info.path; + $G('title').value = info.name; + var img = new Image(); + img.onload = function () { + $G('width').value = img.width; + $G('height').value = img.height; + remoteImage.setPreview(); + }; + img.onerror = function () { + remoteImage.setPreview(); + }; + img.src = info.path; + } + }); + }); + } + var img = editor.selection.getRange().getClosedNode(); + if (img && img.tagName && img.tagName.toLowerCase() == 'img') { + setTabFocus('remote'); + } else { + setTabFocus('remote'); + } + } + + /* 初始化tabbody */ + function setTabFocus(id) { + if (!id) return; + var i, bodyId, tabs = $G('tabhead').children; + for (i = 0; i < tabs.length; i++) { + bodyId = tabs[i].getAttribute('data-content-id'); + if (bodyId == id) { + domUtils.addClass(tabs[i], 'focus'); + domUtils.addClass($G(bodyId), 'focus'); + } else { + domUtils.removeClasses(tabs[i], 'focus'); + domUtils.removeClasses($G(bodyId), 'focus'); + } + } + switch (id) { + case 'remote': + remoteImage = remoteImage || new RemoteImage(); + break; + case 'upload': + setAlign(editor.getOpt('imageInsertAlign')); + uploadImage = uploadImage || new UploadImage('queueList'); + break; + case 'online': + setAlign(editor.getOpt('imageManagerInsertAlign')); + onlineImage = onlineImage || new OnlineImage('imageList'); + onlineImage.reset(); + break; + } + } + + /* 初始化onok事件 */ + function initButtons() { + + dialog.onok = function () { + var remote = false, list = [], id, tabs = $G('tabhead').children; + for (var i = 0; i < tabs.length; i++) { + if (domUtils.hasClass(tabs[i], 'focus')) { + id = tabs[i].getAttribute('data-content-id'); + break; + } + } + + switch (id) { + case 'remote': + list = remoteImage.getInsertList(); + break; + case 'upload': + list = uploadImage.getInsertList(); + var count = uploadImage.getQueueCount(); + if (count) { + $('.info', '#queueList').html('' + '还有2个未上传文件'.replace(/[\d]/, count) + ''); + return false; + } + break; + case 'online': + list = onlineImage.getInsertList(); + break; + } + + if (list) { + editor.execCommand('insertimage', list); + remote && editor.fireEvent("catchRemoteImage"); + } + }; + } + + + /* 初始化对其方式的点击事件 */ + function initAlign() { + /* 点击align图标 */ + domUtils.on($G("alignIcon"), 'click', function (e) { + var target = e.target || e.srcElement; + if (target.className && target.className.indexOf('-align') != -1) { + setAlign(target.getAttribute('data-align')); + } + }); + } + + /* 设置对齐方式 */ + function setAlign(align) { + align = align || 'none'; + var aligns = $G("alignIcon").children; + for (i = 0; i < aligns.length; i++) { + if (aligns[i].getAttribute('data-align') == align) { + domUtils.addClass(aligns[i], 'focus'); + $G("align").value = aligns[i].getAttribute('data-align'); + } else { + domUtils.removeClasses(aligns[i], 'focus'); + } + } + } + + /* 获取对齐方式 */ + function getAlign() { + var align = $G("align").value || 'none'; + return align == 'none' ? '' : align; + } + + + /* 在线图片 */ + function RemoteImage(target) { + this.container = utils.isString(target) ? document.getElementById(target) : target; + this.init(); + } + + RemoteImage.prototype = { + init: function () { + this.initContainer(); + this.initEvents(); + }, + initContainer: function () { + this.dom = { + 'url': $G('url'), + 'width': $G('width'), + 'height': $G('height'), + 'border': $G('border'), + 'vhSpace': $G('vhSpace'), + 'title': $G('title'), + 'align': $G('align') + }; + var img = editor.selection.getRange().getClosedNode(); + if (img) { + this.setImage(img); + } + }, + initEvents: function () { + var _this = this, + locker = $G('lock'); + + /* 改变url */ + domUtils.on($G("url"), 'keyup', updatePreview); + domUtils.on($G("border"), 'keyup', updatePreview); + domUtils.on($G("title"), 'keyup', updatePreview); + + domUtils.on($G("width"), 'keyup', function () { + if (locker.checked) { + var proportion = locker.getAttribute('data-proportion'); + $G('height').value = Math.round(this.value / proportion); + } else { + _this.updateLocker(); + } + updatePreview(); + }); + domUtils.on($G("height"), 'keyup', function () { + if (locker.checked) { + var proportion = locker.getAttribute('data-proportion'); + $G('width').value = Math.round(this.value * proportion); + } else { + _this.updateLocker(); + } + updatePreview(); + }); + domUtils.on($G("lock"), 'change', function () { + var proportion = parseInt($G("width").value) / parseInt($G("height").value); + locker.setAttribute('data-proportion', proportion); + }); + + function updatePreview() { + _this.setPreview(); + } + }, + updateLocker: function () { + var width = $G('width').value, + height = $G('height').value, + locker = $G('lock'); + if (width && height && width == parseInt(width) && height == parseInt(height)) { + locker.disabled = false; + locker.title = ''; + } else { + locker.checked = false; + locker.disabled = 'disabled'; + locker.title = lang.remoteLockError; + } + }, + setImage: function (img) { + /* 不是正常的图片 */ + if (!img.tagName || img.tagName.toLowerCase() != 'img' && !img.getAttribute("src") || !img.src) return; + + var wordImgFlag = img.getAttribute("data-word-image"), + src = wordImgFlag ? wordImgFlag.replace("&", "&") : (img.getAttribute('_src') || img.getAttribute("src", 2).replace("&", "&")), + align = editor.queryCommandValue("imageFloat"); + + /* 防止onchange事件循环调用 */ + if (src !== $G("url").value) $G("url").value = src; + if (src) { + /* 设置表单内容 */ + $G("width").value = img.width || ''; + $G("height").value = img.height || ''; + $G("border").value = img.getAttribute("border") || '0'; + $G("vhSpace").value = img.getAttribute("vspace") || '0'; + $G("title").value = img.title || img.alt || ''; + setAlign(align); + this.setPreview(); + this.updateLocker(); + } + }, + getData: function () { + var data = {}; + for (var k in this.dom) { + data[k] = this.dom[k].value; + } + return data; + }, + setPreview: function () { + var url = $G('url').value, + ow = $G('width').value, + oh = $G('height').value, + border = $G('border').value, + title = $G('title').value, + preview = $G('preview'), + width, + height; + + width = ((!ow || !oh) ? preview.offsetWidth : Math.min(ow, preview.offsetWidth)); + width = width + (border * 2) > preview.offsetWidth ? width : (preview.offsetWidth - (border * 2)); + height = (!ow || !oh) ? '' : width * oh / ow; + + if (url) { + preview.innerHTML = ''; + } + }, + getInsertList: function () { + var data = this.getData(); + if (data['url']) { + var img = { + src: data['url'], + _src: data['url'], + } + img._propertyDelete = [] + img.style = [] + if (data['width']) { + img.width = data['width']; + img.style.push('width:' + data['width'] + 'px'); + } else { + img._propertyDelete.push('width'); + } + if (data['height']) { + img.height = data['height']; + img.style.push('height:' + data['height'] + 'px'); + } else { + img._propertyDelete.push('height'); + } + if (data['border']) { + img.border = data['border']; + } else { + img._propertyDelete.push('border'); + } + if (data['align']) { + img.floatStyle = data['align']; + } else { + img._propertyDelete.push('floatStyle'); + } + if (data['vhSpace']) { + img.vspace = data['vhSpace']; + } else { + img._propertyDelete.push('vspace'); + } + if (data['title']) { + img.alt = data['title']; + } else { + img._propertyDelete.push('alt'); + } + if (img.style.length > 0) { + img.style = img.style.join(';'); + } else { + img._propertyDelete.push('style'); + } + return [img]; + } else { + return []; + } + } + }; + + + /* 上传图片 */ + function UploadImage(target) { + this.$wrap = target.constructor == String ? $('#' + target) : $(target); + this.init(); + } + + UploadImage.prototype = { + init: function () { + this.imageList = []; + this.initContainer(); + this.initUploader(); + }, + initContainer: function () { + this.$queue = this.$wrap.find('.filelist'); + }, + /* 初始化容器 */ + initUploader: function () { + var _this = this, + $ = jQuery, // just in case. Make sure it's not an other libaray. + $wrap = _this.$wrap, + // 图片容器 + $queue = $wrap.find('.filelist'), + // 状态栏,包括进度和控制按钮 + $statusBar = $wrap.find('.statusBar'), + // 文件总体选择信息。 + $info = $statusBar.find('.info'), + // 上传按钮 + $upload = $wrap.find('.uploadBtn'), + // 上传按钮 + $filePickerBtn = $wrap.find('.filePickerBtn'), + // 上传按钮 + $filePickerBlock = $wrap.find('.filePickerBlock'), + // 没选择文件之前的内容。 + $placeHolder = $wrap.find('.placeholder'), + // 总体进度条 + $progress = $statusBar.find('.progress').hide(), + // 添加的文件数量 + fileCount = 0, + // 添加的文件总大小 + fileSize = 0, + // 优化retina, 在retina下这个值是2 + ratio = window.devicePixelRatio || 1, + // 缩略图大小 + thumbnailWidth = 113 * ratio, + thumbnailHeight = 113 * ratio, + // 可能有pedding, ready, uploading, confirm, done. + state = '', + // 所有文件的进度信息,key为file id + percentages = {}, + supportTransition = (function () { + var s = document.createElement('p').style, + r = 'transition' in s || + 'WebkitTransition' in s || + 'MozTransition' in s || + 'msTransition' in s || + 'OTransition' in s; + s = null; + return r; + })(), + // WebUploader实例 + uploader, + actionUrl = editor.getActionUrl(editor.getOpt('imageActionName')), + acceptExtensions = (editor.getOpt('imageAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, ''), + imageMaxSize = editor.getOpt('imageMaxSize'), + imageCompressBorder = editor.getOpt('imageCompressBorder'); + + if (!WebUploader.Uploader.support()) { + $('#filePickerReady').after($('
    ').html(lang.errorNotSupport)).hide(); + return; + } else if (!editor.getOpt('imageActionName')) { + $('#filePickerReady').after($('
    ').html(lang.errorLoadConfig)).hide(); + return; + } + + var uploaderOption = { + pick: { + id: '#filePickerReady', + label: lang.uploadSelectFile + }, + accept: { + title: 'Images', + extensions: acceptExtensions, + mimeTypes: 'image/*' + }, + swf: '../../third-party/webuploader/Uploader.swf', + server: actionUrl, + fileVal: editor.getOpt('imageFieldName'), + duplicate: true, + fileSingleSizeLimit: imageMaxSize, // 默认 2 M + threads: 1, + headers: editor.getOpt('serverHeaders') || {}, + compress: editor.getOpt('imageCompressEnable') ? { + enable: editor.getOpt('imageCompressEnable'), + maxWidthOrHeight: imageCompressBorder, + maxSize: imageMaxSize, + } : false + }; + if(editor.getOpt('uploadServiceEnable')) { + uploaderOption.customUpload = function (file, callback) { + editor.getOpt('uploadServiceUpload')('image', file, { + success: function( res ) { + callback.onSuccess(file, {_raw:JSON.stringify(res)}); + }, + error: function( err ) { + callback.onError(file, err); + }, + progress: function( percent ) { + callback.onProgress(file, percent); + } + }, { + from: 'image' + }); + }; + } + + uploader = _this.uploader = WebUploader.create(uploaderOption); + uploader.addButton({ + id: '#filePickerBlock' + }); + uploader.addButton({ + id: '#filePickerBtn', + label: lang.uploadAddFile + }); + + setState('pedding'); + + // 当有文件添加进来时执行,负责view的创建 + function addFile(file) { + var $li = $('
  • ' + + '

    ' + file.name + '

    ' + + '

    ' + + '

    ' + + '
  • '), + + $btns = $('
    ' + + '' + lang.uploadDelete + '' + + '' + lang.uploadTurnRight + '' + + '' + lang.uploadTurnLeft + '
    ').appendTo($li), + $prgress = $li.find('p.progress span'), + $wrap = $li.find('p.imgWrap'), + $info = $('

    ').hide().appendTo($li), + + showError = function (code) { + switch (code) { + case 'exceed_size': + text = lang.errorExceedSize; + break; + case 'interrupt': + text = lang.errorInterrupt; + break; + case 'http': + text = lang.errorHttp; + break; + case 'not_allow_type': + text = lang.errorFileType; + break; + default: + text = lang.errorUploadRetry; + break; + } + $info.text(text).show(); + }; + + if (file.getStatus() === 'invalid') { + showError(file.statusText); + } else { + $wrap.text(lang.uploadPreview); + if (browser.ie && browser.version <= 7) { + $wrap.text(lang.uploadNoPreview); + } else { + uploader.makeThumb(file, function (error, src) { + if (error || !src) { + $wrap.text(lang.uploadNoPreview); + } else { + var $img = $(''); + $wrap.empty().append($img); + $img.on('error', function () { + $wrap.text(lang.uploadNoPreview); + }); + } + }, thumbnailWidth, thumbnailHeight); + } + percentages[file.id] = [file.size, 0]; + file.rotation = 0; + + /* 检查文件格式 */ + if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) { + showError('not_allow_type'); + uploader.removeFile(file); + } + } + + file.on('statuschange', function (cur, prev) { + if (prev === 'progress') { + $prgress.hide().width(0); + } else if (prev === 'queued') { + $li.off('mouseenter mouseleave'); + $btns.remove(); + } + // 成功 + if (cur === 'error' || cur === 'invalid') { + showError(file.statusText); + percentages[file.id][1] = 1; + } else if (cur === 'interrupt') { + showError('interrupt'); + } else if (cur === 'queued') { + percentages[file.id][1] = 0; + } else if (cur === 'progress') { + $info.hide(); + $prgress.css('display', 'block'); + } else if (cur === 'complete') { + } + + $li.removeClass('state-' + prev).addClass('state-' + cur); + }); + + $li.on('mouseenter', function () { + $btns.stop().animate({height: 30}); + }); + $li.on('mouseleave', function () { + $btns.stop().animate({height: 0}); + }); + + $btns.on('click', 'span', function () { + var index = $(this).index(), + deg; + + switch (index) { + case 0: + uploader.removeFile(file); + return; + case 1: + file.rotation += 90; + break; + case 2: + file.rotation -= 90; + break; + } + + if (supportTransition) { + deg = 'rotate(' + file.rotation + 'deg)'; + $wrap.css({ + '-webkit-transform': deg, + '-mos-transform': deg, + '-o-transform': deg, + 'transform': deg + }); + } else { + $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')'); + } + + }); + + $li.insertBefore($filePickerBlock); + } + + // 负责view的销毁 + function removeFile(file) { + var $li = $('#' + file.id); + delete percentages[file.id]; + updateTotalProgress(); + $li.off().find('.file-panel').off().end().remove(); + } + + function updateTotalProgress() { + var loaded = 0, + total = 0, + spans = $progress.children(), + percent; + + $.each(percentages, function (k, v) { + total += v[0]; + loaded += v[0] * v[1]; + }); + + percent = total ? loaded / total : 0; + + spans.eq(0).text(Math.round(percent * 100) + '%'); + spans.eq(1).css('width', Math.round(percent * 100) + '%'); + updateStatus(); + } + + function setState(val, files) { + + if (val !== state) { + + var stats = uploader.getStats(); + + $upload.removeClass('state-' + state); + $upload.addClass('state-' + val); + + switch (val) { + + /* 未选择文件 */ + case 'pedding': + $queue.addClass('element-invisible'); + $statusBar.addClass('element-invisible'); + $placeHolder.removeClass('element-invisible'); + $progress.hide(); + $info.hide(); + uploader.refresh(); + break; + + /* 可以开始上传 */ + case 'ready': + $placeHolder.addClass('element-invisible'); + $queue.removeClass('element-invisible'); + $statusBar.removeClass('element-invisible'); + $progress.hide(); + $info.show(); + $upload.text(lang.uploadStart); + uploader.refresh(); + break; + + /* 上传中 */ + case 'uploading': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadPause); + break; + + /* 暂停上传 */ + case 'paused': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadContinue); + break; + + case 'confirm': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadStart); + + stats = uploader.getStats(); + if (stats.successNum && !stats.uploadFailNum) { + setState('finish'); + return; + } + break; + + case 'finish': + $progress.hide(); + $info.show(); + if (stats.uploadFailNum) { + $upload.text(lang.uploadRetry); + } else { + $upload.text(lang.uploadStart); + } + break; + } + + state = val; + updateStatus(); + + } + + if (!_this.getQueueCount()) { + $upload.addClass('disabled') + } else { + $upload.removeClass('disabled') + } + + } + + function updateStatus() { + var text = '', stats; + + if (state === 'ready') { + text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)); + } else if (state === 'confirm') { + stats = uploader.getStats(); + if (stats.uploadFailNum) { + text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum); + } + } else { + stats = uploader.getStats(); + text = lang.updateStatusFinish.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)).replace('_', stats.successNum); + + if (stats.uploadFailNum) { + text += lang.updateStatusError.replace('_', stats.uploadFailNum); + } + } + + $info.html(text); + } + + uploader.on('fileQueued', function (file) { + fileCount++; + fileSize += file.size; + + if (fileCount === 1) { + $placeHolder.addClass('element-invisible'); + $statusBar.show(); + } + + addFile(file); + }); + + uploader.on('fileDequeued', function (file) { + if (file.ext && acceptExtensions.indexOf(file.ext.toLowerCase()) != -1 && file.size <= imageMaxSize) { + fileCount--; + fileSize -= file.size; + } + + removeFile(file); + updateTotalProgress(); + }); + + uploader.on('filesQueued', function (file) { + if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) { + setState('ready'); + } + updateTotalProgress(); + }); + + uploader.on('all', function (type, files) { + switch (type) { + case 'uploadFinished': + setState('confirm', files); + break; + case 'startUpload': + /* 添加额外的GET参数 */ + var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', + url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?' : '&') + 'encode=utf-8&' + params); + uploader.option('server', url); + setState('uploading', files); + break; + case 'stopUpload': + setState('paused', files); + break; + } + }); + + uploader.on('uploadBeforeSend', function (file, data, header) { + //这里可以通过data对象添加POST参数 + if (actionUrl.toLowerCase().indexOf('jsp') != -1) { + header['X-Requested-With'] = 'XMLHttpRequest'; + } + }); + + uploader.on('uploadProgress', function (file, percentage) { + var $li = $('#' + file.id), + $percent = $li.find('.progress span'); + + $percent.css('width', percentage * 100 + '%'); + percentages[file.id][1] = percentage; + updateTotalProgress(); + }); + + uploader.on('uploadSuccess', function (file, ret) { + var $file = $('#' + file.id); + try { + var responseText = (ret._raw || ret), + json = utils.str2json(responseText); + json = editor.options.serverResponsePrepare(json); + if (json.state == 'SUCCESS') { + _this.imageList.push(json); + $file.append(''); + // 触发上传图片事件 + editor.fireEvent("uploadsuccess", { + res: json, + type: 'image' + }); + } else { + $file.find('.error').text(json.state).show(); + } + } catch (e) { + $file.find('.error').text(lang.errorServerUpload).show(); + } + }); + + uploader.on('uploadError', function (file, code) { + }); + uploader.on('error', function (code, param1, param2) { + if (code === 'F_EXCEED_SIZE') { + editor.getOpt('tipError')(lang.errorExceedSize + ' ' + (param1 / 1024 / 1024).toFixed(1) + 'MB'); + } else { + console.log('error', code, param1, param2); + } + }); + uploader.on('uploadComplete', function (file, ret) { + }); + + $upload.on('click', function () { + if ($(this).hasClass('disabled')) { + return false; + } + + if (state === 'ready') { + uploader.upload(); + } else if (state === 'paused') { + uploader.upload(); + } else if (state === 'uploading') { + uploader.stop(); + } + }); + + $upload.addClass('state-' + state); + updateTotalProgress(); + }, + getQueueCount: function () { + var file, i, status, readyFile = 0, files = this.uploader.getFiles(); + for (i = 0; file = files[i++];) { + status = file.getStatus(); + if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++; + } + return readyFile; + }, + destroy: function () { + this.$wrap.remove(); + }, + getInsertList: function () { + var i, data, list = [], + align = getAlign(), + prefix = editor.getOpt('imageUrlPrefix'); + for (i = 0; i < this.imageList.length; i++) { + data = this.imageList[i]; + list.push({ + src: prefix + data.url, + _src: prefix + data.url, + alt: data.original, + floatStyle: align + }); + } + return list; + } + }; + + + /* 在线图片 */ + function OnlineImage(target) { + this.container = utils.isString(target) ? document.getElementById(target) : target; + this.init(); + } + + OnlineImage.prototype = { + init: function () { + this.reset(); + this.initEvents(); + }, + /* 初始化容器 */ + initContainer: function () { + this.container.innerHTML = ''; + this.list = document.createElement('ul'); + this.clearFloat = document.createElement('li'); + + domUtils.addClass(this.list, 'list'); + domUtils.addClass(this.clearFloat, 'clearFloat'); + + this.list.appendChild(this.clearFloat); + this.container.appendChild(this.list); + }, + /* 初始化滚动事件,滚动到地步自动拉取数据 */ + initEvents: function () { + var _this = this; + + /* 滚动拉取图片 */ + domUtils.on($G('imageList'), 'scroll', function (e) { + var panel = this; + if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) { + _this.getImageData(); + } + }); + /* 选中图片 */ + domUtils.on(this.container, 'click', function (e) { + var target = e.target || e.srcElement, + li = target.parentNode; + + if (li.tagName.toLowerCase() == 'li') { + if (domUtils.hasClass(li, 'selected')) { + domUtils.removeClasses(li, 'selected'); + } else { + domUtils.addClass(li, 'selected'); + } + } + }); + }, + /* 初始化第一次的数据 */ + initData: function () { + + /* 拉取数据需要使用的值 */ + this.state = 0; + this.listSize = editor.getOpt('imageManagerListSize'); + this.listIndex = 0; + this.listEnd = false; + + /* 第一次拉取数据 */ + this.getImageData(); + }, + /* 重置界面 */ + reset: function () { + this.initContainer(); + this.initData(); + }, + /* 向后台拉取图片列表数据 */ + getImageData: function () { + var _this = this; + + if (!_this.listEnd && !this.isLoadingData) { + this.isLoadingData = true; + var url = editor.getActionUrl(editor.getOpt('imageManagerActionName')), + isJsonp = utils.isCrossDomainUrl(url); + ajax.request(url, { + 'timeout': 100000, + 'dataType': isJsonp ? 'jsonp' : '', + 'headers': editor.options.serverHeaders || {}, + 'data': utils.extend({ + start: this.listIndex, + size: this.listSize + }, editor.queryCommandValue('serverparam')), + 'method': 'get', + 'onsuccess': function (r) { + try { + var json = isJsonp ? r : eval('(' + r.responseText + ')'); + json = editor.options.serverResponsePrepare(json); + if (json.state === 'SUCCESS') { + _this.pushData(json.list); + _this.listIndex = parseInt(json.start) + parseInt(json.list.length); + if (_this.listIndex >= json.total) { + _this.listEnd = true; + } + _this.isLoadingData = false; + } + } catch (e) { + if (r.responseText.indexOf('ue_separate_ue') != -1) { + var list = r.responseText.split(r.responseText); + _this.pushData(list); + _this.listIndex = parseInt(list.length); + _this.listEnd = true; + _this.isLoadingData = false; + } + } + }, + 'onerror': function () { + _this.isLoadingData = false; + } + }); + } + }, + /* 添加图片到列表界面上 */ + pushData: function (list) { + var i, item, img, icon, _this = this, + urlPrefix = editor.getOpt('imageManagerUrlPrefix'); + for (i = 0; i < list.length; i++) { + if (list[i] && list[i].url) { + item = document.createElement('li'); + img = document.createElement('img'); + icon = document.createElement('span'); + + domUtils.on(img, 'load', (function (image) { + return function () { + _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight); + } + })(img)); + img.width = 113; + img.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=' : '&noCache=') + (+new Date()).toString(36)); + img.setAttribute('_src', urlPrefix + list[i].url); + domUtils.addClass(icon, 'icon'); + + item.appendChild(img); + item.appendChild(icon); + this.list.insertBefore(item, this.clearFloat); + } + } + }, + /* 改变图片大小 */ + scale: function (img, w, h, type) { + var ow = img.width, + oh = img.height; + + if (type == 'justify') { + if (ow >= oh) { + img.width = w; + img.height = h * oh / ow; + img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; + } else { + img.width = w * ow / oh; + img.height = h; + img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; + } + } else { + if (ow >= oh) { + img.width = w * ow / oh; + img.height = h; + img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; + } else { + img.width = w; + img.height = h * oh / ow; + img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; + } + } + }, + getInsertList: function () { + var i, lis = this.list.children, list = [], align = getAlign(); + for (i = 0; i < lis.length; i++) { + if (domUtils.hasClass(lis[i], 'selected')) { + var img = lis[i].firstChild, + src = img.getAttribute('_src'); + list.push({ + src: src, + _src: src, + alt: src.substr(src.lastIndexOf('/') + 1), + floatStyle: align + }); + } + + } + return list; + } + }; + +})(); diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/alignicon.jpg b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/alignicon.jpg new file mode 100644 index 0000000..754755b Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/alignicon.jpg differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/bg.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/bg.png new file mode 100644 index 0000000..580be0a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/bg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/icons.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/icons.gif new file mode 100644 index 0000000..78459de Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/icons.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/icons.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/icons.png new file mode 100644 index 0000000..12e4700 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/icons.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/image.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/image.png new file mode 100644 index 0000000..19699f6 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/image.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/progress.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/progress.png new file mode 100644 index 0000000..717c486 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/progress.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/success.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/success.gif new file mode 100644 index 0000000..8d4f311 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/success.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/success.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/success.png new file mode 100644 index 0000000..94f968d Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/image/images/success.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/insertframe/insertframe.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/insertframe/insertframe.html new file mode 100644 index 0000000..a2a34ef --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/insertframe/insertframe.html @@ -0,0 +1,135 @@ + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + +
    + + +
    + px +
    px +
    + +
    +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/internal.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/internal.js new file mode 100644 index 0000000..2b45bec --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/internal.js @@ -0,0 +1,81 @@ +(function () { + var parent = window.parent; + //dialog对象 + dialog = parent.$EDITORUI[window.frameElement.id.replace(/_iframe$/, '')]; + //当前打开dialog的编辑器实例 + editor = dialog.editor; + + UE = parent.UE; + + domUtils = UE.dom.domUtils; + + utils = UE.utils; + + browser = UE.browser; + + ajax = UE.ajax; + + $G = function (id) { + return document.getElementById(id) + }; + //focus元素 + $focus = function (node) { + setTimeout(function () { + if (browser.ie) { + var r = node.createTextRange(); + r.collapse(false); + r.select(); + } else { + node.focus() + } + }, 0) + }; + utils.loadFile(document, { + href: editor.options.themePath + editor.options.theme + "/dialogbase.css?cache=v20250415", + tag: "link", + type: "text/css", + rel: "stylesheet" + }); + lang = editor.getLang(dialog.className.split("-")[2]); + if (lang) { + domUtils.on(window, 'load', function () { + + var langImgPath = editor.options.langPath + editor.options.lang + "/images/"; + //针对静态资源 + for (var i in lang["static"]) { + var dom = $G(i); + if (!dom) continue; + var tagName = dom.tagName, + content = lang["static"][i]; + if (content.src) { + //clone + content = utils.extend({}, content, false); + content.src = langImgPath + content.src; + } + if (content.style) { + content = utils.extend({}, content, false); + content.style = content.style.replace(/url\s*\(/g, "url(" + langImgPath) + } + switch (tagName.toLowerCase()) { + case "var": + dom.parentNode.replaceChild(document.createTextNode(content), dom); + break; + case "select": + var ops = dom.options; + for (var j = 0, oj; oj = ops[j];) { + oj.innerHTML = content.options[j++]; + } + for (var p in content) { + p != "options" && dom.setAttribute(p, content[p]); + } + break; + default : + domUtils.setAttributes(dom, content); + } + } + }); + } + + +})(); + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/link/link.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/link/link.html new file mode 100644 index 0000000..8e37dd4 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/link/link.html @@ -0,0 +1,155 @@ + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/preview/preview.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/preview/preview.html new file mode 100644 index 0000000..c49ec25 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/preview/preview.html @@ -0,0 +1,45 @@ + + + + + + + + + + +
    + +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/addimg.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/addimg.png new file mode 100644 index 0000000..03a8713 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/addimg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/brush.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/brush.png new file mode 100644 index 0000000..efa6fdb Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/brush.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/delimg.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/delimg.png new file mode 100644 index 0000000..5a892e4 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/delimg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/delimgH.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/delimgH.png new file mode 100644 index 0000000..2f0c5c9 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/delimgH.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/empty.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/empty.png new file mode 100644 index 0000000..0375196 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/empty.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/emptyH.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/emptyH.png new file mode 100644 index 0000000..838ca72 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/emptyH.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/eraser.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/eraser.png new file mode 100644 index 0000000..63e87ce Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/eraser.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/redo.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/redo.png new file mode 100644 index 0000000..12cd9bb Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/redo.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/redoH.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/redoH.png new file mode 100644 index 0000000..d9f33d3 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/redoH.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/scale.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/scale.png new file mode 100644 index 0000000..935a3f3 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/scale.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/scaleH.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/scaleH.png new file mode 100644 index 0000000..72e64a9 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/scaleH.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/size.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/size.png new file mode 100644 index 0000000..8366845 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/size.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/undo.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/undo.png new file mode 100644 index 0000000..084c7cc Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/undo.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/undoH.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/undoH.png new file mode 100644 index 0000000..fde7eb3 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/images/undoH.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/scrawl.css b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/scrawl.css new file mode 100644 index 0000000..7b3ea66 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/scrawl.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +body{margin:0}table{width:100%}table td{padding:2px 4px;vertical-align:middle}a{text-decoration:none}em{font-style:normal}.border_style1{border:1px solid #ccc;border-radius:5px;box-shadow:2px 2px 5px #d3d6da}.main{margin:8px;overflow:hidden}.hot{float:left;height:335px}.drawBoard{position:relative;cursor:crosshair}.brushBorad{position:absolute;left:0;top:0;z-index:998}.picBoard{border:0;text-align:center;line-height:300px;cursor:default}.operateBar{margin-top:10px;font-size:12px;text-align:center}.operateBar span{margin-left:10px}.drawToolbar{float:right;width:110px;height:300px;overflow:hidden}.colorBar{margin-top:10px;font-size:12px;text-align:center}.colorBar a{display:block;width:10px;height:10px;border:1px solid #1006F1;border-radius:3px;box-shadow:2px 2px 5px #d3d6da;opacity:.3}.sectionBar{margin-top:15px;font-size:12px;text-align:center}.sectionBar a{display:inline-block;width:10px;height:12px;color:#888;text-indent:-999px;opacity:.3}.size1{background:url(images/size.png) 1px center no-repeat}.size2{background:url(images/size.png) -10px center no-repeat}.size3{background:url(images/size.png) -22px center no-repeat}.size4{background:url(images/size.png) -35px center no-repeat}.addImgH{position:relative}.addImgH_form{position:absolute;left:18px;top:-1px;width:75px;height:21px;opacity:0;cursor:pointer}.addImgH_form input{width:100%}.maskLayerNull{display:none}.maskLayer{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.7;background-color:#fff;text-align:center;font-weight:700;line-height:300px;z-index:1000}.previousStepH .icon{display:inline-block;width:16px;height:16px;background-image:url(images/undoH.png);cursor:pointer}.previousStepH .text{color:#888;cursor:pointer}.previousStep .icon{display:inline-block;width:16px;height:16px;background-image:url(images/undo.png);cursor:default}.previousStep .text{color:#ccc;cursor:default}.nextStepH .icon{display:inline-block;width:16px;height:16px;background-image:url(images/redoH.png);cursor:pointer}.nextStepH .text{color:#888;cursor:pointer}.nextStep .icon{display:inline-block;width:16px;height:16px;background-image:url(images/redo.png);cursor:default}.nextStep .text{color:#ccc;cursor:default}.clearBoardH .icon{display:inline-block;width:16px;height:16px;background-image:url(images/emptyH.png);cursor:pointer}.clearBoardH .text{color:#888;cursor:pointer}.clearBoard .icon{display:inline-block;width:16px;height:16px;background-image:url(images/empty.png);cursor:default}.clearBoard .text{color:#ccc;cursor:default}.scaleBoardH .icon{display:inline-block;width:16px;height:16px;background-image:url(images/scaleH.png);cursor:pointer}.scaleBoardH .text{color:#888;cursor:pointer}.scaleBoard .icon{display:inline-block;width:16px;height:16px;background-image:url(images/scale.png);cursor:default}.scaleBoard .text{color:#ccc;cursor:default}.removeImgH .icon{display:inline-block;width:16px;height:16px;background-image:url(images/delimgH.png);cursor:pointer}.removeImgH .text{color:#888;cursor:pointer}.removeImg .icon{display:inline-block;width:16px;height:16px;background-image:url(images/delimg.png);cursor:default}.removeImg .text{color:#ccc;cursor:default}.addImgH .icon{vertical-align:top;display:inline-block;width:16px;height:16px;background-image:url(images/addimg.png)}.addImgH .text{color:#888;cursor:pointer}.brushIcon{display:inline-block;width:16px;height:16px;background-image:url(images/brush.png)}.eraserIcon{display:inline-block;width:16px;height:16px;background-image:url(images/eraser.png)} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/scrawl.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/scrawl.html new file mode 100644 index 0000000..8e62cdf --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/scrawl.html @@ -0,0 +1,95 @@ + + + + + + + + + + +
    +
    +
    + +
    +
    +
    + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    + + 1 + 3 + 5 + 7 +
    +
    + + 1 + 3 + 5 + 7 +
    +
    +
    + + +
    + +
    + +
    +
    +
    + + + + +
    +
    +
    +
    + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/scrawl.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/scrawl.js new file mode 100644 index 0000000..e8bd7cb --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/scrawl/scrawl.js @@ -0,0 +1,707 @@ +/** + * Created with JetBrains PhpStorm. + * User: xuheng + * Date: 12-5-22 + * Time: 上午11:38 + * To change this template use File | Settings | File Templates. + */ +var scrawl = function (options) { + options && this.initOptions(options); +}; +(function () { + var canvas = $G("J_brushBoard"), + context = canvas.getContext('2d'), + drawStep = [], //undo redo存储 + drawStepIndex = 0; //undo redo指针 + + scrawl.prototype = { + isScrawl: false, //是否涂鸦 + brushWidth: -1, //画笔粗细 + brushColor: "", //画笔颜色 + + initOptions: function (options) { + var me = this; + me.originalState(options);//初始页面状态 + me._buildToolbarColor(options.colorList);//动态生成颜色选择集合 + + me._addBoardListener(options.saveNum);//添加画板处理 + me._addOPerateListener(options.saveNum);//添加undo redo clearBoard处理 + me._addColorBarListener();//添加颜色选择处理 + me._addBrushBarListener();//添加画笔大小处理 + me._addEraserBarListener();//添加橡皮大小处理 + me._addAddImgListener();//添加增添背景图片处理 + me._addRemoveImgListenter();//删除背景图片处理 + me._addScalePicListenter();//添加缩放处理 + me._addClearSelectionListenter();//添加清楚选中状态处理 + + me._originalColorSelect(options.drawBrushColor);//初始化颜色选中 + me._originalBrushSelect(options.drawBrushSize);//初始化画笔选中 + me._clearSelection();//清楚选中状态 + }, + + originalState: function (options) { + var me = this; + + me.brushWidth = options.drawBrushSize;//同步画笔粗细 + me.brushColor = options.drawBrushColor;//同步画笔颜色 + + context.lineWidth = me.brushWidth;//初始画笔大小 + context.strokeStyle = me.brushColor;//初始画笔颜色 + context.fillStyle = "transparent";//初始画布背景颜色 + context.lineCap = "round";//去除锯齿 + context.fill(); + }, + _buildToolbarColor: function (colorList) { + var tmp = null, arr = []; + arr.push(""); + for (var i = 0, color; color = colorList[i++];) { + if ((i - 1) % 5 == 0) { + if (i != 1) { + arr.push(""); + } + arr.push(""); + } + tmp = '#' + color; + arr.push(""); + } + arr.push("
    "); + $G("J_colorBar").innerHTML = arr.join(""); + }, + + _addBoardListener: function (saveNum) { + var me = this, + margin = 0, + startX = -1, + startY = -1, + isMouseDown = false, + isMouseMove = false, + isMouseUp = false, + buttonPress = 0, button, flag = ''; + + margin = parseInt(domUtils.getComputedStyle($G("J_wrap"), "margin-left")); + drawStep.push(context.getImageData(0, 0, context.canvas.width, context.canvas.height)); + drawStepIndex += 1; + + domUtils.on(canvas, ["mousedown", "mousemove", "mouseup", "mouseout"], function (e) { + button = browser.webkit ? e.which : buttonPress; + switch (e.type) { + case 'mousedown': + buttonPress = 1; + flag = 1; + isMouseDown = true; + isMouseUp = false; + isMouseMove = false; + me.isScrawl = true; + startX = e.clientX - margin;//10为外边距总和 + startY = e.clientY - margin; + context.beginPath(); + break; + case 'mousemove' : + if (!flag && button == 0) { + return; + } + if (!flag && button) { + startX = e.clientX - margin;//10为外边距总和 + startY = e.clientY - margin; + context.beginPath(); + flag = 1; + } + if (isMouseUp || !isMouseDown) { + return; + } + var endX = e.clientX - margin, + endY = e.clientY - margin; + + context.moveTo(startX, startY); + context.lineTo(endX, endY); + context.stroke(); + startX = endX; + startY = endY; + isMouseMove = true; + break; + case 'mouseup': + buttonPress = 0; + if (!isMouseDown) return; + if (!isMouseMove) { + context.arc(startX, startY, context.lineWidth, 0, Math.PI * 2, false); + context.fillStyle = context.strokeStyle; + context.fill(); + } + context.closePath(); + me._saveOPerate(saveNum); + isMouseDown = false; + isMouseMove = false; + isMouseUp = true; + startX = -1; + startY = -1; + break; + case 'mouseout': + flag = ''; + buttonPress = 0; + if (button == 1) return; + context.closePath(); + break; + } + }); + }, + _addOPerateListener: function (saveNum) { + var me = this; + domUtils.on($G("J_previousStep"), "click", function () { + if (drawStepIndex > 1) { + drawStepIndex -= 1; + context.clearRect(0, 0, context.canvas.width, context.canvas.height); + context.putImageData(drawStep[drawStepIndex - 1], 0, 0); + me.btn2Highlight("J_nextStep"); + drawStepIndex == 1 && me.btn2disable("J_previousStep"); + } + }); + domUtils.on($G("J_nextStep"), "click", function () { + if (drawStepIndex > 0 && drawStepIndex < drawStep.length) { + context.clearRect(0, 0, context.canvas.width, context.canvas.height); + context.putImageData(drawStep[drawStepIndex], 0, 0); + drawStepIndex += 1; + me.btn2Highlight("J_previousStep"); + drawStepIndex == drawStep.length && me.btn2disable("J_nextStep"); + } + }); + domUtils.on($G("J_clearBoard"), "click", function () { + context.clearRect(0, 0, context.canvas.width, context.canvas.height); + drawStep = []; + me._saveOPerate(saveNum); + drawStepIndex = 1; + me.isScrawl = false; + me.btn2disable("J_previousStep"); + me.btn2disable("J_nextStep"); + me.btn2disable("J_clearBoard"); + }); + }, + _addColorBarListener: function () { + var me = this; + domUtils.on($G("J_colorBar"), "click", function (e) { + var target = me.getTarget(e), + color = target.title; + if (!!color) { + me._addColorSelect(target); + + me.brushColor = color; + context.globalCompositeOperation = "source-over"; + context.lineWidth = me.brushWidth; + context.strokeStyle = color; + } + }); + }, + _addBrushBarListener: function () { + var me = this; + domUtils.on($G("J_brushBar"), "click", function (e) { + var target = me.getTarget(e), + size = browser.ie ? target.innerText : target.text; + if (!!size) { + me._addBESelect(target); + + context.globalCompositeOperation = "source-over"; + context.lineWidth = parseInt(size); + context.strokeStyle = me.brushColor; + me.brushWidth = context.lineWidth; + } + }); + }, + _addEraserBarListener: function () { + var me = this; + domUtils.on($G("J_eraserBar"), "click", function (e) { + var target = me.getTarget(e), + size = browser.ie ? target.innerText : target.text; + if (!!size) { + me._addBESelect(target); + + context.lineWidth = parseInt(size); + context.globalCompositeOperation = "destination-out"; + context.strokeStyle = "#FFF"; + } + }); + }, + _addAddImgListener: function () { + var file = $G("J_imgTxt"); + if (!window.FileReader) { + $G("J_addImg").style.display = 'none'; + $G("J_removeImg").style.display = 'none'; + $G("J_sacleBoard").style.display = 'none'; + } + domUtils.on(file, "change", function (e) { + var frm = file.parentNode; + addMaskLayer(lang.backgroundUploading); + + var target = e.target || e.srcElement, + reader = new FileReader(); + reader.onload = function (evt) { + var target = evt.target || evt.srcElement; + ue_callback(target.result, 'SUCCESS'); + }; + reader.readAsDataURL(target.files[0]); + frm.reset(); + }); + }, + _addRemoveImgListenter: function () { + var me = this; + domUtils.on($G("J_removeImg"), "click", function () { + $G("J_picBoard").innerHTML = ""; + me.btn2disable("J_removeImg"); + me.btn2disable("J_sacleBoard"); + }); + }, + _addScalePicListenter: function () { + domUtils.on($G("J_sacleBoard"), "click", function () { + var picBoard = $G("J_picBoard"), + scaleCon = $G("J_scaleCon"), + img = picBoard.children[0]; + + if (img) { + if (!scaleCon) { + picBoard.style.cssText = "position:relative;z-index:999;" + picBoard.style.cssText; + img.style.cssText = "position: absolute;top:" + (canvas.height - img.height) / 2 + "px;left:" + (canvas.width - img.width) / 2 + "px;"; + var scale = new ScaleBoy(); + picBoard.appendChild(scale.init()); + scale.startScale(img); + } else { + if (scaleCon.style.visibility == "visible") { + scaleCon.style.visibility = "hidden"; + picBoard.style.position = ""; + picBoard.style.zIndex = ""; + } else { + scaleCon.style.visibility = "visible"; + picBoard.style.cssText += "position:relative;z-index:999"; + } + } + } + }); + }, + _addClearSelectionListenter: function () { + var doc = document; + domUtils.on(doc, 'mousemove', function (e) { + if (browser.ie && browser.version < 11) + doc.selection.clear(); + else + window.getSelection().removeAllRanges(); + }); + }, + _clearSelection: function () { + var list = ["J_operateBar", "J_colorBar", "J_brushBar", "J_eraserBar", "J_picBoard"]; + for (var i = 0, group; group = list[i++];) { + domUtils.unSelectable($G(group)); + } + }, + + _saveOPerate: function (saveNum) { + var me = this; + if (drawStep.length <= saveNum) { + if (drawStepIndex < drawStep.length) { + me.btn2disable("J_nextStep"); + drawStep.splice(drawStepIndex); + } + drawStep.push(context.getImageData(0, 0, context.canvas.width, context.canvas.height)); + drawStepIndex = drawStep.length; + } else { + drawStep.shift(); + drawStep.push(context.getImageData(0, 0, context.canvas.width, context.canvas.height)); + drawStepIndex = drawStep.length; + } + me.btn2Highlight("J_previousStep"); + me.btn2Highlight("J_clearBoard"); + }, + + _originalColorSelect: function (title) { + var colorList = $G("J_colorList").getElementsByTagName("td"); + for (var j = 0, cell; cell = colorList[j++];) { + if (cell.children[0].title.toLowerCase() == title) { + cell.children[0].style.opacity = 1; + } + } + }, + _originalBrushSelect: function (text) { + var brushList = $G("J_brushBar").children; + for (var i = 0, ele; ele = brushList[i++];) { + if (ele.tagName.toLowerCase() == "a") { + var size = browser.ie ? ele.innerText : ele.text; + if (size.toLowerCase() == text) { + ele.style.opacity = 1; + } + } + } + }, + _addColorSelect: function (target) { + var me = this, + colorList = $G("J_colorList").getElementsByTagName("td"), + eraserList = $G("J_eraserBar").children, + brushList = $G("J_brushBar").children; + + for (var i = 0, cell; cell = colorList[i++];) { + cell.children[0].style.opacity = 0.3; + } + for (var k = 0, ele; ele = brushList[k++];) { + if (ele.tagName.toLowerCase() == "a") { + ele.style.opacity = 0.3; + var size = browser.ie ? ele.innerText : ele.text; + if (size.toLowerCase() == this.brushWidth) { + ele.style.opacity = 1; + } + } + } + for (var j = 0, node; node = eraserList[j++];) { + if (node.tagName.toLowerCase() == "a") { + node.style.opacity = 0.3; + } + } + + target.style.opacity = 1; + target.blur(); + }, + _addBESelect: function (target) { + var brushList = $G("J_brushBar").children; + var eraserList = $G("J_eraserBar").children; + + for (var i = 0, ele; ele = brushList[i++];) { + if (ele.tagName.toLowerCase() == "a") { + ele.style.opacity = 0.3; + } + } + for (var j = 0, node; node = eraserList[j++];) { + if (node.tagName.toLowerCase() == "a") { + node.style.opacity = 0.3; + } + } + + target.style.opacity = 1; + target.blur(); + }, + getCanvasData: function () { + var picContainer = $G("J_picBoard"), + img = picContainer.children[0]; + if (img) { + var x, y; + if (img.style.position == "absolute") { + x = parseInt(img.style.left); + y = parseInt(img.style.top); + } else { + x = (picContainer.offsetWidth - img.width) / 2; + y = (picContainer.offsetHeight - img.height) / 2; + } + context.globalCompositeOperation = "destination-over"; + context.drawImage(img, x, y, img.width, img.height); + } else { + context.globalCompositeOperation = "destination-atop"; + context.fillStyle = "#fff";//重置画布背景白色 + context.fillRect(0, 0, canvas.width, canvas.height); + } + try { + return canvas.toDataURL("image/png").substring(22); + } catch (e) { + return ""; + } + }, + btn2Highlight: function (id) { + var cur = $G(id); + cur.className.indexOf("H") == -1 && (cur.className += "H"); + }, + btn2disable: function (id) { + var cur = $G(id); + cur.className.indexOf("H") != -1 && (cur.className = cur.className.replace("H", "")); + }, + getTarget: function (evt) { + return evt.target || evt.srcElement; + } + }; +})(); + +var ScaleBoy = function () { + this.dom = null; + this.scalingElement = null; +}; +(function () { + function _appendStyle() { + var doc = document, + head = doc.getElementsByTagName('head')[0], + style = doc.createElement('style'), + cssText = '.scale{visibility:hidden;cursor:move;position:absolute;left:0;top:0;width:100px;height:50px;background-color:#fff;font-size:0;line-height:0;opacity:.4;filter:Alpha(opacity=40);}' + + '.scale span{position:absolute;left:0;top:0;width:6px;height:6px;background-color:#006DAE;}' + + '.scale .hand0, .scale .hand7{cursor:nw-resize;}' + + '.scale .hand1, .scale .hand6{left:50%;margin-left:-3px;cursor:n-resize;}' + + '.scale .hand2, .scale .hand4, .scale .hand7{left:100%;margin-left:-6px;}' + + '.scale .hand3, .scale .hand4{top:50%;margin-top:-3px;cursor:w-resize;}' + + '.scale .hand5, .scale .hand6, .scale .hand7{margin-top:-6px;top:100%;}' + + '.scale .hand2, .scale .hand5{cursor:ne-resize;}'; + style.type = 'text/css'; + + try { + style.appendChild(doc.createTextNode(cssText)); + } catch (e) { + style.styleSheet.cssText = cssText; + } + head.appendChild(style); + } + + function _getDom() { + var doc = document, + hand, + arr = [], + scale = doc.createElement('div'); + + scale.id = 'J_scaleCon'; + scale.className = 'scale'; + for (var i = 0; i < 8; i++) { + arr.push(""); + } + scale.innerHTML = arr.join(""); + return scale; + } + + var rect = [ + //[left, top, width, height] + [1, 1, -1, -1], + [0, 1, 0, -1], + [0, 1, 1, -1], + [1, 0, -1, 0], + [0, 0, 1, 0], + [1, 0, -1, 1], + [0, 0, 0, 1], + [0, 0, 1, 1] + ]; + ScaleBoy.prototype = { + init: function () { + _appendStyle(); + var me = this, + scale = me.dom = _getDom(); + + me.scaleMousemove.fp = me; + domUtils.on(scale, 'mousedown', function (e) { + var target = e.target || e.srcElement; + me.start = {x: e.clientX, y: e.clientY}; + if (target.className.indexOf('hand') != -1) { + me.dir = target.className.replace('hand', ''); + } + domUtils.on(document.body, 'mousemove', me.scaleMousemove); + e.stopPropagation ? e.stopPropagation() : e.cancelBubble = true; + }); + domUtils.on(document.body, 'mouseup', function (e) { + if (me.start) { + domUtils.un(document.body, 'mousemove', me.scaleMousemove); + if (me.moved) { + me.updateScaledElement({ + position: {x: scale.style.left, y: scale.style.top}, + size: {w: scale.style.width, h: scale.style.height} + }); + } + delete me.start; + delete me.moved; + delete me.dir; + } + }); + return scale; + }, + startScale: function (objElement) { + var me = this, Idom = me.dom; + + Idom.style.cssText = 'visibility:visible;top:' + objElement.style.top + ';left:' + objElement.style.left + ';width:' + objElement.offsetWidth + 'px;height:' + objElement.offsetHeight + 'px;'; + me.scalingElement = objElement; + }, + updateScaledElement: function (objStyle) { + var cur = this.scalingElement, + pos = objStyle.position, + size = objStyle.size; + if (pos) { + typeof pos.x != 'undefined' && (cur.style.left = pos.x); + typeof pos.y != 'undefined' && (cur.style.top = pos.y); + } + if (size) { + size.w && (cur.style.width = size.w); + size.h && (cur.style.height = size.h); + } + }, + updateStyleByDir: function (dir, offset) { + var me = this, + dom = me.dom, tmp; + + rect['def'] = [1, 1, 0, 0]; + if (rect[dir][0] != 0) { + tmp = parseInt(dom.style.left) + offset.x; + dom.style.left = me._validScaledProp('left', tmp) + 'px'; + } + if (rect[dir][1] != 0) { + tmp = parseInt(dom.style.top) + offset.y; + dom.style.top = me._validScaledProp('top', tmp) + 'px'; + } + if (rect[dir][2] != 0) { + tmp = dom.clientWidth + rect[dir][2] * offset.x; + dom.style.width = me._validScaledProp('width', tmp) + 'px'; + } + if (rect[dir][3] != 0) { + tmp = dom.clientHeight + rect[dir][3] * offset.y; + dom.style.height = me._validScaledProp('height', tmp) + 'px'; + } + if (dir === 'def') { + me.updateScaledElement({position: {x: dom.style.left, y: dom.style.top}}); + } + }, + scaleMousemove: function (e) { + var me = arguments.callee.fp, + start = me.start, + dir = me.dir || 'def', + offset = {x: e.clientX - start.x, y: e.clientY - start.y}; + + me.updateStyleByDir(dir, offset); + arguments.callee.fp.start = {x: e.clientX, y: e.clientY}; + arguments.callee.fp.moved = 1; + }, + _validScaledProp: function (prop, value) { + var ele = this.dom, + wrap = $G("J_picBoard"); + + value = isNaN(value) ? 0 : value; + switch (prop) { + case 'left': + return value < 0 ? 0 : (value + ele.clientWidth) > wrap.clientWidth ? wrap.clientWidth - ele.clientWidth : value; + case 'top': + return value < 0 ? 0 : (value + ele.clientHeight) > wrap.clientHeight ? wrap.clientHeight - ele.clientHeight : value; + case 'width': + return value <= 0 ? 1 : (value + ele.offsetLeft) > wrap.clientWidth ? wrap.clientWidth - ele.offsetLeft : value; + case 'height': + return value <= 0 ? 1 : (value + ele.offsetTop) > wrap.clientHeight ? wrap.clientHeight - ele.offsetTop : value; + } + } + }; +})(); + +//后台回调 +function ue_callback(url, state) { + var doc = document, + picBorard = $G("J_picBoard"), + img = doc.createElement("img"); + + //图片缩放 + function scale(img, max, oWidth, oHeight) { + var width = 0, height = 0, percent, ow = img.width || oWidth, oh = img.height || oHeight; + if (ow > max || oh > max) { + if (ow >= oh) { + if (width = ow - max) { + percent = (width / ow).toFixed(2); + img.height = oh - oh * percent; + img.width = max; + } + } else { + if (height = oh - max) { + percent = (height / oh).toFixed(2); + img.width = ow - ow * percent; + img.height = max; + } + } + } + } + + //移除遮罩层 + removeMaskLayer(); + //状态响应 + if (state == "SUCCESS") { + picBorard.innerHTML = ""; + img.onload = function () { + scale(this, 300); + picBorard.appendChild(img); + + var obj = new scrawl(); + obj.btn2Highlight("J_removeImg"); + //trace 2457 + obj.btn2Highlight("J_sacleBoard"); + }; + img.src = url; + } else { + alert(state); + } +} + +//去掉遮罩层 +function removeMaskLayer() { + var maskLayer = $G("J_maskLayer"); + maskLayer.className = "maskLayerNull"; + maskLayer.innerHTML = ""; + dialog.buttons[0].setDisabled(false); +} + +//添加遮罩层 +function addMaskLayer(html) { + var maskLayer = $G("J_maskLayer"); + dialog.buttons[0].setDisabled(true); + maskLayer.className = "maskLayer"; + maskLayer.innerHTML = html; +} + +//执行确认按钮方法 +function exec(scrawlObj) { + if (scrawlObj.isScrawl) { + addMaskLayer(lang.scrawlUpLoading); + var base64 = scrawlObj.getCanvasData(); + if (!!base64) { + + var successHandler = function (res) { + var imgObj = {}, + url = editor.options.scrawlUrlPrefix + res.url; + imgObj.src = url; + imgObj._src = url; + imgObj.alt = res.original || ''; + editor.execCommand("insertImage", imgObj); + dialog.close(); + // 触发上传涂鸦事件 + editor.fireEvent("uploadsuccess", { + res: res, + type: 'scrawl' + }); + }; + + if(editor.getOpt('uploadServiceEnable')) { + var file = utils.base64toBlob(base64, 'image/png'); + editor.getOpt('uploadServiceUpload')('image', file, { + success: function( res ) { + if (!scrawlObj.isCancelScrawl) { + successHandler(res); + } + }, + error: function( err ) { + alert(lang.imageError + ' : '+err); + dialog.close(); + }, + progress: function( percent ) { + + } + }, { + from: 'scrawl' + }); + return; + } + + var options = { + timeout: 100000, + headers: editor.options.serverHeaders || {}, + onsuccess: function (xhr) { + if (!scrawlObj.isCancelScrawl) { + var responseObj; + responseObj = eval("(" + xhr.responseText + ")"); + if (responseObj.state === "SUCCESS") { + successHandler(responseObj); + } else { + alert(responseObj.state); + } + } + }, + onerror: function () { + alert(lang.imageError); + dialog.close(); + } + }; + options[editor.getOpt('scrawlFieldName')] = base64; + + var actionUrl = editor.getActionUrl(editor.getOpt('scrawlActionName')), + params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', + url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?' : '&') + params); + ajax.request(url, options); + } + } else { + addMaskLayer(lang.noScarwl + "   "); + } +} + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/searchreplace/searchreplace.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/searchreplace/searchreplace.html new file mode 100644 index 0000000..0d49a7c --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/searchreplace/searchreplace.html @@ -0,0 +1,144 @@ + + + + + + + + + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + +
    :
    + +
    + + +
    +   +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    :
    :
    + +
    + + + + +
    +   +
    + +
    +
    +
    +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/searchreplace/searchreplace.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/searchreplace/searchreplace.js new file mode 100644 index 0000000..c0ce80a --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/searchreplace/searchreplace.js @@ -0,0 +1,174 @@ +/** + * Created with JetBrains PhpStorm. + * User: xuheng + * Date: 12-9-26 + * Time: 下午12:29 + * To change this template use File | Settings | File Templates. + */ + +//清空上次查选的痕迹 +editor.firstForSR = 0; +editor.currentRangeForSR = null; + +//给tab注册切换事件 +/** + * tab点击处理事件 + * @param tabHeads + * @param tabBodys + * @param obj + */ +function clickHandler(tabHeads, tabBodys, obj) { + //head样式更改 + for (var k = 0, len = tabHeads.length; k < len; k++) { + tabHeads[k].className = ""; + } + obj.className = "focus"; + //body显隐 + var tabSrc = obj.getAttribute("tabSrc"); + for (var j = 0, length = tabBodys.length; j < length; j++) { + var body = tabBodys[j], + id = body.getAttribute("id"); + if (id != tabSrc) { + body.style.zIndex = 1; + } else { + body.style.zIndex = 200; + } + } + +} + +/** + * TAB切换 + * @param tabParentId tab的父节点ID或者对象本身 + */ +function switchTab(tabParentId) { + var tabElements = $G(tabParentId).children, + tabHeads = tabElements[0].children, + tabBodys = tabElements[1].children; + + for (var i = 0, length = tabHeads.length; i < length; i++) { + var head = tabHeads[i]; + if (head.className === "focus") clickHandler(tabHeads, tabBodys, head); + head.onclick = function () { + clickHandler(tabHeads, tabBodys, this); + } + } +} + +$G('searchtab').onmousedown = function () { + $G('search-msg').innerHTML = ''; + $G('replace-msg').innerHTML = '' +} + +//是否区分大小写 +function getMatchCase(id) { + return $G(id).checked ? true : false; +} + +//查找 +$G("nextFindBtn").onclick = function (txt, dir, mcase) { + var findtxt = $G("findtxt").value, obj; + if (!findtxt) { + return false; + } + obj = { + searchStr: findtxt, + dir: 1, + casesensitive: getMatchCase("matchCase") + }; + if (!frCommond(obj)) { + var bk = editor.selection.getRange().createBookmark(); + $G('search-msg').innerHTML = lang.getEnd; + editor.selection.getRange().moveToBookmark(bk).select(); + + + } +}; +$G("nextReplaceBtn").onclick = function (txt, dir, mcase) { + var findtxt = $G("findtxt1").value, obj; + if (!findtxt) { + return false; + } + obj = { + searchStr: findtxt, + dir: 1, + casesensitive: getMatchCase("matchCase1") + }; + frCommond(obj); +}; +$G("preFindBtn").onclick = function (txt, dir, mcase) { + var findtxt = $G("findtxt").value, obj; + if (!findtxt) { + return false; + } + obj = { + searchStr: findtxt, + dir: -1, + casesensitive: getMatchCase("matchCase") + }; + if (!frCommond(obj)) { + $G('search-msg').innerHTML = lang.getStart; + } +}; +$G("preReplaceBtn").onclick = function (txt, dir, mcase) { + var findtxt = $G("findtxt1").value, obj; + if (!findtxt) { + return false; + } + obj = { + searchStr: findtxt, + dir: -1, + casesensitive: getMatchCase("matchCase1") + }; + frCommond(obj); +}; +//替换 +$G("repalceBtn").onclick = function () { + editor.trigger('clearLastSearchResult'); + var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj, + replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, ""); + if (!findtxt) { + return false; + } + if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) { + return false; + } + obj = { + searchStr: findtxt, + dir: 1, + casesensitive: getMatchCase("matchCase1"), + replaceStr: replacetxt + }; + frCommond(obj); +}; +//全部替换 +$G("repalceAllBtn").onclick = function () { + var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj, + replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, ""); + if (!findtxt) { + return false; + } + if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) { + return false; + } + obj = { + searchStr: findtxt, + casesensitive: getMatchCase("matchCase1"), + replaceStr: replacetxt, + all: true + }; + var num = frCommond(obj); + if (num) { + $G('replace-msg').innerHTML = lang.countMsg.replace("{#count}", num); + } +}; +//执行 +var frCommond = function (obj) { + return editor.execCommand("searchreplace", obj); +}; +switchTab("searchtab"); + + +dialog.onclose = function () { + editor.trigger('clearLastSearchResult') +}; diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/spechars/spechars.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/spechars/spechars.html new file mode 100644 index 0000000..d071935 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/spechars/spechars.html @@ -0,0 +1,42 @@ + + + + + + + + + +
    +
    +
    +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/spechars/spechars.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/spechars/spechars.js new file mode 100644 index 0000000..be1902d --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/spechars/spechars.js @@ -0,0 +1,86 @@ +/** + * Created with JetBrains PhpStorm. + * User: xuheng + * Date: 12-9-26 + * Time: 下午1:09 + * To change this template use File | Settings | File Templates. + */ +var charsContent = [ + { + name: "tsfh", + title: lang.tsfh, + content: toArray("、,。,·,ˉ,ˇ,¨,〃,々,—,~,‖,…,‘,’,“,”,〔,〕,〈,〉,《,》,「,」,『,』,〖,〗,【,】,±,×,÷,∶,∧,∨,∑,∏,∪,∩,∈,∷,√,⊥,∥,∠,⌒,⊙,∫,∮,≡,≌,≈,∽,∝,≠,≮,≯,≤,≥,∞,∵,∴,♂,♀,°,′,″,℃,$,¤,¢,£,‰,§,№,☆,★,○,●,◎,◇,◆,□,■,△,▲,※,→,←,↑,↓,〓,〡,〢,〣,〤,〥,〦,〧,〨,〩,㊣,㎎,㎏,㎜,㎝,㎞,㎡,㏄,㏎,㏑,㏒,㏕,︰,¬,¦,℡,ˊ,ˋ,˙,–,―,‥,‵,℅,℉,↖,↗,↘,↙,∕,∟,∣,≒,≦,≧,⊿,═,║,╒,╓,╔,╕,╖,╗,╘,╙,╚,╛,╜,╝,╞,╟,╠,╡,╢,╣,╤,╥,╦,╧,╨,╩,╪,╫,╬,╭,╮,╯,╰,╱,╲,╳,▁,▂,▃,▄,▅,▆,▇,�,█,▉,▊,▋,▌,▍,▎,▏,▓,▔,▕,▼,▽,◢,◣,◤,◥,☉,⊕,〒,〝,〞") + }, + {name: "lmsz", title: lang.lmsz, content: toArray("ⅰ,ⅱ,ⅲ,ⅳ,ⅴ,ⅵ,ⅶ,ⅷ,ⅸ,ⅹ,Ⅰ,Ⅱ,Ⅲ,Ⅳ,Ⅴ,Ⅵ,Ⅶ,Ⅷ,Ⅸ,Ⅹ,Ⅺ,Ⅻ")}, + { + name: "szfh", + title: lang.szfh, + content: toArray("⒈,⒉,⒊,⒋,⒌,⒍,⒎,⒏,⒐,⒑,⒒,⒓,⒔,⒕,⒖,⒗,⒘,⒙,⒚,⒛,⑴,⑵,⑶,⑷,⑸,⑹,⑺,⑻,⑼,⑽,⑾,⑿,⒀,⒁,⒂,⒃,⒄,⒅,⒆,⒇,①,②,③,④,⑤,⑥,⑦,⑧,⑨,⑩,㈠,㈡,㈢,㈣,㈤,㈥,㈦,㈧,㈨,㈩") + }, + { + name: "rwfh", + title: lang.rwfh, + content: toArray("ぁ,あ,ぃ,い,ぅ,う,ぇ,え,ぉ,お,か,が,き,ぎ,く,ぐ,け,げ,こ,ご,さ,ざ,し,じ,す,ず,せ,ぜ,そ,ぞ,た,だ,ち,ぢ,っ,つ,づ,て,で,と,ど,な,に,ぬ,ね,の,は,ば,ぱ,ひ,び,ぴ,ふ,ぶ,ぷ,へ,べ,ぺ,ほ,ぼ,ぽ,ま,み,む,め,も,ゃ,や,ゅ,ゆ,ょ,よ,ら,り,る,れ,ろ,ゎ,わ,ゐ,ゑ,を,ん,ァ,ア,ィ,イ,ゥ,ウ,ェ,エ,ォ,オ,カ,ガ,キ,ギ,ク,グ,ケ,ゲ,コ,ゴ,サ,ザ,シ,ジ,ス,ズ,セ,ゼ,ソ,ゾ,タ,ダ,チ,ヂ,ッ,ツ,ヅ,テ,デ,ト,ド,ナ,ニ,ヌ,ネ,ノ,ハ,バ,パ,ヒ,ビ,ピ,フ,ブ,プ,ヘ,ベ,ペ,ホ,ボ,ポ,マ,ミ,ム,メ,モ,ャ,ヤ,ュ,ユ,ョ,ヨ,ラ,リ,ル,レ,ロ,ヮ,ワ,ヰ,ヱ,ヲ,ン,ヴ,ヵ,ヶ") + }, + { + name: "xlzm", + title: lang.xlzm, + content: toArray("Α,Β,Γ,Δ,Ε,Ζ,Η,Θ,Ι,Κ,Λ,Μ,Ν,Ξ,Ο,Π,Ρ,Σ,Τ,Υ,Φ,Χ,Ψ,Ω,α,β,γ,δ,ε,ζ,η,θ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,σ,τ,υ,φ,χ,ψ,ω") + }, + { + name: "ewzm", + title: lang.ewzm, + content: toArray("А,Б,В,Г,Д,Е,Ё,Ж,З,И,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Х,Ц,Ч,Ш,Щ,Ъ,Ы,Ь,Э,Ю,Я,а,б,в,г,д,е,ё,ж,з,и,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ъ,ы,ь,э,ю,я") + }, + {name: "pyzm", title: lang.pyzm, content: toArray("ā,á,ǎ,à,ē,é,ě,è,ī,í,ǐ,ì,ō,ó,ǒ,ò,ū,ú,ǔ,ù,ǖ,ǘ,ǚ,ǜ,ü")}, + { + name: "yyyb", + title: lang.yyyb, + content: toArray("i:,i,e,æ,ʌ,ə:,ə,u:,u,ɔ:,ɔ,a:,ei,ai,ɔi,əu,au,iə,εə,uə,p,t,k,b,d,g,f,s,ʃ,θ,h,v,z,ʒ,ð,tʃ,tr,ts,dʒ,dr,dz,m,n,ŋ,l,r,w,j,") + }, + { + name: "zyzf", + title: lang.zyzf, + content: toArray("ㄅ,ㄆ,ㄇ,ㄈ,ㄉ,ㄊ,ㄋ,ㄌ,ㄍ,ㄎ,ㄏ,ㄐ,ㄑ,ㄒ,ㄓ,ㄔ,ㄕ,ㄖ,ㄗ,ㄘ,ㄙ,ㄚ,ㄛ,ㄜ,ㄝ,ㄞ,ㄟ,ㄠ,ㄡ,ㄢ,ㄣ,ㄤ,ㄥ,ㄦ,ㄧ,ㄨ") + } +]; +(function createTab(content) { + for (var i = 0, ci; ci = content[i++];) { + var span = document.createElement("span"); + span.setAttribute("tabSrc", ci.name); + span.innerHTML = ci.title; + if (i == 1) span.className = "focus"; + domUtils.on(span, "click", function () { + var tmps = $G("tabHeads").children; + for (var k = 0, sk; sk = tmps[k++];) { + sk.className = ""; + } + tmps = $G("tabBodys").children; + for (var k = 0, sk; sk = tmps[k++];) { + sk.style.display = "none"; + } + this.className = "focus"; + $G(this.getAttribute("tabSrc")).style.display = ""; + }); + $G("tabHeads").appendChild(span); + domUtils.insertAfter(span, document.createTextNode("\n")); + var div = document.createElement("div"); + div.id = ci.name; + div.style.display = (i == 1) ? "" : "none"; + var cons = ci.content; + for (var j = 0, con; con = cons[j++];) { + var charSpan = document.createElement("span"); + charSpan.innerHTML = con; + domUtils.on(charSpan, "click", function () { + editor.execCommand("insertHTML", this.innerHTML); + dialog.close(); + }); + div.appendChild(charSpan); + } + $G("tabBodys").appendChild(div); + } +})(charsContent); + +function toArray(str) { + return str.split(","); +} diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/table/dragicon.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/table/dragicon.png new file mode 100644 index 0000000..f26203b Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/table/dragicon.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/table/edittable.css b/ruoyi-ui/public/static/UEditorPlus/dialogs/table/edittable.css new file mode 100644 index 0000000..6abf7cb --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/table/edittable.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +body{overflow:hidden;width:540px}.wrapper{margin:10px auto 0;font-size:12px;overflow:hidden;width:520px;height:315px}.clear{clear:both}.wrapper .left{float:left;margin-left:10px}.wrapper .right{float:right;border-left:2px dotted #EDEDED;padding-left:15px}.section{margin-bottom:15px;width:240px;overflow:hidden}.section h3{font-weight:700;padding:5px 0;margin-bottom:10px;border-bottom:1px solid #EDEDED;font-size:12px}.section ul{list-style:none;overflow:hidden;clear:both}.section li{float:left;width:120px}.section .tone{width:80px}.section .preview{width:220px}.section .preview table{text-align:center;vertical-align:middle;color:#666}.section .preview caption{font-weight:700}.section .preview td{border-width:1px;border-style:solid;height:22px}.section .preview th{border-style:solid;border-color:#DDD;border-width:2px 1px 1px;height:22px;background-color:#F7F7F7} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/table/edittable.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/table/edittable.html new file mode 100644 index 0000000..a16d6d3 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/table/edittable.html @@ -0,0 +1,69 @@ + + + + + + + + +
    +
    +
    +

    +
      +
    • + +
    • +
    • + +
    • +
    +
      +
    • + +
    • +
    • + +
    • +
    +
    +
    +
    +

    +
      +
    • + +
    • +
    • + +
    • +
    +
    +
    +
    +

    +
      +
    • + + +
    • +
    +
    +
    +
    +
    +
    +

    +
    +
    +
    +
    +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/table/edittable.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/table/edittable.js new file mode 100644 index 0000000..bb20953 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/table/edittable.js @@ -0,0 +1,241 @@ +/** + * Created with JetBrains PhpStorm. + * User: xuheng + * Date: 12-12-19 + * Time: 下午4:55 + * To change this template use File | Settings | File Templates. + */ +(function () { + var title = $G("J_title"), + titleCol = $G("J_titleCol"), + caption = $G("J_caption"), + sorttable = $G("J_sorttable"), + autoSizeContent = $G("J_autoSizeContent"), + autoSizePage = $G("J_autoSizePage"), + tone = $G("J_tone"), + me, + preview = $G("J_preview"); + + var editTable = function () { + me = this; + me.init(); + }; + editTable.prototype = { + init: function () { + var colorPiker = new UE.ui.ColorPicker({ + editor: editor + }), + colorPop = new UE.ui.Popup({ + editor: editor, + content: colorPiker + }); + + title.checked = editor.queryCommandState("inserttitle") == -1; + titleCol.checked = editor.queryCommandState("inserttitlecol") == -1; + caption.checked = editor.queryCommandState("insertcaption") == -1; + sorttable.checked = editor.queryCommandState("enablesort") == 1; + + var enablesortState = editor.queryCommandState("enablesort"), + disablesortState = editor.queryCommandState("disablesort"); + + sorttable.checked = !!(enablesortState < 0 && disablesortState >= 0); + sorttable.disabled = !!(enablesortState < 0 && disablesortState < 0); + sorttable.title = enablesortState < 0 && disablesortState < 0 ? lang.errorMsg : ''; + + me.createTable(title.checked, titleCol.checked, caption.checked); + me.setAutoSize(); + me.setColor(me.getColor()); + + domUtils.on(title, "click", me.titleHanler); + domUtils.on(titleCol, "click", me.titleColHanler); + domUtils.on(caption, "click", me.captionHanler); + domUtils.on(sorttable, "click", me.sorttableHanler); + domUtils.on(autoSizeContent, "click", me.autoSizeContentHanler); + domUtils.on(autoSizePage, "click", me.autoSizePageHanler); + + domUtils.on(tone, "click", function () { + colorPop.showAnchor(tone); + }); + domUtils.on(document, 'mousedown', function () { + colorPop.hide(); + }); + colorPiker.addListener("pickcolor", function () { + me.setColor(arguments[1]); + colorPop.hide(); + }); + colorPiker.addListener("picknocolor", function () { + me.setColor(""); + colorPop.hide(); + }); + }, + + createTable: function (hasTitle, hasTitleCol, hasCaption) { + var arr = [], + sortSpan = '^'; + arr.push(""); + if (hasCaption) { + arr.push("") + } + if (hasTitle) { + arr.push(""); + if (hasTitleCol) { + arr.push(""); + } + for (var j = 0; j < 5; j++) { + arr.push(""); + } + arr.push(""); + } + for (var i = 0; i < 6; i++) { + arr.push(""); + if (hasTitleCol) { + arr.push("") + } + for (var k = 0; k < 5; k++) { + arr.push("") + } + arr.push(""); + } + arr.push("
    " + lang.captionName + "
    " + lang.titleName + "" + lang.titleName + "
    " + lang.titleName + "" + lang.cellsName + "
    "); + preview.innerHTML = arr.join(""); + this.updateSortSpan(); + }, + titleHanler: function () { + var example = $G("J_example"), + frg = document.createDocumentFragment(), + color = domUtils.getComputedStyle(domUtils.getElementsByTagName(example, "td")[0], "border-color"), + colCount = example.rows[0].children.length; + + if (title.checked) { + example.insertRow(0); + for (var i = 0, node; i < colCount; i++) { + node = document.createElement("th"); + node.innerHTML = lang.titleName; + frg.appendChild(node); + } + example.rows[0].appendChild(frg); + + } else { + domUtils.remove(example.rows[0]); + } + me.setColor(color); + me.updateSortSpan(); + }, + titleColHanler: function () { + var example = $G("J_example"), + color = domUtils.getComputedStyle(domUtils.getElementsByTagName(example, "td")[0], "border-color"), + colArr = example.rows, + colCount = colArr.length; + + if (titleCol.checked) { + for (var i = 0, node; i < colCount; i++) { + node = document.createElement("th"); + node.innerHTML = lang.titleName; + colArr[i].insertBefore(node, colArr[i].children[0]); + } + } else { + for (var i = 0; i < colCount; i++) { + domUtils.remove(colArr[i].children[0]); + } + } + me.setColor(color); + me.updateSortSpan(); + }, + captionHanler: function () { + var example = $G("J_example"); + if (caption.checked) { + var row = document.createElement('caption'); + row.innerHTML = lang.captionName; + example.insertBefore(row, example.firstChild); + } else { + domUtils.remove(domUtils.getElementsByTagName(example, 'caption')[0]); + } + }, + sorttableHanler: function () { + me.updateSortSpan(); + }, + autoSizeContentHanler: function () { + var example = $G("J_example"); + example.removeAttribute("width"); + }, + autoSizePageHanler: function () { + var example = $G("J_example"); + var tds = example.getElementsByTagName(example, "td"); + utils.each(tds, function (td) { + td.removeAttribute("width"); + }); + example.setAttribute('width', '100%'); + }, + updateSortSpan: function () { + var example = $G("J_example"), + row = example.rows[0]; + + var spans = domUtils.getElementsByTagName(example, "span"); + utils.each(spans, function (span) { + span.parentNode.removeChild(span); + }); + if (sorttable.checked) { + utils.each(row.cells, function (cell, i) { + var span = document.createElement("span"); + span.innerHTML = "^"; + cell.appendChild(span); + }); + } + }, + getColor: function () { + var start = editor.selection.getStart(), color, + cell = domUtils.findParentByTagName(start, ["td", "th", "caption"], true); + color = cell && domUtils.getComputedStyle(cell, "border-color"); + if (!color) color = "#DDDDDD"; + return color; + }, + setColor: function (color) { + var example = $G("J_example"), + arr = domUtils.getElementsByTagName(example, "td").concat( + domUtils.getElementsByTagName(example, "th"), + domUtils.getElementsByTagName(example, "caption") + ); + + tone.value = color; + utils.each(arr, function (node) { + node.style.borderColor = color; + }); + + }, + setAutoSize: function () { + var me = this; + autoSizePage.checked = true; + me.autoSizePageHanler(); + } + }; + + new editTable; + + dialog.onok = function () { + editor.__hasEnterExecCommand = true; + + var checks = { + title: "inserttitle deletetitle", + titleCol: "inserttitlecol deletetitlecol", + caption: "insertcaption deletecaption", + sorttable: "enablesort disablesort" + }; + editor.fireEvent('saveScene'); + for (var i in checks) { + var cmds = checks[i].split(" "), + input = $G("J_" + i); + if (input["checked"]) { + editor.queryCommandState(cmds[0]) != -1 && editor.execCommand(cmds[0]); + } else { + editor.queryCommandState(cmds[1]) != -1 && editor.execCommand(cmds[1]); + } + } + + editor.execCommand("edittable", tone.value); + autoSizeContent.checked ? editor.execCommand('adaptbytext') : ""; + autoSizePage.checked ? editor.execCommand("adaptbywindow") : ""; + editor.fireEvent('saveScene'); + + editor.__hasEnterExecCommand = false; + }; +})(); diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/table/edittd.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/table/edittd.html new file mode 100644 index 0000000..674cff9 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/table/edittd.html @@ -0,0 +1,62 @@ + + + + + + + + +
    + + +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/table/edittip.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/table/edittip.html new file mode 100644 index 0000000..69d040e --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/table/edittip.html @@ -0,0 +1,33 @@ + + + + 表格删除提示 + + + + +
    +
    + +
    +
    + +
    +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/template/config.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/config.js new file mode 100644 index 0000000..b4cf379 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/config.js @@ -0,0 +1,42 @@ +/** + * Created with JetBrains PhpStorm. + * User: xuheng + * Date: 12-8-8 + * Time: 下午2:00 + * To change this template use File | Settings | File Templates. + */ +var templates = [ + { + "pre": "pre0.png", + 'title': lang.blank, + 'preHtml': '

     欢迎使用UEditor!

    ', + "html": '

    欢迎使用UEditor!

    ' + + }, + { + "pre": "pre1.png", + 'title': lang.blog, + 'preHtml': '

    深入理解Range

    UEditor二次开发

    什么是Range

    对于“插入”选项卡上的库,在设计时都充分考虑了其中的项与文档整体外观的协调性。


    Range能干什么

    在“开始”选项卡上,通过从快速样式库中为所选文本选择一种外观,您可以方便地更改文档中所选文本的格式。

    ', + "html": '

    [键入文档标题]

    [键入文档副标题]

    [标题 1]

    对于“插入”选项卡上的库,在设计时都充分考虑了其中的项与文档整体外观的协调性。 您可以使用这些库来插入表格、页眉、页脚、列表、封面以及其他文档构建基块。 您创建的图片、图表或关系图也将与当前的文档外观协调一致。

    [标题 2]

    在“开始”选项卡上,通过从快速样式库中为所选文本选择一种外观,您可以方便地更改文档中所选文本的格式。 您还可以使用“开始”选项卡上的其他控件来直接设置文本格式。大多数控件都允许您选择是使用当前主题外观,还是使用某种直接指定的格式。

    [标题 3]

    对于“插入”选项卡上的库,在设计时都充分考虑了其中的项与文档整体外观的协调性。 您可以使用这些库来插入表格、页眉、页脚、列表、封面以及其他文档构建基块。 您创建的图片、图表或关系图也将与当前的文档外观协调一致。


    ' + + }, + { + "pre": "pre2.png", + 'title': lang.resume, + 'preHtml': '

    WEB前端开发简历


    联系电话:[键入您的电话]

    电子邮件:[键入您的电子邮件地址]

    家庭住址:[键入您的地址]

    目标职位

    WEB前端研发工程师

    学历

    1. [起止时间] [学校名称] [所学专业] [所获学位]

    工作经验


    ', + "html": '

    [此处键入简历标题]


    【此处插入照片】


    联系电话:[键入您的电话]


    电子邮件:[键入您的电子邮件地址]


    家庭住址:[键入您的地址]


    目标职位

    [此处键入您的期望职位]

    学历

    1. [键入起止时间] [键入学校名称] [键入所学专业] [键入所获学位]

    2. [键入起止时间] [键入学校名称] [键入所学专业] [键入所获学位]

    工作经验

    1. [键入起止时间] [键入公司名称] [键入职位名称]

      1. [键入负责项目] [键入项目简介]

      2. [键入负责项目] [键入项目简介]

    2. [键入起止时间] [键入公司名称] [键入职位名称]

      1. [键入负责项目] [键入项目简介]

    掌握技能

     [这里可以键入您所掌握的技能]

    ' + + }, + { + "pre": "pre3.png", + 'title': lang.richText, + 'preHtml': '

    [此处键入文章标题]

    图文混排方法

    图片居左,文字围绕图片排版

    方法:在文字前面插入图片,设置居左对齐,然后即可在右边输入多行文


    还有没有什么其他的环绕方式呢?这里是居右环绕


    欢迎大家多多尝试,为UEditor提供更多高质量模板!

    ', + "html": '


    [此处键入文章标题]

    图文混排方法

    1. 图片居左,文字围绕图片排版

    方法:在文字前面插入图片,设置居左对齐,然后即可在右边输入多行文本


    2. 图片居右,文字围绕图片排版

    方法:在文字前面插入图片,设置居右对齐,然后即可在左边输入多行文本


    3. 图片居中环绕排版

    方法:亲,这个真心没有办法。。。



    还有没有什么其他的环绕方式呢?这里是居右环绕


    欢迎大家多多尝试,为UEditor提供更多高质量模板!


    占位


    占位


    占位


    占位


    占位



    ' + }, + { + "pre": "pre4.png", + 'title': lang.sciPapers, + 'preHtml': '

    [键入文章标题]

    摘要:这里可以输入很长很长很长很长很长很长很长很长很差的摘要

    标题 1

    这里可以输入很多内容,可以图文混排,可以有列表等。

    标题 2

    1. 列表 1

    2. 列表 2

      1. 多级列表 1

      2. 多级列表 2

    3. 列表 3

    标题 3

    来个文字图文混排的


    ', + 'html': '

    [键入文章标题]

    摘要:这里可以输入很长很长很长很长很长很长很长很长很差的摘要

    标题 1

    这里可以输入很多内容,可以图文混排,可以有列表等。

    标题 2

    来个列表瞅瞅:

    1. 列表 1

    2. 列表 2

      1. 多级列表 1

      2. 多级列表 2

    3. 列表 3

    标题 3

    来个文字图文混排的

    这里可以多行

    右边是图片

    绝对没有问题的,不信你也可以试试看


    ' + } +]; diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/template/images/bg.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/images/bg.gif new file mode 100644 index 0000000..8c1d10a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/images/bg.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/template/images/pre0.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/images/pre0.png new file mode 100644 index 0000000..8f3c16a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/images/pre0.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/template/images/pre1.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/images/pre1.png new file mode 100644 index 0000000..5a03f96 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/images/pre1.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/template/images/pre2.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/images/pre2.png new file mode 100644 index 0000000..5a55672 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/images/pre2.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/template/images/pre3.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/images/pre3.png new file mode 100644 index 0000000..d852d29 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/images/pre3.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/template/images/pre4.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/images/pre4.png new file mode 100644 index 0000000..0d7bc72 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/images/pre4.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/template/template.css b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/template.css new file mode 100644 index 0000000..1dfdd43 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/template.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +.wrap{padding:5px;font-size:14px}.left{width:425px;float:left}.right{width:160px;border:1px solid #ccc;float:right;padding:5px;margin-right:5px}.right .pre{height:332px;overflow-y:auto}.right .preitem{border:#fff 1px solid;margin:5px 0;padding:2px 0}.right .preitem:hover{background-color:#fffacd;cursor:pointer;border:#ccc 1px solid}.right .preitem img{display:block;margin:0 auto;width:100px}.clear{clear:both}.top{height:26px;line-height:26px;padding:5px}.bottom{height:320px;width:100%;margin:0 auto}.transparent{background:url(images/bg.gif) repeat}.bottom table tr td{border:1px dashed #ccc}#colorPicker{width:17px;height:17px;border:1px solid #CCC;display:inline-block;border-radius:3px;box-shadow:2px 2px 5px #D3D6DA}.border_style1{padding:2px;border:1px solid #ccc;border-radius:5px;box-shadow:2px 2px 5px #d3d6da}p{margin:5px 0}table{clear:both;margin-bottom:10px;border-collapse:collapse;word-break:break-all}li{clear:both}ol{padding-left:40px} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/template/template.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/template.html new file mode 100644 index 0000000..995c32a --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/template.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/template/template.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/template.js new file mode 100644 index 0000000..937228a --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/template/template.js @@ -0,0 +1,53 @@ +/** + * Created with JetBrains PhpStorm. + * User: xuheng + * Date: 12-8-8 + * Time: 下午2:09 + * To change this template use File | Settings | File Templates. + */ +(function () { + var me = editor, + preview = $G("preview"), + preitem = $G("preitem"), + tmps = templates, + currentTmp; + var initPre = function () { + var str = ""; + for (var i = 0, tmp; tmp = tmps[i++];) { + str += '
    '; + } + preitem.innerHTML = str; + }; + var pre = function (n) { + var tmp = tmps[n - 1]; + currentTmp = tmp; + clearItem(); + domUtils.setStyles(preitem.childNodes[n - 1], { + "background-color": "lemonChiffon", + "border": "#ccc 1px solid" + }); + preview.innerHTML = tmp.preHtml ? tmp.preHtml : ""; + }; + var clearItem = function () { + var items = preitem.children; + for (var i = 0, item; item = items[i++];) { + domUtils.setStyles(item, { + "background-color": "", + "border": "white 1px solid" + }); + } + }; + dialog.onok = function () { + if (!$G("issave").checked) { + me.execCommand("cleardoc"); + } + var obj = { + html: currentTmp && currentTmp.html + }; + me.execCommand("template", obj); + }; + initPre(); + window.pre = pre; + pre(2) + +})(); diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/bg.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/bg.png new file mode 100644 index 0000000..580be0a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/bg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/center_focus.jpg b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/center_focus.jpg new file mode 100644 index 0000000..262b029 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/center_focus.jpg differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/file-icons.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/file-icons.gif new file mode 100644 index 0000000..d8c02c2 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/file-icons.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/file-icons.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/file-icons.png new file mode 100644 index 0000000..3ff82c8 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/file-icons.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/icons.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/icons.gif new file mode 100644 index 0000000..78459de Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/icons.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/icons.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/icons.png new file mode 100644 index 0000000..12e4700 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/icons.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/image.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/image.png new file mode 100644 index 0000000..19699f6 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/image.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/left_focus.jpg b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/left_focus.jpg new file mode 100644 index 0000000..7886d27 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/left_focus.jpg differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/none_focus.jpg b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/none_focus.jpg new file mode 100644 index 0000000..7c768dc Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/none_focus.jpg differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/progress.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/progress.png new file mode 100644 index 0000000..717c486 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/progress.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/right_focus.jpg b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/right_focus.jpg new file mode 100644 index 0000000..173e10d Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/right_focus.jpg differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/success.gif b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/success.gif new file mode 100644 index 0000000..8d4f311 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/success.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/success.png b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/success.png new file mode 100644 index 0000000..94f968d Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/images/success.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/video/video.css b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/video.css new file mode 100644 index 0000000..ed9ebe5 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/video.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +@charset "utf-8";.wrapper{width:570px;_width:575px;margin:10px auto;zoom:1;position:relative}.tabbody{height:355px}.tabbody .panel{position:absolute;width:0;height:0;background:#fff;overflow:hidden;display:none}.tabbody .panel.focus{width:100%;height:355px;display:block}.tabbody .panel table td{vertical-align:middle}#videoUrl{width:380px;height:26px;line-height:26px;margin:8px 5px;background:#FFF;border:1px solid #F2F2F2;outline:0;border-radius:3px;padding:0 5px}#videoSelect{width:100px;display:inline-block;background:#FFF;border:1px solid #EEE;line-height:26px;text-align:center;color:#333;text-decoration:none;border-radius:3px;vertical-align:middle}#videoSearchTxt{margin-left:15px;background:#FFF;width:200px;height:21px;line-height:21px;border:1px solid #F2F2F2}#searchList{width:570px;overflow:auto;zoom:1;height:270px}#searchList div{float:left;width:120px;height:135px;margin:5px 15px}#searchList img{margin:2px 8px;cursor:pointer;border:2px solid #fff}#searchList p{margin-left:10px}#videoType{width:65px;height:23px;line-height:22px;border:1px solid #F2F2F2}#videoSearchBtn,#videoSearchReset{height:25px;line-height:25px;background:#eee;border:1px solid #F2F2F2;cursor:pointer;padding:0 5px}#preview{position:relative;width:420px;padding:0;overflow:hidden;margin-left:10px;_margin-left:5px;height:280px;background-color:#ddd;float:left}#preview .previewMsg{position:absolute;top:0;margin:0;padding:0;height:280px;width:100%;background-color:#666}#preview .previewMsg span{display:block;margin:125px auto 0;text-align:center;font-size:18px;color:#fff}#preview .previewVideo{position:absolute;top:0;margin:0;padding:0;height:280px;width:100%}.edui-video-wrapper fieldset{border:1px solid #ddd;padding-left:5px;margin-bottom:20px;padding-bottom:5px;width:115px}#videoInfo{width:120px;float:left;margin-left:10px;_margin-left:7px}fieldset{border:1px solid #ddd;padding-left:5px;margin-bottom:20px;padding-bottom:5px;width:115px}fieldset legend{font-weight:700}fieldset p{line-height:30px}fieldset input.txt{width:65px;height:21px;line-height:21px;margin:8px 5px;background:#FFF;border:1px solid #F2F2F2}label.url{font-weight:700;margin-left:5px}#videoFloat div{cursor:pointer;opacity:.5;filter:alpha(opacity=50);margin:9px;_margin:5px;width:38px;height:36px;float:left}#videoFloat .focus{opacity:1;filter:alpha(opacity=100)}span.view{display:inline-block;width:30px;float:right;cursor:pointer;color:#00f}.tabbody #upload.panel{width:0;height:0;overflow:hidden;position:absolute!important;clip:rect(1px,1px,1px,1px);background:#fff;display:block}.tabbody #upload.panel.focus{width:100%;height:335px;display:block;clip:auto}#upload_alignment div{cursor:pointer;opacity:.5;filter:alpha(opacity=50);margin:9px;_margin:5px;width:38px;height:36px;float:left}#upload_alignment .focus{opacity:1;filter:alpha(opacity=100)}#upload_left{width:427px;float:left}#upload_left .controller{height:30px;clear:both}#uploadVideoInfo{margin-top:10px;float:right;padding-right:8px}#upload .queueList{margin:0}#upload p{margin:0}.element-invisible{width:0!important;height:0!important;border:0;padding:0;margin:0;overflow:hidden;position:absolute!important;clip:rect(1px,1px,1px,1px)}#upload .placeholder{margin:10px;margin-right:0;border:2px dashed #e6e6e6;*border:0 dashed #e6e6e6;height:161px;padding-top:150px;text-align:center;width:97%;float:left;background:url(./images/image.png) center 70px no-repeat;color:#ccc;font-size:18px;position:relative;top:0;*margin-left:0;*left:10px}#upload .placeholder .webuploader-pick{font-size:18px;background:#00b7ee;border-radius:3px;line-height:44px;padding:0 30px;*width:120px;color:#fff;display:inline-block;margin:0 auto 20px;cursor:pointer;box-shadow:0 1px 1px rgba(0,0,0,.1)}#upload .placeholder .webuploader-pick-hover{background:#00a2d4}#filePickerContainer{text-align:center}#upload .placeholder .flashTip{color:#666;font-size:12px;position:absolute;width:100%;text-align:center;bottom:20px}#upload .placeholder .flashTip a{color:#0785d1;text-decoration:none}#upload .placeholder .flashTip a:hover{text-decoration:underline}#upload .placeholder.webuploader-dnd-over{border-color:#999}#upload .filelist{list-style:none;margin:0;padding:0;overflow-x:hidden;overflow-y:auto;position:relative;height:285px}#upload .filelist:after{content:'';display:block;width:0;height:0;overflow:hidden;clear:both}#upload .filelist li{width:113px;height:113px;background:url(./images/bg.png);text-align:center;margin:15px 0 0 20px;*margin:15px 0 0 15px;position:relative;display:block;float:left;overflow:hidden;font-size:12px}#upload .filelist li p.log{position:relative;top:-45px}#upload .filelist li p.title{position:absolute;top:0;left:0;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;top:5px;text-indent:5px;text-align:left}#upload .filelist li p.progress{position:absolute;width:100%;bottom:0;left:0;height:8px;overflow:hidden;z-index:50;margin:0;border-radius:0;background:0 0;-webkit-box-shadow:0 0 0}#upload .filelist li p.progress span{display:none;overflow:hidden;width:0;height:100%;background:#1483d8 url(./images/progress.png) repeat-x;-webit-transition:width 200ms linear;-moz-transition:width 200ms linear;-o-transition:width 200ms linear;-ms-transition:width 200ms linear;transition:width 200ms linear;-webkit-animation:progressmove 2s linear infinite;-moz-animation:progressmove 2s linear infinite;-o-animation:progressmove 2s linear infinite;-ms-animation:progressmove 2s linear infinite;animation:progressmove 2s linear infinite;-webkit-transform:translateZ(0)}@-webkit-keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}@-moz-keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}@keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}#upload .filelist li p.imgWrap{position:relative;z-index:2;line-height:113px;vertical-align:middle;overflow:hidden;width:113px;height:113px;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-o-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;-webit-transition:200ms ease-out;-moz-transition:200ms ease-out;-o-transition:200ms ease-out;-ms-transition:200ms ease-out;transition:200ms ease-out}#upload .filelist li p.imgWrap.notimage{margin-top:0;width:111px;height:111px;border:1px #eee solid}#upload .filelist li p.imgWrap.notimage i.file-preview{margin-top:15px}#upload .filelist li img{width:100%}#upload .filelist li p.error{background:#f43838;color:#fff;position:absolute;bottom:0;left:0;height:28px;line-height:28px;width:100%;z-index:100;display:none}#upload .filelist li .success{display:block;position:absolute;left:0;bottom:0;height:40px;width:100%;z-index:200;background:url(./images/success.png) no-repeat right bottom;background-image:url(./images/success.gif) \9}#upload .filelist li.filePickerBlock{width:113px;height:113px;background:url(./images/image.png) no-repeat center 12px;border:1px solid #eee;border-radius:0}#upload .filelist li.filePickerBlock div.webuploader-pick{width:100%;height:100%;margin:0;padding:0;opacity:0;background:0 0;font-size:0}#upload .filelist div.file-panel{position:absolute;height:0;filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;background:rgba(0,0,0,.5);width:100%;top:0;left:0;overflow:hidden;z-index:300}#upload .filelist div.file-panel span{width:24px;height:24px;display:inline;float:right;text-indent:-9999px;overflow:hidden;background:url(./images/icons.png) no-repeat;background:url(./images/icons.gif) no-repeat \9;margin:5px 1px 1px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#upload .filelist div.file-panel span.rotateLeft{display:none;background-position:0 -24px}#upload .filelist div.file-panel span.rotateLeft:hover{background-position:0 0}#upload .filelist div.file-panel span.rotateRight{display:none;background-position:-24px -24px}#upload .filelist div.file-panel span.rotateRight:hover{background-position:-24px 0}#upload .filelist div.file-panel span.cancel{background-position:-48px -24px}#upload .filelist div.file-panel span.cancel:hover{background-position:-48px 0}#upload .statusBar{height:45px;border-bottom:1px solid #dadada;margin:0 10px;padding:0;line-height:45px;vertical-align:middle;position:relative}#upload .statusBar .progress{border:1px solid #1483d8;width:198px;background:#fff;height:18px;position:absolute;top:12px;display:none;text-align:center;line-height:18px;color:#6dbfff;margin:0 10px 0 0}#upload .statusBar .progress span.percentage{width:0;height:100%;left:0;top:0;background:#1483d8;position:absolute}#upload .statusBar .progress span.text{position:relative;z-index:10}#upload .statusBar .info{display:inline-block;font-size:14px;color:#666}#upload .statusBar .btns{position:absolute;top:7px;right:0;line-height:30px}#filePickerBtn{display:inline-block;float:left}#upload .statusBar .btns .webuploader-pick,#upload .statusBar .btns .uploadBtn,#upload .statusBar .btns .uploadBtn.state-uploading,#upload .statusBar .btns .uploadBtn.state-paused{background:#fff;border:1px solid #cfcfcf;color:#565656;padding:0 18px;display:inline-block;border-radius:3px;margin-left:10px;cursor:pointer;font-size:14px;float:left;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#upload .statusBar .btns .webuploader-pick-hover,#upload .statusBar .btns .uploadBtn:hover,#upload .statusBar .btns .uploadBtn.state-uploading:hover,#upload .statusBar .btns .uploadBtn.state-paused:hover{background:#f0f0f0}#upload .statusBar .btns .uploadBtn,#upload .statusBar .btns .uploadBtn.state-paused{background:#00b7ee;color:#fff;border-color:transparent}#upload .statusBar .btns .uploadBtn:hover,#upload .statusBar .btns .uploadBtn.state-paused:hover{background:#00a2d4}#upload .statusBar .btns .uploadBtn.disabled{pointer-events:none;filter:alpha(opacity=60);-moz-opacity:.6;-khtml-opacity:.6;opacity:.6}i.file-preview{display:block;margin:10px auto;width:70px;height:70px;background-image:url(./images/file-icons.png);background-image:url(./images/file-icons.gif) \9;background-position:-140px center;background-repeat:no-repeat}i.file-preview.file-type-dir{background-position:0 center}i.file-preview.file-type-file{background-position:-140px center}i.file-preview.file-type-filelist{background-position:-210px center}i.file-preview.file-type-zip,i.file-preview.file-type-rar,i.file-preview.file-type-7z,i.file-preview.file-type-tar,i.file-preview.file-type-gz,i.file-preview.file-type-bz2{background-position:-280px center}i.file-preview.file-type-xls,i.file-preview.file-type-xlsx{background-position:-350px center}i.file-preview.file-type-doc,i.file-preview.file-type-docx{background-position:-420px center}i.file-preview.file-type-ppt,i.file-preview.file-type-pptx{background-position:-490px center}i.file-preview.file-type-vsd{background-position:-560px center}i.file-preview.file-type-pdf{background-position:-630px center}i.file-preview.file-type-txt,i.file-preview.file-type-md,i.file-preview.file-type-json,i.file-preview.file-type-htm,i.file-preview.file-type-xml,i.file-preview.file-type-html,i.file-preview.file-type-js,i.file-preview.file-type-css,i.file-preview.file-type-php,i.file-preview.file-type-jsp,i.file-preview.file-type-asp{background-position:-700px center}i.file-preview.file-type-apk{background-position:-770px center}i.file-preview.file-type-exe{background-position:-840px center}i.file-preview.file-type-ipa{background-position:-910px center}i.file-preview.file-type-mp4,i.file-preview.file-type-swf,i.file-preview.file-type-mkv,i.file-preview.file-type-avi,i.file-preview.file-type-flv,i.file-preview.file-type-mov,i.file-preview.file-type-mpg,i.file-preview.file-type-mpeg,i.file-preview.file-type-ogv,i.file-preview.file-type-webm,i.file-preview.file-type-rm,i.file-preview.file-type-rmvb{background-position:-980px center}i.file-preview.file-type-ogg,i.file-preview.file-type-wav,i.file-preview.file-type-wmv,i.file-preview.file-type-mid,i.file-preview.file-type-mp3{background-position:-1050px center}i.file-preview.file-type-jpg,i.file-preview.file-type-jpeg,i.file-preview.file-type-gif,i.file-preview.file-type-bmp,i.file-preview.file-type-png,i.file-preview.file-type-psd{background-position:-140px center} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/video/video.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/video.html new file mode 100644 index 0000000..d41e1ca --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/video.html @@ -0,0 +1,109 @@ + + + + + + + + + +
    +
    +
    + + +
    +
    +
    + + + + + +
    +
    + 外链视频支持:优酷、腾讯视频、哔哩哔哩 +
    +
    +
    +
    + + + + + + + + + + +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + 0% + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + + +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/video/video.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/video.js new file mode 100644 index 0000000..2ce6cf2 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/video/video.js @@ -0,0 +1,863 @@ +/** + * Created by JetBrains PhpStorm. + * User: taoqili + * Date: 12-2-20 + * Time: 上午11:19 + * To change this template use File | Settings | File Templates. + */ + +(function () { + + var video = {}, + uploadVideoList = [], + isModifyUploadVideo = false, + uploadFile; + var editorOpt = {}; + + window.onload = function () { + editorOpt = editor.getOpt('videoConfig'); + $focus($G("videoUrl")); + initTabs(); + initVideo(); + initUpload(); + }; + + /* 初始化tab标签 */ + function initTabs() { + var tabs = $G('tabHeads').children; + for (var i = 0; i < tabs.length; i++) { + domUtils.on(tabs[i], "click", function (e) { + var j, bodyId, target = e.target || e.srcElement; + for (j = 0; j < tabs.length; j++) { + bodyId = tabs[j].getAttribute('data-content-id'); + if (tabs[j] == target) { + domUtils.addClass(tabs[j], 'focus'); + domUtils.addClass($G(bodyId), 'focus'); + } else { + domUtils.removeClasses(tabs[j], 'focus'); + domUtils.removeClasses($G(bodyId), 'focus'); + } + } + }); + } + if (!editorOpt.disableUpload) { + $G('tabHeads').querySelector('[data-content-id="upload"]').style.display = 'inline-block'; + } + if (!!editorOpt.selectCallback) { + $G('videoSelect').style.display = 'inline-block'; + domUtils.on($G('videoSelect'), "click", function (e) { + editorOpt.selectCallback(editor, function (info) { + if (info) { + $G('videoUrl').value = info.path; + createPreviewVideo(info.path); + } + }); + }); + } + } + + function initVideo() { + createAlignButton(["videoFloat", "upload_alignment"]); + addUrlChangeListener($G("videoUrl")); + addOkListener(); + + //编辑视频时初始化相关信息 + (function () { + var img = editor.selection.getRange().getClosedNode(), url; + if (img && img.className) { + var hasFakedClass = (img.className == "edui-faked-video"), + hasUploadClass = img.className.indexOf("edui-upload-video") != -1; + if (hasFakedClass || hasUploadClass) { + $G("videoUrl").value = url = img.getAttribute("_url"); + $G("videoWidth").value = img.width; + $G("videoHeight").value = img.height; + var align = domUtils.getComputedStyle(img, "float"), + parentAlign = domUtils.getComputedStyle(img.parentNode, "text-align"); + updateAlignButton(parentAlign === "center" ? "center" : align); + } + if (hasUploadClass) { + isModifyUploadVideo = true; + } + } + createPreviewVideo(url); + })(); + } + + /** + * 监听确认和取消两个按钮事件,用户执行插入或者清空正在播放的视频实例操作 + */ + function addOkListener() { + dialog.onok = function () { + $G("preview").innerHTML = ""; + var currentTab = findFocus("tabHeads", "tabSrc"); + switch (currentTab) { + case "video": + return insertSingle(); + break; + case "videoSearch": + return insertSearch("searchList"); + break; + case "upload": + return insertUpload(); + break; + } + }; + dialog.oncancel = function () { + $G("preview").innerHTML = ""; + }; + } + + /** + * 依据传入的align值更新按钮信息 + * @param align + */ + function updateAlignButton(align) { + var aligns = $G("videoFloat").children; + for (var i = 0, ci; ci = aligns[i++];) { + if (ci.getAttribute("name") == align) { + if (ci.className != "focus") { + ci.className = "focus"; + } + } else { + if (ci.className == "focus") { + ci.className = ""; + } + } + } + } + + /** + * 将单个视频信息插入编辑器中 + */ + function insertSingle() { + var width = $G("videoWidth"), + height = $G("videoHeight"), + url = $G('videoUrl').value, + align = findFocus("videoFloat", "name"); + if (!url) return false; + if (!checkNum([width, height])) return false; + editor.execCommand('insertvideo', { + url: convert_url(url), + width: width.value, + height: height.value, + align: align + }, isModifyUploadVideo ? 'upload' : null); + } + + /** + * 将元素id下的所有代表视频的图片插入编辑器中 + * @param id + */ + function insertSearch(id) { + var imgs = domUtils.getElementsByTagName($G(id), "img"), + videoObjs = []; + for (var i = 0, img; img = imgs[i++];) { + if (img.getAttribute("selected")) { + videoObjs.push({ + url: img.getAttribute("ue_video_url"), + width: 420, + height: 280, + align: "none" + }); + } + } + editor.execCommand('insertvideo', videoObjs); + } + + /** + * 找到id下具有focus类的节点并返回该节点下的某个属性 + * @param id + * @param returnProperty + */ + function findFocus(id, returnProperty) { + var tabs = $G(id).children, + property; + for (var i = 0, ci; ci = tabs[i++];) { + if (ci.className == "focus") { + property = ci.getAttribute(returnProperty); + break; + } + } + return property; + } + + function convert_url(url) { + if (!url) return ''; + url = utils.trim(url) + .replace(/v\.youku\.com\/v_show\/id_([\w\-=]+)\.html/i, 'player.youku.com/embed/$1') + // .replace(/(www\.)?youtube\.com\/watch\?v=([\w\-]+)/i, "www.youtube.com/v/$2") + // .replace(/youtu.be\/(\w+)$/i, "www.youtube.com/v/$1") + //.replace(/www\.iqiyi\.com\/v_(\w+)\.html/i, "www.youtube.com/v/$1") + // .replace(/v\.ku6\.com\/.+\/([\w\.]+)\.html.*$/i, "player.ku6.com/refer/$1/v.swf") + // .replace(/www\.56\.com\/u\d+\/v_([\w\-]+)\.html/i, "player.56.com/v_$1.swf") + // .replace(/www.56.com\/w\d+\/play_album\-aid\-\d+_vid\-([^.]+)\.html/i, "player.56.com/v_$1.swf") + // .replace(/v\.pps\.tv\/play_([\w]+)\.html.*$/i, "player.pps.tv/player/sid/$1/v.swf") + // .replace(/www\.letv\.com\/ptv\/vplay\/([\d]+)\.html.*$/i, "i7.imgs.letv.com/player/swfPlayer.swf?id=$1&autoplay=0") + // .replace(/www\.tudou\.com\/programs\/view\/([\w\-]+)\/?/i, "www.tudou.com/v/$1") + // https://v.qq.com/x/cover/wagzbx91asjomnu/w05337nxfof.html + // https://v.qq.com/iframe/player.html?vid=w05337nxfof&tiny=0&auto=0 + .replace(/v\.qq\.com\/x\/cover\/[\w]+\/([\w]+)\.html/i, "v.qq.com/iframe/player.html?vid=$1&tiny=0&auto=0") + .replace(/v\.qq\.com\/x\/page\/([\w]+)\.html/i, "v.qq.com/iframe/player.html?vid=$1&tiny=0&auto=0") + .replace(/www\.bilibili\.com\/video\/([a-zA-Z0-9]+)\/?.*$/i, "player.bilibili.com/player.html?bvid=$1") + // .replace(/v\.qq\.com\/cover\/[\w]+\/[\w]+\/([\w]+)\.html/i, "static.video.qq.com/TPout.swf?vid=$1") + // .replace(/v\.qq\.com\/.+[\?\&]vid=([^&]+).*$/i, "static.video.qq.com/TPout.swf?vid=$1") + // .replace(/my\.tv\.sohu\.com\/[\w]+\/[\d]+\/([\d]+)\.shtml.*$/i, "share.vrs.sohu.com/my/v.swf&id=$1") + ; + return url; + } + + /** + * 检测传入的所有input框中输入的长宽是否是正数 + * @param nodes input框集合, + */ + function checkNum(nodes) { + for (var i = 0, ci; ci = nodes[i++];) { + var value = ci.value; + if (!isNumber(value) && value) { + alert(lang.numError); + ci.value = ""; + ci.focus(); + return false; + } + } + return true; + } + + /** + * 数字判断 + * @param value + */ + function isNumber(value) { + return /(0|^[1-9]\d*$)/.test(value); + } + + /** + * 创建图片浮动选择按钮 + * @param ids + */ + function createAlignButton(ids) { + for (var i = 0, ci; ci = ids[i++];) { + var floatContainer = $G(ci), + nameMaps = { + "none": lang['default'], + "left": lang.floatLeft, + "right": lang.floatRight, + "center": lang.block + }; + for (var j in nameMaps) { + var div = document.createElement("div"); + div.setAttribute("name", j); + if (j == "none") div.className = "focus"; + div.style.cssText = "background:url(images/" + j + "_focus.jpg);"; + div.setAttribute("title", nameMaps[j]); + floatContainer.appendChild(div); + } + switchSelect(ci); + } + } + + /** + * 选择切换 + * @param selectParentId + */ + function switchSelect(selectParentId) { + var selects = $G(selectParentId).children; + for (var i = 0, ci; ci = selects[i++];) { + domUtils.on(ci, "click", function () { + for (var j = 0, cj; cj = selects[j++];) { + cj.className = ""; + cj.removeAttribute && cj.removeAttribute("class"); + } + this.className = "focus"; + }) + } + } + + /** + * 监听url改变事件 + * @param url + */ + function addUrlChangeListener(url) { + if (browser.ie) { + url.onpropertychange = function () { + createPreviewVideo(this.value); + } + } else { + url.addEventListener("input", function () { + createPreviewVideo(this.value); + }, false); + } + } + + /** + * 根据url生成视频预览 + * @param url + */ + function createPreviewVideo(url) { + if (!url) return; + + var conUrl = convert_url(url); + + conUrl = utils.unhtml(conUrl); + + // $G("preview").innerHTML = '
    '+lang.urlError+'
    '+ + // '' + + // ''; + + $G("preview").innerHTML = '
    ' + lang.urlError + '
    ' + + ''; + } + + + /* 插入上传视频 */ + function insertUpload() { + var videoObjs = [], + uploadDir = editor.getOpt('videoUrlPrefix'), + width = $G('upload_width').value || 420, + height = $G('upload_height').value || 280, + align = findFocus("upload_alignment", "name") || 'none'; + for (var key in uploadVideoList) { + var file = uploadVideoList[key]; + videoObjs.push({ + url: uploadDir + file.url, + width: width, + height: height, + align: align + }); + } + + var count = uploadFile.getQueueCount(); + if (count) { + $('.info', '#queueList').html('' + '还有2个未上传文件'.replace(/[\d]/, count) + ''); + return false; + } else { + editor.execCommand('insertvideo', videoObjs, 'upload'); + } + } + + /*初始化上传标签*/ + function initUpload() { + uploadFile = new UploadFile('queueList'); + } + + + /* 上传附件 */ + function UploadFile(target) { + this.$wrap = target.constructor == String ? $('#' + target) : $(target); + this.init(); + } + + UploadFile.prototype = { + init: function () { + this.fileList = []; + this.initContainer(); + this.initUploader(); + }, + initContainer: function () { + this.$queue = this.$wrap.find('.filelist'); + }, + /* 初始化容器 */ + initUploader: function () { + var _this = this, + $ = jQuery, // just in case. Make sure it's not an other libaray. + $wrap = _this.$wrap, + // 图片容器 + $queue = $wrap.find('.filelist'), + // 状态栏,包括进度和控制按钮 + $statusBar = $wrap.find('.statusBar'), + // 文件总体选择信息。 + $info = $statusBar.find('.info'), + // 上传按钮 + $upload = $wrap.find('.uploadBtn'), + // 上传按钮 + $filePickerBtn = $wrap.find('.filePickerBtn'), + // 上传按钮 + $filePickerBlock = $wrap.find('.filePickerBlock'), + // 没选择文件之前的内容。 + $placeHolder = $wrap.find('.placeholder'), + // 总体进度条 + $progress = $statusBar.find('.progress').hide(), + // 添加的文件数量 + fileCount = 0, + // 添加的文件总大小 + fileSize = 0, + // 优化retina, 在retina下这个值是2 + ratio = window.devicePixelRatio || 1, + // 缩略图大小 + thumbnailWidth = 113 * ratio, + thumbnailHeight = 113 * ratio, + // 可能有pedding, ready, uploading, confirm, done. + state = '', + // 所有文件的进度信息,key为file id + percentages = {}, + supportTransition = (function () { + var s = document.createElement('p').style, + r = 'transition' in s || + 'WebkitTransition' in s || + 'MozTransition' in s || + 'msTransition' in s || + 'OTransition' in s; + s = null; + return r; + })(), + // WebUploader实例 + uploader, + actionUrl = editor.getActionUrl(editor.getOpt('videoActionName')), + fileMaxSize = editor.getOpt('videoMaxSize'), + acceptExtensions = (editor.getOpt('videoAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, ''); + ; + + if (!WebUploader.Uploader.support()) { + $('#filePickerReady').after($('
    ').html(lang.errorNotSupport)).hide(); + return; + } else if (!editor.getOpt('videoActionName')) { + $('#filePickerReady').after($('
    ').html(lang.errorLoadConfig)).hide(); + return; + } + + var uploaderOption = { + pick: { + id: '#filePickerReady', + label: lang.uploadSelectFile + }, + swf: '../../third-party/webuploader/Uploader.swf', + server: actionUrl, + fileVal: editor.getOpt('videoFieldName'), + duplicate: true, + fileSingleSizeLimit: fileMaxSize, + headers: editor.getOpt('serverHeaders') || {}, + compress: false + }; + if(editor.getOpt('uploadServiceEnable')) { + uploaderOption.customUpload = function (file, callback) { + editor.getOpt('uploadServiceUpload')('video', file, { + success: function( res ) { + callback.onSuccess(file, {_raw:JSON.stringify(res)}); + }, + error: function( err ) { + callback.onError(file, err); + }, + progress: function( percent ) { + callback.onProgress(file, percent); + } + }, { + from: 'video' + }); + }; + } + + uploader = _this.uploader = WebUploader.create(uploaderOption); + uploader.addButton({ + id: '#filePickerBlock' + }); + uploader.addButton({ + id: '#filePickerBtn', + label: lang.uploadAddFile + }); + + setState('pedding'); + + // 当有文件添加进来时执行,负责view的创建 + function addFile(file) { + var $li = $('
  • ' + + '

    ' + file.name + '

    ' + + '

    ' + + '

    ' + + '
  • '), + + $btns = $('
    ' + + '' + lang.uploadDelete + '' + + '' + lang.uploadTurnRight + '' + + '' + lang.uploadTurnLeft + '
    ').appendTo($li), + $prgress = $li.find('p.progress span'), + $wrap = $li.find('p.imgWrap'), + $info = $('

    ').hide().appendTo($li), + + showError = function (code) { + switch (code) { + case 'exceed_size': + text = lang.errorExceedSize; + break; + case 'interrupt': + text = lang.errorInterrupt; + break; + case 'http': + text = lang.errorHttp; + break; + case 'not_allow_type': + text = lang.errorFileType; + break; + default: + text = lang.errorUploadRetry; + break; + } + $info.text(text).show(); + }; + + if (file.getStatus() === 'invalid') { + showError(file.statusText); + } else { + $wrap.text(lang.uploadPreview); + if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|' + file.ext.toLowerCase() + '|') == -1) { + $wrap.empty().addClass('notimage').append('' + + '' + file.name + ''); + } else { + if (browser.ie && browser.version <= 7) { + $wrap.text(lang.uploadNoPreview); + } else { + uploader.makeThumb(file, function (error, src) { + if (error || !src || (/^data:/.test(src) && browser.ie && browser.version <= 7)) { + $wrap.text(lang.uploadNoPreview); + } else { + var $img = $(''); + $wrap.empty().append($img); + $img.on('error', function () { + $wrap.text(lang.uploadNoPreview); + }); + } + }, thumbnailWidth, thumbnailHeight); + } + } + percentages[file.id] = [file.size, 0]; + file.rotation = 0; + + /* 检查文件格式 */ + if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) { + showError('not_allow_type'); + uploader.removeFile(file); + } + } + + file.on('statuschange', function (cur, prev) { + if (prev === 'progress') { + $prgress.hide().width(0); + } else if (prev === 'queued') { + $li.off('mouseenter mouseleave'); + $btns.remove(); + } + // 成功 + if (cur === 'error' || cur === 'invalid') { + showError(file.statusText); + percentages[file.id][1] = 1; + } else if (cur === 'interrupt') { + showError('interrupt'); + } else if (cur === 'queued') { + percentages[file.id][1] = 0; + } else if (cur === 'progress') { + $info.hide(); + $prgress.css('display', 'block'); + } else if (cur === 'complete') { + } + + $li.removeClass('state-' + prev).addClass('state-' + cur); + }); + + $li.on('mouseenter', function () { + $btns.stop().animate({height: 30}); + }); + $li.on('mouseleave', function () { + $btns.stop().animate({height: 0}); + }); + + $btns.on('click', 'span', function () { + var index = $(this).index(), + deg; + + switch (index) { + case 0: + uploader.removeFile(file); + return; + case 1: + file.rotation += 90; + break; + case 2: + file.rotation -= 90; + break; + } + + if (supportTransition) { + deg = 'rotate(' + file.rotation + 'deg)'; + $wrap.css({ + '-webkit-transform': deg, + '-mos-transform': deg, + '-o-transform': deg, + 'transform': deg + }); + } else { + $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')'); + } + + }); + + $li.insertBefore($filePickerBlock); + } + + // 负责view的销毁 + function removeFile(file) { + var $li = $('#' + file.id); + delete percentages[file.id]; + updateTotalProgress(); + $li.off().find('.file-panel').off().end().remove(); + } + + function updateTotalProgress() { + var loaded = 0, + total = 0, + spans = $progress.children(), + percent; + + $.each(percentages, function (k, v) { + total += v[0]; + loaded += v[0] * v[1]; + }); + + percent = total ? loaded / total : 0; + + spans.eq(0).text(Math.round(percent * 100) + '%'); + spans.eq(1).css('width', Math.round(percent * 100) + '%'); + updateStatus(); + } + + function setState(val, files) { + + if (val != state) { + + var stats = uploader.getStats(); + + $upload.removeClass('state-' + state); + $upload.addClass('state-' + val); + + switch (val) { + + /* 未选择文件 */ + case 'pedding': + $queue.addClass('element-invisible'); + $statusBar.addClass('element-invisible'); + $placeHolder.removeClass('element-invisible'); + $progress.hide(); + $info.hide(); + uploader.refresh(); + break; + + /* 可以开始上传 */ + case 'ready': + $placeHolder.addClass('element-invisible'); + $queue.removeClass('element-invisible'); + $statusBar.removeClass('element-invisible'); + $progress.hide(); + $info.show(); + $upload.text(lang.uploadStart); + uploader.refresh(); + break; + + /* 上传中 */ + case 'uploading': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadPause); + break; + + /* 暂停上传 */ + case 'paused': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadContinue); + break; + + case 'confirm': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadStart); + + stats = uploader.getStats(); + if (stats.successNum && !stats.uploadFailNum) { + setState('finish'); + return; + } + break; + + case 'finish': + $progress.hide(); + $info.show(); + if (stats.uploadFailNum) { + $upload.text(lang.uploadRetry); + } else { + $upload.text(lang.uploadStart); + } + break; + } + + state = val; + updateStatus(); + + } + + if (!_this.getQueueCount()) { + $upload.addClass('disabled') + } else { + $upload.removeClass('disabled') + } + + } + + function updateStatus() { + var text = '', stats; + + if (state === 'ready') { + text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)); + } else if (state === 'confirm') { + stats = uploader.getStats(); + if (stats.uploadFailNum) { + text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum); + } + } else { + stats = uploader.getStats(); + text = lang.updateStatusFinish.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)).replace('_', stats.successNum); + + if (stats.uploadFailNum) { + text += lang.updateStatusError.replace('_', stats.uploadFailNum); + } + } + + $info.html(text); + } + + uploader.on('fileQueued', function (file) { + fileCount++; + fileSize += file.size; + + if (fileCount === 1) { + $placeHolder.addClass('element-invisible'); + $statusBar.show(); + } + + addFile(file); + }); + + uploader.on('fileDequeued', function (file) { + fileCount--; + fileSize -= file.size; + + removeFile(file); + updateTotalProgress(); + }); + + uploader.on('filesQueued', function (file) { + if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) { + setState('ready'); + } + updateTotalProgress(); + }); + + uploader.on('all', function (type, files) { + switch (type) { + case 'uploadFinished': + setState('confirm', files); + break; + case 'startUpload': + /* 添加额外的GET参数 */ + var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', + url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?' : '&') + 'encode=utf-8&' + params); + uploader.option('server', url); + setState('uploading', files); + break; + case 'stopUpload': + setState('paused', files); + break; + } + }); + + uploader.on('uploadBeforeSend', function (file, data, header) { + //这里可以通过data对象添加POST参数 + if (actionUrl.toLowerCase().indexOf('jsp') != -1) { + header['X_Requested_With'] = 'XMLHttpRequest'; + } + }); + + uploader.on('uploadProgress', function (file, percentage) { + var $li = $('#' + file.id), + $percent = $li.find('.progress span'); + + $percent.css('width', percentage * 100 + '%'); + percentages[file.id][1] = percentage; + updateTotalProgress(); + }); + + uploader.on('uploadSuccess', function (file, ret) { + var $file = $('#' + file.id); + try { + var responseText = (ret._raw || ret), + json = utils.str2json(responseText); + json = editor.getOpt('serverResponsePrepare')(json); + if (json.state == 'SUCCESS') { + uploadVideoList.push({ + 'url': json.url, + 'type': json.type, + 'original': json.original + }); + $file.append(''); + // 触发上传视频事件 + editor.fireEvent("uploadsuccess", { + res: json, + type: 'video' + }); + } else { + $file.find('.error').text(json.state).show(); + } + } catch (e) { + $file.find('.error').text(lang.errorServerUpload).show(); + } + }); + + uploader.on('uploadError', function (file, code) { + }); + uploader.on('error', function (code, param1, param2) { + if (code === 'F_EXCEED_SIZE') { + editor.getOpt('tipError')(lang.errorExceedSize + ' ' + (param1 / 1024 / 1024).toFixed(1) + 'MB'); + } else { + console.log('error', code, param1, param2); + } + }); + uploader.on('uploadComplete', function (file, ret) { + }); + + $upload.on('click', function () { + if ($(this).hasClass('disabled')) { + return false; + } + + if (state === 'ready') { + uploader.upload(); + } else if (state === 'paused') { + uploader.upload(); + } else if (state === 'uploading') { + uploader.stop(); + } + }); + + $upload.addClass('state-' + state); + updateTotalProgress(); + }, + getQueueCount: function () { + var file, i, status, readyFile = 0, files = this.uploader.getFiles(); + for (i = 0; file = files[i++];) { + status = file.getStatus(); + if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++; + } + return readyFile; + }, + refresh: function () { + this.uploader.refresh(); + } + }; + +})(); diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/wordimage/wordimage.html b/ruoyi-ui/public/static/UEditorPlus/dialogs/wordimage/wordimage.html new file mode 100644 index 0000000..c64a7b7 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/wordimage/wordimage.html @@ -0,0 +1,222 @@ + + + + + + + + + +
    +
    +
    + +
    +
    +
    复制路径
    +
    +
    +
    +
    本地选择保存
    + +
    +
    +
    +
    +
    +
    + Windows使用教程 +
    +
    +

    1、点击复制地址按钮

    +

    2、点击本地选择文件,粘贴剪切板的路径到文件选择路径

    +

    3、点击确定

    +
    +
    + Mac使用教程 +
    +
    +

    1、点击复制地址按钮

    +

    2、点击本地选择文件,按快捷 Command+Shift+G ,粘贴剪切板的路径到文件选择路径

    +

    3、点击确定

    +
    +
    +
    + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dialogs/wordimage/wordimage.js b/ruoyi-ui/public/static/UEditorPlus/dialogs/wordimage/wordimage.js new file mode 100644 index 0000000..39dacd2 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dialogs/wordimage/wordimage.js @@ -0,0 +1,93 @@ +/** + * Created by JetBrains PhpStorm. + * User: taoqili + * Date: 12-1-30 + * Time: 下午12:50 + * To change this template use File | Settings | File Templates. + */ +var wordImage = {}; +var g = $G, flashObj, flashContainer; + +wordImage.init = function (opt, callbacks) { + showLocalPath("fileUrl"); + createCopyButton("copyButton", "fileUrl"); + addUploadButtonListener(); + addOkListener(); +}; + +function addUploadButtonListener() { + g('saveFile').addEventListener('change', function () { + $('.image-tip').html('正在转存,请稍后...'); + uploader.addFile(this.files); + uploader.upload(); + }); +} + + +function addOkListener() { + dialog.onok = function () { + //console.log('imageUrls',imageUrls); + if (!imageUrls.length) return; + var urlPrefix = editor.getOpt('imageUrlPrefix'), + images = domUtils.getElementsByTagName(editor.document, "img"); + editor.fireEvent('saveScene'); + // console.log('images',images,imageUrls); + for (var i = 0, img; img = images[i++];) { + var src = img.getAttribute("data-word-image"); + if (!src) continue; + for (var j = 0, url; url = imageUrls[j++];) { + // console.log('url',src, url); + if (src.indexOf(url.name.replace(" ", "")) != -1) { + img.src = urlPrefix + url.url; + img.setAttribute("_src", urlPrefix + url.url); //同时修改"_src"属性 + img.setAttribute("title", url.title); + domUtils.removeAttributes(img, ["data-word-image", "style", "width", "height"]); + editor.fireEvent("selectionchange"); + break; + } + } + } + editor.fireEvent('saveScene'); + // hideFlash(); + }; + dialog.oncancel = function () { + //hideFlash(); + }; +} + +function showLocalPath(id) { + //单张编辑 + var img = editor.selection.getRange().getClosedNode(); + var images = editor.execCommand('wordimage'); + if (images.length == 1 || img && img.tagName == 'IMG') { + g(id).value = images[0]; + return; + } + var path = images[0]; + var leftSlashIndex = path.lastIndexOf("/") || 0, //不同版本的doc和浏览器都可能影响到这个符号,故直接判断两种 + rightSlashIndex = path.lastIndexOf("\\") || 0, + separater = leftSlashIndex > rightSlashIndex ? "/" : "\\"; + + path = path.substring(0, path.lastIndexOf(separater) + 1); + g(id).value = path; + //增提醒用户选择哪些文件 + var names = []; + for (var i = 0, len = images.length; i < len; i++) { + var img = images[i]; + names.push(img.substring(img.lastIndexOf(separater) + 1, img.length)); + } + $('.image-tip').html('请选择:' + names.join("、") + "共" + images.length + '个文件'); +} + +function createCopyButton(id, dataFrom) { + var url = g(dataFrom).value; + if (url.startsWith("file:////")) { + url = url.substring(8); + } + url = decodeURI(url); + g(id).setAttribute("data-clipboard-text", url); + var clipboard = new Clipboard('[data-clipboard-text]') + clipboard.on('success', function (e) { + g('copyButton').innerHTML = '复制成功'; + }); +} diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/ai/ai.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/ai/ai.html new file mode 100644 index 0000000..32d821b --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/ai/ai.html @@ -0,0 +1,138 @@ + + + + + + + + + + +
    + +
    +
    +
    + +
    +
    + {{ selectText }} +
    +
    +
    +
    + +
    + +
    +
    +
    + {{ resultError }} +
    +
    +
    + + 以下为生成的结果 +
    + +
    +
    +
    +
    +
    +
    +
    + + 提示:您可以在上面输入文字生成内容 或 选择下方的操作 +
    +
    + + 提示:您可以在上面输入文字生成内容 +
    +
    + + + +
    +
    +
    + +
    + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/ai/ai.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/ai/ai.js new file mode 100644 index 0000000..8c5347e --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/ai/ai.js @@ -0,0 +1 @@ +var aiConfig=editor.getOpt("ai");var aiFunctions=editor.getOpt("aiFunctions");var isMultiLine=function(text){return text.indexOf("\n")!==-1};var fetchStream=function(url,option,onStream,onFinish){fetch(url,Object.assign({method:"POST"},option)).then(response=>{if(!response.ok){onFinish({code:-1,msg:`HTTP error! status: ${response.status}`});return}const reader=response.body.getReader();const decoder=new TextDecoder("utf-8");let buffer="";const textList=[];function processChunk(chunk){buffer+=decoder.decode(chunk,{stream:true});const lines=buffer.split("\n");for(let line of lines){line=line.trim();if(line.startsWith("data:")){const jsonStr=line.replace("data:","").trim();if(jsonStr==="[DONE]"){onFinish({code:0,msg:"ok",data:{text:textList.join("")}});return}try{let text=null;const data=JSON.parse(jsonStr);if(data.choices&&data.choices.length>0&&data.choices[0].delta){text=data.choices[0].delta.content}else if(data.type){if(data.type==="error"){onFinish({code:-1,msg:data.data});return}else if(data.type==="end"){onFinish({code:0,msg:"ok",data:{text:textList.join("")}});return}else if(data.type==="data"){text=data.data}}if(text!==null){textList.push(text);onStream({code:0,msg:"ok",data:{text:text}})}else{onFinish({code:-1,msg:"No text found!"});console.log("data:",data)}}catch(e){onFinish({code:-1,msg:"JSON parse error!"+e})}}}buffer=lines.pop()||""}function read(){reader.read().then(({done,value})=>{if(done){if(buffer)processChunk(new Uint8Array);return}processChunk(value);read()}).catch(error=>{onFinish({code:-1,msg:"Stream error!"+error})})}read()}).catch(error=>{onFinish({code:-1,msg:"Request error!"+error})})};var openAiCompletion=function(url,param,option){option=Object.assign({body:null},option);if(!option.body){option.body={model:aiConfig.driverConfig.model,messages:[{role:"user",content:param.promptText}],stream:true}}fetchStream(url,{headers:{Authorization:`Bearer ${aiConfig.driverConfig.key}`,"Content-Type":"application/json"},body:JSON.stringify(option.body)},param.onStream,param.onFinish)};var drivers={ModStart:function(param){openAiCompletion(aiConfig.driverConfig.url,param,{body:{prompt:param.promptText}})},OpenAi:function(param){openAiCompletion(aiConfig.driverConfig.url||"https://api.openai.com/v1/engines/davinci/completions",param)},DeepSeek:function(param){openAiCompletion(aiConfig.driverConfig.url||"https://api.deepseek.com/chat/completions",param)}};function getRequest(driver){if(aiConfig.driverRequest){return aiConfig.driverRequest}if(driver in drivers){return drivers[driver]}return null}var converter=new window.showdown.Converter;var Ai={runtime:{range:null},init:function(){new Vue({el:"#app",data:{loading:false,selectText:"",inputText:"",promptText:"",resultText:"",resultError:"",functions:[]},mounted:function(){Ai.runtime.range=editor.selection.getRange();var cloneContents=Ai.runtime.range.cloneContents();if(cloneContents){this.selectText=cloneContents.textContent.trim()}else{this.selectText=""}this.buildFunctions()},computed:{resultHtml:function(){if(!this.resultText){return""}return converter.makeHtml(this.resultText)},resultHeight:function(){let height=255;if(this.selectText){height-=45}if(this.resultError){height-=45}return height+"px"}},methods:{buildFunctions:function(){var enableParam={selectText:this.selectText};this.functions=aiFunctions.map(function(f){if(!f.enable(enableParam)){return null}f.prompt=f.prompt.replace(/\{selectText\}/g,enableParam.selectText);return f}).filter(function(f){return!!f})},doSubmit:function(){if(this.loading){return}if(this.inputText){if(this.selectText){this.promptText=this.selectText+"\n\n"+this.inputText}else{this.promptText=this.inputText}}if(!this.promptText){editor.tipError("请输入内容");return}this.loading=true;this.resultError="";this.resultText="";var driverRequest=getRequest(aiConfig.driver);if(!driverRequest){editor.tipError("未找到驱动");return}driverRequest({promptText:this.promptText,onStream:res=>{if(res.code){this.resultError=res.msg;return}this.resultText+=res.data.text},onFinish:res=>{this.loading=false;if(res.code){this.resultError=res.msg;return}this.resultText=res.data.text}})},doSubmitFunction:function(f){this.promptText=f.prompt;this.doSubmit()},doInsert:function(){editor.fireEvent("saveScene");if(this.selectText){if(isMultiLine(this.resultText)){Ai.runtime.range.insertNode(document.createRange().createContextualFragment(this.resultHtml))}else{Ai.runtime.range.insertNode(document.createTextNode(this.resultText))}}else{if(isMultiLine(this.resultText)){editor.execCommand("insertHtml",this.resultHtml)}else{editor.execCommand("insertHtml",this.resultText)}}dialog.close(true)},doReplace:function(){editor.fireEvent("saveScene");Ai.runtime.range.deleteContents();if(isMultiLine(this.resultText)){Ai.runtime.range.insertNode(document.createRange().createContextualFragment(this.resultHtml))}else{Ai.runtime.range.insertNode(document.createTextNode(this.resultText))}dialog.close(true)}}})}};utils.domReady(function(){Ai.init()}); \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/anchor/anchor.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/anchor/anchor.html new file mode 100644 index 0000000..a8160a2 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/anchor/anchor.html @@ -0,0 +1,62 @@ + + + + + + + + +
    + +
    + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/attachment.css b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/attachment.css new file mode 100644 index 0000000..0591493 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/attachment.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +@charset "utf-8";.wrapper{zoom:1;width:630px;*width:626px;height:380px;margin:0 auto;padding:10px;position:relative;font-family:sans-serif}.tabhead{float:left}.tabbody{width:100%;height:346px;position:relative;clear:both}.tabbody .panel{position:absolute;width:0;height:0;background:#fff;overflow:hidden;display:none}.tabbody .panel.focus{width:100%;height:346px;display:block}.tabbody #upload.panel{width:0;height:0;overflow:hidden;position:absolute!important;clip:rect(1px,1px,1px,1px);background:#fff;display:block}.tabbody #upload.panel.focus{width:100%;height:346px;display:block;clip:auto}#upload .queueList{margin:0;width:100%;height:100%;position:absolute;overflow:hidden}#upload p{margin:0}.element-invisible{width:0!important;height:0!important;border:0;padding:0;margin:0;overflow:hidden;position:absolute!important;clip:rect(1px,1px,1px,1px)}#upload .placeholder{margin:10px;border:2px dashed #e6e6e6;*border:0 dashed #e6e6e6;height:172px;padding-top:150px;text-align:center;background:url(./images/image.png) center 70px no-repeat;color:#ccc;font-size:18px;position:relative;top:0;*top:10px}#upload .placeholder .webuploader-pick{font-size:18px;background:#00b7ee;border-radius:3px;line-height:44px;padding:0 30px;*width:120px;color:#fff;display:inline-block;margin:0 auto 20px;cursor:pointer;box-shadow:0 1px 1px rgba(0,0,0,.1)}#upload .placeholder .webuploader-pick-hover{background:#00a2d4}#filePickerContainer{text-align:center}#upload .placeholder .flashTip{color:#666;font-size:12px;position:absolute;width:100%;text-align:center;bottom:20px}#upload .placeholder .flashTip a{color:#0785d1;text-decoration:none}#upload .placeholder .flashTip a:hover{text-decoration:underline}#upload .placeholder.webuploader-dnd-over{border-color:#999}#upload .filelist{list-style:none;margin:0;padding:0;overflow-x:hidden;overflow-y:auto;position:relative;height:300px}#upload .filelist:after{content:'';display:block;width:0;height:0;overflow:hidden;clear:both}#upload .filelist li{width:113px;height:113px;background:url(./images/bg.png);text-align:center;margin:9px 0 0 9px;*margin:6px 0 0 6px;position:relative;display:block;float:left;overflow:hidden;font-size:12px}#upload .filelist li p.log{position:relative;top:-45px}#upload .filelist li p.title{position:absolute;top:0;left:0;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;top:5px;text-indent:5px;text-align:left}#upload .filelist li p.progress{position:absolute;width:100%;bottom:0;left:0;height:8px;overflow:hidden;z-index:50;margin:0;border-radius:0;background:0 0;-webkit-box-shadow:0 0 0}#upload .filelist li p.progress span{display:none;overflow:hidden;width:0;height:100%;background:#1483d8 url(./images/progress.png) repeat-x;-webit-transition:width 200ms linear;-moz-transition:width 200ms linear;-o-transition:width 200ms linear;-ms-transition:width 200ms linear;transition:width 200ms linear;-webkit-animation:progressmove 2s linear infinite;-moz-animation:progressmove 2s linear infinite;-o-animation:progressmove 2s linear infinite;-ms-animation:progressmove 2s linear infinite;animation:progressmove 2s linear infinite;-webkit-transform:translateZ(0)}@-webkit-keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}@-moz-keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}@keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}#upload .filelist li p.imgWrap{position:relative;z-index:2;line-height:113px;vertical-align:middle;overflow:hidden;width:113px;height:113px;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-o-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;-webit-transition:200ms ease-out;-moz-transition:200ms ease-out;-o-transition:200ms ease-out;-ms-transition:200ms ease-out;transition:200ms ease-out}#upload .filelist li p.imgWrap.notimage{margin-top:0;width:111px;height:111px;border:1px #eee solid}#upload .filelist li p.imgWrap.notimage i.file-preview{margin-top:15px}#upload .filelist li img{width:100%}#upload .filelist li p.error{background:#f43838;color:#fff;position:absolute;bottom:0;left:0;height:28px;line-height:28px;width:100%;z-index:100;display:none}#upload .filelist li .success{display:block;position:absolute;left:0;bottom:0;height:40px;width:100%;z-index:200;background:url(./images/success.png) no-repeat right bottom;background-image:url(./images/success.gif) \9}#upload .filelist li.filePickerBlock{width:113px;height:113px;background:url(./images/image.png) no-repeat center 12px;border:1px solid #eee;border-radius:0}#upload .filelist li.filePickerBlock div.webuploader-pick{width:100%;height:100%;margin:0;padding:0;opacity:0;background:0 0;font-size:0}#upload .filelist div.file-panel{position:absolute;height:0;filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;background:rgba(0,0,0,.5);width:100%;top:0;left:0;overflow:hidden;z-index:300}#upload .filelist div.file-panel span{width:24px;height:24px;display:inline;float:right;text-indent:-9999px;overflow:hidden;background:url(./images/icons.png) no-repeat;background:url(./images/icons.gif) no-repeat \9;margin:5px 1px 1px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#upload .filelist div.file-panel span.rotateLeft{display:none;background-position:0 -24px}#upload .filelist div.file-panel span.rotateLeft:hover{background-position:0 0}#upload .filelist div.file-panel span.rotateRight{display:none;background-position:-24px -24px}#upload .filelist div.file-panel span.rotateRight:hover{background-position:-24px 0}#upload .filelist div.file-panel span.cancel{background-position:-48px -24px}#upload .filelist div.file-panel span.cancel:hover{background-position:-48px 0}#upload .statusBar{height:45px;border-bottom:1px solid #dadada;margin:0 10px;padding:0;line-height:45px;vertical-align:middle;position:relative}#upload .statusBar .progress{border:1px solid #1483d8;width:198px;background:#fff;height:18px;position:absolute;top:12px;display:none;text-align:center;line-height:18px;color:#6dbfff;margin:0 10px 0 0}#upload .statusBar .progress span.percentage{width:0;height:100%;left:0;top:0;background:#1483d8;position:absolute}#upload .statusBar .progress span.text{position:relative;z-index:10}#upload .statusBar .info{display:inline-block;font-size:14px;color:#666}#upload .statusBar .btns{position:absolute;top:7px;right:0;line-height:30px}#filePickerBtn{display:inline-block;float:left}#upload .statusBar .btns .webuploader-pick,#upload .statusBar .btns .uploadBtn,#upload .statusBar .btns .uploadBtn.state-uploading,#upload .statusBar .btns .uploadBtn.state-paused{background:#fff;border:1px solid #cfcfcf;color:#565656;padding:0 18px;display:inline-block;border-radius:3px;margin-left:10px;cursor:pointer;font-size:14px;float:left;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#upload .statusBar .btns .webuploader-pick-hover,#upload .statusBar .btns .uploadBtn:hover,#upload .statusBar .btns .uploadBtn.state-uploading:hover,#upload .statusBar .btns .uploadBtn.state-paused:hover{background:#f0f0f0}#upload .statusBar .btns .uploadBtn,#upload .statusBar .btns .uploadBtn.state-paused{background:#00b7ee;color:#fff;border-color:transparent}#upload .statusBar .btns .uploadBtn:hover,#upload .statusBar .btns .uploadBtn.state-paused:hover{background:#00a2d4}#upload .statusBar .btns .uploadBtn.disabled{pointer-events:none;filter:alpha(opacity=60);-moz-opacity:.6;-khtml-opacity:.6;opacity:.6}#online{width:100%;height:336px;padding:10px 0 0}#online #fileList{width:100%;height:100%;overflow-x:hidden;overflow-y:auto;position:relative}#online ul{display:block;list-style:none;margin:0;padding:0}#online li{float:left;display:block;list-style:none;padding:0;width:113px;height:113px;margin:0 0 9px 9px;*margin:0 0 6px 6px;background-color:#eee;overflow:hidden;cursor:pointer;position:relative}#online li.clearFloat{float:none;clear:both;display:block;width:0;height:0;margin:0;padding:0}#online li img{cursor:pointer}#online li div.file-wrapper{cursor:pointer;position:absolute;display:block;width:111px;height:111px;border:1px solid #eee;background:url(./images/bg.png) repeat}#online li div span.file-title{display:block;padding:0 3px;margin:3px 0 0;font-size:12px;height:15px;color:#555;text-align:center;width:107px;white-space:nowrap;word-break:break-all;overflow:hidden;text-overflow:ellipsis}#online li .icon{cursor:pointer;width:113px;height:113px;position:absolute;top:0;left:0;z-index:2;border:0;background-repeat:no-repeat}#online li .icon:hover{width:107px;height:107px;border:3px solid #1094fa}#online li.selected .icon{background-image:url(images/success.png);background-image:url(images/success.gif) \9;background-position:75px 75px}#online li.selected .icon:hover{width:107px;height:107px;border:3px solid #1094fa;background-position:72px 72px}i.file-preview{display:block;margin:10px auto;width:70px;height:70px;background-image:url(./images/file-icons.png);background-image:url(./images/file-icons.gif) \9;background-position:-140px center;background-repeat:no-repeat}i.file-preview.file-type-dir{background-position:0 center}i.file-preview.file-type-file{background-position:-140px center}i.file-preview.file-type-filelist{background-position:-210px center}i.file-preview.file-type-zip,i.file-preview.file-type-rar,i.file-preview.file-type-7z,i.file-preview.file-type-tar,i.file-preview.file-type-gz,i.file-preview.file-type-bz2{background-position:-280px center}i.file-preview.file-type-xls,i.file-preview.file-type-xlsx{background-position:-350px center}i.file-preview.file-type-doc,i.file-preview.file-type-docx{background-position:-420px center}i.file-preview.file-type-ppt,i.file-preview.file-type-pptx{background-position:-490px center}i.file-preview.file-type-vsd{background-position:-560px center}i.file-preview.file-type-pdf{background-position:-630px center}i.file-preview.file-type-txt,i.file-preview.file-type-md,i.file-preview.file-type-json,i.file-preview.file-type-htm,i.file-preview.file-type-xml,i.file-preview.file-type-html,i.file-preview.file-type-js,i.file-preview.file-type-css,i.file-preview.file-type-php,i.file-preview.file-type-jsp,i.file-preview.file-type-asp{background-position:-700px center}i.file-preview.file-type-apk{background-position:-770px center}i.file-preview.file-type-exe{background-position:-840px center}i.file-preview.file-type-ipa{background-position:-910px center}i.file-preview.file-type-mp4,i.file-preview.file-type-swf,i.file-preview.file-type-mkv,i.file-preview.file-type-avi,i.file-preview.file-type-flv,i.file-preview.file-type-mov,i.file-preview.file-type-mpg,i.file-preview.file-type-mpeg,i.file-preview.file-type-ogv,i.file-preview.file-type-webm,i.file-preview.file-type-rm,i.file-preview.file-type-rmvb{background-position:-980px center}i.file-preview.file-type-ogg,i.file-preview.file-type-wav,i.file-preview.file-type-wmv,i.file-preview.file-type-mid,i.file-preview.file-type-mp3{background-position:-1050px center}i.file-preview.file-type-jpg,i.file-preview.file-type-jpeg,i.file-preview.file-type-gif,i.file-preview.file-type-bmp,i.file-preview.file-type-png,i.file-preview.file-type-psd{background-position:-140px center} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/attachment.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/attachment.html new file mode 100644 index 0000000..272a711 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/attachment.html @@ -0,0 +1,61 @@ + + + + + ueditor图片对话框 + + + + + + + + + + + + + + +
    +
    + + +
    +
    + +
    +
    +
    +
    + 0% + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
      +
    • +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/attachment.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/attachment.js new file mode 100644 index 0000000..10d31be --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/attachment.js @@ -0,0 +1,797 @@ +/** + * User: Jinqn + * Date: 14-04-08 + * Time: 下午16:34 + * 上传图片对话框逻辑代码,包括tab: 远程图片/上传图片/在线图片/搜索图片 + */ + +(function () { + + var uploadFile, + onlineFile; + + window.onload = function () { + initTabs(); + initButtons(); + }; + + /* 初始化tab标签 */ + function initTabs() { + var tabs = $G('tabhead').children; + for (var i = 0; i < tabs.length; i++) { + domUtils.on(tabs[i], "click", function (e) { + var target = e.target || e.srcElement; + setTabFocus(target.getAttribute('data-content-id')); + }); + } + + setTabFocus('upload'); + } + + /* 初始化tabbody */ + function setTabFocus(id) { + if (!id) return; + var i, bodyId, tabs = $G('tabhead').children; + for (i = 0; i < tabs.length; i++) { + bodyId = tabs[i].getAttribute('data-content-id') + if (bodyId == id) { + domUtils.addClass(tabs[i], 'focus'); + domUtils.addClass($G(bodyId), 'focus'); + } else { + domUtils.removeClasses(tabs[i], 'focus'); + domUtils.removeClasses($G(bodyId), 'focus'); + } + } + switch (id) { + case 'upload': + uploadFile = uploadFile || new UploadFile('queueList'); + break; + case 'online': + onlineFile = onlineFile || new OnlineFile('fileList'); + break; + } + } + + /* 初始化onok事件 */ + function initButtons() { + + dialog.onok = function () { + var list = [], id, tabs = $G('tabhead').children; + for (var i = 0; i < tabs.length; i++) { + if (domUtils.hasClass(tabs[i], 'focus')) { + id = tabs[i].getAttribute('data-content-id'); + break; + } + } + + switch (id) { + case 'upload': + list = uploadFile.getInsertList(); + var count = uploadFile.getQueueCount(); + if (count) { + $('.info', '#queueList').html('' + '还有2个未上传文件'.replace(/[\d]/, count) + ''); + return false; + } + break; + case 'online': + list = onlineFile.getInsertList(); + break; + } + + editor.execCommand('insertfile', list); + }; + } + + + /* 上传附件 */ + function UploadFile(target) { + this.$wrap = target.constructor == String ? $('#' + target) : $(target); + this.init(); + } + + UploadFile.prototype = { + init: function () { + this.fileList = []; + this.initContainer(); + this.initUploader(); + }, + initContainer: function () { + this.$queue = this.$wrap.find('.filelist'); + }, + /* 初始化容器 */ + initUploader: function () { + var _this = this, + $ = jQuery, // just in case. Make sure it's not an other libaray. + $wrap = _this.$wrap, + // 图片容器 + $queue = $wrap.find('.filelist'), + // 状态栏,包括进度和控制按钮 + $statusBar = $wrap.find('.statusBar'), + // 文件总体选择信息。 + $info = $statusBar.find('.info'), + // 上传按钮 + $upload = $wrap.find('.uploadBtn'), + // 上传按钮 + $filePickerBtn = $wrap.find('.filePickerBtn'), + // 上传按钮 + $filePickerBlock = $wrap.find('.filePickerBlock'), + // 没选择文件之前的内容。 + $placeHolder = $wrap.find('.placeholder'), + // 总体进度条 + $progress = $statusBar.find('.progress').hide(), + // 添加的文件数量 + fileCount = 0, + // 添加的文件总大小 + fileSize = 0, + // 优化retina, 在retina下这个值是2 + ratio = window.devicePixelRatio || 1, + // 缩略图大小 + thumbnailWidth = 113 * ratio, + thumbnailHeight = 113 * ratio, + // 可能有pedding, ready, uploading, confirm, done. + state = '', + // 所有文件的进度信息,key为file id + percentages = {}, + supportTransition = (function () { + var s = document.createElement('p').style, + r = 'transition' in s || + 'WebkitTransition' in s || + 'MozTransition' in s || + 'msTransition' in s || + 'OTransition' in s; + s = null; + return r; + })(), + // WebUploader实例 + uploader, + actionUrl = editor.getActionUrl(editor.getOpt('fileActionName')), + fileMaxSize = editor.getOpt('fileMaxSize'), + acceptExtensions = (editor.getOpt('fileAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, ''); + ; + + if (!WebUploader.Uploader.support()) { + $('#filePickerReady').after($('
    ').html(lang.errorNotSupport)).hide(); + return; + } else if (!editor.getOpt('fileActionName')) { + $('#filePickerReady').after($('
    ').html(lang.errorLoadConfig)).hide(); + return; + } + + var uploaderOption = { + pick: { + id: '#filePickerReady', + label: lang.uploadSelectFile + }, + swf: '../../third-party/webuploader/Uploader.swf', + server: actionUrl, + fileVal: editor.getOpt('fileFieldName'), + duplicate: true, + fileSingleSizeLimit: fileMaxSize, + headers: editor.getOpt('serverHeaders') || {}, + compress: false + }; + if(editor.getOpt('uploadServiceEnable')) { + uploaderOption.customUpload = function (file, callback) { + editor.getOpt('uploadServiceUpload')('attachment', file, { + success: function( res ) { + callback.onSuccess(file, {_raw:JSON.stringify(res)}); + }, + error: function( err ) { + callback.onError(file, err); + }, + progress: function( percent ) { + callback.onProgress(file, percent); + } + }, { + from: 'attachment' + }); + }; + } + + + uploader = _this.uploader = WebUploader.create(uploaderOption); + uploader.addButton({ + id: '#filePickerBlock' + }); + uploader.addButton({ + id: '#filePickerBtn', + label: lang.uploadAddFile + }); + + setState('pedding'); + + // 当有文件添加进来时执行,负责view的创建 + function addFile(file) { + var $li = $('
  • ' + + '

    ' + file.name + '

    ' + + '

    ' + + '

    ' + + '
  • '), + + $btns = $('
    ' + + '' + lang.uploadDelete + '' + + '' + lang.uploadTurnRight + '' + + '' + lang.uploadTurnLeft + '
    ').appendTo($li), + $prgress = $li.find('p.progress span'), + $wrap = $li.find('p.imgWrap'), + $info = $('

    ').hide().appendTo($li), + + showError = function (code) { + switch (code) { + case 'exceed_size': + text = lang.errorExceedSize; + break; + case 'interrupt': + text = lang.errorInterrupt; + break; + case 'http': + text = lang.errorHttp; + break; + case 'not_allow_type': + text = lang.errorFileType; + break; + default: + text = lang.errorUploadRetry; + break; + } + $info.text(text).show(); + }; + + if (file.getStatus() === 'invalid') { + showError(file.statusText); + } else { + $wrap.text(lang.uploadPreview); + if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|' + file.ext.toLowerCase() + '|') == -1) { + $wrap.empty().addClass('notimage').append('' + + '' + file.name + ''); + } else { + if (browser.ie && browser.version <= 7) { + $wrap.text(lang.uploadNoPreview); + } else { + uploader.makeThumb(file, function (error, src) { + if (error || !src) { + $wrap.text(lang.uploadNoPreview); + } else { + var $img = $(''); + $wrap.empty().append($img); + $img.on('error', function () { + $wrap.text(lang.uploadNoPreview); + }); + } + }, thumbnailWidth, thumbnailHeight); + } + } + percentages[file.id] = [file.size, 0]; + file.rotation = 0; + + /* 检查文件格式 */ + if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) { + showError('not_allow_type'); + uploader.removeFile(file); + } + } + + file.on('statuschange', function (cur, prev) { + if (prev === 'progress') { + $prgress.hide().width(0); + } else if (prev === 'queued') { + $li.off('mouseenter mouseleave'); + $btns.remove(); + } + // 成功 + if (cur === 'error' || cur === 'invalid') { + showError(file.statusText); + percentages[file.id][1] = 1; + } else if (cur === 'interrupt') { + showError('interrupt'); + } else if (cur === 'queued') { + percentages[file.id][1] = 0; + } else if (cur === 'progress') { + $info.hide(); + $prgress.css('display', 'block'); + } else if (cur === 'complete') { + } + + $li.removeClass('state-' + prev).addClass('state-' + cur); + }); + + $li.on('mouseenter', function () { + $btns.stop().animate({height: 30}); + }); + $li.on('mouseleave', function () { + $btns.stop().animate({height: 0}); + }); + + $btns.on('click', 'span', function () { + var index = $(this).index(), + deg; + + switch (index) { + case 0: + uploader.removeFile(file); + return; + case 1: + file.rotation += 90; + break; + case 2: + file.rotation -= 90; + break; + } + + if (supportTransition) { + deg = 'rotate(' + file.rotation + 'deg)'; + $wrap.css({ + '-webkit-transform': deg, + '-mos-transform': deg, + '-o-transform': deg, + 'transform': deg + }); + } else { + $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')'); + } + + }); + + $li.insertBefore($filePickerBlock); + } + + // 负责view的销毁 + function removeFile(file) { + var $li = $('#' + file.id); + delete percentages[file.id]; + updateTotalProgress(); + $li.off().find('.file-panel').off().end().remove(); + } + + function updateTotalProgress() { + var loaded = 0, + total = 0, + spans = $progress.children(), + percent; + + $.each(percentages, function (k, v) { + total += v[0]; + loaded += v[0] * v[1]; + }); + + percent = total ? loaded / total : 0; + + spans.eq(0).text(Math.round(percent * 100) + '%'); + spans.eq(1).css('width', Math.round(percent * 100) + '%'); + updateStatus(); + } + + function setState(val, files) { + + if (val != state) { + + var stats = uploader.getStats(); + + $upload.removeClass('state-' + state); + $upload.addClass('state-' + val); + + switch (val) { + + /* 未选择文件 */ + case 'pedding': + $queue.addClass('element-invisible'); + $statusBar.addClass('element-invisible'); + $placeHolder.removeClass('element-invisible'); + $progress.hide(); + $info.hide(); + uploader.refresh(); + break; + + /* 可以开始上传 */ + case 'ready': + $placeHolder.addClass('element-invisible'); + $queue.removeClass('element-invisible'); + $statusBar.removeClass('element-invisible'); + $progress.hide(); + $info.show(); + $upload.text(lang.uploadStart); + uploader.refresh(); + break; + + /* 上传中 */ + case 'uploading': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadPause); + break; + + /* 暂停上传 */ + case 'paused': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadContinue); + break; + + case 'confirm': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadStart); + + stats = uploader.getStats(); + if (stats.successNum && !stats.uploadFailNum) { + setState('finish'); + return; + } + break; + + case 'finish': + $progress.hide(); + $info.show(); + if (stats.uploadFailNum) { + $upload.text(lang.uploadRetry); + } else { + $upload.text(lang.uploadStart); + } + break; + } + + state = val; + updateStatus(); + + } + + if (!_this.getQueueCount()) { + $upload.addClass('disabled') + } else { + $upload.removeClass('disabled') + } + + } + + function updateStatus() { + var text = '', stats; + + if (state === 'ready') { + text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)); + } else if (state === 'confirm') { + stats = uploader.getStats(); + if (stats.uploadFailNum) { + text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum); + } + } else { + stats = uploader.getStats(); + text = lang.updateStatusFinish.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)).replace('_', stats.successNum); + + if (stats.uploadFailNum) { + text += lang.updateStatusError.replace('_', stats.uploadFailNum); + } + } + + $info.html(text); + } + + uploader.on('fileQueued', function (file) { + if (file.ext && acceptExtensions.indexOf(file.ext.toLowerCase()) != -1 && file.size <= fileMaxSize) { + fileCount++; + fileSize += file.size; + } + + if (fileCount === 1) { + $placeHolder.addClass('element-invisible'); + $statusBar.show(); + } + + addFile(file); + }); + + uploader.on('fileDequeued', function (file) { + if (file.ext && acceptExtensions.indexOf(file.ext.toLowerCase()) != -1 && file.size <= fileMaxSize) { + fileCount--; + fileSize -= file.size; + } + + removeFile(file); + updateTotalProgress(); + }); + + uploader.on('filesQueued', function (file) { + if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) { + setState('ready'); + } + updateTotalProgress(); + }); + + uploader.on('all', function (type, files) { + switch (type) { + case 'uploadFinished': + setState('confirm', files); + break; + case 'startUpload': + /* 添加额外的GET参数 */ + var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', + url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?' : '&') + 'encode=utf-8&' + params); + uploader.option('server', url); + setState('uploading', files); + break; + case 'stopUpload': + setState('paused', files); + break; + } + }); + + uploader.on('uploadBeforeSend', function (file, data, header) { + //这里可以通过data对象添加POST参数 + if (actionUrl.toLowerCase().indexOf('jsp') != -1) { + header['X_Requested_With'] = 'XMLHttpRequest'; + } + }); + + uploader.on('uploadProgress', function (file, percentage) { + var $li = $('#' + file.id), + $percent = $li.find('.progress span'); + + $percent.css('width', percentage * 100 + '%'); + percentages[file.id][1] = percentage; + updateTotalProgress(); + }); + + uploader.on('uploadSuccess', function (file, ret) { + var $file = $('#' + file.id); + try { + var responseText = (ret._raw || ret), + json = utils.str2json(responseText); + json = editor.getOpt('serverResponsePrepare')(json); + if (json.state == 'SUCCESS') { + _this.fileList.push(json); + $file.append(''); + // 触发上传附件事件 + editor.fireEvent("uploadsuccess", { + res: json, + type: 'file' + }); + } else { + $file.find('.error').text(json.state).show(); + } + } catch (e) { + $file.find('.error').text(lang.errorServerUpload).show(); + } + }); + + uploader.on('uploadError', function (file, code) { + }); + uploader.on('error', function (code, param1, param2) { + if (code === 'F_EXCEED_SIZE') { + editor.getOpt('tipError')(lang.errorExceedSize + ' ' + (param1 / 1024 / 1024).toFixed(1) + 'MB'); + } else { + console.log('error', code, param1, param2); + } + }); + uploader.on('uploadComplete', function (file, ret) { + }); + + $upload.on('click', function () { + if ($(this).hasClass('disabled')) { + return false; + } + + if (state === 'ready') { + uploader.upload(); + } else if (state === 'paused') { + uploader.upload(); + } else if (state === 'uploading') { + uploader.stop(); + } + }); + + $upload.addClass('state-' + state); + updateTotalProgress(); + }, + getQueueCount: function () { + var file, i, status, readyFile = 0, files = this.uploader.getFiles(); + for (i = 0; file = files[i++];) { + status = file.getStatus(); + if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++; + } + return readyFile; + }, + getInsertList: function () { + var i, link, data, list = [], + prefix = editor.getOpt('fileUrlPrefix'); + for (i = 0; i < this.fileList.length; i++) { + data = this.fileList[i]; + link = data.url; + list.push({ + title: data.original || link.substr(link.lastIndexOf('/') + 1), + url: prefix + link + }); + } + return list; + } + }; + + + /* 在线附件 */ + function OnlineFile(target) { + this.container = utils.isString(target) ? document.getElementById(target) : target; + this.init(); + } + + OnlineFile.prototype = { + init: function () { + this.initContainer(); + this.initEvents(); + this.initData(); + }, + /* 初始化容器 */ + initContainer: function () { + this.container.innerHTML = ''; + this.list = document.createElement('ul'); + this.clearFloat = document.createElement('li'); + + domUtils.addClass(this.list, 'list'); + domUtils.addClass(this.clearFloat, 'clearFloat'); + + this.list.appendChild(this.clearFloat); + this.container.appendChild(this.list); + }, + /* 初始化滚动事件,滚动到地步自动拉取数据 */ + initEvents: function () { + var _this = this; + + /* 滚动拉取图片 */ + domUtils.on($G('fileList'), 'scroll', function (e) { + var panel = this; + if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) { + _this.getFileData(); + } + }); + /* 选中图片 */ + domUtils.on(this.list, 'click', function (e) { + var target = e.target || e.srcElement, + li = target.parentNode; + + if (li.tagName.toLowerCase() == 'li') { + if (domUtils.hasClass(li, 'selected')) { + domUtils.removeClasses(li, 'selected'); + } else { + domUtils.addClass(li, 'selected'); + } + } + }); + }, + /* 初始化第一次的数据 */ + initData: function () { + + /* 拉取数据需要使用的值 */ + this.state = 0; + this.listSize = editor.getOpt('fileManagerListSize'); + this.listIndex = 0; + this.listEnd = false; + + /* 第一次拉取数据 */ + this.getFileData(); + }, + /* 向后台拉取图片列表数据 */ + getFileData: function () { + var _this = this; + + if (!_this.listEnd && !this.isLoadingData) { + this.isLoadingData = true; + ajax.request(editor.getActionUrl(editor.getOpt('fileManagerActionName')), { + timeout: 100000, + data: utils.extend({ + start: this.listIndex, + size: this.listSize + }, editor.queryCommandValue('serverparam')), + headers: editor.options.serverHeaders || {}, + method: 'get', + onsuccess: function (r) { + try { + var json = eval('(' + r.responseText + ')'); + if (json.state == 'SUCCESS') { + _this.pushData(json.list); + _this.listIndex = parseInt(json.start) + parseInt(json.list.length); + if (_this.listIndex >= json.total) { + _this.listEnd = true; + } + _this.isLoadingData = false; + } + } catch (e) { + if (r.responseText.indexOf('ue_separate_ue') != -1) { + var list = r.responseText.split(r.responseText); + _this.pushData(list); + _this.listIndex = parseInt(list.length); + _this.listEnd = true; + _this.isLoadingData = false; + } + } + }, + onerror: function () { + _this.isLoadingData = false; + } + }); + } + }, + /* 添加图片到列表界面上 */ + pushData: function (list) { + var i, item, img, filetype, preview, icon, _this = this, + urlPrefix = editor.getOpt('fileManagerUrlPrefix'); + for (i = 0; i < list.length; i++) { + if (list[i] && list[i].url) { + item = document.createElement('li'); + icon = document.createElement('span'); + filetype = list[i].url.substr(list[i].url.lastIndexOf('.') + 1); + + if ("png|jpg|jpeg|gif|bmp".indexOf(filetype) != -1) { + preview = document.createElement('img'); + domUtils.on(preview, 'load', (function (image) { + return function () { + _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight); + }; + })(preview)); + preview.width = 113; + preview.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=' : '&noCache=') + (+new Date()).toString(36)); + } else { + var ic = document.createElement('i'), + textSpan = document.createElement('span'); + textSpan.innerHTML = list[i].original || list[i].url.substr(list[i].url.lastIndexOf('/') + 1); + preview = document.createElement('div'); + preview.appendChild(ic); + preview.appendChild(textSpan); + domUtils.addClass(preview, 'file-wrapper'); + domUtils.addClass(textSpan, 'file-title'); + domUtils.addClass(ic, 'file-type-' + filetype); + domUtils.addClass(ic, 'file-preview'); + } + domUtils.addClass(icon, 'icon'); + item.setAttribute('data-url', urlPrefix + list[i].url); + if (list[i].original) { + item.setAttribute('data-title', list[i].original); + } + + item.appendChild(preview); + item.appendChild(icon); + this.list.insertBefore(item, this.clearFloat); + } + } + }, + /* 改变图片大小 */ + scale: function (img, w, h, type) { + var ow = img.width, + oh = img.height; + + if (type == 'justify') { + if (ow >= oh) { + img.width = w; + img.height = h * oh / ow; + img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; + } else { + img.width = w * ow / oh; + img.height = h; + img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; + } + } else { + if (ow >= oh) { + img.width = w * ow / oh; + img.height = h; + img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; + } else { + img.width = w; + img.height = h * oh / ow; + img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; + } + } + }, + getInsertList: function () { + var i, lis = this.list.children, list = []; + for (i = 0; i < lis.length; i++) { + if (domUtils.hasClass(lis[i], 'selected')) { + var url = lis[i].getAttribute('data-url'); + var title = lis[i].getAttribute('data-title') || url.substr(url.lastIndexOf('/') + 1); + list.push({ + title: title, + url: url + }); + } + } + return list; + } + }; + + +})(); diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/alignicon.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/alignicon.gif new file mode 100644 index 0000000..005a5ac Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/alignicon.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/alignicon.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/alignicon.png new file mode 100644 index 0000000..4b6c444 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/alignicon.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/bg.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/bg.png new file mode 100644 index 0000000..580be0a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/bg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/file-icons.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/file-icons.gif new file mode 100644 index 0000000..d8c02c2 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/file-icons.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/file-icons.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/file-icons.png new file mode 100644 index 0000000..3ff82c8 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/file-icons.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/icons.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/icons.gif new file mode 100644 index 0000000..78459de Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/icons.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/icons.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/icons.png new file mode 100644 index 0000000..12e4700 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/icons.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/image.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/image.png new file mode 100644 index 0000000..19699f6 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/image.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/progress.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/progress.png new file mode 100644 index 0000000..717c486 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/progress.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/success.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/success.gif new file mode 100644 index 0000000..8d4f311 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/success.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/success.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/success.png new file mode 100644 index 0000000..94f968d Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/attachment/images/success.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/audio.css b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/audio.css new file mode 100644 index 0000000..c0bbf5c --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/audio.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +@charset "utf-8";.wrapper{width:570px;_width:575px;margin:10px auto;zoom:1;position:relative}.tabbody{height:355px}.tabbody .panel{position:absolute;width:0;height:0;background:#fff;overflow:hidden;display:none}.tabbody .panel.focus{width:100%;height:355px;display:block}.tabbody .panel table td{vertical-align:middle}#audioUrl{width:380px;height:26px;line-height:26px;margin:8px 5px;background:#FFF;border:1px solid #F2F2F2;outline:0;border-radius:3px;padding:0 5px}#audioSelect{width:100px;display:inline-block;background:#FFF;border:1px solid #EEE;line-height:26px;text-align:center;color:#333;text-decoration:none;border-radius:3px;vertical-align:middle}#audioSearchTxt{margin-left:15px;background:#FFF;width:200px;height:21px;line-height:21px;border:1px solid #F2F2F2}#searchList{width:570px;overflow:auto;zoom:1;height:270px}#searchList div{float:left;width:120px;height:135px;margin:5px 15px}#searchList img{margin:2px 8px;cursor:pointer;border:2px solid #fff}#searchList p{margin-left:10px}#audioType{width:65px;height:23px;line-height:22px;border:1px solid #F2F2F2}#audioSearchBtn,#audioSearchReset{height:25px;line-height:25px;background:#eee;border:1px solid #F2F2F2;cursor:pointer;padding:0 5px}#preview{position:relative;width:420px;padding:0;overflow:hidden;margin-left:10px;_margin-left:5px;height:280px;background-color:#ddd;float:left}#preview .previewMsg{position:absolute;top:0;margin:0;padding:0;height:280px;width:100%;background-color:#666}#preview .previewMsg span{display:block;margin:125px auto 0;text-align:center;font-size:18px;color:#fff}#preview .previewaudio{position:absolute;top:0;margin:0;padding:0;height:280px;width:100%}.edui-audio-wrapper fieldset{border:1px solid #ddd;padding-left:5px;margin-bottom:20px;padding-bottom:5px;width:115px}#audioInfo{width:120px;float:left;margin-left:10px;_margin-left:7px}fieldset{border:1px solid #ddd;padding-left:5px;margin-bottom:20px;padding-bottom:5px;width:115px}fieldset legend{font-weight:700}fieldset p{line-height:30px}fieldset input.txt{width:65px;height:21px;line-height:21px;margin:8px 5px;background:#FFF;border:1px solid #F2F2F2}label.url{font-weight:700;margin-left:5px}#audioFloat div{cursor:pointer;opacity:.5;filter:alpha(opacity=50);margin:9px;_margin:5px;width:38px;height:36px;float:left}#audioFloat .focus{opacity:1;filter:alpha(opacity=100)}span.view{display:inline-block;width:30px;float:right;cursor:pointer;color:#00f}.tabbody #upload.panel{width:0;height:0;overflow:hidden;position:absolute!important;clip:rect(1px,1px,1px,1px);background:#fff;display:block}.tabbody #upload.panel.focus{width:100%;height:335px;display:block;clip:auto}#upload_alignment div{cursor:pointer;opacity:.5;filter:alpha(opacity=50);margin:9px;_margin:5px;width:38px;height:36px;float:left}#upload_alignment .focus{opacity:1;filter:alpha(opacity=100)}#upload_left{width:427px;float:left}#upload_left .controller{height:30px;clear:both}#uploadaudioInfo{margin-top:10px;float:right;padding-right:8px}#upload .queueList{margin:0}#upload p{margin:0}.element-invisible{width:0!important;height:0!important;border:0;padding:0;margin:0;overflow:hidden;position:absolute!important;clip:rect(1px,1px,1px,1px)}#upload .placeholder{margin:10px;margin-right:0;border:2px dashed #e6e6e6;*border:0 dashed #e6e6e6;height:161px;padding-top:150px;text-align:center;width:97%;float:left;background:url(./images/image.png) center 70px no-repeat;color:#ccc;font-size:18px;position:relative;top:0;*margin-left:0;*left:10px}#upload .placeholder .webuploader-pick{font-size:18px;background:#00b7ee;border-radius:3px;line-height:44px;padding:0 30px;*width:120px;color:#fff;display:inline-block;margin:0 auto 20px;cursor:pointer;box-shadow:0 1px 1px rgba(0,0,0,.1)}#upload .placeholder .webuploader-pick-hover{background:#00a2d4}#filePickerContainer{text-align:center}#upload .placeholder .flashTip{color:#666;font-size:12px;position:absolute;width:100%;text-align:center;bottom:20px}#upload .placeholder .flashTip a{color:#0785d1;text-decoration:none}#upload .placeholder .flashTip a:hover{text-decoration:underline}#upload .placeholder.webuploader-dnd-over{border-color:#999}#upload .filelist{list-style:none;margin:0;padding:0;overflow-x:hidden;overflow-y:auto;position:relative;height:285px}#upload .filelist:after{content:'';display:block;width:0;height:0;overflow:hidden;clear:both}#upload .filelist li{width:113px;height:113px;background:url(./images/bg.png);text-align:center;margin:15px 0 0 20px;*margin:15px 0 0 15px;position:relative;display:block;float:left;overflow:hidden;font-size:12px}#upload .filelist li p.log{position:relative;top:-45px}#upload .filelist li p.title{position:absolute;top:0;left:0;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;top:5px;text-indent:5px;text-align:left}#upload .filelist li p.progress{position:absolute;width:100%;bottom:0;left:0;height:8px;overflow:hidden;z-index:50;margin:0;border-radius:0;background:0 0;-webkit-box-shadow:0 0 0}#upload .filelist li p.progress span{display:none;overflow:hidden;width:0;height:100%;background:#1483d8 url(./images/progress.png) repeat-x;-webit-transition:width 200ms linear;-moz-transition:width 200ms linear;-o-transition:width 200ms linear;-ms-transition:width 200ms linear;transition:width 200ms linear;-webkit-animation:progressmove 2s linear infinite;-moz-animation:progressmove 2s linear infinite;-o-animation:progressmove 2s linear infinite;-ms-animation:progressmove 2s linear infinite;animation:progressmove 2s linear infinite;-webkit-transform:translateZ(0)}@-webkit-keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}@-moz-keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}@keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}#upload .filelist li p.imgWrap{position:relative;z-index:2;line-height:113px;vertical-align:middle;overflow:hidden;width:113px;height:113px;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-o-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;-webit-transition:200ms ease-out;-moz-transition:200ms ease-out;-o-transition:200ms ease-out;-ms-transition:200ms ease-out;transition:200ms ease-out}#upload .filelist li p.imgWrap.notimage{margin-top:0;width:111px;height:111px;border:1px #eee solid}#upload .filelist li p.imgWrap.notimage i.file-preview{margin-top:15px}#upload .filelist li img{width:100%}#upload .filelist li p.error{background:#f43838;color:#fff;position:absolute;bottom:0;left:0;height:28px;line-height:28px;width:100%;z-index:100;display:none}#upload .filelist li .success{display:block;position:absolute;left:0;bottom:0;height:40px;width:100%;z-index:200;background:url(./images/success.png) no-repeat right bottom;background-image:url(./images/success.gif) \9}#upload .filelist li.filePickerBlock{width:113px;height:113px;background:url(./images/image.png) no-repeat center 12px;border:1px solid #eee;border-radius:0}#upload .filelist li.filePickerBlock div.webuploader-pick{width:100%;height:100%;margin:0;padding:0;opacity:0;background:0 0;font-size:0}#upload .filelist div.file-panel{position:absolute;height:0;filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;background:rgba(0,0,0,.5);width:100%;top:0;left:0;overflow:hidden;z-index:300}#upload .filelist div.file-panel span{width:24px;height:24px;display:inline;float:right;text-indent:-9999px;overflow:hidden;background:url(./images/icons.png) no-repeat;background:url(./images/icons.gif) no-repeat \9;margin:5px 1px 1px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#upload .filelist div.file-panel span.rotateLeft{display:none;background-position:0 -24px}#upload .filelist div.file-panel span.rotateLeft:hover{background-position:0 0}#upload .filelist div.file-panel span.rotateRight{display:none;background-position:-24px -24px}#upload .filelist div.file-panel span.rotateRight:hover{background-position:-24px 0}#upload .filelist div.file-panel span.cancel{background-position:-48px -24px}#upload .filelist div.file-panel span.cancel:hover{background-position:-48px 0}#upload .statusBar{height:45px;border-bottom:1px solid #dadada;margin:0 10px;padding:0;line-height:45px;vertical-align:middle;position:relative}#upload .statusBar .progress{border:1px solid #1483d8;width:198px;background:#fff;height:18px;position:absolute;top:12px;display:none;text-align:center;line-height:18px;color:#6dbfff;margin:0 10px 0 0}#upload .statusBar .progress span.percentage{width:0;height:100%;left:0;top:0;background:#1483d8;position:absolute}#upload .statusBar .progress span.text{position:relative;z-index:10}#upload .statusBar .info{display:inline-block;font-size:14px;color:#666}#upload .statusBar .btns{position:absolute;top:7px;right:0;line-height:30px}#filePickerBtn{display:inline-block;float:left}#upload .statusBar .btns .webuploader-pick,#upload .statusBar .btns .uploadBtn,#upload .statusBar .btns .uploadBtn.state-uploading,#upload .statusBar .btns .uploadBtn.state-paused{background:#fff;border:1px solid #cfcfcf;color:#565656;padding:0 18px;display:inline-block;border-radius:3px;margin-left:10px;cursor:pointer;font-size:14px;float:left;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#upload .statusBar .btns .webuploader-pick-hover,#upload .statusBar .btns .uploadBtn:hover,#upload .statusBar .btns .uploadBtn.state-uploading:hover,#upload .statusBar .btns .uploadBtn.state-paused:hover{background:#f0f0f0}#upload .statusBar .btns .uploadBtn,#upload .statusBar .btns .uploadBtn.state-paused{background:#00b7ee;color:#fff;border-color:transparent}#upload .statusBar .btns .uploadBtn:hover,#upload .statusBar .btns .uploadBtn.state-paused:hover{background:#00a2d4}#upload .statusBar .btns .uploadBtn.disabled{pointer-events:none;filter:alpha(opacity=60);-moz-opacity:.6;-khtml-opacity:.6;opacity:.6}i.file-preview{display:block;margin:10px auto;width:70px;height:70px;background-image:url(./images/file-icons.png);background-image:url(./images/file-icons.gif) \9;background-position:-140px center;background-repeat:no-repeat}i.file-preview.file-type-dir{background-position:0 center}i.file-preview.file-type-file{background-position:-140px center}i.file-preview.file-type-filelist{background-position:-210px center}i.file-preview.file-type-zip,i.file-preview.file-type-rar,i.file-preview.file-type-7z,i.file-preview.file-type-tar,i.file-preview.file-type-gz,i.file-preview.file-type-bz2{background-position:-280px center}i.file-preview.file-type-xls,i.file-preview.file-type-xlsx{background-position:-350px center}i.file-preview.file-type-doc,i.file-preview.file-type-docx{background-position:-420px center}i.file-preview.file-type-ppt,i.file-preview.file-type-pptx{background-position:-490px center}i.file-preview.file-type-vsd{background-position:-560px center}i.file-preview.file-type-pdf{background-position:-630px center}i.file-preview.file-type-txt,i.file-preview.file-type-md,i.file-preview.file-type-json,i.file-preview.file-type-htm,i.file-preview.file-type-xml,i.file-preview.file-type-html,i.file-preview.file-type-js,i.file-preview.file-type-css,i.file-preview.file-type-php,i.file-preview.file-type-jsp,i.file-preview.file-type-asp{background-position:-700px center}i.file-preview.file-type-apk{background-position:-770px center}i.file-preview.file-type-exe{background-position:-840px center}i.file-preview.file-type-ipa{background-position:-910px center}i.file-preview.file-type-mp4,i.file-preview.file-type-swf,i.file-preview.file-type-mkv,i.file-preview.file-type-avi,i.file-preview.file-type-flv,i.file-preview.file-type-mov,i.file-preview.file-type-mpg,i.file-preview.file-type-mpeg,i.file-preview.file-type-ogv,i.file-preview.file-type-webm,i.file-preview.file-type-rm,i.file-preview.file-type-rmvb{background-position:-980px center}i.file-preview.file-type-ogg,i.file-preview.file-type-wav,i.file-preview.file-type-wmv,i.file-preview.file-type-mid,i.file-preview.file-type-mp3{background-position:-1050px center}i.file-preview.file-type-jpg,i.file-preview.file-type-jpeg,i.file-preview.file-type-gif,i.file-preview.file-type-bmp,i.file-preview.file-type-png,i.file-preview.file-type-psd{background-position:-140px center} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/audio.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/audio.html new file mode 100644 index 0000000..56388ca --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/audio.html @@ -0,0 +1,83 @@ + + + + + + + + + +
    +
    +
    + + +
    +
    +
    + + + + + +
    +
    + 外链音频支持MP3格式 +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + 0% + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
      +
    • +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/audio.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/audio.js new file mode 100644 index 0000000..07edcf9 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/audio.js @@ -0,0 +1,805 @@ +/** + * Created by JetBrains PhpStorm. + * User: taoqili + * Date: 12-2-20 + * Time: 上午11:19 + * To change this template use File | Settings | File Templates. + */ + +(function () { + + var audio = {}, + uploadaudioList = [], + isModifyUploadaudio = false, + uploadFile; + var editorOpt = {}; + + window.onload = function () { + editorOpt = editor.getOpt('audioConfig'); + $focus($G("audioUrl")); + initTabs(); + initAudio(); + initUpload(); + }; + + /* 初始化tab标签 */ + function initTabs() { + var tabs = $G('tabHeads').children; + for (var i = 0; i < tabs.length; i++) { + domUtils.on(tabs[i], "click", function (e) { + var j, bodyId, target = e.target || e.srcElement; + for (j = 0; j < tabs.length; j++) { + bodyId = tabs[j].getAttribute('data-content-id'); + if (tabs[j] == target) { + domUtils.addClass(tabs[j], 'focus'); + domUtils.addClass($G(bodyId), 'focus'); + } else { + domUtils.removeClasses(tabs[j], 'focus'); + domUtils.removeClasses($G(bodyId), 'focus'); + } + } + }); + } + if (!editorOpt.disableUpload) { + $G('tabHeads').querySelector('[data-content-id="upload"]').style.display = 'inline-block'; + } + if (!!editorOpt.selectCallback) { + $G('audioSelect').style.display = 'inline-block'; + domUtils.on($G('audioSelect'), "click", function (e) { + editorOpt.selectCallback(editor, function (info) { + if (info) { + $G('audioUrl').value = info.path; + createPreview(info.path); + } + }); + }); + } + } + + function initAudio() { + createAlignButton(["audioFloat", "upload_alignment"]); + addUrlChangeListener($G("audioUrl")); + addOkListener(); + + //编辑视频时初始化相关信息 + (function () { + var img = editor.selection.getRange().getClosedNode(), url; + if (img && img.className) { + var hasFakedClass = (img.className == "edui-faked-audio"), + hasUploadClass = img.className.indexOf("edui-upload-audio") != -1; + if (hasFakedClass || hasUploadClass) { + $G("audioUrl").value = url = img.getAttribute("_url"); + var align = domUtils.getComputedStyle(img, "float"), + parentAlign = domUtils.getComputedStyle(img.parentNode, "text-align"); + updateAlignButton(parentAlign === "center" ? "center" : align); + } + if (hasUploadClass) { + isModifyUploadaudio = true; + } + } + createPreview(url); + })(); + } + + /** + * 监听确认和取消两个按钮事件,用户执行插入或者清空正在播放的视频实例操作 + */ + function addOkListener() { + dialog.onok = function () { + $G("preview").innerHTML = ""; + var currentTab = findFocus("tabHeads", "tabSrc"); + switch (currentTab) { + case "audio": + return insertSingle(); + break; + // case "audioSearch": + // return insertSearch("searchList"); + // break; + case "upload": + return insertUpload(); + break; + } + }; + dialog.oncancel = function () { + $G("preview").innerHTML = ""; + }; + } + + /** + * 依据传入的align值更新按钮信息 + * @param align + */ + function updateAlignButton(align) { + var aligns = $G("audioFloat").children; + for (var i = 0, ci; ci = aligns[i++];) { + if (ci.getAttribute("name") == align) { + if (ci.className != "focus") { + ci.className = "focus"; + } + } else { + if (ci.className == "focus") { + ci.className = ""; + } + } + } + } + + /** + * 将单个视频信息插入编辑器中 + */ + function insertSingle() { + var url = $G('audioUrl').value, + align = findFocus("audioFloat", "name"); + if (!url) return false; + editor.execCommand('insertaudio', { + url: url, + }, isModifyUploadaudio ? 'upload' : null); + } + + /** + * 将元素id下的所有代表视频的图片插入编辑器中 + * @param id + */ + function insertSearch(id) { + var imgs = domUtils.getElementsByTagName($G(id), "img"), + audioObjs = []; + for (var i = 0, img; img = imgs[i++];) { + if (img.getAttribute("selected")) { + audioObjs.push({ + url: img.getAttribute("ue_audio_url"), + width: 420, + height: 280, + align: "none" + }); + } + } + editor.execCommand('insertaudio', audioObjs); + } + + /** + * 找到id下具有focus类的节点并返回该节点下的某个属性 + * @param id + * @param returnProperty + */ + function findFocus(id, returnProperty) { + var tabs = $G(id).children, + property; + for (var i = 0, ci; ci = tabs[i++];) { + if (ci.className == "focus") { + property = ci.getAttribute(returnProperty); + break; + } + } + return property; + } + + /** + * 数字判断 + * @param value + */ + function isNumber(value) { + return /(0|^[1-9]\d*$)/.test(value); + } + + /** + * 创建图片浮动选择按钮 + * @param ids + */ + function createAlignButton(ids) { + for (var i = 0, ci; ci = ids[i++];) { + var floatContainer = $G(ci), + nameMaps = { + "none": lang['default'], + "left": lang.floatLeft, + "right": lang.floatRight, + "center": lang.block + }; + for (var j in nameMaps) { + var div = document.createElement("div"); + div.setAttribute("name", j); + if (j == "none") div.className = "focus"; + div.style.cssText = "background:url(images/" + j + "_focus.jpg);"; + div.setAttribute("title", nameMaps[j]); + floatContainer.appendChild(div); + } + switchSelect(ci); + } + } + + /** + * 选择切换 + * @param selectParentId + */ + function switchSelect(selectParentId) { + var selects = $G(selectParentId).children; + for (var i = 0, ci; ci = selects[i++];) { + domUtils.on(ci, "click", function () { + for (var j = 0, cj; cj = selects[j++];) { + cj.className = ""; + cj.removeAttribute && cj.removeAttribute("class"); + } + this.className = "focus"; + }) + } + } + + /** + * 监听url改变事件 + * @param url + */ + function addUrlChangeListener(url) { + if (browser.ie) { + url.onpropertychange = function () { + createPreview(this.value); + } + } else { + url.addEventListener("input", function () { + createPreview(this.value); + }, false); + } + } + + function createAudioHtml(url, param) { + param = param || {}; + var str = [ + "', + '', + '', + ]; + return str.join(''); + } + + /** + * 根据url生成视频预览 + * @param url + */ + function createPreview(url) { + if (!url) { + return; + } + + $G("preview").innerHTML = '
    ' + lang.urlError + '
    ' + + '
    ' + + '
    ' + createAudioHtml(url) + '
    ' + + '
    '; + } + + + /* 插入上传视频 */ + function insertUpload() { + var audioObjs = [], + uploadDir = editor.getOpt('audioUrlPrefix'), + align = findFocus("upload_alignment", "name") || 'none'; + for (var key in uploadaudioList) { + var file = uploadaudioList[key]; + audioObjs.push({ + url: uploadDir + file.url, + align: align + }); + } + + var count = uploadFile.getQueueCount(); + if (count) { + $('.info', '#queueList').html('' + '还有2个未上传文件'.replace(/[\d]/, count) + ''); + return false; + } else { + editor.execCommand('insertaudio', audioObjs, 'upload'); + } + } + + /*初始化上传标签*/ + function initUpload() { + uploadFile = new UploadFile('queueList'); + } + + + /* 上传附件 */ + function UploadFile(target) { + this.$wrap = target.constructor == String ? $('#' + target) : $(target); + this.init(); + } + + UploadFile.prototype = { + init: function () { + this.fileList = []; + this.initContainer(); + this.initUploader(); + }, + initContainer: function () { + this.$queue = this.$wrap.find('.filelist'); + }, + /* 初始化容器 */ + initUploader: function () { + var _this = this, + $ = jQuery, // just in case. Make sure it's not an other libaray. + $wrap = _this.$wrap, + // 图片容器 + $queue = $wrap.find('.filelist'), + // 状态栏,包括进度和控制按钮 + $statusBar = $wrap.find('.statusBar'), + // 文件总体选择信息。 + $info = $statusBar.find('.info'), + // 上传按钮 + $upload = $wrap.find('.uploadBtn'), + // 上传按钮 + $filePickerBtn = $wrap.find('.filePickerBtn'), + // 上传按钮 + $filePickerBlock = $wrap.find('.filePickerBlock'), + // 没选择文件之前的内容。 + $placeHolder = $wrap.find('.placeholder'), + // 总体进度条 + $progress = $statusBar.find('.progress').hide(), + // 添加的文件数量 + fileCount = 0, + // 添加的文件总大小 + fileSize = 0, + // 优化retina, 在retina下这个值是2 + ratio = window.devicePixelRatio || 1, + // 缩略图大小 + thumbnailWidth = 113 * ratio, + thumbnailHeight = 113 * ratio, + // 可能有pedding, ready, uploading, confirm, done. + state = '', + // 所有文件的进度信息,key为file id + percentages = {}, + supportTransition = (function () { + var s = document.createElement('p').style, + r = 'transition' in s || + 'WebkitTransition' in s || + 'MozTransition' in s || + 'msTransition' in s || + 'OTransition' in s; + s = null; + return r; + })(), + // WebUploader实例 + uploader, + actionUrl = editor.getActionUrl(editor.getOpt('audioActionName')), + fileMaxSize = editor.getOpt('audioMaxSize'), + acceptExtensions = (editor.getOpt('audioAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, ''); + ; + + if (!WebUploader.Uploader.support()) { + $('#filePickerReady').after($('
    ').html(lang.errorNotSupport)).hide(); + return; + } else if (!editor.getOpt('audioActionName')) { + $('#filePickerReady').after($('
    ').html(lang.errorLoadConfig)).hide(); + return; + } + + var uploaderOption = { + pick: { + id: '#filePickerReady', + label: lang.uploadSelectFile + }, + swf: '../../third-party/webuploader/Uploader.swf', + server: actionUrl, + fileVal: editor.getOpt('audioFieldName'), + duplicate: true, + fileSingleSizeLimit: fileMaxSize, + headers: editor.getOpt('serverHeaders') || {}, + compress: false + }; + + if(editor.getOpt('uploadServiceEnable')) { + uploaderOption.customUpload = function (file, callback) { + editor.getOpt('uploadServiceUpload')('audio', file, { + success: function( res ) { + callback.onSuccess(file, {_raw:JSON.stringify(res)}); + }, + error: function( err ) { + callback.onError(file, err); + }, + progress: function( percent ) { + callback.onProgress(file, percent); + } + }, { + from: 'audio' + }); + }; + } + + uploader = _this.uploader = WebUploader.create(uploaderOption); + uploader.addButton({ + id: '#filePickerBlock' + }); + uploader.addButton({ + id: '#filePickerBtn', + label: lang.uploadAddFile + }); + + setState('pedding'); + + // 当有文件添加进来时执行,负责view的创建 + function addFile(file) { + var $li = $('
  • ' + + '

    ' + file.name + '

    ' + + '

    ' + + '

    ' + + '
  • '), + + $btns = $('
    ' + + '' + lang.uploadDelete + '' + + '' + lang.uploadTurnRight + '' + + '' + lang.uploadTurnLeft + '
    ').appendTo($li), + $prgress = $li.find('p.progress span'), + $wrap = $li.find('p.imgWrap'), + $info = $('

    ').hide().appendTo($li), + + showError = function (code) { + switch (code) { + case 'exceed_size': + text = lang.errorExceedSize; + break; + case 'interrupt': + text = lang.errorInterrupt; + break; + case 'http': + text = lang.errorHttp; + break; + case 'not_allow_type': + text = lang.errorFileType; + break; + default: + text = lang.errorUploadRetry; + break; + } + $info.text(text).show(); + }; + + if (file.getStatus() === 'invalid') { + showError(file.statusText); + } else { + $wrap.text(lang.uploadPreview); + if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|' + file.ext.toLowerCase() + '|') == -1) { + $wrap.empty().addClass('notimage').append('' + + '' + file.name + ''); + } else { + if (browser.ie && browser.version <= 7) { + $wrap.text(lang.uploadNoPreview); + } else { + uploader.makeThumb(file, function (error, src) { + if (error || !src || (/^data:/.test(src) && browser.ie && browser.version <= 7)) { + $wrap.text(lang.uploadNoPreview); + } else { + var $img = $(''); + $wrap.empty().append($img); + $img.on('error', function () { + $wrap.text(lang.uploadNoPreview); + }); + } + }, thumbnailWidth, thumbnailHeight); + } + } + percentages[file.id] = [file.size, 0]; + file.rotation = 0; + + /* 检查文件格式 */ + if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) { + showError('not_allow_type'); + uploader.removeFile(file); + } + } + + file.on('statuschange', function (cur, prev) { + if (prev === 'progress') { + $prgress.hide().width(0); + } else if (prev === 'queued') { + $li.off('mouseenter mouseleave'); + $btns.remove(); + } + // 成功 + if (cur === 'error' || cur === 'invalid') { + showError(file.statusText); + percentages[file.id][1] = 1; + } else if (cur === 'interrupt') { + showError('interrupt'); + } else if (cur === 'queued') { + percentages[file.id][1] = 0; + } else if (cur === 'progress') { + $info.hide(); + $prgress.css('display', 'block'); + } else if (cur === 'complete') { + } + + $li.removeClass('state-' + prev).addClass('state-' + cur); + }); + + $li.on('mouseenter', function () { + $btns.stop().animate({height: 30}); + }); + $li.on('mouseleave', function () { + $btns.stop().animate({height: 0}); + }); + + $btns.on('click', 'span', function () { + var index = $(this).index(), + deg; + + switch (index) { + case 0: + uploader.removeFile(file); + return; + case 1: + file.rotation += 90; + break; + case 2: + file.rotation -= 90; + break; + } + + if (supportTransition) { + deg = 'rotate(' + file.rotation + 'deg)'; + $wrap.css({ + '-webkit-transform': deg, + '-mos-transform': deg, + '-o-transform': deg, + 'transform': deg + }); + } else { + $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')'); + } + + }); + + $li.insertBefore($filePickerBlock); + } + + // 负责view的销毁 + function removeFile(file) { + var $li = $('#' + file.id); + delete percentages[file.id]; + updateTotalProgress(); + $li.off().find('.file-panel').off().end().remove(); + } + + function updateTotalProgress() { + var loaded = 0, + total = 0, + spans = $progress.children(), + percent; + + $.each(percentages, function (k, v) { + total += v[0]; + loaded += v[0] * v[1]; + }); + + percent = total ? loaded / total : 0; + + spans.eq(0).text(Math.round(percent * 100) + '%'); + spans.eq(1).css('width', Math.round(percent * 100) + '%'); + updateStatus(); + } + + function setState(val, files) { + + if (val != state) { + + var stats = uploader.getStats(); + + $upload.removeClass('state-' + state); + $upload.addClass('state-' + val); + + switch (val) { + + /* 未选择文件 */ + case 'pedding': + $queue.addClass('element-invisible'); + $statusBar.addClass('element-invisible'); + $placeHolder.removeClass('element-invisible'); + $progress.hide(); + $info.hide(); + uploader.refresh(); + break; + + /* 可以开始上传 */ + case 'ready': + $placeHolder.addClass('element-invisible'); + $queue.removeClass('element-invisible'); + $statusBar.removeClass('element-invisible'); + $progress.hide(); + $info.show(); + $upload.text(lang.uploadStart); + uploader.refresh(); + break; + + /* 上传中 */ + case 'uploading': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadPause); + break; + + /* 暂停上传 */ + case 'paused': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadContinue); + break; + + case 'confirm': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadStart); + + stats = uploader.getStats(); + if (stats.successNum && !stats.uploadFailNum) { + setState('finish'); + return; + } + break; + + case 'finish': + $progress.hide(); + $info.show(); + if (stats.uploadFailNum) { + $upload.text(lang.uploadRetry); + } else { + $upload.text(lang.uploadStart); + } + break; + } + + state = val; + updateStatus(); + + } + + if (!_this.getQueueCount()) { + $upload.addClass('disabled') + } else { + $upload.removeClass('disabled') + } + + } + + function updateStatus() { + var text = '', stats; + + if (state === 'ready') { + text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)); + } else if (state === 'confirm') { + stats = uploader.getStats(); + if (stats.uploadFailNum) { + text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum); + } + } else { + stats = uploader.getStats(); + text = lang.updateStatusFinish.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)).replace('_', stats.successNum); + + if (stats.uploadFailNum) { + text += lang.updateStatusError.replace('_', stats.uploadFailNum); + } + } + + $info.html(text); + } + + uploader.on('fileQueued', function (file) { + fileCount++; + fileSize += file.size; + + if (fileCount === 1) { + $placeHolder.addClass('element-invisible'); + $statusBar.show(); + } + + addFile(file); + }); + + uploader.on('fileDequeued', function (file) { + fileCount--; + fileSize -= file.size; + + removeFile(file); + updateTotalProgress(); + }); + + uploader.on('filesQueued', function (file) { + if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) { + setState('ready'); + } + updateTotalProgress(); + }); + + uploader.on('all', function (type, files) { + switch (type) { + case 'uploadFinished': + setState('confirm', files); + break; + case 'startUpload': + /* 添加额外的GET参数 */ + var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', + url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?' : '&') + 'encode=utf-8&' + params); + uploader.option('server', url); + setState('uploading', files); + break; + case 'stopUpload': + setState('paused', files); + break; + } + }); + + uploader.on('uploadBeforeSend', function (file, data, header) { + //这里可以通过data对象添加POST参数 + if (actionUrl.toLowerCase().indexOf('jsp') != -1) { + header['X_Requested_With'] = 'XMLHttpRequest'; + } + }); + + uploader.on('uploadProgress', function (file, percentage) { + var $li = $('#' + file.id), + $percent = $li.find('.progress span'); + + $percent.css('width', percentage * 100 + '%'); + percentages[file.id][1] = percentage; + updateTotalProgress(); + }); + + uploader.on('uploadSuccess', function (file, ret) { + var $file = $('#' + file.id); + try { + var responseText = (ret._raw || ret), + json = utils.str2json(responseText); + json = editor.getOpt('serverResponsePrepare')(json); + if (json.state == 'SUCCESS') { + uploadaudioList.push({ + 'url': json.url, + 'type': json.type, + 'original': json.original + }); + $file.append(''); + } else { + $file.find('.error').text(json.state).show(); + } + } catch (e) { + $file.find('.error').text(lang.errorServerUpload).show(); + } + }); + + uploader.on('uploadError', function (file, code) { + }); + uploader.on('error', function (code, param1, param2) { + if (code === 'F_EXCEED_SIZE') { + editor.getOpt('tipError')(lang.errorExceedSize + ' ' + (param1 / 1024 / 1024).toFixed(1) + 'MB'); + } else { + console.log('error', code, param1, param2); + } + }); + uploader.on('uploadComplete', function (file, ret) { + }); + + $upload.on('click', function () { + if ($(this).hasClass('disabled')) { + return false; + } + + if (state === 'ready') { + uploader.upload(); + } else if (state === 'paused') { + uploader.upload(); + } else if (state === 'uploading') { + uploader.stop(); + } + }); + + $upload.addClass('state-' + state); + updateTotalProgress(); + }, + getQueueCount: function () { + var file, i, status, readyFile = 0, files = this.uploader.getFiles(); + for (i = 0; file = files[i++];) { + status = file.getStatus(); + if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++; + } + return readyFile; + }, + refresh: function () { + this.uploader.refresh(); + } + }; + +})(); diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/bg.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/bg.png new file mode 100644 index 0000000..580be0a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/bg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/center_focus.jpg b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/center_focus.jpg new file mode 100644 index 0000000..262b029 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/center_focus.jpg differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/file-icons.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/file-icons.gif new file mode 100644 index 0000000..d8c02c2 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/file-icons.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/file-icons.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/file-icons.png new file mode 100644 index 0000000..3ff82c8 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/file-icons.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/icons.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/icons.gif new file mode 100644 index 0000000..78459de Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/icons.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/icons.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/icons.png new file mode 100644 index 0000000..12e4700 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/icons.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/image.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/image.png new file mode 100644 index 0000000..19699f6 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/image.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/left_focus.jpg b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/left_focus.jpg new file mode 100644 index 0000000..7886d27 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/left_focus.jpg differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/none_focus.jpg b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/none_focus.jpg new file mode 100644 index 0000000..7c768dc Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/none_focus.jpg differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/progress.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/progress.png new file mode 100644 index 0000000..717c486 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/progress.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/right_focus.jpg b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/right_focus.jpg new file mode 100644 index 0000000..173e10d Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/right_focus.jpg differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/success.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/success.gif new file mode 100644 index 0000000..8d4f311 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/success.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/success.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/success.png new file mode 100644 index 0000000..94f968d Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/audio/images/success.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/background/background.css b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/background/background.css new file mode 100644 index 0000000..13684ab --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/background/background.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +.wrapper{width:424px;margin:10px auto;zoom:1;position:relative}.tabbody{height:225px}.tabbody .panel{position:absolute;width:100%;height:100%;background:#fff;display:none}.tabbody .focus{display:block}body{font-size:12px;color:#888;overflow:hidden}input,label{vertical-align:middle}.clear{clear:both}.pl{padding-left:18px;padding-left:23px \9}#imageList{width:420px;height:215px;margin-top:10px;overflow:hidden;overflow-y:auto}#imageList div{float:left;width:100px;height:95px;margin:5px 10px}#imageList img{cursor:pointer;border:2px solid #fff}.bgarea{margin:10px;padding:5px;height:84%;border:1px solid #A8A297}.content div{margin:10px 0 10px 5px}.content .iptradio{margin:0 5px 5px 0}.txt{width:280px}.wrapcolor{height:19px}div.color{float:left;margin:0}#colorPicker{width:17px;height:17px;border:1px solid #CCC;display:inline-block;border-radius:3px;box-shadow:2px 2px 5px #D3D6DA;margin:0;float:left}div.alignment,#custom{margin-left:23px;margin-left:28px \9}#custom input{height:15px;min-height:15px;width:20px}#repeatType{width:100px}#imgManager{width:100%;height:225px}#imgManager #imageList{width:100%;overflow-x:hidden;overflow-y:auto}#imgManager ul{display:block;list-style:none;margin:0;padding:0}#imgManager li{float:left;display:block;list-style:none;padding:0;width:113px;height:113px;margin:9px 0 0 19px;background-color:#eee;overflow:hidden;cursor:pointer;position:relative}#imgManager li.clearFloat{float:none;clear:both;display:block;width:0;height:0;margin:0;padding:0}#imgManager li img{cursor:pointer}#imgManager li .icon{cursor:pointer;width:113px;height:113px;position:absolute;top:0;left:0;z-index:2;border:0;background-repeat:no-repeat}#imgManager li .icon:hover{width:107px;height:107px;border:3px solid #1094fa}#imgManager li.selected .icon{background-image:url(images/success.png);background-position:75px 75px}#imgManager li.selected .icon:hover{width:107px;height:107px;border:3px solid #1094fa;background-position:72px 72px} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/background/background.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/background/background.html new file mode 100644 index 0000000..804ca24 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/background/background.html @@ -0,0 +1,59 @@ + + + + + + + + +
    +
    + +
    +
    +
    +
    + +
    +
    + + +
    +
    +
    + : +
    +
    +
    +
    +
    + +
    +
    + : +
    +
    + :x:px  y:px +
    +
    +
    + +
    +
    +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/background/background.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/background/background.js new file mode 100644 index 0000000..d40a252 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/background/background.js @@ -0,0 +1,370 @@ +(function () { + + var onlineImage, + backupStyle = editor.queryCommandValue('background'); + + window.onload = function () { + initTabs(); + initColorSelector(); + }; + + /* 初始化tab标签 */ + function initTabs() { + var tabs = $G('tabHeads').children; + for (var i = 0; i < tabs.length; i++) { + domUtils.on(tabs[i], "click", function (e) { + var target = e.target || e.srcElement; + for (var j = 0; j < tabs.length; j++) { + if (tabs[j] == target) { + tabs[j].className = "focus"; + var contentId = tabs[j].getAttribute('data-content-id'); + $G(contentId).style.display = "block"; + } else { + tabs[j].className = ""; + $G(tabs[j].getAttribute('data-content-id')).style.display = "none"; + } + } + }); + } + } + + /* 初始化颜色设置 */ + function initColorSelector() { + var obj = editor.queryCommandValue('background'); + if (obj) { + var color = obj['background-color'], + repeat = obj['background-repeat'] || 'repeat', + image = obj['background-image'] || '', + position = obj['background-position'] || 'center center', + pos = position.split(' '), + x = parseInt(pos[0]) || 0, + y = parseInt(pos[1]) || 0; + + if (repeat == 'no-repeat' && (x || y)) repeat = 'self'; + + image = image.match(/url[\s]*\(([^\)]*)\)/); + image = image ? image[1] : ''; + updateFormState('colored', color, image, repeat, x, y); + } else { + updateFormState(); + } + + var updateHandler = function () { + updateFormState(); + updateBackground(); + } + domUtils.on($G('nocolorRadio'), 'click', updateBackground); + domUtils.on($G('coloredRadio'), 'click', updateHandler); + domUtils.on($G('url'), 'keyup', function () { + if ($G('url').value && $G('alignment').style.display == "none") { + utils.each($G('repeatType').children, function (item) { + item.selected = ('repeat' == item.getAttribute('value') ? 'selected' : false); + }); + } + updateHandler(); + }); + domUtils.on($G('repeatType'), 'change', updateHandler); + domUtils.on($G('x'), 'keyup', updateBackground); + domUtils.on($G('y'), 'keyup', updateBackground); + + initColorPicker(); + } + + /* 初始化颜色选择器 */ + function initColorPicker() { + var me = editor, + cp = $G("colorPicker"); + + /* 生成颜色选择器ui对象 */ + var popup = new UE.ui.Popup({ + content: new UE.ui.ColorPicker({ + noColorText: me.getLang("clearColor"), + editor: me, + onpickcolor: function (t, color) { + updateFormState('colored', color); + updateBackground(); + UE.ui.Popup.postHide(); + }, + onpicknocolor: function (t, color) { + updateFormState('colored', 'transparent'); + updateBackground(); + UE.ui.Popup.postHide(); + } + }), + editor: me, + onhide: function () { + } + }); + + /* 设置颜色选择器 */ + domUtils.on(cp, "click", function () { + popup.showAnchor(this); + }); + domUtils.on(document, 'mousedown', function (evt) { + var el = evt.target || evt.srcElement; + UE.ui.Popup.postHide(el); + }); + domUtils.on(window, 'scroll', function () { + UE.ui.Popup.postHide(); + }); + } + + /* 更新背景色设置面板 */ + function updateFormState(radio, color, url, align, x, y) { + var nocolorRadio = $G('nocolorRadio'), + coloredRadio = $G('coloredRadio'); + + if (radio) { + nocolorRadio.checked = (radio == 'colored' ? false : 'checked'); + coloredRadio.checked = (radio == 'colored' ? 'checked' : false); + } + if (color) { + domUtils.setStyle($G("colorPicker"), "background-color", color); + } + + if (url && /^\//.test(url)) { + var a = document.createElement('a'); + a.href = url; + browser.ie && (a.href = a.href); + url = browser.ie ? a.href : (a.protocol + '//' + a.host + a.pathname + a.search + a.hash); + } + + if (url || url === '') { + $G('url').value = url; + } + if (align) { + utils.each($G('repeatType').children, function (item) { + item.selected = (align == item.getAttribute('value') ? 'selected' : false); + }); + } + if (x || y) { + $G('x').value = parseInt(x) || 0; + $G('y').value = parseInt(y) || 0; + } + + $G('alignment').style.display = coloredRadio.checked && $G('url').value ? '' : 'none'; + $G('custom').style.display = coloredRadio.checked && $G('url').value && $G('repeatType').value == 'self' ? '' : 'none'; + } + + /* 更新背景颜色 */ + function updateBackground() { + if ($G('coloredRadio').checked) { + var color = domUtils.getStyle($G("colorPicker"), "background-color"), + bgimg = $G("url").value, + align = $G("repeatType").value, + backgroundObj = { + "background-repeat": "no-repeat", + "background-position": "center center" + }; + + if (color) backgroundObj["background-color"] = color; + if (bgimg) backgroundObj["background-image"] = 'url(' + bgimg + ')'; + if (align == 'self') { + backgroundObj["background-position"] = $G("x").value + "px " + $G("y").value + "px"; + } else if (align == 'repeat-x' || align == 'repeat-y' || align == 'repeat') { + backgroundObj["background-repeat"] = align; + } + + editor.execCommand('background', backgroundObj); + } else { + editor.execCommand('background', null); + } + } + + + /* 在线图片 */ + function OnlineImage(target) { + this.container = utils.isString(target) ? document.getElementById(target) : target; + this.init(); + } + + OnlineImage.prototype = { + init: function () { + this.reset(); + this.initEvents(); + }, + /* 初始化容器 */ + initContainer: function () { + this.container.innerHTML = ''; + this.list = document.createElement('ul'); + this.clearFloat = document.createElement('li'); + + domUtils.addClass(this.list, 'list'); + domUtils.addClass(this.clearFloat, 'clearFloat'); + + this.list.id = 'imageListUl'; + this.list.appendChild(this.clearFloat); + this.container.appendChild(this.list); + }, + /* 初始化滚动事件,滚动到地步自动拉取数据 */ + initEvents: function () { + var _this = this; + + /* 滚动拉取图片 */ + domUtils.on($G('imageList'), 'scroll', function (e) { + var panel = this; + if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) { + _this.getImageData(); + } + }); + /* 选中图片 */ + domUtils.on(this.container, 'click', function (e) { + var target = e.target || e.srcElement, + li = target.parentNode, + nodes = $G('imageListUl').childNodes; + + if (li.tagName.toLowerCase() == 'li') { + updateFormState('nocolor', null, ''); + for (var i = 0, node; node = nodes[i++];) { + if (node == li && !domUtils.hasClass(node, 'selected')) { + domUtils.addClass(node, 'selected'); + updateFormState('colored', null, li.firstChild.getAttribute("_src"), 'repeat'); + } else { + domUtils.removeClasses(node, 'selected'); + } + } + updateBackground(); + } + }); + }, + /* 初始化第一次的数据 */ + initData: function () { + + /* 拉取数据需要使用的值 */ + this.state = 0; + this.listSize = editor.getOpt('imageManagerListSize'); + this.listIndex = 0; + this.listEnd = false; + + /* 第一次拉取数据 */ + this.getImageData(); + }, + /* 重置界面 */ + reset: function () { + this.initContainer(); + this.initData(); + }, + /* 向后台拉取图片列表数据 */ + getImageData: function () { + var _this = this; + + if (!_this.listEnd && !this.isLoadingData) { + this.isLoadingData = true; + var url = editor.getActionUrl(editor.getOpt('imageManagerActionName')), + isJsonp = utils.isCrossDomainUrl(url); + ajax.request(url, { + 'timeout': 100000, + 'dataType': isJsonp ? 'jsonp' : '', + 'data': utils.extend({ + start: this.listIndex, + size: this.listSize + }, editor.queryCommandValue('serverparam')), + 'headers': editor.options.serverHeaders || {}, + 'method': 'get', + 'onsuccess': function (r) { + try { + var json = isJsonp ? r : eval('(' + r.responseText + ')'); + if (json.state == 'SUCCESS') { + _this.pushData(json.list); + _this.listIndex = parseInt(json.start) + parseInt(json.list.length); + if (_this.listIndex >= json.total) { + _this.listEnd = true; + } + _this.isLoadingData = false; + } + } catch (e) { + if (r.responseText.indexOf('ue_separate_ue') != -1) { + var list = r.responseText.split(r.responseText); + _this.pushData(list); + _this.listIndex = parseInt(list.length); + _this.listEnd = true; + _this.isLoadingData = false; + } + } + }, + 'onerror': function () { + _this.isLoadingData = false; + } + }); + } + }, + /* 添加图片到列表界面上 */ + pushData: function (list) { + var i, item, img, icon, _this = this, + urlPrefix = editor.getOpt('imageManagerUrlPrefix'); + for (i = 0; i < list.length; i++) { + if (list[i] && list[i].url) { + item = document.createElement('li'); + img = document.createElement('img'); + icon = document.createElement('span'); + + domUtils.on(img, 'load', (function (image) { + return function () { + _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight); + } + })(img)); + img.width = 113; + img.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=' : '&noCache=') + (+new Date()).toString(36)); + img.setAttribute('_src', urlPrefix + list[i].url); + domUtils.addClass(icon, 'icon'); + + item.appendChild(img); + item.appendChild(icon); + this.list.insertBefore(item, this.clearFloat); + } + } + }, + /* 改变图片大小 */ + scale: function (img, w, h, type) { + var ow = img.width, + oh = img.height; + + if (type == 'justify') { + if (ow >= oh) { + img.width = w; + img.height = h * oh / ow; + img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; + } else { + img.width = w * ow / oh; + img.height = h; + img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; + } + } else { + if (ow >= oh) { + img.width = w * ow / oh; + img.height = h; + img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; + } else { + img.width = w; + img.height = h * oh / ow; + img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; + } + } + }, + getInsertList: function () { + var i, lis = this.list.children, list = [], align = getAlign(); + for (i = 0; i < lis.length; i++) { + if (domUtils.hasClass(lis[i], 'selected')) { + var img = lis[i].firstChild, + src = img.getAttribute('_src'); + list.push({ + src: src, + _src: src, + floatStyle: align + }); + } + + } + return list; + } + }; + + dialog.onok = function () { + updateBackground(); + editor.fireEvent('saveScene'); + }; + dialog.oncancel = function () { + editor.execCommand('background', backupStyle); + }; + +})(); diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/background/images/bg.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/background/images/bg.png new file mode 100644 index 0000000..580be0a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/background/images/bg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/background/images/success.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/background/images/success.png new file mode 100644 index 0000000..94f968d Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/background/images/success.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/contentimport/contentimport.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/contentimport/contentimport.html new file mode 100644 index 0000000..8a6d751 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/contentimport/contentimport.html @@ -0,0 +1,177 @@ + + + + + + + + +
    +
    +
    +
    选择本地文件
    + +
    +
    +
    粘贴Markdown
    +
    +
    +
    +
    +
    + 支持文档格式 +
    +
    +
      +
    • Word:docx
    • +
    • Markdown:md
    • +
    +
    +
    +
    + +
    + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/contentimport/contentimport.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/contentimport/contentimport.js new file mode 100644 index 0000000..aaa28f0 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/contentimport/contentimport.js @@ -0,0 +1,91 @@ +var contentImport = {}; +var g = $G; + +contentImport.data = { + result: null, +}; +contentImport.init = function (opt, callbacks) { + addUploadButtonListener(); + addOkListener(); +}; + +function processWord(file) { + $('.file-tip').html('正在转换Word文件,请稍后...'); + $('.file-result').html('').hide(); + var reader = new FileReader(); + reader.onload = function (loadEvent) { + mammoth.convertToHtml({ + arrayBuffer: loadEvent.target.result + }) + .then(function displayResult(result) { + $('.file-tip').html('转换成功'); + contentImport.data.result = result.value; + $('.file-result').html(result.value).show(); + }, function (error) { + $('.file-tip').html('Word文件转换失败:' + error); + }); + }; + reader.onerror = function (loadEvent) { + $('.file-tip').html('Word文件转换失败:' + loadEvent); + }; + reader.readAsArrayBuffer(file); +} + +function processMarkdown( markdown ){ + var converter = new showdown.Converter(); + var html = converter.makeHtml(markdown); + $('.file-tip').html('转换成功'); + contentImport.data.result = html; + $('.file-result').html(html).show(); +} + +function processMarkdownFile(file) { + $('.file-tip').html('正在转换Markdown文件,请稍后...'); + $('.file-result').html('').hide(); + var reader = new FileReader(); + reader.onload = function (loadEvent) { + processMarkdown( loadEvent.target.result ); + }; + reader.onerror = function (loadEvent) { + $('.file-tip').html('Markdown文件转换失败:' + loadEvent); + }; + reader.readAsText(file, "UTF-8"); +} + +function addUploadButtonListener() { + g('contentImport').addEventListener('change', function () { + const file = this.files[0]; + const fileName = file.name; + const fileExt = fileName.substring(fileName.lastIndexOf('.') + 1).toLowerCase(); + switch (fileExt) { + case 'docx': + case 'doc': + processWord(file); + break; + case 'md': + processMarkdownFile(file); + break; + default: + $('.file-tip').html('不支持的文件格式:' + fileExt); + break; + } + }); + g('fileInputConfirm').addEventListener('click', function () { + processMarkdown( g('fileInputContent').value ); + $('.file-input').hide(); + }); +} + +function addOkListener() { + dialog.onok = function () { + if (!contentImport.data.result) { + alert('请先上传文件识别内容'); + return false; + } + editor.fireEvent('saveScene'); + editor.execCommand("inserthtml", contentImport.data.result); + editor.fireEvent('saveScene'); + }; + dialog.oncancel = function () { + }; +} diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/contentimport/mammoth.browser.min.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/contentimport/mammoth.browser.min.js new file mode 100644 index 0000000..cc8a19b --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/contentimport/mammoth.browser.min.js @@ -0,0 +1,21 @@ +!function(f){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=f();else if("function"==typeof define&&define.amd)define([],f);else{var g;g="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,g.mammoth=f()}}(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o0&&(childrenXml=deletedParagraphContents.concat(childrenXml),deletedParagraphContents=[]),ReadResult.map(readParagraphProperties(paragraphPropertiesElement),readXmlElements(childrenXml),function(properties,children){return new documents.Paragraph(children,properties)}).insertExtra()},"w:r":function(element){return ReadResult.map(readRunProperties(element.firstOrEmpty("w:rPr")),readXmlElements(element.children),function(properties,children){var hyperlinkOptions=currentHyperlinkOptions();return null!==hyperlinkOptions&&(children=[new documents.Hyperlink(children,hyperlinkOptions)]),new documents.Run(children,properties)})},"w:fldChar":readFldChar,"w:instrText":readInstrText,"w:t":function(element){return elementResult(new documents.Text(element.text()))},"w:tab":function(element){return elementResult(new documents.Tab)},"w:noBreakHyphen":function(){return elementResult(new documents.Text("‑"))},"w:softHyphen":function(element){return elementResult(new documents.Text("­"))},"w:sym":readSymbol,"w:hyperlink":function(element){var relationshipId=element.attributes["r:id"],anchor=element.attributes["w:anchor"];return readXmlElements(element.children).map(function(children){function create(options){var targetFrame=element.attributes["w:tgtFrame"]||null;return new documents.Hyperlink(children,_.extend({targetFrame:targetFrame},options))}if(relationshipId){var href=relationships.findTargetByRelationshipId(relationshipId);return anchor&&(href=uris.replaceFragment(href,anchor)),create({href:href})}return anchor?create({anchor:anchor}):children})},"w:tbl":readTable,"w:tr":readTableRow,"w:tc":readTableCell,"w:footnoteReference":noteReferenceReader("footnote"),"w:endnoteReference":noteReferenceReader("endnote"),"w:commentReference":readCommentReference,"w:br":function(element){var breakType=element.attributes["w:type"];return null==breakType||"textWrapping"===breakType?elementResult(documents.lineBreak):"page"===breakType?elementResult(documents.pageBreak):"column"===breakType?elementResult(documents.columnBreak):emptyResultWithMessages([warning("Unsupported break type: "+breakType)])},"w:bookmarkStart":function(element){var name=element.attributes["w:name"];return"_GoBack"===name?emptyResult():elementResult(new documents.BookmarkStart({name:name}))},"mc:AlternateContent":function(element){return readChildElements(element.first("mc:Fallback"))},"w:sdt":function(element){return readXmlElements(element.firstOrEmpty("w:sdtContent").children)},"w:ins":readChildElements,"w:object":readChildElements,"w:smartTag":readChildElements,"w:drawing":readChildElements,"w:pict":function(element){return readChildElements(element).toExtra()},"v:roundrect":readChildElements,"v:shape":readChildElements,"v:textbox":readChildElements,"w:txbxContent":readChildElements,"wp:inline":readDrawingElement,"wp:anchor":readDrawingElement,"v:imagedata":readImageData,"v:group":readChildElements,"v:rect":readChildElements};return{readXmlElement:readXmlElement,readXmlElements:readXmlElements}}function readNumberingProperties(styleId,element,numbering){if(null!=styleId){var levelByStyleId=numbering.findLevelByParagraphStyleId(styleId);if(null!=levelByStyleId)return levelByStyleId}var level=element.firstOrEmpty("w:ilvl").attributes["w:val"],numId=element.firstOrEmpty("w:numId").attributes["w:val"];return void 0===level||void 0===numId?null:numbering.findLevel(numId,level)}function emptyResultWithMessages(messages){return new ReadResult(null,null,messages)}function emptyResult(){return new ReadResult(null)}function elementResult(element){return new ReadResult(element)}function elementResultWithMessages(element,messages){return new ReadResult(element,null,messages)}function ReadResult(element,extra,messages){this.value=element||[],this.extra=extra||[],this._result=new Result({element:this.value,extra:extra},messages),this.messages=this._result.messages}function combineResults(results){var result=Result.combine(_.pluck(results,"_result"));return new ReadResult(_.flatten(_.pluck(result.value,"element")),_.filter(_.flatten(_.pluck(result.value,"extra")),identity),result.messages)}function joinElements(first,second){return _.flatten([first,second])}function identity(value){return value}exports.createBodyReader=createBodyReader,exports._readNumberingProperties=readNumberingProperties;var dingbatToUnicode=require("dingbat-to-unicode"),_=require("underscore"),documents=require("../documents"),Result=require("../results").Result,warning=require("../results").warning,uris=require("./uris"),supportedImageTypes={"image/png":!0,"image/gif":!0,"image/jpeg":!0,"image/svg+xml":!0,"image/tiff":!0},ignoreElements={"office-word:wrap":!0,"v:shadow":!0,"v:shapetype":!0,"w:annotationRef":!0,"w:bookmarkEnd":!0,"w:sectPr":!0,"w:proofErr":!0,"w:lastRenderedPageBreak":!0,"w:commentRangeStart":!0,"w:commentRangeEnd":!0,"w:del":!0,"w:footnoteRef":!0,"w:endnoteRef":!0,"w:pPr":!0,"w:rPr":!0,"w:tblPr":!0,"w:tblGrid":!0,"w:trPr":!0,"w:tcPr":!0};ReadResult.prototype.toExtra=function(){return new ReadResult(null,joinElements(this.extra,this.value),this.messages)},ReadResult.prototype.insertExtra=function(){var extra=this.extra;return extra&&extra.length?new ReadResult(joinElements(this.value,extra),null,this.messages):this},ReadResult.prototype.map=function(func){var result=this._result.map(function(value){return func(value.element)});return new ReadResult(result.value,this.extra,result.messages)},ReadResult.prototype.flatMap=function(func){var result=this._result.flatMap(function(value){return func(value.element)._result});return new ReadResult(result.value.element,joinElements(this.extra,result.value.extra),result.messages)},ReadResult.map=function(first,second,func){return new ReadResult(func(first.value,second.value),joinElements(first.extra,second.extra),first.messages.concat(second.messages))}},{"../documents":4,"../results":25,"./uris":16,"dingbat-to-unicode":85,underscore:103}],6:[function(require,module,exports){function createCommentsReader(bodyReader){function readCommentsXml(element){ +return Result.combine(element.getElementsByTagName("w:comment").map(readCommentElement))}function readCommentElement(element){function readOptionalAttribute(name){return(element.attributes[name]||"").trim()||null}var id=element.attributes["w:id"];return bodyReader.readXmlElements(element.children).map(function(body){return documents.comment({commentId:id,body:body,authorName:readOptionalAttribute("w:author"),authorInitials:readOptionalAttribute("w:initials")})})}return readCommentsXml}var documents=require("../documents"),Result=require("../results").Result;exports.createCommentsReader=createCommentsReader},{"../documents":4,"../results":25}],7:[function(require,module,exports){function readContentTypesFromXml(element){var extensionDefaults={},overrides={};return element.children.forEach(function(child){if("content-types:Default"===child.name&&(extensionDefaults[child.attributes.Extension]=child.attributes.ContentType),"content-types:Override"===child.name){var name=child.attributes.PartName;"/"===name.charAt(0)&&(name=name.substring(1)),overrides[name]=child.attributes.ContentType}}),contentTypes(overrides,extensionDefaults)}function contentTypes(overrides,extensionDefaults){return{findContentType:function(path){var overrideContentType=overrides[path];if(overrideContentType)return overrideContentType;var pathParts=path.split("."),extension=pathParts[pathParts.length-1];if(extensionDefaults.hasOwnProperty(extension))return extensionDefaults[extension];var fallback=fallbackContentTypes[extension.toLowerCase()];return fallback?"image/"+fallback:null}}}exports.readContentTypesFromXml=readContentTypesFromXml;var fallbackContentTypes={png:"png",gif:"gif",jpeg:"jpeg",jpg:"jpeg",tif:"tiff",tiff:"tiff",bmp:"bmp"};exports.defaultContentTypes=contentTypes({},{})},{}],8:[function(require,module,exports){function DocumentXmlReader(options){function convertXmlToDocument(element){var body=element.first("w:body"),result=bodyReader.readXmlElements(body.children).map(function(children){return new documents.Document(children,{notes:options.notes,comments:options.comments})});return new Result(result.value,result.messages)}var bodyReader=options.bodyReader;return{convertXmlToDocument:convertXmlToDocument}}exports.DocumentXmlReader=DocumentXmlReader;var documents=require("../documents"),Result=require("../results").Result},{"../documents":4,"../results":25}],9:[function(require,module,exports){function read(docxFile,input){return input=input||{},promises.props({contentTypes:readContentTypesFromZipFile(docxFile),partPaths:findPartPaths(docxFile),docxFile:docxFile,files:new Files(input.path?path.dirname(input.path):null)}).also(function(result){return{styles:readStylesFromZipFile(docxFile,result.partPaths.styles)}}).also(function(result){return{numbering:readNumberingFromZipFile(docxFile,result.partPaths.numbering,result.styles)}}).also(function(result){return{footnotes:readXmlFileWithBody(result.partPaths.footnotes,result,function(bodyReader,xml){return xml?notesReader.createFootnotesReader(bodyReader)(xml):new Result([])}),endnotes:readXmlFileWithBody(result.partPaths.endnotes,result,function(bodyReader,xml){return xml?notesReader.createEndnotesReader(bodyReader)(xml):new Result([])}),comments:readXmlFileWithBody(result.partPaths.comments,result,function(bodyReader,xml){return xml?commentsReader.createCommentsReader(bodyReader)(xml):new Result([])})}}).also(function(result){return{notes:result.footnotes.flatMap(function(footnotes){return result.endnotes.map(function(endnotes){return new documents.Notes(footnotes.concat(endnotes))})})}}).then(function(result){return readXmlFileWithBody(result.partPaths.mainDocument,result,function(bodyReader,xml){return result.notes.flatMap(function(notes){return result.comments.flatMap(function(comments){var reader=new DocumentXmlReader({bodyReader:bodyReader,notes:notes,comments:comments});return reader.convertXmlToDocument(xml)})})})})}function findPartPaths(docxFile){return readPackageRelationships(docxFile).then(function(packageRelationships){var mainDocumentPath=findPartPath({docxFile:docxFile,relationships:packageRelationships,relationshipType:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",basePath:"",fallbackPath:"word/document.xml"});if(!docxFile.exists(mainDocumentPath))throw new Error("Could not find main document part. Are you sure this is a valid .docx file?");return xmlFileReader({filename:relationshipsFilename(mainDocumentPath),readElement:relationshipsReader.readRelationships,defaultValue:relationshipsReader.defaultValue})(docxFile).then(function(documentRelationships){function findPartRelatedToMainDocument(name){return findPartPath({docxFile:docxFile,relationships:documentRelationships,relationshipType:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/"+name,basePath:zipfile.splitPath(mainDocumentPath).dirname,fallbackPath:"word/"+name+".xml"})}return{mainDocument:mainDocumentPath,comments:findPartRelatedToMainDocument("comments"),endnotes:findPartRelatedToMainDocument("endnotes"),footnotes:findPartRelatedToMainDocument("footnotes"),numbering:findPartRelatedToMainDocument("numbering"),styles:findPartRelatedToMainDocument("styles")}})})}function findPartPath(options){var docxFile=options.docxFile,relationships=options.relationships,relationshipType=options.relationshipType,basePath=options.basePath,fallbackPath=options.fallbackPath,targets=relationships.findTargetsByType(relationshipType),normalisedTargets=targets.map(function(target){return stripPrefix(zipfile.joinPath(basePath,target),"/")}),validTargets=normalisedTargets.filter(function(target){return docxFile.exists(target)});return 0===validTargets.length?fallbackPath:validTargets[0]}function stripPrefix(value,prefix){return value.substring(0,prefix.length)===prefix?value.substring(prefix.length):value}function xmlFileReader(options){return function(zipFile){return readXmlFromZipFile(zipFile,options.filename).then(function(element){return element?options.readElement(element):options.defaultValue})}}function readXmlFileWithBody(filename,options,func){var readRelationshipsFromZipFile=xmlFileReader({filename:relationshipsFilename(filename),readElement:relationshipsReader.readRelationships,defaultValue:relationshipsReader.defaultValue});return readRelationshipsFromZipFile(options.docxFile).then(function(relationships){var bodyReader=new createBodyReader({relationships:relationships,contentTypes:options.contentTypes,docxFile:options.docxFile,numbering:options.numbering,styles:options.styles,files:options.files});return readXmlFromZipFile(options.docxFile,filename).then(function(xml){return func(bodyReader,xml)})})}function relationshipsFilename(filename){var split=zipfile.splitPath(filename);return zipfile.joinPath(split.dirname,"_rels",split.basename+".rels")}function readNumberingFromZipFile(zipFile,path,styles){return xmlFileReader({filename:path,readElement:function(element){return numberingXml.readNumberingXml(element,{styles:styles})},defaultValue:numberingXml.defaultNumbering})(zipFile)}function readStylesFromZipFile(zipFile,path){return xmlFileReader({filename:path,readElement:stylesReader.readStylesXml,defaultValue:stylesReader.defaultStyles})(zipFile)}exports.read=read,exports._findPartPaths=findPartPaths;var path=require("path"),promises=require("../promises"),documents=require("../documents"),Result=require("../results").Result,zipfile=require("../zipfile"),readXmlFromZipFile=require("./office-xml-reader").readXmlFromZipFile,createBodyReader=require("./body-reader").createBodyReader,DocumentXmlReader=require("./document-xml-reader").DocumentXmlReader,relationshipsReader=require("./relationships-reader"),contentTypesReader=require("./content-types-reader"),numberingXml=require("./numbering-xml"),stylesReader=require("./styles-reader"),notesReader=require("./notes-reader"),commentsReader=require("./comments-reader"),Files=require("./files").Files,readContentTypesFromZipFile=xmlFileReader({filename:"[Content_Types].xml",readElement:contentTypesReader.readContentTypesFromXml,defaultValue:contentTypesReader.defaultContentTypes}),readPackageRelationships=xmlFileReader({filename:"_rels/.rels",readElement:relationshipsReader.readRelationships,defaultValue:relationshipsReader.defaultValue})},{"../documents":4,"../promises":23,"../results":25,"../zipfile":40,"./body-reader":5,"./comments-reader":6,"./content-types-reader":7,"./document-xml-reader":8,"./files":1,"./notes-reader":10,"./numbering-xml":11,"./office-xml-reader":12,"./relationships-reader":13,"./styles-reader":15,path:101}],10:[function(require,module,exports){function createReader(noteType,bodyReader){function readNotesXml(element){return Result.combine(element.getElementsByTagName("w:"+noteType).filter(isFootnoteElement).map(readFootnoteElement))}function isFootnoteElement(element){var type=element.attributes["w:type"];return"continuationSeparator"!==type&&"separator"!==type}function readFootnoteElement(footnoteElement){var id=footnoteElement.attributes["w:id"];return bodyReader.readXmlElements(footnoteElement.children).map(function(body){return documents.Note({noteType:noteType,noteId:id,body:body})})}return readNotesXml}var documents=require("../documents"),Result=require("../results").Result;exports.createFootnotesReader=createReader.bind(this,"footnote"),exports.createEndnotesReader=createReader.bind(this,"endnote")},{"../documents":4,"../results":25}],11:[function(require,module,exports){function Numbering(nums,abstractNums,styles){function findLevel(numId,level){var num=nums[numId];if(num){var abstractNum=abstractNums[num.abstractNumId];if(abstractNum){if(null==abstractNum.numStyleLink)return abstractNums[num.abstractNumId].levels[level];var style=styles.findNumberingStyleById(abstractNum.numStyleLink);return findLevel(style.numId,level)}return null}return null}function findLevelByParagraphStyleId(styleId){return levelsByParagraphStyleId[styleId]||null}var allLevels=_.flatten(_.values(abstractNums).map(function(abstractNum){return _.values(abstractNum.levels)})),levelsByParagraphStyleId=_.indexBy(allLevels.filter(function(level){return null!=level.paragraphStyleId}),"paragraphStyleId");return{findLevel:findLevel,findLevelByParagraphStyleId:findLevelByParagraphStyleId}}function readNumberingXml(root,options){if(!options||!options.styles)throw new Error("styles is missing");var abstractNums=readAbstractNums(root),nums=readNums(root,abstractNums);return new Numbering(nums,abstractNums,options.styles)}function readAbstractNums(root){var abstractNums={};return root.getElementsByTagName("w:abstractNum").forEach(function(element){var id=element.attributes["w:abstractNumId"];abstractNums[id]=readAbstractNum(element)}),abstractNums}function readAbstractNum(element){var levels={};element.getElementsByTagName("w:lvl").forEach(function(levelElement){var levelIndex=levelElement.attributes["w:ilvl"],numFmt=levelElement.first("w:numFmt").attributes["w:val"],paragraphStyleId=levelElement.firstOrEmpty("w:pStyle").attributes["w:val"];levels[levelIndex]={isOrdered:"bullet"!==numFmt,level:levelIndex,paragraphStyleId:paragraphStyleId}});var numStyleLink=element.firstOrEmpty("w:numStyleLink").attributes["w:val"];return{levels:levels,numStyleLink:numStyleLink}}function readNums(root){var nums={};return root.getElementsByTagName("w:num").forEach(function(element){var numId=element.attributes["w:numId"],abstractNumId=element.first("w:abstractNumId").attributes["w:val"];nums[numId]={abstractNumId:abstractNumId}}),nums}var _=require("underscore");exports.readNumberingXml=readNumberingXml,exports.Numbering=Numbering,exports.defaultNumbering=new Numbering({},{})},{underscore:103}],12:[function(require,module,exports){function read(xmlString){return xml.readString(xmlString,xmlNamespaceMap).then(function(document){return collapseAlternateContent(document)[0]})}function readXmlFromZipFile(docxFile,path){return docxFile.exists(path)?docxFile.read(path,"utf-8").then(stripUtf8Bom).then(read):promises.resolve(null)}function stripUtf8Bom(xmlString){return xmlString.replace(/^\uFEFF/g,"")}function collapseAlternateContent(node){return"element"===node.type?"mc:AlternateContent"===node.name?node.first("mc:Fallback").children:(node.children=_.flatten(node.children.map(collapseAlternateContent,!0)),[node]):[node]}var _=require("underscore"),promises=require("../promises"),xml=require("../xml");exports.read=read,exports.readXmlFromZipFile=readXmlFromZipFile;var xmlNamespaceMap={"http://schemas.openxmlformats.org/wordprocessingml/2006/main":"w","http://schemas.openxmlformats.org/officeDocument/2006/relationships":"r","http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing":"wp","http://schemas.openxmlformats.org/drawingml/2006/main":"a","http://schemas.openxmlformats.org/drawingml/2006/picture":"pic","http://schemas.openxmlformats.org/package/2006/content-types":"content-types","urn:schemas-microsoft-com:vml":"v","http://schemas.openxmlformats.org/markup-compatibility/2006":"mc","urn:schemas-microsoft-com:office:word":"office-word"}},{"../promises":23,"../xml":35,underscore:103}],13:[function(require,module,exports){function readRelationships(element){var relationships=[];return element.children.forEach(function(child){if("{http://schemas.openxmlformats.org/package/2006/relationships}Relationship"===child.name){var relationship={relationshipId:child.attributes.Id,target:child.attributes.Target,type:child.attributes.Type};relationships.push(relationship)}}),new Relationships(relationships)}function Relationships(relationships){var targetsByRelationshipId={};relationships.forEach(function(relationship){targetsByRelationshipId[relationship.relationshipId]=relationship.target});var targetsByType={};return relationships.forEach(function(relationship){targetsByType[relationship.type]||(targetsByType[relationship.type]=[]),targetsByType[relationship.type].push(relationship.target)}),{findTargetByRelationshipId:function(relationshipId){return targetsByRelationshipId[relationshipId]},findTargetsByType:function(type){return targetsByType[type]||[]}}}exports.readRelationships=readRelationships,exports.defaultValue=new Relationships([]),exports.Relationships=Relationships},{}],14:[function(require,module,exports){function writeStyleMap(docxFile,styleMap){return docxFile.write(styleMapPath,styleMap),updateRelationships(docxFile).then(function(){return updateContentTypes(docxFile)})}function updateRelationships(docxFile){var path="word/_rels/document.xml.rels",relationshipsUri="http://schemas.openxmlformats.org/package/2006/relationships",relationshipElementName="{"+relationshipsUri+"}Relationship";return docxFile.read(path,"utf8").then(xml.readString).then(function(relationshipsContainer){var relationships=relationshipsContainer.children;addOrUpdateElement(relationships,relationshipElementName,"Id",{Id:"rMammothStyleMap",Type:schema,Target:styleMapAbsolutePath});var namespaces={"":relationshipsUri};return docxFile.write(path,xml.writeString(relationshipsContainer,namespaces))})}function updateContentTypes(docxFile){var path="[Content_Types].xml",contentTypesUri="http://schemas.openxmlformats.org/package/2006/content-types",overrideName="{"+contentTypesUri+"}Override";return docxFile.read(path,"utf8").then(xml.readString).then(function(typesElement){var children=typesElement.children;addOrUpdateElement(children,overrideName,"PartName",{PartName:styleMapAbsolutePath,ContentType:"text/prs.mammoth.style-map"});var namespaces={"":contentTypesUri};return docxFile.write(path,xml.writeString(typesElement,namespaces))})}function addOrUpdateElement(elements,name,identifyingAttribute,attributes){var existingElement=_.find(elements,function(element){return element.name===name&&element.attributes[identifyingAttribute]===attributes[identifyingAttribute]});existingElement?existingElement.attributes=attributes:elements.push(xml.element(name,attributes))}function readStyleMap(docxFile){return docxFile.exists(styleMapPath)?docxFile.read(styleMapPath,"utf8"):promises.resolve(null)}var _=require("underscore"),promises=require("../promises"),xml=require("../xml");exports.writeStyleMap=writeStyleMap,exports.readStyleMap=readStyleMap;var schema="http://schemas.zwobble.org/mammoth/style-map",styleMapPath="mammoth/style-map",styleMapAbsolutePath="/"+styleMapPath},{"../promises":23,"../xml":35,underscore:103}],15:[function(require,module,exports){function Styles(paragraphStyles,characterStyles,tableStyles,numberingStyles){return{findParagraphStyleById:function(styleId){return paragraphStyles[styleId]},findCharacterStyleById:function(styleId){return characterStyles[styleId]},findTableStyleById:function(styleId){return tableStyles[styleId]},findNumberingStyleById:function(styleId){return numberingStyles[styleId]}}}function readStylesXml(root){var paragraphStyles={},characterStyles={},tableStyles={},numberingStyles={},styles={paragraph:paragraphStyles,character:characterStyles,table:tableStyles};return root.getElementsByTagName("w:style").forEach(function(styleElement){var style=readStyleElement(styleElement);if("numbering"===style.type)numberingStyles[style.styleId]=readNumberingStyleElement(styleElement);else{var styleSet=styles[style.type];styleSet&&(styleSet[style.styleId]=style)}}),new Styles(paragraphStyles,characterStyles,tableStyles,numberingStyles)}function readStyleElement(styleElement){var type=styleElement.attributes["w:type"],styleId=styleElement.attributes["w:styleId"],name=styleName(styleElement);return{type:type,styleId:styleId,name:name}}function styleName(styleElement){var nameElement=styleElement.first("w:name");return nameElement?nameElement.attributes["w:val"]:null}function readNumberingStyleElement(styleElement){var numId=styleElement.firstOrEmpty("w:pPr").firstOrEmpty("w:numPr").firstOrEmpty("w:numId").attributes["w:val"];return{numId:numId}}exports.readStylesXml=readStylesXml,exports.Styles=Styles,exports.defaultStyles=new Styles({},{}),Styles.EMPTY=new Styles({},{},{},{})},{}],16:[function(require,module,exports){function uriToZipEntryName(base,uri){return"/"===uri.charAt(0)?uri.substr(1):base+"/"+uri}function replaceFragment(uri,fragment){var hashIndex=uri.indexOf("#");return-1!==hashIndex&&(uri=uri.substring(0,hashIndex)),uri+"#"+fragment}exports.uriToZipEntryName=uriToZipEntryName,exports.replaceFragment=replaceFragment},{}],17:[function(require,module,exports){function nonFreshElement(tagName,attributes,children){return elementWithTag(htmlPaths.element(tagName,attributes,{fresh:!1}),children)}function freshElement(tagName,attributes,children){var tag=htmlPaths.element(tagName,attributes,{fresh:!0});return elementWithTag(tag,children)}function elementWithTag(tag,children){return{type:"element",tag:tag,children:children||[]}}function text(value){return{type:"text",value:value}}function isVoidElement(node){return 0===node.children.length&&voidTagNames[node.tag.tagName]}var htmlPaths=require("../styles/html-paths"),forceWrite={type:"forceWrite"};exports.freshElement=freshElement,exports.nonFreshElement=nonFreshElement,exports.elementWithTag=elementWithTag,exports.text=text,exports.forceWrite=forceWrite;var voidTagNames={br:!0,hr:!0,img:!0};exports.isVoidElement=isVoidElement},{"../styles/html-paths":28}],18:[function(require,module,exports){function write(writer,nodes){nodes.forEach(function(node){writeNode(writer,node)})}function writeNode(writer,node){toStrings[node.type](writer,node)}function generateElementString(writer,node){ast.isVoidElement(node)?writer.selfClosing(node.tag.tagName,node.tag.attributes):(writer.open(node.tag.tagName,node.tag.attributes),write(writer,node.children),writer.close(node.tag.tagName))}function generateTextString(writer,node){writer.text(node.value)}var ast=require("./ast");exports.freshElement=ast.freshElement,exports.nonFreshElement=ast.nonFreshElement,exports.elementWithTag=ast.elementWithTag,exports.text=ast.text,exports.forceWrite=ast.forceWrite,exports.simplify=require("./simplify");var toStrings={element:generateElementString,text:generateTextString,forceWrite:function(){}};exports.write=write},{"./ast":17,"./simplify":19}],19:[function(require,module,exports){function simplify(nodes){return collapse(removeEmpty(nodes))}function collapse(nodes){var children=[];return nodes.map(collapseNode).forEach(function(child){appendChild(children,child)}),children}function collapseNode(node){return collapsers[node.type](node)}function collapseElement(node){return ast.elementWithTag(node.tag,collapse(node.children))}function identity(value){return value}function appendChild(children,child){var lastChild=children[children.length-1];"element"===child.type&&!child.tag.fresh&&lastChild&&"element"===lastChild.type&&child.tag.matchesElement(lastChild.tag)?(child.tag.separator&&appendChild(lastChild.children,ast.text(child.tag.separator)),child.children.forEach(function(grandChild){appendChild(lastChild.children,grandChild)})):children.push(child)}function removeEmpty(nodes){return flatMap(nodes,function(node){return emptiers[node.type](node)})}function flatMap(values,func){return _.flatten(_.map(values,func),!0)}function neverEmpty(node){return[node]}function elementEmptier(element){var children=removeEmpty(element.children);return 0!==children.length||ast.isVoidElement(element)?[ast.elementWithTag(element.tag,children)]:[]}function textEmptier(node){return 0===node.value.length?[]:[node]}var _=require("underscore"),ast=require("./ast"),collapsers={element:collapseElement,text:identity,forceWrite:identity},emptiers={element:elementEmptier,text:textEmptier,forceWrite:neverEmpty};module.exports=simplify},{"./ast":17,underscore:103}],20:[function(require,module,exports){function imgElement(func){return function(element,messages){return promises.when(func(element)).then(function(result){var attributes={};return element.altText&&(attributes.alt=element.altText),_.extend(attributes,result),[Html.freshElement("img",attributes)]})}}var _=require("underscore"),promises=require("./promises"),Html=require("./html");exports.imgElement=imgElement,exports.inline=exports.imgElement,exports.dataUri=imgElement(function(element){return element.readAsBase64String().then(function(imageBuffer){return{src:"data:"+element.contentType+";base64,"+imageBuffer}})})},{"./html":18,"./promises":23,underscore:103}],21:[function(require,module,exports){(function(Buffer){function convertToHtml(input,options){return convert(input,options)}function convertToMarkdown(input,options){var markdownOptions=Object.create(options||{});return markdownOptions.outputFormat="markdown",convert(input,markdownOptions)}function convert(input,options){return options=readOptions(options),unzip.openZip(input).tap(function(docxFile){return docxStyleMap.readStyleMap(docxFile).then(function(styleMap){options.embeddedStyleMap=styleMap})}).then(function(docxFile){return docxReader.read(docxFile,input).then(function(documentResult){return documentResult.map(options.transformDocument)}).then(function(documentResult){return convertDocumentToHtml(documentResult,options)})})}function readEmbeddedStyleMap(input){return unzip.openZip(input).then(docxStyleMap.readStyleMap)}function convertDocumentToHtml(documentResult,options){var styleMapResult=parseStyleMap(options.readStyleMap()),parsedOptions=_.extend({},options,{styleMap:styleMapResult.value}),documentConverter=new DocumentConverter(parsedOptions);return documentResult.flatMapThen(function(document){return styleMapResult.flatMapThen(function(styleMap){return documentConverter.convertToHtml(document)})})}function parseStyleMap(styleMap){return Result.combine((styleMap||[]).map(readStyle)).map(function(styleMap){return styleMap.filter(function(styleMapping){return!!styleMapping})})}function extractRawText(input){return unzip.openZip(input).then(docxReader.read).then(function(documentResult){return documentResult.map(convertElementToRawText)})}function embedStyleMap(input,styleMap){return unzip.openZip(input).tap(function(docxFile){return docxStyleMap.writeStyleMap(docxFile,styleMap)}).then(function(docxFile){return docxFile.toArrayBuffer()}).then(function(arrayBuffer){return{toArrayBuffer:function(){return arrayBuffer},toBuffer:function(){return Buffer.from(arrayBuffer)}}})}var _=require("underscore"),docxReader=require("./docx/docx-reader"),docxStyleMap=require("./docx/style-map"),DocumentConverter=require("./document-to-html").DocumentConverter,convertElementToRawText=require("./raw-text").convertElementToRawText,readStyle=require("./style-reader").readStyle,readOptions=require("./options-reader").readOptions,unzip=require("./unzip"),Result=require("./results").Result;exports.convertToHtml=convertToHtml,exports.convertToMarkdown=convertToMarkdown,exports.convert=convert,exports.extractRawText=extractRawText,exports.images=require("./images"),exports.transforms=require("./transforms"),exports.underline=require("./underline"),exports.embedStyleMap=embedStyleMap,exports.readEmbeddedStyleMap=readEmbeddedStyleMap,exports.styleMapping=function(){throw new Error("Use a raw string instead of mammoth.styleMapping e.g. \"p[style-name='Title'] => h1\" instead of mammoth.styleMapping(\"p[style-name='Title'] => h1\")")}}).call(this,require("buffer").Buffer)},{"./document-to-html":3,"./docx/docx-reader":9,"./docx/style-map":14,"./images":20,"./options-reader":22,"./raw-text":24,"./results":25,"./style-reader":26,"./transforms":30,"./underline":31,"./unzip":2,buffer:83,underscore:103}],22:[function(require,module,exports){function readOptions(options){return options=options||{},_.extend({},standardOptions,options,{customStyleMap:readStyleMap(options.styleMap),readStyleMap:function(){var styleMap=this.customStyleMap;return this.includeEmbeddedStyleMap&&(styleMap=styleMap.concat(readStyleMap(this.embeddedStyleMap))),this.includeDefaultStyleMap&&(styleMap=styleMap.concat(defaultStyleMap)),styleMap}})}function readStyleMap(styleMap){return styleMap?_.isString(styleMap)?styleMap.split("\n").map(function(line){return line.trim()}).filter(function(line){return""!==line&&"#"!==line.charAt(0)}):styleMap:[]}function identity(value){return value}exports.readOptions=readOptions;var _=require("underscore"),defaultStyleMap=exports._defaultStyleMap=["p.Heading1 => h1:fresh","p.Heading2 => h2:fresh","p.Heading3 => h3:fresh","p.Heading4 => h4:fresh","p.Heading5 => h5:fresh","p.Heading6 => h6:fresh","p[style-name='Heading 1'] => h1:fresh","p[style-name='Heading 2'] => h2:fresh","p[style-name='Heading 3'] => h3:fresh","p[style-name='Heading 4'] => h4:fresh","p[style-name='Heading 5'] => h5:fresh","p[style-name='Heading 6'] => h6:fresh","p[style-name='heading 1'] => h1:fresh","p[style-name='heading 2'] => h2:fresh","p[style-name='heading 3'] => h3:fresh","p[style-name='heading 4'] => h4:fresh","p[style-name='heading 5'] => h5:fresh","p[style-name='heading 6'] => h6:fresh","r[style-name='Strong'] => strong","p[style-name='footnote text'] => p:fresh","r[style-name='footnote reference'] =>","p[style-name='endnote text'] => p:fresh","r[style-name='endnote reference'] =>","p[style-name='annotation text'] => p:fresh","r[style-name='annotation reference'] =>","p[style-name='Footnote'] => p:fresh","r[style-name='Footnote anchor'] =>","p[style-name='Endnote'] => p:fresh","r[style-name='Endnote anchor'] =>","p:unordered-list(1) => ul > li:fresh","p:unordered-list(2) => ul|ol > li > ul > li:fresh","p:unordered-list(3) => ul|ol > li > ul|ol > li > ul > li:fresh","p:unordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh","p:unordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh","p:ordered-list(1) => ol > li:fresh","p:ordered-list(2) => ul|ol > li > ol > li:fresh","p:ordered-list(3) => ul|ol > li > ul|ol > li > ol > li:fresh","p:ordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh","p:ordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh","r[style-name='Hyperlink'] =>","p[style-name='Normal'] => p:fresh"],standardOptions=exports._standardOptions={transformDocument:identity,includeDefaultStyleMap:!0,includeEmbeddedStyleMap:!0}},{underscore:103}],23:[function(require,module,exports){function defer(){var resolve,reject,promise=new bluebird.Promise(function(resolveArg,rejectArg){resolve=resolveArg,reject=rejectArg});return{resolve:resolve,reject:reject,promise:promise}}var _=require("underscore"),bluebird=require("bluebird/js/release/promise")();exports.defer=defer,exports.when=bluebird.resolve,exports.resolve=bluebird.resolve,exports.all=bluebird.all,exports.props=bluebird.props,exports.reject=bluebird.reject,exports.promisify=bluebird.promisify,exports.mapSeries=bluebird.mapSeries,exports.attempt=bluebird.attempt,exports.nfcall=function(func){var args=Array.prototype.slice.call(arguments,1),promisedFunc=bluebird.promisify(func);return promisedFunc.apply(null,args)},bluebird.prototype.fail=bluebird.prototype.caught,bluebird.prototype.also=function(func){return this.then(function(value){var returnValue=_.extend({},value,func(value));return bluebird.props(returnValue)})}},{"bluebird/js/release/promise":68,underscore:103}],24:[function(require,module,exports){function convertElementToRawText(element){if("text"===element.type)return element.value;if(element.type===documents.types.tab)return" ";var tail="paragraph"===element.type?"\n\n":"";return(element.children||[]).map(convertElementToRawText).join("")+tail}var documents=require("./documents");exports.convertElementToRawText=convertElementToRawText},{"./documents":4}],25:[function(require,module,exports){function Result(value,messages){this.value=value,this.messages=messages||[]}function success(value){return new Result(value,[])}function warning(message){return{type:"warning",message:message}}function error(exception){return{type:"error",message:exception.message,error:exception}}function combineMessages(results){var messages=[];return _.flatten(_.pluck(results,"messages"),!0).forEach(function(message){containsMessage(messages,message)||messages.push(message)}),messages}function containsMessage(messages,message){return void 0!==_.find(messages,isSameMessage.bind(null,message))}function isSameMessage(first,second){return first.type===second.type&&first.message===second.message}var _=require("underscore");exports.Result=Result,exports.success=success,exports.warning=warning,exports.error=error,Result.prototype.map=function(func){return new Result(func(this.value),this.messages)},Result.prototype.flatMap=function(func){var funcResult=func(this.value);return new Result(funcResult.value,combineMessages([this,funcResult]))},Result.prototype.flatMapThen=function(func){var that=this;return func(this.value).then(function(otherResult){return new Result(otherResult.value,combineMessages([that,otherResult]))})},Result.combine=function(results){var values=_.flatten(_.pluck(results,"value")),messages=combineMessages(results);return new Result(values,messages)}},{underscore:103}],26:[function(require,module,exports){function readStyle(string){return parseString(styleRule,string)}function createStyleRule(){return lop.rules.sequence(lop.rules.sequence.capture(documentMatcherRule()),lop.rules.tokenOfType("whitespace"),lop.rules.tokenOfType("arrow"),lop.rules.sequence.capture(lop.rules.optional(lop.rules.sequence(lop.rules.tokenOfType("whitespace"),lop.rules.sequence.capture(htmlPathRule())).head())),lop.rules.tokenOfType("end")).map(function(documentMatcher,htmlPath){return{from:documentMatcher,to:htmlPath.valueOrElse(htmlPaths.empty)}})}function readDocumentMatcher(string){return parseString(documentMatcherRule(),string)}function documentMatcherRule(){function createMatcherSuffixesRule(rules){var matcherSuffix=lop.rules.firstOf.apply(lop.rules.firstOf,["matcher suffix"].concat(rules)),matcherSuffixes=lop.rules.zeroOrMore(matcherSuffix);return lop.rules.then(matcherSuffixes,function(suffixes){var matcherOptions={};return suffixes.forEach(function(suffix){_.extend(matcherOptions,suffix)}),matcherOptions})}var sequence=lop.rules.sequence,identifierToConstant=function(identifier,constant){ +return lop.rules.then(lop.rules.token("identifier",identifier),function(){return constant})},paragraphRule=identifierToConstant("p",documentMatchers.paragraph),runRule=identifierToConstant("r",documentMatchers.run),elementTypeRule=lop.rules.firstOf("p or r or table",paragraphRule,runRule),styleIdRule=lop.rules.then(classRule,function(styleId){return{styleId:styleId}}),styleNameMatcherRule=lop.rules.firstOf("style name matcher",lop.rules.then(lop.rules.sequence(lop.rules.tokenOfType("equals"),lop.rules.sequence.cut(),lop.rules.sequence.capture(stringRule)).head(),function(styleName){return{styleName:documentMatchers.equalTo(styleName)}}),lop.rules.then(lop.rules.sequence(lop.rules.tokenOfType("startsWith"),lop.rules.sequence.cut(),lop.rules.sequence.capture(stringRule)).head(),function(styleName){return{styleName:documentMatchers.startsWith(styleName)}})),styleNameRule=lop.rules.sequence(lop.rules.tokenOfType("open-square-bracket"),lop.rules.sequence.cut(),lop.rules.token("identifier","style-name"),lop.rules.sequence.capture(styleNameMatcherRule),lop.rules.tokenOfType("close-square-bracket")).head(),listTypeRule=lop.rules.firstOf("list type",identifierToConstant("ordered-list",{isOrdered:!0}),identifierToConstant("unordered-list",{isOrdered:!1})),listRule=sequence(lop.rules.tokenOfType("colon"),sequence.capture(listTypeRule),sequence.cut(),lop.rules.tokenOfType("open-paren"),sequence.capture(integerRule),lop.rules.tokenOfType("close-paren")).map(function(listType,levelNumber){return{list:{isOrdered:listType.isOrdered,levelIndex:levelNumber-1}}}),paragraphOrRun=sequence(sequence.capture(elementTypeRule),sequence.capture(createMatcherSuffixesRule([styleIdRule,styleNameRule,listRule]))).map(function(createMatcher,matcherOptions){return createMatcher(matcherOptions)}),table=sequence(lop.rules.token("identifier","table"),sequence.capture(createMatcherSuffixesRule([styleIdRule,styleNameRule]))).map(function(options){return documentMatchers.table(options)}),bold=identifierToConstant("b",documentMatchers.bold),italic=identifierToConstant("i",documentMatchers.italic),underline=identifierToConstant("u",documentMatchers.underline),strikethrough=identifierToConstant("strike",documentMatchers.strikethrough),allCaps=identifierToConstant("all-caps",documentMatchers.allCaps),smallCaps=identifierToConstant("small-caps",documentMatchers.smallCaps),commentReference=identifierToConstant("comment-reference",documentMatchers.commentReference),breakMatcher=sequence(lop.rules.token("identifier","br"),sequence.cut(),lop.rules.tokenOfType("open-square-bracket"),lop.rules.token("identifier","type"),lop.rules.tokenOfType("equals"),sequence.capture(stringRule),lop.rules.tokenOfType("close-square-bracket")).map(function(breakType){switch(breakType){case"line":return documentMatchers.lineBreak;case"page":return documentMatchers.pageBreak;case"column":return documentMatchers.columnBreak}});return lop.rules.firstOf("element type",paragraphOrRun,table,bold,italic,underline,strikethrough,allCaps,smallCaps,commentReference,breakMatcher)}function readHtmlPath(string){return parseString(htmlPathRule(),string)}function htmlPathRule(){var capture=lop.rules.sequence.capture,whitespaceRule=lop.rules.tokenOfType("whitespace"),freshRule=lop.rules.then(lop.rules.optional(lop.rules.sequence(lop.rules.tokenOfType("colon"),lop.rules.token("identifier","fresh"))),function(option){return option.map(function(){return!0}).valueOrElse(!1)}),separatorRule=lop.rules.then(lop.rules.optional(lop.rules.sequence(lop.rules.tokenOfType("colon"),lop.rules.token("identifier","separator"),lop.rules.tokenOfType("open-paren"),capture(stringRule),lop.rules.tokenOfType("close-paren")).head()),function(option){return option.valueOrElse("")}),tagNamesRule=lop.rules.oneOrMoreWithSeparator(identifierRule,lop.rules.tokenOfType("choice")),styleElementRule=lop.rules.sequence(capture(tagNamesRule),capture(lop.rules.zeroOrMore(classRule)),capture(freshRule),capture(separatorRule)).map(function(tagName,classNames,fresh,separator){var attributes={},options={};return classNames.length>0&&(attributes["class"]=classNames.join(" ")),fresh&&(options.fresh=!0),separator&&(options.separator=separator),htmlPaths.element(tagName,attributes,options)});return lop.rules.firstOf("html path",lop.rules.then(lop.rules.tokenOfType("bang"),function(){return htmlPaths.ignore}),lop.rules.then(lop.rules.zeroOrMoreWithSeparator(styleElementRule,lop.rules.sequence(whitespaceRule,lop.rules.tokenOfType("gt"),whitespaceRule)),htmlPaths.elements))}function decodeEscapeSequences(value){return value.replace(/\\(.)/g,function(match,code){return escapeSequences[code]||code})}function parseString(rule,string){var tokens=tokenise(string),parser=lop.Parser(),parseResult=parser.parseTokens(rule,tokens);return parseResult.isSuccess()?results.success(parseResult.value()):new results.Result(null,[results.warning(describeFailure(string,parseResult))])}function describeFailure(input,parseResult){return"Did not understand this style mapping, so ignored it: "+input+"\n"+parseResult.errors().map(describeError).join("\n")}function describeError(error){return"Error was at character number "+error.characterNumber()+": Expected "+error.expected+" but got "+error.actual}var _=require("underscore"),lop=require("lop"),documentMatchers=require("./styles/document-matchers"),htmlPaths=require("./styles/html-paths"),tokenise=require("./styles/parser/tokeniser").tokenise,results=require("./results");exports.readHtmlPath=readHtmlPath,exports.readDocumentMatcher=readDocumentMatcher,exports.readStyle=readStyle;var identifierRule=lop.rules.then(lop.rules.tokenOfType("identifier"),decodeEscapeSequences),integerRule=lop.rules.tokenOfType("integer"),stringRule=lop.rules.then(lop.rules.tokenOfType("string"),decodeEscapeSequences),escapeSequences={n:"\n",r:"\r",t:" "},classRule=lop.rules.sequence(lop.rules.tokenOfType("dot"),lop.rules.sequence.cut(),lop.rules.sequence.capture(identifierRule)).head(),styleRule=createStyleRule()},{"./results":25,"./styles/document-matchers":27,"./styles/html-paths":28,"./styles/parser/tokeniser":29,lop:89,underscore:103}],27:[function(require,module,exports){function paragraph(options){return new Matcher("paragraph",options)}function run(options){return new Matcher("run",options)}function table(options){return new Matcher("table",options)}function Matcher(elementType,options){options=options||{},this._elementType=elementType,this._styleId=options.styleId,this._styleName=options.styleName,options.list&&(this._listIndex=options.list.levelIndex,this._listIsOrdered=options.list.isOrdered)}function isList(element,levelIndex,isOrdered){return element.numbering&&element.numbering.level==levelIndex&&element.numbering.isOrdered==isOrdered}function equalTo(value){return{operator:operatorEqualTo,operand:value}}function startsWith(value){return{operator:operatorStartsWith,operand:value}}function operatorEqualTo(first,second){return first.toUpperCase()===second.toUpperCase()}function operatorStartsWith(first,second){return 0===second.toUpperCase().indexOf(first.toUpperCase())}exports.paragraph=paragraph,exports.run=run,exports.table=table,exports.bold=new Matcher("bold"),exports.italic=new Matcher("italic"),exports.underline=new Matcher("underline"),exports.strikethrough=new Matcher("strikethrough"),exports.allCaps=new Matcher("allCaps"),exports.smallCaps=new Matcher("smallCaps"),exports.commentReference=new Matcher("commentReference"),exports.lineBreak=new Matcher("break",{breakType:"line"}),exports.pageBreak=new Matcher("break",{breakType:"page"}),exports.columnBreak=new Matcher("break",{breakType:"column"}),exports.equalTo=equalTo,exports.startsWith=startsWith,Matcher.prototype.matches=function(element){return element.type===this._elementType&&(void 0===this._styleId||element.styleId===this._styleId)&&(void 0===this._styleName||element.styleName&&this._styleName.operator(this._styleName.operand,element.styleName))&&(void 0===this._listIndex||isList(element,this._listIndex,this._listIsOrdered))&&(void 0===this._breakType||this._breakType===element.breakType)}},{}],28:[function(require,module,exports){function topLevelElement(tagName,attributes){return elements([element(tagName,attributes,{fresh:!0})])}function elements(elementStyles){return new HtmlPath(elementStyles.map(function(elementStyle){return _.isString(elementStyle)?element(elementStyle):elementStyle}))}function HtmlPath(elements){this._elements=elements}function element(tagName,attributes,options){return options=options||{},new Element(tagName,attributes,options)}function Element(tagName,attributes,options){var tagNames={};_.isArray(tagName)?(tagName.forEach(function(tagName){tagNames[tagName]=!0}),tagName=tagName[0]):tagNames[tagName]=!0,this.tagName=tagName,this.tagNames=tagNames,this.attributes=attributes||{},this.fresh=options.fresh,this.separator=options.separator}var _=require("underscore"),html=require("../html");exports.topLevelElement=topLevelElement,exports.elements=elements,exports.element=element,HtmlPath.prototype.wrap=function(children){for(var result=children(),index=this._elements.length-1;index>=0;index--)result=this._elements[index].wrapNodes(result);return result},Element.prototype.matchesElement=function(element){return this.tagNames[element.tagName]&&_.isEqual(this.attributes||{},element.attributes||{})},Element.prototype.wrap=function(generateNodes){return this.wrapNodes(generateNodes())},Element.prototype.wrapNodes=function(nodes){return[html.elementWithTag(this,nodes)]},exports.empty=elements([]),exports.ignore={wrap:function(){return[]}}},{"../html":18,underscore:103}],29:[function(require,module,exports){function tokenise(string){var identifierCharacter="(?:[a-zA-Z\\-_]|\\\\.)",tokeniser=new RegexTokeniser([{name:"identifier",regex:new RegExp("("+identifierCharacter+"(?:"+identifierCharacter+"|[0-9])*)")},{name:"dot",regex:/\./},{name:"colon",regex:/:/},{name:"gt",regex:/>/},{name:"whitespace",regex:/\s+/},{name:"arrow",regex:/=>/},{name:"equals",regex:/=/},{name:"startsWith",regex:/\^=/},{name:"open-paren",regex:/\(/},{name:"close-paren",regex:/\)/},{name:"open-square-bracket",regex:/\[/},{name:"close-square-bracket",regex:/\]/},{name:"string",regex:new RegExp(stringPrefix+"'")},{name:"unterminated-string",regex:new RegExp(stringPrefix)},{name:"integer",regex:/([0-9]+)/},{name:"choice",regex:/\|/},{name:"bang",regex:/(!)/}]);return tokeniser.tokenise(string)}var lop=require("lop"),RegexTokeniser=lop.RegexTokeniser;exports.tokenise=tokenise;var stringPrefix="'((?:\\\\.|[^'])*)"},{lop:89}],30:[function(require,module,exports){function paragraph(transform){return elementsOfType("paragraph",transform)}function run(transform){return elementsOfType("run",transform)}function elementsOfType(elementType,transform){return elements(function(element){return element.type===elementType?transform(element):element})}function elements(transform){return function transformElement(element){if(element.children){var children=_.map(element.children,transformElement);element=_.extend(element,{children:children})}return transform(element)}}function getDescendantsOfType(element,type){return getDescendants(element).filter(function(descendant){return descendant.type===type})}function getDescendants(element){var descendants=[];return visitDescendants(element,function(descendant){descendants.push(descendant)}),descendants}function visitDescendants(element,visit){element.children&&element.children.forEach(function(child){visitDescendants(child,visit),visit(child)})}var _=require("underscore");exports.paragraph=paragraph,exports.run=run,exports._elements=elements,exports.getDescendantsOfType=getDescendantsOfType,exports.getDescendants=getDescendants},{underscore:103}],31:[function(require,module,exports){function element(name){return function(html){return Html.elementWithTag(htmlPaths.element(name),[html])}}var htmlPaths=require("./styles/html-paths"),Html=require("./html");exports.element=element},{"./html":18,"./styles/html-paths":28}],32:[function(require,module,exports){function writer(options){return options=options||{},options.prettyPrint?prettyWriter():simpleWriter()}function prettyWriter(){function open(tagName,attributes){indentedElements[tagName]&&indent(),stack.push(tagName),writer.open(tagName,attributes),indentedElements[tagName]&&indentationLevel++,start=!1}function close(tagName){indentedElements[tagName]&&(indentationLevel--,indent()),stack.pop(),writer.close(tagName)}function text(value){startText();var text=isInPre()?value:value.replace("\n","\n"+indentation);writer.text(text)}function selfClosing(tagName,attributes){indent(),writer.selfClosing(tagName,attributes)}function insideIndentedElement(){return 0===stack.length||indentedElements[stack[stack.length-1]]}function startText(){inText||(indent(),inText=!0)}function indent(){if(inText=!1,!start&&insideIndentedElement()&&!isInPre()){writer._append("\n");for(var i=0;indentationLevel>i;i++)writer._append(indentation)}}function isInPre(){return _.some(stack,function(tagName){return"pre"===tagName})}var indentationLevel=0,indentation=" ",stack=[],start=!0,inText=!1,writer=simpleWriter();return{asString:writer.asString,open:open,close:close,text:text,selfClosing:selfClosing}}function simpleWriter(){function open(tagName,attributes){var attributeString=generateAttributeString(attributes);fragments.push("<"+tagName+attributeString+">")}function close(tagName){fragments.push("")}function selfClosing(tagName,attributes){var attributeString=generateAttributeString(attributes);fragments.push("<"+tagName+attributeString+" />")}function generateAttributeString(attributes){return _.map(attributes,function(value,key){return" "+key+'="'+escapeHtmlAttribute(value)+'"'}).join("")}function text(value){fragments.push(escapeHtmlText(value))}function append(html){fragments.push(html)}function asString(){return fragments.join("")}var fragments=[];return{asString:asString,open:open,close:close,text:text,selfClosing:selfClosing,_append:append}}function escapeHtmlText(value){return value.replace(/&/g,"&").replace(//g,">")}function escapeHtmlAttribute(value){return value.replace(/&/g,"&").replace(/"/g,""").replace(//g,">")}var _=require("underscore");exports.writer=writer;var indentedElements={div:!0,p:!0,ul:!0,li:!0}},{underscore:103}],33:[function(require,module,exports){function writer(options){return options=options||{},"markdown"===options.outputFormat?markdownWriter.writer():htmlWriter.writer(options)}var htmlWriter=require("./html-writer"),markdownWriter=require("./markdown-writer");exports.writer=writer},{"./html-writer":32,"./markdown-writer":34}],34:[function(require,module,exports){function symmetricMarkdownElement(end){return markdownElement(end,end)}function markdownElement(start,end){return function(){return{start:start,end:end}}}function markdownLink(attributes){var href=attributes.href||"";return href?{start:"[",end:"]("+href+")",anchorPosition:"before"}:{}}function markdownImage(attributes){var src=attributes.src||"",altText=attributes.alt||"";return src||altText?{start:"!["+altText+"]("+src+")"}:{}}function markdownList(options){return function(attributes,list){return{start:list?"\n":"",end:list?"":"\n",list:{isOrdered:options.isOrdered,indent:list?list.indent+1:0,count:0}}}}function markdownListItem(attributes,list,listItem){list=list||{indent:0,isOrdered:!1,count:0},list.count++,listItem.hasClosed=!1;var bullet=list.isOrdered?list.count+".":"-",start=repeatString(" ",list.indent)+bullet+" ";return{start:start,end:function(){return listItem.hasClosed?void 0:(listItem.hasClosed=!0,"\n")}}}function repeatString(value,count){return new Array(count+1).join(value)}function markdownWriter(){function open(tagName,attributes){attributes=attributes||{};var createElement=htmlToMarkdown[tagName]||function(){return{}},element=createElement(attributes,list,listItem);elementStack.push({end:element.end,list:list}),element.list&&(list=element.list);var anchorBeforeStart="before"===element.anchorPosition;anchorBeforeStart&&writeAnchor(attributes),fragments.push(element.start||""),anchorBeforeStart||writeAnchor(attributes)}function writeAnchor(attributes){attributes.id&&fragments.push('')}function close(tagName){var element=elementStack.pop();list=element.list;var end=_.isFunction(element.end)?element.end():element.end;fragments.push(end||"")}function selfClosing(tagName,attributes){open(tagName,attributes),close(tagName)}function text(value){fragments.push(escapeMarkdown(value))}function asString(){return fragments.join("")}var fragments=[],elementStack=[],list=null,listItem={};return{asString:asString,open:open,close:close,text:text,selfClosing:selfClosing}}function escapeMarkdown(value){return value.replace(/\\/g,"\\\\").replace(/([\`\*_\{\}\[\]\(\)\#\+\-\.\!])/g,"\\$1")}var _=require("underscore"),htmlToMarkdown={p:markdownElement("","\n\n"),br:markdownElement(""," \n"),ul:markdownList({isOrdered:!1}),ol:markdownList({isOrdered:!0}),li:markdownListItem,strong:symmetricMarkdownElement("__"),em:symmetricMarkdownElement("*"),a:markdownLink,img:markdownImage};!function(){for(var i=1;6>=i;i++)htmlToMarkdown["h"+i]=markdownElement(repeatString("#",i)+" ","\n\n")}(),exports.writer=markdownWriter},{underscore:103}],35:[function(require,module,exports){var nodes=require("./nodes");exports.Element=nodes.Element,exports.element=nodes.element,exports.text=nodes.text,exports.readString=require("./reader").readString,exports.writeString=require("./writer").writeString},{"./nodes":36,"./reader":37,"./writer":38}],36:[function(require,module,exports){function Element(name,attributes,children){this.type="element",this.name=name,this.attributes=attributes||{},this.children=children||[]}function toElementList(array){return _.extend(array,elementListPrototype)}var _=require("underscore");exports.Element=Element,exports.element=function(name,attributes,children){return new Element(name,attributes,children)},exports.text=function(value){return{type:"text",value:value}};var emptyElement={first:function(){return null},firstOrEmpty:function(){return emptyElement},attributes:{}};Element.prototype.first=function(name){return _.find(this.children,function(child){return child.name===name})},Element.prototype.firstOrEmpty=function(name){return this.first(name)||emptyElement},Element.prototype.getElementsByTagName=function(name){var elements=_.filter(this.children,function(child){return child.name===name});return toElementList(elements)},Element.prototype.text=function(){if(0===this.children.length)return"";if(1!==this.children.length||"text"!==this.children[0].type)throw new Error("Not implemented");return this.children[0].value};var elementListPrototype={getElementsByTagName:function(name){return toElementList(_.flatten(this.map(function(element){return element.getElementsByTagName(name)},!0)))}}},{underscore:103}],37:[function(require,module,exports){function readString(xmlString,namespaceMap){function convertNode(node){switch(node.nodeType){case Node.ELEMENT_NODE:return convertElement(node);case Node.TEXT_NODE:return nodes.text(node.nodeValue)}}function convertElement(element){var convertedName=convertName(element),convertedChildren=[];_.forEach(element.childNodes,function(childNode){var convertedNode=convertNode(childNode);convertedNode&&convertedChildren.push(convertedNode)});var convertedAttributes={};return _.forEach(element.attributes,function(attribute){convertedAttributes[convertName(attribute)]=attribute.value}),new Element(convertedName,convertedAttributes,convertedChildren)}function convertName(node){if(node.namespaceURI){var prefix,mappedPrefix=namespaceMap[node.namespaceURI];return prefix=mappedPrefix?mappedPrefix+":":"{"+node.namespaceURI+"}",prefix+node.localName}return node.localName}namespaceMap=namespaceMap||{};try{var document=xmldom.parseFromString(xmlString,"text/xml")}catch(error){return promises.reject(error)}return"parsererror"===document.documentElement.tagName?promises.resolve(new Error(document.documentElement.textContent)):promises.resolve(convertNode(document.documentElement))}var promises=require("../promises"),_=require("underscore"),xmldom=require("./xmldom"),nodes=require("./nodes"),Element=nodes.Element;exports.readString=readString;var Node=xmldom.Node},{"../promises":23,"./nodes":36,"./xmldom":39,underscore:103}],38:[function(require,module,exports){function writeString(root,namespaces){function writeNode(builder,node){return nodeWriters[node.type](builder,node)}function writeElement(builder,element){var elementBuilder=builder.element(mapElementName(element.name),element.attributes);element.children.forEach(function(child){writeNode(elementBuilder,child)})}function mapElementName(name){var longFormMatch=/^\{(.*)\}(.*)$/.exec(name);if(longFormMatch){var prefix=uriToPrefix[longFormMatch[1]];return prefix+(""===prefix?"":":")+longFormMatch[2]}return name}function writeDocument(root){var builder=xmlbuilder.create(mapElementName(root.name),{version:"1.0",encoding:"UTF-8",standalone:!0});return _.forEach(namespaces,function(uri,prefix){var key="xmlns"+(""===prefix?"":":"+prefix);builder.attribute(key,uri)}),root.children.forEach(function(child){writeNode(builder,child)}),builder.end()}var uriToPrefix=_.invert(namespaces),nodeWriters={element:writeElement,text:writeTextNode};return writeDocument(root)}function writeTextNode(builder,node){builder.text(node.value)}var _=require("underscore"),xmlbuilder=require("xmlbuilder");exports.writeString=writeString},{underscore:103,xmlbuilder:128}],39:[function(require,module,exports){function parseFromString(string){var error=null,domParser=new xmldom.DOMParser({errorHandler:function(level,message){error={level:level,message:message}}}),document=domParser.parseFromString(string);if(null===error)return document;throw new Error(error.level+": "+error.message)}var xmldom=require("@xmldom/xmldom"),dom=require("@xmldom/xmldom/lib/dom");exports.parseFromString=parseFromString,exports.Node=dom.Node},{"@xmldom/xmldom":45,"@xmldom/xmldom/lib/dom":43}],40:[function(require,module,exports){function openArrayBuffer(arrayBuffer){return JSZip.loadAsync(arrayBuffer).then(function(zipFile){function exists(name){return null!==zipFile.file(name)}function read(name,encoding){return zipFile.file(name).async("uint8array").then(function(array){if("base64"===encoding)return base64js.fromByteArray(array);if(encoding){var decoder=new TextDecoder(encoding);return decoder.decode(array)}return array})}function write(name,contents){zipFile.file(name,contents)}function toArrayBuffer(){return zipFile.generateAsync({type:"arraybuffer"})}return{exists:exists,read:read,write:write,toArrayBuffer:toArrayBuffer}})}function splitPath(path){var lastIndex=path.lastIndexOf("/");return-1===lastIndex?{dirname:"",basename:path}:{dirname:path.substring(0,lastIndex),basename:path.substring(lastIndex+1)}}function joinPath(){var nonEmptyPaths=Array.prototype.filter.call(arguments,function(path){return path}),relevantPaths=[];return nonEmptyPaths.forEach(function(path){/^\//.test(path)?relevantPaths=[path]:relevantPaths.push(path)}),relevantPaths.join("/")}var base64js=require("base64-js"),JSZip=require("jszip");exports.openArrayBuffer=openArrayBuffer,exports.splitPath=splitPath,exports.joinPath=joinPath},{"base64-js":47,jszip:88}],41:[function(require,module,exports){"use strict";function find(list,predicate,ac){if(void 0===ac&&(ac=Array.prototype),list&&"function"==typeof ac.find)return ac.find.call(list,predicate);for(var i=0;i=start+length||start?new java.lang.String(chars,start,length)+"":chars}function appendElement(hander,node){hander.currentElement?hander.currentElement.appendChild(node):hander.doc.appendChild(node)}var conventions=require("./conventions"),dom=require("./dom"),entities=require("./entities"),sax=require("./sax"),DOMImplementation=dom.DOMImplementation,NAMESPACE=conventions.NAMESPACE,ParseError=sax.ParseError,XMLReader=sax.XMLReader;DOMParser.prototype.parseFromString=function(source,mimeType){var options=this.options,sax=new XMLReader,domBuilder=options.domBuilder||new DOMHandler,errorHandler=options.errorHandler,locator=options.locator,defaultNSMap=options.xmlns||{},isHTML=/\/x?html?$/.test(mimeType),entityMap=isHTML?entities.HTML_ENTITIES:entities.XML_ENTITIES;locator&&domBuilder.setDocumentLocator(locator),sax.errorHandler=buildErrorHandler(errorHandler,domBuilder,locator),sax.domBuilder=options.domBuilder||domBuilder,isHTML&&(defaultNSMap[""]=NAMESPACE.HTML),defaultNSMap.xml=defaultNSMap.xml||NAMESPACE.XML;var normalize=options.normalizeLineEndings||normalizeLineEndings;return source&&"string"==typeof source?sax.parse(normalize(source),defaultNSMap,entityMap):sax.errorHandler.error("invalid doc source"),domBuilder.doc},DOMHandler.prototype={startDocument:function(){this.doc=(new DOMImplementation).createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(namespaceURI,localName,qName,attrs){var doc=this.doc,el=doc.createElementNS(namespaceURI,qName||localName),len=attrs.length;appendElement(this,el),this.currentElement=el,this.locator&&position(this.locator,el);for(var i=0;len>i;i++){var namespaceURI=attrs.getURI(i),value=attrs.getValue(i),qName=attrs.getQName(i),attr=doc.createAttributeNS(namespaceURI,qName);this.locator&&position(attrs.getLocator(i),attr),attr.value=attr.nodeValue=value,el.setAttributeNode(attr)}},endElement:function(namespaceURI,localName,qName){var current=this.currentElement;current.tagName;this.currentElement=current.parentNode},startPrefixMapping:function(prefix,uri){},endPrefixMapping:function(prefix){},processingInstruction:function(target,data){var ins=this.doc.createProcessingInstruction(target,data);this.locator&&position(this.locator,ins),appendElement(this,ins)},ignorableWhitespace:function(ch,start,length){},characters:function(chars,start,length){if(chars=_toString.apply(this,arguments)){if(this.cdata)var charNode=this.doc.createCDATASection(chars);else var charNode=this.doc.createTextNode(chars);this.currentElement?this.currentElement.appendChild(charNode):/^\s*$/.test(chars)&&this.doc.appendChild(charNode),this.locator&&position(this.locator,charNode)}},skippedEntity:function(name){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(locator){(this.locator=locator)&&(locator.lineNumber=0)},comment:function(chars,start,length){chars=_toString.apply(this,arguments);var comm=this.doc.createComment(chars);this.locator&&position(this.locator,comm),appendElement(this,comm)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(name,publicId,systemId){var impl=this.doc.implementation;if(impl&&impl.createDocumentType){var dt=impl.createDocumentType(name,publicId,systemId);this.locator&&position(this.locator,dt),appendElement(this,dt),this.doc.doctype=dt}},warning:function(error){console.warn("[xmldom warning] "+error,_locator(this.locator))},error:function(error){console.error("[xmldom error] "+error,_locator(this.locator))},fatalError:function(error){throw new ParseError(error,this.locator)}},"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(key){DOMHandler.prototype[key]=function(){return null}}),exports.__DOMHandler=DOMHandler,exports.normalizeLineEndings=normalizeLineEndings,exports.DOMParser=DOMParser},{"./conventions":41,"./dom":43,"./entities":44,"./sax":46}],43:[function(require,module,exports){function notEmptyString(input){return""!==input}function splitOnASCIIWhitespace(input){return input?input.split(/[\t\n\f\r ]+/).filter(notEmptyString):[]}function orderedSetReducer(current,element){return current.hasOwnProperty(element)||(current[element]=!0),current}function toOrderedSet(input){if(!input)return[];var list=splitOnASCIIWhitespace(input);return Object.keys(list.reduce(orderedSetReducer,{}))}function arrayIncludes(list){return function(element){return list&&-1!==list.indexOf(element)}}function copy(src,dest){for(var p in src)Object.prototype.hasOwnProperty.call(src,p)&&(dest[p]=src[p])}function _extends(Class,Super){function t(){}var pt=Class.prototype;pt instanceof Super||(t.prototype=Super.prototype,t=new t,copy(pt,t),Class.prototype=pt=t),pt.constructor!=Class&&("function"!=typeof Class&&console.error("unknown Class:"+Class),pt.constructor=Class)}function DOMException(code,message){if(message instanceof Error)var error=message;else error=this,Error.call(this,ExceptionMessage[code]),this.message=ExceptionMessage[code],Error.captureStackTrace&&Error.captureStackTrace(this,DOMException);return error.code=code,message&&(this.message=this.message+": "+message),error}function NodeList(){}function LiveNodeList(node,refresh){this._node=node,this._refresh=refresh,_updateLiveList(this)}function _updateLiveList(list){var inc=list._node._inc||list._node.ownerDocument._inc;if(list._inc!=inc){var ls=list._refresh(list._node);__set__(list,"length",ls.length),copy(ls,list),list._inc=inc}}function NamedNodeMap(){}function _findNodeIndex(list,node){for(var i=list.length;i--;)if(list[i]===node)return i}function _addNamedNode(el,list,newAttr,oldAttr){if(oldAttr?list[_findNodeIndex(list,oldAttr)]=newAttr:list[list.length++]=newAttr,el){newAttr.ownerElement=el;var doc=el.ownerDocument;doc&&(oldAttr&&_onRemoveAttribute(doc,el,oldAttr),_onAddAttribute(doc,el,newAttr))}}function _removeNamedNode(el,list,attr){var i=_findNodeIndex(list,attr);if(!(i>=0))throw new DOMException(NOT_FOUND_ERR,new Error(el.tagName+"@"+attr));for(var lastIndex=list.length-1;lastIndex>i;)list[i]=list[++i];if(list.length=lastIndex,el){var doc=el.ownerDocument;doc&&(_onRemoveAttribute(doc,el,attr),attr.ownerElement=null)}}function DOMImplementation(){} +function Node(){}function _xmlEncoder(c){return"<"==c&&"<"||">"==c&&">"||"&"==c&&"&"||'"'==c&&"""||"&#"+c.charCodeAt()+";"}function _visitNode(node,callback){if(callback(node))return!0;if(node=node.firstChild)do if(_visitNode(node,callback))return!0;while(node=node.nextSibling)}function Document(){this.ownerDocument=this}function _onAddAttribute(doc,el,newAttr){doc&&doc._inc++;var ns=newAttr.namespaceURI;ns===NAMESPACE.XMLNS&&(el._nsMap[newAttr.prefix?newAttr.localName:""]=newAttr.value)}function _onRemoveAttribute(doc,el,newAttr,remove){doc&&doc._inc++;var ns=newAttr.namespaceURI;ns===NAMESPACE.XMLNS&&delete el._nsMap[newAttr.prefix?newAttr.localName:""]}function _onUpdateChild(doc,el,newChild){if(doc&&doc._inc){doc._inc++;var cs=el.childNodes;if(newChild)cs[cs.length++]=newChild;else{for(var child=el.firstChild,i=0;child;)cs[i++]=child,child=child.nextSibling;cs.length=i,delete cs[cs.length]}}}function _removeChild(parentNode,child){var previous=child.previousSibling,next=child.nextSibling;return previous?previous.nextSibling=next:parentNode.firstChild=next,next?next.previousSibling=previous:parentNode.lastChild=previous,child.parentNode=null,child.previousSibling=null,child.nextSibling=null,_onUpdateChild(parentNode.ownerDocument,parentNode),child}function hasValidParentNodeType(node){return node&&(node.nodeType===Node.DOCUMENT_NODE||node.nodeType===Node.DOCUMENT_FRAGMENT_NODE||node.nodeType===Node.ELEMENT_NODE)}function hasInsertableNodeType(node){return node&&(isElementNode(node)||isTextNode(node)||isDocTypeNode(node)||node.nodeType===Node.DOCUMENT_FRAGMENT_NODE||node.nodeType===Node.COMMENT_NODE||node.nodeType===Node.PROCESSING_INSTRUCTION_NODE)}function isDocTypeNode(node){return node&&node.nodeType===Node.DOCUMENT_TYPE_NODE}function isElementNode(node){return node&&node.nodeType===Node.ELEMENT_NODE}function isTextNode(node){return node&&node.nodeType===Node.TEXT_NODE}function isElementInsertionPossible(doc,child){var parentChildNodes=doc.childNodes||[];if(find(parentChildNodes,isElementNode)||isDocTypeNode(child))return!1;var docTypeNode=find(parentChildNodes,isDocTypeNode);return!(child&&docTypeNode&&parentChildNodes.indexOf(docTypeNode)>parentChildNodes.indexOf(child))}function isElementReplacementPossible(doc,child){function hasElementChildThatIsNotChild(node){return isElementNode(node)&&node!==child}var parentChildNodes=doc.childNodes||[];if(find(parentChildNodes,hasElementChildThatIsNotChild))return!1;var docTypeNode=find(parentChildNodes,isDocTypeNode);return!(child&&docTypeNode&&parentChildNodes.indexOf(docTypeNode)>parentChildNodes.indexOf(child))}function assertPreInsertionValidity1to5(parent,node,child){if(!hasValidParentNodeType(parent))throw new DOMException(HIERARCHY_REQUEST_ERR,"Unexpected parent node type "+parent.nodeType);if(child&&child.parentNode!==parent)throw new DOMException(NOT_FOUND_ERR,"child not in parent");if(!hasInsertableNodeType(node)||isDocTypeNode(node)&&parent.nodeType!==Node.DOCUMENT_NODE)throw new DOMException(HIERARCHY_REQUEST_ERR,"Unexpected node type "+node.nodeType+" for parent node type "+parent.nodeType)}function assertPreInsertionValidityInDocument(parent,node,child){var parentChildNodes=parent.childNodes||[],nodeChildNodes=node.childNodes||[];if(node.nodeType===Node.DOCUMENT_FRAGMENT_NODE){var nodeChildElements=nodeChildNodes.filter(isElementNode);if(nodeChildElements.length>1||find(nodeChildNodes,isTextNode))throw new DOMException(HIERARCHY_REQUEST_ERR,"More than one element or text in fragment");if(1===nodeChildElements.length&&!isElementInsertionPossible(parent,child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Element in fragment can not be inserted before doctype")}if(isElementNode(node)&&!isElementInsertionPossible(parent,child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Only one element can be added and only after doctype");if(isDocTypeNode(node)){if(find(parentChildNodes,isDocTypeNode))throw new DOMException(HIERARCHY_REQUEST_ERR,"Only one doctype is allowed");var parentElementChild=find(parentChildNodes,isElementNode);if(child&&parentChildNodes.indexOf(parentElementChild)1||find(nodeChildNodes,isTextNode))throw new DOMException(HIERARCHY_REQUEST_ERR,"More than one element or text in fragment");if(1===nodeChildElements.length&&!isElementReplacementPossible(parent,child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Element in fragment can not be inserted before doctype")}if(isElementNode(node)&&!isElementReplacementPossible(parent,child))throw new DOMException(HIERARCHY_REQUEST_ERR,"Only one element can be added and only after doctype");if(isDocTypeNode(node)){if(find(parentChildNodes,hasDoctypeChildThatIsNotChild))throw new DOMException(HIERARCHY_REQUEST_ERR,"Only one doctype is allowed");var parentElementChild=find(parentChildNodes,isElementNode);if(child&&parentChildNodes.indexOf(parentElementChild)=0;nsi--){var namespace=visibleNamespaces[nsi];if(""===namespace.prefix&&namespace.namespace===node.namespaceURI){defaultNS=namespace.namespace;break}}if(defaultNS!==node.namespaceURI)for(var nsi=visibleNamespaces.length-1;nsi>=0;nsi--){var namespace=visibleNamespaces[nsi];if(namespace.namespace===node.namespaceURI){namespace.prefix&&(prefixedNodeName=namespace.prefix+":"+nodeName);break}}}buf.push("<",prefixedNodeName);for(var i=0;len>i;i++){var attr=attrs.item(i);"xmlns"==attr.prefix?visibleNamespaces.push({prefix:attr.localName,namespace:attr.value}):"xmlns"==attr.nodeName&&visibleNamespaces.push({prefix:"",namespace:attr.value})}for(var i=0;len>i;i++){var attr=attrs.item(i);if(needNamespaceDefine(attr,isHTML,visibleNamespaces)){var prefix=attr.prefix||"",uri=attr.namespaceURI;addSerializedAttribute(buf,prefix?"xmlns:"+prefix:"xmlns",uri),visibleNamespaces.push({prefix:prefix,namespace:uri})}serializeToString(attr,buf,isHTML,nodeFilter,visibleNamespaces)}if(nodeName===prefixedNodeName&&needNamespaceDefine(node,isHTML,visibleNamespaces)){var prefix=node.prefix||"",uri=node.namespaceURI;addSerializedAttribute(buf,prefix?"xmlns:"+prefix:"xmlns",uri),visibleNamespaces.push({prefix:prefix,namespace:uri})}if(child||isHTML&&!/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)){if(buf.push(">"),isHTML&&/^script$/i.test(nodeName))for(;child;)child.data?buf.push(child.data):serializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces.slice()),child=child.nextSibling;else for(;child;)serializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces.slice()),child=child.nextSibling;buf.push("")}else buf.push("/>");return;case DOCUMENT_NODE:case DOCUMENT_FRAGMENT_NODE:for(var child=node.firstChild;child;)serializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces.slice()),child=child.nextSibling;return;case ATTRIBUTE_NODE:return addSerializedAttribute(buf,node.name,node.value);case TEXT_NODE:return buf.push(node.data.replace(/[<&>]/g,_xmlEncoder));case CDATA_SECTION_NODE:return buf.push("");case COMMENT_NODE:return buf.push("");case DOCUMENT_TYPE_NODE:var pubid=node.publicId,sysid=node.systemId;if(buf.push("");else if(sysid&&"."!=sysid)buf.push(" SYSTEM ",sysid,">");else{var sub=node.internalSubset;sub&&buf.push(" [",sub,"]"),buf.push(">")}return;case PROCESSING_INSTRUCTION_NODE:return buf.push("");case ENTITY_REFERENCE_NODE:return buf.push("&",node.nodeName,";");default:buf.push("??",node.nodeName)}}function importNode(doc,node,deep){var node2;switch(node.nodeType){case ELEMENT_NODE:node2=node.cloneNode(!1),node2.ownerDocument=doc;case DOCUMENT_FRAGMENT_NODE:break;case ATTRIBUTE_NODE:deep=!0}if(node2||(node2=node.cloneNode(!1)),node2.ownerDocument=doc,node2.parentNode=null,deep)for(var child=node.firstChild;child;)node2.appendChild(importNode(doc,child,deep)),child=child.nextSibling;return node2}function cloneNode(doc,node,deep){var node2=new node.constructor;for(var n in node)if(Object.prototype.hasOwnProperty.call(node,n)){var v=node[n];"object"!=typeof v&&v!=node2[n]&&(node2[n]=v)}switch(node.childNodes&&(node2.childNodes=new NodeList),node2.ownerDocument=doc,node2.nodeType){case ELEMENT_NODE:var attrs=node.attributes,attrs2=node2.attributes=new NamedNodeMap,len=attrs.length;attrs2._ownerElement=node2;for(var i=0;len>i;i++)node2.setAttributeNode(cloneNode(doc,attrs.item(i),!0));break;case ATTRIBUTE_NODE:deep=!0}if(deep)for(var child=node.firstChild;child;)node2.appendChild(cloneNode(doc,child,deep)),child=child.nextSibling;return node2}function __set__(object,key,value){object[key]=value}function getTextContent(node){switch(node.nodeType){case ELEMENT_NODE:case DOCUMENT_FRAGMENT_NODE:var buf=[];for(node=node.firstChild;node;)7!==node.nodeType&&8!==node.nodeType&&buf.push(getTextContent(node)),node=node.nextSibling;return buf.join("");default:return node.nodeValue}}var conventions=require("./conventions"),find=conventions.find,NAMESPACE=conventions.NAMESPACE,NodeType={},ELEMENT_NODE=NodeType.ELEMENT_NODE=1,ATTRIBUTE_NODE=NodeType.ATTRIBUTE_NODE=2,TEXT_NODE=NodeType.TEXT_NODE=3,CDATA_SECTION_NODE=NodeType.CDATA_SECTION_NODE=4,ENTITY_REFERENCE_NODE=NodeType.ENTITY_REFERENCE_NODE=5,ENTITY_NODE=NodeType.ENTITY_NODE=6,PROCESSING_INSTRUCTION_NODE=NodeType.PROCESSING_INSTRUCTION_NODE=7,COMMENT_NODE=NodeType.COMMENT_NODE=8,DOCUMENT_NODE=NodeType.DOCUMENT_NODE=9,DOCUMENT_TYPE_NODE=NodeType.DOCUMENT_TYPE_NODE=10,DOCUMENT_FRAGMENT_NODE=NodeType.DOCUMENT_FRAGMENT_NODE=11,NOTATION_NODE=NodeType.NOTATION_NODE=12,ExceptionCode={},ExceptionMessage={},HIERARCHY_REQUEST_ERR=(ExceptionCode.INDEX_SIZE_ERR=(ExceptionMessage[1]="Index size error",1),ExceptionCode.DOMSTRING_SIZE_ERR=(ExceptionMessage[2]="DOMString size error",2),ExceptionCode.HIERARCHY_REQUEST_ERR=(ExceptionMessage[3]="Hierarchy request error",3)),NOT_FOUND_ERR=(ExceptionCode.WRONG_DOCUMENT_ERR=(ExceptionMessage[4]="Wrong document",4),ExceptionCode.INVALID_CHARACTER_ERR=(ExceptionMessage[5]="Invalid character",5),ExceptionCode.NO_DATA_ALLOWED_ERR=(ExceptionMessage[6]="No data allowed",6),ExceptionCode.NO_MODIFICATION_ALLOWED_ERR=(ExceptionMessage[7]="No modification allowed",7),ExceptionCode.NOT_FOUND_ERR=(ExceptionMessage[8]="Not found",8)),INUSE_ATTRIBUTE_ERR=(ExceptionCode.NOT_SUPPORTED_ERR=(ExceptionMessage[9]="Not supported",9),ExceptionCode.INUSE_ATTRIBUTE_ERR=(ExceptionMessage[10]="Attribute in use",10));ExceptionCode.INVALID_STATE_ERR=(ExceptionMessage[11]="Invalid state",11),ExceptionCode.SYNTAX_ERR=(ExceptionMessage[12]="Syntax error",12),ExceptionCode.INVALID_MODIFICATION_ERR=(ExceptionMessage[13]="Invalid modification",13),ExceptionCode.NAMESPACE_ERR=(ExceptionMessage[14]="Invalid namespace",14),ExceptionCode.INVALID_ACCESS_ERR=(ExceptionMessage[15]="Invalid access",15);DOMException.prototype=Error.prototype,copy(ExceptionCode,DOMException),NodeList.prototype={length:0,item:function(index){return this[index]||null},toString:function(isHTML,nodeFilter){for(var buf=[],i=0;i0},lookupPrefix:function(namespaceURI){for(var el=this;el;){var map=el._nsMap;if(map)for(var n in map)if(Object.prototype.hasOwnProperty.call(map,n)&&map[n]===namespaceURI)return n;el=el.nodeType==ATTRIBUTE_NODE?el.ownerDocument:el.parentNode}return null},lookupNamespaceURI:function(prefix){for(var el=this;el;){var map=el._nsMap;if(map&&Object.prototype.hasOwnProperty.call(map,prefix))return map[prefix];el=el.nodeType==ATTRIBUTE_NODE?el.ownerDocument:el.parentNode}return null},isDefaultNamespace:function(namespaceURI){var prefix=this.lookupPrefix(namespaceURI);return null==prefix}},copy(NodeType,Node),copy(NodeType,Node.prototype),Document.prototype={nodeName:"#document",nodeType:DOCUMENT_NODE,doctype:null,documentElement:null,_inc:1,insertBefore:function(newChild,refChild){if(newChild.nodeType==DOCUMENT_FRAGMENT_NODE){for(var child=newChild.firstChild;child;){var next=child.nextSibling;this.insertBefore(child,refChild),child=next}return newChild}return _insertBefore(this,newChild,refChild),newChild.ownerDocument=this,null===this.documentElement&&newChild.nodeType===ELEMENT_NODE&&(this.documentElement=newChild),newChild},removeChild:function(oldChild){return this.documentElement==oldChild&&(this.documentElement=null),_removeChild(this,oldChild)},replaceChild:function(newChild,oldChild){_insertBefore(this,newChild,oldChild,assertPreReplacementValidityInDocument),newChild.ownerDocument=this,oldChild&&this.removeChild(oldChild),isElementNode(newChild)&&(this.documentElement=newChild)},importNode:function(importedNode,deep){return importNode(this,importedNode,deep)},getElementById:function(id){var rtv=null;return _visitNode(this.documentElement,function(node){return node.nodeType==ELEMENT_NODE&&node.getAttribute("id")==id?(rtv=node,!0):void 0}),rtv},getElementsByClassName:function(classNames){var classNamesSet=toOrderedSet(classNames);return new LiveNodeList(this,function(base){var ls=[];return classNamesSet.length>0&&_visitNode(base.documentElement,function(node){if(node!==base&&node.nodeType===ELEMENT_NODE){var nodeClassNames=node.getAttribute("class");if(nodeClassNames){var matches=classNames===nodeClassNames;if(!matches){var nodeClassNamesSet=toOrderedSet(nodeClassNames);matches=classNamesSet.every(arrayIncludes(nodeClassNamesSet))}matches&&ls.push(node)}}}),ls})},createElement:function(tagName){var node=new Element;node.ownerDocument=this,node.nodeName=tagName,node.tagName=tagName,node.localName=tagName,node.childNodes=new NodeList;var attrs=node.attributes=new NamedNodeMap;return attrs._ownerElement=node,node},createDocumentFragment:function(){var node=new DocumentFragment;return node.ownerDocument=this,node.childNodes=new NodeList,node},createTextNode:function(data){var node=new Text;return node.ownerDocument=this,node.appendData(data),node},createComment:function(data){var node=new Comment;return node.ownerDocument=this,node.appendData(data),node},createCDATASection:function(data){var node=new CDATASection;return node.ownerDocument=this,node.appendData(data),node},createProcessingInstruction:function(target,data){var node=new ProcessingInstruction;return node.ownerDocument=this,node.tagName=node.target=target,node.nodeValue=node.data=data,node},createAttribute:function(name){var node=new Attr;return node.ownerDocument=this,node.name=name,node.nodeName=name,node.localName=name,node.specified=!0,node},createEntityReference:function(name){var node=new EntityReference;return node.ownerDocument=this,node.nodeName=name,node},createElementNS:function(namespaceURI,qualifiedName){var node=new Element,pl=qualifiedName.split(":"),attrs=node.attributes=new NamedNodeMap;return node.childNodes=new NodeList,node.ownerDocument=this,node.nodeName=qualifiedName,node.tagName=qualifiedName,node.namespaceURI=namespaceURI,2==pl.length?(node.prefix=pl[0],node.localName=pl[1]):node.localName=qualifiedName,attrs._ownerElement=node,node},createAttributeNS:function(namespaceURI,qualifiedName){var node=new Attr,pl=qualifiedName.split(":");return node.ownerDocument=this,node.nodeName=qualifiedName,node.name=qualifiedName,node.namespaceURI=namespaceURI,node.specified=!0,2==pl.length?(node.prefix=pl[0],node.localName=pl[1]):node.localName=qualifiedName,node}},_extends(Document,Node),Element.prototype={nodeType:ELEMENT_NODE,hasAttribute:function(name){return null!=this.getAttributeNode(name)},getAttribute:function(name){var attr=this.getAttributeNode(name);return attr&&attr.value||""},getAttributeNode:function(name){return this.attributes.getNamedItem(name)},setAttribute:function(name,value){var attr=this.ownerDocument.createAttribute(name);attr.value=attr.nodeValue=""+value,this.setAttributeNode(attr)},removeAttribute:function(name){var attr=this.getAttributeNode(name);attr&&this.removeAttributeNode(attr)},appendChild:function(newChild){return newChild.nodeType===DOCUMENT_FRAGMENT_NODE?this.insertBefore(newChild,null):_appendSingleChild(this,newChild)},setAttributeNode:function(newAttr){return this.attributes.setNamedItem(newAttr)},setAttributeNodeNS:function(newAttr){return this.attributes.setNamedItemNS(newAttr)},removeAttributeNode:function(oldAttr){return this.attributes.removeNamedItem(oldAttr.nodeName)},removeAttributeNS:function(namespaceURI,localName){var old=this.getAttributeNodeNS(namespaceURI,localName);old&&this.removeAttributeNode(old)},hasAttributeNS:function(namespaceURI,localName){return null!=this.getAttributeNodeNS(namespaceURI,localName)},getAttributeNS:function(namespaceURI,localName){var attr=this.getAttributeNodeNS(namespaceURI,localName);return attr&&attr.value||""},setAttributeNS:function(namespaceURI,qualifiedName,value){var attr=this.ownerDocument.createAttributeNS(namespaceURI,qualifiedName);attr.value=attr.nodeValue=""+value,this.setAttributeNode(attr)},getAttributeNodeNS:function(namespaceURI,localName){return this.attributes.getNamedItemNS(namespaceURI,localName)},getElementsByTagName:function(tagName){return new LiveNodeList(this,function(base){var ls=[];return _visitNode(base,function(node){node===base||node.nodeType!=ELEMENT_NODE||"*"!==tagName&&node.tagName!=tagName||ls.push(node)}),ls})},getElementsByTagNameNS:function(namespaceURI,localName){return new LiveNodeList(this,function(base){var ls=[];return _visitNode(base,function(node){node===base||node.nodeType!==ELEMENT_NODE||"*"!==namespaceURI&&node.namespaceURI!==namespaceURI||"*"!==localName&&node.localName!=localName||ls.push(node)}),ls})}},Document.prototype.getElementsByTagName=Element.prototype.getElementsByTagName,Document.prototype.getElementsByTagNameNS=Element.prototype.getElementsByTagNameNS,_extends(Element,Node),Attr.prototype.nodeType=ATTRIBUTE_NODE,_extends(Attr,Node),CharacterData.prototype={data:"",substringData:function(offset,count){return this.data.substring(offset,offset+count)},appendData:function(text){text=this.data+text,this.nodeValue=this.data=text,this.length=text.length},insertData:function(offset,text){this.replaceData(offset,0,text)},appendChild:function(newChild){throw new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])},deleteData:function(offset,count){this.replaceData(offset,count,"")},replaceData:function(offset,count,text){var start=this.data.substring(0,offset),end=this.data.substring(offset+count);text=start+text+end,this.nodeValue=this.data=text,this.length=text.length}},_extends(CharacterData,Node),Text.prototype={nodeName:"#text",nodeType:TEXT_NODE,splitText:function(offset){var text=this.data,newText=text.substring(offset);text=text.substring(0,offset),this.data=this.nodeValue=text,this.length=text.length;var newNode=this.ownerDocument.createTextNode(newText);return this.parentNode&&this.parentNode.insertBefore(newNode,this.nextSibling),newNode}},_extends(Text,CharacterData),Comment.prototype={nodeName:"#comment",nodeType:COMMENT_NODE},_extends(Comment,CharacterData),CDATASection.prototype={nodeName:"#cdata-section",nodeType:CDATA_SECTION_NODE},_extends(CDATASection,CharacterData),DocumentType.prototype.nodeType=DOCUMENT_TYPE_NODE,_extends(DocumentType,Node),Notation.prototype.nodeType=NOTATION_NODE,_extends(Notation,Node),Entity.prototype.nodeType=ENTITY_NODE,_extends(Entity,Node),EntityReference.prototype.nodeType=ENTITY_REFERENCE_NODE,_extends(EntityReference,Node),DocumentFragment.prototype.nodeName="#document-fragment",DocumentFragment.prototype.nodeType=DOCUMENT_FRAGMENT_NODE,_extends(DocumentFragment,Node),ProcessingInstruction.prototype.nodeType=PROCESSING_INSTRUCTION_NODE,_extends(ProcessingInstruction,Node),XMLSerializer.prototype.serializeToString=function(node,isHtml,nodeFilter){return nodeSerializeToString.call(node,isHtml,nodeFilter)},Node.prototype.toString=nodeSerializeToString;try{Object.defineProperty&&(Object.defineProperty(LiveNodeList.prototype,"length",{get:function(){return _updateLiveList(this),this.$$length}}),Object.defineProperty(Node.prototype,"textContent",{get:function(){return getTextContent(this)},set:function(data){switch(this.nodeType){case ELEMENT_NODE:case DOCUMENT_FRAGMENT_NODE:for(;this.firstChild;)this.removeChild(this.firstChild);(data||String(data))&&this.appendChild(this.ownerDocument.createTextNode(data));break;default:this.data=data,this.value=data,this.nodeValue=data}}}),__set__=function(object,key,value){object["$$"+key]=value})}catch(e){}exports.DocumentType=DocumentType,exports.DOMException=DOMException,exports.DOMImplementation=DOMImplementation,exports.Element=Element,exports.Node=Node,exports.NodeList=NodeList,exports.XMLSerializer=XMLSerializer},{"./conventions":41}],44:[function(require,module,exports){var freeze=require("./conventions").freeze;exports.XML_ENTITIES=freeze({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}),exports.HTML_ENTITIES=freeze({lt:"<",gt:">",amp:"&",quot:'"',apos:"'",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",times:"×",divide:"÷",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪","int":"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",euro:"€",trade:"™",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"}),exports.entityMap=exports.HTML_ENTITIES},{"./conventions":41}],45:[function(require,module,exports){var dom=require("./dom");exports.DOMImplementation=dom.DOMImplementation,exports.XMLSerializer=dom.XMLSerializer,exports.DOMParser=require("./dom-parser").DOMParser},{"./dom":43,"./dom-parser":42}],46:[function(require,module,exports){function ParseError(message,locator){this.message=message,this.locator=locator,Error.captureStackTrace&&Error.captureStackTrace(this,ParseError)}function XMLReader(){}function parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){function fixedFromCharCode(code){if(code>65535){code-=65536;var surrogate1=55296+(code>>10),surrogate2=56320+(1023&code);return String.fromCharCode(surrogate1,surrogate2)}return String.fromCharCode(code)}function entityReplacer(a){var k=a.slice(1,-1);return Object.hasOwnProperty.call(entityMap,k)?entityMap[k]:"#"===k.charAt(0)?fixedFromCharCode(parseInt(k.substr(1).replace("x","0x"))):(errorHandler.error("entity not found:"+a),a)}function appendText(end){if(end>start){var xt=source.substring(start,end).replace(/&#?\w+;/g,entityReplacer);locator&&position(start),domBuilder.characters(xt,0,end-start),start=end}}function position(p,m){for(;p>=lineEnd&&(m=linePattern.exec(source));)lineStart=m.index,lineEnd=lineStart+m[0].length,locator.lineNumber++;locator.columnNumber=p-lineStart+1}for(var lineStart=0,lineEnd=0,linePattern=/.*(?:\r\n?|\n)|.*$/g,locator=domBuilder.locator,parseStack=[{currentNSMap:defaultNSMapCopy}],closeMap={},start=0;;){try{var tagStart=source.indexOf("<",start);if(0>tagStart){if(!source.substr(start).match(/^\s*$/)){var doc=domBuilder.doc,text=doc.createTextNode(source.substr(start));doc.appendChild(text),domBuilder.currentElement=text}return}switch(tagStart>start&&appendText(tagStart),source.charAt(tagStart+1)){case"/":var end=source.indexOf(">",tagStart+3),tagName=source.substring(tagStart+2,end).replace(/[ \t\n\r]+$/g,""),config=parseStack.pop(); +0>end?(tagName=source.substring(tagStart+2).replace(/[\s<].*/,""),errorHandler.error("end tag name: "+tagName+" is not complete:"+config.tagName),end=tagStart+1+tagName.length):tagName.match(/\si;i++){var a=el[i];position(a.offset),a.locator=copyLocator(locator,{})}domBuilder.locator=locator2,appendElement(el,domBuilder,currentNSMap)&&parseStack.push(el),domBuilder.locator=locator}else appendElement(el,domBuilder,currentNSMap)&&parseStack.push(el);NAMESPACE.isHTML(el.uri)&&!el.closed?end=parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder):end++}}catch(e){if(e instanceof ParseError)throw e;errorHandler.error("element parse error: "+e),end=-1}end>start?start=end:appendText(Math.max(tagStart,start)+1)}}function copyLocator(f,t){return t.lineNumber=f.lineNumber,t.columnNumber=f.columnNumber,t}function parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){function addAttribute(qname,value,startIndex){el.attributeNames.hasOwnProperty(qname)&&errorHandler.fatalError("Attribute "+qname+" redefined"),el.addValue(qname,value.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,entityReplacer),startIndex)}for(var attrName,value,p=++start,s=S_TAG;;){var c=source.charAt(p);switch(c){case"=":if(s===S_ATTR)attrName=source.slice(start,p),s=S_EQ;else{if(s!==S_ATTR_SPACE)throw new Error("attribute equal must after attrName");s=S_EQ}break;case"'":case'"':if(s===S_EQ||s===S_ATTR){if(s===S_ATTR&&(errorHandler.warning('attribute value must after "="'),attrName=source.slice(start,p)),start=p+1,p=source.indexOf(c,start),!(p>0))throw new Error("attribute value no end '"+c+"' match");value=source.slice(start,p),addAttribute(attrName,value,start-1),s=S_ATTR_END}else{if(s!=S_ATTR_NOQUOT_VALUE)throw new Error('attribute value must after "="');value=source.slice(start,p),addAttribute(attrName,value,start),errorHandler.warning('attribute "'+attrName+'" missed start quot('+c+")!!"),start=p+1,s=S_ATTR_END}break;case"/":switch(s){case S_TAG:el.setTagName(source.slice(start,p));case S_ATTR_END:case S_TAG_SPACE:case S_TAG_CLOSE:s=S_TAG_CLOSE,el.closed=!0;case S_ATTR_NOQUOT_VALUE:case S_ATTR:case S_ATTR_SPACE:break;default:throw new Error("attribute invalid close char('/')")}break;case"":return errorHandler.error("unexpected end of input"),s==S_TAG&&el.setTagName(source.slice(start,p)),p;case">":switch(s){case S_TAG:el.setTagName(source.slice(start,p));case S_ATTR_END:case S_TAG_SPACE:case S_TAG_CLOSE:break;case S_ATTR_NOQUOT_VALUE:case S_ATTR:value=source.slice(start,p),"/"===value.slice(-1)&&(el.closed=!0,value=value.slice(0,-1));case S_ATTR_SPACE:s===S_ATTR_SPACE&&(value=attrName),s==S_ATTR_NOQUOT_VALUE?(errorHandler.warning('attribute "'+value+'" missed quot(")!'),addAttribute(attrName,value,start)):(NAMESPACE.isHTML(currentNSMap[""])&&value.match(/^(?:disabled|checked|selected)$/i)||errorHandler.warning('attribute "'+value+'" missed value!! "'+value+'" instead!!'),addAttribute(value,value,start));break;case S_EQ:throw new Error("attribute value missed!!")}return p;case"€":c=" ";default:if(" ">=c)switch(s){case S_TAG:el.setTagName(source.slice(start,p)),s=S_TAG_SPACE;break;case S_ATTR:attrName=source.slice(start,p),s=S_ATTR_SPACE;break;case S_ATTR_NOQUOT_VALUE:var value=source.slice(start,p);errorHandler.warning('attribute "'+value+'" missed quot(")!!'),addAttribute(attrName,value,start);case S_ATTR_END:s=S_TAG_SPACE}else switch(s){case S_ATTR_SPACE:el.tagName;NAMESPACE.isHTML(currentNSMap[""])&&attrName.match(/^(?:disabled|checked|selected)$/i)||errorHandler.warning('attribute "'+attrName+'" missed value!! "'+attrName+'" instead2!!'),addAttribute(attrName,attrName,start),start=p,s=S_ATTR;break;case S_ATTR_END:errorHandler.warning('attribute space is required"'+attrName+'"!!');case S_TAG_SPACE:s=S_ATTR,start=p;break;case S_EQ:s=S_ATTR_NOQUOT_VALUE,start=p;break;case S_TAG_CLOSE:throw new Error("elements closed character '/' and '>' must be connected to")}}p++}}function appendElement(el,domBuilder,currentNSMap){for(var tagName=el.tagName,localNSMap=null,i=el.length;i--;){var a=el[i],qName=a.qName,value=a.value,nsp=qName.indexOf(":");if(nsp>0)var prefix=a.prefix=qName.slice(0,nsp),localName=qName.slice(nsp+1),nsPrefix="xmlns"===prefix&&localName;else localName=qName,prefix=null,nsPrefix="xmlns"===qName&&"";a.localName=localName,nsPrefix!==!1&&(null==localNSMap&&(localNSMap={},_copy(currentNSMap,currentNSMap={})),currentNSMap[nsPrefix]=localNSMap[nsPrefix]=value,a.uri=NAMESPACE.XMLNS,domBuilder.startPrefixMapping(nsPrefix,value))}for(var i=el.length;i--;){a=el[i];var prefix=a.prefix;prefix&&("xml"===prefix&&(a.uri=NAMESPACE.XML),"xmlns"!==prefix&&(a.uri=currentNSMap[prefix||""]))}var nsp=tagName.indexOf(":");nsp>0?(prefix=el.prefix=tagName.slice(0,nsp),localName=el.localName=tagName.slice(nsp+1)):(prefix=null,localName=el.localName=tagName);var ns=el.uri=currentNSMap[prefix||""];if(domBuilder.startElement(ns,localName,tagName,el),!el.closed)return el.currentNSMap=currentNSMap,el.localNSMap=localNSMap,!0;if(domBuilder.endElement(ns,localName,tagName),localNSMap)for(prefix in localNSMap)Object.prototype.hasOwnProperty.call(localNSMap,prefix)&&domBuilder.endPrefixMapping(prefix)}function parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){if(/^(?:script|textarea)$/i.test(tagName)){var elEndStart=source.indexOf("",elStartEnd),text=source.substring(elStartEnd+1,elEndStart);if(/[&<]/.test(text))return/^script$/i.test(tagName)?(domBuilder.characters(text,0,text.length),elEndStart):(text=text.replace(/&#?\w+;/g,entityReplacer),domBuilder.characters(text,0,text.length),elEndStart)}return elStartEnd+1}function fixSelfClosed(source,elStartEnd,tagName,closeMap){var pos=closeMap[tagName];return null==pos&&(pos=source.lastIndexOf(""),elStartEnd>pos&&(pos=source.lastIndexOf("pos}function _copy(source,target){for(var n in source)Object.prototype.hasOwnProperty.call(source,n)&&(target[n]=source[n])}function parseDCC(source,start,domBuilder,errorHandler){var next=source.charAt(start+2);switch(next){case"-":if("-"===source.charAt(start+3)){var end=source.indexOf("-->",start+4);return end>start?(domBuilder.comment(source,start+4,end-start-4),end+3):(errorHandler.error("Unclosed comment"),-1)}return-1;default:if("CDATA["==source.substr(start+3,6)){var end=source.indexOf("]]>",start+9);return domBuilder.startCDATA(),domBuilder.characters(source,start+9,end-start-9),domBuilder.endCDATA(),end+3}var matchs=split(source,start),len=matchs.length;if(len>1&&/!doctype/i.test(matchs[0][0])){var name=matchs[1][0],pubid=!1,sysid=!1;len>3&&(/^public$/i.test(matchs[2][0])?(pubid=matchs[3][0],sysid=len>4&&matchs[4][0]):/^system$/i.test(matchs[2][0])&&(sysid=matchs[3][0]));var lastMatch=matchs[len-1];return domBuilder.startDTD(name,pubid,sysid),domBuilder.endDTD(),lastMatch.index+lastMatch[0].length}}return-1}function parseInstruction(source,start,domBuilder){var end=source.indexOf("?>",start);if(end){var match=source.substring(start,end).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(match){match[0].length;return domBuilder.processingInstruction(match[1],match[2]),end+2}return-1}return-1}function ElementAttributes(){this.attributeNames={}}function split(source,start){var match,buf=[],reg=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;for(reg.lastIndex=start,reg.exec(source);match=reg.exec(source);)if(buf.push(match),match[1])return buf}var NAMESPACE=require("./conventions").NAMESPACE,nameStartChar=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,nameChar=new RegExp("[\\-\\.0-9"+nameStartChar.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),tagNamePattern=new RegExp("^"+nameStartChar.source+nameChar.source+"*(?::"+nameStartChar.source+nameChar.source+"*)?$"),S_TAG=0,S_ATTR=1,S_ATTR_SPACE=2,S_EQ=3,S_ATTR_NOQUOT_VALUE=4,S_ATTR_END=5,S_TAG_SPACE=6,S_TAG_CLOSE=7;ParseError.prototype=new Error,ParseError.prototype.name=ParseError.name,XMLReader.prototype={parse:function(source,defaultNSMap,entityMap){var domBuilder=this.domBuilder;domBuilder.startDocument(),_copy(defaultNSMap,defaultNSMap={}),parse(source,defaultNSMap,entityMap,domBuilder,this.errorHandler),domBuilder.endDocument()}},ElementAttributes.prototype={setTagName:function(tagName){if(!tagNamePattern.test(tagName))throw new Error("invalid tagName:"+tagName);this.tagName=tagName},addValue:function(qName,value,offset){if(!tagNamePattern.test(qName))throw new Error("invalid attribute:"+qName);this.attributeNames[qName]=this.length,this[this.length++]={qName:qName,value:value,offset:offset}},length:0,getLocalName:function(i){return this[i].localName},getLocator:function(i){return this[i].locator},getQName:function(i){return this[i].qName},getURI:function(i){return this[i].uri},getValue:function(i){return this[i].value}},exports.XMLReader=XMLReader,exports.ParseError=ParseError},{"./conventions":41}],47:[function(require,module,exports){"use strict";function getLens(b64){var len=b64.length;if(len%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var validLen=b64.indexOf("=");-1===validLen&&(validLen=len);var placeHoldersLen=validLen===len?0:4-validLen%4;return[validLen,placeHoldersLen]}function byteLength(b64){var lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1];return 3*(validLen+placeHoldersLen)/4-placeHoldersLen}function _byteLength(b64,validLen,placeHoldersLen){return 3*(validLen+placeHoldersLen)/4-placeHoldersLen}function toByteArray(b64){var tmp,i,lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1],arr=new Arr(_byteLength(b64,validLen,placeHoldersLen)),curByte=0,len=placeHoldersLen>0?validLen-4:validLen;for(i=0;len>i;i+=4)tmp=revLookup[b64.charCodeAt(i)]<<18|revLookup[b64.charCodeAt(i+1)]<<12|revLookup[b64.charCodeAt(i+2)]<<6|revLookup[b64.charCodeAt(i+3)],arr[curByte++]=tmp>>16&255,arr[curByte++]=tmp>>8&255,arr[curByte++]=255&tmp;return 2===placeHoldersLen&&(tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4,arr[curByte++]=255&tmp),1===placeHoldersLen&&(tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2,arr[curByte++]=tmp>>8&255,arr[curByte++]=255&tmp),arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[63&num]}function encodeChunk(uint8,start,end){for(var tmp,output=[],i=start;end>i;i+=3)tmp=(uint8[i]<<16&16711680)+(uint8[i+1]<<8&65280)+(255&uint8[i+2]),output.push(tripletToBase64(tmp));return output.join("")}function fromByteArray(uint8){for(var tmp,len=uint8.length,extraBytes=len%3,parts=[],maxChunkLength=16383,i=0,len2=len-extraBytes;len2>i;i+=maxChunkLength)parts.push(encodeChunk(uint8,i,i+maxChunkLength>len2?len2:i+maxChunkLength));return 1===extraBytes?(tmp=uint8[len-1],parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+"==")):2===extraBytes&&(tmp=(uint8[len-2]<<8)+uint8[len-1],parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+"=")),parts.join("")}exports.byteLength=byteLength,exports.toByteArray=toByteArray,exports.fromByteArray=fromByteArray;for(var lookup=[],revLookup=[],Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0,len=code.length;len>i;++i)lookup[i]=code[i],revLookup[code.charCodeAt(i)]=i;revLookup["-".charCodeAt(0)]=62,revLookup["_".charCodeAt(0)]=63},{}],48:[function(require,module,exports){"use strict";module.exports=function(Promise){function any(promises){var ret=new SomePromiseArray(promises),promise=ret.promise();return ret.setHowMany(1),ret.setUnwrap(),ret.init(),promise}var SomePromiseArray=Promise._SomePromiseArray;Promise.any=function(promises){return any(promises)},Promise.prototype.any=function(){return any(this)}}},{}],49:[function(require,module,exports){(function(process){"use strict";function Async(){this._customScheduler=!1,this._isTickUsed=!1,this._lateQueue=new Queue(16),this._normalQueue=new Queue(16),this._haveDrainedQueues=!1,this._trampolineEnabled=!0;var self=this;this.drainQueues=function(){self._drainQueues()},this._schedule=schedule}function AsyncInvokeLater(fn,receiver,arg){this._lateQueue.push(fn,receiver,arg),this._queueTick()}function AsyncInvoke(fn,receiver,arg){this._normalQueue.push(fn,receiver,arg),this._queueTick()}function AsyncSettlePromises(promise){this._normalQueue._pushOne(promise),this._queueTick()}var firstLineError;try{throw new Error}catch(e){firstLineError=e}var schedule=require("./schedule"),Queue=require("./queue"),util=require("./util");Async.prototype.setScheduler=function(fn){var prev=this._schedule;return this._schedule=fn,this._customScheduler=!0,prev},Async.prototype.hasCustomScheduler=function(){return this._customScheduler},Async.prototype.enableTrampoline=function(){this._trampolineEnabled=!0},Async.prototype.disableTrampolineIfNecessary=function(){util.hasDevTools&&(this._trampolineEnabled=!1)},Async.prototype.haveItemsQueued=function(){return this._isTickUsed||this._haveDrainedQueues},Async.prototype.fatalError=function(e,isNode){isNode?(process.stderr.write("Fatal "+(e instanceof Error?e.stack:e)+"\n"),process.exit(2)):this.throwLater(e)},Async.prototype.throwLater=function(fn,arg){if(1===arguments.length&&(arg=fn,fn=function(){throw arg}),"undefined"!=typeof setTimeout)setTimeout(function(){fn(arg)},0);else try{this._schedule(function(){fn(arg)})}catch(e){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")}},util.hasDevTools?(Async.prototype.invokeLater=function(fn,receiver,arg){this._trampolineEnabled?AsyncInvokeLater.call(this,fn,receiver,arg):this._schedule(function(){setTimeout(function(){fn.call(receiver,arg)},100)})},Async.prototype.invoke=function(fn,receiver,arg){this._trampolineEnabled?AsyncInvoke.call(this,fn,receiver,arg):this._schedule(function(){fn.call(receiver,arg)})},Async.prototype.settlePromises=function(promise){this._trampolineEnabled?AsyncSettlePromises.call(this,promise):this._schedule(function(){promise._settlePromises()})}):(Async.prototype.invokeLater=AsyncInvokeLater,Async.prototype.invoke=AsyncInvoke,Async.prototype.settlePromises=AsyncSettlePromises),Async.prototype._drainQueue=function(queue){for(;queue.length()>0;){var fn=queue.shift();if("function"==typeof fn){var receiver=queue.shift(),arg=queue.shift();fn.call(receiver,arg)}else fn._settlePromises()}},Async.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},Async.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},Async.prototype._reset=function(){this._isTickUsed=!1},module.exports=Async,module.exports.firstLineError=firstLineError}).call(this,require("_process"))},{"./queue":72,"./schedule":75,"./util":82,_process:102}],50:[function(require,module,exports){"use strict";module.exports=function(Promise,INTERNAL,tryConvertToPromise,debug){var calledBind=!1,rejectThis=function(_,e){this._reject(e)},targetRejected=function(e,context){context.promiseRejectionQueued=!0,context.bindingPromise._then(rejectThis,rejectThis,null,this,e)},bindingResolved=function(thisArg,context){0===(50397184&this._bitField)&&this._resolveCallback(context.target)},bindingRejected=function(e,context){context.promiseRejectionQueued||this._reject(e)};Promise.prototype.bind=function(thisArg){calledBind||(calledBind=!0,Promise.prototype._propagateFrom=debug.propagateFromFunction(),Promise.prototype._boundValue=debug.boundValueFunction());var maybePromise=tryConvertToPromise(thisArg),ret=new Promise(INTERNAL);ret._propagateFrom(this,1);var target=this._target();if(ret._setBoundTo(maybePromise),maybePromise instanceof Promise){var context={promiseRejectionQueued:!1,promise:ret,target:target,bindingPromise:maybePromise};target._then(INTERNAL,targetRejected,void 0,ret,context),maybePromise._then(bindingResolved,bindingRejected,void 0,ret,context),ret._setOnCancel(maybePromise)}else ret._resolveCallback(target);return ret},Promise.prototype._setBoundTo=function(obj){void 0!==obj?(this._bitField=2097152|this._bitField,this._boundTo=obj):this._bitField=-2097153&this._bitField},Promise.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},Promise.bind=function(thisArg,value){return Promise.resolve(value).bind(thisArg)}}},{}],51:[function(require,module,exports){"use strict";var cr=Object.create;if(cr){var callerCache=cr(null),getterCache=cr(null);callerCache[" size"]=getterCache[" size"]=0}module.exports=function(Promise){function ensureMethod(obj,methodName){var fn;if(null!=obj&&(fn=obj[methodName]),"function"!=typeof fn){var message="Object "+util.classString(obj)+" has no method '"+util.toString(methodName)+"'";throw new Promise.TypeError(message)}return fn}function caller(obj){var methodName=this.pop(),fn=ensureMethod(obj,methodName);return fn.apply(obj,this)}function namedGetter(obj){return obj[this]}function indexedGetter(obj){var index=+this;return 0>index&&(index=Math.max(0,index+obj.length)),obj[index]}var getMethodCaller,getGetter,util=require("./util"),canEvaluate=util.canEvaluate,isIdentifier=util.isIdentifier,makeMethodCaller=function(methodName){return new Function("ensureMethod"," \n return function(obj) { \n 'use strict' \n var len = this.length; \n ensureMethod(obj, 'methodName'); \n switch(len) { \n case 1: return obj.methodName(this[0]); \n case 2: return obj.methodName(this[0], this[1]); \n case 3: return obj.methodName(this[0], this[1], this[2]); \n case 0: return obj.methodName(); \n default: \n return obj.methodName.apply(obj, this); \n } \n }; \n ".replace(/methodName/g,methodName))(ensureMethod)},makeGetter=function(propertyName){return new Function("obj"," \n 'use strict'; \n return obj.propertyName; \n ".replace("propertyName",propertyName))},getCompiled=function(name,compiler,cache){var ret=cache[name];if("function"!=typeof ret){if(!isIdentifier(name))return null;if(ret=compiler(name),cache[name]=ret,cache[" size"]++,cache[" size"]>512){for(var keys=Object.keys(cache),i=0;256>i;++i)delete cache[keys[i]];cache[" size"]=keys.length-256}}return ret};getMethodCaller=function(name){return getCompiled(name,makeMethodCaller,callerCache)},getGetter=function(name){return getCompiled(name,makeGetter,getterCache)},Promise.prototype.call=function(methodName){for(var $_len=arguments.length,args=new Array(Math.max($_len-1,0)),$_i=1;$_len>$_i;++$_i)args[$_i-1]=arguments[$_i];if(canEvaluate){var maybeCaller=getMethodCaller(methodName);if(null!==maybeCaller)return this._then(maybeCaller,void 0,void 0,args,void 0)}return args.push(methodName),this._then(caller,void 0,void 0,args,void 0)},Promise.prototype.get=function(propertyName){var getter,isIndex="number"==typeof propertyName;if(isIndex)getter=indexedGetter;else if(canEvaluate){var maybeGetter=getGetter(propertyName);getter=null!==maybeGetter?maybeGetter:namedGetter}else getter=namedGetter;return this._then(getter,void 0,void 0,propertyName,void 0)}}},{"./util":82}],52:[function(require,module,exports){"use strict";module.exports=function(Promise,PromiseArray,apiRejection,debug){var util=require("./util"),tryCatch=util.tryCatch,errorObj=util.errorObj,async=Promise._async;Promise.prototype["break"]=Promise.prototype.cancel=function(){if(!debug.cancellation())return this._warn("cancellation is disabled");for(var promise=this,child=promise;promise._isCancellable();){if(!promise._cancelBy(child)){child._isFollowing()?child._followee().cancel():child._cancelBranched();break}var parent=promise._cancellationParent;if(null==parent||!parent._isCancellable()){promise._isFollowing()?promise._followee().cancel():promise._cancelBranched();break}promise._isFollowing()&&promise._followee().cancel(),promise._setWillBeCancelled(),child=promise,promise=parent}},Promise.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},Promise.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},Promise.prototype._cancelBy=function(canceller){return canceller===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},Promise.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},Promise.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),async.invoke(this._cancelPromises,this,void 0))},Promise.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},Promise.prototype._unsetOnCancel=function(){this._onCancelField=void 0},Promise.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},Promise.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},Promise.prototype._doInvokeOnCancel=function(onCancelCallback,internalOnly){if(util.isArray(onCancelCallback))for(var i=0;i=0?contextStack[lastIndex]:void 0}var longStackTraces=!1,contextStack=[];return Promise.prototype._promiseCreated=function(){},Promise.prototype._pushContext=function(){},Promise.prototype._popContext=function(){return null},Promise._peekContext=Promise.prototype._peekContext=function(){},Context.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,contextStack.push(this._trace))},Context.prototype._popContext=function(){if(void 0!==this._trace){var trace=contextStack.pop(),ret=trace._promiseCreated;return trace._promiseCreated=null,ret}return null},Context.CapturedTrace=null,Context.create=createContext,Context.deactivateLongStackTraces=function(){},Context.activateLongStackTraces=function(){var Promise_pushContext=Promise.prototype._pushContext,Promise_popContext=Promise.prototype._popContext,Promise_PeekContext=Promise._peekContext,Promise_peekContext=Promise.prototype._peekContext,Promise_promiseCreated=Promise.prototype._promiseCreated;Context.deactivateLongStackTraces=function(){Promise.prototype._pushContext=Promise_pushContext,Promise.prototype._popContext=Promise_popContext,Promise._peekContext=Promise_PeekContext,Promise.prototype._peekContext=Promise_peekContext,Promise.prototype._promiseCreated=Promise_promiseCreated,longStackTraces=!1},longStackTraces=!0,Promise.prototype._pushContext=Context.prototype._pushContext,Promise.prototype._popContext=Context.prototype._popContext,Promise._peekContext=Promise.prototype._peekContext=peekContext,Promise.prototype._promiseCreated=function(){var ctx=this._peekContext();ctx&&null==ctx._promiseCreated&&(ctx._promiseCreated=this)}},Context}},{}],55:[function(require,module,exports){(function(process){"use strict";module.exports=function(Promise,Context){function generatePromiseLifecycleEventObject(name,promise){return{promise:promise}}function defaultFireEvent(){return!1}function cancellationExecute(executor,resolve,reject){var promise=this;try{executor(resolve,reject,function(onCancel){if("function"!=typeof onCancel)throw new TypeError("onCancel must be a function, got: "+util.toString(onCancel));promise._attachCancellationCallback(onCancel)})}catch(e){return e}}function cancellationAttachCancellationCallback(onCancel){if(!this._isCancellable())return this;var previousOnCancel=this._onCancel();void 0!==previousOnCancel?util.isArray(previousOnCancel)?previousOnCancel.push(onCancel):this._setOnCancel([previousOnCancel,onCancel]):this._setOnCancel(onCancel)}function cancellationOnCancel(){return this._onCancelField}function cancellationSetOnCancel(onCancel){this._onCancelField=onCancel}function cancellationClearCancellationData(){this._cancellationParent=void 0,this._onCancelField=void 0}function cancellationPropagateFrom(parent,flags){if(0!==(1&flags)){this._cancellationParent=parent;var branchesRemainingToCancel=parent._branchesRemainingToCancel;void 0===branchesRemainingToCancel&&(branchesRemainingToCancel=0),parent._branchesRemainingToCancel=branchesRemainingToCancel+1}0!==(2&flags)&&parent._isBound()&&this._setBoundTo(parent._boundTo)}function bindingPropagateFrom(parent,flags){0!==(2&flags)&&parent._isBound()&&this._setBoundTo(parent._boundTo)}function boundValueFunction(){var ret=this._boundTo;return void 0!==ret&&ret instanceof Promise?ret.isFulfilled()?ret.value():void 0:ret}function longStackTracesCaptureStackTrace(){this._trace=new CapturedTrace(this._peekContext())}function longStackTracesAttachExtraTrace(error,ignoreSelf){if(canAttachTrace(error)){var trace=this._trace;if(void 0!==trace&&ignoreSelf&&(trace=trace._parent),void 0!==trace)trace.attachExtraTrace(error);else if(!error.__stackCleaned__){var parsed=parseStackAndMessage(error);util.notEnumerableProp(error,"stack",parsed.message+"\n"+parsed.stack.join("\n")),util.notEnumerableProp(error,"__stackCleaned__",!0)}}}function checkForgottenReturns(returnValue,promiseCreated,name,promise,parent){if(void 0===returnValue&&null!==promiseCreated&&wForgottenReturn){if(void 0!==parent&&parent._returnedNonUndefined())return;if(0===(65535&promise._bitField))return;name&&(name+=" ");var handlerLine="",creatorLine="";if(promiseCreated._trace){for(var traceLines=promiseCreated._trace.stack.split("\n"),stack=cleanStack(traceLines),i=stack.length-1;i>=0;--i){var line=stack[i];if(!nodeFramePattern.test(line)){var lineMatches=line.match(parseLinePattern);lineMatches&&(handlerLine="at "+lineMatches[1]+":"+lineMatches[2]+":"+lineMatches[3]+" ");break}}if(stack.length>0)for(var firstUserLine=stack[0],i=0;i0&&(creatorLine="\n"+traceLines[i-1]);break}}var msg="a promise was created in a "+name+"handler "+handlerLine+"but was not returned from it, see http://goo.gl/rRqMUw"+creatorLine;promise._warn(msg,!0,promiseCreated)}}function deprecated(name,replacement){var message=name+" is deprecated and will be removed in a future version.";return replacement&&(message+=" Use "+replacement+" instead."),warn(message)}function warn(message,shouldUseOwnTrace,promise){if(config.warnings){var ctx,warning=new Warning(message);if(shouldUseOwnTrace)promise._attachExtraTrace(warning);else if(config.longStackTraces&&(ctx=Promise._peekContext()))ctx.attachExtraTrace(warning);else{var parsed=parseStackAndMessage(warning);warning.stack=parsed.message+"\n"+parsed.stack.join("\n")}activeFireEvent("warning",warning)||formatAndLogError(warning,"",!0)}}function reconstructStack(message,stacks){for(var i=0;i=0;--j)if(prev[j]===currentLastLine){commonRootMeetPoint=j;break}for(var j=commonRootMeetPoint;j>=0;--j){var line=prev[j];if(current[currentLastIndex]!==line)break;current.pop(),currentLastIndex--}current=prev}}function cleanStack(stack){for(var ret=[],i=0;i0&&"SyntaxError"!=error.name&&(stack=stack.slice(i)),stack}function parseStackAndMessage(error){ +var stack=error.stack,message=error.toString();return stack="string"==typeof stack&&stack.length>0?stackFramesAsArray(error):[" (No stack trace)"],{message:message,stack:"SyntaxError"==error.name?stack:cleanStack(stack)}}function formatAndLogError(error,title,isSoft){if("undefined"!=typeof console){var message;if(util.isObject(error)){var stack=error.stack;message=title+formatStack(stack,error)}else message=title+String(error);"function"==typeof printWarning?printWarning(message,isSoft):("function"==typeof console.log||"object"==typeof console.log)&&console.log(message)}}function fireRejectionEvent(name,localHandler,reason,promise){var localEventFired=!1;try{"function"==typeof localHandler&&(localEventFired=!0,"rejectionHandled"===name?localHandler(promise):localHandler(reason,promise))}catch(e){async.throwLater(e)}"unhandledRejection"===name?activeFireEvent(name,reason,promise)||localEventFired||formatAndLogError(reason,"Unhandled rejection "):activeFireEvent(name,promise)}function formatNonError(obj){var str;if("function"==typeof obj)str="[function "+(obj.name||"anonymous")+"]";else{str=obj&&"function"==typeof obj.toString?obj.toString():util.toString(obj);var ruselessToString=/\[object [a-zA-Z0-9$_]+\]/;if(ruselessToString.test(str))try{var newStr=JSON.stringify(obj);str=newStr}catch(e){}0===str.length&&(str="(empty array)")}return"(<"+snip(str)+">, no stack trace)"}function snip(str){var maxChars=41;return str.lengthfirstIndex||0>lastIndex||!firstFileName||!lastFileName||firstFileName!==lastFileName||firstIndex>=lastIndex||(shouldIgnore=function(line){if(bluebirdFramePattern.test(line))return!0;var info=parseLineInfo(line);return info&&info.fileName===firstFileName&&firstIndex<=info.line&&info.line<=lastIndex?!0:!1})}}function CapturedTrace(parent){this._parent=parent,this._promisesCreated=0;var length=this._length=1+(void 0===parent?0:parent._length);captureStackTrace(this,CapturedTrace),length>32&&this.uncycle()}var unhandledRejectionHandled,possiblyUnhandledRejection,printWarning,getDomain=Promise._getDomain,async=Promise._async,Warning=require("./errors").Warning,util=require("./util"),canAttachTrace=util.canAttachTrace,bluebirdFramePattern=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,nodeFramePattern=/\((?:timers\.js):\d+:\d+\)/,parseLinePattern=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,stackFramePattern=null,formatStack=null,indentStackFrames=!1,debugging=!(0==util.env("BLUEBIRD_DEBUG")||!util.env("BLUEBIRD_DEBUG")&&"development"!==util.env("NODE_ENV")),warnings=!(0==util.env("BLUEBIRD_WARNINGS")||!debugging&&!util.env("BLUEBIRD_WARNINGS")),longStackTraces=!(0==util.env("BLUEBIRD_LONG_STACK_TRACES")||!debugging&&!util.env("BLUEBIRD_LONG_STACK_TRACES")),wForgottenReturn=0!=util.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(warnings||!!util.env("BLUEBIRD_W_FORGOTTEN_RETURN"));Promise.prototype.suppressUnhandledRejections=function(){var target=this._target();target._bitField=-1048577&target._bitField|524288},Promise.prototype._ensurePossibleRejectionHandled=function(){0===(524288&this._bitField)&&(this._setRejectionIsUnhandled(),async.invokeLater(this._notifyUnhandledRejection,this,void 0))},Promise.prototype._notifyUnhandledRejectionIsHandled=function(){fireRejectionEvent("rejectionHandled",unhandledRejectionHandled,void 0,this)},Promise.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},Promise.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},Promise.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var reason=this._settledValue();this._setUnhandledRejectionIsNotified(),fireRejectionEvent("unhandledRejection",possiblyUnhandledRejection,reason,this)}},Promise.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},Promise.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},Promise.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},Promise.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},Promise.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},Promise.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},Promise.prototype._warn=function(message,shouldUseOwnTrace,promise){return warn(message,shouldUseOwnTrace,promise||this)},Promise.onPossiblyUnhandledRejection=function(fn){var domain=getDomain();possiblyUnhandledRejection="function"==typeof fn?null===domain?fn:util.domainBind(domain,fn):void 0},Promise.onUnhandledRejectionHandled=function(fn){var domain=getDomain();unhandledRejectionHandled="function"==typeof fn?null===domain?fn:util.domainBind(domain,fn):void 0};var disableLongStackTraces=function(){};Promise.longStackTraces=function(){if(async.haveItemsQueued()&&!config.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!config.longStackTraces&&longStackTracesIsSupported()){var Promise_captureStackTrace=Promise.prototype._captureStackTrace,Promise_attachExtraTrace=Promise.prototype._attachExtraTrace;config.longStackTraces=!0,disableLongStackTraces=function(){if(async.haveItemsQueued()&&!config.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");Promise.prototype._captureStackTrace=Promise_captureStackTrace,Promise.prototype._attachExtraTrace=Promise_attachExtraTrace,Context.deactivateLongStackTraces(),async.enableTrampoline(),config.longStackTraces=!1},Promise.prototype._captureStackTrace=longStackTracesCaptureStackTrace,Promise.prototype._attachExtraTrace=longStackTracesAttachExtraTrace,Context.activateLongStackTraces(),async.disableTrampolineIfNecessary()}},Promise.hasLongStackTraces=function(){return config.longStackTraces&&longStackTracesIsSupported()};var fireDomEvent=function(){try{if("function"==typeof CustomEvent){var event=new CustomEvent("CustomEvent");return util.global.dispatchEvent(event),function(name,event){var domEvent=new CustomEvent(name.toLowerCase(),{detail:event,cancelable:!0});return!util.global.dispatchEvent(domEvent)}}if("function"==typeof Event){var event=new Event("CustomEvent");return util.global.dispatchEvent(event),function(name,event){var domEvent=new Event(name.toLowerCase(),{cancelable:!0});return domEvent.detail=event,!util.global.dispatchEvent(domEvent)}}var event=document.createEvent("CustomEvent");return event.initCustomEvent("testingtheevent",!1,!0,{}),util.global.dispatchEvent(event),function(name,event){var domEvent=document.createEvent("CustomEvent");return domEvent.initCustomEvent(name.toLowerCase(),!1,!0,event),!util.global.dispatchEvent(domEvent)}}catch(e){}return function(){return!1}}(),fireGlobalEvent=function(){return util.isNode?function(){return process.emit.apply(process,arguments)}:util.global?function(name){var methodName="on"+name.toLowerCase(),method=util.global[methodName];return method?(method.apply(util.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),eventToObjectGenerator={promiseCreated:generatePromiseLifecycleEventObject,promiseFulfilled:generatePromiseLifecycleEventObject,promiseRejected:generatePromiseLifecycleEventObject,promiseResolved:generatePromiseLifecycleEventObject,promiseCancelled:generatePromiseLifecycleEventObject,promiseChained:function(name,promise,child){return{promise:promise,child:child}},warning:function(name,warning){return{warning:warning}},unhandledRejection:function(name,reason,promise){return{reason:reason,promise:promise}},rejectionHandled:generatePromiseLifecycleEventObject},activeFireEvent=function(name){var globalEventFired=!1;try{globalEventFired=fireGlobalEvent.apply(null,arguments)}catch(e){async.throwLater(e),globalEventFired=!0}var domEventFired=!1;try{domEventFired=fireDomEvent(name,eventToObjectGenerator[name].apply(null,arguments))}catch(e){async.throwLater(e),domEventFired=!0}return domEventFired||globalEventFired};Promise.config=function(opts){if(opts=Object(opts),"longStackTraces"in opts&&(opts.longStackTraces?Promise.longStackTraces():!opts.longStackTraces&&Promise.hasLongStackTraces()&&disableLongStackTraces()),"warnings"in opts){var warningsOption=opts.warnings;config.warnings=!!warningsOption,wForgottenReturn=config.warnings,util.isObject(warningsOption)&&"wForgottenReturn"in warningsOption&&(wForgottenReturn=!!warningsOption.wForgottenReturn)}if("cancellation"in opts&&opts.cancellation&&!config.cancellation){if(async.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");Promise.prototype._clearCancellationData=cancellationClearCancellationData,Promise.prototype._propagateFrom=cancellationPropagateFrom,Promise.prototype._onCancel=cancellationOnCancel,Promise.prototype._setOnCancel=cancellationSetOnCancel,Promise.prototype._attachCancellationCallback=cancellationAttachCancellationCallback,Promise.prototype._execute=cancellationExecute,propagateFromFunction=cancellationPropagateFrom,config.cancellation=!0}return"monitoring"in opts&&(opts.monitoring&&!config.monitoring?(config.monitoring=!0,Promise.prototype._fireEvent=activeFireEvent):!opts.monitoring&&config.monitoring&&(config.monitoring=!1,Promise.prototype._fireEvent=defaultFireEvent)),Promise},Promise.prototype._fireEvent=defaultFireEvent,Promise.prototype._execute=function(executor,resolve,reject){try{executor(resolve,reject)}catch(e){return e}},Promise.prototype._onCancel=function(){},Promise.prototype._setOnCancel=function(handler){},Promise.prototype._attachCancellationCallback=function(onCancel){},Promise.prototype._captureStackTrace=function(){},Promise.prototype._attachExtraTrace=function(){},Promise.prototype._clearCancellationData=function(){},Promise.prototype._propagateFrom=function(parent,flags){};var propagateFromFunction=bindingPropagateFrom,shouldIgnore=function(){return!1},parseLineInfoRegex=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;util.inherits(CapturedTrace,Error),Context.CapturedTrace=CapturedTrace,CapturedTrace.prototype.uncycle=function(){var length=this._length;if(!(2>length)){for(var nodes=[],stackToIndex={},i=0,node=this;void 0!==node;++i)nodes.push(node),node=node._parent;length=this._length=i;for(var i=length-1;i>=0;--i){var stack=nodes[i].stack;void 0===stackToIndex[stack]&&(stackToIndex[stack]=i)}for(var i=0;length>i;++i){var currentStack=nodes[i].stack,index=stackToIndex[currentStack];if(void 0!==index&&index!==i){index>0&&(nodes[index-1]._parent=void 0,nodes[index-1]._length=1),nodes[i]._parent=void 0,nodes[i]._length=1;var cycleEdgeNode=i>0?nodes[i-1]:this;length-1>index?(cycleEdgeNode._parent=nodes[index+1],cycleEdgeNode._parent.uncycle(),cycleEdgeNode._length=cycleEdgeNode._parent._length+1):(cycleEdgeNode._parent=void 0,cycleEdgeNode._length=1);for(var currentChildLength=cycleEdgeNode._length+1,j=i-2;j>=0;--j)nodes[j]._length=currentChildLength,currentChildLength++;return}}}},CapturedTrace.prototype.attachExtraTrace=function(error){if(!error.__stackCleaned__){this.uncycle();for(var parsed=parseStackAndMessage(error),message=parsed.message,stacks=[parsed.stack],trace=this;void 0!==trace;)stacks.push(cleanStack(trace.stack.split("\n"))),trace=trace._parent;removeCommonRoots(stacks),removeDuplicateOrEmptyJumps(stacks),util.notEnumerableProp(error,"stack",reconstructStack(message,stacks)),util.notEnumerableProp(error,"__stackCleaned__",!0)}};var captureStackTrace=function(){var v8stackFramePattern=/^\s*at\s*/,v8stackFormatter=function(stack,error){return"string"==typeof stack?stack:void 0!==error.name&&void 0!==error.message?error.toString():formatNonError(error)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,stackFramePattern=v8stackFramePattern,formatStack=v8stackFormatter;var captureStackTrace=Error.captureStackTrace;return shouldIgnore=function(line){return bluebirdFramePattern.test(line)},function(receiver,ignoreUntil){Error.stackTraceLimit+=6,captureStackTrace(receiver,ignoreUntil),Error.stackTraceLimit-=6}}var err=new Error;if("string"==typeof err.stack&&err.stack.split("\n")[0].indexOf("stackDetection@")>=0)return stackFramePattern=/@/,formatStack=v8stackFormatter,indentStackFrames=!0,function(o){o.stack=(new Error).stack};var hasStackAfterThrow;try{throw new Error}catch(e){hasStackAfterThrow="stack"in e}return"stack"in err||!hasStackAfterThrow||"number"!=typeof Error.stackTraceLimit?(formatStack=function(stack,error){return"string"==typeof stack?stack:"object"!=typeof error&&"function"!=typeof error||void 0===error.name||void 0===error.message?formatNonError(error):error.toString()},null):(stackFramePattern=v8stackFramePattern,formatStack=v8stackFormatter,function(o){Error.stackTraceLimit+=6;try{throw new Error}catch(e){o.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(printWarning=function(message){console.warn(message)},util.isNode&&process.stderr.isTTY?printWarning=function(message,isSoft){var color=isSoft?"":"";console.warn(color+message+"\n")}:util.isNode||"string"!=typeof(new Error).stack||(printWarning=function(message,isSoft){console.warn("%c"+message,isSoft?"color: darkorange":"color: red")}));var config={warnings:warnings,longStackTraces:!1,cancellation:!1,monitoring:!1};return longStackTraces&&Promise.longStackTraces(),{longStackTraces:function(){return config.longStackTraces},warnings:function(){return config.warnings},cancellation:function(){return config.cancellation},monitoring:function(){return config.monitoring},propagateFromFunction:function(){return propagateFromFunction},boundValueFunction:function(){return boundValueFunction},checkForgottenReturns:checkForgottenReturns,setBounds:setBounds,warn:warn,deprecated:deprecated,CapturedTrace:CapturedTrace,fireDomEvent:fireDomEvent,fireGlobalEvent:fireGlobalEvent}}}).call(this,require("_process"))},{"./errors":58,"./util":82,_process:102}],56:[function(require,module,exports){"use strict";module.exports=function(Promise){function returner(){return this.value}function thrower(){throw this.reason}Promise.prototype["return"]=Promise.prototype.thenReturn=function(value){return value instanceof Promise&&value.suppressUnhandledRejections(),this._then(returner,void 0,void 0,{value:value},void 0)},Promise.prototype["throw"]=Promise.prototype.thenThrow=function(reason){return this._then(thrower,void 0,void 0,{reason:reason},void 0)},Promise.prototype.catchThrow=function(reason){if(arguments.length<=1)return this._then(void 0,thrower,void 0,{reason:reason},void 0);var _reason=arguments[1],handler=function(){throw _reason};return this.caught(reason,handler)},Promise.prototype.catchReturn=function(value){if(arguments.length<=1)return value instanceof Promise&&value.suppressUnhandledRejections(),this._then(void 0,returner,void 0,{value:value},void 0);var _value=arguments[1];_value instanceof Promise&&_value.suppressUnhandledRejections();var handler=function(){return _value};return this.caught(value,handler)}}},{}],57:[function(require,module,exports){"use strict";module.exports=function(Promise,INTERNAL){function promiseAllThis(){return PromiseAll(this)}function PromiseMapSeries(promises,fn){return PromiseReduce(promises,fn,INTERNAL,INTERNAL)}var PromiseReduce=Promise.reduce,PromiseAll=Promise.all;Promise.prototype.each=function(fn){return PromiseReduce(this,fn,INTERNAL,0)._then(promiseAllThis,void 0,void 0,this,void 0)},Promise.prototype.mapSeries=function(fn){return PromiseReduce(this,fn,INTERNAL,INTERNAL)},Promise.each=function(promises,fn){return PromiseReduce(promises,fn,INTERNAL,0)._then(promiseAllThis,void 0,void 0,promises,void 0)},Promise.mapSeries=PromiseMapSeries}},{}],58:[function(require,module,exports){"use strict";function subError(nameProperty,defaultMessage){function SubError(message){return this instanceof SubError?(notEnumerableProp(this,"message","string"==typeof message?message:defaultMessage),notEnumerableProp(this,"name",nameProperty),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new SubError(message)}return inherits(SubError,Error),SubError}function OperationalError(message){return this instanceof OperationalError?(notEnumerableProp(this,"name","OperationalError"),notEnumerableProp(this,"message",message),this.cause=message,this.isOperational=!0,void(message instanceof Error?(notEnumerableProp(this,"message",message.message),notEnumerableProp(this,"stack",message.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new OperationalError(message)}var _TypeError,_RangeError,es5=require("./es5"),Objectfreeze=es5.freeze,util=require("./util"),inherits=util.inherits,notEnumerableProp=util.notEnumerableProp,Warning=subError("Warning","warning"),CancellationError=subError("CancellationError","cancellation error"),TimeoutError=subError("TimeoutError","timeout error"),AggregateError=subError("AggregateError","aggregate error");try{_TypeError=TypeError,_RangeError=RangeError}catch(e){_TypeError=subError("TypeError","type error"),_RangeError=subError("RangeError","range error")}for(var methods="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),i=0;i1?ctx.cancelPromise._reject(reason):ctx.cancelPromise._cancel(),ctx.cancelPromise=null,!0):!1}function succeed(){return finallyHandler.call(this,this.promise._target()._settledValue())}function fail(reason){return checkCancel(this,reason)?void 0:(errorObj.e=reason,errorObj)}function finallyHandler(reasonOrValue){var promise=this.promise,handler=this.handler;if(!this.called){this.called=!0;var ret=this.isFinallyHandler()?handler.call(promise._boundValue()):handler.call(promise._boundValue(),reasonOrValue);if(void 0!==ret){promise._setReturnedNonUndefined();var maybePromise=tryConvertToPromise(ret,promise);if(maybePromise instanceof Promise){if(null!=this.cancelPromise){if(maybePromise._isCancelled()){var reason=new CancellationError("late cancellation observer");return promise._attachExtraTrace(reason),errorObj.e=reason,errorObj}maybePromise.isPending()&&maybePromise._attachCancellationCallback(new FinallyHandlerCancelReaction(this))}return maybePromise._then(succeed,fail,void 0,this,void 0)}}}return promise.isRejected()?(checkCancel(this),errorObj.e=reasonOrValue,errorObj):(checkCancel(this),reasonOrValue)}var util=require("./util"),CancellationError=Promise.CancellationError,errorObj=util.errorObj;return PassThroughHandlerContext.prototype.isFinallyHandler=function(){return 0===this.type},FinallyHandlerCancelReaction.prototype._resultCancelled=function(){checkCancel(this.finallyHandler)},Promise.prototype._passThrough=function(handler,type,success,fail){return"function"!=typeof handler?this.then():this._then(success,fail,void 0,new PassThroughHandlerContext(this,type,handler),void 0)},Promise.prototype.lastly=Promise.prototype["finally"]=function(handler){return this._passThrough(handler,0,finallyHandler,finallyHandler)},Promise.prototype.tap=function(handler){return this._passThrough(handler,1,finallyHandler)},PassThroughHandlerContext}},{"./util":82}],62:[function(require,module,exports){"use strict";module.exports=function(Promise,apiRejection,INTERNAL,tryConvertToPromise,Proxyable,debug){function promiseFromYieldHandler(value,yieldHandlers,traceParent){for(var i=0;ii;++i)holderClasses.push(generateHolderClass(i+1)),thenCallbacks.push(thenCallback(i+1)),promiseSetters.push(promiseSetter(i+1));reject=function(reason){this._reject(reason)}}Promise.join=function(){var fn,last=arguments.length-1;if(last>0&&"function"==typeof arguments[last]&&(fn=arguments[last],8>=last&&canEvaluate)){var ret=new Promise(INTERNAL);ret._captureStackTrace();for(var HolderClass=holderClasses[last-1],holder=new HolderClass(fn),callbacks=thenCallbacks,i=0;last>i;++i){var maybePromise=tryConvertToPromise(arguments[i],ret);if(maybePromise instanceof Promise){maybePromise=maybePromise._target();var bitField=maybePromise._bitField;0===(50397184&bitField)?(maybePromise._then(callbacks[i],reject,void 0,ret,holder),promiseSetters[i](maybePromise,holder),holder.asyncNeeded=!1):0!==(33554432&bitField)?callbacks[i].call(ret,maybePromise._value(),holder):0!==(16777216&bitField)?ret._reject(maybePromise._reason()):ret._cancel()}else callbacks[i].call(ret,maybePromise,holder)}if(!ret._isFateSealed()){if(holder.asyncNeeded){var domain=getDomain();null!==domain&&(holder.fn=util.domainBind(domain,holder.fn))}ret._setAsyncGuaranteed(),ret._setOnCancel(holder)}return ret}for(var $_len=arguments.length,args=new Array($_len),$_i=0;$_len>$_i;++$_i)args[$_i]=arguments[$_i];fn&&args.pop();var ret=new PromiseArray(args).promise();return void 0!==fn?ret.spread(fn):ret}}},{"./util":82}],64:[function(require,module,exports){"use strict";module.exports=function(Promise,PromiseArray,apiRejection,tryConvertToPromise,INTERNAL,debug){function MappingPromiseArray(promises,fn,limit,_filter){this.constructor$(promises),this._promise._captureStackTrace();var domain=getDomain();this._callback=null===domain?fn:util.domainBind(domain,fn),this._preservedValues=_filter===INTERNAL?new Array(this.length()):null,this._limit=limit,this._inFlight=0,this._queue=[],async.invoke(this._asyncInit,this,void 0)}function map(promises,fn,options,_filter){if("function"!=typeof fn)return apiRejection("expecting a function but got "+util.classString(fn));var limit=0;if(void 0!==options){if("object"!=typeof options||null===options)return Promise.reject(new TypeError("options argument must be an object but it is "+util.classString(options)));if("number"!=typeof options.concurrency)return Promise.reject(new TypeError("'concurrency' must be a number but it is "+util.classString(options.concurrency)));limit=options.concurrency}return limit="number"==typeof limit&&isFinite(limit)&&limit>=1?limit:0,new MappingPromiseArray(promises,fn,limit,_filter).promise()}var getDomain=Promise._getDomain,util=require("./util"),tryCatch=util.tryCatch,errorObj=util.errorObj,async=Promise._async;util.inherits(MappingPromiseArray,PromiseArray),MappingPromiseArray.prototype._asyncInit=function(){this._init$(void 0,-2)},MappingPromiseArray.prototype._init=function(){},MappingPromiseArray.prototype._promiseFulfilled=function(value,index){var values=this._values,length=this.length(),preservedValues=this._preservedValues,limit=this._limit;if(0>index){if(index=-1*index-1,values[index]=value,limit>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(limit>=1&&this._inFlight>=limit)return values[index]=value,this._queue.push(index),!1;null!==preservedValues&&(preservedValues[index]=value);var promise=this._promise,callback=this._callback,receiver=promise._boundValue();promise._pushContext();var ret=tryCatch(callback).call(receiver,value,index,length),promiseCreated=promise._popContext();if(debug.checkForgottenReturns(ret,promiseCreated,null!==preservedValues?"Promise.filter":"Promise.map",promise),ret===errorObj)return this._reject(ret.e),!0;var maybePromise=tryConvertToPromise(ret,this._promise);if(maybePromise instanceof Promise){maybePromise=maybePromise._target();var bitField=maybePromise._bitField;if(0===(50397184&bitField))return limit>=1&&this._inFlight++,values[index]=maybePromise,maybePromise._proxy(this,-1*(index+1)),!1;if(0===(33554432&bitField))return 0!==(16777216&bitField)?(this._reject(maybePromise._reason()),!0):(this._cancel(),!0);ret=maybePromise._value()}values[index]=ret}var totalResolved=++this._totalResolved;return totalResolved>=length?(null!==preservedValues?this._filter(values,preservedValues):this._resolve(values),!0):!1},MappingPromiseArray.prototype._drainQueue=function(){for(var queue=this._queue,limit=this._limit,values=this._values;queue.length>0&&this._inFlighti;++i)booleans[i]&&(ret[j++]=values[i]);ret.length=j,this._resolve(ret)},MappingPromiseArray.prototype.preservedValues=function(){return this._preservedValues},Promise.prototype.map=function(fn,options){return map(this,fn,options,null)},Promise.map=function(promises,fn,options,_filter){return map(promises,fn,options,_filter)}}},{"./util":82}],65:[function(require,module,exports){"use strict";module.exports=function(Promise,INTERNAL,tryConvertToPromise,apiRejection,debug){var util=require("./util"),tryCatch=util.tryCatch;Promise.method=function(fn){if("function"!=typeof fn)throw new Promise.TypeError("expecting a function but got "+util.classString(fn));return function(){var ret=new Promise(INTERNAL);ret._captureStackTrace(),ret._pushContext();var value=tryCatch(fn).apply(this,arguments),promiseCreated=ret._popContext();return debug.checkForgottenReturns(value,promiseCreated,"Promise.method",ret),ret._resolveFromSyncValue(value),ret}},Promise.attempt=Promise["try"]=function(fn){if("function"!=typeof fn)return apiRejection("expecting a function but got "+util.classString(fn));var ret=new Promise(INTERNAL);ret._captureStackTrace(),ret._pushContext();var value;if(arguments.length>1){debug.deprecated("calling Promise.try with more than 1 argument");var arg=arguments[1],ctx=arguments[2];value=util.isArray(arg)?tryCatch(fn).apply(ctx,arg):tryCatch(fn).call(ctx,arg)}else value=tryCatch(fn)();var promiseCreated=ret._popContext();return debug.checkForgottenReturns(value,promiseCreated,"Promise.try",ret),ret._resolveFromSyncValue(value),ret},Promise.prototype._resolveFromSyncValue=function(value){value===util.errorObj?this._rejectCallback(value.e,!1):this._resolveCallback(value,!0)}}},{"./util":82}],66:[function(require,module,exports){"use strict";function isUntypedError(obj){return obj instanceof Error&&es5.getPrototypeOf(obj)===Error.prototype}function wrapAsOperationalError(obj){var ret;if(isUntypedError(obj)){ret=new OperationalError(obj),ret.name=obj.name,ret.message=obj.message,ret.stack=obj.stack;for(var keys=es5.keys(obj),i=0;i$_i;++$_i)args[$_i-1]=arguments[$_i];promise._fulfill(args)}else promise._fulfill(value);promise=null}}}var util=require("./util"),maybeWrapAsError=util.maybeWrapAsError,errors=require("./errors"),OperationalError=errors.OperationalError,es5=require("./es5"),rErrorKey=/^(?:name|message|stack|cause)$/;module.exports=nodebackForPromise},{"./errors":58,"./es5":59,"./util":82}],67:[function(require,module,exports){"use strict";module.exports=function(Promise){function spreadAdapter(val,nodeback){var promise=this;if(!util.isArray(val))return successAdapter.call(promise,val,nodeback);var ret=tryCatch(nodeback).apply(promise._boundValue(),[null].concat(val));ret===errorObj&&async.throwLater(ret.e)}function successAdapter(val,nodeback){var promise=this,receiver=promise._boundValue(),ret=void 0===val?tryCatch(nodeback).call(receiver,null):tryCatch(nodeback).call(receiver,null,val);ret===errorObj&&async.throwLater(ret.e)}function errorAdapter(reason,nodeback){var promise=this;if(!reason){var newReason=new Error(reason+"");newReason.cause=reason,reason=newReason}var ret=tryCatch(nodeback).call(promise._boundValue(),reason);ret===errorObj&&async.throwLater(ret.e)}var util=require("./util"),async=Promise._async,tryCatch=util.tryCatch,errorObj=util.errorObj;Promise.prototype.asCallback=Promise.prototype.nodeify=function(nodeback,options){if("function"==typeof nodeback){var adapter=successAdapter;void 0!==options&&Object(options).spread&&(adapter=spreadAdapter),this._then(adapter,errorAdapter,void 0,this,nodeback)}return this}}},{"./util":82}],68:[function(require,module,exports){(function(process){"use strict";module.exports=function(){function Proxyable(){}function check(self,executor){if("function"!=typeof executor)throw new TypeError("expecting a function but got "+util.classString(executor));if(self.constructor!==Promise)throw new TypeError("the promise constructor cannot be invoked directly\n\n See http://goo.gl/MqrFmX\n")}function Promise(executor){this._bitField=0,this._fulfillmentHandler0=void 0,this._rejectionHandler0=void 0,this._promise0=void 0,this._receiver0=void 0,executor!==INTERNAL&&(check(this,executor),this._resolveFromExecutor(executor)),this._promiseCreated(),this._fireEvent("promiseCreated",this)}function deferResolve(v){this.promise._resolveCallback(v)}function deferReject(v){this.promise._rejectCallback(v,!1)}function fillTypes(value){var p=new Promise(INTERNAL);p._fulfillmentHandler0=value,p._rejectionHandler0=value,p._promise0=value,p._receiver0=value}var getDomain,makeSelfResolutionError=function(){return new TypeError("circular promise resolution chain\n\n See http://goo.gl/MqrFmX\n")},reflectHandler=function(){return new Promise.PromiseInspection(this._target())},apiRejection=function(msg){return Promise.reject(new TypeError(msg))},UNDEFINED_BINDING={},util=require("./util");getDomain=util.isNode?function(){var ret=process.domain;return void 0===ret&&(ret=null),ret}:function(){return null},util.notEnumerableProp(Promise,"_getDomain",getDomain);var es5=require("./es5"),Async=require("./async"),async=new Async;es5.defineProperty(Promise,"_async",{value:async});var errors=require("./errors"),TypeError=Promise.TypeError=errors.TypeError;Promise.RangeError=errors.RangeError;var CancellationError=Promise.CancellationError=errors.CancellationError;Promise.TimeoutError=errors.TimeoutError,Promise.OperationalError=errors.OperationalError,Promise.RejectionError=errors.OperationalError,Promise.AggregateError=errors.AggregateError;var INTERNAL=function(){},APPLY={},NEXT_FILTER={},tryConvertToPromise=require("./thenables")(Promise,INTERNAL),PromiseArray=require("./promise_array")(Promise,INTERNAL,tryConvertToPromise,apiRejection,Proxyable),Context=require("./context")(Promise),createContext=Context.create,debug=require("./debuggability")(Promise,Context),PassThroughHandlerContext=(debug.CapturedTrace,require("./finally")(Promise,tryConvertToPromise)),catchFilter=require("./catch_filter")(NEXT_FILTER),nodebackForPromise=require("./nodeback"),errorObj=util.errorObj,tryCatch=util.tryCatch;return Promise.prototype.toString=function(){return"[object Promise]"},Promise.prototype.caught=Promise.prototype["catch"]=function(fn){var len=arguments.length;if(len>1){var i,catchInstances=new Array(len-1),j=0;for(i=0;len-1>i;++i){var item=arguments[i];if(!util.isObject(item))return apiRejection("expecting an object but got A catch statement predicate "+util.classString(item));catchInstances[j++]=item}return catchInstances.length=j,fn=arguments[i],this.then(void 0,catchFilter(catchInstances,fn,this))}return this.then(void 0,fn)},Promise.prototype.reflect=function(){return this._then(reflectHandler,reflectHandler,void 0,this,void 0)},Promise.prototype.then=function(didFulfill,didReject){if(debug.warnings()&&arguments.length>0&&"function"!=typeof didFulfill&&"function"!=typeof didReject){var msg=".then() only accepts functions but was passed: "+util.classString(didFulfill);arguments.length>1&&(msg+=", "+util.classString(didReject)),this._warn(msg)}return this._then(didFulfill,didReject,void 0,void 0,void 0)},Promise.prototype.done=function(didFulfill,didReject){var promise=this._then(didFulfill,didReject,void 0,void 0,void 0);promise._setIsFinal()},Promise.prototype.spread=function(fn){return"function"!=typeof fn?apiRejection("expecting a function but got "+util.classString(fn)):this.all()._then(fn,void 0,void 0,APPLY,void 0)},Promise.prototype.toJSON=function(){var ret={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(ret.fulfillmentValue=this.value(),ret.isFulfilled=!0):this.isRejected()&&(ret.rejectionReason=this.reason(),ret.isRejected=!0),ret},Promise.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new PromiseArray(this).promise()},Promise.prototype.error=function(fn){return this.caught(util.originatesFromRejection,fn)},Promise.getNewLibraryCopy=module.exports,Promise.is=function(val){return val instanceof Promise},Promise.fromNode=Promise.fromCallback=function(fn){var ret=new Promise(INTERNAL);ret._captureStackTrace();var multiArgs=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,result=tryCatch(fn)(nodebackForPromise(ret,multiArgs));return result===errorObj&&ret._rejectCallback(result.e,!0),ret._isFateSealed()||ret._setAsyncGuaranteed(),ret},Promise.all=function(promises){return new PromiseArray(promises).promise()},Promise.cast=function(obj){var ret=tryConvertToPromise(obj);return ret instanceof Promise||(ret=new Promise(INTERNAL),ret._captureStackTrace(),ret._setFulfilled(),ret._rejectionHandler0=obj),ret},Promise.resolve=Promise.fulfilled=Promise.cast,Promise.reject=Promise.rejected=function(reason){var ret=new Promise(INTERNAL);return ret._captureStackTrace(),ret._rejectCallback(reason,!0),ret},Promise.setScheduler=function(fn){if("function"!=typeof fn)throw new TypeError("expecting a function but got "+util.classString(fn));return async.setScheduler(fn)},Promise.prototype._then=function(didFulfill,didReject,_,receiver,internalData){var haveInternalData=void 0!==internalData,promise=haveInternalData?internalData:new Promise(INTERNAL),target=this._target(),bitField=target._bitField;haveInternalData||(promise._propagateFrom(this,3),promise._captureStackTrace(),void 0===receiver&&0!==(2097152&this._bitField)&&(receiver=0!==(50397184&bitField)?this._boundValue():target===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,promise));var domain=getDomain();if(0!==(50397184&bitField)){var handler,value,settler=target._settlePromiseCtx;0!==(33554432&bitField)?(value=target._rejectionHandler0,handler=didFulfill):0!==(16777216&bitField)?(value=target._fulfillmentHandler0,handler=didReject,target._unsetRejectionIsUnhandled()):(settler=target._settlePromiseLateCancellationObserver,value=new CancellationError("late cancellation observer"),target._attachExtraTrace(value),handler=didReject),async.invoke(settler,target,{handler:null===domain?handler:"function"==typeof handler&&util.domainBind(domain,handler),promise:promise,receiver:receiver,value:value})}else target._addCallbacks(didFulfill,didReject,promise,receiver,domain);return promise},Promise.prototype._length=function(){return 65535&this._bitField},Promise.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},Promise.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},Promise.prototype._setLength=function(len){this._bitField=-65536&this._bitField|65535&len},Promise.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},Promise.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},Promise.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},Promise.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},Promise.prototype._isFinal=function(){return(4194304&this._bitField)>0},Promise.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},Promise.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},Promise.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},Promise.prototype._setAsyncGuaranteed=function(){async.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},Promise.prototype._receiverAt=function(index){var ret=0===index?this._receiver0:this[4*index-4+3];return ret===UNDEFINED_BINDING?void 0:void 0===ret&&this._isBound()?this._boundValue():ret},Promise.prototype._promiseAt=function(index){return this[4*index-4+2]},Promise.prototype._fulfillmentHandlerAt=function(index){return this[4*index-4+0]},Promise.prototype._rejectionHandlerAt=function(index){return this[4*index-4+1]},Promise.prototype._boundValue=function(){},Promise.prototype._migrateCallback0=function(follower){var fulfill=(follower._bitField,follower._fulfillmentHandler0),reject=follower._rejectionHandler0,promise=follower._promise0,receiver=follower._receiverAt(0);void 0===receiver&&(receiver=UNDEFINED_BINDING),this._addCallbacks(fulfill,reject,promise,receiver,null)},Promise.prototype._migrateCallbackAt=function(follower,index){var fulfill=follower._fulfillmentHandlerAt(index),reject=follower._rejectionHandlerAt(index),promise=follower._promiseAt(index),receiver=follower._receiverAt(index);void 0===receiver&&(receiver=UNDEFINED_BINDING),this._addCallbacks(fulfill,reject,promise,receiver,null)},Promise.prototype._addCallbacks=function(fulfill,reject,promise,receiver,domain){var index=this._length();if(index>=65531&&(index=0,this._setLength(0)),0===index)this._promise0=promise,this._receiver0=receiver,"function"==typeof fulfill&&(this._fulfillmentHandler0=null===domain?fulfill:util.domainBind(domain,fulfill)),"function"==typeof reject&&(this._rejectionHandler0=null===domain?reject:util.domainBind(domain,reject));else{var base=4*index-4;this[base+2]=promise,this[base+3]=receiver,"function"==typeof fulfill&&(this[base+0]=null===domain?fulfill:util.domainBind(domain,fulfill)),"function"==typeof reject&&(this[base+1]=null===domain?reject:util.domainBind(domain,reject))}return this._setLength(index+1),index},Promise.prototype._proxy=function(proxyable,arg){this._addCallbacks(void 0,void 0,arg,proxyable,null)},Promise.prototype._resolveCallback=function(value,shouldBind){if(0===(117506048&this._bitField)){if(value===this)return this._rejectCallback(makeSelfResolutionError(),!1);var maybePromise=tryConvertToPromise(value,this);if(!(maybePromise instanceof Promise))return this._fulfill(value);shouldBind&&this._propagateFrom(maybePromise,2);var promise=maybePromise._target();if(promise===this)return void this._reject(makeSelfResolutionError());var bitField=promise._bitField;if(0===(50397184&bitField)){var len=this._length();len>0&&promise._migrateCallback0(this);for(var i=1;len>i;++i)promise._migrateCallbackAt(this,i);this._setFollowing(),this._setLength(0),this._setFollowee(promise)}else if(0!==(33554432&bitField))this._fulfill(promise._value());else if(0!==(16777216&bitField))this._reject(promise._reason());else{var reason=new CancellationError("late cancellation observer");promise._attachExtraTrace(reason),this._reject(reason)}}},Promise.prototype._rejectCallback=function(reason,synchronous,ignoreNonErrorWarnings){var trace=util.ensureErrorObject(reason),hasStack=trace===reason;if(!hasStack&&!ignoreNonErrorWarnings&&debug.warnings()){var message="a promise was rejected with a non-error: "+util.classString(reason);this._warn(message,!0)}this._attachExtraTrace(trace,synchronous?hasStack:!1),this._reject(reason)},Promise.prototype._resolveFromExecutor=function(executor){var promise=this;this._captureStackTrace(),this._pushContext();var synchronous=!0,r=this._execute(executor,function(value){promise._resolveCallback(value)},function(reason){promise._rejectCallback(reason,synchronous)});synchronous=!1,this._popContext(),void 0!==r&&promise._rejectCallback(r,!0)},Promise.prototype._settlePromiseFromHandler=function(handler,receiver,value,promise){var bitField=promise._bitField;if(0===(65536&bitField)){promise._pushContext();var x;receiver===APPLY?value&&"number"==typeof value.length?x=tryCatch(handler).apply(this._boundValue(),value):(x=errorObj,x.e=new TypeError("cannot .spread() a non-array: "+util.classString(value))):x=tryCatch(handler).call(receiver,value);var promiseCreated=promise._popContext();bitField=promise._bitField,0===(65536&bitField)&&(x===NEXT_FILTER?promise._reject(value):x===errorObj?promise._rejectCallback(x.e,!1):(debug.checkForgottenReturns(x,promiseCreated,"",promise,this),promise._resolveCallback(x)))}},Promise.prototype._target=function(){for(var ret=this;ret._isFollowing();)ret=ret._followee();return ret},Promise.prototype._followee=function(){return this._rejectionHandler0},Promise.prototype._setFollowee=function(promise){this._rejectionHandler0=promise},Promise.prototype._settlePromise=function(promise,handler,receiver,value){var isPromise=promise instanceof Promise,bitField=this._bitField,asyncGuaranteed=0!==(134217728&bitField);0!==(65536&bitField)?(isPromise&&promise._invokeInternalOnCancel(),receiver instanceof PassThroughHandlerContext&&receiver.isFinallyHandler()?(receiver.cancelPromise=promise,tryCatch(handler).call(receiver,value)===errorObj&&promise._reject(errorObj.e)):handler===reflectHandler?promise._fulfill(reflectHandler.call(receiver)):receiver instanceof Proxyable?receiver._promiseCancelled(promise):isPromise||promise instanceof PromiseArray?promise._cancel():receiver.cancel()):"function"==typeof handler?isPromise?(asyncGuaranteed&&promise._setAsyncGuaranteed(),this._settlePromiseFromHandler(handler,receiver,value,promise)):handler.call(receiver,value,promise):receiver instanceof Proxyable?receiver._isResolved()||(0!==(33554432&bitField)?receiver._promiseFulfilled(value,promise):receiver._promiseRejected(value,promise)):isPromise&&(asyncGuaranteed&&promise._setAsyncGuaranteed(),0!==(33554432&bitField)?promise._fulfill(value):promise._reject(value))},Promise.prototype._settlePromiseLateCancellationObserver=function(ctx){var handler=ctx.handler,promise=ctx.promise,receiver=ctx.receiver,value=ctx.value;"function"==typeof handler?promise instanceof Promise?this._settlePromiseFromHandler(handler,receiver,value,promise):handler.call(receiver,value,promise):promise instanceof Promise&&promise._reject(value)},Promise.prototype._settlePromiseCtx=function(ctx){this._settlePromise(ctx.promise,ctx.handler,ctx.receiver,ctx.value)},Promise.prototype._settlePromise0=function(handler,value,bitField){var promise=this._promise0,receiver=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(promise,handler,receiver,value)},Promise.prototype._clearCallbackDataAtIndex=function(index){var base=4*index-4;this[base+2]=this[base+3]=this[base+0]=this[base+1]=void 0},Promise.prototype._fulfill=function(value){var bitField=this._bitField;if(!((117506048&bitField)>>>16)){if(value===this){var err=makeSelfResolutionError();return this._attachExtraTrace(err),this._reject(err)}this._setFulfilled(),this._rejectionHandler0=value,(65535&bitField)>0&&(0!==(134217728&bitField)?this._settlePromises():async.settlePromises(this))}},Promise.prototype._reject=function(reason){var bitField=this._bitField;if(!((117506048&bitField)>>>16))return this._setRejected(),this._fulfillmentHandler0=reason,this._isFinal()?async.fatalError(reason,util.isNode):void((65535&bitField)>0?async.settlePromises(this):this._ensurePossibleRejectionHandled())},Promise.prototype._fulfillPromises=function(len,value){for(var i=1;len>i;i++){var handler=this._fulfillmentHandlerAt(i),promise=this._promiseAt(i),receiver=this._receiverAt(i);this._clearCallbackDataAtIndex(i),this._settlePromise(promise,handler,receiver,value)}},Promise.prototype._rejectPromises=function(len,reason){for(var i=1;len>i;i++){var handler=this._rejectionHandlerAt(i),promise=this._promiseAt(i),receiver=this._receiverAt(i);this._clearCallbackDataAtIndex(i),this._settlePromise(promise,handler,receiver,reason)}},Promise.prototype._settlePromises=function(){var bitField=this._bitField,len=65535&bitField;if(len>0){if(0!==(16842752&bitField)){var reason=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,reason,bitField),this._rejectPromises(len,reason)}else{var value=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,value,bitField),this._fulfillPromises(len,value)}this._setLength(0)}this._clearCancellationData()},Promise.prototype._settledValue=function(){var bitField=this._bitField;return 0!==(33554432&bitField)?this._rejectionHandler0:0!==(16777216&bitField)?this._fulfillmentHandler0:void 0},Promise.defer=Promise.pending=function(){debug.deprecated("Promise.defer","new Promise");var promise=new Promise(INTERNAL);return{promise:promise,resolve:deferResolve,reject:deferReject}},util.notEnumerableProp(Promise,"_makeSelfResolutionError",makeSelfResolutionError),require("./method")(Promise,INTERNAL,tryConvertToPromise,apiRejection,debug),require("./bind")(Promise,INTERNAL,tryConvertToPromise,debug),require("./cancel")(Promise,PromiseArray,apiRejection,debug),require("./direct_resolve")(Promise),require("./synchronous_inspection")(Promise),require("./join")(Promise,PromiseArray,tryConvertToPromise,INTERNAL,async,getDomain),Promise.Promise=Promise,Promise.version="3.4.7",require("./map.js")(Promise,PromiseArray,apiRejection,tryConvertToPromise,INTERNAL,debug),require("./call_get.js")(Promise),require("./using.js")(Promise,apiRejection,tryConvertToPromise,createContext,INTERNAL,debug),require("./timers.js")(Promise,INTERNAL,debug),require("./generators.js")(Promise,apiRejection,INTERNAL,tryConvertToPromise,Proxyable,debug),require("./nodeify.js")(Promise),require("./promisify.js")(Promise,INTERNAL),require("./props.js")(Promise,PromiseArray,tryConvertToPromise,apiRejection),require("./race.js")(Promise,INTERNAL,tryConvertToPromise,apiRejection),require("./reduce.js")(Promise,PromiseArray,apiRejection,tryConvertToPromise,INTERNAL,debug),require("./settle.js")(Promise,PromiseArray,debug),require("./some.js")(Promise,PromiseArray,apiRejection),require("./filter.js")(Promise,INTERNAL),require("./each.js")(Promise,INTERNAL),require("./any.js")(Promise),util.toFastProperties(Promise),util.toFastProperties(Promise.prototype),fillTypes({a:1}),fillTypes({b:2}),fillTypes({c:3}),fillTypes(1),fillTypes(function(){}),fillTypes(void 0),fillTypes(!1),fillTypes(new Promise(INTERNAL)),debug.setBounds(Async.firstLineError,util.lastLineError),Promise}}).call(this,require("_process"))},{"./any.js":48,"./async":49,"./bind":50,"./call_get.js":51,"./cancel":52,"./catch_filter":53,"./context":54,"./debuggability":55,"./direct_resolve":56,"./each.js":57,"./errors":58,"./es5":59,"./filter.js":60,"./finally":61,"./generators.js":62,"./join":63,"./map.js":64,"./method":65,"./nodeback":66,"./nodeify.js":67,"./promise_array":69,"./promisify.js":70,"./props.js":71,"./race.js":73,"./reduce.js":74,"./settle.js":76,"./some.js":77,"./synchronous_inspection":78,"./thenables":79,"./timers.js":80,"./using.js":81,"./util":82,_process:102}],69:[function(require,module,exports){"use strict";module.exports=function(Promise,INTERNAL,tryConvertToPromise,apiRejection,Proxyable){function toResolutionValue(val){switch(val){case-2:return[];case-3:return{}}}function PromiseArray(values){var promise=this._promise=new Promise(INTERNAL);values instanceof Promise&&promise._propagateFrom(values,3),promise._setOnCancel(this),this._values=values,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var util=require("./util");util.isArray;return util.inherits(PromiseArray,Proxyable),PromiseArray.prototype.length=function(){return this._length},PromiseArray.prototype.promise=function(){return this._promise},PromiseArray.prototype._init=function init(_,resolveValueIfEmpty){var values=tryConvertToPromise(this._values,this._promise);if(values instanceof Promise){values=values._target();var bitField=values._bitField;if(this._values=values,0===(50397184&bitField))return this._promise._setAsyncGuaranteed(),values._then(init,this._reject,void 0,this,resolveValueIfEmpty);if(0===(33554432&bitField))return 0!==(16777216&bitField)?this._reject(values._reason()):this._cancel();values=values._value()}if(values=util.asArray(values),null===values){var err=apiRejection("expecting an array or an iterable object but got "+util.classString(values)).reason();return void this._promise._rejectCallback(err,!1)}return 0===values.length?void(-5===resolveValueIfEmpty?this._resolveEmptyArray():this._resolve(toResolutionValue(resolveValueIfEmpty))):void this._iterate(values)},PromiseArray.prototype._iterate=function(values){var len=this.getActualLength(values.length);this._length=len,this._values=this.shouldCopyValues()?new Array(len):this._values;for(var result=this._promise,isResolved=!1,bitField=null,i=0;len>i;++i){var maybePromise=tryConvertToPromise(values[i],result);maybePromise instanceof Promise?(maybePromise=maybePromise._target(),bitField=maybePromise._bitField):bitField=null,isResolved?null!==bitField&&maybePromise.suppressUnhandledRejections():null!==bitField?0===(50397184&bitField)?(maybePromise._proxy(this,i),this._values[i]=maybePromise):isResolved=0!==(33554432&bitField)?this._promiseFulfilled(maybePromise._value(),i):0!==(16777216&bitField)?this._promiseRejected(maybePromise._reason(),i):this._promiseCancelled(i):isResolved=this._promiseFulfilled(maybePromise,i)}isResolved||result._setAsyncGuaranteed()},PromiseArray.prototype._isResolved=function(){return null===this._values},PromiseArray.prototype._resolve=function(value){this._values=null,this._promise._fulfill(value)},PromiseArray.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},PromiseArray.prototype._reject=function(reason){this._values=null,this._promise._rejectCallback(reason,!1)},PromiseArray.prototype._promiseFulfilled=function(value,index){this._values[index]=value;var totalResolved=++this._totalResolved;return totalResolved>=this._length?(this._resolve(this._values),!0):!1},PromiseArray.prototype._promiseCancelled=function(){return this._cancel(),!0},PromiseArray.prototype._promiseRejected=function(reason){return this._totalResolved++,this._reject(reason),!0},PromiseArray.prototype._resultCancelled=function(){if(!this._isResolved()){var values=this._values;if(this._cancel(),values instanceof Promise)values.cancel();else for(var i=0;ii;i+=2){var key=methods[i],fn=methods[i+1],promisifiedKey=key+suffix;if(promisifier===makeNodePromisified)obj[promisifiedKey]=makeNodePromisified(key,THIS,key,fn,suffix,multiArgs);else{var promisified=promisifier(fn,function(){return makeNodePromisified(key,THIS,key,fn,suffix,multiArgs)});util.notEnumerableProp(promisified,"__isPromisified__",!0),obj[promisifiedKey]=promisified}}return util.toFastProperties(obj),obj}function promisify(callback,receiver,multiArgs){return makeNodePromisified(callback,receiver,void 0,callback,null,multiArgs)}var makeNodePromisifiedEval,THIS={},util=require("./util"),nodebackForPromise=require("./nodeback"),withAppended=util.withAppended,maybeWrapAsError=util.maybeWrapAsError,canEvaluate=util.canEvaluate,TypeError=require("./errors").TypeError,defaultSuffix="Async",defaultPromisified={__isPromisified__:!0},noCopyProps=["arity","length","name","arguments","caller","callee","prototype","__isPromisified__"],noCopyPropsPattern=new RegExp("^(?:"+noCopyProps.join("|")+")$"),defaultFilter=function(name){return util.isIdentifier(name)&&"_"!==name.charAt(0)&&"constructor"!==name},escapeIdentRegex=function(str){return str.replace(/([$])/,"\\$")},switchCaseArgumentOrder=function(likelyArgumentCount){for(var ret=[likelyArgumentCount],min=Math.max(0,likelyArgumentCount-1-3),i=likelyArgumentCount-1;i>=min;--i)ret.push(i);for(var i=likelyArgumentCount+1;3>=i;++i)ret.push(i);return ret},argumentSequence=function(argumentCount){return util.filledRange(argumentCount,"_arg","")},parameterDeclaration=function(parameterCount){return util.filledRange(Math.max(parameterCount,3),"_arg","")},parameterCount=function(fn){return"number"==typeof fn.length?Math.max(Math.min(fn.length,1024),0):0};makeNodePromisifiedEval=function(callback,receiver,originalName,fn,_,multiArgs){function generateCallForArgumentCount(count){var ret,args=argumentSequence(count).join(", "),comma=count>0?", ":"";return ret=shouldProxyThis?"ret = callback.call(this, {{args}}, nodeback); break;\n":void 0===receiver?"ret = callback({{args}}, nodeback); break;\n":"ret = callback.call(receiver, {{args}}, nodeback); break;\n",ret.replace("{{args}}",args).replace(", ",comma)}function generateArgumentSwitchCase(){for(var ret="",i=0;ii;++i){var key=keys[i];entries[i]=obj[key],entries[i+len]=key}}this.constructor$(entries),this._isMap=isMap,this._init$(void 0,-3)}function props(promises){var ret,castValue=tryConvertToPromise(promises);return isObject(castValue)?(ret=castValue instanceof Promise?castValue._then(Promise.props,void 0,void 0,void 0,void 0):new PropertiesPromiseArray(castValue).promise(),castValue instanceof Promise&&ret._propagateFrom(castValue,2),ret):apiRejection("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n")}var Es6Map,util=require("./util"),isObject=util.isObject,es5=require("./es5");"function"==typeof Map&&(Es6Map=Map);var mapToEntries=function(){function extractEntry(value,key){this[index]=value,this[index+size]=key,index++}var index=0,size=0;return function(map){size=map.size,index=0;var ret=new Array(2*map.size);return map.forEach(extractEntry,ret),ret}}(),entriesToMap=function(entries){for(var ret=new Es6Map,length=entries.length/2|0,i=0;length>i;++i){var key=entries[length+i],value=entries[i];ret.set(key,value)}return ret};util.inherits(PropertiesPromiseArray,PromiseArray),PropertiesPromiseArray.prototype._init=function(){},PropertiesPromiseArray.prototype._promiseFulfilled=function(value,index){this._values[index]=value;var totalResolved=++this._totalResolved;if(totalResolved>=this._length){var val;if(this._isMap)val=entriesToMap(this._values);else{val={};for(var keyOffset=this.length(),i=0,len=this.length();len>i;++i)val[this._values[i+keyOffset]]=this._values[i]}return this._resolve(val),!0}return!1},PropertiesPromiseArray.prototype.shouldCopyValues=function(){return!1},PropertiesPromiseArray.prototype.getActualLength=function(len){return len>>1},Promise.prototype.props=function(){return props(this)},Promise.props=function(promises){return props(promises)}}},{"./es5":59,"./util":82}],72:[function(require,module,exports){"use strict";function arrayMove(src,srcIndex,dst,dstIndex,len){for(var j=0;len>j;++j)dst[j+dstIndex]=src[j+srcIndex],src[j+srcIndex]=void 0}function Queue(capacity){this._capacity=capacity,this._length=0,this._front=0}Queue.prototype._willBeOverCapacity=function(size){return this._capacityi;++i){var val=promises[i];(void 0!==val||i in promises)&&Promise.cast(val)._then(fulfill,reject,void 0,ret,null)}return ret}var util=require("./util"),raceLater=function(promise){return promise.then(function(array){return race(array,promise)})};Promise.race=function(promises){return race(promises,void 0)},Promise.prototype.race=function(){return race(this,void 0)}}},{"./util":82}],74:[function(require,module,exports){"use strict";module.exports=function(Promise,PromiseArray,apiRejection,tryConvertToPromise,INTERNAL,debug){function ReductionPromiseArray(promises,fn,initialValue,_each){this.constructor$(promises);var domain=getDomain();this._fn=null===domain?fn:util.domainBind(domain,fn),void 0!==initialValue&&(initialValue=Promise.resolve(initialValue),initialValue._attachCancellationCallback(this)),this._initialValue=initialValue,this._currentCancellable=null,_each===INTERNAL?this._eachValues=Array(this._length):0===_each?this._eachValues=null:this._eachValues=void 0,this._promise._captureStackTrace(),this._init$(void 0,-5)}function completed(valueOrReason,array){this.isFulfilled()?array._resolve(valueOrReason):array._reject(valueOrReason)}function reduce(promises,fn,initialValue,_each){if("function"!=typeof fn)return apiRejection("expecting a function but got "+util.classString(fn));var array=new ReductionPromiseArray(promises,fn,initialValue,_each);return array.promise()}function gotAccum(accum){this.accum=accum,this.array._gotAccum(accum);var value=tryConvertToPromise(this.value,this.array._promise);return value instanceof Promise?(this.array._currentCancellable=value,value._then(gotValue,void 0,void 0,this,void 0)):gotValue.call(this,value)}function gotValue(value){var array=this.array,promise=array._promise,fn=tryCatch(array._fn);promise._pushContext();var ret;ret=void 0!==array._eachValues?fn.call(promise._boundValue(),value,this.index,this.length):fn.call(promise._boundValue(),this.accum,value,this.index,this.length),ret instanceof Promise&&(array._currentCancellable=ret);var promiseCreated=promise._popContext();return debug.checkForgottenReturns(ret,promiseCreated,void 0!==array._eachValues?"Promise.each":"Promise.reduce",promise),ret}var getDomain=Promise._getDomain,util=require("./util"),tryCatch=util.tryCatch;util.inherits(ReductionPromiseArray,PromiseArray),ReductionPromiseArray.prototype._gotAccum=function(accum){void 0!==this._eachValues&&null!==this._eachValues&&accum!==INTERNAL&&this._eachValues.push(accum)},ReductionPromiseArray.prototype._eachComplete=function(value){return null!==this._eachValues&&this._eachValues.push(value),this._eachValues},ReductionPromiseArray.prototype._init=function(){},ReductionPromiseArray.prototype._resolveEmptyArray=function(){this._resolve(void 0!==this._eachValues?this._eachValues:this._initialValue)},ReductionPromiseArray.prototype.shouldCopyValues=function(){return!1},ReductionPromiseArray.prototype._resolve=function(value){this._promise._resolveCallback(value),this._values=null},ReductionPromiseArray.prototype._resultCancelled=function(sender){return sender===this._initialValue?this._cancel():void(this._isResolved()||(this._resultCancelled$(),this._currentCancellable instanceof Promise&&this._currentCancellable.cancel(),this._initialValue instanceof Promise&&this._initialValue.cancel()))},ReductionPromiseArray.prototype._iterate=function(values){this._values=values;var value,i,length=values.length;if(void 0!==this._initialValue?(value=this._initialValue,i=0):(value=Promise.resolve(values[0]),i=1),this._currentCancellable=value,!value.isRejected())for(;length>i;++i){var ctx={accum:null,value:values[i],index:i,length:length,array:this};value=value._then(gotAccum,void 0,void 0,ctx,void 0)}void 0!==this._eachValues&&(value=value._then(this._eachComplete,void 0,void 0,this,void 0)),value._then(completed,completed,void 0,value,this)},Promise.prototype.reduce=function(fn,initialValue){return reduce(this,fn,initialValue,null)},Promise.reduce=function(promises,fn,initialValue,_each){return reduce(promises,fn,initialValue,_each)}}},{"./util":82}],75:[function(require,module,exports){(function(process,global){"use strict";var schedule,util=require("./util"),noAsyncScheduler=function(){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")},NativePromise=util.getNativePromise();if(util.isNode&&"undefined"==typeof MutationObserver){var GlobalSetImmediate=global.setImmediate,ProcessNextTick=process.nextTick;schedule=util.isRecentNode?function(fn){GlobalSetImmediate.call(global,fn)}:function(fn){ProcessNextTick.call(process,fn)}}else if("function"==typeof NativePromise&&"function"==typeof NativePromise.resolve){var nativePromise=NativePromise.resolve();schedule=function(fn){nativePromise.then(fn)}}else schedule="undefined"==typeof MutationObserver||"undefined"!=typeof window&&window.navigator&&(window.navigator.standalone||window.cordova)?"undefined"!=typeof setImmediate?function(fn){setImmediate(fn)}:"undefined"!=typeof setTimeout?function(fn){setTimeout(fn,0)}:noAsyncScheduler:function(){var div=document.createElement("div"),opts={attributes:!0},toggleScheduled=!1,div2=document.createElement("div"),o2=new MutationObserver(function(){div.classList.toggle("foo"),toggleScheduled=!1});o2.observe(div2,opts);var scheduleToggle=function(){toggleScheduled||(toggleScheduled=!0,div2.classList.toggle("foo"))};return function(fn){var o=new MutationObserver(function(){o.disconnect(),fn()});o.observe(div,opts),scheduleToggle()}}();module.exports=schedule}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./util":82,_process:102}],76:[function(require,module,exports){"use strict";module.exports=function(Promise,PromiseArray,debug){function SettledPromiseArray(values){this.constructor$(values)}var PromiseInspection=Promise.PromiseInspection,util=require("./util");util.inherits(SettledPromiseArray,PromiseArray),SettledPromiseArray.prototype._promiseResolved=function(index,inspection){this._values[index]=inspection;var totalResolved=++this._totalResolved;return totalResolved>=this._length?(this._resolve(this._values),!0):!1},SettledPromiseArray.prototype._promiseFulfilled=function(value,index){var ret=new PromiseInspection;return ret._bitField=33554432,ret._settledValueField=value,this._promiseResolved(index,ret)},SettledPromiseArray.prototype._promiseRejected=function(reason,index){var ret=new PromiseInspection;return ret._bitField=16777216,ret._settledValueField=reason,this._promiseResolved(index,ret)},Promise.settle=function(promises){return debug.deprecated(".settle()",".reflect()"),new SettledPromiseArray(promises).promise()},Promise.prototype.settle=function(){return Promise.settle(this)}}},{"./util":82}],77:[function(require,module,exports){"use strict";module.exports=function(Promise,PromiseArray,apiRejection){function SomePromiseArray(values){this.constructor$(values),this._howMany=0,this._unwrap=!1,this._initialized=!1}function some(promises,howMany){if((0|howMany)!==howMany||0>howMany)return apiRejection("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var ret=new SomePromiseArray(promises),promise=ret.promise();return ret.setHowMany(howMany),ret.init(),promise}var util=require("./util"),RangeError=require("./errors").RangeError,AggregateError=require("./errors").AggregateError,isArray=util.isArray,CANCELLATION={};util.inherits(SomePromiseArray,PromiseArray),SomePromiseArray.prototype._init=function(){if(this._initialized){if(0===this._howMany)return void this._resolve([]);this._init$(void 0,-5);var isArrayResolved=isArray(this._values);!this._isResolved()&&isArrayResolved&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}},SomePromiseArray.prototype.init=function(){this._initialized=!0,this._init()},SomePromiseArray.prototype.setUnwrap=function(){this._unwrap=!0},SomePromiseArray.prototype.howMany=function(){return this._howMany},SomePromiseArray.prototype.setHowMany=function(count){this._howMany=count},SomePromiseArray.prototype._promiseFulfilled=function(value){return this._addFulfilled(value),this._fulfilled()===this.howMany()?(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0):!1},SomePromiseArray.prototype._promiseRejected=function(reason){return this._addRejected(reason),this._checkOutcome()},SomePromiseArray.prototype._promiseCancelled=function(){return this._values instanceof Promise||null==this._values?this._cancel():(this._addRejected(CANCELLATION),this._checkOutcome())},SomePromiseArray.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var e=new AggregateError,i=this.length();i0?this._reject(e):this._cancel(),!0}return!1},SomePromiseArray.prototype._fulfilled=function(){return this._totalResolved},SomePromiseArray.prototype._rejected=function(){return this._values.length-this.length()},SomePromiseArray.prototype._addRejected=function(reason){this._values.push(reason)},SomePromiseArray.prototype._addFulfilled=function(value){this._values[this._totalResolved++]=value},SomePromiseArray.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},SomePromiseArray.prototype._getRangeError=function(count){var message="Input array must contain at least "+this._howMany+" items but contains only "+count+" items";return new RangeError(message)},SomePromiseArray.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},Promise.some=function(promises,howMany){return some(promises,howMany)},Promise.prototype.some=function(howMany){return some(this,howMany)},Promise._SomePromiseArray=SomePromiseArray}},{"./errors":58,"./util":82}],78:[function(require,module,exports){"use strict";module.exports=function(Promise){function PromiseInspection(promise){void 0!==promise?(promise=promise._target(),this._bitField=promise._bitField,this._settledValueField=promise._isFateSealed()?promise._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}PromiseInspection.prototype._settledValue=function(){return this._settledValueField};var value=PromiseInspection.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},reason=PromiseInspection.prototype.error=PromiseInspection.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},isFulfilled=PromiseInspection.prototype.isFulfilled=function(){return 0!==(33554432&this._bitField)},isRejected=PromiseInspection.prototype.isRejected=function(){return 0!==(16777216&this._bitField)},isPending=PromiseInspection.prototype.isPending=function(){return 0===(50397184&this._bitField)},isResolved=PromiseInspection.prototype.isResolved=function(){return 0!==(50331648&this._bitField)};PromiseInspection.prototype.isCancelled=function(){return 0!==(8454144&this._bitField)},Promise.prototype.__isCancelled=function(){return 65536===(65536&this._bitField)},Promise.prototype._isCancelled=function(){return this._target().__isCancelled()},Promise.prototype.isCancelled=function(){return 0!==(8454144&this._target()._bitField)},Promise.prototype.isPending=function(){return isPending.call(this._target())},Promise.prototype.isRejected=function(){return isRejected.call(this._target())},Promise.prototype.isFulfilled=function(){return isFulfilled.call(this._target())},Promise.prototype.isResolved=function(){return isResolved.call(this._target())},Promise.prototype.value=function(){return value.call(this._target())},Promise.prototype.reason=function(){var target=this._target();return target._unsetRejectionIsUnhandled(),reason.call(target)},Promise.prototype._value=function(){return this._settledValue()},Promise.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},Promise.PromiseInspection=PromiseInspection}},{}],79:[function(require,module,exports){"use strict";module.exports=function(Promise,INTERNAL){function tryConvertToPromise(obj,context){if(isObject(obj)){if(obj instanceof Promise)return obj;var then=getThen(obj);if(then===errorObj){context&&context._pushContext();var ret=Promise.reject(then.e);return context&&context._popContext(),ret}if("function"==typeof then){if(isAnyBluebirdPromise(obj)){var ret=new Promise(INTERNAL);return obj._then(ret._fulfill,ret._reject,void 0,ret,null),ret}return doThenable(obj,then,context)}}return obj}function doGetThen(obj){return obj.then}function getThen(obj){try{return doGetThen(obj)}catch(e){return errorObj.e=e,errorObj}}function isAnyBluebirdPromise(obj){try{return hasProp.call(obj,"_promise0")}catch(e){return!1}}function doThenable(x,then,context){function resolve(value){promise&&(promise._resolveCallback(value),promise=null)}function reject(reason){promise&&(promise._rejectCallback(reason,synchronous,!0),promise=null)}var promise=new Promise(INTERNAL),ret=promise;context&&context._pushContext(),promise._captureStackTrace(),context&&context._popContext();var synchronous=!0,result=util.tryCatch(then).call(x,resolve,reject);return synchronous=!1,promise&&result===errorObj&&(promise._rejectCallback(result.e,!0,!0),promise=null),ret}var util=require("./util"),errorObj=util.errorObj,isObject=util.isObject,hasProp={}.hasOwnProperty;return tryConvertToPromise}},{"./util":82}],80:[function(require,module,exports){"use strict";module.exports=function(Promise,INTERNAL,debug){function HandleWrapper(handle){this.handle=handle}function successClear(value){return clearTimeout(this.handle),value}function failureClear(reason){throw clearTimeout(this.handle),reason}var util=require("./util"),TimeoutError=Promise.TimeoutError;HandleWrapper.prototype._resultCancelled=function(){clearTimeout(this.handle)};var afterValue=function(value){return delay(+this).thenReturn(value)},delay=Promise.delay=function(ms,value){var ret,handle;return void 0!==value?(ret=Promise.resolve(value)._then(afterValue,null,null,ms,void 0),debug.cancellation()&&value instanceof Promise&&ret._setOnCancel(value)):(ret=new Promise(INTERNAL),handle=setTimeout(function(){ret._fulfill()},+ms),debug.cancellation()&&ret._setOnCancel(new HandleWrapper(handle)),ret._captureStackTrace()),ret._setAsyncGuaranteed(),ret};Promise.prototype.delay=function(ms){return delay(ms,this)};var afterTimeout=function(promise,message,parent){var err;err="string"!=typeof message?message instanceof Error?message:new TimeoutError("operation timed out"):new TimeoutError(message),util.markAsOriginatingFromRejection(err),promise._attachExtraTrace(err),promise._reject(err),null!=parent&&parent.cancel()};Promise.prototype.timeout=function(ms,message){ms=+ms;var ret,parent,handleWrapper=new HandleWrapper(setTimeout(function(){ret.isPending()&&afterTimeout(ret,message,parent)},ms));return debug.cancellation()?(parent=this.then(),ret=parent._then(successClear,failureClear,void 0,handleWrapper,void 0),ret._setOnCancel(handleWrapper)):ret=this._then(successClear,failureClear,void 0,handleWrapper,void 0),ret}}},{"./util":82}],81:[function(require,module,exports){"use strict";module.exports=function(Promise,apiRejection,tryConvertToPromise,createContext,INTERNAL,debug){function thrower(e){setTimeout(function(){throw e},0)}function castPreservingDisposable(thenable){var maybePromise=tryConvertToPromise(thenable);return maybePromise!==thenable&&"function"==typeof thenable._isDisposable&&"function"==typeof thenable._getDisposer&&thenable._isDisposable()&&maybePromise._setDisposable(thenable._getDisposer()),maybePromise}function dispose(resources,inspection){function iterator(){if(i>=len)return ret._fulfill();var maybePromise=castPreservingDisposable(resources[i++]);if(maybePromise instanceof Promise&&maybePromise._isDisposable()){try{maybePromise=tryConvertToPromise(maybePromise._getDisposer().tryDispose(inspection),resources.promise)}catch(e){return thrower(e)}if(maybePromise instanceof Promise)return maybePromise._then(iterator,thrower,null,null,null)}iterator()}var i=0,len=resources.length,ret=new Promise(INTERNAL);return iterator(),ret}function Disposer(data,promise,context){this._data=data,this._promise=promise,this._context=context}function FunctionDisposer(fn,promise,context){this.constructor$(fn,promise,context)}function maybeUnwrapDisposer(value){return Disposer.isDisposer(value)?(this.resources[this.index]._setDisposable(value),value.promise()):value}function ResourceList(length){this.length=length,this.promise=null,this[length-1]=null}var util=require("./util"),TypeError=require("./errors").TypeError,inherits=require("./util").inherits,errorObj=util.errorObj,tryCatch=util.tryCatch,NULL={};Disposer.prototype.data=function(){return this._data},Disposer.prototype.promise=function(){return this._promise},Disposer.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():NULL},Disposer.prototype.tryDispose=function(inspection){var resource=this.resource(),context=this._context;void 0!==context&&context._pushContext();var ret=resource!==NULL?this.doDispose(resource,inspection):null;return void 0!==context&&context._popContext(),this._promise._unsetDisposable(),this._data=null,ret},Disposer.isDisposer=function(d){return null!=d&&"function"==typeof d.resource&&"function"==typeof d.tryDispose},inherits(FunctionDisposer,Disposer),FunctionDisposer.prototype.doDispose=function(resource,inspection){var fn=this.data();return fn.call(resource,resource,inspection)},ResourceList.prototype._resultCancelled=function(){for(var len=this.length,i=0;len>i;++i){var item=this[i];item instanceof Promise&&item.cancel()}},Promise.using=function(){var len=arguments.length;if(2>len)return apiRejection("you must pass at least 2 arguments to Promise.using");var fn=arguments[len-1];if("function"!=typeof fn)return apiRejection("expecting a function but got "+util.classString(fn));var input,spreadArgs=!0;2===len&&Array.isArray(arguments[0])?(input=arguments[0],len=input.length,spreadArgs=!1):(input=arguments,len--);for(var resources=new ResourceList(len),i=0;len>i;++i){var resource=input[i];if(Disposer.isDisposer(resource)){var disposer=resource;resource=resource.promise(),resource._setDisposable(disposer)}else{var maybePromise=tryConvertToPromise(resource);maybePromise instanceof Promise&&(resource=maybePromise._then(maybeUnwrapDisposer,null,null,{resources:resources,index:i},void 0))}resources[i]=resource}for(var reflectedResources=new Array(resources.length),i=0;i0},Promise.prototype._getDisposer=function(){return this._disposer},Promise.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},Promise.prototype.disposer=function(fn){if("function"==typeof fn)return new FunctionDisposer(fn,this,createContext());throw new TypeError}}},{"./errors":58,"./util":82}],82:[function(require,module,exports){(function(process,global){"use strict";function tryCatcher(){try{var target=tryCatchTarget;return tryCatchTarget=null,target.apply(this,arguments)}catch(e){return errorObj.e=e,errorObj}}function tryCatch(fn){return tryCatchTarget=fn,tryCatcher}function isPrimitive(val){return null==val||val===!0||val===!1||"string"==typeof val||"number"==typeof val}function isObject(value){return"function"==typeof value||"object"==typeof value&&null!==value}function maybeWrapAsError(maybeError){return isPrimitive(maybeError)?new Error(safeToString(maybeError)):maybeError}function withAppended(target,appendee){var i,len=target.length,ret=new Array(len+1);for(i=0;len>i;++i)ret[i]=target[i];return ret[i]=appendee,ret}function getDataPropertyOrDefault(obj,key,defaultValue){if(!es5.isES5)return{}.hasOwnProperty.call(obj,key)?obj[key]:void 0;var desc=Object.getOwnPropertyDescriptor(obj,key);return null!=desc?null==desc.get&&null==desc.set?desc.value:defaultValue:void 0}function notEnumerableProp(obj,name,value){if(isPrimitive(obj))return obj;var descriptor={value:value,configurable:!0,enumerable:!1,writable:!0};return es5.defineProperty(obj,name,descriptor),obj}function thrower(r){throw r}function isClass(fn){try{if("function"==typeof fn){var keys=es5.names(fn.prototype),hasMethods=es5.isES5&&keys.length>1,hasMethodsOtherThanConstructor=keys.length>0&&!(1===keys.length&&"constructor"===keys[0]),hasThisAssignmentAndStaticMethods=thisAssignmentPattern.test(fn+"")&&es5.names(fn).length>0;if(hasMethods||hasMethodsOtherThanConstructor||hasThisAssignmentAndStaticMethods)return!0}return!1}catch(e){return!1}}function toFastProperties(obj){function FakeConstructor(){}FakeConstructor.prototype=obj;for(var l=8;l--;)new FakeConstructor;return obj}function isIdentifier(str){return rident.test(str)}function filledRange(count,prefix,suffix){for(var ret=new Array(count),i=0;count>i;++i)ret[i]=prefix+i+suffix;return ret}function safeToString(obj){try{return obj+""}catch(e){return"[no string representation]"}}function isError(obj){return null!==obj&&"object"==typeof obj&&"string"==typeof obj.message&&"string"==typeof obj.name}function markAsOriginatingFromRejection(e){try{notEnumerableProp(e,"isOperational",!0)}catch(ignore){}}function originatesFromRejection(e){return null==e?!1:e instanceof Error.__BluebirdErrorTypes__.OperationalError||e.isOperational===!0}function canAttachTrace(obj){return isError(obj)&&es5.propertyIsWritable(obj,"stack")}function classString(obj){return{}.toString.call(obj)}function copyDescriptors(from,to,filter){for(var keys=es5.names(from),i=0;i10||version[0]>0}(),ret.isNode&&ret.toFastProperties(process);try{throw new Error}catch(e){ret.lastLineError=e}module.exports=ret}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./es5":59,_process:102}],83:[function(require,module,exports){(function(global){"use strict";function typedArraySupport(){try{var arr=new Uint8Array(1);return arr.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===arr.foo()&&"function"==typeof arr.subarray&&0===arr.subarray(1,1).byteLength}catch(e){return!1}}function kMaxLength(){return Buffer.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function createBuffer(that,length){if(kMaxLength()size)throw new RangeError('"size" argument must not be negative')}function alloc(that,size,fill,encoding){return assertSize(size),0>=size?createBuffer(that,size):void 0!==fill?"string"==typeof encoding?createBuffer(that,size).fill(fill,encoding):createBuffer(that,size).fill(fill):createBuffer(that,size)}function allocUnsafe(that,size){if(assertSize(size),that=createBuffer(that,0>size?0:0|checked(size)),!Buffer.TYPED_ARRAY_SUPPORT)for(var i=0;size>i;++i)that[i]=0;return that}function fromString(that,string,encoding){if(("string"!=typeof encoding||""===encoding)&&(encoding="utf8"),!Buffer.isEncoding(encoding))throw new TypeError('"encoding" must be a valid string encoding');var length=0|byteLength(string,encoding);that=createBuffer(that,length);var actual=that.write(string,encoding);return actual!==length&&(that=that.slice(0,actual)),that}function fromArrayLike(that,array){var length=array.length<0?0:0|checked(array.length);that=createBuffer(that,length);for(var i=0;length>i;i+=1)that[i]=255&array[i];return that}function fromArrayBuffer(that,array,byteOffset,length){if(array.byteLength,0>byteOffset||array.byteLength=kMaxLength())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+kMaxLength().toString(16)+" bytes");return 0|length}function SlowBuffer(length){return+length!=length&&(length=0),Buffer.alloc(+length)}function byteLength(string,encoding){if(Buffer.isBuffer(string))return string.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(string)||string instanceof ArrayBuffer))return string.byteLength;"string"!=typeof string&&(string=""+string);var len=string.length;if(0===len)return 0;for(var loweredCase=!1;;)switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":case void 0:return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*len;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase(),loweredCase=!0}}function slowToString(encoding,start,end){var loweredCase=!1;if((void 0===start||0>start)&&(start=0),start>this.length)return"";if((void 0===end||end>this.length)&&(end=this.length),0>=end)return"";if(end>>>=0,start>>>=0,start>=end)return"";for(encoding||(encoding="utf8");;)switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase(),loweredCase=!0}}function swap(b,n,m){var i=b[n];b[n]=b[m],b[m]=i}function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){if(0===buffer.length)return-1;if("string"==typeof byteOffset?(encoding=byteOffset,byteOffset=0):byteOffset>2147483647?byteOffset=2147483647:-2147483648>byteOffset&&(byteOffset=-2147483648),byteOffset=+byteOffset,isNaN(byteOffset)&&(byteOffset=dir?0:buffer.length-1),0>byteOffset&&(byteOffset=buffer.length+byteOffset),byteOffset>=buffer.length){if(dir)return-1;byteOffset=buffer.length-1}else if(0>byteOffset){if(!dir)return-1;byteOffset=0}if("string"==typeof val&&(val=Buffer.from(val,encoding)),Buffer.isBuffer(val))return 0===val.length?-1:arrayIndexOf(buffer,val,byteOffset,encoding,dir);if("number"==typeof val)return val=255&val,Buffer.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?dir?Uint8Array.prototype.indexOf.call(buffer,val,byteOffset):Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset):arrayIndexOf(buffer,[val],byteOffset,encoding,dir);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){function read(buf,i){return 1===indexSize?buf[i]:buf.readUInt16BE(i*indexSize)}var indexSize=1,arrLength=arr.length,valLength=val.length;if(void 0!==encoding&&(encoding=String(encoding).toLowerCase(),"ucs2"===encoding||"ucs-2"===encoding||"utf16le"===encoding||"utf-16le"===encoding)){if(arr.length<2||val.length<2)return-1;indexSize=2,arrLength/=2,valLength/=2,byteOffset/=2}var i;if(dir){var foundIndex=-1;for(i=byteOffset;arrLength>i;i++)if(read(arr,i)===read(val,-1===foundIndex?0:i-foundIndex)){if(-1===foundIndex&&(foundIndex=i),i-foundIndex+1===valLength)return foundIndex*indexSize}else-1!==foundIndex&&(i-=i-foundIndex),foundIndex=-1}else for(byteOffset+valLength>arrLength&&(byteOffset=arrLength-valLength),i=byteOffset;i>=0;i--){for(var found=!0,j=0;valLength>j;j++)if(read(arr,i+j)!==read(val,j)){found=!1;break}if(found)return i}return-1}function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;length?(length=Number(length),length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;if(strLen%2!==0)throw new TypeError("Invalid hex string");length>strLen/2&&(length=strLen/2);for(var i=0;length>i;++i){var parsed=parseInt(string.substr(2*i,2),16);if(isNaN(parsed))return i;buf[offset+i]=parsed}return i}function utf8Write(buf,string,offset,length){return blitBuffer(utf8ToBytes(string,buf.length-offset),buf,offset,length)}function asciiWrite(buf,string,offset,length){return blitBuffer(asciiToBytes(string),buf,offset,length)}function latin1Write(buf,string,offset,length){return asciiWrite(buf,string,offset,length)}function base64Write(buf,string,offset,length){return blitBuffer(base64ToBytes(string),buf,offset,length)}function ucs2Write(buf,string,offset,length){return blitBuffer(utf16leToBytes(string,buf.length-offset),buf,offset,length)}function base64Slice(buf,start,end){return 0===start&&end===buf.length?base64.fromByteArray(buf):base64.fromByteArray(buf.slice(start,end))}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);for(var res=[],i=start;end>i;){var firstByte=buf[i],codePoint=null,bytesPerSequence=firstByte>239?4:firstByte>223?3:firstByte>191?2:1;if(end>=i+bytesPerSequence){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:128>firstByte&&(codePoint=firstByte);break;case 2:secondByte=buf[i+1],128===(192&secondByte)&&(tempCodePoint=(31&firstByte)<<6|63&secondByte,tempCodePoint>127&&(codePoint=tempCodePoint));break;case 3:secondByte=buf[i+1],thirdByte=buf[i+2],128===(192&secondByte)&&128===(192&thirdByte)&&(tempCodePoint=(15&firstByte)<<12|(63&secondByte)<<6|63&thirdByte,tempCodePoint>2047&&(55296>tempCodePoint||tempCodePoint>57343)&&(codePoint=tempCodePoint));break;case 4:secondByte=buf[i+1],thirdByte=buf[i+2],fourthByte=buf[i+3],128===(192&secondByte)&&128===(192&thirdByte)&&128===(192&fourthByte)&&(tempCodePoint=(15&firstByte)<<18|(63&secondByte)<<12|(63&thirdByte)<<6|63&fourthByte,tempCodePoint>65535&&1114112>tempCodePoint&&(codePoint=tempCodePoint))}}null===codePoint?(codePoint=65533,bytesPerSequence=1):codePoint>65535&&(codePoint-=65536,res.push(codePoint>>>10&1023|55296),codePoint=56320|1023&codePoint),res.push(codePoint),i+=bytesPerSequence}return decodeCodePointsArray(res)}function decodeCodePointsArray(codePoints){var len=codePoints.length;if(MAX_ARGUMENTS_LENGTH>=len)return String.fromCharCode.apply(String,codePoints);for(var res="",i=0;len>i;)res+=String.fromCharCode.apply(String,codePoints.slice(i,i+=MAX_ARGUMENTS_LENGTH));return res}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;end>i;++i)ret+=String.fromCharCode(127&buf[i]);return ret}function latin1Slice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;end>i;++i)ret+=String.fromCharCode(buf[i]);return ret}function hexSlice(buf,start,end){var len=buf.length;(!start||0>start)&&(start=0),(!end||0>end||end>len)&&(end=len);for(var out="",i=start;end>i;++i)out+=toHex(buf[i]);return out}function utf16leSlice(buf,start,end){for(var bytes=buf.slice(start,end),res="",i=0;ioffset)throw new RangeError("offset is not uint");if(offset+ext>length)throw new RangeError("Trying to access beyond buffer length")}function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||min>value)throw new RangeError('"value" argument is out of bounds');if(offset+ext>buf.length)throw new RangeError("Index out of range")}function objectWriteUInt16(buf,value,offset,littleEndian){0>value&&(value=65535+value+1);for(var i=0,j=Math.min(buf.length-offset,2);j>i;++i)buf[offset+i]=(value&255<<8*(littleEndian?i:1-i))>>>8*(littleEndian?i:1-i)}function objectWriteUInt32(buf,value,offset,littleEndian){0>value&&(value=4294967295+value+1);for(var i=0,j=Math.min(buf.length-offset,4);j>i;++i)buf[offset+i]=value>>>8*(littleEndian?i:3-i)&255}function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(0>offset)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){return noAssert||checkIEEE754(buf,value,offset,4,3.4028234663852886e38,-3.4028234663852886e38),ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}function writeDouble(buf,value,offset,littleEndian,noAssert){return noAssert||checkIEEE754(buf,value,offset,8,1.7976931348623157e308,-1.7976931348623157e308),ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}function base64clean(str){if(str=stringtrim(str).replace(INVALID_BASE64_RE,""),str.length<2)return"";for(;str.length%4!==0;)str+="=";return str}function stringtrim(str){return str.trim?str.trim():str.replace(/^\s+|\s+$/g,"")}function toHex(n){return 16>n?"0"+n.toString(16):n.toString(16)}function utf8ToBytes(string,units){units=units||1/0;for(var codePoint,length=string.length,leadSurrogate=null,bytes=[],i=0;length>i;++i){if(codePoint=string.charCodeAt(i),codePoint>55295&&57344>codePoint){if(!leadSurrogate){if(codePoint>56319){(units-=3)>-1&&bytes.push(239,191,189);continue}if(i+1===length){(units-=3)>-1&&bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(56320>codePoint){(units-=3)>-1&&bytes.push(239,191,189),leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else leadSurrogate&&(units-=3)>-1&&bytes.push(239,191,189);if(leadSurrogate=null,128>codePoint){if((units-=1)<0)break;bytes.push(codePoint)}else if(2048>codePoint){if((units-=2)<0)break;bytes.push(codePoint>>6|192,63&codePoint|128)}else if(65536>codePoint){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,63&codePoint|128)}else{if(!(1114112>codePoint))throw new Error("Invalid code point");if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,63&codePoint|128)}}return bytes}function asciiToBytes(str){for(var byteArray=[],i=0;i>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;length>i&&!(i+offset>=dst.length||i>=src.length);++i)dst[i+offset]=src[i];return i}function isnan(val){return val!==val}var base64=require("base64-js"),ieee754=require("ieee754"),isArray=require("isarray");exports.Buffer=Buffer,exports.SlowBuffer=SlowBuffer,exports.INSPECT_MAX_BYTES=50,Buffer.TYPED_ARRAY_SUPPORT=void 0!==global.TYPED_ARRAY_SUPPORT?global.TYPED_ARRAY_SUPPORT:typedArraySupport(),exports.kMaxLength=kMaxLength(),Buffer.poolSize=8192,Buffer._augment=function(arr){return arr.__proto__=Buffer.prototype,arr},Buffer.from=function(value,encodingOrOffset,length){return from(null,value,encodingOrOffset,length)},Buffer.TYPED_ARRAY_SUPPORT&&(Buffer.prototype.__proto__=Uint8Array.prototype,Buffer.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&Buffer[Symbol.species]===Buffer&&Object.defineProperty(Buffer,Symbol.species,{value:null,configurable:!0})),Buffer.alloc=function(size,fill,encoding){return alloc(null,size,fill,encoding)},Buffer.allocUnsafe=function(size){return allocUnsafe(null,size)},Buffer.allocUnsafeSlow=function(size){return allocUnsafe(null,size)},Buffer.isBuffer=function(b){return!(null==b||!b._isBuffer)},Buffer.compare=function(a,b){if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b))throw new TypeError("Arguments must be Buffers");if(a===b)return 0;for(var x=a.length,y=b.length,i=0,len=Math.min(x,y);len>i;++i)if(a[i]!==b[i]){x=a[i],y=b[i];break}return y>x?-1:x>y?1:0},Buffer.isEncoding=function(encoding){switch(String(encoding).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}},Buffer.concat=function(list,length){if(!isArray(list))throw new TypeError('"list" argument must be an Array of Buffers');if(0===list.length)return Buffer.alloc(0);var i;if(void 0===length)for(length=0,i=0;ii;i+=2)swap(this,i,i+1);return this},Buffer.prototype.swap32=function(){var len=this.length;if(len%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var i=0;len>i;i+=4)swap(this,i,i+3),swap(this,i+1,i+2);return this},Buffer.prototype.swap64=function(){var len=this.length;if(len%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var i=0;len>i;i+=8)swap(this,i,i+7),swap(this,i+1,i+6),swap(this,i+2,i+5),swap(this,i+3,i+4);return this},Buffer.prototype.toString=function(){var length=0|this.length;return 0===length?"":0===arguments.length?utf8Slice(this,0,length):slowToString.apply(this,arguments)},Buffer.prototype.equals=function(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b?!0:0===Buffer.compare(this,b)},Buffer.prototype.inspect=function(){var str="",max=exports.INSPECT_MAX_BYTES;return this.length>0&&(str=this.toString("hex",0,max).match(/.{2}/g).join(" "),this.length>max&&(str+=" ... ")),""},Buffer.prototype.compare=function(target,start,end,thisStart,thisEnd){if(!Buffer.isBuffer(target))throw new TypeError("Argument must be a Buffer");if(void 0===start&&(start=0),void 0===end&&(end=target?target.length:0),void 0===thisStart&&(thisStart=0),void 0===thisEnd&&(thisEnd=this.length),0>start||end>target.length||0>thisStart||thisEnd>this.length)throw new RangeError("out of range index");if(thisStart>=thisEnd&&start>=end)return 0;if(thisStart>=thisEnd)return-1;if(start>=end)return 1;if(start>>>=0,end>>>=0,thisStart>>>=0,thisEnd>>>=0,this===target)return 0;for(var x=thisEnd-thisStart,y=end-start,len=Math.min(x,y),thisCopy=this.slice(thisStart,thisEnd),targetCopy=target.slice(start,end),i=0;len>i;++i)if(thisCopy[i]!==targetCopy[i]){x=thisCopy[i],y=targetCopy[i];break}return y>x?-1:x>y?1:0},Buffer.prototype.includes=function(val,byteOffset,encoding){return-1!==this.indexOf(val,byteOffset,encoding)},Buffer.prototype.indexOf=function(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,!0)},Buffer.prototype.lastIndexOf=function(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,!1)},Buffer.prototype.write=function(string,offset,length,encoding){if(void 0===offset)encoding="utf8",length=this.length,offset=0;else if(void 0===length&&"string"==typeof offset)encoding=offset,length=this.length,offset=0;else{if(!isFinite(offset))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");offset=0|offset,isFinite(length)?(length=0|length,void 0===encoding&&(encoding="utf8")):(encoding=length,length=void 0)}var remaining=this.length-offset;if((void 0===length||length>remaining)&&(length=remaining),string.length>0&&(0>length||0>offset)||offset>this.length)throw new RangeError("Attempt to write outside buffer bounds");encoding||(encoding="utf8");for(var loweredCase=!1;;)switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"latin1":case"binary":return latin1Write(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase(),loweredCase=!0}},Buffer.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var MAX_ARGUMENTS_LENGTH=4096;Buffer.prototype.slice=function(start,end){var len=this.length;start=~~start,end=void 0===end?len:~~end,0>start?(start+=len,0>start&&(start=0)):start>len&&(start=len),0>end?(end+=len,0>end&&(end=0)):end>len&&(end=len),start>end&&(end=start);var newBuf;if(Buffer.TYPED_ARRAY_SUPPORT)newBuf=this.subarray(start,end),newBuf.__proto__=Buffer.prototype;else{var sliceLen=end-start;newBuf=new Buffer(sliceLen,void 0);for(var i=0;sliceLen>i;++i)newBuf[i]=this[i+start]}return newBuf},Buffer.prototype.readUIntLE=function(offset,byteLength,noAssert){offset=0|offset,byteLength=0|byteLength,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i0&&(mul*=256);)val+=this[offset+--byteLength]*mul;return val},Buffer.prototype.readUInt8=function(offset,noAssert){return noAssert||checkOffset(offset,1,this.length),this[offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return noAssert||checkOffset(offset,2,this.length),this[offset]|this[offset+1]<<8},Buffer.prototype.readUInt16BE=function(offset,noAssert){return noAssert||checkOffset(offset,2,this.length),this[offset]<<8|this[offset+1]},Buffer.prototype.readUInt32LE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+16777216*this[offset+3]},Buffer.prototype.readUInt32BE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),16777216*this[offset]+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])},Buffer.prototype.readIntLE=function(offset,byteLength,noAssert){offset=0|offset,byteLength=0|byteLength,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i=mul&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readIntBE=function(offset,byteLength,noAssert){offset=0|offset,byteLength=0|byteLength,noAssert||checkOffset(offset,byteLength,this.length);for(var i=byteLength,mul=1,val=this[offset+--i];i>0&&(mul*=256);)val+=this[offset+--i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readInt8=function(offset,noAssert){return noAssert||checkOffset(offset,1,this.length),128&this[offset]?-1*(255-this[offset]+1):this[offset]},Buffer.prototype.readInt16LE=function(offset,noAssert){noAssert||checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt16BE=function(offset,noAssert){noAssert||checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt32LE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24},Buffer.prototype.readInt32BE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]},Buffer.prototype.readFloatLE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!0,23,4)},Buffer.prototype.readFloatBE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!1,23,4)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!0,52,8)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!1,52,8)},Buffer.prototype.writeUIntLE=function(value,offset,byteLength,noAssert){if(value=+value,offset=0|offset,byteLength=0|byteLength,!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var mul=1,i=0;for(this[offset]=255&value;++i=0&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength},Buffer.prototype.writeUInt8=function(value,offset,noAssert){ +return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,1,255,0),Buffer.TYPED_ARRAY_SUPPORT||(value=Math.floor(value)),this[offset]=255&value,offset+1},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=255&value,this[offset+1]=value>>>8):objectWriteUInt16(this,value,offset,!0),offset+2},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>8,this[offset+1]=255&value):objectWriteUInt16(this,value,offset,!1),offset+2},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset+3]=value>>>24,this[offset+2]=value>>>16,this[offset+1]=value>>>8,this[offset]=255&value):objectWriteUInt32(this,value,offset,!0),offset+4},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=255&value):objectWriteUInt32(this,value,offset,!1),offset+4},Buffer.prototype.writeIntLE=function(value,offset,byteLength,noAssert){if(value=+value,offset=0|offset,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0,mul=1,sub=0;for(this[offset]=255&value;++ivalue&&0===sub&&0!==this[offset+i-1]&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength},Buffer.prototype.writeIntBE=function(value,offset,byteLength,noAssert){if(value=+value,offset=0|offset,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1,mul=1,sub=0;for(this[offset+i]=255&value;--i>=0&&(mul*=256);)0>value&&0===sub&&0!==this[offset+i+1]&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength},Buffer.prototype.writeInt8=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,1,127,-128),Buffer.TYPED_ARRAY_SUPPORT||(value=Math.floor(value)),0>value&&(value=255+value+1),this[offset]=255&value,offset+1},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=255&value,this[offset+1]=value>>>8):objectWriteUInt16(this,value,offset,!0),offset+2},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>8,this[offset+1]=255&value):objectWriteUInt16(this,value,offset,!1),offset+2},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=255&value,this[offset+1]=value>>>8,this[offset+2]=value>>>16,this[offset+3]=value>>>24):objectWriteUInt32(this,value,offset,!0),offset+4},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),0>value&&(value=4294967295+value+1),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=255&value):objectWriteUInt32(this,value,offset,!1),offset+4},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.copy=function(target,targetStart,start,end){if(start||(start=0),end||0===end||(end=this.length),targetStart>=target.length&&(targetStart=target.length),targetStart||(targetStart=0),end>0&&start>end&&(end=start),end===start)return 0;if(0===target.length||0===this.length)return 0;if(0>targetStart)throw new RangeError("targetStart out of bounds");if(0>start||start>=this.length)throw new RangeError("sourceStart out of bounds");if(0>end)throw new RangeError("sourceEnd out of bounds");end>this.length&&(end=this.length),target.length-targetStartstart&&end>targetStart)for(i=len-1;i>=0;--i)target[i+targetStart]=this[i+start];else if(1e3>len||!Buffer.TYPED_ARRAY_SUPPORT)for(i=0;len>i;++i)target[i+targetStart]=this[i+start];else Uint8Array.prototype.set.call(target,this.subarray(start,start+len),targetStart);return len},Buffer.prototype.fill=function(val,start,end,encoding){if("string"==typeof val){if("string"==typeof start?(encoding=start,start=0,end=this.length):"string"==typeof end&&(encoding=end,end=this.length),1===val.length){var code=val.charCodeAt(0);256>code&&(val=code)}if(void 0!==encoding&&"string"!=typeof encoding)throw new TypeError("encoding must be a string");if("string"==typeof encoding&&!Buffer.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding)}else"number"==typeof val&&(val=255&val);if(0>start||this.length=end)return this;start>>>=0,end=void 0===end?this.length:end>>>0,val||(val=0);var i;if("number"==typeof val)for(i=start;end>i;++i)this[i]=val;else{var bytes=Buffer.isBuffer(val)?val:utf8ToBytes(new Buffer(val,encoding).toString()),len=bytes.length;for(i=0;end-start>i;++i)this[i+start]=bytes[i%len]}return this};var INVALID_BASE64_RE=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":47,ieee754:86,isarray:87}],84:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var dingbats=[{"Typeface name":"Symbol","Dingbat dec":"32","Dingbat hex":"20","Unicode dec":"32","Unicode hex":"20"},{"Typeface name":"Symbol","Dingbat dec":"33","Dingbat hex":"21","Unicode dec":"33","Unicode hex":"21"},{"Typeface name":"Symbol","Dingbat dec":"34","Dingbat hex":"22","Unicode dec":"8704","Unicode hex":"2200"},{"Typeface name":"Symbol","Dingbat dec":"35","Dingbat hex":"23","Unicode dec":"35","Unicode hex":"23"},{"Typeface name":"Symbol","Dingbat dec":"36","Dingbat hex":"24","Unicode dec":"8707","Unicode hex":"2203"},{"Typeface name":"Symbol","Dingbat dec":"37","Dingbat hex":"25","Unicode dec":"37","Unicode hex":"25"},{"Typeface name":"Symbol","Dingbat dec":"38","Dingbat hex":"26","Unicode dec":"38","Unicode hex":"26"},{"Typeface name":"Symbol","Dingbat dec":"39","Dingbat hex":"27","Unicode dec":"8717","Unicode hex":"220D"},{"Typeface name":"Symbol","Dingbat dec":"40","Dingbat hex":"28","Unicode dec":"40","Unicode hex":"28"},{"Typeface name":"Symbol","Dingbat dec":"41","Dingbat hex":"29","Unicode dec":"41","Unicode hex":"29"},{"Typeface name":"Symbol","Dingbat dec":"42","Dingbat hex":"2A","Unicode dec":"42","Unicode hex":"2A"},{"Typeface name":"Symbol","Dingbat dec":"43","Dingbat hex":"2B","Unicode dec":"43","Unicode hex":"2B"},{"Typeface name":"Symbol","Dingbat dec":"44","Dingbat hex":"2C","Unicode dec":"44","Unicode hex":"2C"},{"Typeface name":"Symbol","Dingbat dec":"45","Dingbat hex":"2D","Unicode dec":"8722","Unicode hex":"2212"},{"Typeface name":"Symbol","Dingbat dec":"46","Dingbat hex":"2E","Unicode dec":"46","Unicode hex":"2E"},{"Typeface name":"Symbol","Dingbat dec":"47","Dingbat hex":"2F","Unicode dec":"47","Unicode hex":"2F"},{"Typeface name":"Symbol","Dingbat dec":"48","Dingbat hex":"30","Unicode dec":"48","Unicode hex":"30"},{"Typeface name":"Symbol","Dingbat dec":"49","Dingbat hex":"31","Unicode dec":"49","Unicode hex":"31"},{"Typeface name":"Symbol","Dingbat dec":"50","Dingbat hex":"32","Unicode dec":"50","Unicode hex":"32"},{"Typeface name":"Symbol","Dingbat dec":"51","Dingbat hex":"33","Unicode dec":"51","Unicode hex":"33"},{"Typeface name":"Symbol","Dingbat dec":"52","Dingbat hex":"34","Unicode dec":"52","Unicode hex":"34"},{"Typeface name":"Symbol","Dingbat dec":"53","Dingbat hex":"35","Unicode dec":"53","Unicode hex":"35"},{"Typeface name":"Symbol","Dingbat dec":"54","Dingbat hex":"36","Unicode dec":"54","Unicode hex":"36"},{"Typeface name":"Symbol","Dingbat dec":"55","Dingbat hex":"37","Unicode dec":"55","Unicode hex":"37"},{"Typeface name":"Symbol","Dingbat dec":"56","Dingbat hex":"38","Unicode dec":"56","Unicode hex":"38"},{"Typeface name":"Symbol","Dingbat dec":"57","Dingbat hex":"39","Unicode dec":"57","Unicode hex":"39"},{"Typeface name":"Symbol","Dingbat dec":"58","Dingbat hex":"3A","Unicode dec":"58","Unicode hex":"3A"},{"Typeface name":"Symbol","Dingbat dec":"59","Dingbat hex":"3B","Unicode dec":"59","Unicode hex":"3B"},{"Typeface name":"Symbol","Dingbat dec":"60","Dingbat hex":"3C","Unicode dec":"60","Unicode hex":"3C"},{"Typeface name":"Symbol","Dingbat dec":"61","Dingbat hex":"3D","Unicode dec":"61","Unicode hex":"3D"},{"Typeface name":"Symbol","Dingbat dec":"62","Dingbat hex":"3E","Unicode dec":"62","Unicode hex":"3E"},{"Typeface name":"Symbol","Dingbat dec":"63","Dingbat hex":"3F","Unicode dec":"63","Unicode hex":"3F"},{"Typeface name":"Symbol","Dingbat dec":"64","Dingbat hex":"40","Unicode dec":"8773","Unicode hex":"2245"},{"Typeface name":"Symbol","Dingbat dec":"65","Dingbat hex":"41","Unicode dec":"913","Unicode hex":"391"},{"Typeface name":"Symbol","Dingbat dec":"66","Dingbat hex":"42","Unicode dec":"914","Unicode hex":"392"},{"Typeface name":"Symbol","Dingbat dec":"67","Dingbat hex":"43","Unicode dec":"935","Unicode hex":"3A7"},{"Typeface name":"Symbol","Dingbat dec":"68","Dingbat hex":"44","Unicode dec":"916","Unicode hex":"394"},{"Typeface name":"Symbol","Dingbat dec":"69","Dingbat hex":"45","Unicode dec":"917","Unicode hex":"395"},{"Typeface name":"Symbol","Dingbat dec":"70","Dingbat hex":"46","Unicode dec":"934","Unicode hex":"3A6"},{"Typeface name":"Symbol","Dingbat dec":"71","Dingbat hex":"47","Unicode dec":"915","Unicode hex":"393"},{"Typeface name":"Symbol","Dingbat dec":"72","Dingbat hex":"48","Unicode dec":"919","Unicode hex":"397"},{"Typeface name":"Symbol","Dingbat dec":"73","Dingbat hex":"49","Unicode dec":"921","Unicode hex":"399"},{"Typeface name":"Symbol","Dingbat dec":"74","Dingbat hex":"4A","Unicode dec":"977","Unicode hex":"3D1"},{"Typeface name":"Symbol","Dingbat dec":"75","Dingbat hex":"4B","Unicode dec":"922","Unicode hex":"39A"},{"Typeface name":"Symbol","Dingbat dec":"76","Dingbat hex":"4C","Unicode dec":"923","Unicode hex":"39B"},{"Typeface name":"Symbol","Dingbat dec":"77","Dingbat hex":"4D","Unicode dec":"924","Unicode hex":"39C"},{"Typeface name":"Symbol","Dingbat dec":"78","Dingbat hex":"4E","Unicode dec":"925","Unicode hex":"39D"},{"Typeface name":"Symbol","Dingbat dec":"79","Dingbat hex":"4F","Unicode dec":"927","Unicode hex":"39F"},{"Typeface name":"Symbol","Dingbat dec":"80","Dingbat hex":"50","Unicode dec":"928","Unicode hex":"3A0"},{"Typeface name":"Symbol","Dingbat dec":"81","Dingbat hex":"51","Unicode dec":"920","Unicode hex":"398"},{"Typeface name":"Symbol","Dingbat dec":"82","Dingbat hex":"52","Unicode dec":"929","Unicode hex":"3A1"},{"Typeface name":"Symbol","Dingbat dec":"83","Dingbat hex":"53","Unicode dec":"931","Unicode hex":"3A3"},{"Typeface name":"Symbol","Dingbat dec":"84","Dingbat hex":"54","Unicode dec":"932","Unicode hex":"3A4"},{"Typeface name":"Symbol","Dingbat dec":"85","Dingbat hex":"55","Unicode dec":"933","Unicode hex":"3A5"},{"Typeface name":"Symbol","Dingbat dec":"86","Dingbat hex":"56","Unicode dec":"962","Unicode hex":"3C2"},{"Typeface name":"Symbol","Dingbat dec":"87","Dingbat hex":"57","Unicode dec":"937","Unicode hex":"3A9"},{"Typeface name":"Symbol","Dingbat dec":"88","Dingbat hex":"58","Unicode dec":"926","Unicode hex":"39E"},{"Typeface name":"Symbol","Dingbat dec":"89","Dingbat hex":"59","Unicode dec":"936","Unicode hex":"3A8"},{"Typeface name":"Symbol","Dingbat dec":"90","Dingbat hex":"5A","Unicode dec":"918","Unicode hex":"396"},{"Typeface name":"Symbol","Dingbat dec":"91","Dingbat hex":"5B","Unicode dec":"91","Unicode hex":"5B"},{"Typeface name":"Symbol","Dingbat dec":"92","Dingbat hex":"5C","Unicode dec":"8756","Unicode hex":"2234"},{"Typeface name":"Symbol","Dingbat dec":"93","Dingbat hex":"5D","Unicode dec":"93","Unicode hex":"5D"},{"Typeface name":"Symbol","Dingbat dec":"94","Dingbat hex":"5E","Unicode dec":"8869","Unicode hex":"22A5"},{"Typeface name":"Symbol","Dingbat dec":"95","Dingbat hex":"5F","Unicode dec":"95","Unicode hex":"5F"},{"Typeface name":"Symbol","Dingbat dec":"96","Dingbat hex":"60","Unicode dec":"8254","Unicode hex":"203E"},{"Typeface name":"Symbol","Dingbat dec":"97","Dingbat hex":"61","Unicode dec":"945","Unicode hex":"3B1"},{"Typeface name":"Symbol","Dingbat dec":"98","Dingbat hex":"62","Unicode dec":"946","Unicode hex":"3B2"},{"Typeface name":"Symbol","Dingbat dec":"99","Dingbat hex":"63","Unicode dec":"967","Unicode hex":"3C7"},{"Typeface name":"Symbol","Dingbat dec":"100","Dingbat hex":"64","Unicode dec":"948","Unicode hex":"3B4"},{"Typeface name":"Symbol","Dingbat dec":"101","Dingbat hex":"65","Unicode dec":"949","Unicode hex":"3B5"},{"Typeface name":"Symbol","Dingbat dec":"102","Dingbat hex":"66","Unicode dec":"966","Unicode hex":"3C6"},{"Typeface name":"Symbol","Dingbat dec":"103","Dingbat hex":"67","Unicode dec":"947","Unicode hex":"3B3"},{"Typeface name":"Symbol","Dingbat dec":"104","Dingbat hex":"68","Unicode dec":"951","Unicode hex":"3B7"},{"Typeface name":"Symbol","Dingbat dec":"105","Dingbat hex":"69","Unicode dec":"953","Unicode hex":"3B9"},{"Typeface name":"Symbol","Dingbat dec":"106","Dingbat hex":"6A","Unicode dec":"981","Unicode hex":"3D5"},{"Typeface name":"Symbol","Dingbat dec":"107","Dingbat hex":"6B","Unicode dec":"954","Unicode hex":"3BA"},{"Typeface name":"Symbol","Dingbat dec":"108","Dingbat hex":"6C","Unicode dec":"955","Unicode hex":"3BB"},{"Typeface name":"Symbol","Dingbat dec":"109","Dingbat hex":"6D","Unicode dec":"956","Unicode hex":"3BC"},{"Typeface name":"Symbol","Dingbat dec":"110","Dingbat hex":"6E","Unicode dec":"957","Unicode hex":"3BD"},{"Typeface name":"Symbol","Dingbat dec":"111","Dingbat hex":"6F","Unicode dec":"959","Unicode hex":"3BF"},{"Typeface name":"Symbol","Dingbat dec":"112","Dingbat hex":"70","Unicode dec":"960","Unicode hex":"3C0"},{"Typeface name":"Symbol","Dingbat dec":"113","Dingbat hex":"71","Unicode dec":"952","Unicode hex":"3B8"},{"Typeface name":"Symbol","Dingbat dec":"114","Dingbat hex":"72","Unicode dec":"961","Unicode hex":"3C1"},{"Typeface name":"Symbol","Dingbat dec":"115","Dingbat hex":"73","Unicode dec":"963","Unicode hex":"3C3"},{"Typeface name":"Symbol","Dingbat dec":"116","Dingbat hex":"74","Unicode dec":"964","Unicode hex":"3C4"},{"Typeface name":"Symbol","Dingbat dec":"117","Dingbat hex":"75","Unicode dec":"965","Unicode hex":"3C5"},{"Typeface name":"Symbol","Dingbat dec":"118","Dingbat hex":"76","Unicode dec":"982","Unicode hex":"3D6"},{"Typeface name":"Symbol","Dingbat dec":"119","Dingbat hex":"77","Unicode dec":"969","Unicode hex":"3C9"},{"Typeface name":"Symbol","Dingbat dec":"120","Dingbat hex":"78","Unicode dec":"958","Unicode hex":"3BE"},{"Typeface name":"Symbol","Dingbat dec":"121","Dingbat hex":"79","Unicode dec":"968","Unicode hex":"3C8"},{"Typeface name":"Symbol","Dingbat dec":"122","Dingbat hex":"7A","Unicode dec":"950","Unicode hex":"3B6"},{"Typeface name":"Symbol","Dingbat dec":"123","Dingbat hex":"7B","Unicode dec":"123","Unicode hex":"7B"},{"Typeface name":"Symbol","Dingbat dec":"124","Dingbat hex":"7C","Unicode dec":"124","Unicode hex":"7C"},{"Typeface name":"Symbol","Dingbat dec":"125","Dingbat hex":"7D","Unicode dec":"125","Unicode hex":"7D"},{"Typeface name":"Symbol","Dingbat dec":"126","Dingbat hex":"7E","Unicode dec":"126","Unicode hex":"7E"},{"Typeface name":"Symbol","Dingbat dec":"160","Dingbat hex":"A0","Unicode dec":"8364","Unicode hex":"20AC"},{"Typeface name":"Symbol","Dingbat dec":"161","Dingbat hex":"A1","Unicode dec":"978","Unicode hex":"3D2"},{"Typeface name":"Symbol","Dingbat dec":"162","Dingbat hex":"A2","Unicode dec":"8242","Unicode hex":"2032"},{"Typeface name":"Symbol","Dingbat dec":"163","Dingbat hex":"A3","Unicode dec":"8804","Unicode hex":"2264"},{"Typeface name":"Symbol","Dingbat dec":"164","Dingbat hex":"A4","Unicode dec":"8260","Unicode hex":"2044"},{"Typeface name":"Symbol","Dingbat dec":"165","Dingbat hex":"A5","Unicode dec":"8734","Unicode hex":"221E"},{"Typeface name":"Symbol","Dingbat dec":"166","Dingbat hex":"A6","Unicode dec":"402","Unicode hex":"192"},{"Typeface name":"Symbol","Dingbat dec":"167","Dingbat hex":"A7","Unicode dec":"9827","Unicode hex":"2663"},{"Typeface name":"Symbol","Dingbat dec":"168","Dingbat hex":"A8","Unicode dec":"9830","Unicode hex":"2666"},{"Typeface name":"Symbol","Dingbat dec":"169","Dingbat hex":"A9","Unicode dec":"9829","Unicode hex":"2665"},{"Typeface name":"Symbol","Dingbat dec":"170","Dingbat hex":"AA","Unicode dec":"9824","Unicode hex":"2660"},{"Typeface name":"Symbol","Dingbat dec":"171","Dingbat hex":"AB","Unicode dec":"8596","Unicode hex":"2194"},{"Typeface name":"Symbol","Dingbat dec":"172","Dingbat hex":"AC","Unicode dec":"8592","Unicode hex":"2190"},{"Typeface name":"Symbol","Dingbat dec":"173","Dingbat hex":"AD","Unicode dec":"8593","Unicode hex":"2191"},{"Typeface name":"Symbol","Dingbat dec":"174","Dingbat hex":"AE","Unicode dec":"8594","Unicode hex":"2192"},{"Typeface name":"Symbol","Dingbat dec":"175","Dingbat hex":"AF","Unicode dec":"8595","Unicode hex":"2193"},{"Typeface name":"Symbol","Dingbat dec":"176","Dingbat hex":"B0","Unicode dec":"176","Unicode hex":"B0"},{"Typeface name":"Symbol","Dingbat dec":"177","Dingbat hex":"B1","Unicode dec":"177","Unicode hex":"B1"},{"Typeface name":"Symbol","Dingbat dec":"178","Dingbat hex":"B2","Unicode dec":"8243","Unicode hex":"2033"},{"Typeface name":"Symbol","Dingbat dec":"179","Dingbat hex":"B3","Unicode dec":"8805","Unicode hex":"2265"},{"Typeface name":"Symbol","Dingbat dec":"180","Dingbat hex":"B4","Unicode dec":"215","Unicode hex":"D7"},{"Typeface name":"Symbol","Dingbat dec":"181","Dingbat hex":"B5","Unicode dec":"8733","Unicode hex":"221D"},{"Typeface name":"Symbol","Dingbat dec":"182","Dingbat hex":"B6","Unicode dec":"8706","Unicode hex":"2202"},{"Typeface name":"Symbol","Dingbat dec":"183","Dingbat hex":"B7","Unicode dec":"8226","Unicode hex":"2022"},{"Typeface name":"Symbol","Dingbat dec":"184","Dingbat hex":"B8","Unicode dec":"247","Unicode hex":"F7"},{"Typeface name":"Symbol","Dingbat dec":"185","Dingbat hex":"B9","Unicode dec":"8800","Unicode hex":"2260"},{"Typeface name":"Symbol","Dingbat dec":"186","Dingbat hex":"BA","Unicode dec":"8801","Unicode hex":"2261"},{"Typeface name":"Symbol","Dingbat dec":"187","Dingbat hex":"BB","Unicode dec":"8776","Unicode hex":"2248"},{"Typeface name":"Symbol","Dingbat dec":"188","Dingbat hex":"BC","Unicode dec":"8230","Unicode hex":"2026"},{"Typeface name":"Symbol","Dingbat dec":"189","Dingbat hex":"BD","Unicode dec":"9168","Unicode hex":"23D0"},{"Typeface name":"Symbol","Dingbat dec":"190","Dingbat hex":"BE","Unicode dec":"9135","Unicode hex":"23AF"},{"Typeface name":"Symbol","Dingbat dec":"191","Dingbat hex":"BF","Unicode dec":"8629","Unicode hex":"21B5"},{"Typeface name":"Symbol","Dingbat dec":"192","Dingbat hex":"C0","Unicode dec":"8501","Unicode hex":"2135"},{"Typeface name":"Symbol","Dingbat dec":"193","Dingbat hex":"C1","Unicode dec":"8465","Unicode hex":"2111"},{"Typeface name":"Symbol","Dingbat dec":"194","Dingbat hex":"C2","Unicode dec":"8476","Unicode hex":"211C"},{"Typeface name":"Symbol","Dingbat dec":"195","Dingbat hex":"C3","Unicode dec":"8472","Unicode hex":"2118"},{"Typeface name":"Symbol","Dingbat dec":"196","Dingbat hex":"C4","Unicode dec":"8855","Unicode hex":"2297"},{"Typeface name":"Symbol","Dingbat dec":"197","Dingbat hex":"C5","Unicode dec":"8853","Unicode hex":"2295"},{"Typeface name":"Symbol","Dingbat dec":"198","Dingbat hex":"C6","Unicode dec":"8709","Unicode hex":"2205"},{"Typeface name":"Symbol","Dingbat dec":"199","Dingbat hex":"C7","Unicode dec":"8745","Unicode hex":"2229"},{"Typeface name":"Symbol","Dingbat dec":"200","Dingbat hex":"C8","Unicode dec":"8746","Unicode hex":"222A"},{"Typeface name":"Symbol","Dingbat dec":"201","Dingbat hex":"C9","Unicode dec":"8835","Unicode hex":"2283"},{"Typeface name":"Symbol","Dingbat dec":"202","Dingbat hex":"CA","Unicode dec":"8839","Unicode hex":"2287"},{"Typeface name":"Symbol","Dingbat dec":"203","Dingbat hex":"CB","Unicode dec":"8836","Unicode hex":"2284"},{"Typeface name":"Symbol","Dingbat dec":"204","Dingbat hex":"CC","Unicode dec":"8834","Unicode hex":"2282"},{"Typeface name":"Symbol","Dingbat dec":"205","Dingbat hex":"CD","Unicode dec":"8838","Unicode hex":"2286"},{"Typeface name":"Symbol","Dingbat dec":"206","Dingbat hex":"CE","Unicode dec":"8712","Unicode hex":"2208"},{"Typeface name":"Symbol","Dingbat dec":"207","Dingbat hex":"CF","Unicode dec":"8713","Unicode hex":"2209"},{"Typeface name":"Symbol","Dingbat dec":"208","Dingbat hex":"D0","Unicode dec":"8736","Unicode hex":"2220"},{"Typeface name":"Symbol","Dingbat dec":"209","Dingbat hex":"D1","Unicode dec":"8711","Unicode hex":"2207"},{"Typeface name":"Symbol","Dingbat dec":"210","Dingbat hex":"D2","Unicode dec":"174","Unicode hex":"AE"},{"Typeface name":"Symbol","Dingbat dec":"211","Dingbat hex":"D3","Unicode dec":"169","Unicode hex":"A9"},{"Typeface name":"Symbol","Dingbat dec":"212","Dingbat hex":"D4","Unicode dec":"8482","Unicode hex":"2122"},{"Typeface name":"Symbol","Dingbat dec":"213","Dingbat hex":"D5","Unicode dec":"8719","Unicode hex":"220F"},{"Typeface name":"Symbol","Dingbat dec":"214","Dingbat hex":"D6","Unicode dec":"8730","Unicode hex":"221A"},{"Typeface name":"Symbol","Dingbat dec":"215","Dingbat hex":"D7","Unicode dec":"8901","Unicode hex":"22C5"},{"Typeface name":"Symbol","Dingbat dec":"216","Dingbat hex":"D8","Unicode dec":"172","Unicode hex":"AC"},{"Typeface name":"Symbol","Dingbat dec":"217","Dingbat hex":"D9","Unicode dec":"8743","Unicode hex":"2227"},{"Typeface name":"Symbol","Dingbat dec":"218","Dingbat hex":"DA","Unicode dec":"8744","Unicode hex":"2228"},{"Typeface name":"Symbol","Dingbat dec":"219","Dingbat hex":"DB","Unicode dec":"8660","Unicode hex":"21D4"},{"Typeface name":"Symbol","Dingbat dec":"220","Dingbat hex":"DC","Unicode dec":"8656","Unicode hex":"21D0"},{"Typeface name":"Symbol","Dingbat dec":"221","Dingbat hex":"DD","Unicode dec":"8657","Unicode hex":"21D1"},{"Typeface name":"Symbol","Dingbat dec":"222","Dingbat hex":"DE","Unicode dec":"8658","Unicode hex":"21D2"},{"Typeface name":"Symbol","Dingbat dec":"223","Dingbat hex":"DF","Unicode dec":"8659","Unicode hex":"21D3"},{"Typeface name":"Symbol","Dingbat dec":"224","Dingbat hex":"E0","Unicode dec":"9674","Unicode hex":"25CA"},{"Typeface name":"Symbol","Dingbat dec":"225","Dingbat hex":"E1","Unicode dec":"12296","Unicode hex":"3008"},{"Typeface name":"Symbol","Dingbat dec":"226","Dingbat hex":"E2","Unicode dec":"174","Unicode hex":"AE"},{"Typeface name":"Symbol","Dingbat dec":"227","Dingbat hex":"E3","Unicode dec":"169","Unicode hex":"A9"},{"Typeface name":"Symbol","Dingbat dec":"228","Dingbat hex":"E4","Unicode dec":"8482","Unicode hex":"2122"},{"Typeface name":"Symbol","Dingbat dec":"229","Dingbat hex":"E5","Unicode dec":"8721","Unicode hex":"2211"},{"Typeface name":"Symbol","Dingbat dec":"230","Dingbat hex":"E6","Unicode dec":"9115","Unicode hex":"239B"},{"Typeface name":"Symbol","Dingbat dec":"231","Dingbat hex":"E7","Unicode dec":"9116","Unicode hex":"239C"},{"Typeface name":"Symbol","Dingbat dec":"232","Dingbat hex":"E8","Unicode dec":"9117","Unicode hex":"239D"},{"Typeface name":"Symbol","Dingbat dec":"233","Dingbat hex":"E9","Unicode dec":"9121","Unicode hex":"23A1"},{"Typeface name":"Symbol","Dingbat dec":"234","Dingbat hex":"EA","Unicode dec":"9122","Unicode hex":"23A2"},{"Typeface name":"Symbol","Dingbat dec":"235","Dingbat hex":"EB","Unicode dec":"9123","Unicode hex":"23A3"},{"Typeface name":"Symbol","Dingbat dec":"236","Dingbat hex":"EC","Unicode dec":"9127","Unicode hex":"23A7"},{"Typeface name":"Symbol","Dingbat dec":"237","Dingbat hex":"ED","Unicode dec":"9128","Unicode hex":"23A8"},{"Typeface name":"Symbol","Dingbat dec":"238","Dingbat hex":"EE","Unicode dec":"9129","Unicode hex":"23A9"},{"Typeface name":"Symbol","Dingbat dec":"239","Dingbat hex":"EF","Unicode dec":"9130","Unicode hex":"23AA"},{"Typeface name":"Symbol","Dingbat dec":"240","Dingbat hex":"F0","Unicode dec":"63743","Unicode hex":"F8FF"},{"Typeface name":"Symbol","Dingbat dec":"241","Dingbat hex":"F1","Unicode dec":"12297","Unicode hex":"3009"},{"Typeface name":"Symbol","Dingbat dec":"242","Dingbat hex":"F2","Unicode dec":"8747","Unicode hex":"222B"},{"Typeface name":"Symbol","Dingbat dec":"243","Dingbat hex":"F3","Unicode dec":"8992","Unicode hex":"2320"},{"Typeface name":"Symbol","Dingbat dec":"244","Dingbat hex":"F4","Unicode dec":"9134","Unicode hex":"23AE"},{"Typeface name":"Symbol","Dingbat dec":"245","Dingbat hex":"F5","Unicode dec":"8993","Unicode hex":"2321"},{"Typeface name":"Symbol","Dingbat dec":"246","Dingbat hex":"F6","Unicode dec":"9118","Unicode hex":"239E"},{"Typeface name":"Symbol","Dingbat dec":"247","Dingbat hex":"F7","Unicode dec":"9119","Unicode hex":"239F"},{"Typeface name":"Symbol","Dingbat dec":"248","Dingbat hex":"F8","Unicode dec":"9120","Unicode hex":"23A0"},{"Typeface name":"Symbol","Dingbat dec":"249","Dingbat hex":"F9","Unicode dec":"9124","Unicode hex":"23A4"},{"Typeface name":"Symbol","Dingbat dec":"250","Dingbat hex":"FA","Unicode dec":"9125","Unicode hex":"23A5"},{"Typeface name":"Symbol","Dingbat dec":"251","Dingbat hex":"FB","Unicode dec":"9126","Unicode hex":"23A6"},{"Typeface name":"Symbol","Dingbat dec":"252","Dingbat hex":"FC","Unicode dec":"9131","Unicode hex":"23AB"},{"Typeface name":"Symbol","Dingbat dec":"253","Dingbat hex":"FD","Unicode dec":"9132","Unicode hex":"23AC"},{"Typeface name":"Symbol","Dingbat dec":"254","Dingbat hex":"FE","Unicode dec":"9133","Unicode hex":"23AD"},{"Typeface name":"Webdings","Dingbat dec":"32","Dingbat hex":"20","Unicode dec":"32","Unicode hex":"20"},{"Typeface name":"Webdings","Dingbat dec":"33","Dingbat hex":"21","Unicode dec":"128375","Unicode hex":"1F577"},{"Typeface name":"Webdings","Dingbat dec":"34","Dingbat hex":"22","Unicode dec":"128376","Unicode hex":"1F578"},{"Typeface name":"Webdings","Dingbat dec":"35","Dingbat hex":"23","Unicode dec":"128370","Unicode hex":"1F572"},{"Typeface name":"Webdings","Dingbat dec":"36","Dingbat hex":"24","Unicode dec":"128374","Unicode hex":"1F576"},{"Typeface name":"Webdings","Dingbat dec":"37","Dingbat hex":"25","Unicode dec":"127942","Unicode hex":"1F3C6"},{"Typeface name":"Webdings","Dingbat dec":"38","Dingbat hex":"26","Unicode dec":"127894","Unicode hex":"1F396"},{"Typeface name":"Webdings","Dingbat dec":"39","Dingbat hex":"27","Unicode dec":"128391","Unicode hex":"1F587"},{"Typeface name":"Webdings","Dingbat dec":"40","Dingbat hex":"28","Unicode dec":"128488","Unicode hex":"1F5E8"},{"Typeface name":"Webdings","Dingbat dec":"41","Dingbat hex":"29","Unicode dec":"128489","Unicode hex":"1F5E9"},{"Typeface name":"Webdings","Dingbat dec":"42","Dingbat hex":"2A","Unicode dec":"128496","Unicode hex":"1F5F0"},{"Typeface name":"Webdings","Dingbat dec":"43","Dingbat hex":"2B","Unicode dec":"128497","Unicode hex":"1F5F1"},{"Typeface name":"Webdings","Dingbat dec":"44","Dingbat hex":"2C","Unicode dec":"127798","Unicode hex":"1F336"},{"Typeface name":"Webdings","Dingbat dec":"45","Dingbat hex":"2D","Unicode dec":"127895","Unicode hex":"1F397"},{"Typeface name":"Webdings","Dingbat dec":"46","Dingbat hex":"2E","Unicode dec":"128638","Unicode hex":"1F67E"},{"Typeface name":"Webdings","Dingbat dec":"47","Dingbat hex":"2F","Unicode dec":"128636","Unicode hex":"1F67C"},{"Typeface name":"Webdings","Dingbat dec":"48","Dingbat hex":"30","Unicode dec":"128469","Unicode hex":"1F5D5"},{"Typeface name":"Webdings","Dingbat dec":"49","Dingbat hex":"31","Unicode dec":"128470","Unicode hex":"1F5D6"},{"Typeface name":"Webdings","Dingbat dec":"50","Dingbat hex":"32","Unicode dec":"128471","Unicode hex":"1F5D7"},{"Typeface name":"Webdings","Dingbat dec":"51","Dingbat hex":"33","Unicode dec":"9204","Unicode hex":"23F4"},{"Typeface name":"Webdings","Dingbat dec":"52","Dingbat hex":"34","Unicode dec":"9205","Unicode hex":"23F5"},{"Typeface name":"Webdings","Dingbat dec":"53","Dingbat hex":"35","Unicode dec":"9206","Unicode hex":"23F6"},{"Typeface name":"Webdings","Dingbat dec":"54","Dingbat hex":"36","Unicode dec":"9207","Unicode hex":"23F7"},{"Typeface name":"Webdings","Dingbat dec":"55","Dingbat hex":"37","Unicode dec":"9194","Unicode hex":"23EA"},{"Typeface name":"Webdings","Dingbat dec":"56","Dingbat hex":"38","Unicode dec":"9193","Unicode hex":"23E9"},{"Typeface name":"Webdings","Dingbat dec":"57","Dingbat hex":"39","Unicode dec":"9198","Unicode hex":"23EE"},{"Typeface name":"Webdings","Dingbat dec":"58","Dingbat hex":"3A","Unicode dec":"9197","Unicode hex":"23ED"},{"Typeface name":"Webdings","Dingbat dec":"59","Dingbat hex":"3B","Unicode dec":"9208","Unicode hex":"23F8"},{"Typeface name":"Webdings","Dingbat dec":"60","Dingbat hex":"3C","Unicode dec":"9209","Unicode hex":"23F9"},{"Typeface name":"Webdings","Dingbat dec":"61","Dingbat hex":"3D","Unicode dec":"9210","Unicode hex":"23FA"},{"Typeface name":"Webdings","Dingbat dec":"62","Dingbat hex":"3E","Unicode dec":"128474","Unicode hex":"1F5DA"},{"Typeface name":"Webdings","Dingbat dec":"63","Dingbat hex":"3F","Unicode dec":"128499","Unicode hex":"1F5F3"},{"Typeface name":"Webdings","Dingbat dec":"64","Dingbat hex":"40","Unicode dec":"128736","Unicode hex":"1F6E0"},{"Typeface name":"Webdings","Dingbat dec":"65","Dingbat hex":"41","Unicode dec":"127959","Unicode hex":"1F3D7"},{"Typeface name":"Webdings","Dingbat dec":"66","Dingbat hex":"42","Unicode dec":"127960","Unicode hex":"1F3D8"},{"Typeface name":"Webdings","Dingbat dec":"67","Dingbat hex":"43","Unicode dec":"127961","Unicode hex":"1F3D9"},{"Typeface name":"Webdings","Dingbat dec":"68","Dingbat hex":"44","Unicode dec":"127962","Unicode hex":"1F3DA"},{"Typeface name":"Webdings","Dingbat dec":"69","Dingbat hex":"45","Unicode dec":"127964","Unicode hex":"1F3DC"},{"Typeface name":"Webdings","Dingbat dec":"70","Dingbat hex":"46","Unicode dec":"127981","Unicode hex":"1F3ED"},{"Typeface name":"Webdings","Dingbat dec":"71","Dingbat hex":"47","Unicode dec":"127963","Unicode hex":"1F3DB"},{"Typeface name":"Webdings","Dingbat dec":"72","Dingbat hex":"48","Unicode dec":"127968","Unicode hex":"1F3E0"},{"Typeface name":"Webdings","Dingbat dec":"73","Dingbat hex":"49","Unicode dec":"127958","Unicode hex":"1F3D6"},{"Typeface name":"Webdings","Dingbat dec":"74","Dingbat hex":"4A","Unicode dec":"127965","Unicode hex":"1F3DD"},{"Typeface name":"Webdings","Dingbat dec":"75","Dingbat hex":"4B","Unicode dec":"128739","Unicode hex":"1F6E3"},{"Typeface name":"Webdings","Dingbat dec":"76","Dingbat hex":"4C","Unicode dec":"128269","Unicode hex":"1F50D"},{"Typeface name":"Webdings","Dingbat dec":"77","Dingbat hex":"4D","Unicode dec":"127956","Unicode hex":"1F3D4"},{"Typeface name":"Webdings","Dingbat dec":"78","Dingbat hex":"4E","Unicode dec":"128065","Unicode hex":"1F441"},{"Typeface name":"Webdings","Dingbat dec":"79","Dingbat hex":"4F","Unicode dec":"128066","Unicode hex":"1F442"},{"Typeface name":"Webdings","Dingbat dec":"80","Dingbat hex":"50","Unicode dec":"127966","Unicode hex":"1F3DE"},{"Typeface name":"Webdings","Dingbat dec":"81", +"Dingbat hex":"51","Unicode dec":"127957","Unicode hex":"1F3D5"},{"Typeface name":"Webdings","Dingbat dec":"82","Dingbat hex":"52","Unicode dec":"128740","Unicode hex":"1F6E4"},{"Typeface name":"Webdings","Dingbat dec":"83","Dingbat hex":"53","Unicode dec":"127967","Unicode hex":"1F3DF"},{"Typeface name":"Webdings","Dingbat dec":"84","Dingbat hex":"54","Unicode dec":"128755","Unicode hex":"1F6F3"},{"Typeface name":"Webdings","Dingbat dec":"85","Dingbat hex":"55","Unicode dec":"128364","Unicode hex":"1F56C"},{"Typeface name":"Webdings","Dingbat dec":"86","Dingbat hex":"56","Unicode dec":"128363","Unicode hex":"1F56B"},{"Typeface name":"Webdings","Dingbat dec":"87","Dingbat hex":"57","Unicode dec":"128360","Unicode hex":"1F568"},{"Typeface name":"Webdings","Dingbat dec":"88","Dingbat hex":"58","Unicode dec":"128264","Unicode hex":"1F508"},{"Typeface name":"Webdings","Dingbat dec":"89","Dingbat hex":"59","Unicode dec":"127892","Unicode hex":"1F394"},{"Typeface name":"Webdings","Dingbat dec":"90","Dingbat hex":"5A","Unicode dec":"127893","Unicode hex":"1F395"},{"Typeface name":"Webdings","Dingbat dec":"91","Dingbat hex":"5B","Unicode dec":"128492","Unicode hex":"1F5EC"},{"Typeface name":"Webdings","Dingbat dec":"92","Dingbat hex":"5C","Unicode dec":"128637","Unicode hex":"1F67D"},{"Typeface name":"Webdings","Dingbat dec":"93","Dingbat hex":"5D","Unicode dec":"128493","Unicode hex":"1F5ED"},{"Typeface name":"Webdings","Dingbat dec":"94","Dingbat hex":"5E","Unicode dec":"128490","Unicode hex":"1F5EA"},{"Typeface name":"Webdings","Dingbat dec":"95","Dingbat hex":"5F","Unicode dec":"128491","Unicode hex":"1F5EB"},{"Typeface name":"Webdings","Dingbat dec":"96","Dingbat hex":"60","Unicode dec":"11156","Unicode hex":"2B94"},{"Typeface name":"Webdings","Dingbat dec":"97","Dingbat hex":"61","Unicode dec":"10004","Unicode hex":"2714"},{"Typeface name":"Webdings","Dingbat dec":"98","Dingbat hex":"62","Unicode dec":"128690","Unicode hex":"1F6B2"},{"Typeface name":"Webdings","Dingbat dec":"99","Dingbat hex":"63","Unicode dec":"11036","Unicode hex":"2B1C"},{"Typeface name":"Webdings","Dingbat dec":"100","Dingbat hex":"64","Unicode dec":"128737","Unicode hex":"1F6E1"},{"Typeface name":"Webdings","Dingbat dec":"101","Dingbat hex":"65","Unicode dec":"128230","Unicode hex":"1F4E6"},{"Typeface name":"Webdings","Dingbat dec":"102","Dingbat hex":"66","Unicode dec":"128753","Unicode hex":"1F6F1"},{"Typeface name":"Webdings","Dingbat dec":"103","Dingbat hex":"67","Unicode dec":"11035","Unicode hex":"2B1B"},{"Typeface name":"Webdings","Dingbat dec":"104","Dingbat hex":"68","Unicode dec":"128657","Unicode hex":"1F691"},{"Typeface name":"Webdings","Dingbat dec":"105","Dingbat hex":"69","Unicode dec":"128712","Unicode hex":"1F6C8"},{"Typeface name":"Webdings","Dingbat dec":"106","Dingbat hex":"6A","Unicode dec":"128745","Unicode hex":"1F6E9"},{"Typeface name":"Webdings","Dingbat dec":"107","Dingbat hex":"6B","Unicode dec":"128752","Unicode hex":"1F6F0"},{"Typeface name":"Webdings","Dingbat dec":"108","Dingbat hex":"6C","Unicode dec":"128968","Unicode hex":"1F7C8"},{"Typeface name":"Webdings","Dingbat dec":"109","Dingbat hex":"6D","Unicode dec":"128372","Unicode hex":"1F574"},{"Typeface name":"Webdings","Dingbat dec":"110","Dingbat hex":"6E","Unicode dec":"11044","Unicode hex":"2B24"},{"Typeface name":"Webdings","Dingbat dec":"111","Dingbat hex":"6F","Unicode dec":"128741","Unicode hex":"1F6E5"},{"Typeface name":"Webdings","Dingbat dec":"112","Dingbat hex":"70","Unicode dec":"128660","Unicode hex":"1F694"},{"Typeface name":"Webdings","Dingbat dec":"113","Dingbat hex":"71","Unicode dec":"128472","Unicode hex":"1F5D8"},{"Typeface name":"Webdings","Dingbat dec":"114","Dingbat hex":"72","Unicode dec":"128473","Unicode hex":"1F5D9"},{"Typeface name":"Webdings","Dingbat dec":"115","Dingbat hex":"73","Unicode dec":"10067","Unicode hex":"2753"},{"Typeface name":"Webdings","Dingbat dec":"116","Dingbat hex":"74","Unicode dec":"128754","Unicode hex":"1F6F2"},{"Typeface name":"Webdings","Dingbat dec":"117","Dingbat hex":"75","Unicode dec":"128647","Unicode hex":"1F687"},{"Typeface name":"Webdings","Dingbat dec":"118","Dingbat hex":"76","Unicode dec":"128653","Unicode hex":"1F68D"},{"Typeface name":"Webdings","Dingbat dec":"119","Dingbat hex":"77","Unicode dec":"9971","Unicode hex":"26F3"},{"Typeface name":"Webdings","Dingbat dec":"120","Dingbat hex":"78","Unicode dec":"10680","Unicode hex":"29B8"},{"Typeface name":"Webdings","Dingbat dec":"121","Dingbat hex":"79","Unicode dec":"8854","Unicode hex":"2296"},{"Typeface name":"Webdings","Dingbat dec":"122","Dingbat hex":"7A","Unicode dec":"128685","Unicode hex":"1F6AD"},{"Typeface name":"Webdings","Dingbat dec":"123","Dingbat hex":"7B","Unicode dec":"128494","Unicode hex":"1F5EE"},{"Typeface name":"Webdings","Dingbat dec":"124","Dingbat hex":"7C","Unicode dec":"9168","Unicode hex":"23D0"},{"Typeface name":"Webdings","Dingbat dec":"125","Dingbat hex":"7D","Unicode dec":"128495","Unicode hex":"1F5EF"},{"Typeface name":"Webdings","Dingbat dec":"126","Dingbat hex":"7E","Unicode dec":"128498","Unicode hex":"1F5F2"},{"Typeface name":"Webdings","Dingbat dec":"128","Dingbat hex":"80","Unicode dec":"128697","Unicode hex":"1F6B9"},{"Typeface name":"Webdings","Dingbat dec":"129","Dingbat hex":"81","Unicode dec":"128698","Unicode hex":"1F6BA"},{"Typeface name":"Webdings","Dingbat dec":"130","Dingbat hex":"82","Unicode dec":"128713","Unicode hex":"1F6C9"},{"Typeface name":"Webdings","Dingbat dec":"131","Dingbat hex":"83","Unicode dec":"128714","Unicode hex":"1F6CA"},{"Typeface name":"Webdings","Dingbat dec":"132","Dingbat hex":"84","Unicode dec":"128700","Unicode hex":"1F6BC"},{"Typeface name":"Webdings","Dingbat dec":"133","Dingbat hex":"85","Unicode dec":"128125","Unicode hex":"1F47D"},{"Typeface name":"Webdings","Dingbat dec":"134","Dingbat hex":"86","Unicode dec":"127947","Unicode hex":"1F3CB"},{"Typeface name":"Webdings","Dingbat dec":"135","Dingbat hex":"87","Unicode dec":"9975","Unicode hex":"26F7"},{"Typeface name":"Webdings","Dingbat dec":"136","Dingbat hex":"88","Unicode dec":"127938","Unicode hex":"1F3C2"},{"Typeface name":"Webdings","Dingbat dec":"137","Dingbat hex":"89","Unicode dec":"127948","Unicode hex":"1F3CC"},{"Typeface name":"Webdings","Dingbat dec":"138","Dingbat hex":"8A","Unicode dec":"127946","Unicode hex":"1F3CA"},{"Typeface name":"Webdings","Dingbat dec":"139","Dingbat hex":"8B","Unicode dec":"127940","Unicode hex":"1F3C4"},{"Typeface name":"Webdings","Dingbat dec":"140","Dingbat hex":"8C","Unicode dec":"127949","Unicode hex":"1F3CD"},{"Typeface name":"Webdings","Dingbat dec":"141","Dingbat hex":"8D","Unicode dec":"127950","Unicode hex":"1F3CE"},{"Typeface name":"Webdings","Dingbat dec":"142","Dingbat hex":"8E","Unicode dec":"128664","Unicode hex":"1F698"},{"Typeface name":"Webdings","Dingbat dec":"143","Dingbat hex":"8F","Unicode dec":"128480","Unicode hex":"1F5E0"},{"Typeface name":"Webdings","Dingbat dec":"144","Dingbat hex":"90","Unicode dec":"128738","Unicode hex":"1F6E2"},{"Typeface name":"Webdings","Dingbat dec":"145","Dingbat hex":"91","Unicode dec":"128176","Unicode hex":"1F4B0"},{"Typeface name":"Webdings","Dingbat dec":"146","Dingbat hex":"92","Unicode dec":"127991","Unicode hex":"1F3F7"},{"Typeface name":"Webdings","Dingbat dec":"147","Dingbat hex":"93","Unicode dec":"128179","Unicode hex":"1F4B3"},{"Typeface name":"Webdings","Dingbat dec":"148","Dingbat hex":"94","Unicode dec":"128106","Unicode hex":"1F46A"},{"Typeface name":"Webdings","Dingbat dec":"149","Dingbat hex":"95","Unicode dec":"128481","Unicode hex":"1F5E1"},{"Typeface name":"Webdings","Dingbat dec":"150","Dingbat hex":"96","Unicode dec":"128482","Unicode hex":"1F5E2"},{"Typeface name":"Webdings","Dingbat dec":"151","Dingbat hex":"97","Unicode dec":"128483","Unicode hex":"1F5E3"},{"Typeface name":"Webdings","Dingbat dec":"152","Dingbat hex":"98","Unicode dec":"10031","Unicode hex":"272F"},{"Typeface name":"Webdings","Dingbat dec":"153","Dingbat hex":"99","Unicode dec":"128388","Unicode hex":"1F584"},{"Typeface name":"Webdings","Dingbat dec":"154","Dingbat hex":"9A","Unicode dec":"128389","Unicode hex":"1F585"},{"Typeface name":"Webdings","Dingbat dec":"155","Dingbat hex":"9B","Unicode dec":"128387","Unicode hex":"1F583"},{"Typeface name":"Webdings","Dingbat dec":"156","Dingbat hex":"9C","Unicode dec":"128390","Unicode hex":"1F586"},{"Typeface name":"Webdings","Dingbat dec":"157","Dingbat hex":"9D","Unicode dec":"128441","Unicode hex":"1F5B9"},{"Typeface name":"Webdings","Dingbat dec":"158","Dingbat hex":"9E","Unicode dec":"128442","Unicode hex":"1F5BA"},{"Typeface name":"Webdings","Dingbat dec":"159","Dingbat hex":"9F","Unicode dec":"128443","Unicode hex":"1F5BB"},{"Typeface name":"Webdings","Dingbat dec":"160","Dingbat hex":"A0","Unicode dec":"128373","Unicode hex":"1F575"},{"Typeface name":"Webdings","Dingbat dec":"161","Dingbat hex":"A1","Unicode dec":"128368","Unicode hex":"1F570"},{"Typeface name":"Webdings","Dingbat dec":"162","Dingbat hex":"A2","Unicode dec":"128445","Unicode hex":"1F5BD"},{"Typeface name":"Webdings","Dingbat dec":"163","Dingbat hex":"A3","Unicode dec":"128446","Unicode hex":"1F5BE"},{"Typeface name":"Webdings","Dingbat dec":"164","Dingbat hex":"A4","Unicode dec":"128203","Unicode hex":"1F4CB"},{"Typeface name":"Webdings","Dingbat dec":"165","Dingbat hex":"A5","Unicode dec":"128466","Unicode hex":"1F5D2"},{"Typeface name":"Webdings","Dingbat dec":"166","Dingbat hex":"A6","Unicode dec":"128467","Unicode hex":"1F5D3"},{"Typeface name":"Webdings","Dingbat dec":"167","Dingbat hex":"A7","Unicode dec":"128366","Unicode hex":"1F56E"},{"Typeface name":"Webdings","Dingbat dec":"168","Dingbat hex":"A8","Unicode dec":"128218","Unicode hex":"1F4DA"},{"Typeface name":"Webdings","Dingbat dec":"169","Dingbat hex":"A9","Unicode dec":"128478","Unicode hex":"1F5DE"},{"Typeface name":"Webdings","Dingbat dec":"170","Dingbat hex":"AA","Unicode dec":"128479","Unicode hex":"1F5DF"},{"Typeface name":"Webdings","Dingbat dec":"171","Dingbat hex":"AB","Unicode dec":"128451","Unicode hex":"1F5C3"},{"Typeface name":"Webdings","Dingbat dec":"172","Dingbat hex":"AC","Unicode dec":"128450","Unicode hex":"1F5C2"},{"Typeface name":"Webdings","Dingbat dec":"173","Dingbat hex":"AD","Unicode dec":"128444","Unicode hex":"1F5BC"},{"Typeface name":"Webdings","Dingbat dec":"174","Dingbat hex":"AE","Unicode dec":"127917","Unicode hex":"1F3AD"},{"Typeface name":"Webdings","Dingbat dec":"175","Dingbat hex":"AF","Unicode dec":"127900","Unicode hex":"1F39C"},{"Typeface name":"Webdings","Dingbat dec":"176","Dingbat hex":"B0","Unicode dec":"127896","Unicode hex":"1F398"},{"Typeface name":"Webdings","Dingbat dec":"177","Dingbat hex":"B1","Unicode dec":"127897","Unicode hex":"1F399"},{"Typeface name":"Webdings","Dingbat dec":"178","Dingbat hex":"B2","Unicode dec":"127911","Unicode hex":"1F3A7"},{"Typeface name":"Webdings","Dingbat dec":"179","Dingbat hex":"B3","Unicode dec":"128191","Unicode hex":"1F4BF"},{"Typeface name":"Webdings","Dingbat dec":"180","Dingbat hex":"B4","Unicode dec":"127902","Unicode hex":"1F39E"},{"Typeface name":"Webdings","Dingbat dec":"181","Dingbat hex":"B5","Unicode dec":"128247","Unicode hex":"1F4F7"},{"Typeface name":"Webdings","Dingbat dec":"182","Dingbat hex":"B6","Unicode dec":"127903","Unicode hex":"1F39F"},{"Typeface name":"Webdings","Dingbat dec":"183","Dingbat hex":"B7","Unicode dec":"127916","Unicode hex":"1F3AC"},{"Typeface name":"Webdings","Dingbat dec":"184","Dingbat hex":"B8","Unicode dec":"128253","Unicode hex":"1F4FD"},{"Typeface name":"Webdings","Dingbat dec":"185","Dingbat hex":"B9","Unicode dec":"128249","Unicode hex":"1F4F9"},{"Typeface name":"Webdings","Dingbat dec":"186","Dingbat hex":"BA","Unicode dec":"128254","Unicode hex":"1F4FE"},{"Typeface name":"Webdings","Dingbat dec":"187","Dingbat hex":"BB","Unicode dec":"128251","Unicode hex":"1F4FB"},{"Typeface name":"Webdings","Dingbat dec":"188","Dingbat hex":"BC","Unicode dec":"127898","Unicode hex":"1F39A"},{"Typeface name":"Webdings","Dingbat dec":"189","Dingbat hex":"BD","Unicode dec":"127899","Unicode hex":"1F39B"},{"Typeface name":"Webdings","Dingbat dec":"190","Dingbat hex":"BE","Unicode dec":"128250","Unicode hex":"1F4FA"},{"Typeface name":"Webdings","Dingbat dec":"191","Dingbat hex":"BF","Unicode dec":"128187","Unicode hex":"1F4BB"},{"Typeface name":"Webdings","Dingbat dec":"192","Dingbat hex":"C0","Unicode dec":"128421","Unicode hex":"1F5A5"},{"Typeface name":"Webdings","Dingbat dec":"193","Dingbat hex":"C1","Unicode dec":"128422","Unicode hex":"1F5A6"},{"Typeface name":"Webdings","Dingbat dec":"194","Dingbat hex":"C2","Unicode dec":"128423","Unicode hex":"1F5A7"},{"Typeface name":"Webdings","Dingbat dec":"195","Dingbat hex":"C3","Unicode dec":"128377","Unicode hex":"1F579"},{"Typeface name":"Webdings","Dingbat dec":"196","Dingbat hex":"C4","Unicode dec":"127918","Unicode hex":"1F3AE"},{"Typeface name":"Webdings","Dingbat dec":"197","Dingbat hex":"C5","Unicode dec":"128379","Unicode hex":"1F57B"},{"Typeface name":"Webdings","Dingbat dec":"198","Dingbat hex":"C6","Unicode dec":"128380","Unicode hex":"1F57C"},{"Typeface name":"Webdings","Dingbat dec":"199","Dingbat hex":"C7","Unicode dec":"128223","Unicode hex":"1F4DF"},{"Typeface name":"Webdings","Dingbat dec":"200","Dingbat hex":"C8","Unicode dec":"128385","Unicode hex":"1F581"},{"Typeface name":"Webdings","Dingbat dec":"201","Dingbat hex":"C9","Unicode dec":"128384","Unicode hex":"1F580"},{"Typeface name":"Webdings","Dingbat dec":"202","Dingbat hex":"CA","Unicode dec":"128424","Unicode hex":"1F5A8"},{"Typeface name":"Webdings","Dingbat dec":"203","Dingbat hex":"CB","Unicode dec":"128425","Unicode hex":"1F5A9"},{"Typeface name":"Webdings","Dingbat dec":"204","Dingbat hex":"CC","Unicode dec":"128447","Unicode hex":"1F5BF"},{"Typeface name":"Webdings","Dingbat dec":"205","Dingbat hex":"CD","Unicode dec":"128426","Unicode hex":"1F5AA"},{"Typeface name":"Webdings","Dingbat dec":"206","Dingbat hex":"CE","Unicode dec":"128476","Unicode hex":"1F5DC"},{"Typeface name":"Webdings","Dingbat dec":"207","Dingbat hex":"CF","Unicode dec":"128274","Unicode hex":"1F512"},{"Typeface name":"Webdings","Dingbat dec":"208","Dingbat hex":"D0","Unicode dec":"128275","Unicode hex":"1F513"},{"Typeface name":"Webdings","Dingbat dec":"209","Dingbat hex":"D1","Unicode dec":"128477","Unicode hex":"1F5DD"},{"Typeface name":"Webdings","Dingbat dec":"210","Dingbat hex":"D2","Unicode dec":"128229","Unicode hex":"1F4E5"},{"Typeface name":"Webdings","Dingbat dec":"211","Dingbat hex":"D3","Unicode dec":"128228","Unicode hex":"1F4E4"},{"Typeface name":"Webdings","Dingbat dec":"212","Dingbat hex":"D4","Unicode dec":"128371","Unicode hex":"1F573"},{"Typeface name":"Webdings","Dingbat dec":"213","Dingbat hex":"D5","Unicode dec":"127779","Unicode hex":"1F323"},{"Typeface name":"Webdings","Dingbat dec":"214","Dingbat hex":"D6","Unicode dec":"127780","Unicode hex":"1F324"},{"Typeface name":"Webdings","Dingbat dec":"215","Dingbat hex":"D7","Unicode dec":"127781","Unicode hex":"1F325"},{"Typeface name":"Webdings","Dingbat dec":"216","Dingbat hex":"D8","Unicode dec":"127782","Unicode hex":"1F326"},{"Typeface name":"Webdings","Dingbat dec":"217","Dingbat hex":"D9","Unicode dec":"9729","Unicode hex":"2601"},{"Typeface name":"Webdings","Dingbat dec":"218","Dingbat hex":"DA","Unicode dec":"127784","Unicode hex":"1F328"},{"Typeface name":"Webdings","Dingbat dec":"219","Dingbat hex":"DB","Unicode dec":"127783","Unicode hex":"1F327"},{"Typeface name":"Webdings","Dingbat dec":"220","Dingbat hex":"DC","Unicode dec":"127785","Unicode hex":"1F329"},{"Typeface name":"Webdings","Dingbat dec":"221","Dingbat hex":"DD","Unicode dec":"127786","Unicode hex":"1F32A"},{"Typeface name":"Webdings","Dingbat dec":"222","Dingbat hex":"DE","Unicode dec":"127788","Unicode hex":"1F32C"},{"Typeface name":"Webdings","Dingbat dec":"223","Dingbat hex":"DF","Unicode dec":"127787","Unicode hex":"1F32B"},{"Typeface name":"Webdings","Dingbat dec":"224","Dingbat hex":"E0","Unicode dec":"127772","Unicode hex":"1F31C"},{"Typeface name":"Webdings","Dingbat dec":"225","Dingbat hex":"E1","Unicode dec":"127777","Unicode hex":"1F321"},{"Typeface name":"Webdings","Dingbat dec":"226","Dingbat hex":"E2","Unicode dec":"128715","Unicode hex":"1F6CB"},{"Typeface name":"Webdings","Dingbat dec":"227","Dingbat hex":"E3","Unicode dec":"128719","Unicode hex":"1F6CF"},{"Typeface name":"Webdings","Dingbat dec":"228","Dingbat hex":"E4","Unicode dec":"127869","Unicode hex":"1F37D"},{"Typeface name":"Webdings","Dingbat dec":"229","Dingbat hex":"E5","Unicode dec":"127864","Unicode hex":"1F378"},{"Typeface name":"Webdings","Dingbat dec":"230","Dingbat hex":"E6","Unicode dec":"128718","Unicode hex":"1F6CE"},{"Typeface name":"Webdings","Dingbat dec":"231","Dingbat hex":"E7","Unicode dec":"128717","Unicode hex":"1F6CD"},{"Typeface name":"Webdings","Dingbat dec":"232","Dingbat hex":"E8","Unicode dec":"9413","Unicode hex":"24C5"},{"Typeface name":"Webdings","Dingbat dec":"233","Dingbat hex":"E9","Unicode dec":"9855","Unicode hex":"267F"},{"Typeface name":"Webdings","Dingbat dec":"234","Dingbat hex":"EA","Unicode dec":"128710","Unicode hex":"1F6C6"},{"Typeface name":"Webdings","Dingbat dec":"235","Dingbat hex":"EB","Unicode dec":"128392","Unicode hex":"1F588"},{"Typeface name":"Webdings","Dingbat dec":"236","Dingbat hex":"EC","Unicode dec":"127891","Unicode hex":"1F393"},{"Typeface name":"Webdings","Dingbat dec":"237","Dingbat hex":"ED","Unicode dec":"128484","Unicode hex":"1F5E4"},{"Typeface name":"Webdings","Dingbat dec":"238","Dingbat hex":"EE","Unicode dec":"128485","Unicode hex":"1F5E5"},{"Typeface name":"Webdings","Dingbat dec":"239","Dingbat hex":"EF","Unicode dec":"128486","Unicode hex":"1F5E6"},{"Typeface name":"Webdings","Dingbat dec":"240","Dingbat hex":"F0","Unicode dec":"128487","Unicode hex":"1F5E7"},{"Typeface name":"Webdings","Dingbat dec":"241","Dingbat hex":"F1","Unicode dec":"128746","Unicode hex":"1F6EA"},{"Typeface name":"Webdings","Dingbat dec":"242","Dingbat hex":"F2","Unicode dec":"128063","Unicode hex":"1F43F"},{"Typeface name":"Webdings","Dingbat dec":"243","Dingbat hex":"F3","Unicode dec":"128038","Unicode hex":"1F426"},{"Typeface name":"Webdings","Dingbat dec":"244","Dingbat hex":"F4","Unicode dec":"128031","Unicode hex":"1F41F"},{"Typeface name":"Webdings","Dingbat dec":"245","Dingbat hex":"F5","Unicode dec":"128021","Unicode hex":"1F415"},{"Typeface name":"Webdings","Dingbat dec":"246","Dingbat hex":"F6","Unicode dec":"128008","Unicode hex":"1F408"},{"Typeface name":"Webdings","Dingbat dec":"247","Dingbat hex":"F7","Unicode dec":"128620","Unicode hex":"1F66C"},{"Typeface name":"Webdings","Dingbat dec":"248","Dingbat hex":"F8","Unicode dec":"128622","Unicode hex":"1F66E"},{"Typeface name":"Webdings","Dingbat dec":"249","Dingbat hex":"F9","Unicode dec":"128621","Unicode hex":"1F66D"},{"Typeface name":"Webdings","Dingbat dec":"250","Dingbat hex":"FA","Unicode dec":"128623","Unicode hex":"1F66F"},{"Typeface name":"Webdings","Dingbat dec":"251","Dingbat hex":"FB","Unicode dec":"128506","Unicode hex":"1F5FA"},{"Typeface name":"Webdings","Dingbat dec":"252","Dingbat hex":"FC","Unicode dec":"127757","Unicode hex":"1F30D"},{"Typeface name":"Webdings","Dingbat dec":"253","Dingbat hex":"FD","Unicode dec":"127759","Unicode hex":"1F30F"},{"Typeface name":"Webdings","Dingbat dec":"254","Dingbat hex":"FE","Unicode dec":"127758","Unicode hex":"1F30E"},{"Typeface name":"Webdings","Dingbat dec":"255","Dingbat hex":"FF","Unicode dec":"128330","Unicode hex":"1F54A"},{"Typeface name":"Wingdings","Dingbat dec":"32","Dingbat hex":"20","Unicode dec":"32","Unicode hex":"20"},{"Typeface name":"Wingdings","Dingbat dec":"33","Dingbat hex":"21","Unicode dec":"128393","Unicode hex":"1F589"},{"Typeface name":"Wingdings","Dingbat dec":"34","Dingbat hex":"22","Unicode dec":"9986","Unicode hex":"2702"},{"Typeface name":"Wingdings","Dingbat dec":"35","Dingbat hex":"23","Unicode dec":"9985","Unicode hex":"2701"},{"Typeface name":"Wingdings","Dingbat dec":"36","Dingbat hex":"24","Unicode dec":"128083","Unicode hex":"1F453"},{"Typeface name":"Wingdings","Dingbat dec":"37","Dingbat hex":"25","Unicode dec":"128365","Unicode hex":"1F56D"},{"Typeface name":"Wingdings","Dingbat dec":"38","Dingbat hex":"26","Unicode dec":"128366","Unicode hex":"1F56E"},{"Typeface name":"Wingdings","Dingbat dec":"39","Dingbat hex":"27","Unicode dec":"128367","Unicode hex":"1F56F"},{"Typeface name":"Wingdings","Dingbat dec":"40","Dingbat hex":"28","Unicode dec":"128383","Unicode hex":"1F57F"},{"Typeface name":"Wingdings","Dingbat dec":"41","Dingbat hex":"29","Unicode dec":"9990","Unicode hex":"2706"},{"Typeface name":"Wingdings","Dingbat dec":"42","Dingbat hex":"2A","Unicode dec":"128386","Unicode hex":"1F582"},{"Typeface name":"Wingdings","Dingbat dec":"43","Dingbat hex":"2B","Unicode dec":"128387","Unicode hex":"1F583"},{"Typeface name":"Wingdings","Dingbat dec":"44","Dingbat hex":"2C","Unicode dec":"128234","Unicode hex":"1F4EA"},{"Typeface name":"Wingdings","Dingbat dec":"45","Dingbat hex":"2D","Unicode dec":"128235","Unicode hex":"1F4EB"},{"Typeface name":"Wingdings","Dingbat dec":"46","Dingbat hex":"2E","Unicode dec":"128236","Unicode hex":"1F4EC"},{"Typeface name":"Wingdings","Dingbat dec":"47","Dingbat hex":"2F","Unicode dec":"128237","Unicode hex":"1F4ED"},{"Typeface name":"Wingdings","Dingbat dec":"48","Dingbat hex":"30","Unicode dec":"128448","Unicode hex":"1F5C0"},{"Typeface name":"Wingdings","Dingbat dec":"49","Dingbat hex":"31","Unicode dec":"128449","Unicode hex":"1F5C1"},{"Typeface name":"Wingdings","Dingbat dec":"50","Dingbat hex":"32","Unicode dec":"128462","Unicode hex":"1F5CE"},{"Typeface name":"Wingdings","Dingbat dec":"51","Dingbat hex":"33","Unicode dec":"128463","Unicode hex":"1F5CF"},{"Typeface name":"Wingdings","Dingbat dec":"52","Dingbat hex":"34","Unicode dec":"128464","Unicode hex":"1F5D0"},{"Typeface name":"Wingdings","Dingbat dec":"53","Dingbat hex":"35","Unicode dec":"128452","Unicode hex":"1F5C4"},{"Typeface name":"Wingdings","Dingbat dec":"54","Dingbat hex":"36","Unicode dec":"8987","Unicode hex":"231B"},{"Typeface name":"Wingdings","Dingbat dec":"55","Dingbat hex":"37","Unicode dec":"128430","Unicode hex":"1F5AE"},{"Typeface name":"Wingdings","Dingbat dec":"56","Dingbat hex":"38","Unicode dec":"128432","Unicode hex":"1F5B0"},{"Typeface name":"Wingdings","Dingbat dec":"57","Dingbat hex":"39","Unicode dec":"128434","Unicode hex":"1F5B2"},{"Typeface name":"Wingdings","Dingbat dec":"58","Dingbat hex":"3A","Unicode dec":"128435","Unicode hex":"1F5B3"},{"Typeface name":"Wingdings","Dingbat dec":"59","Dingbat hex":"3B","Unicode dec":"128436","Unicode hex":"1F5B4"},{"Typeface name":"Wingdings","Dingbat dec":"60","Dingbat hex":"3C","Unicode dec":"128427","Unicode hex":"1F5AB"},{"Typeface name":"Wingdings","Dingbat dec":"61","Dingbat hex":"3D","Unicode dec":"128428","Unicode hex":"1F5AC"},{"Typeface name":"Wingdings","Dingbat dec":"62","Dingbat hex":"3E","Unicode dec":"9991","Unicode hex":"2707"},{"Typeface name":"Wingdings","Dingbat dec":"63","Dingbat hex":"3F","Unicode dec":"9997","Unicode hex":"270D"},{"Typeface name":"Wingdings","Dingbat dec":"64","Dingbat hex":"40","Unicode dec":"128398","Unicode hex":"1F58E"},{"Typeface name":"Wingdings","Dingbat dec":"65","Dingbat hex":"41","Unicode dec":"9996","Unicode hex":"270C"},{"Typeface name":"Wingdings","Dingbat dec":"66","Dingbat hex":"42","Unicode dec":"128399","Unicode hex":"1F58F"},{"Typeface name":"Wingdings","Dingbat dec":"67","Dingbat hex":"43","Unicode dec":"128077","Unicode hex":"1F44D"},{"Typeface name":"Wingdings","Dingbat dec":"68","Dingbat hex":"44","Unicode dec":"128078","Unicode hex":"1F44E"},{"Typeface name":"Wingdings","Dingbat dec":"69","Dingbat hex":"45","Unicode dec":"9756","Unicode hex":"261C"},{"Typeface name":"Wingdings","Dingbat dec":"70","Dingbat hex":"46","Unicode dec":"9758","Unicode hex":"261E"},{"Typeface name":"Wingdings","Dingbat dec":"71","Dingbat hex":"47","Unicode dec":"9757","Unicode hex":"261D"},{"Typeface name":"Wingdings","Dingbat dec":"72","Dingbat hex":"48","Unicode dec":"9759","Unicode hex":"261F"},{"Typeface name":"Wingdings","Dingbat dec":"73","Dingbat hex":"49","Unicode dec":"128400","Unicode hex":"1F590"},{"Typeface name":"Wingdings","Dingbat dec":"74","Dingbat hex":"4A","Unicode dec":"9786","Unicode hex":"263A"},{"Typeface name":"Wingdings","Dingbat dec":"75","Dingbat hex":"4B","Unicode dec":"128528","Unicode hex":"1F610"},{"Typeface name":"Wingdings","Dingbat dec":"76","Dingbat hex":"4C","Unicode dec":"9785","Unicode hex":"2639"},{"Typeface name":"Wingdings","Dingbat dec":"77","Dingbat hex":"4D","Unicode dec":"128163","Unicode hex":"1F4A3"},{"Typeface name":"Wingdings","Dingbat dec":"78","Dingbat hex":"4E","Unicode dec":"128369","Unicode hex":"1F571"},{"Typeface name":"Wingdings","Dingbat dec":"79","Dingbat hex":"4F","Unicode dec":"127987","Unicode hex":"1F3F3"},{"Typeface name":"Wingdings","Dingbat dec":"80","Dingbat hex":"50","Unicode dec":"127985","Unicode hex":"1F3F1"},{"Typeface name":"Wingdings","Dingbat dec":"81","Dingbat hex":"51","Unicode dec":"9992","Unicode hex":"2708"},{"Typeface name":"Wingdings","Dingbat dec":"82","Dingbat hex":"52","Unicode dec":"9788","Unicode hex":"263C"},{"Typeface name":"Wingdings","Dingbat dec":"83","Dingbat hex":"53","Unicode dec":"127778","Unicode hex":"1F322"},{"Typeface name":"Wingdings","Dingbat dec":"84","Dingbat hex":"54","Unicode dec":"10052","Unicode hex":"2744"},{"Typeface name":"Wingdings","Dingbat dec":"85","Dingbat hex":"55","Unicode dec":"128326","Unicode hex":"1F546"},{"Typeface name":"Wingdings","Dingbat dec":"86","Dingbat hex":"56","Unicode dec":"10014","Unicode hex":"271E"},{"Typeface name":"Wingdings","Dingbat dec":"87","Dingbat hex":"57","Unicode dec":"128328","Unicode hex":"1F548"},{"Typeface name":"Wingdings","Dingbat dec":"88","Dingbat hex":"58","Unicode dec":"10016","Unicode hex":"2720"},{"Typeface name":"Wingdings","Dingbat dec":"89","Dingbat hex":"59","Unicode dec":"10017","Unicode hex":"2721"},{"Typeface name":"Wingdings","Dingbat dec":"90","Dingbat hex":"5A","Unicode dec":"9770","Unicode hex":"262A"},{"Typeface name":"Wingdings","Dingbat dec":"91","Dingbat hex":"5B","Unicode dec":"9775","Unicode hex":"262F"},{"Typeface name":"Wingdings","Dingbat dec":"92","Dingbat hex":"5C","Unicode dec":"128329","Unicode hex":"1F549"},{"Typeface name":"Wingdings","Dingbat dec":"93","Dingbat hex":"5D","Unicode dec":"9784","Unicode hex":"2638"},{"Typeface name":"Wingdings","Dingbat dec":"94","Dingbat hex":"5E","Unicode dec":"9800","Unicode hex":"2648"},{"Typeface name":"Wingdings","Dingbat dec":"95","Dingbat hex":"5F","Unicode dec":"9801","Unicode hex":"2649"},{"Typeface name":"Wingdings","Dingbat dec":"96","Dingbat hex":"60","Unicode dec":"9802","Unicode hex":"264A"},{"Typeface name":"Wingdings","Dingbat dec":"97","Dingbat hex":"61","Unicode dec":"9803","Unicode hex":"264B"},{"Typeface name":"Wingdings","Dingbat dec":"98","Dingbat hex":"62","Unicode dec":"9804","Unicode hex":"264C"},{"Typeface name":"Wingdings","Dingbat dec":"99","Dingbat hex":"63","Unicode dec":"9805","Unicode hex":"264D"},{"Typeface name":"Wingdings","Dingbat dec":"100","Dingbat hex":"64","Unicode dec":"9806","Unicode hex":"264E"},{"Typeface name":"Wingdings","Dingbat dec":"101","Dingbat hex":"65","Unicode dec":"9807","Unicode hex":"264F"},{"Typeface name":"Wingdings","Dingbat dec":"102","Dingbat hex":"66","Unicode dec":"9808","Unicode hex":"2650"},{"Typeface name":"Wingdings","Dingbat dec":"103","Dingbat hex":"67","Unicode dec":"9809","Unicode hex":"2651"},{"Typeface name":"Wingdings","Dingbat dec":"104","Dingbat hex":"68","Unicode dec":"9810","Unicode hex":"2652"},{"Typeface name":"Wingdings","Dingbat dec":"105","Dingbat hex":"69","Unicode dec":"9811","Unicode hex":"2653"},{"Typeface name":"Wingdings","Dingbat dec":"106","Dingbat hex":"6A","Unicode dec":"128624","Unicode hex":"1F670"},{"Typeface name":"Wingdings","Dingbat dec":"107","Dingbat hex":"6B","Unicode dec":"128629","Unicode hex":"1F675"},{"Typeface name":"Wingdings","Dingbat dec":"108","Dingbat hex":"6C","Unicode dec":"9899","Unicode hex":"26AB"},{"Typeface name":"Wingdings","Dingbat dec":"109","Dingbat hex":"6D","Unicode dec":"128318","Unicode hex":"1F53E"},{"Typeface name":"Wingdings","Dingbat dec":"110","Dingbat hex":"6E","Unicode dec":"9724","Unicode hex":"25FC"},{"Typeface name":"Wingdings","Dingbat dec":"111","Dingbat hex":"6F","Unicode dec":"128911","Unicode hex":"1F78F"},{"Typeface name":"Wingdings","Dingbat dec":"112","Dingbat hex":"70","Unicode dec":"128912","Unicode hex":"1F790"},{"Typeface name":"Wingdings","Dingbat dec":"113","Dingbat hex":"71","Unicode dec":"10065","Unicode hex":"2751"},{"Typeface name":"Wingdings","Dingbat dec":"114","Dingbat hex":"72","Unicode dec":"10066","Unicode hex":"2752"},{"Typeface name":"Wingdings","Dingbat dec":"115","Dingbat hex":"73","Unicode dec":"128927","Unicode hex":"1F79F"},{"Typeface name":"Wingdings","Dingbat dec":"116","Dingbat hex":"74","Unicode dec":"10731","Unicode hex":"29EB"},{"Typeface name":"Wingdings","Dingbat dec":"117","Dingbat hex":"75","Unicode dec":"9670","Unicode hex":"25C6"},{"Typeface name":"Wingdings","Dingbat dec":"118","Dingbat hex":"76","Unicode dec":"10070","Unicode hex":"2756"},{"Typeface name":"Wingdings","Dingbat dec":"119","Dingbat hex":"77","Unicode dec":"11049","Unicode hex":"2B29"},{"Typeface name":"Wingdings","Dingbat dec":"120","Dingbat hex":"78","Unicode dec":"8999","Unicode hex":"2327"},{"Typeface name":"Wingdings","Dingbat dec":"121","Dingbat hex":"79","Unicode dec":"11193","Unicode hex":"2BB9"},{"Typeface name":"Wingdings","Dingbat dec":"122","Dingbat hex":"7A","Unicode dec":"8984","Unicode hex":"2318"},{"Typeface name":"Wingdings","Dingbat dec":"123","Dingbat hex":"7B","Unicode dec":"127989","Unicode hex":"1F3F5"},{"Typeface name":"Wingdings","Dingbat dec":"124","Dingbat hex":"7C","Unicode dec":"127990","Unicode hex":"1F3F6"},{"Typeface name":"Wingdings","Dingbat dec":"125","Dingbat hex":"7D","Unicode dec":"128630","Unicode hex":"1F676"},{"Typeface name":"Wingdings","Dingbat dec":"126","Dingbat hex":"7E","Unicode dec":"128631","Unicode hex":"1F677"},{"Typeface name":"Wingdings","Dingbat dec":"127","Dingbat hex":"7F","Unicode dec":"9647","Unicode hex":"25AF"},{"Typeface name":"Wingdings","Dingbat dec":"128","Dingbat hex":"80","Unicode dec":"127243","Unicode hex":"1F10B"},{"Typeface name":"Wingdings","Dingbat dec":"129","Dingbat hex":"81","Unicode dec":"10112","Unicode hex":"2780"},{"Typeface name":"Wingdings","Dingbat dec":"130","Dingbat hex":"82","Unicode dec":"10113","Unicode hex":"2781"},{"Typeface name":"Wingdings","Dingbat dec":"131","Dingbat hex":"83","Unicode dec":"10114","Unicode hex":"2782"},{"Typeface name":"Wingdings","Dingbat dec":"132","Dingbat hex":"84","Unicode dec":"10115","Unicode hex":"2783"},{"Typeface name":"Wingdings","Dingbat dec":"133","Dingbat hex":"85","Unicode dec":"10116","Unicode hex":"2784"},{"Typeface name":"Wingdings","Dingbat dec":"134","Dingbat hex":"86","Unicode dec":"10117","Unicode hex":"2785"},{"Typeface name":"Wingdings","Dingbat dec":"135","Dingbat hex":"87","Unicode dec":"10118","Unicode hex":"2786"},{"Typeface name":"Wingdings","Dingbat dec":"136","Dingbat hex":"88","Unicode dec":"10119","Unicode hex":"2787"},{"Typeface name":"Wingdings","Dingbat dec":"137","Dingbat hex":"89","Unicode dec":"10120","Unicode hex":"2788"},{"Typeface name":"Wingdings","Dingbat dec":"138","Dingbat hex":"8A","Unicode dec":"10121","Unicode hex":"2789"},{"Typeface name":"Wingdings","Dingbat dec":"139","Dingbat hex":"8B","Unicode dec":"127244","Unicode hex":"1F10C"},{"Typeface name":"Wingdings","Dingbat dec":"140","Dingbat hex":"8C","Unicode dec":"10122","Unicode hex":"278A"},{"Typeface name":"Wingdings","Dingbat dec":"141","Dingbat hex":"8D","Unicode dec":"10123","Unicode hex":"278B"},{"Typeface name":"Wingdings","Dingbat dec":"142","Dingbat hex":"8E","Unicode dec":"10124","Unicode hex":"278C"},{"Typeface name":"Wingdings", +"Dingbat dec":"143","Dingbat hex":"8F","Unicode dec":"10125","Unicode hex":"278D"},{"Typeface name":"Wingdings","Dingbat dec":"144","Dingbat hex":"90","Unicode dec":"10126","Unicode hex":"278E"},{"Typeface name":"Wingdings","Dingbat dec":"145","Dingbat hex":"91","Unicode dec":"10127","Unicode hex":"278F"},{"Typeface name":"Wingdings","Dingbat dec":"146","Dingbat hex":"92","Unicode dec":"10128","Unicode hex":"2790"},{"Typeface name":"Wingdings","Dingbat dec":"147","Dingbat hex":"93","Unicode dec":"10129","Unicode hex":"2791"},{"Typeface name":"Wingdings","Dingbat dec":"148","Dingbat hex":"94","Unicode dec":"10130","Unicode hex":"2792"},{"Typeface name":"Wingdings","Dingbat dec":"149","Dingbat hex":"95","Unicode dec":"10131","Unicode hex":"2793"},{"Typeface name":"Wingdings","Dingbat dec":"150","Dingbat hex":"96","Unicode dec":"128610","Unicode hex":"1F662"},{"Typeface name":"Wingdings","Dingbat dec":"151","Dingbat hex":"97","Unicode dec":"128608","Unicode hex":"1F660"},{"Typeface name":"Wingdings","Dingbat dec":"152","Dingbat hex":"98","Unicode dec":"128609","Unicode hex":"1F661"},{"Typeface name":"Wingdings","Dingbat dec":"153","Dingbat hex":"99","Unicode dec":"128611","Unicode hex":"1F663"},{"Typeface name":"Wingdings","Dingbat dec":"154","Dingbat hex":"9A","Unicode dec":"128606","Unicode hex":"1F65E"},{"Typeface name":"Wingdings","Dingbat dec":"155","Dingbat hex":"9B","Unicode dec":"128604","Unicode hex":"1F65C"},{"Typeface name":"Wingdings","Dingbat dec":"156","Dingbat hex":"9C","Unicode dec":"128605","Unicode hex":"1F65D"},{"Typeface name":"Wingdings","Dingbat dec":"157","Dingbat hex":"9D","Unicode dec":"128607","Unicode hex":"1F65F"},{"Typeface name":"Wingdings","Dingbat dec":"158","Dingbat hex":"9E","Unicode dec":"8729","Unicode hex":"2219"},{"Typeface name":"Wingdings","Dingbat dec":"159","Dingbat hex":"9F","Unicode dec":"8226","Unicode hex":"2022"},{"Typeface name":"Wingdings","Dingbat dec":"160","Dingbat hex":"A0","Unicode dec":"11037","Unicode hex":"2B1D"},{"Typeface name":"Wingdings","Dingbat dec":"161","Dingbat hex":"A1","Unicode dec":"11096","Unicode hex":"2B58"},{"Typeface name":"Wingdings","Dingbat dec":"162","Dingbat hex":"A2","Unicode dec":"128902","Unicode hex":"1F786"},{"Typeface name":"Wingdings","Dingbat dec":"163","Dingbat hex":"A3","Unicode dec":"128904","Unicode hex":"1F788"},{"Typeface name":"Wingdings","Dingbat dec":"164","Dingbat hex":"A4","Unicode dec":"128906","Unicode hex":"1F78A"},{"Typeface name":"Wingdings","Dingbat dec":"165","Dingbat hex":"A5","Unicode dec":"128907","Unicode hex":"1F78B"},{"Typeface name":"Wingdings","Dingbat dec":"166","Dingbat hex":"A6","Unicode dec":"128319","Unicode hex":"1F53F"},{"Typeface name":"Wingdings","Dingbat dec":"167","Dingbat hex":"A7","Unicode dec":"9642","Unicode hex":"25AA"},{"Typeface name":"Wingdings","Dingbat dec":"168","Dingbat hex":"A8","Unicode dec":"128910","Unicode hex":"1F78E"},{"Typeface name":"Wingdings","Dingbat dec":"169","Dingbat hex":"A9","Unicode dec":"128961","Unicode hex":"1F7C1"},{"Typeface name":"Wingdings","Dingbat dec":"170","Dingbat hex":"AA","Unicode dec":"128965","Unicode hex":"1F7C5"},{"Typeface name":"Wingdings","Dingbat dec":"171","Dingbat hex":"AB","Unicode dec":"9733","Unicode hex":"2605"},{"Typeface name":"Wingdings","Dingbat dec":"172","Dingbat hex":"AC","Unicode dec":"128971","Unicode hex":"1F7CB"},{"Typeface name":"Wingdings","Dingbat dec":"173","Dingbat hex":"AD","Unicode dec":"128975","Unicode hex":"1F7CF"},{"Typeface name":"Wingdings","Dingbat dec":"174","Dingbat hex":"AE","Unicode dec":"128979","Unicode hex":"1F7D3"},{"Typeface name":"Wingdings","Dingbat dec":"175","Dingbat hex":"AF","Unicode dec":"128977","Unicode hex":"1F7D1"},{"Typeface name":"Wingdings","Dingbat dec":"176","Dingbat hex":"B0","Unicode dec":"11216","Unicode hex":"2BD0"},{"Typeface name":"Wingdings","Dingbat dec":"177","Dingbat hex":"B1","Unicode dec":"8982","Unicode hex":"2316"},{"Typeface name":"Wingdings","Dingbat dec":"178","Dingbat hex":"B2","Unicode dec":"11214","Unicode hex":"2BCE"},{"Typeface name":"Wingdings","Dingbat dec":"179","Dingbat hex":"B3","Unicode dec":"11215","Unicode hex":"2BCF"},{"Typeface name":"Wingdings","Dingbat dec":"180","Dingbat hex":"B4","Unicode dec":"11217","Unicode hex":"2BD1"},{"Typeface name":"Wingdings","Dingbat dec":"181","Dingbat hex":"B5","Unicode dec":"10026","Unicode hex":"272A"},{"Typeface name":"Wingdings","Dingbat dec":"182","Dingbat hex":"B6","Unicode dec":"10032","Unicode hex":"2730"},{"Typeface name":"Wingdings","Dingbat dec":"183","Dingbat hex":"B7","Unicode dec":"128336","Unicode hex":"1F550"},{"Typeface name":"Wingdings","Dingbat dec":"184","Dingbat hex":"B8","Unicode dec":"128337","Unicode hex":"1F551"},{"Typeface name":"Wingdings","Dingbat dec":"185","Dingbat hex":"B9","Unicode dec":"128338","Unicode hex":"1F552"},{"Typeface name":"Wingdings","Dingbat dec":"186","Dingbat hex":"BA","Unicode dec":"128339","Unicode hex":"1F553"},{"Typeface name":"Wingdings","Dingbat dec":"187","Dingbat hex":"BB","Unicode dec":"128340","Unicode hex":"1F554"},{"Typeface name":"Wingdings","Dingbat dec":"188","Dingbat hex":"BC","Unicode dec":"128341","Unicode hex":"1F555"},{"Typeface name":"Wingdings","Dingbat dec":"189","Dingbat hex":"BD","Unicode dec":"128342","Unicode hex":"1F556"},{"Typeface name":"Wingdings","Dingbat dec":"190","Dingbat hex":"BE","Unicode dec":"128343","Unicode hex":"1F557"},{"Typeface name":"Wingdings","Dingbat dec":"191","Dingbat hex":"BF","Unicode dec":"128344","Unicode hex":"1F558"},{"Typeface name":"Wingdings","Dingbat dec":"192","Dingbat hex":"C0","Unicode dec":"128345","Unicode hex":"1F559"},{"Typeface name":"Wingdings","Dingbat dec":"193","Dingbat hex":"C1","Unicode dec":"128346","Unicode hex":"1F55A"},{"Typeface name":"Wingdings","Dingbat dec":"194","Dingbat hex":"C2","Unicode dec":"128347","Unicode hex":"1F55B"},{"Typeface name":"Wingdings","Dingbat dec":"195","Dingbat hex":"C3","Unicode dec":"11184","Unicode hex":"2BB0"},{"Typeface name":"Wingdings","Dingbat dec":"196","Dingbat hex":"C4","Unicode dec":"11185","Unicode hex":"2BB1"},{"Typeface name":"Wingdings","Dingbat dec":"197","Dingbat hex":"C5","Unicode dec":"11186","Unicode hex":"2BB2"},{"Typeface name":"Wingdings","Dingbat dec":"198","Dingbat hex":"C6","Unicode dec":"11187","Unicode hex":"2BB3"},{"Typeface name":"Wingdings","Dingbat dec":"199","Dingbat hex":"C7","Unicode dec":"11188","Unicode hex":"2BB4"},{"Typeface name":"Wingdings","Dingbat dec":"200","Dingbat hex":"C8","Unicode dec":"11189","Unicode hex":"2BB5"},{"Typeface name":"Wingdings","Dingbat dec":"201","Dingbat hex":"C9","Unicode dec":"11190","Unicode hex":"2BB6"},{"Typeface name":"Wingdings","Dingbat dec":"202","Dingbat hex":"CA","Unicode dec":"11191","Unicode hex":"2BB7"},{"Typeface name":"Wingdings","Dingbat dec":"203","Dingbat hex":"CB","Unicode dec":"128618","Unicode hex":"1F66A"},{"Typeface name":"Wingdings","Dingbat dec":"204","Dingbat hex":"CC","Unicode dec":"128619","Unicode hex":"1F66B"},{"Typeface name":"Wingdings","Dingbat dec":"205","Dingbat hex":"CD","Unicode dec":"128597","Unicode hex":"1F655"},{"Typeface name":"Wingdings","Dingbat dec":"206","Dingbat hex":"CE","Unicode dec":"128596","Unicode hex":"1F654"},{"Typeface name":"Wingdings","Dingbat dec":"207","Dingbat hex":"CF","Unicode dec":"128599","Unicode hex":"1F657"},{"Typeface name":"Wingdings","Dingbat dec":"208","Dingbat hex":"D0","Unicode dec":"128598","Unicode hex":"1F656"},{"Typeface name":"Wingdings","Dingbat dec":"209","Dingbat hex":"D1","Unicode dec":"128592","Unicode hex":"1F650"},{"Typeface name":"Wingdings","Dingbat dec":"210","Dingbat hex":"D2","Unicode dec":"128593","Unicode hex":"1F651"},{"Typeface name":"Wingdings","Dingbat dec":"211","Dingbat hex":"D3","Unicode dec":"128594","Unicode hex":"1F652"},{"Typeface name":"Wingdings","Dingbat dec":"212","Dingbat hex":"D4","Unicode dec":"128595","Unicode hex":"1F653"},{"Typeface name":"Wingdings","Dingbat dec":"213","Dingbat hex":"D5","Unicode dec":"9003","Unicode hex":"232B"},{"Typeface name":"Wingdings","Dingbat dec":"214","Dingbat hex":"D6","Unicode dec":"8998","Unicode hex":"2326"},{"Typeface name":"Wingdings","Dingbat dec":"215","Dingbat hex":"D7","Unicode dec":"11160","Unicode hex":"2B98"},{"Typeface name":"Wingdings","Dingbat dec":"216","Dingbat hex":"D8","Unicode dec":"11162","Unicode hex":"2B9A"},{"Typeface name":"Wingdings","Dingbat dec":"217","Dingbat hex":"D9","Unicode dec":"11161","Unicode hex":"2B99"},{"Typeface name":"Wingdings","Dingbat dec":"218","Dingbat hex":"DA","Unicode dec":"11163","Unicode hex":"2B9B"},{"Typeface name":"Wingdings","Dingbat dec":"219","Dingbat hex":"DB","Unicode dec":"11144","Unicode hex":"2B88"},{"Typeface name":"Wingdings","Dingbat dec":"220","Dingbat hex":"DC","Unicode dec":"11146","Unicode hex":"2B8A"},{"Typeface name":"Wingdings","Dingbat dec":"221","Dingbat hex":"DD","Unicode dec":"11145","Unicode hex":"2B89"},{"Typeface name":"Wingdings","Dingbat dec":"222","Dingbat hex":"DE","Unicode dec":"11147","Unicode hex":"2B8B"},{"Typeface name":"Wingdings","Dingbat dec":"223","Dingbat hex":"DF","Unicode dec":"129128","Unicode hex":"1F868"},{"Typeface name":"Wingdings","Dingbat dec":"224","Dingbat hex":"E0","Unicode dec":"129130","Unicode hex":"1F86A"},{"Typeface name":"Wingdings","Dingbat dec":"225","Dingbat hex":"E1","Unicode dec":"129129","Unicode hex":"1F869"},{"Typeface name":"Wingdings","Dingbat dec":"226","Dingbat hex":"E2","Unicode dec":"129131","Unicode hex":"1F86B"},{"Typeface name":"Wingdings","Dingbat dec":"227","Dingbat hex":"E3","Unicode dec":"129132","Unicode hex":"1F86C"},{"Typeface name":"Wingdings","Dingbat dec":"228","Dingbat hex":"E4","Unicode dec":"129133","Unicode hex":"1F86D"},{"Typeface name":"Wingdings","Dingbat dec":"229","Dingbat hex":"E5","Unicode dec":"129135","Unicode hex":"1F86F"},{"Typeface name":"Wingdings","Dingbat dec":"230","Dingbat hex":"E6","Unicode dec":"129134","Unicode hex":"1F86E"},{"Typeface name":"Wingdings","Dingbat dec":"231","Dingbat hex":"E7","Unicode dec":"129144","Unicode hex":"1F878"},{"Typeface name":"Wingdings","Dingbat dec":"232","Dingbat hex":"E8","Unicode dec":"129146","Unicode hex":"1F87A"},{"Typeface name":"Wingdings","Dingbat dec":"233","Dingbat hex":"E9","Unicode dec":"129145","Unicode hex":"1F879"},{"Typeface name":"Wingdings","Dingbat dec":"234","Dingbat hex":"EA","Unicode dec":"129147","Unicode hex":"1F87B"},{"Typeface name":"Wingdings","Dingbat dec":"235","Dingbat hex":"EB","Unicode dec":"129148","Unicode hex":"1F87C"},{"Typeface name":"Wingdings","Dingbat dec":"236","Dingbat hex":"EC","Unicode dec":"129149","Unicode hex":"1F87D"},{"Typeface name":"Wingdings","Dingbat dec":"237","Dingbat hex":"ED","Unicode dec":"129151","Unicode hex":"1F87F"},{"Typeface name":"Wingdings","Dingbat dec":"238","Dingbat hex":"EE","Unicode dec":"129150","Unicode hex":"1F87E"},{"Typeface name":"Wingdings","Dingbat dec":"239","Dingbat hex":"EF","Unicode dec":"8678","Unicode hex":"21E6"},{"Typeface name":"Wingdings","Dingbat dec":"240","Dingbat hex":"F0","Unicode dec":"8680","Unicode hex":"21E8"},{"Typeface name":"Wingdings","Dingbat dec":"241","Dingbat hex":"F1","Unicode dec":"8679","Unicode hex":"21E7"},{"Typeface name":"Wingdings","Dingbat dec":"242","Dingbat hex":"F2","Unicode dec":"8681","Unicode hex":"21E9"},{"Typeface name":"Wingdings","Dingbat dec":"243","Dingbat hex":"F3","Unicode dec":"11012","Unicode hex":"2B04"},{"Typeface name":"Wingdings","Dingbat dec":"244","Dingbat hex":"F4","Unicode dec":"8691","Unicode hex":"21F3"},{"Typeface name":"Wingdings","Dingbat dec":"245","Dingbat hex":"F5","Unicode dec":"11009","Unicode hex":"2B01"},{"Typeface name":"Wingdings","Dingbat dec":"246","Dingbat hex":"F6","Unicode dec":"11008","Unicode hex":"2B00"},{"Typeface name":"Wingdings","Dingbat dec":"247","Dingbat hex":"F7","Unicode dec":"11011","Unicode hex":"2B03"},{"Typeface name":"Wingdings","Dingbat dec":"248","Dingbat hex":"F8","Unicode dec":"11010","Unicode hex":"2B02"},{"Typeface name":"Wingdings","Dingbat dec":"249","Dingbat hex":"F9","Unicode dec":"129196","Unicode hex":"1F8AC"},{"Typeface name":"Wingdings","Dingbat dec":"250","Dingbat hex":"FA","Unicode dec":"129197","Unicode hex":"1F8AD"},{"Typeface name":"Wingdings","Dingbat dec":"251","Dingbat hex":"FB","Unicode dec":"128502","Unicode hex":"1F5F6"},{"Typeface name":"Wingdings","Dingbat dec":"252","Dingbat hex":"FC","Unicode dec":"10003","Unicode hex":"2713"},{"Typeface name":"Wingdings","Dingbat dec":"253","Dingbat hex":"FD","Unicode dec":"128503","Unicode hex":"1F5F7"},{"Typeface name":"Wingdings","Dingbat dec":"254","Dingbat hex":"FE","Unicode dec":"128505","Unicode hex":"1F5F9"},{"Typeface name":"Wingdings 2","Dingbat dec":"32","Dingbat hex":"20","Unicode dec":"32","Unicode hex":"20"},{"Typeface name":"Wingdings 2","Dingbat dec":"33","Dingbat hex":"21","Unicode dec":"128394","Unicode hex":"1F58A"},{"Typeface name":"Wingdings 2","Dingbat dec":"34","Dingbat hex":"22","Unicode dec":"128395","Unicode hex":"1F58B"},{"Typeface name":"Wingdings 2","Dingbat dec":"35","Dingbat hex":"23","Unicode dec":"128396","Unicode hex":"1F58C"},{"Typeface name":"Wingdings 2","Dingbat dec":"36","Dingbat hex":"24","Unicode dec":"128397","Unicode hex":"1F58D"},{"Typeface name":"Wingdings 2","Dingbat dec":"37","Dingbat hex":"25","Unicode dec":"9988","Unicode hex":"2704"},{"Typeface name":"Wingdings 2","Dingbat dec":"38","Dingbat hex":"26","Unicode dec":"9984","Unicode hex":"2700"},{"Typeface name":"Wingdings 2","Dingbat dec":"39","Dingbat hex":"27","Unicode dec":"128382","Unicode hex":"1F57E"},{"Typeface name":"Wingdings 2","Dingbat dec":"40","Dingbat hex":"28","Unicode dec":"128381","Unicode hex":"1F57D"},{"Typeface name":"Wingdings 2","Dingbat dec":"41","Dingbat hex":"29","Unicode dec":"128453","Unicode hex":"1F5C5"},{"Typeface name":"Wingdings 2","Dingbat dec":"42","Dingbat hex":"2A","Unicode dec":"128454","Unicode hex":"1F5C6"},{"Typeface name":"Wingdings 2","Dingbat dec":"43","Dingbat hex":"2B","Unicode dec":"128455","Unicode hex":"1F5C7"},{"Typeface name":"Wingdings 2","Dingbat dec":"44","Dingbat hex":"2C","Unicode dec":"128456","Unicode hex":"1F5C8"},{"Typeface name":"Wingdings 2","Dingbat dec":"45","Dingbat hex":"2D","Unicode dec":"128457","Unicode hex":"1F5C9"},{"Typeface name":"Wingdings 2","Dingbat dec":"46","Dingbat hex":"2E","Unicode dec":"128458","Unicode hex":"1F5CA"},{"Typeface name":"Wingdings 2","Dingbat dec":"47","Dingbat hex":"2F","Unicode dec":"128459","Unicode hex":"1F5CB"},{"Typeface name":"Wingdings 2","Dingbat dec":"48","Dingbat hex":"30","Unicode dec":"128460","Unicode hex":"1F5CC"},{"Typeface name":"Wingdings 2","Dingbat dec":"49","Dingbat hex":"31","Unicode dec":"128461","Unicode hex":"1F5CD"},{"Typeface name":"Wingdings 2","Dingbat dec":"50","Dingbat hex":"32","Unicode dec":"128203","Unicode hex":"1F4CB"},{"Typeface name":"Wingdings 2","Dingbat dec":"51","Dingbat hex":"33","Unicode dec":"128465","Unicode hex":"1F5D1"},{"Typeface name":"Wingdings 2","Dingbat dec":"52","Dingbat hex":"34","Unicode dec":"128468","Unicode hex":"1F5D4"},{"Typeface name":"Wingdings 2","Dingbat dec":"53","Dingbat hex":"35","Unicode dec":"128437","Unicode hex":"1F5B5"},{"Typeface name":"Wingdings 2","Dingbat dec":"54","Dingbat hex":"36","Unicode dec":"128438","Unicode hex":"1F5B6"},{"Typeface name":"Wingdings 2","Dingbat dec":"55","Dingbat hex":"37","Unicode dec":"128439","Unicode hex":"1F5B7"},{"Typeface name":"Wingdings 2","Dingbat dec":"56","Dingbat hex":"38","Unicode dec":"128440","Unicode hex":"1F5B8"},{"Typeface name":"Wingdings 2","Dingbat dec":"57","Dingbat hex":"39","Unicode dec":"128429","Unicode hex":"1F5AD"},{"Typeface name":"Wingdings 2","Dingbat dec":"58","Dingbat hex":"3A","Unicode dec":"128431","Unicode hex":"1F5AF"},{"Typeface name":"Wingdings 2","Dingbat dec":"59","Dingbat hex":"3B","Unicode dec":"128433","Unicode hex":"1F5B1"},{"Typeface name":"Wingdings 2","Dingbat dec":"60","Dingbat hex":"3C","Unicode dec":"128402","Unicode hex":"1F592"},{"Typeface name":"Wingdings 2","Dingbat dec":"61","Dingbat hex":"3D","Unicode dec":"128403","Unicode hex":"1F593"},{"Typeface name":"Wingdings 2","Dingbat dec":"62","Dingbat hex":"3E","Unicode dec":"128408","Unicode hex":"1F598"},{"Typeface name":"Wingdings 2","Dingbat dec":"63","Dingbat hex":"3F","Unicode dec":"128409","Unicode hex":"1F599"},{"Typeface name":"Wingdings 2","Dingbat dec":"64","Dingbat hex":"40","Unicode dec":"128410","Unicode hex":"1F59A"},{"Typeface name":"Wingdings 2","Dingbat dec":"65","Dingbat hex":"41","Unicode dec":"128411","Unicode hex":"1F59B"},{"Typeface name":"Wingdings 2","Dingbat dec":"66","Dingbat hex":"42","Unicode dec":"128072","Unicode hex":"1F448"},{"Typeface name":"Wingdings 2","Dingbat dec":"67","Dingbat hex":"43","Unicode dec":"128073","Unicode hex":"1F449"},{"Typeface name":"Wingdings 2","Dingbat dec":"68","Dingbat hex":"44","Unicode dec":"128412","Unicode hex":"1F59C"},{"Typeface name":"Wingdings 2","Dingbat dec":"69","Dingbat hex":"45","Unicode dec":"128413","Unicode hex":"1F59D"},{"Typeface name":"Wingdings 2","Dingbat dec":"70","Dingbat hex":"46","Unicode dec":"128414","Unicode hex":"1F59E"},{"Typeface name":"Wingdings 2","Dingbat dec":"71","Dingbat hex":"47","Unicode dec":"128415","Unicode hex":"1F59F"},{"Typeface name":"Wingdings 2","Dingbat dec":"72","Dingbat hex":"48","Unicode dec":"128416","Unicode hex":"1F5A0"},{"Typeface name":"Wingdings 2","Dingbat dec":"73","Dingbat hex":"49","Unicode dec":"128417","Unicode hex":"1F5A1"},{"Typeface name":"Wingdings 2","Dingbat dec":"74","Dingbat hex":"4A","Unicode dec":"128070","Unicode hex":"1F446"},{"Typeface name":"Wingdings 2","Dingbat dec":"75","Dingbat hex":"4B","Unicode dec":"128071","Unicode hex":"1F447"},{"Typeface name":"Wingdings 2","Dingbat dec":"76","Dingbat hex":"4C","Unicode dec":"128418","Unicode hex":"1F5A2"},{"Typeface name":"Wingdings 2","Dingbat dec":"77","Dingbat hex":"4D","Unicode dec":"128419","Unicode hex":"1F5A3"},{"Typeface name":"Wingdings 2","Dingbat dec":"78","Dingbat hex":"4E","Unicode dec":"128401","Unicode hex":"1F591"},{"Typeface name":"Wingdings 2","Dingbat dec":"79","Dingbat hex":"4F","Unicode dec":"128500","Unicode hex":"1F5F4"},{"Typeface name":"Wingdings 2","Dingbat dec":"80","Dingbat hex":"50","Unicode dec":"128504","Unicode hex":"1F5F8"},{"Typeface name":"Wingdings 2","Dingbat dec":"81","Dingbat hex":"51","Unicode dec":"128501","Unicode hex":"1F5F5"},{"Typeface name":"Wingdings 2","Dingbat dec":"82","Dingbat hex":"52","Unicode dec":"9745","Unicode hex":"2611"},{"Typeface name":"Wingdings 2","Dingbat dec":"83","Dingbat hex":"53","Unicode dec":"11197","Unicode hex":"2BBD"},{"Typeface name":"Wingdings 2","Dingbat dec":"84","Dingbat hex":"54","Unicode dec":"9746","Unicode hex":"2612"},{"Typeface name":"Wingdings 2","Dingbat dec":"85","Dingbat hex":"55","Unicode dec":"11198","Unicode hex":"2BBE"},{"Typeface name":"Wingdings 2","Dingbat dec":"86","Dingbat hex":"56","Unicode dec":"11199","Unicode hex":"2BBF"},{"Typeface name":"Wingdings 2","Dingbat dec":"87","Dingbat hex":"57","Unicode dec":"128711","Unicode hex":"1F6C7"},{"Typeface name":"Wingdings 2","Dingbat dec":"88","Dingbat hex":"58","Unicode dec":"10680","Unicode hex":"29B8"},{"Typeface name":"Wingdings 2","Dingbat dec":"89","Dingbat hex":"59","Unicode dec":"128625","Unicode hex":"1F671"},{"Typeface name":"Wingdings 2","Dingbat dec":"90","Dingbat hex":"5A","Unicode dec":"128628","Unicode hex":"1F674"},{"Typeface name":"Wingdings 2","Dingbat dec":"91","Dingbat hex":"5B","Unicode dec":"128626","Unicode hex":"1F672"},{"Typeface name":"Wingdings 2","Dingbat dec":"92","Dingbat hex":"5C","Unicode dec":"128627","Unicode hex":"1F673"},{"Typeface name":"Wingdings 2","Dingbat dec":"93","Dingbat hex":"5D","Unicode dec":"8253","Unicode hex":"203D"},{"Typeface name":"Wingdings 2","Dingbat dec":"94","Dingbat hex":"5E","Unicode dec":"128633","Unicode hex":"1F679"},{"Typeface name":"Wingdings 2","Dingbat dec":"95","Dingbat hex":"5F","Unicode dec":"128634","Unicode hex":"1F67A"},{"Typeface name":"Wingdings 2","Dingbat dec":"96","Dingbat hex":"60","Unicode dec":"128635","Unicode hex":"1F67B"},{"Typeface name":"Wingdings 2","Dingbat dec":"97","Dingbat hex":"61","Unicode dec":"128614","Unicode hex":"1F666"},{"Typeface name":"Wingdings 2","Dingbat dec":"98","Dingbat hex":"62","Unicode dec":"128612","Unicode hex":"1F664"},{"Typeface name":"Wingdings 2","Dingbat dec":"99","Dingbat hex":"63","Unicode dec":"128613","Unicode hex":"1F665"},{"Typeface name":"Wingdings 2","Dingbat dec":"100","Dingbat hex":"64","Unicode dec":"128615","Unicode hex":"1F667"},{"Typeface name":"Wingdings 2","Dingbat dec":"101","Dingbat hex":"65","Unicode dec":"128602","Unicode hex":"1F65A"},{"Typeface name":"Wingdings 2","Dingbat dec":"102","Dingbat hex":"66","Unicode dec":"128600","Unicode hex":"1F658"},{"Typeface name":"Wingdings 2","Dingbat dec":"103","Dingbat hex":"67","Unicode dec":"128601","Unicode hex":"1F659"},{"Typeface name":"Wingdings 2","Dingbat dec":"104","Dingbat hex":"68","Unicode dec":"128603","Unicode hex":"1F65B"},{"Typeface name":"Wingdings 2","Dingbat dec":"105","Dingbat hex":"69","Unicode dec":"9450","Unicode hex":"24EA"},{"Typeface name":"Wingdings 2","Dingbat dec":"106","Dingbat hex":"6A","Unicode dec":"9312","Unicode hex":"2460"},{"Typeface name":"Wingdings 2","Dingbat dec":"107","Dingbat hex":"6B","Unicode dec":"9313","Unicode hex":"2461"},{"Typeface name":"Wingdings 2","Dingbat dec":"108","Dingbat hex":"6C","Unicode dec":"9314","Unicode hex":"2462"},{"Typeface name":"Wingdings 2","Dingbat dec":"109","Dingbat hex":"6D","Unicode dec":"9315","Unicode hex":"2463"},{"Typeface name":"Wingdings 2","Dingbat dec":"110","Dingbat hex":"6E","Unicode dec":"9316","Unicode hex":"2464"},{"Typeface name":"Wingdings 2","Dingbat dec":"111","Dingbat hex":"6F","Unicode dec":"9317","Unicode hex":"2465"},{"Typeface name":"Wingdings 2","Dingbat dec":"112","Dingbat hex":"70","Unicode dec":"9318","Unicode hex":"2466"},{"Typeface name":"Wingdings 2","Dingbat dec":"113","Dingbat hex":"71","Unicode dec":"9319","Unicode hex":"2467"},{"Typeface name":"Wingdings 2","Dingbat dec":"114","Dingbat hex":"72","Unicode dec":"9320","Unicode hex":"2468"},{"Typeface name":"Wingdings 2","Dingbat dec":"115","Dingbat hex":"73","Unicode dec":"9321","Unicode hex":"2469"},{"Typeface name":"Wingdings 2","Dingbat dec":"116","Dingbat hex":"74","Unicode dec":"9471","Unicode hex":"24FF"},{"Typeface name":"Wingdings 2","Dingbat dec":"117","Dingbat hex":"75","Unicode dec":"10102","Unicode hex":"2776"},{"Typeface name":"Wingdings 2","Dingbat dec":"118","Dingbat hex":"76","Unicode dec":"10103","Unicode hex":"2777"},{"Typeface name":"Wingdings 2","Dingbat dec":"119","Dingbat hex":"77","Unicode dec":"10104","Unicode hex":"2778"},{"Typeface name":"Wingdings 2","Dingbat dec":"120","Dingbat hex":"78","Unicode dec":"10105","Unicode hex":"2779"},{"Typeface name":"Wingdings 2","Dingbat dec":"121","Dingbat hex":"79","Unicode dec":"10106","Unicode hex":"277A"},{"Typeface name":"Wingdings 2","Dingbat dec":"122","Dingbat hex":"7A","Unicode dec":"10107","Unicode hex":"277B"},{"Typeface name":"Wingdings 2","Dingbat dec":"123","Dingbat hex":"7B","Unicode dec":"10108","Unicode hex":"277C"},{"Typeface name":"Wingdings 2","Dingbat dec":"124","Dingbat hex":"7C","Unicode dec":"10109","Unicode hex":"277D"},{"Typeface name":"Wingdings 2","Dingbat dec":"125","Dingbat hex":"7D","Unicode dec":"10110","Unicode hex":"277E"},{"Typeface name":"Wingdings 2","Dingbat dec":"126","Dingbat hex":"7E","Unicode dec":"10111","Unicode hex":"277F"},{"Typeface name":"Wingdings 2","Dingbat dec":"128","Dingbat hex":"80","Unicode dec":"9737","Unicode hex":"2609"},{"Typeface name":"Wingdings 2","Dingbat dec":"129","Dingbat hex":"81","Unicode dec":"127765","Unicode hex":"1F315"},{"Typeface name":"Wingdings 2","Dingbat dec":"130","Dingbat hex":"82","Unicode dec":"9789","Unicode hex":"263D"},{"Typeface name":"Wingdings 2","Dingbat dec":"131","Dingbat hex":"83","Unicode dec":"9790","Unicode hex":"263E"},{"Typeface name":"Wingdings 2","Dingbat dec":"132","Dingbat hex":"84","Unicode dec":"11839","Unicode hex":"2E3F"},{"Typeface name":"Wingdings 2","Dingbat dec":"133","Dingbat hex":"85","Unicode dec":"10013","Unicode hex":"271D"},{"Typeface name":"Wingdings 2","Dingbat dec":"134","Dingbat hex":"86","Unicode dec":"128327","Unicode hex":"1F547"},{"Typeface name":"Wingdings 2","Dingbat dec":"135","Dingbat hex":"87","Unicode dec":"128348","Unicode hex":"1F55C"},{"Typeface name":"Wingdings 2","Dingbat dec":"136","Dingbat hex":"88","Unicode dec":"128349","Unicode hex":"1F55D"},{"Typeface name":"Wingdings 2","Dingbat dec":"137","Dingbat hex":"89","Unicode dec":"128350","Unicode hex":"1F55E"},{"Typeface name":"Wingdings 2","Dingbat dec":"138","Dingbat hex":"8A","Unicode dec":"128351","Unicode hex":"1F55F"},{"Typeface name":"Wingdings 2","Dingbat dec":"139","Dingbat hex":"8B","Unicode dec":"128352","Unicode hex":"1F560"},{"Typeface name":"Wingdings 2","Dingbat dec":"140","Dingbat hex":"8C","Unicode dec":"128353","Unicode hex":"1F561"},{"Typeface name":"Wingdings 2","Dingbat dec":"141","Dingbat hex":"8D","Unicode dec":"128354","Unicode hex":"1F562"},{"Typeface name":"Wingdings 2","Dingbat dec":"142","Dingbat hex":"8E","Unicode dec":"128355","Unicode hex":"1F563"},{"Typeface name":"Wingdings 2","Dingbat dec":"143","Dingbat hex":"8F","Unicode dec":"128356","Unicode hex":"1F564"},{"Typeface name":"Wingdings 2","Dingbat dec":"144","Dingbat hex":"90","Unicode dec":"128357","Unicode hex":"1F565"},{"Typeface name":"Wingdings 2","Dingbat dec":"145","Dingbat hex":"91","Unicode dec":"128358","Unicode hex":"1F566"},{"Typeface name":"Wingdings 2","Dingbat dec":"146","Dingbat hex":"92","Unicode dec":"128359","Unicode hex":"1F567"},{"Typeface name":"Wingdings 2","Dingbat dec":"147","Dingbat hex":"93","Unicode dec":"128616","Unicode hex":"1F668"},{"Typeface name":"Wingdings 2","Dingbat dec":"148","Dingbat hex":"94","Unicode dec":"128617","Unicode hex":"1F669"},{"Typeface name":"Wingdings 2","Dingbat dec":"149","Dingbat hex":"95","Unicode dec":"8901","Unicode hex":"22C5"},{"Typeface name":"Wingdings 2","Dingbat dec":"150","Dingbat hex":"96","Unicode dec":"128900","Unicode hex":"1F784"},{"Typeface name":"Wingdings 2","Dingbat dec":"151","Dingbat hex":"97","Unicode dec":"10625","Unicode hex":"2981"},{"Typeface name":"Wingdings 2","Dingbat dec":"152","Dingbat hex":"98","Unicode dec":"9679","Unicode hex":"25CF"},{"Typeface name":"Wingdings 2","Dingbat dec":"153","Dingbat hex":"99","Unicode dec":"9675","Unicode hex":"25CB"},{"Typeface name":"Wingdings 2","Dingbat dec":"154","Dingbat hex":"9A","Unicode dec":"128901","Unicode hex":"1F785"},{"Typeface name":"Wingdings 2","Dingbat dec":"155","Dingbat hex":"9B","Unicode dec":"128903","Unicode hex":"1F787"},{"Typeface name":"Wingdings 2","Dingbat dec":"156","Dingbat hex":"9C","Unicode dec":"128905","Unicode hex":"1F789"},{"Typeface name":"Wingdings 2","Dingbat dec":"157","Dingbat hex":"9D","Unicode dec":"8857","Unicode hex":"2299"},{"Typeface name":"Wingdings 2","Dingbat dec":"158","Dingbat hex":"9E","Unicode dec":"10687","Unicode hex":"29BF"},{"Typeface name":"Wingdings 2","Dingbat dec":"159","Dingbat hex":"9F","Unicode dec":"128908","Unicode hex":"1F78C"},{"Typeface name":"Wingdings 2","Dingbat dec":"160","Dingbat hex":"A0","Unicode dec":"128909","Unicode hex":"1F78D"},{"Typeface name":"Wingdings 2","Dingbat dec":"161","Dingbat hex":"A1","Unicode dec":"9726","Unicode hex":"25FE"},{"Typeface name":"Wingdings 2","Dingbat dec":"162","Dingbat hex":"A2","Unicode dec":"9632","Unicode hex":"25A0"},{"Typeface name":"Wingdings 2","Dingbat dec":"163","Dingbat hex":"A3","Unicode dec":"9633","Unicode hex":"25A1"},{"Typeface name":"Wingdings 2","Dingbat dec":"164","Dingbat hex":"A4","Unicode dec":"128913","Unicode hex":"1F791"},{"Typeface name":"Wingdings 2","Dingbat dec":"165","Dingbat hex":"A5","Unicode dec":"128914","Unicode hex":"1F792"},{"Typeface name":"Wingdings 2","Dingbat dec":"166","Dingbat hex":"A6","Unicode dec":"128915","Unicode hex":"1F793"},{"Typeface name":"Wingdings 2","Dingbat dec":"167","Dingbat hex":"A7","Unicode dec":"128916","Unicode hex":"1F794"},{"Typeface name":"Wingdings 2","Dingbat dec":"168","Dingbat hex":"A8","Unicode dec":"9635","Unicode hex":"25A3"},{"Typeface name":"Wingdings 2","Dingbat dec":"169","Dingbat hex":"A9","Unicode dec":"128917","Unicode hex":"1F795"},{"Typeface name":"Wingdings 2","Dingbat dec":"170","Dingbat hex":"AA","Unicode dec":"128918","Unicode hex":"1F796"},{"Typeface name":"Wingdings 2","Dingbat dec":"171","Dingbat hex":"AB","Unicode dec":"128919","Unicode hex":"1F797"},{"Typeface name":"Wingdings 2","Dingbat dec":"172","Dingbat hex":"AC","Unicode dec":"128920","Unicode hex":"1F798"},{"Typeface name":"Wingdings 2","Dingbat dec":"173","Dingbat hex":"AD","Unicode dec":"11049","Unicode hex":"2B29"},{"Typeface name":"Wingdings 2","Dingbat dec":"174","Dingbat hex":"AE","Unicode dec":"11045","Unicode hex":"2B25"},{"Typeface name":"Wingdings 2","Dingbat dec":"175","Dingbat hex":"AF","Unicode dec":"9671","Unicode hex":"25C7"},{"Typeface name":"Wingdings 2","Dingbat dec":"176","Dingbat hex":"B0","Unicode dec":"128922","Unicode hex":"1F79A"},{"Typeface name":"Wingdings 2","Dingbat dec":"177","Dingbat hex":"B1","Unicode dec":"9672","Unicode hex":"25C8"},{"Typeface name":"Wingdings 2","Dingbat dec":"178","Dingbat hex":"B2","Unicode dec":"128923","Unicode hex":"1F79B"},{"Typeface name":"Wingdings 2","Dingbat dec":"179","Dingbat hex":"B3","Unicode dec":"128924","Unicode hex":"1F79C"},{"Typeface name":"Wingdings 2","Dingbat dec":"180","Dingbat hex":"B4","Unicode dec":"128925","Unicode hex":"1F79D"},{"Typeface name":"Wingdings 2","Dingbat dec":"181","Dingbat hex":"B5","Unicode dec":"128926","Unicode hex":"1F79E"},{"Typeface name":"Wingdings 2","Dingbat dec":"182","Dingbat hex":"B6","Unicode dec":"11050","Unicode hex":"2B2A"},{"Typeface name":"Wingdings 2","Dingbat dec":"183","Dingbat hex":"B7","Unicode dec":"11047","Unicode hex":"2B27"},{"Typeface name":"Wingdings 2","Dingbat dec":"184","Dingbat hex":"B8","Unicode dec":"9674","Unicode hex":"25CA"},{"Typeface name":"Wingdings 2","Dingbat dec":"185","Dingbat hex":"B9","Unicode dec":"128928","Unicode hex":"1F7A0"},{"Typeface name":"Wingdings 2","Dingbat dec":"186","Dingbat hex":"BA","Unicode dec":"9686","Unicode hex":"25D6"},{"Typeface name":"Wingdings 2","Dingbat dec":"187","Dingbat hex":"BB","Unicode dec":"9687","Unicode hex":"25D7"},{"Typeface name":"Wingdings 2","Dingbat dec":"188","Dingbat hex":"BC","Unicode dec":"11210","Unicode hex":"2BCA"},{"Typeface name":"Wingdings 2","Dingbat dec":"189","Dingbat hex":"BD","Unicode dec":"11211","Unicode hex":"2BCB"},{"Typeface name":"Wingdings 2","Dingbat dec":"190","Dingbat hex":"BE","Unicode dec":"11200","Unicode hex":"2BC0"},{"Typeface name":"Wingdings 2","Dingbat dec":"191","Dingbat hex":"BF","Unicode dec":"11201","Unicode hex":"2BC1"},{"Typeface name":"Wingdings 2","Dingbat dec":"192","Dingbat hex":"C0","Unicode dec":"11039","Unicode hex":"2B1F"},{"Typeface name":"Wingdings 2","Dingbat dec":"193","Dingbat hex":"C1","Unicode dec":"11202","Unicode hex":"2BC2"},{"Typeface name":"Wingdings 2","Dingbat dec":"194","Dingbat hex":"C2","Unicode dec":"11043","Unicode hex":"2B23"},{"Typeface name":"Wingdings 2","Dingbat dec":"195","Dingbat hex":"C3","Unicode dec":"11042","Unicode hex":"2B22"},{"Typeface name":"Wingdings 2","Dingbat dec":"196","Dingbat hex":"C4","Unicode dec":"11203","Unicode hex":"2BC3"},{"Typeface name":"Wingdings 2","Dingbat dec":"197","Dingbat hex":"C5","Unicode dec":"11204","Unicode hex":"2BC4"},{"Typeface name":"Wingdings 2","Dingbat dec":"198","Dingbat hex":"C6","Unicode dec":"128929","Unicode hex":"1F7A1"},{"Typeface name":"Wingdings 2","Dingbat dec":"199","Dingbat hex":"C7","Unicode dec":"128930","Unicode hex":"1F7A2"},{"Typeface name":"Wingdings 2","Dingbat dec":"200","Dingbat hex":"C8","Unicode dec":"128931","Unicode hex":"1F7A3"},{"Typeface name":"Wingdings 2","Dingbat dec":"201","Dingbat hex":"C9","Unicode dec":"128932","Unicode hex":"1F7A4"},{"Typeface name":"Wingdings 2", +"Dingbat dec":"202","Dingbat hex":"CA","Unicode dec":"128933","Unicode hex":"1F7A5"},{"Typeface name":"Wingdings 2","Dingbat dec":"203","Dingbat hex":"CB","Unicode dec":"128934","Unicode hex":"1F7A6"},{"Typeface name":"Wingdings 2","Dingbat dec":"204","Dingbat hex":"CC","Unicode dec":"128935","Unicode hex":"1F7A7"},{"Typeface name":"Wingdings 2","Dingbat dec":"205","Dingbat hex":"CD","Unicode dec":"128936","Unicode hex":"1F7A8"},{"Typeface name":"Wingdings 2","Dingbat dec":"206","Dingbat hex":"CE","Unicode dec":"128937","Unicode hex":"1F7A9"},{"Typeface name":"Wingdings 2","Dingbat dec":"207","Dingbat hex":"CF","Unicode dec":"128938","Unicode hex":"1F7AA"},{"Typeface name":"Wingdings 2","Dingbat dec":"208","Dingbat hex":"D0","Unicode dec":"128939","Unicode hex":"1F7AB"},{"Typeface name":"Wingdings 2","Dingbat dec":"209","Dingbat hex":"D1","Unicode dec":"128940","Unicode hex":"1F7AC"},{"Typeface name":"Wingdings 2","Dingbat dec":"210","Dingbat hex":"D2","Unicode dec":"128941","Unicode hex":"1F7AD"},{"Typeface name":"Wingdings 2","Dingbat dec":"211","Dingbat hex":"D3","Unicode dec":"128942","Unicode hex":"1F7AE"},{"Typeface name":"Wingdings 2","Dingbat dec":"212","Dingbat hex":"D4","Unicode dec":"128943","Unicode hex":"1F7AF"},{"Typeface name":"Wingdings 2","Dingbat dec":"213","Dingbat hex":"D5","Unicode dec":"128944","Unicode hex":"1F7B0"},{"Typeface name":"Wingdings 2","Dingbat dec":"214","Dingbat hex":"D6","Unicode dec":"128945","Unicode hex":"1F7B1"},{"Typeface name":"Wingdings 2","Dingbat dec":"215","Dingbat hex":"D7","Unicode dec":"128946","Unicode hex":"1F7B2"},{"Typeface name":"Wingdings 2","Dingbat dec":"216","Dingbat hex":"D8","Unicode dec":"128947","Unicode hex":"1F7B3"},{"Typeface name":"Wingdings 2","Dingbat dec":"217","Dingbat hex":"D9","Unicode dec":"128948","Unicode hex":"1F7B4"},{"Typeface name":"Wingdings 2","Dingbat dec":"218","Dingbat hex":"DA","Unicode dec":"128949","Unicode hex":"1F7B5"},{"Typeface name":"Wingdings 2","Dingbat dec":"219","Dingbat hex":"DB","Unicode dec":"128950","Unicode hex":"1F7B6"},{"Typeface name":"Wingdings 2","Dingbat dec":"220","Dingbat hex":"DC","Unicode dec":"128951","Unicode hex":"1F7B7"},{"Typeface name":"Wingdings 2","Dingbat dec":"221","Dingbat hex":"DD","Unicode dec":"128952","Unicode hex":"1F7B8"},{"Typeface name":"Wingdings 2","Dingbat dec":"222","Dingbat hex":"DE","Unicode dec":"128953","Unicode hex":"1F7B9"},{"Typeface name":"Wingdings 2","Dingbat dec":"223","Dingbat hex":"DF","Unicode dec":"128954","Unicode hex":"1F7BA"},{"Typeface name":"Wingdings 2","Dingbat dec":"224","Dingbat hex":"E0","Unicode dec":"128955","Unicode hex":"1F7BB"},{"Typeface name":"Wingdings 2","Dingbat dec":"225","Dingbat hex":"E1","Unicode dec":"128956","Unicode hex":"1F7BC"},{"Typeface name":"Wingdings 2","Dingbat dec":"226","Dingbat hex":"E2","Unicode dec":"128957","Unicode hex":"1F7BD"},{"Typeface name":"Wingdings 2","Dingbat dec":"227","Dingbat hex":"E3","Unicode dec":"128958","Unicode hex":"1F7BE"},{"Typeface name":"Wingdings 2","Dingbat dec":"228","Dingbat hex":"E4","Unicode dec":"128959","Unicode hex":"1F7BF"},{"Typeface name":"Wingdings 2","Dingbat dec":"229","Dingbat hex":"E5","Unicode dec":"128960","Unicode hex":"1F7C0"},{"Typeface name":"Wingdings 2","Dingbat dec":"230","Dingbat hex":"E6","Unicode dec":"128962","Unicode hex":"1F7C2"},{"Typeface name":"Wingdings 2","Dingbat dec":"231","Dingbat hex":"E7","Unicode dec":"128964","Unicode hex":"1F7C4"},{"Typeface name":"Wingdings 2","Dingbat dec":"232","Dingbat hex":"E8","Unicode dec":"128966","Unicode hex":"1F7C6"},{"Typeface name":"Wingdings 2","Dingbat dec":"233","Dingbat hex":"E9","Unicode dec":"128969","Unicode hex":"1F7C9"},{"Typeface name":"Wingdings 2","Dingbat dec":"234","Dingbat hex":"EA","Unicode dec":"128970","Unicode hex":"1F7CA"},{"Typeface name":"Wingdings 2","Dingbat dec":"235","Dingbat hex":"EB","Unicode dec":"10038","Unicode hex":"2736"},{"Typeface name":"Wingdings 2","Dingbat dec":"236","Dingbat hex":"EC","Unicode dec":"128972","Unicode hex":"1F7CC"},{"Typeface name":"Wingdings 2","Dingbat dec":"237","Dingbat hex":"ED","Unicode dec":"128974","Unicode hex":"1F7CE"},{"Typeface name":"Wingdings 2","Dingbat dec":"238","Dingbat hex":"EE","Unicode dec":"128976","Unicode hex":"1F7D0"},{"Typeface name":"Wingdings 2","Dingbat dec":"239","Dingbat hex":"EF","Unicode dec":"128978","Unicode hex":"1F7D2"},{"Typeface name":"Wingdings 2","Dingbat dec":"240","Dingbat hex":"F0","Unicode dec":"10041","Unicode hex":"2739"},{"Typeface name":"Wingdings 2","Dingbat dec":"241","Dingbat hex":"F1","Unicode dec":"128963","Unicode hex":"1F7C3"},{"Typeface name":"Wingdings 2","Dingbat dec":"242","Dingbat hex":"F2","Unicode dec":"128967","Unicode hex":"1F7C7"},{"Typeface name":"Wingdings 2","Dingbat dec":"243","Dingbat hex":"F3","Unicode dec":"10031","Unicode hex":"272F"},{"Typeface name":"Wingdings 2","Dingbat dec":"244","Dingbat hex":"F4","Unicode dec":"128973","Unicode hex":"1F7CD"},{"Typeface name":"Wingdings 2","Dingbat dec":"245","Dingbat hex":"F5","Unicode dec":"128980","Unicode hex":"1F7D4"},{"Typeface name":"Wingdings 2","Dingbat dec":"246","Dingbat hex":"F6","Unicode dec":"11212","Unicode hex":"2BCC"},{"Typeface name":"Wingdings 2","Dingbat dec":"247","Dingbat hex":"F7","Unicode dec":"11213","Unicode hex":"2BCD"},{"Typeface name":"Wingdings 2","Dingbat dec":"248","Dingbat hex":"F8","Unicode dec":"8251","Unicode hex":"203B"},{"Typeface name":"Wingdings 2","Dingbat dec":"249","Dingbat hex":"F9","Unicode dec":"8258","Unicode hex":"2042"},{"Typeface name":"Wingdings 3","Dingbat dec":"32","Dingbat hex":"20","Unicode dec":"32","Unicode hex":"20"},{"Typeface name":"Wingdings 3","Dingbat dec":"33","Dingbat hex":"21","Unicode dec":"11104","Unicode hex":"2B60"},{"Typeface name":"Wingdings 3","Dingbat dec":"34","Dingbat hex":"22","Unicode dec":"11106","Unicode hex":"2B62"},{"Typeface name":"Wingdings 3","Dingbat dec":"35","Dingbat hex":"23","Unicode dec":"11105","Unicode hex":"2B61"},{"Typeface name":"Wingdings 3","Dingbat dec":"36","Dingbat hex":"24","Unicode dec":"11107","Unicode hex":"2B63"},{"Typeface name":"Wingdings 3","Dingbat dec":"37","Dingbat hex":"25","Unicode dec":"11110","Unicode hex":"2B66"},{"Typeface name":"Wingdings 3","Dingbat dec":"38","Dingbat hex":"26","Unicode dec":"11111","Unicode hex":"2B67"},{"Typeface name":"Wingdings 3","Dingbat dec":"39","Dingbat hex":"27","Unicode dec":"11113","Unicode hex":"2B69"},{"Typeface name":"Wingdings 3","Dingbat dec":"40","Dingbat hex":"28","Unicode dec":"11112","Unicode hex":"2B68"},{"Typeface name":"Wingdings 3","Dingbat dec":"41","Dingbat hex":"29","Unicode dec":"11120","Unicode hex":"2B70"},{"Typeface name":"Wingdings 3","Dingbat dec":"42","Dingbat hex":"2A","Unicode dec":"11122","Unicode hex":"2B72"},{"Typeface name":"Wingdings 3","Dingbat dec":"43","Dingbat hex":"2B","Unicode dec":"11121","Unicode hex":"2B71"},{"Typeface name":"Wingdings 3","Dingbat dec":"44","Dingbat hex":"2C","Unicode dec":"11123","Unicode hex":"2B73"},{"Typeface name":"Wingdings 3","Dingbat dec":"45","Dingbat hex":"2D","Unicode dec":"11126","Unicode hex":"2B76"},{"Typeface name":"Wingdings 3","Dingbat dec":"46","Dingbat hex":"2E","Unicode dec":"11128","Unicode hex":"2B78"},{"Typeface name":"Wingdings 3","Dingbat dec":"47","Dingbat hex":"2F","Unicode dec":"11131","Unicode hex":"2B7B"},{"Typeface name":"Wingdings 3","Dingbat dec":"48","Dingbat hex":"30","Unicode dec":"11133","Unicode hex":"2B7D"},{"Typeface name":"Wingdings 3","Dingbat dec":"49","Dingbat hex":"31","Unicode dec":"11108","Unicode hex":"2B64"},{"Typeface name":"Wingdings 3","Dingbat dec":"50","Dingbat hex":"32","Unicode dec":"11109","Unicode hex":"2B65"},{"Typeface name":"Wingdings 3","Dingbat dec":"51","Dingbat hex":"33","Unicode dec":"11114","Unicode hex":"2B6A"},{"Typeface name":"Wingdings 3","Dingbat dec":"52","Dingbat hex":"34","Unicode dec":"11116","Unicode hex":"2B6C"},{"Typeface name":"Wingdings 3","Dingbat dec":"53","Dingbat hex":"35","Unicode dec":"11115","Unicode hex":"2B6B"},{"Typeface name":"Wingdings 3","Dingbat dec":"54","Dingbat hex":"36","Unicode dec":"11117","Unicode hex":"2B6D"},{"Typeface name":"Wingdings 3","Dingbat dec":"55","Dingbat hex":"37","Unicode dec":"11085","Unicode hex":"2B4D"},{"Typeface name":"Wingdings 3","Dingbat dec":"56","Dingbat hex":"38","Unicode dec":"11168","Unicode hex":"2BA0"},{"Typeface name":"Wingdings 3","Dingbat dec":"57","Dingbat hex":"39","Unicode dec":"11169","Unicode hex":"2BA1"},{"Typeface name":"Wingdings 3","Dingbat dec":"58","Dingbat hex":"3A","Unicode dec":"11170","Unicode hex":"2BA2"},{"Typeface name":"Wingdings 3","Dingbat dec":"59","Dingbat hex":"3B","Unicode dec":"11171","Unicode hex":"2BA3"},{"Typeface name":"Wingdings 3","Dingbat dec":"60","Dingbat hex":"3C","Unicode dec":"11172","Unicode hex":"2BA4"},{"Typeface name":"Wingdings 3","Dingbat dec":"61","Dingbat hex":"3D","Unicode dec":"11173","Unicode hex":"2BA5"},{"Typeface name":"Wingdings 3","Dingbat dec":"62","Dingbat hex":"3E","Unicode dec":"11174","Unicode hex":"2BA6"},{"Typeface name":"Wingdings 3","Dingbat dec":"63","Dingbat hex":"3F","Unicode dec":"11175","Unicode hex":"2BA7"},{"Typeface name":"Wingdings 3","Dingbat dec":"64","Dingbat hex":"40","Unicode dec":"11152","Unicode hex":"2B90"},{"Typeface name":"Wingdings 3","Dingbat dec":"65","Dingbat hex":"41","Unicode dec":"11153","Unicode hex":"2B91"},{"Typeface name":"Wingdings 3","Dingbat dec":"66","Dingbat hex":"42","Unicode dec":"11154","Unicode hex":"2B92"},{"Typeface name":"Wingdings 3","Dingbat dec":"67","Dingbat hex":"43","Unicode dec":"11155","Unicode hex":"2B93"},{"Typeface name":"Wingdings 3","Dingbat dec":"68","Dingbat hex":"44","Unicode dec":"11136","Unicode hex":"2B80"},{"Typeface name":"Wingdings 3","Dingbat dec":"69","Dingbat hex":"45","Unicode dec":"11139","Unicode hex":"2B83"},{"Typeface name":"Wingdings 3","Dingbat dec":"70","Dingbat hex":"46","Unicode dec":"11134","Unicode hex":"2B7E"},{"Typeface name":"Wingdings 3","Dingbat dec":"71","Dingbat hex":"47","Unicode dec":"11135","Unicode hex":"2B7F"},{"Typeface name":"Wingdings 3","Dingbat dec":"72","Dingbat hex":"48","Unicode dec":"11140","Unicode hex":"2B84"},{"Typeface name":"Wingdings 3","Dingbat dec":"73","Dingbat hex":"49","Unicode dec":"11142","Unicode hex":"2B86"},{"Typeface name":"Wingdings 3","Dingbat dec":"74","Dingbat hex":"4A","Unicode dec":"11141","Unicode hex":"2B85"},{"Typeface name":"Wingdings 3","Dingbat dec":"75","Dingbat hex":"4B","Unicode dec":"11143","Unicode hex":"2B87"},{"Typeface name":"Wingdings 3","Dingbat dec":"76","Dingbat hex":"4C","Unicode dec":"11151","Unicode hex":"2B8F"},{"Typeface name":"Wingdings 3","Dingbat dec":"77","Dingbat hex":"4D","Unicode dec":"11149","Unicode hex":"2B8D"},{"Typeface name":"Wingdings 3","Dingbat dec":"78","Dingbat hex":"4E","Unicode dec":"11150","Unicode hex":"2B8E"},{"Typeface name":"Wingdings 3","Dingbat dec":"79","Dingbat hex":"4F","Unicode dec":"11148","Unicode hex":"2B8C"},{"Typeface name":"Wingdings 3","Dingbat dec":"80","Dingbat hex":"50","Unicode dec":"11118","Unicode hex":"2B6E"},{"Typeface name":"Wingdings 3","Dingbat dec":"81","Dingbat hex":"51","Unicode dec":"11119","Unicode hex":"2B6F"},{"Typeface name":"Wingdings 3","Dingbat dec":"82","Dingbat hex":"52","Unicode dec":"9099","Unicode hex":"238B"},{"Typeface name":"Wingdings 3","Dingbat dec":"83","Dingbat hex":"53","Unicode dec":"8996","Unicode hex":"2324"},{"Typeface name":"Wingdings 3","Dingbat dec":"84","Dingbat hex":"54","Unicode dec":"8963","Unicode hex":"2303"},{"Typeface name":"Wingdings 3","Dingbat dec":"85","Dingbat hex":"55","Unicode dec":"8997","Unicode hex":"2325"},{"Typeface name":"Wingdings 3","Dingbat dec":"86","Dingbat hex":"56","Unicode dec":"9251","Unicode hex":"2423"},{"Typeface name":"Wingdings 3","Dingbat dec":"87","Dingbat hex":"57","Unicode dec":"9085","Unicode hex":"237D"},{"Typeface name":"Wingdings 3","Dingbat dec":"88","Dingbat hex":"58","Unicode dec":"8682","Unicode hex":"21EA"},{"Typeface name":"Wingdings 3","Dingbat dec":"89","Dingbat hex":"59","Unicode dec":"11192","Unicode hex":"2BB8"},{"Typeface name":"Wingdings 3","Dingbat dec":"90","Dingbat hex":"5A","Unicode dec":"129184","Unicode hex":"1F8A0"},{"Typeface name":"Wingdings 3","Dingbat dec":"91","Dingbat hex":"5B","Unicode dec":"129185","Unicode hex":"1F8A1"},{"Typeface name":"Wingdings 3","Dingbat dec":"92","Dingbat hex":"5C","Unicode dec":"129186","Unicode hex":"1F8A2"},{"Typeface name":"Wingdings 3","Dingbat dec":"93","Dingbat hex":"5D","Unicode dec":"129187","Unicode hex":"1F8A3"},{"Typeface name":"Wingdings 3","Dingbat dec":"94","Dingbat hex":"5E","Unicode dec":"129188","Unicode hex":"1F8A4"},{"Typeface name":"Wingdings 3","Dingbat dec":"95","Dingbat hex":"5F","Unicode dec":"129189","Unicode hex":"1F8A5"},{"Typeface name":"Wingdings 3","Dingbat dec":"96","Dingbat hex":"60","Unicode dec":"129190","Unicode hex":"1F8A6"},{"Typeface name":"Wingdings 3","Dingbat dec":"97","Dingbat hex":"61","Unicode dec":"129191","Unicode hex":"1F8A7"},{"Typeface name":"Wingdings 3","Dingbat dec":"98","Dingbat hex":"62","Unicode dec":"129192","Unicode hex":"1F8A8"},{"Typeface name":"Wingdings 3","Dingbat dec":"99","Dingbat hex":"63","Unicode dec":"129193","Unicode hex":"1F8A9"},{"Typeface name":"Wingdings 3","Dingbat dec":"100","Dingbat hex":"64","Unicode dec":"129194","Unicode hex":"1F8AA"},{"Typeface name":"Wingdings 3","Dingbat dec":"101","Dingbat hex":"65","Unicode dec":"129195","Unicode hex":"1F8AB"},{"Typeface name":"Wingdings 3","Dingbat dec":"102","Dingbat hex":"66","Unicode dec":"129104","Unicode hex":"1F850"},{"Typeface name":"Wingdings 3","Dingbat dec":"103","Dingbat hex":"67","Unicode dec":"129106","Unicode hex":"1F852"},{"Typeface name":"Wingdings 3","Dingbat dec":"104","Dingbat hex":"68","Unicode dec":"129105","Unicode hex":"1F851"},{"Typeface name":"Wingdings 3","Dingbat dec":"105","Dingbat hex":"69","Unicode dec":"129107","Unicode hex":"1F853"},{"Typeface name":"Wingdings 3","Dingbat dec":"106","Dingbat hex":"6A","Unicode dec":"129108","Unicode hex":"1F854"},{"Typeface name":"Wingdings 3","Dingbat dec":"107","Dingbat hex":"6B","Unicode dec":"129109","Unicode hex":"1F855"},{"Typeface name":"Wingdings 3","Dingbat dec":"108","Dingbat hex":"6C","Unicode dec":"129111","Unicode hex":"1F857"},{"Typeface name":"Wingdings 3","Dingbat dec":"109","Dingbat hex":"6D","Unicode dec":"129110","Unicode hex":"1F856"},{"Typeface name":"Wingdings 3","Dingbat dec":"110","Dingbat hex":"6E","Unicode dec":"129112","Unicode hex":"1F858"},{"Typeface name":"Wingdings 3","Dingbat dec":"111","Dingbat hex":"6F","Unicode dec":"129113","Unicode hex":"1F859"},{"Typeface name":"Wingdings 3","Dingbat dec":"112","Dingbat hex":"70","Unicode dec":"9650","Unicode hex":"25B2"},{"Typeface name":"Wingdings 3","Dingbat dec":"113","Dingbat hex":"71","Unicode dec":"9660","Unicode hex":"25BC"},{"Typeface name":"Wingdings 3","Dingbat dec":"114","Dingbat hex":"72","Unicode dec":"9651","Unicode hex":"25B3"},{"Typeface name":"Wingdings 3","Dingbat dec":"115","Dingbat hex":"73","Unicode dec":"9661","Unicode hex":"25BD"},{"Typeface name":"Wingdings 3","Dingbat dec":"116","Dingbat hex":"74","Unicode dec":"9664","Unicode hex":"25C0"},{"Typeface name":"Wingdings 3","Dingbat dec":"117","Dingbat hex":"75","Unicode dec":"9654","Unicode hex":"25B6"},{"Typeface name":"Wingdings 3","Dingbat dec":"118","Dingbat hex":"76","Unicode dec":"9665","Unicode hex":"25C1"},{"Typeface name":"Wingdings 3","Dingbat dec":"119","Dingbat hex":"77","Unicode dec":"9655","Unicode hex":"25B7"},{"Typeface name":"Wingdings 3","Dingbat dec":"120","Dingbat hex":"78","Unicode dec":"9699","Unicode hex":"25E3"},{"Typeface name":"Wingdings 3","Dingbat dec":"121","Dingbat hex":"79","Unicode dec":"9698","Unicode hex":"25E2"},{"Typeface name":"Wingdings 3","Dingbat dec":"122","Dingbat hex":"7A","Unicode dec":"9700","Unicode hex":"25E4"},{"Typeface name":"Wingdings 3","Dingbat dec":"123","Dingbat hex":"7B","Unicode dec":"9701","Unicode hex":"25E5"},{"Typeface name":"Wingdings 3","Dingbat dec":"124","Dingbat hex":"7C","Unicode dec":"128896","Unicode hex":"1F780"},{"Typeface name":"Wingdings 3","Dingbat dec":"125","Dingbat hex":"7D","Unicode dec":"128898","Unicode hex":"1F782"},{"Typeface name":"Wingdings 3","Dingbat dec":"126","Dingbat hex":"7E","Unicode dec":"128897","Unicode hex":"1F781"},{"Typeface name":"Wingdings 3","Dingbat dec":"128","Dingbat hex":"80","Unicode dec":"128899","Unicode hex":"1F783"},{"Typeface name":"Wingdings 3","Dingbat dec":"129","Dingbat hex":"81","Unicode dec":"11205","Unicode hex":"2BC5"},{"Typeface name":"Wingdings 3","Dingbat dec":"130","Dingbat hex":"82","Unicode dec":"11206","Unicode hex":"2BC6"},{"Typeface name":"Wingdings 3","Dingbat dec":"131","Dingbat hex":"83","Unicode dec":"11207","Unicode hex":"2BC7"},{"Typeface name":"Wingdings 3","Dingbat dec":"132","Dingbat hex":"84","Unicode dec":"11208","Unicode hex":"2BC8"},{"Typeface name":"Wingdings 3","Dingbat dec":"133","Dingbat hex":"85","Unicode dec":"11164","Unicode hex":"2B9C"},{"Typeface name":"Wingdings 3","Dingbat dec":"134","Dingbat hex":"86","Unicode dec":"11166","Unicode hex":"2B9E"},{"Typeface name":"Wingdings 3","Dingbat dec":"135","Dingbat hex":"87","Unicode dec":"11165","Unicode hex":"2B9D"},{"Typeface name":"Wingdings 3","Dingbat dec":"136","Dingbat hex":"88","Unicode dec":"11167","Unicode hex":"2B9F"},{"Typeface name":"Wingdings 3","Dingbat dec":"137","Dingbat hex":"89","Unicode dec":"129040","Unicode hex":"1F810"},{"Typeface name":"Wingdings 3","Dingbat dec":"138","Dingbat hex":"8A","Unicode dec":"129042","Unicode hex":"1F812"},{"Typeface name":"Wingdings 3","Dingbat dec":"139","Dingbat hex":"8B","Unicode dec":"129041","Unicode hex":"1F811"},{"Typeface name":"Wingdings 3","Dingbat dec":"140","Dingbat hex":"8C","Unicode dec":"129043","Unicode hex":"1F813"},{"Typeface name":"Wingdings 3","Dingbat dec":"141","Dingbat hex":"8D","Unicode dec":"129044","Unicode hex":"1F814"},{"Typeface name":"Wingdings 3","Dingbat dec":"142","Dingbat hex":"8E","Unicode dec":"129046","Unicode hex":"1F816"},{"Typeface name":"Wingdings 3","Dingbat dec":"143","Dingbat hex":"8F","Unicode dec":"129045","Unicode hex":"1F815"},{"Typeface name":"Wingdings 3","Dingbat dec":"144","Dingbat hex":"90","Unicode dec":"129047","Unicode hex":"1F817"},{"Typeface name":"Wingdings 3","Dingbat dec":"145","Dingbat hex":"91","Unicode dec":"129048","Unicode hex":"1F818"},{"Typeface name":"Wingdings 3","Dingbat dec":"146","Dingbat hex":"92","Unicode dec":"129050","Unicode hex":"1F81A"},{"Typeface name":"Wingdings 3","Dingbat dec":"147","Dingbat hex":"93","Unicode dec":"129049","Unicode hex":"1F819"},{"Typeface name":"Wingdings 3","Dingbat dec":"148","Dingbat hex":"94","Unicode dec":"129051","Unicode hex":"1F81B"},{"Typeface name":"Wingdings 3","Dingbat dec":"149","Dingbat hex":"95","Unicode dec":"129052","Unicode hex":"1F81C"},{"Typeface name":"Wingdings 3","Dingbat dec":"150","Dingbat hex":"96","Unicode dec":"129054","Unicode hex":"1F81E"},{"Typeface name":"Wingdings 3","Dingbat dec":"151","Dingbat hex":"97","Unicode dec":"129053","Unicode hex":"1F81D"},{"Typeface name":"Wingdings 3","Dingbat dec":"152","Dingbat hex":"98","Unicode dec":"129055","Unicode hex":"1F81F"},{"Typeface name":"Wingdings 3","Dingbat dec":"153","Dingbat hex":"99","Unicode dec":"129024","Unicode hex":"1F800"},{"Typeface name":"Wingdings 3","Dingbat dec":"154","Dingbat hex":"9A","Unicode dec":"129026","Unicode hex":"1F802"},{"Typeface name":"Wingdings 3","Dingbat dec":"155","Dingbat hex":"9B","Unicode dec":"129025","Unicode hex":"1F801"},{"Typeface name":"Wingdings 3","Dingbat dec":"156","Dingbat hex":"9C","Unicode dec":"129027","Unicode hex":"1F803"},{"Typeface name":"Wingdings 3","Dingbat dec":"157","Dingbat hex":"9D","Unicode dec":"129028","Unicode hex":"1F804"},{"Typeface name":"Wingdings 3","Dingbat dec":"158","Dingbat hex":"9E","Unicode dec":"129030","Unicode hex":"1F806"},{"Typeface name":"Wingdings 3","Dingbat dec":"159","Dingbat hex":"9F","Unicode dec":"129029","Unicode hex":"1F805"},{"Typeface name":"Wingdings 3","Dingbat dec":"160","Dingbat hex":"A0","Unicode dec":"129031","Unicode hex":"1F807"},{"Typeface name":"Wingdings 3","Dingbat dec":"161","Dingbat hex":"A1","Unicode dec":"129032","Unicode hex":"1F808"},{"Typeface name":"Wingdings 3","Dingbat dec":"162","Dingbat hex":"A2","Unicode dec":"129034","Unicode hex":"1F80A"},{"Typeface name":"Wingdings 3","Dingbat dec":"163","Dingbat hex":"A3","Unicode dec":"129033","Unicode hex":"1F809"},{"Typeface name":"Wingdings 3","Dingbat dec":"164","Dingbat hex":"A4","Unicode dec":"129035","Unicode hex":"1F80B"},{"Typeface name":"Wingdings 3","Dingbat dec":"165","Dingbat hex":"A5","Unicode dec":"129056","Unicode hex":"1F820"},{"Typeface name":"Wingdings 3","Dingbat dec":"166","Dingbat hex":"A6","Unicode dec":"129058","Unicode hex":"1F822"},{"Typeface name":"Wingdings 3","Dingbat dec":"167","Dingbat hex":"A7","Unicode dec":"129060","Unicode hex":"1F824"},{"Typeface name":"Wingdings 3","Dingbat dec":"168","Dingbat hex":"A8","Unicode dec":"129062","Unicode hex":"1F826"},{"Typeface name":"Wingdings 3","Dingbat dec":"169","Dingbat hex":"A9","Unicode dec":"129064","Unicode hex":"1F828"},{"Typeface name":"Wingdings 3","Dingbat dec":"170","Dingbat hex":"AA","Unicode dec":"129066","Unicode hex":"1F82A"},{"Typeface name":"Wingdings 3","Dingbat dec":"171","Dingbat hex":"AB","Unicode dec":"129068","Unicode hex":"1F82C"},{"Typeface name":"Wingdings 3","Dingbat dec":"172","Dingbat hex":"AC","Unicode dec":"129180","Unicode hex":"1F89C"},{"Typeface name":"Wingdings 3","Dingbat dec":"173","Dingbat hex":"AD","Unicode dec":"129181","Unicode hex":"1F89D"},{"Typeface name":"Wingdings 3","Dingbat dec":"174","Dingbat hex":"AE","Unicode dec":"129182","Unicode hex":"1F89E"},{"Typeface name":"Wingdings 3","Dingbat dec":"175","Dingbat hex":"AF","Unicode dec":"129183","Unicode hex":"1F89F"},{"Typeface name":"Wingdings 3","Dingbat dec":"176","Dingbat hex":"B0","Unicode dec":"129070","Unicode hex":"1F82E"},{"Typeface name":"Wingdings 3","Dingbat dec":"177","Dingbat hex":"B1","Unicode dec":"129072","Unicode hex":"1F830"},{"Typeface name":"Wingdings 3","Dingbat dec":"178","Dingbat hex":"B2","Unicode dec":"129074","Unicode hex":"1F832"},{"Typeface name":"Wingdings 3","Dingbat dec":"179","Dingbat hex":"B3","Unicode dec":"129076","Unicode hex":"1F834"},{"Typeface name":"Wingdings 3","Dingbat dec":"180","Dingbat hex":"B4","Unicode dec":"129078","Unicode hex":"1F836"},{"Typeface name":"Wingdings 3","Dingbat dec":"181","Dingbat hex":"B5","Unicode dec":"129080","Unicode hex":"1F838"},{"Typeface name":"Wingdings 3","Dingbat dec":"182","Dingbat hex":"B6","Unicode dec":"129082","Unicode hex":"1F83A"},{"Typeface name":"Wingdings 3","Dingbat dec":"183","Dingbat hex":"B7","Unicode dec":"129081","Unicode hex":"1F839"},{"Typeface name":"Wingdings 3","Dingbat dec":"184","Dingbat hex":"B8","Unicode dec":"129083","Unicode hex":"1F83B"},{"Typeface name":"Wingdings 3","Dingbat dec":"185","Dingbat hex":"B9","Unicode dec":"129176","Unicode hex":"1F898"},{"Typeface name":"Wingdings 3","Dingbat dec":"186","Dingbat hex":"BA","Unicode dec":"129178","Unicode hex":"1F89A"},{"Typeface name":"Wingdings 3","Dingbat dec":"187","Dingbat hex":"BB","Unicode dec":"129177","Unicode hex":"1F899"},{"Typeface name":"Wingdings 3","Dingbat dec":"188","Dingbat hex":"BC","Unicode dec":"129179","Unicode hex":"1F89B"},{"Typeface name":"Wingdings 3","Dingbat dec":"189","Dingbat hex":"BD","Unicode dec":"129084","Unicode hex":"1F83C"},{"Typeface name":"Wingdings 3","Dingbat dec":"190","Dingbat hex":"BE","Unicode dec":"129086","Unicode hex":"1F83E"},{"Typeface name":"Wingdings 3","Dingbat dec":"191","Dingbat hex":"BF","Unicode dec":"129085","Unicode hex":"1F83D"},{"Typeface name":"Wingdings 3","Dingbat dec":"192","Dingbat hex":"C0","Unicode dec":"129087","Unicode hex":"1F83F"},{"Typeface name":"Wingdings 3","Dingbat dec":"193","Dingbat hex":"C1","Unicode dec":"129088","Unicode hex":"1F840"},{"Typeface name":"Wingdings 3","Dingbat dec":"194","Dingbat hex":"C2","Unicode dec":"129090","Unicode hex":"1F842"},{"Typeface name":"Wingdings 3","Dingbat dec":"195","Dingbat hex":"C3","Unicode dec":"129089","Unicode hex":"1F841"},{"Typeface name":"Wingdings 3","Dingbat dec":"196","Dingbat hex":"C4","Unicode dec":"129091","Unicode hex":"1F843"},{"Typeface name":"Wingdings 3","Dingbat dec":"197","Dingbat hex":"C5","Unicode dec":"129092","Unicode hex":"1F844"},{"Typeface name":"Wingdings 3","Dingbat dec":"198","Dingbat hex":"C6","Unicode dec":"129094","Unicode hex":"1F846"},{"Typeface name":"Wingdings 3","Dingbat dec":"199","Dingbat hex":"C7","Unicode dec":"129093","Unicode hex":"1F845"},{"Typeface name":"Wingdings 3","Dingbat dec":"200","Dingbat hex":"C8","Unicode dec":"129095","Unicode hex":"1F847"},{"Typeface name":"Wingdings 3","Dingbat dec":"201","Dingbat hex":"C9","Unicode dec":"11176","Unicode hex":"2BA8"},{"Typeface name":"Wingdings 3","Dingbat dec":"202","Dingbat hex":"CA","Unicode dec":"11177","Unicode hex":"2BA9"},{"Typeface name":"Wingdings 3","Dingbat dec":"203","Dingbat hex":"CB","Unicode dec":"11178","Unicode hex":"2BAA"},{"Typeface name":"Wingdings 3","Dingbat dec":"204","Dingbat hex":"CC","Unicode dec":"11179","Unicode hex":"2BAB"},{"Typeface name":"Wingdings 3","Dingbat dec":"205","Dingbat hex":"CD","Unicode dec":"11180","Unicode hex":"2BAC"},{"Typeface name":"Wingdings 3","Dingbat dec":"206","Dingbat hex":"CE","Unicode dec":"11181","Unicode hex":"2BAD"},{"Typeface name":"Wingdings 3","Dingbat dec":"207","Dingbat hex":"CF","Unicode dec":"11182","Unicode hex":"2BAE"},{"Typeface name":"Wingdings 3","Dingbat dec":"208","Dingbat hex":"D0","Unicode dec":"11183","Unicode hex":"2BAF"},{"Typeface name":"Wingdings 3","Dingbat dec":"209","Dingbat hex":"D1","Unicode dec":"129120","Unicode hex":"1F860"},{"Typeface name":"Wingdings 3","Dingbat dec":"210","Dingbat hex":"D2","Unicode dec":"129122","Unicode hex":"1F862"},{"Typeface name":"Wingdings 3","Dingbat dec":"211","Dingbat hex":"D3","Unicode dec":"129121","Unicode hex":"1F861"},{"Typeface name":"Wingdings 3","Dingbat dec":"212","Dingbat hex":"D4","Unicode dec":"129123","Unicode hex":"1F863"},{"Typeface name":"Wingdings 3","Dingbat dec":"213","Dingbat hex":"D5","Unicode dec":"129124","Unicode hex":"1F864"},{"Typeface name":"Wingdings 3","Dingbat dec":"214","Dingbat hex":"D6","Unicode dec":"129125","Unicode hex":"1F865"},{"Typeface name":"Wingdings 3","Dingbat dec":"215","Dingbat hex":"D7","Unicode dec":"129127","Unicode hex":"1F867"},{"Typeface name":"Wingdings 3","Dingbat dec":"216","Dingbat hex":"D8","Unicode dec":"129126","Unicode hex":"1F866"},{"Typeface name":"Wingdings 3","Dingbat dec":"217","Dingbat hex":"D9","Unicode dec":"129136","Unicode hex":"1F870"},{"Typeface name":"Wingdings 3","Dingbat dec":"218","Dingbat hex":"DA","Unicode dec":"129138","Unicode hex":"1F872"},{"Typeface name":"Wingdings 3","Dingbat dec":"219","Dingbat hex":"DB","Unicode dec":"129137","Unicode hex":"1F871"},{"Typeface name":"Wingdings 3","Dingbat dec":"220","Dingbat hex":"DC","Unicode dec":"129139","Unicode hex":"1F873"},{"Typeface name":"Wingdings 3","Dingbat dec":"221","Dingbat hex":"DD","Unicode dec":"129140","Unicode hex":"1F874"},{"Typeface name":"Wingdings 3","Dingbat dec":"222","Dingbat hex":"DE","Unicode dec":"129141","Unicode hex":"1F875"},{"Typeface name":"Wingdings 3","Dingbat dec":"223","Dingbat hex":"DF","Unicode dec":"129143","Unicode hex":"1F877"},{"Typeface name":"Wingdings 3","Dingbat dec":"224","Dingbat hex":"E0","Unicode dec":"129142","Unicode hex":"1F876"},{"Typeface name":"Wingdings 3","Dingbat dec":"225","Dingbat hex":"E1","Unicode dec":"129152","Unicode hex":"1F880"},{"Typeface name":"Wingdings 3","Dingbat dec":"226","Dingbat hex":"E2","Unicode dec":"129154","Unicode hex":"1F882"},{"Typeface name":"Wingdings 3","Dingbat dec":"227","Dingbat hex":"E3","Unicode dec":"129153","Unicode hex":"1F881"},{"Typeface name":"Wingdings 3","Dingbat dec":"228","Dingbat hex":"E4","Unicode dec":"129155","Unicode hex":"1F883"},{"Typeface name":"Wingdings 3","Dingbat dec":"229","Dingbat hex":"E5","Unicode dec":"129156","Unicode hex":"1F884"},{"Typeface name":"Wingdings 3","Dingbat dec":"230","Dingbat hex":"E6","Unicode dec":"129157","Unicode hex":"1F885"},{"Typeface name":"Wingdings 3","Dingbat dec":"231","Dingbat hex":"E7","Unicode dec":"129159","Unicode hex":"1F887"},{"Typeface name":"Wingdings 3","Dingbat dec":"232","Dingbat hex":"E8","Unicode dec":"129158","Unicode hex":"1F886"},{"Typeface name":"Wingdings 3","Dingbat dec":"233","Dingbat hex":"E9","Unicode dec":"129168","Unicode hex":"1F890"},{"Typeface name":"Wingdings 3","Dingbat dec":"234","Dingbat hex":"EA","Unicode dec":"129170","Unicode hex":"1F892"},{"Typeface name":"Wingdings 3","Dingbat dec":"235","Dingbat hex":"EB","Unicode dec":"129169","Unicode hex":"1F891"},{"Typeface name":"Wingdings 3","Dingbat dec":"236","Dingbat hex":"EC","Unicode dec":"129171","Unicode hex":"1F893"},{"Typeface name":"Wingdings 3","Dingbat dec":"237","Dingbat hex":"ED","Unicode dec":"129172","Unicode hex":"1F894"},{"Typeface name":"Wingdings 3","Dingbat dec":"238","Dingbat hex":"EE","Unicode dec":"129174","Unicode hex":"1F896"},{"Typeface name":"Wingdings 3","Dingbat dec":"239","Dingbat hex":"EF","Unicode dec":"129173","Unicode hex":"1F895"},{"Typeface name":"Wingdings 3","Dingbat dec":"240","Dingbat hex":"F0","Unicode dec":"129175","Unicode hex":"1F897"}];exports["default"]=dingbats},{}],85:[function(require,module,exports){"use strict";function codePoint(typeface,codePoint){return dingbatsByCodePoint[typeface.toUpperCase()+"_"+codePoint]}function dec(typeface,dec){return codePoint(typeface,parseInt(dec,10))}function hex(typeface,hex){return codePoint(typeface,parseInt(hex,16))}function fromCodePointPolyfill(codePoint){if(65535>=codePoint)return String.fromCharCode(codePoint);var highSurrogate=Math.floor((codePoint-65536)/1024)+55296,lowSurrogate=(codePoint-65536)%1024+56320;return String.fromCharCode(highSurrogate,lowSurrogate)}var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{"default":mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.hex=exports.dec=exports.codePoint=void 0;for(var dingbats_1=__importDefault(require("./dingbats")),dingbatsByCodePoint={},fromCodePoint=String.fromCodePoint?String.fromCodePoint:fromCodePointPolyfill,_i=0,dingbats_2=dingbats_1["default"];_i>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i];for(i+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?NaN:(s?-1:1)*(1/0);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1<>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=0>value||0===value&&0>1/value?1:0;for(value=Math.abs(value),isNaN(value)||value===1/0?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1&&(e--,c*=2),value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e<0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s; +}},{}],87:[function(require,module,exports){var toString={}.toString;module.exports=Array.isArray||function(arr){return"[object Array]"==toString.call(arr)}},{}],88:[function(require,module,exports){(function(global,Buffer){!function(t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).JSZip=t()}(function(){return function s(a,o,h){function u(r,t){if(!o[r]){if(!a[r]){var e="function"==typeof require&&require;if(!t&&e)return e(r,!0);if(l)return l(r,!0);var i=new Error("Cannot find module '"+r+"'");throw i.code="MODULE_NOT_FOUND",i}var n=o[r]={exports:{}};a[r][0].call(n.exports,function(t){var e=a[r][1][t];return u(e||t)},n,n.exports,s,a,o,h)}return o[r].exports}for(var l="function"==typeof require&&require,t=0;tu?t[u++]:0,l>u?t[u++]:0):(e=t.charCodeAt(u++),r=l>u?t.charCodeAt(u++):0,l>u?t.charCodeAt(u++):0),n=e>>2,s=(3&e)<<4|r>>4,a=f>1?(15&r)<<2|i>>6:64,o=f>2?63&i:64,h.push(p.charAt(n)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join("")},r.decode=function(t){var e,r,i,n,s,a,o=0,h=0,u="data:";if(t.substr(0,u.length)===u)throw new Error("Invalid base64 input, it looks like a data url.");var l,f=3*(t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"")).length/4;if(t.charAt(t.length-1)===p.charAt(64)&&f--,t.charAt(t.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error("Invalid base64 input, bad content length.");for(l=d.uint8array?new Uint8Array(0|f):new Array(0|f);o>4,r=(15&n)<<4|(s=p.indexOf(t.charAt(o++)))>>2,i=(3&s)<<6|(a=p.indexOf(t.charAt(o++))),l[h++]=e,64!==s&&(l[h++]=r),64!==a&&(l[h++]=i);return l}},{"./support":30,"./utils":32}],2:[function(t,e,r){"use strict";function o(t,e,r,i,n){this.compressedSize=t,this.uncompressedSize=e,this.crc32=r,this.compression=i,this.compressedContent=n}var i=t("./external"),n=t("./stream/DataWorker"),s=t("./stream/Crc32Probe"),a=t("./stream/DataLengthProbe");o.prototype={getContentWorker:function(){var t=new n(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")),e=this;return t.on("end",function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),t},getCompressedWorker:function(){return new n(i.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(t,e,r){return t.pipe(new s).pipe(new a("uncompressedSize")).pipe(e.compressWorker(r)).pipe(new a("compressedSize")).withStreamInfo("compression",e)},e.exports=o},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(t,e,r){"use strict";var i=t("./stream/GenericWorker");r.STORE={magic:"\x00\x00",compressWorker:function(t){return new i("STORE compression")},uncompressWorker:function(){return new i("STORE decompression")}},r.DEFLATE=t("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(t,e,r){"use strict";var i=t("./utils"),o=function(){for(var t,e=[],r=0;256>r;r++){t=r;for(var i=0;8>i;i++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e){return void 0!==t&&t.length?"string"!==i.getTypeOf(t)?function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;s>a;a++)t=t>>>8^n[255&(t^e[a])];return-1^t}(0|e,t,t.length,0):function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;s>a;a++)t=t>>>8^n[255&(t^e.charCodeAt(a))];return-1^t}(0|e,t,t.length,0):0}},{"./utils":32}],5:[function(t,e,r){"use strict";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(t,e,r){"use strict";var i=null;i="undefined"!=typeof Promise?Promise:t("lie"),e.exports={Promise:i}},{lie:37}],7:[function(t,e,r){"use strict";function h(t,e){a.call(this,"FlateWorker/"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}var i="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,n=t("pako"),s=t("./utils"),a=t("./stream/GenericWorker"),o=i?"uint8array":"array";r.magic="\b\x00",s.inherits(h,a),h.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,t.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new n[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},r.compressWorker=function(t){return new h("Deflate",t)},r.uncompressWorker=function(){return new h("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(t,e,r){"use strict";function A(t,e){var r,i="";for(r=0;e>r;r++)i+=String.fromCharCode(255&t),t>>>=8;return i}function i(t,e,r,i,n,s){var a,o,h=t.file,u=t.compression,l=s!==O.utf8encode,f=I.transformTo("string",s(h.name)),d=I.transformTo("string",O.utf8encode(h.name)),c=h.comment,p=I.transformTo("string",s(c)),m=I.transformTo("string",O.utf8encode(c)),_=d.length!==h.name.length,g=m.length!==c.length,b="",v="",y="",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};e&&!r||(x.crc32=t.crc32,x.compressedSize=t.compressedSize,x.uncompressedSize=t.uncompressedSize);var S=0;e&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),"UNIX"===n?(C=798,z|=function(t,e){var r=t;return t||(r=e?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(t){return 63&(t||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+d,b+="up"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+="uc"+A(y.length,2)+y);var E="";return E+="\n\x00",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+"\x00\x00\x00\x00"+A(z,4)+A(i,4)+f+b+p}}function s(t,e,r,i){n.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=r,this.encodeFileName=i,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}var I=t("../utils"),n=t("../stream/GenericWorker"),O=t("../utf8"),B=t("../crc32"),R=t("../signature");I.inherits(s,n),s.prototype.push=function(t){var e=t.meta.percent||0,r=this.entriesCount,i=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,n.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:r?(e+100*(r-i-1))/r:100}}))},s.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var r=i(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(t){this.accumulate=!1;var e=this.streamFiles&&!t.file.dir,r=i(t,e,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),e)this.push({data:function(t){return R.DATA_DESCRIPTOR+A(t.crc32,4)+A(t.compressedSize,4)+A(t.uncompressedSize,4)}(t),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e0?t.substring(0,e):""},g=function(t){return"/"!==t.slice(-1)&&(t+="/"),t},b=function(t,e){return e=void 0!==e?e:f.createFolders,t=g(t),this.files[t]||s.call(this,t,null,{dir:!0,createFolders:e}),this.files[t]},i={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(t){var e,r,i;for(e in this.files)i=this.files[e],(r=e.slice(this.root.length,e.length))&&e.slice(0,this.root.length)===this.root&&t(r,i)},filter:function(r){var i=[];return this.forEach(function(t,e){r(t,e)&&i.push(e)}),i},file:function(t,e,r){if(1!==arguments.length)return t=this.root+t,s.call(this,t,e,r),this;if(h(t)){var i=t;return this.filter(function(t,e){return!e.dir&&i.test(t)})}var n=this.files[this.root+t];return n&&!n.dir?n:null},folder:function(r){if(!r)return this;if(h(r))return this.filter(function(t,e){return e.dir&&r.test(t)});var t=this.root+r,e=b.call(this,t),i=this.clone();return i.root=e.name,i},remove:function(r){r=this.root+r;var t=this.files[r];if(t||("/"!==r.slice(-1)&&(r+="/"),t=this.files[r]),t&&!t.dir)delete this.files[r];else for(var e=this.filter(function(t,e){return e.name.slice(0,r.length)===r}),i=0;i=0;--s)if(this.data[s]===e&&this.data[s+1]===r&&this.data[s+2]===i&&this.data[s+3]===n)return s-this.zero;return-1},n.prototype.readAndCheckSignature=function(t){var e=t.charCodeAt(0),r=t.charCodeAt(1),i=t.charCodeAt(2),n=t.charCodeAt(3),s=this.readData(4);return e===s[0]&&r===s[1]&&i===s[2]&&n===s[3]},n.prototype.readData=function(t){if(this.checkOffset(t),0===t)return[];var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{"../utils":32,"./DataReader":18}],18:[function(t,e,r){"use strict";function n(t){this.data=t,this.length=t.length,this.index=0,this.zero=0}var i=t("../utils");n.prototype={checkOffset:function(t){this.checkIndex(this.index+t)},checkIndex:function(t){if(this.lengtht)throw new Error("End of data reached (data length = "+this.length+", asked index = "+t+"). Corrupted zip ?")},setIndex:function(t){this.checkIndex(t),this.index=t},skip:function(t){this.setIndex(this.index+t)},byteAt:function(t){},readInt:function(t){var e,r=0;for(this.checkOffset(t),e=this.index+t-1;e>=this.index;e--)r=(r<<8)+this.byteAt(e);return this.index+=t,r},readString:function(t){return i.transformTo("string",this.readData(t))},readData:function(t){},lastIndexOfSignature:function(t){},readAndCheckSignature:function(t){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}},e.exports=n},{"../utils":32}],19:[function(t,e,r){"use strict";function n(t){i.call(this,t)}var i=t("./Uint8ArrayReader");t("../utils").inherits(n,i),n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(t,e,r){"use strict";function n(t){i.call(this,t)}var i=t("./DataReader");t("../utils").inherits(n,i),n.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},n.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},n.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{"../utils":32,"./DataReader":18}],21:[function(t,e,r){"use strict";function n(t){i.call(this,t)}var i=t("./ArrayReader");t("../utils").inherits(n,i),n.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{"../utils":32,"./ArrayReader":17}],22:[function(t,e,r){"use strict";var i=t("../utils"),n=t("../support"),s=t("./ArrayReader"),a=t("./StringReader"),o=t("./NodeBufferReader"),h=t("./Uint8ArrayReader");e.exports=function(t){var e=i.getTypeOf(t);return i.checkSupport(e),"string"!==e||n.uint8array?"nodebuffer"===e?new o(t):n.uint8array?new h(i.transformTo("uint8array",t)):new s(i.transformTo("array",t)):new a(t)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(t,e,r){"use strict";r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\b"},{}],24:[function(t,e,r){"use strict";function s(t){i.call(this,"ConvertWorker to "+t),this.destType=t}var i=t("./GenericWorker"),n=t("../utils");n.inherits(s,i),s.prototype.processChunk=function(t){this.push({data:n.transformTo(this.destType,t.data),meta:t.meta})},e.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(t,e,r){"use strict";function s(){i.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}var i=t("./GenericWorker"),n=t("../crc32");t("../utils").inherits(s,i),s.prototype.processChunk=function(t){this.streamInfo.crc32=n(t.data,this.streamInfo.crc32||0),this.push(t)},e.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(t,e,r){"use strict";function s(t){n.call(this,"DataLengthProbe for "+t),this.propName=t,this.withStreamInfo(t,0)}var i=t("../utils"),n=t("./GenericWorker");i.inherits(s,n),s.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}n.prototype.processChunk.call(this,t)},e.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(t,e,r){"use strict";function s(t){n.call(this,"DataWorker");var e=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,t.then(function(t){e.dataIsReady=!0,e.data=t,e.max=t&&t.length||0,e.type=i.getTypeOf(t),e.isPaused||e._tickAndRepeat()},function(t){e.error(t)})}var i=t("../utils"),n=t("./GenericWorker");i.inherits(s,n),s.prototype.cleanUp=function(){n.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,i.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(i.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var t=null,e=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":t=this.data.substring(this.index,e);break;case"uint8array":t=this.data.subarray(this.index,e);break;case"array":case"nodebuffer":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})},e.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(t,e,r){"use strict";function i(t){this.name=t||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}i.prototype={push:function(t){this.emit("data",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit("error",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit("error",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,e){return this._listeners[t].push(e),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,e){if(this._listeners[t])for(var r=0;r "+t:t}},e.exports=i},{}],29:[function(t,e,r){"use strict";function l(t,o){return new a.Promise(function(e,r){var i=[],n=t._internalType,s=t._outputType,a=t._mimeType;t.on("data",function(t,e){i.push(t),o&&o(e)}).on("error",function(t){i=[],r(t)}).on("end",function(){try{var t=function(t,e,r){switch(t){case"blob":return h.newBlob(h.transformTo("arraybuffer",e),r);case"base64":return u.encode(e);default:return h.transformTo(t,e)}}(s,function(t,e){var r,i=0,n=null,s=0;for(r=0;rn;n++)u[n]=n>=252?6:n>=248?5:n>=240?4:n>=224?3:n>=192?2:1;u[254]=u[254]=1,s.utf8encode=function(t){return h.nodebuffer?r.newBufferFrom(t,"utf-8"):function(t){var e,r,i,n,s,a=t.length,o=0;for(n=0;a>n;n++)55296==(64512&(r=t.charCodeAt(n)))&&a>n+1&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),o+=128>r?1:2048>r?2:65536>r?3:4;for(e=h.uint8array?new Uint8Array(o):new Array(o),n=s=0;o>s;n++)55296==(64512&(r=t.charCodeAt(n)))&&a>n+1&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),128>r?e[s++]=r:(2048>r?e[s++]=192|r>>>6:(65536>r?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e}(t)},s.utf8decode=function(t){return h.nodebuffer?o.transformTo("nodebuffer",t).toString("utf-8"):function(t){var e,r,i,n,s=t.length,a=new Array(2*s);for(e=r=0;s>e;)if((i=t[e++])<128)a[r++]=i;else if(4<(n=u[i]))a[r++]=65533,e+=n-1;else{for(i&=2===n?31:3===n?15:7;n>1&&s>e;)i=i<<6|63&t[e++],n--;n>1?a[r++]=65533:65536>i?a[r++]=i:(i-=65536,a[r++]=55296|i>>10&1023,a[r++]=56320|1023&i)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(t=o.transformTo(h.uint8array?"uint8array":"array",t))},o.inherits(a,i),a.prototype.processChunk=function(t){var e=o.transformTo(h.uint8array?"uint8array":"array",t.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=e;(e=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),e.set(r,this.leftOver.length)}else e=this.leftOver.concat(e);this.leftOver=null}var i=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;r>=0&&128==(192&t[r]);)r--;return 0>r?e:0===r?e:r+u[t[r]]>e?r:e}(e),n=e;i!==e.length&&(h.uint8array?(n=e.subarray(0,i),this.leftOver=e.subarray(i,e.length)):(n=e.slice(0,i),this.leftOver=e.slice(i,e.length))),this.push({data:s.utf8decode(n),meta:t.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,i),l.prototype.processChunk=function(t){this.push({data:s.utf8encode(t.data),meta:t.meta})},s.Utf8EncodeWorker=l},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(t,e,a){"use strict";function n(t){return t}function l(t,e){for(var r=0;r1;)try{return s.stringifyByChunk(t,r,e)}catch(t){e=Math.floor(e/2)}return s.stringifyByChar(t)}function d(t,e){for(var r=0;r=s)return String.fromCharCode.apply(null,t);for(;s>n;)"array"===e||"nodebuffer"===e?i.push(String.fromCharCode.apply(null,t.slice(n,Math.min(n+r,s)))):i.push(String.fromCharCode.apply(null,t.subarray(n,Math.min(n+r,s)))),n+=r;return i.join("")},stringifyByChar:function(t){for(var e="",r=0;r0;)t=this.reader.readInt(2),e=this.reader.readInt(4),r=this.reader.readData(e),this.zip64ExtensibleData[t]={id:t,length:e,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1t)throw this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(t);var e=t;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===n.MAX_VALUE_16BITS||this.diskWithCentralDirStart===n.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===n.MAX_VALUE_16BITS||this.centralDirRecords===n.MAX_VALUE_16BITS||this.centralDirSize===n.MAX_VALUE_32BITS||this.centralDirOffset===n.MAX_VALUE_32BITS){if(this.zip64=!0,(t=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(t),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var i=e-r;if(i>0)this.isSignature(e,s.CENTRAL_FILE_HEADER)||(this.reader.zero=i);else if(0>i)throw new Error("Corrupted zip: missing "+Math.abs(i)+" bytes.")},prepareReader:function(t){this.reader=i(t)},load:function(t){this.prepareReader(t),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},e.exports=h},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(t,e,r){"use strict";function l(t,e){this.options=t,this.loadOptions=e}var i=t("./reader/readerFor"),s=t("./utils"),n=t("./compressedObject"),a=t("./crc32"),o=t("./utf8"),h=t("./compressions"),u=t("./support");l.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(t){var e,r;if(t.skip(22),this.fileNameLength=t.readInt(2),r=t.readInt(2),this.fileName=t.readData(this.fileNameLength),t.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(null===(e=function(t){for(var e in h)if(h.hasOwnProperty(e)&&h[e].magic===t)return h[e];return null}(this.compressionMethod)))throw new Error("Corrupted zip : compression "+s.pretty(this.compressionMethod)+" unknown (inner file : "+s.transformTo("string",this.fileName)+")");this.decompressed=new n(this.compressedSize,this.uncompressedSize,this.crc32,e,t.readData(this.compressedSize))},readCentralPart:function(t){this.versionMadeBy=t.readInt(2),t.skip(2),this.bitFlag=t.readInt(2),this.compressionMethod=t.readString(2),this.date=t.readDate(),this.crc32=t.readInt(4),this.compressedSize=t.readInt(4),this.uncompressedSize=t.readInt(4);var e=t.readInt(2);if(this.extraFieldsLength=t.readInt(2),this.fileCommentLength=t.readInt(2),this.diskNumberStart=t.readInt(2),this.internalFileAttributes=t.readInt(2),this.externalFileAttributes=t.readInt(4),this.localHeaderOffset=t.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");t.skip(e),this.readExtraFields(t),this.parseZIP64ExtraField(t),this.fileComment=t.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var t=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==t&&(this.dosPermissions=63&this.externalFileAttributes),3==t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(t){if(this.extraFields[1]){var e=i(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(t){var e,r,i,n=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+4s;s++)t[n+s]=e[r+s]},flattenChunks:function(t){var e,r,i,n,s,a;for(e=i=0,r=t.length;r>e;e++)i+=t[e].length;for(a=new Uint8Array(i),e=n=0,r=t.length;r>e;e++)s=t[e],a.set(s,n),n+=s.length;return a}},s={arraySet:function(t,e,r,i,n){for(var s=0;i>s;s++)t[n+s]=e[r+s]},flattenChunks:function(t){return[].concat.apply([],t)}};r.setTyped=function(t){t?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,n)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s))},r.setTyped(i)},{}],42:[function(t,e,r){"use strict";function l(t,e){if(65537>e&&(t.subarray&&s||!t.subarray&&n))return String.fromCharCode.apply(null,h.shrinkBuf(t,e));for(var r="",i=0;e>i;i++)r+=String.fromCharCode(t[i]);return r}var h=t("./common"),n=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(t){n=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){s=!1}for(var u=new h.Buf8(256),i=0;256>i;i++)u[i]=i>=252?6:i>=248?5:i>=240?4:i>=224?3:i>=192?2:1;u[254]=u[254]=1,r.string2buf=function(t){var e,r,i,n,s,a=t.length,o=0;for(n=0;a>n;n++)55296==(64512&(r=t.charCodeAt(n)))&&a>n+1&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),o+=128>r?1:2048>r?2:65536>r?3:4;for(e=new h.Buf8(o),n=s=0;o>s;n++)55296==(64512&(r=t.charCodeAt(n)))&&a>n+1&&56320==(64512&(i=t.charCodeAt(n+1)))&&(r=65536+(r-55296<<10)+(i-56320),n++),128>r?e[s++]=r:(2048>r?e[s++]=192|r>>>6:(65536>r?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e},r.buf2binstring=function(t){return l(t,t.length)},r.binstring2buf=function(t){for(var e=new h.Buf8(t.length),r=0,i=e.length;i>r;r++)e[r]=t.charCodeAt(r);return e},r.buf2string=function(t,e){var r,i,n,s,a=e||t.length,o=new Array(2*a);for(r=i=0;a>r;)if((n=t[r++])<128)o[i++]=n;else if(4<(s=u[n]))o[i++]=65533,r+=s-1;else{for(n&=2===s?31:3===s?15:7;s>1&&a>r;)n=n<<6|63&t[r++],s--;s>1?o[i++]=65533:65536>n?o[i++]=n:(n-=65536,o[i++]=55296|n>>10&1023,o[i++]=56320|1023&n)}return l(o,i)},r.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;r>=0&&128==(192&t[r]);)r--;return 0>r?e:0===r?e:r+u[t[r]]>e?r:e}},{"./common":41}],43:[function(t,e,r){"use strict";e.exports=function(t,e,r,i){for(var n=65535&t|0,s=t>>>16&65535|0,a=0;0!==r;){for(r-=a=r>2e3?2e3:r;s=s+(n=n+e[i++]|0)|0,--a;);n%=65521,s%=65521}return n|s<<16|0}},{}],44:[function(t,e,r){"use strict";e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(t,e,r){"use strict";var o=function(){for(var t,e=[],r=0;256>r;r++){t=r;for(var i=0;8>i;i++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;s>a;a++)t=t>>>8^n[255&(t^e[a])];return-1^t}},{}],46:[function(t,e,r){"use strict";function R(t,e){return t.msg=i[e],e}function T(t){return(t<<1)-(t>4?9:0)}function D(t){for(var e=t.length;0<=--e;)t[e]=0}function F(t){var e=t.state,r=e.pending;r>t.avail_out&&(r=t.avail_out),0!==r&&(d.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function N(t,e){u._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,F(t.strm)}function U(t,e){t.pending_buf[t.pending++]=e}function P(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function L(t,e){var r,i,n=t.max_chain_length,s=t.strstart,a=t.prev_length,o=t.nice_match,h=t.strstart>t.w_size-z?t.strstart-(t.w_size-z):0,u=t.window,l=t.w_mask,f=t.prev,d=t.strstart+S,c=u[s+a-1],p=u[s+a];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do if(u[(r=e)+a]===p&&u[r+a-1]===c&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do;while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&d>s);if(i=S-(d-s),s=d-S,i>a){if(t.match_start=e,o<=(a=i))break;c=u[s+a-1],p=u[s+a]}}while((e=f[e&l])>h&&0!=--n);return a<=t.lookahead?a:t.lookahead}function j(t){var e,r,i,n,s,a,o,h,u,l,f=t.w_size;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=f+(f-z)){for(d.arraySet(t.window,t.window,f,f,0),t.match_start-=f,t.strstart-=f,t.block_start-=f,e=r=t.hash_size;i=t.head[--e],t.head[e]=i>=f?i-f:0,--r;);for(e=r=f;i=t.prev[--e],t.prev[e]=i>=f?i-f:0,--r;);n+=f}if(0===t.strm.avail_in)break;if(a=t.strm,o=t.window,h=t.strstart+t.lookahead,u=n,l=void 0,l=a.avail_in,l>u&&(l=u),r=0===l?0:(a.avail_in-=l,d.arraySet(o,a.input,a.next_in,l,h),1===a.state.wrap?a.adler=c(a.adler,o,l,h):2===a.state.wrap&&(a.adler=p(a.adler,o,l,h)),a.next_in+=l,a.total_in+=l,l),t.lookahead+=r,t.lookahead+t.insert>=x)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=(t.ins_h<=x&&(t.ins_h=(t.ins_h<=x)if(i=u._tr_tally(t,t.strstart-t.match_start,t.match_length-x),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=x){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<=x&&(t.ins_h=(t.ins_h<=x&&t.match_length<=t.prev_length){for(n=t.strstart+t.lookahead-x,i=u._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-x),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=n&&(t.ins_h=(t.ins_h<i?(a=0,i=-i):i>15&&(a=2,i-=16),1>n||n>y||r!==v||8>i||i>15||0>e||e>9||0>s||s>b)return R(t,_);8===i&&(i=9);var o=new H;return(t.state=o).strm=t,o.wrap=a,o.gzhead=null,o.w_bits=i,o.w_size=1<t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(j(t),0===t.lookahead&&e===l)return A;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+r;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,N(t,!1),0===t.strm.avail_out))return A;if(t.strstart-t.block_start>=t.w_size-z&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):(t.strstart>t.block_start&&(N(t,!1),t.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(t,e){return Y(t,e,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?_:(t.state.gzhead=e,m):_},r.deflate=function(t,e){var r,i,n,s;if(!t||!t.state||e>5||0>e)return t?R(t,_):_;if(i=t.state,!t.output||!t.input&&0!==t.avail_in||666===i.status&&e!==f)return R(t,0===t.avail_out?-5:_);if(i.strm=t,r=i.last_flush,i.last_flush=e,i.status===C)if(2===i.wrap)t.adler=0,U(i,31),U(i,139),U(i,8),i.gzhead?(U(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),U(i,255&i.gzhead.time),U(i,i.gzhead.time>>8&255),U(i,i.gzhead.time>>16&255),U(i,i.gzhead.time>>24&255),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(U(i,255&i.gzhead.extra.length),U(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=p(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(U(i,0),U(i,0),U(i,0),U(i,0),U(i,0),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,3),i.status=E);else{var a=v+(i.w_bits-8<<4)<<8;a|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(a|=32),a+=31-a%31,i.status=E,P(i,a),0!==i.strstart&&(P(i,t.adler>>>16),P(i,65535&t.adler)),t.adler=1}if(69===i.status)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending!==i.pending_buf_size));)U(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindexn&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindexn&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&F(t),i.pending+2<=i.pending_buf_size&&(U(i,255&t.adler),U(i,t.adler>>8&255),t.adler=0,i.status=E)):i.status=E),0!==i.pending){if(F(t),0===t.avail_out)return i.last_flush=-1,m}else if(0===t.avail_in&&T(e)<=T(r)&&e!==f)return R(t,-5);if(666===i.status&&0!==t.avail_in)return R(t,-5);if(0!==t.avail_in||0!==i.lookahead||e!==l&&666!==i.status){var o=2===i.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(j(t),0===t.lookahead)){if(e===l)return A;break}if(t.match_length=0,r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):3===i.strategy?function(t,e){for(var r,i,n,s,a=t.window;;){if(t.lookahead<=S){if(j(t),t.lookahead<=S&&e===l)return A;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=x&&0n);t.match_length=S-(s-n),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=x?(r=u._tr_tally(t,1,t.match_length-x),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):h[i.level].func(i,e);if(o!==O&&o!==B||(i.status=666),o===A||o===O)return 0===t.avail_out&&(i.last_flush=-1),m;if(o===I&&(1===e?u._tr_align(i):5!==e&&(u._tr_stored_block(i,0,0,!1),3===e&&(D(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),F(t),0===t.avail_out))return i.last_flush=-1,m}return e!==f?m:i.wrap<=0?1:(2===i.wrap?(U(i,255&t.adler),U(i,t.adler>>8&255),U(i,t.adler>>16&255),U(i,t.adler>>24&255),U(i,255&t.total_in),U(i,t.total_in>>8&255),U(i,t.total_in>>16&255),U(i,t.total_in>>24&255)):(P(i,t.adler>>>16),P(i,65535&t.adler)),F(t),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new d.Buf8(r.w_size),d.arraySet(u,e,l-r.w_size,r.w_size,0),e=u,l=r.w_size),a=t.avail_in,o=t.next_in,h=t.input,t.avail_in=l,t.next_in=0,t.input=e,j(r);r.lookahead>=x;){for(i=r.strstart,n=r.lookahead-(x-1);r.ins_h=(r.ins_h<p&&(c+=z[i++]<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(c&(1<p&&(c+=z[i++]<>>=y,p-=y),15>p&&(c+=z[i++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(c&(1<>>=y,p-=y,(y=s-a)y){for(w-=y;C[s++]=d[x++],--y;);x=s-k,S=C}}else if(y>f){if(x+=u+f-y,(y-=f)f){for(w-=y=f;C[s++]=d[x++],--y;);x=s-k,S=C}}}else if(x+=f-y,w>y){for(w-=y;C[s++]=d[x++],--y;);x=s-k,S=C}for(;w>2;)C[s++]=S[x++],C[s++]=S[x++],C[s++]=S[x++],w-=3;w&&(C[s++]=S[x++],w>1&&(C[s++]=S[x++]))}else{for(x=s-k;C[s++]=C[x++],C[s++]=C[x++],C[s++]=C[x++],2<(w-=3););w&&(C[s++]=C[x++],w>1&&(C[s++]=C[x++]))}break}}break}}while(n>i&&o>s);i-=w=p>>3,c&=(1<<(p-=w<<3))-1,t.next_in=i,t.next_out=s,t.avail_in=n>i?n-i+5:5-(i-n),t.avail_out=o>s?o-s+257:257-(s-o),r.hold=c,r.bits=p}},{}],49:[function(t,e,r){"use strict";function L(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=P,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new I.Buf32(i),e.distcode=e.distdyn=new I.Buf32(n),e.sane=1,e.back=-1,N):U}function o(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,a(t)):U}function h(t,e){var r,i;return t&&t.state?(i=t.state,0>e?(r=0,e=-e):(r=1+(e>>4),48>e&&(e&=15)),e&&(8>e||e>15)?U:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=r,i.wbits=e,o(t))):U}function u(t,e){var r,i;return t?(i=new s,(t.state=i).window=null,(r=h(t,e))!==N&&(t.state=null),r):U}function j(t){if(d){var e;for(l=new I.Buf32(512),f=new I.Buf32(32),e=0;144>e;)t.lens[e++]=8;for(;256>e;)t.lens[e++]=9;for(;280>e;)t.lens[e++]=7;for(;288>e;)t.lens[e++]=8;for(T(D,t.lens,0,288,l,0,t.work,{bits:9}),e=0;32>e;)t.lens[e++]=5;T(F,t.lens,0,32,f,0,t.work,{bits:5}),d=!1}t.lencode=l,t.lenbits=9,t.distcode=f,t.distbits=5}function Z(t,e,r,i){var n,s=t.state;return null===s.window&&(s.wsize=1<=s.wsize?(I.arraySet(s.window,e,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(i<(n=s.wsize-s.wnext)&&(n=i),I.arraySet(s.window,e,r-i,n,s.wnext),(i-=n)?(I.arraySet(s.window,e,r-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whavel;){if(0===o)break t;o--,u+=i[s++]<>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){t.msg="incorrect header check",r.mode=30;break}if(8!=(15&u)){t.msg="unknown compression method",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){t.msg="invalid window size",r.mode=30;break}r.dmax=1<l;){if(0===o)break t;o--,u+=i[s++]<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;32>l;){if(0===o)break t;o--,u+=i[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;16>l;){if(0===o)break t;o--,u+=i[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;16>l;){if(0===o)break t;o--,u+=i[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(c=r.length)&&(c=o),c&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,i,s,c,k)),512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,r.length-=c),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break t;for(c=0;k=i[s+c++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&o>c;);if(512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,k)break t}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===o)break t;for(c=0;k=i[s+c++],r.head&&k&&r.length<65536&&(r.head.comment+=String.fromCharCode(k)),k&&o>c;);if(512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,k)break t}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;16>l;){if(0===o)break t;o--,u+=i[s++]<>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=12;break;case 10:for(;32>l;){if(0===o)break t;o--,u+=i[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;3>l;){if(0===o)break t;o--,u+=i[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==e)break;u>>>=2,l-=2;break t;case 2:r.mode=17;break;case 3:t.msg="invalid block type",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;32>l;){if(0===o)break t;o--,u+=i[s++]<>>16^65535)){t.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(c=r.length){if(c>o&&(c=o),c>h&&(c=h),0===c)break t;I.arraySet(n,i,s,c,a),o-=c,s+=c,h-=c,a+=c,r.length-=c;break}r.mode=12;break;case 17:for(;14>l;){if(0===o)break t;o--,u+=i[s++]<>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286l;){if(0===o)break t;o--,u+=i[s++]<>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<b)u>>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;z>l;){if(0===o)break t;o--,u+=i[s++]<>>=_,l-=_,0===r.have){t.msg="invalid bit length repeat",r.mode=30;break}k=r.lens[r.have-1],c=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;z>l;){if(0===o)break t;o--,u+=i[s++]<>>=_)),u>>>=3,l-=3}else{for(z=_+7;z>l;){if(0===o)break t;o--,u+=i[s++]<>>=_)),u>>>=7,l-=7}if(r.have+c>r.nlen+r.ndist){t.msg="invalid bit length repeat",r.mode=30;break}for(;c--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){t.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){t.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(o>=6&&h>=258){t.next_out=a,t.avail_out=h,t.next_in=s,t.avail_in=o,r.hold=u,r.bits=l,R(t,d),a=t.next_out,n=t.output,h=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){t.msg="invalid literal/length code",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;z>l;){if(0===o)break t;o--,u+=i[s++]<>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){t.msg="invalid distance code",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;z>l;){if(0===o)break t;o--,u+=i[s++]<>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===h)break t;if(c=d-h,r.offset>c){if((c=r.offset-c)>r.whave&&r.sane){t.msg="invalid distance too far back",r.mode=30;break}p=c>r.wnext?(c-=r.wnext,r.wsize-c):r.wnext-c,c>r.length&&(c=r.length),m=r.window}else m=n,p=a-r.offset,c=r.length;for(c>h&&(c=h),h-=c,r.length-=c;n[a++]=m[p++],--c;);0===r.length&&(r.mode=21);break;case 26:if(0===h)break t;n[a++]=r.length,h--,r.mode=21;break;case 27:if(r.wrap){for(;32>l;){if(0===o)break t;o--,u|=i[s++]<l;){if(0===o)break t;o--,u+=i[s++]<=b;b++)O[b]=0;for(v=0;i>v;v++)O[e[r+v]]++;for(k=g,w=15;w>=1&&0===O[w];w--);if(k>w&&(k=w),0===w)return n[s++]=20971520,n[s++]=20971520,o.bits=1,0;for(y=1;w>y&&0===O[y];y++);for(y>k&&(k=y),b=z=1;15>=b;b++)if(z<<=1,(z-=O[b])<0)return-1;if(z>0&&(0===t||1!==w))return-1;for(B[1]=0,b=1;15>b;b++)B[b+1]=B[b]+O[b];for(v=0;i>v;v++)0!==e[r+v]&&(a[B[e[r+v]]++]=v);if(c=0===t?(A=R=a,19):1===t?(A=F,I-=257,R=N,T-=257,256):(A=U,R=P,-1),b=y,d=s,S=v=E=0,l=-1,f=(C=1<<(x=k))-1,1===t&&C>852||2===t&&C>592)return 1;for(;;){for(p=b-S,_=a[v]c?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=e[r+a[v]]}if(b>k&&(E&f)!==l){for(0===S&&(S=k),d+=y,z=1<<(x=b-S);w>x+S&&!((z-=O[x+S])<=0);)x++,z<<=1;if(C+=1<852||2===t&&C>592)return 1;n[l=E&f]=k<<24|x<<16|d-s|0}}return 0!==E&&(n[d+E]=b-S<<24|64<<16|0),o.bits=k,0}},{"../utils/common":41}],51:[function(t,e,r){"use strict";e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(t,e,r){"use strict";function i(t){for(var e=t.length;0<=--e;)t[e]=0}function D(t,e,r,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=r,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}function F(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function N(t){return 256>t?E[t]:E[256+(t>>>7)]}function U(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function P(t,e,r){t.bi_valid>c-r?(t.bi_buf|=e<>c-t.bi_valid,t.bi_valid+=r-c):(t.bi_buf|=e<>>=1,r<<=1,0<--e;);return r>>>1}function Z(t,e,r){var i,n,s=new Array(g+1),a=0;for(i=1;g>=i;i++)s[i]=a=a+r[i-1]<<1;for(n=0;e>=n;n++){var o=t[2*n+1];0!==o&&(t[2*n]=j(s[o]++,o))}}function W(t){var e;for(e=0;l>e;e++)t.dyn_ltree[2*e]=0;for(e=0;f>e;e++)t.dyn_dtree[2*e]=0;for(e=0;d>e;e++)t.bl_tree[2*e]=0;t.dyn_ltree[2*m]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function M(t){8r;r++)0!==s[2*r]?(t.heap[++t.heap_len]=u=r,t.depth[r]=0):s[2*r+1]=0;for(;t.heap_len<2;)s[2*(n=t.heap[++t.heap_len]=2>u?++u:0)]=1,t.depth[n]=0,t.opt_len--,o&&(t.static_len-=a[2*n+1]);for(e.max_code=u,r=t.heap_len>>1;r>=1;r--)G(t,s,r);for(n=h;r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],G(t,s,1),i=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=i,s[2*n]=s[2*r]+s[2*i],t.depth[n]=(t.depth[r]>=t.depth[i]?t.depth[r]:t.depth[i])+1,s[2*r+1]=s[2*i+1]=n,t.heap[1]=n++,G(t,s,1),2<=t.heap_len;);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,i,n,s,a,o,h=e.dyn_tree,u=e.max_code,l=e.stat_desc.static_tree,f=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,p=e.stat_desc.max_length,m=0;for(s=0;g>=s;s++)t.bl_count[s]=0;for(h[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;_>r;r++)p<(s=h[2*h[2*(i=t.heap[r])+1]+1]+1)&&(s=p,m++),h[2*i+1]=s,i>u||(t.bl_count[s]++,a=0,i>=c&&(a=d[i-c]),o=h[2*i],t.opt_len+=o*(s+a),f&&(t.static_len+=o*(l[2*i+1]+a)));if(0!==m){do{for(s=p-1;0===t.bl_count[s];)s--;t.bl_count[s]--,t.bl_count[s+1]+=2,t.bl_count[p]--,m-=2}while(m>0);for(s=p;0!==s;s--)for(i=t.bl_count[s];0!==i;)u<(n=t.heap[--r])||(h[2*n+1]!==s&&(t.opt_len+=(s-h[2*n+1])*h[2*n],h[2*n+1]=s),i--)}}(t,e),Z(s,u,t.bl_count)}function X(t,e,r){var i,n,s=-1,a=e[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),e[2*(r+1)+1]=65535,i=0;r>=i;i++)n=a,a=e[2*(i+1)+1],++oo?t.bl_tree[2*n]+=o:0!==n?(n!==s&&t.bl_tree[2*n]++,t.bl_tree[2*b]++):10>=o?t.bl_tree[2*v]++:t.bl_tree[2*y]++,s=n,u=(o=0)===a?(h=138,3):n===a?(h=6,3):(h=7,4))}function V(t,e,r){var i,n,s=-1,a=e[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),i=0;r>=i;i++)if(n=a,a=e[2*(i+1)+1],!(++oo)for(;L(t,n,t.bl_tree),0!=--o;);else 0!==n?(n!==s&&(L(t,n,t.bl_tree),o--),L(t,b,t.bl_tree),P(t,o-3,2)):10>=o?(L(t,v,t.bl_tree),P(t,o-3,3)):(L(t,y,t.bl_tree),P(t,o-11,7));s=n,u=(o=0)===a?(h=138,3):n===a?(h=6,3):(h=7,4)}}function J(t,e,r,i){P(t,(s<<1)+(i?1:0),3),function(t,e,r,i){M(t),i&&(U(t,r),U(t,~r)),n.arraySet(t.pending_buf,t.window,e,r,t.pending),t.pending+=r}(t,e,r,!0)}var n=t("../utils/common"),o=0,h=1,s=0,a=29,u=256,l=u+1+a,f=30,d=19,_=2*l+1,g=15,c=16,p=7,m=256,b=16,v=17,y=18,w=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],k=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],x=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],S=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],z=new Array(2*(l+2));i(z);var C=new Array(2*f);i(C);var E=new Array(512);i(E);var A=new Array(256);i(A);var I=new Array(a);i(I);var O,B,R,T=new Array(f);i(T);var q=!1;r._tr_init=function(t){q||(function(){var t,e,r,i,n,s=new Array(g+1);for(i=r=0;a-1>i;i++)for(I[i]=r,t=0;t<1<i;i++)for(T[i]=n,t=0;t<1<>=7;f>i;i++)for(T[i]=n<<7,t=0;t<1<=e;e++)s[e]=0;for(t=0;143>=t;)z[2*t+1]=8,t++,s[8]++;for(;255>=t;)z[2*t+1]=9,t++,s[9]++;for(;279>=t;)z[2*t+1]=7,t++,s[7]++;for(;287>=t;)z[2*t+1]=8,t++,s[8]++;for(Z(z,l+1,s),t=0;f>t;t++)C[2*t+1]=5,C[2*t]=j(t,5);O=new D(z,w,u+1,l,g),B=new D(C,k,0,f,g),R=new D(new Array(0),x,0,d,p)}(),q=!0),t.l_desc=new F(t.dyn_ltree,O),t.d_desc=new F(t.dyn_dtree,B),t.bl_desc=new F(t.bl_tree,R),t.bi_buf=0,t.bi_valid=0,W(t)},r._tr_stored_block=J,r._tr_flush_block=function(t,e,r,i){var n,s,a=0;0=e;e++,r>>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return o;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return h;for(e=32;u>e;e++)if(0!==t.dyn_ltree[2*e])return h;return o}(t)),Y(t,t.l_desc),Y(t,t.d_desc),a=function(t){var e;for(X(t,t.dyn_ltree,t.l_desc.max_code),X(t,t.dyn_dtree,t.d_desc.max_code),Y(t,t.bl_desc),e=d-1;e>=3&&0===t.bl_tree[2*S[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),n=t.opt_len+3+7>>>3,(s=t.static_len+3+7>>>3)<=n&&(n=s)):n=s=r+5,n>=r+4&&-1!==e?J(t,e,r,i):4===t.strategy||s===n?(P(t,2+(i?1:0),3),K(t,z,C)):(P(t,4+(i?1:0),3),function(t,e,r,i){var n;for(P(t,e-257,5),P(t,r-1,5),P(t,i-4,4),n=0;i>n;n++)P(t,t.bl_tree[2*S[n]+1],3);V(t,t.dyn_ltree,e-1),V(t,t.dyn_dtree,r-1)}(t,t.l_desc.max_code+1,t.d_desc.max_code+1,a+1),K(t,t.dyn_ltree,t.dyn_dtree)),W(t),i&&M(t)},r._tr_tally=function(t,e,r){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*(A[r]+u+1)]++,t.dyn_dtree[2*N(e)]++),t.last_lit===t.lit_bufsize-1},r._tr_align=function(t){P(t,2,3),L(t,m,z),function(t){16===t.bi_valid?(U(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):8<=t.bi_valid&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},{"../utils/common":41}],53:[function(t,e,r){"use strict";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,e,r){"use strict";e.exports="function"==typeof setImmediate?setImmediate:function(){var t=[].slice.apply(arguments);t.splice(1,0,0),setTimeout.apply(null,t)}},{}]},{},[10])(10)})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},require("buffer").Buffer)},{buffer:83}],89:[function(require,module,exports){exports.Parser=require("./lib/parser").Parser,exports.rules=require("./lib/rules"),exports.errors=require("./lib/errors"),exports.results=require("./lib/parsing-results"),exports.StringSource=require("./lib/StringSource"),exports.Token=require("./lib/Token"),exports.bottomUp=require("./lib/bottom-up"),exports.RegexTokeniser=require("./lib/regex-tokeniser").RegexTokeniser, +exports.rule=function(ruleBuilder){var rule;return function(input){return rule||(rule=ruleBuilder()),rule(input)}}},{"./lib/StringSource":90,"./lib/Token":91,"./lib/bottom-up":93,"./lib/errors":94,"./lib/parser":96,"./lib/parsing-results":97,"./lib/regex-tokeniser":98,"./lib/rules":99}],90:[function(require,module,exports){var util=require("util"),StringSourceRange=(module.exports=function(string,description){var self={asString:function(){return string},range:function(startIndex,endIndex){return new StringSourceRange(string,description,startIndex,endIndex)}};return self},function(string,description,startIndex,endIndex){this._string=string,this._description=description,this._startIndex=startIndex,this._endIndex=endIndex});StringSourceRange.prototype.to=function(otherRange){return new StringSourceRange(this._string,this._description,this._startIndex,otherRange._endIndex)},StringSourceRange.prototype.describe=function(){var position=this._position(),description=this._description?this._description+"\n":"";return util.format("%sLine number: %s\nCharacter number: %s",description,position.lineNumber,position.characterNumber)},StringSourceRange.prototype.lineNumber=function(){return this._position().lineNumber},StringSourceRange.prototype.characterNumber=function(){return this._position().characterNumber},StringSourceRange.prototype._position=function(){for(var self=this,index=0,nextNewLine=function(){return self._string.indexOf("\n",index)},lineNumber=1;-1!==nextNewLine()&&nextNewLine()startIndex){var value=result[1],token=new Token(rules[i].name,value,source.range(startIndex,endIndex));return{token:token,endIndex:endIndex}}}}var endIndex=startIndex+1,token=new Token("unrecognisedCharacter",string.substring(startIndex,endIndex),source.range(startIndex,endIndex));return{token:token,endIndex:endIndex}}function endToken(input,source){return new Token("end",null,source.range(input.length,input.length))}return rules=rules.map(function(rule){return{name:rule.name,regex:new RegExp(rule.regex.source,"g")}}),{tokenise:tokenise}}var Token=require("./Token"),StringSource=require("./StringSource");exports.RegexTokeniser=RegexTokeniser},{"./StringSource":90,"./Token":91}],99:[function(require,module,exports){function noOpRule(input){return results.success(null,input)}function describeTokenMismatch(input,expected){var error,token=input.head();return error=token?errors.error({expected:expected,actual:describeToken(token),location:token.source}):errors.error({expected:expected,actual:"end of tokens"}),results.failure([error],input)}var _=require("underscore"),options=require("option"),results=require("./parsing-results"),errors=require("./errors"),lazyIterators=require("./lazy-iterators");exports.token=function(tokenType,value){var matchValue=void 0!==value;return function(input){var token=input.head();if(!token||token.name!==tokenType||matchValue&&token.value!==value){var expected=describeToken({name:tokenType,value:value});return describeTokenMismatch(input,expected)}return results.success(token.value,input.tail(),token.source)}},exports.tokenOfType=function(tokenType){return exports.token(tokenType)},exports.firstOf=function(name,parsers){return _.isArray(parsers)||(parsers=Array.prototype.slice.call(arguments,1)),function(input){return lazyIterators.fromArray(parsers).map(function(parser){return parser(input)}).filter(function(result){return result.isSuccess()||result.isError()}).first()||describeTokenMismatch(input,name)}},exports.then=function(parser,func){return function(input){var result=parser(input);return result.map||console.log(result),result.map(func)}},exports.sequence=function(){function isCapturedRule(subRule){return subRule.isCaptured}var parsers=Array.prototype.slice.call(arguments,0),rule=function(input){var result=_.foldl(parsers,function(memo,parser){var result=memo.result,hasCut=memo.hasCut;if(!result.isSuccess())return{result:result,hasCut:hasCut};var subResult=parser(result.remaining());if(subResult.isCut())return{result:result,hasCut:!0};if(subResult.isSuccess()){var values;values=parser.isCaptured?result.value().withValue(parser,subResult.value()):result.value();var remaining=subResult.remaining(),source=input.to(remaining);return{result:results.success(values,remaining,source),hasCut:hasCut}}return hasCut?{result:results.error(subResult.errors(),subResult.remaining()),hasCut:hasCut}:{result:subResult,hasCut:hasCut}},{result:results.success(new SequenceValues,input),hasCut:!1}).result,source=input.to(result.remaining());return result.map(function(values){return values.withValue(exports.sequence.source,source)})};return rule.head=function(){var firstCapture=_.find(parsers,isCapturedRule);return exports.then(rule,exports.sequence.extract(firstCapture))},rule.map=function(func){return exports.then(rule,function(result){return func.apply(this,result.toArray())})},rule};var SequenceValues=function(values,valuesArray){this._values=values||{},this._valuesArray=valuesArray||[]};SequenceValues.prototype.withValue=function(rule,value){if(rule.captureName&&rule.captureName in this._values)throw new Error('Cannot add second value for capture "'+rule.captureName+'"');var newValues=_.clone(this._values);newValues[rule.captureName]=value;var newValuesArray=this._valuesArray.concat([value]);return new SequenceValues(newValues,newValuesArray)},SequenceValues.prototype.get=function(rule){if(rule.captureName in this._values)return this._values[rule.captureName];throw new Error('No value for capture "'+rule.captureName+'"')},SequenceValues.prototype.toArray=function(){return this._valuesArray},exports.sequence.capture=function(rule,name){var captureRule=function(){return rule.apply(this,arguments)};return captureRule.captureName=name,captureRule.isCaptured=!0,captureRule},exports.sequence.extract=function(rule){return function(result){return result.get(rule)}},exports.sequence.applyValues=function(func){var rules=Array.prototype.slice.call(arguments,1);return function(result){var values=rules.map(function(rule){return result.get(rule)});return func.apply(this,values)}},exports.sequence.source={captureName:"☃source☃"},exports.sequence.cut=function(){return function(input){return results.cut(input)}},exports.optional=function(rule){return function(input){var result=rule(input);return result.isSuccess()?result.map(options.some):result.isFailure()?results.success(options.none,input):result}},exports.zeroOrMoreWithSeparator=function(rule,separator){return repeatedWithSeparator(rule,separator,!1)},exports.oneOrMoreWithSeparator=function(rule,separator){return repeatedWithSeparator(rule,separator,!0)};var zeroOrMore=exports.zeroOrMore=function(rule){return function(input){for(var result,values=[];(result=rule(input))&&result.isSuccess();)input=result.remaining(),values.push(result.value());return result.isError()?result:results.success(values,input)}};exports.oneOrMore=function(rule){return exports.oneOrMoreWithSeparator(rule,noOpRule)};var repeatedWithSeparator=function(rule,separator,isOneOrMore){return function(input){var result=rule(input);if(result.isSuccess()){var mainRule=exports.sequence.capture(rule,"main"),remainingRule=zeroOrMore(exports.then(exports.sequence(separator,mainRule),exports.sequence.extract(mainRule))),remainingResult=remainingRule(result.remaining());return results.success([result.value()].concat(remainingResult.value()),remainingResult.remaining())}return isOneOrMore||result.isError()?result:results.success([],input)}};exports.leftAssociative=function(leftRule,rightRule,func){var rights;rights=func?[{func:func,rule:rightRule}]:rightRule,rights=rights.map(function(right){return exports.then(right.rule,function(rightValue){return function(leftValue,source){return right.func(leftValue,rightValue,source)}})});var repeatedRule=exports.firstOf.apply(null,["rules"].concat(rights));return function(input){var start=input,leftResult=leftRule(input);if(!leftResult.isSuccess())return leftResult;for(var repeatedResult=repeatedRule(leftResult.remaining());repeatedResult.isSuccess();){var remaining=repeatedResult.remaining(),source=start.to(repeatedResult.remaining()),right=repeatedResult.value();leftResult=results.success(right(leftResult.value(),source),remaining,source),repeatedResult=repeatedRule(leftResult.remaining())}return repeatedResult.isError()?repeatedResult:leftResult}},exports.leftAssociative.firstOf=function(){return Array.prototype.slice.call(arguments,0)},exports.nonConsuming=function(rule){return function(input){return rule(input).changeRemaining(input)}};var describeToken=function(token){return token.value?token.name+' "'+token.value+'"':token.name}},{"./errors":94,"./lazy-iterators":95,"./parsing-results":97,option:100,underscore:103}],100:[function(require,module,exports){function callOrReturn(value){return"function"==typeof value?value():value}exports.none=Object.create({value:function(){throw new Error("Called value on none")},isNone:function(){return!0},isSome:function(){return!1},map:function(){return exports.none},flatMap:function(){return exports.none},filter:function(){return exports.none},toArray:function(){return[]},orElse:callOrReturn,valueOrElse:callOrReturn}),exports.some=function(value){return new Some(value)};var Some=function(value){this._value=value};Some.prototype.value=function(){return this._value},Some.prototype.isNone=function(){return!1},Some.prototype.isSome=function(){return!0},Some.prototype.map=function(func){return new Some(func(this._value))},Some.prototype.flatMap=function(func){return func(this._value)},Some.prototype.filter=function(predicate){return predicate(this._value)?this:exports.none},Some.prototype.toArray=function(){return[this._value]},Some.prototype.orElse=function(value){return this},Some.prototype.valueOrElse=function(value){return this._value},exports.isOption=function(value){return value===exports.none||value instanceof Some},exports.fromNullable=function(value){return null==value?exports.none:new Some(value)}},{}],101:[function(require,module,exports){(function(process){function normalizeArray(parts,allowAboveRoot){for(var up=0,i=parts.length-1;i>=0;i--){var last=parts[i];"."===last?parts.splice(i,1):".."===last?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up--;up)parts.unshift("..");return parts}function filter(xs,f){if(xs.filter)return xs.filter(f);for(var res=[],i=0;i=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:process.cwd();if("string"!=typeof path)throw new TypeError("Arguments to path.resolve must be strings");path&&(resolvedPath=path+"/"+resolvedPath,resolvedAbsolute="/"===path.charAt(0))}return resolvedPath=normalizeArray(filter(resolvedPath.split("/"),function(p){return!!p}),!resolvedAbsolute).join("/"),(resolvedAbsolute?"/":"")+resolvedPath||"."},exports.normalize=function(path){var isAbsolute=exports.isAbsolute(path),trailingSlash="/"===substr(path,-1);return path=normalizeArray(filter(path.split("/"),function(p){return!!p}),!isAbsolute).join("/"),path||isAbsolute||(path="."),path&&trailingSlash&&(path+="/"),(isAbsolute?"/":"")+path},exports.isAbsolute=function(path){return"/"===path.charAt(0)},exports.join=function(){var paths=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(paths,function(p,index){if("string"!=typeof p)throw new TypeError("Arguments to path.join must be strings");return p}).join("/"))},exports.relative=function(from,to){function trim(arr){for(var start=0;start=0&&""===arr[end];end--);return start>end?[]:arr.slice(start,end-start+1)}from=exports.resolve(from).substr(1),to=exports.resolve(to).substr(1);for(var fromParts=trim(from.split("/")),toParts=trim(to.split("/")),length=Math.min(fromParts.length,toParts.length),samePartsLength=length,i=0;length>i;i++)if(fromParts[i]!==toParts[i]){samePartsLength=i;break}for(var outputParts=[],i=samePartsLength;istart&&(start=str.length+start),str.substr(start,len)}}).call(this,require("_process"))},{_process:102}],102:[function(require,module,exports){function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}function runTimeout(fun){if(cachedSetTimeout===setTimeout)return setTimeout(fun,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(fun,0);try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout)return clearTimeout(marker);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(marker);try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e){return cachedClearTimeout.call(this,marker)}}}function cleanUpNextTick(){draining&¤tQueue&&(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var timeout=runTimeout(cleanUpNextTick);draining=!0;for(var len=queue.length;len;){for(currentQueue=queue,queue=[];++queueIndex1)for(var i=1;iindex;index++)rest[index]=arguments[index+startIndex];switch(startIndex){case 0:return func.call(this,rest);case 1:return func.call(this,arguments[0],rest);case 2:return func.call(this,arguments[0],arguments[1],rest)}var args=Array(startIndex+1);for(index=0;startIndex>index;index++)args[index]=arguments[index];return args[startIndex]=rest,func.apply(this,args)}}function isObject(obj){var type=typeof obj;return"function"===type||"object"===type&&!!obj}function isNull(obj){return null===obj}function isUndefined(obj){return void 0===obj}function isBoolean(obj){return obj===!0||obj===!1||"[object Boolean]"===toString.call(obj)}function isElement(obj){return!(!obj||1!==obj.nodeType)}function tagTester(name){var tag="[object "+name+"]";return function(obj){return toString.call(obj)===tag}}function ie10IsDataView(obj){return null!=obj&&isFunction$1(obj.getInt8)&&isArrayBuffer(obj.buffer)}function has$1(obj,key){return null!=obj&&hasOwnProperty.call(obj,key)}function isFinite$1(obj){return!isSymbol(obj)&&_isFinite(obj)&&!isNaN(parseFloat(obj))}function isNaN$1(obj){return isNumber(obj)&&_isNaN(obj)}function constant(value){return function(){return value}}function createSizePropertyCheck(getSizeProperty){return function(collection){var sizeProperty=getSizeProperty(collection);return"number"==typeof sizeProperty&&sizeProperty>=0&&MAX_ARRAY_INDEX>=sizeProperty}}function shallowProperty(key){return function(obj){return null==obj?void 0:obj[key]}}function isTypedArray(obj){return nativeIsView?nativeIsView(obj)&&!isDataView$1(obj):isBufferLike(obj)&&typedArrayPattern.test(toString.call(obj))}function emulatedSet(keys){for(var hash={},l=keys.length,i=0;l>i;++i)hash[keys[i]]=!0;return{contains:function(key){return hash[key]},push:function(key){return hash[key]=!0,keys.push(key)}}}function collectNonEnumProps(obj,keys){keys=emulatedSet(keys);var nonEnumIdx=nonEnumerableProps.length,constructor=obj.constructor,proto=isFunction$1(constructor)&&constructor.prototype||ObjProto,prop="constructor";for(has$1(obj,prop)&&!keys.contains(prop)&&keys.push(prop);nonEnumIdx--;)prop=nonEnumerableProps[nonEnumIdx],prop in obj&&obj[prop]!==proto[prop]&&!keys.contains(prop)&&keys.push(prop)}function keys(obj){if(!isObject(obj))return[];if(nativeKeys)return nativeKeys(obj);var keys=[];for(var key in obj)has$1(obj,key)&&keys.push(key);return hasEnumBug&&collectNonEnumProps(obj,keys),keys}function isEmpty(obj){if(null==obj)return!0;var length=getLength(obj);return"number"==typeof length&&(isArray(obj)||isString(obj)||isArguments$1(obj))?0===length:0===getLength(keys(obj))}function isMatch(object,attrs){var _keys=keys(attrs),length=_keys.length;if(null==object)return!length;for(var obj=Object(object),i=0;length>i;i++){var key=_keys[i];if(attrs[key]!==obj[key]||!(key in obj))return!1}return!0}function _$1(obj){return obj instanceof _$1?obj:this instanceof _$1?void(this._wrapped=obj):new _$1(obj)}function toBufferView(bufferSource){return new Uint8Array(bufferSource.buffer||bufferSource,bufferSource.byteOffset||0,getByteLength(bufferSource))}function eq(a,b,aStack,bStack){if(a===b)return 0!==a||1/a===1/b;if(null==a||null==b)return!1;if(a!==a)return b!==b;var type=typeof a;return"function"!==type&&"object"!==type&&"object"!=typeof b?!1:deepEq(a,b,aStack,bStack)}function deepEq(a,b,aStack,bStack){a instanceof _$1&&(a=a._wrapped),b instanceof _$1&&(b=b._wrapped);var className=toString.call(a);if(className!==toString.call(b))return!1;if(hasStringTagBug&&"[object Object]"==className&&isDataView$1(a)){if(!isDataView$1(b))return!1;className=tagDataView}switch(className){case"[object RegExp]":case"[object String]":return""+a==""+b;case"[object Number]":return+a!==+a?+b!==+b:0===+a?1/+a===1/b:+a===+b;case"[object Date]":case"[object Boolean]":return+a===+b;case"[object Symbol]":return SymbolProto.valueOf.call(a)===SymbolProto.valueOf.call(b);case"[object ArrayBuffer]":case tagDataView:return deepEq(toBufferView(a),toBufferView(b),aStack,bStack)}var areArrays="[object Array]"===className;if(!areArrays&&isTypedArray$1(a)){var byteLength=getByteLength(a);if(byteLength!==getByteLength(b))return!1;if(a.buffer===b.buffer&&a.byteOffset===b.byteOffset)return!0;areArrays=!0}if(!areArrays){if("object"!=typeof a||"object"!=typeof b)return!1;var aCtor=a.constructor,bCtor=b.constructor;if(aCtor!==bCtor&&!(isFunction$1(aCtor)&&aCtor instanceof aCtor&&isFunction$1(bCtor)&&bCtor instanceof bCtor)&&"constructor"in a&&"constructor"in b)return!1}aStack=aStack||[],bStack=bStack||[];for(var length=aStack.length;length--;)if(aStack[length]===a)return bStack[length]===b;if(aStack.push(a),bStack.push(b),areArrays){if(length=a.length,length!==b.length)return!1;for(;length--;)if(!eq(a[length],b[length],aStack,bStack))return!1}else{var key,_keys=keys(a);if(length=_keys.length,keys(b).length!==length)return!1;for(;length--;)if(key=_keys[length],!has$1(b,key)||!eq(a[key],b[key],aStack,bStack))return!1}return aStack.pop(),bStack.pop(),!0}function isEqual(a,b){return eq(a,b)}function allKeys(obj){if(!isObject(obj))return[];var keys=[];for(var key in obj)keys.push(key);return hasEnumBug&&collectNonEnumProps(obj,keys),keys}function ie11fingerprint(methods){var length=getLength(methods);return function(obj){if(null==obj)return!1;var keys=allKeys(obj);if(getLength(keys))return!1;for(var i=0;length>i;i++)if(!isFunction$1(obj[methods[i]]))return!1;return methods!==weakMapMethods||!isFunction$1(obj[forEachName])}}function values(obj){for(var _keys=keys(obj),length=_keys.length,values=Array(length),i=0;length>i;i++)values[i]=obj[_keys[i]];return values}function pairs(obj){for(var _keys=keys(obj),length=_keys.length,pairs=Array(length),i=0;length>i;i++)pairs[i]=[_keys[i],obj[_keys[i]]];return pairs}function invert(obj){for(var result={},_keys=keys(obj),i=0,length=_keys.length;length>i;i++)result[obj[_keys[i]]]=_keys[i];return result}function functions(obj){var names=[];for(var key in obj)isFunction$1(obj[key])&&names.push(key);return names.sort()}function createAssigner(keysFunc,defaults){return function(obj){var length=arguments.length;if(defaults&&(obj=Object(obj)),2>length||null==obj)return obj;for(var index=1;length>index;index++)for(var source=arguments[index],keys=keysFunc(source),l=keys.length,i=0;l>i;i++){var key=keys[i];defaults&&void 0!==obj[key]||(obj[key]=source[key])}return obj}}function ctor(){return function(){}}function baseCreate(prototype){if(!isObject(prototype))return{};if(nativeCreate)return nativeCreate(prototype);var Ctor=ctor();Ctor.prototype=prototype;var result=new Ctor;return Ctor.prototype=null,result}function create(prototype,props){var result=baseCreate(prototype);return props&&extendOwn(result,props),result}function clone(obj){return isObject(obj)?isArray(obj)?obj.slice():extend({},obj):obj}function tap(obj,interceptor){return interceptor(obj),obj}function toPath$1(path){return isArray(path)?path:[path]}function toPath(path){return _$1.toPath(path)}function deepGet(obj,path){for(var length=path.length,i=0;length>i;i++){if(null==obj)return void 0;obj=obj[path[i]]}return length?obj:void 0}function get(object,path,defaultValue){var value=deepGet(object,toPath(path));return isUndefined(value)?defaultValue:value}function has(obj,path){path=toPath(path);for(var length=path.length,i=0;length>i;i++){var key=path[i];if(!has$1(obj,key))return!1;obj=obj[key]}return!!length}function identity(value){return value}function matcher(attrs){return attrs=extendOwn({},attrs),function(obj){return isMatch(obj,attrs)}}function property(path){return path=toPath(path),function(obj){return deepGet(obj,path)}}function optimizeCb(func,context,argCount){if(void 0===context)return func;switch(null==argCount?3:argCount){case 1:return function(value){return func.call(context,value)};case 3:return function(value,index,collection){return func.call(context,value,index,collection)};case 4:return function(accumulator,value,index,collection){return func.call(context,accumulator,value,index,collection)}}return function(){return func.apply(context,arguments)}}function baseIteratee(value,context,argCount){return null==value?identity:isFunction$1(value)?optimizeCb(value,context,argCount):isObject(value)&&!isArray(value)?matcher(value):property(value); +}function iteratee(value,context){return baseIteratee(value,context,1/0)}function cb(value,context,argCount){return _$1.iteratee!==iteratee?_$1.iteratee(value,context):baseIteratee(value,context,argCount)}function mapObject(obj,iteratee,context){iteratee=cb(iteratee,context);for(var _keys=keys(obj),length=_keys.length,results={},index=0;length>index;index++){var currentKey=_keys[index];results[currentKey]=iteratee(obj[currentKey],currentKey,obj)}return results}function noop(){}function propertyOf(obj){return null==obj?noop:function(path){return get(obj,path)}}function times(n,iteratee,context){var accum=Array(Math.max(0,n));iteratee=optimizeCb(iteratee,context,1);for(var i=0;n>i;i++)accum[i]=iteratee(i);return accum}function random(min,max){return null==max&&(max=min,min=0),min+Math.floor(Math.random()*(max-min+1))}function createEscaper(map){var escaper=function(match){return map[match]},source="(?:"+keys(map).join("|")+")",testRegexp=RegExp(source),replaceRegexp=RegExp(source,"g");return function(string){return string=null==string?"":""+string,testRegexp.test(string)?string.replace(replaceRegexp,escaper):string}}function escapeChar(match){return"\\"+escapes[match]}function template(text,settings,oldSettings){!settings&&oldSettings&&(settings=oldSettings),settings=defaults({},settings,_$1.templateSettings);var matcher=RegExp([(settings.escape||noMatch).source,(settings.interpolate||noMatch).source,(settings.evaluate||noMatch).source].join("|")+"|$","g"),index=0,source="__p+='";text.replace(matcher,function(match,escape,interpolate,evaluate,offset){return source+=text.slice(index,offset).replace(escapeRegExp,escapeChar),index=offset+match.length,escape?source+="'+\n((__t=("+escape+"))==null?'':_.escape(__t))+\n'":interpolate?source+="'+\n((__t=("+interpolate+"))==null?'':__t)+\n'":evaluate&&(source+="';\n"+evaluate+"\n__p+='"),match}),source+="';\n";var argument=settings.variable;if(argument){if(!bareIdentifier.test(argument))throw new Error("variable is not a bare identifier: "+argument)}else source="with(obj||{}){\n"+source+"}\n",argument="obj";source="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+source+"return __p;\n";var render;try{render=new Function(argument,"_",source)}catch(e){throw e.source=source,e}var template=function(data){return render.call(this,data,_$1)};return template.source="function("+argument+"){\n"+source+"}",template}function result(obj,path,fallback){path=toPath(path);var length=path.length;if(!length)return isFunction$1(fallback)?fallback.call(obj):fallback;for(var i=0;length>i;i++){var prop=null==obj?void 0:obj[path[i]];void 0===prop&&(prop=fallback,i=length),obj=isFunction$1(prop)?prop.call(obj):prop}return obj}function uniqueId(prefix){var id=++idCounter+"";return prefix?prefix+id:id}function chain(obj){var instance=_$1(obj);return instance._chain=!0,instance}function executeBound(sourceFunc,boundFunc,context,callingContext,args){if(!(callingContext instanceof boundFunc))return sourceFunc.apply(context,args);var self=baseCreate(sourceFunc.prototype),result=sourceFunc.apply(self,args);return isObject(result)?result:self}function flatten$1(input,depth,strict,output){if(output=output||[],depth||0===depth){if(0>=depth)return output.concat(input)}else depth=1/0;for(var idx=output.length,i=0,length=getLength(input);length>i;i++){var value=input[i];if(isArrayLike(value)&&(isArray(value)||isArguments$1(value)))if(depth>1)flatten$1(value,depth-1,strict,output),idx=output.length;else for(var j=0,len=value.length;len>j;)output[idx++]=value[j++];else strict||(output[idx++]=value)}return output}function memoize(func,hasher){var memoize=function(key){var cache=memoize.cache,address=""+(hasher?hasher.apply(this,arguments):key);return has$1(cache,address)||(cache[address]=func.apply(this,arguments)),cache[address]};return memoize.cache={},memoize}function throttle(func,wait,options){var timeout,context,args,result,previous=0;options||(options={});var later=function(){previous=options.leading===!1?0:now(),timeout=null,result=func.apply(context,args),timeout||(context=args=null)},throttled=function(){var _now=now();previous||options.leading!==!1||(previous=_now);var remaining=wait-(_now-previous);return context=this,args=arguments,0>=remaining||remaining>wait?(timeout&&(clearTimeout(timeout),timeout=null),previous=_now,result=func.apply(context,args),timeout||(context=args=null)):timeout||options.trailing===!1||(timeout=setTimeout(later,remaining)),result};return throttled.cancel=function(){clearTimeout(timeout),previous=0,timeout=context=args=null},throttled}function debounce(func,wait,immediate){var timeout,previous,args,result,context,later=function(){var passed=now()-previous;wait>passed?timeout=setTimeout(later,wait-passed):(timeout=null,immediate||(result=func.apply(context,args)),timeout||(args=context=null))},debounced=restArguments(function(_args){return context=this,args=_args,previous=now(),timeout||(timeout=setTimeout(later,wait),immediate&&(result=func.apply(context,args))),result});return debounced.cancel=function(){clearTimeout(timeout),timeout=args=context=null},debounced}function wrap(func,wrapper){return partial(wrapper,func)}function negate(predicate){return function(){return!predicate.apply(this,arguments)}}function compose(){var args=arguments,start=args.length-1;return function(){for(var i=start,result=args[start].apply(this,arguments);i--;)result=args[i].call(this,result);return result}}function after(times,func){return function(){return--times<1?func.apply(this,arguments):void 0}}function before(times,func){var memo;return function(){return--times>0&&(memo=func.apply(this,arguments)),1>=times&&(func=null),memo}}function findKey(obj,predicate,context){predicate=cb(predicate,context);for(var key,_keys=keys(obj),i=0,length=_keys.length;length>i;i++)if(key=_keys[i],predicate(obj[key],key,obj))return key}function createPredicateIndexFinder(dir){return function(array,predicate,context){predicate=cb(predicate,context);for(var length=getLength(array),index=dir>0?0:length-1;index>=0&&length>index;index+=dir)if(predicate(array[index],index,array))return index;return-1}}function sortedIndex(array,obj,iteratee,context){iteratee=cb(iteratee,context,1);for(var value=iteratee(obj),low=0,high=getLength(array);high>low;){var mid=Math.floor((low+high)/2);iteratee(array[mid])0?i=idx>=0?idx:Math.max(idx+length,i):length=idx>=0?Math.min(idx+1,length):idx+length+1;else if(sortedIndex&&idx&&length)return idx=sortedIndex(array,item),array[idx]===item?idx:-1;if(item!==item)return idx=predicateFind(slice.call(array,i,length),isNaN$1),idx>=0?idx+i:-1;for(idx=dir>0?i:length-1;idx>=0&&length>idx;idx+=dir)if(array[idx]===item)return idx;return-1}}function find(obj,predicate,context){var keyFinder=isArrayLike(obj)?findIndex:findKey,key=keyFinder(obj,predicate,context);return void 0!==key&&-1!==key?obj[key]:void 0}function findWhere(obj,attrs){return find(obj,matcher(attrs))}function each(obj,iteratee,context){iteratee=optimizeCb(iteratee,context);var i,length;if(isArrayLike(obj))for(i=0,length=obj.length;length>i;i++)iteratee(obj[i],i,obj);else{var _keys=keys(obj);for(i=0,length=_keys.length;length>i;i++)iteratee(obj[_keys[i]],_keys[i],obj)}return obj}function map(obj,iteratee,context){iteratee=cb(iteratee,context);for(var _keys=!isArrayLike(obj)&&keys(obj),length=(_keys||obj).length,results=Array(length),index=0;length>index;index++){var currentKey=_keys?_keys[index]:index;results[index]=iteratee(obj[currentKey],currentKey,obj)}return results}function createReduce(dir){var reducer=function(obj,iteratee,memo,initial){var _keys=!isArrayLike(obj)&&keys(obj),length=(_keys||obj).length,index=dir>0?0:length-1;for(initial||(memo=obj[_keys?_keys[index]:index],index+=dir);index>=0&&length>index;index+=dir){var currentKey=_keys?_keys[index]:index;memo=iteratee(memo,obj[currentKey],currentKey,obj)}return memo};return function(obj,iteratee,memo,context){var initial=arguments.length>=3;return reducer(obj,optimizeCb(iteratee,context,4),memo,initial)}}function filter(obj,predicate,context){var results=[];return predicate=cb(predicate,context),each(obj,function(value,index,list){predicate(value,index,list)&&results.push(value)}),results}function reject(obj,predicate,context){return filter(obj,negate(cb(predicate)),context)}function every(obj,predicate,context){predicate=cb(predicate,context);for(var _keys=!isArrayLike(obj)&&keys(obj),length=(_keys||obj).length,index=0;length>index;index++){var currentKey=_keys?_keys[index]:index;if(!predicate(obj[currentKey],currentKey,obj))return!1}return!0}function some(obj,predicate,context){predicate=cb(predicate,context);for(var _keys=!isArrayLike(obj)&&keys(obj),length=(_keys||obj).length,index=0;length>index;index++){var currentKey=_keys?_keys[index]:index;if(predicate(obj[currentKey],currentKey,obj))return!0}return!1}function contains(obj,item,fromIndex,guard){return isArrayLike(obj)||(obj=values(obj)),("number"!=typeof fromIndex||guard)&&(fromIndex=0),indexOf(obj,item,fromIndex)>=0}function pluck(obj,key){return map(obj,property(key))}function where(obj,attrs){return filter(obj,matcher(attrs))}function max(obj,iteratee,context){var value,computed,result=-(1/0),lastComputed=-(1/0);if(null==iteratee||"number"==typeof iteratee&&"object"!=typeof obj[0]&&null!=obj){obj=isArrayLike(obj)?obj:values(obj);for(var i=0,length=obj.length;length>i;i++)value=obj[i],null!=value&&value>result&&(result=value)}else iteratee=cb(iteratee,context),each(obj,function(v,index,list){computed=iteratee(v,index,list),(computed>lastComputed||computed===-(1/0)&&result===-(1/0))&&(result=v,lastComputed=computed)});return result}function min(obj,iteratee,context){var value,computed,result=1/0,lastComputed=1/0;if(null==iteratee||"number"==typeof iteratee&&"object"!=typeof obj[0]&&null!=obj){obj=isArrayLike(obj)?obj:values(obj);for(var i=0,length=obj.length;length>i;i++)value=obj[i],null!=value&&result>value&&(result=value)}else iteratee=cb(iteratee,context),each(obj,function(v,index,list){computed=iteratee(v,index,list),(lastComputed>computed||computed===1/0&&result===1/0)&&(result=v,lastComputed=computed)});return result}function sample(obj,n,guard){if(null==n||guard)return isArrayLike(obj)||(obj=values(obj)),obj[random(obj.length-1)];var sample=isArrayLike(obj)?clone(obj):values(obj),length=getLength(sample);n=Math.max(Math.min(n,length),0);for(var last=length-1,index=0;n>index;index++){var rand=random(index,last),temp=sample[index];sample[index]=sample[rand],sample[rand]=temp}return sample.slice(0,n)}function shuffle(obj){return sample(obj,1/0)}function sortBy(obj,iteratee,context){var index=0;return iteratee=cb(iteratee,context),pluck(map(obj,function(value,key,list){return{value:value,index:index++,criteria:iteratee(value,key,list)}}).sort(function(left,right){var a=left.criteria,b=right.criteria;if(a!==b){if(a>b||void 0===a)return 1;if(b>a||void 0===b)return-1}return left.index-right.index}),"value")}function group(behavior,partition){return function(obj,iteratee,context){var result=partition?[[],[]]:{};return iteratee=cb(iteratee,context),each(obj,function(value,index){var key=iteratee(value,index,obj);behavior(result,value,key)}),result}}function toArray(obj){return obj?isArray(obj)?slice.call(obj):isString(obj)?obj.match(reStrSymbol):isArrayLike(obj)?map(obj,identity):values(obj):[]}function size(obj){return null==obj?0:isArrayLike(obj)?obj.length:keys(obj).length}function keyInObj(value,key,obj){return key in obj}function initial(array,n,guard){return slice.call(array,0,Math.max(0,array.length-(null==n||guard?1:n)))}function first(array,n,guard){return null==array||array.length<1?null==n||guard?void 0:[]:null==n||guard?array[0]:initial(array,array.length-n)}function rest(array,n,guard){return slice.call(array,null==n||guard?1:n)}function last(array,n,guard){return null==array||array.length<1?null==n||guard?void 0:[]:null==n||guard?array[array.length-1]:rest(array,Math.max(0,array.length-n))}function compact(array){return filter(array,Boolean)}function flatten(array,depth){return flatten$1(array,depth,!1)}function uniq(array,isSorted,iteratee,context){isBoolean(isSorted)||(context=iteratee,iteratee=isSorted,isSorted=!1),null!=iteratee&&(iteratee=cb(iteratee,context));for(var result=[],seen=[],i=0,length=getLength(array);length>i;i++){var value=array[i],computed=iteratee?iteratee(value,i,array):value;isSorted&&!iteratee?(i&&seen===computed||result.push(value),seen=computed):iteratee?contains(seen,computed)||(seen.push(computed),result.push(value)):contains(result,value)||result.push(value)}return result}function intersection(array){for(var result=[],argsLength=arguments.length,i=0,length=getLength(array);length>i;i++){var item=array[i];if(!contains(result,item)){var j;for(j=1;argsLength>j&&contains(arguments[j],item);j++);j===argsLength&&result.push(item)}}return result}function unzip(array){for(var length=array&&max(array,getLength).length||0,result=Array(length),index=0;length>index;index++)result[index]=pluck(array,index);return result}function object(list,values){for(var result={},i=0,length=getLength(list);length>i;i++)values?result[list[i]]=values[i]:result[list[i][0]]=list[i][1];return result}function range(start,stop,step){null==stop&&(stop=start||0,start=0),step||(step=start>stop?-1:1);for(var length=Math.max(Math.ceil((stop-start)/step),0),range=Array(length),idx=0;length>idx;idx++,start+=step)range[idx]=start;return range}function chunk(array,count){if(null==count||1>count)return[];for(var result=[],i=0,length=array.length;length>i;)result.push(slice.call(array,i,i+=count));return result}function chainResult(instance,obj){return instance._chain?_$1(obj).chain():obj}function mixin(obj){return each(functions(obj),function(name){var func=_$1[name]=obj[name];_$1.prototype[name]=function(){var args=[this._wrapped];return push.apply(args,arguments),chainResult(this,func.apply(_$1,args))}}),_$1}var VERSION="1.13.1",root="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},ArrayProto=Array.prototype,ObjProto=Object.prototype,SymbolProto="undefined"!=typeof Symbol?Symbol.prototype:null,push=ArrayProto.push,slice=ArrayProto.slice,toString=ObjProto.toString,hasOwnProperty=ObjProto.hasOwnProperty,supportsArrayBuffer="undefined"!=typeof ArrayBuffer,supportsDataView="undefined"!=typeof DataView,nativeIsArray=Array.isArray,nativeKeys=Object.keys,nativeCreate=Object.create,nativeIsView=supportsArrayBuffer&&ArrayBuffer.isView,_isNaN=isNaN,_isFinite=isFinite,hasEnumBug=!{toString:null}.propertyIsEnumerable("toString"),nonEnumerableProps=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],MAX_ARRAY_INDEX=Math.pow(2,53)-1,isString=tagTester("String"),isNumber=tagTester("Number"),isDate=tagTester("Date"),isRegExp=tagTester("RegExp"),isError=tagTester("Error"),isSymbol=tagTester("Symbol"),isArrayBuffer=tagTester("ArrayBuffer"),isFunction=tagTester("Function"),nodelist=root.document&&root.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof nodelist&&(isFunction=function(obj){return"function"==typeof obj||!1});var isFunction$1=isFunction,hasObjectTag=tagTester("Object"),hasStringTagBug=supportsDataView&&hasObjectTag(new DataView(new ArrayBuffer(8))),isIE11="undefined"!=typeof Map&&hasObjectTag(new Map),isDataView=tagTester("DataView"),isDataView$1=hasStringTagBug?ie10IsDataView:isDataView,isArray=nativeIsArray||tagTester("Array"),isArguments=tagTester("Arguments");!function(){isArguments(arguments)||(isArguments=function(obj){return has$1(obj,"callee")})}();var isArguments$1=isArguments,getByteLength=shallowProperty("byteLength"),isBufferLike=createSizePropertyCheck(getByteLength),typedArrayPattern=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/,isTypedArray$1=supportsArrayBuffer?isTypedArray:constant(!1),getLength=shallowProperty("length");_$1.VERSION=VERSION,_$1.prototype.value=function(){return this._wrapped},_$1.prototype.valueOf=_$1.prototype.toJSON=_$1.prototype.value,_$1.prototype.toString=function(){return String(this._wrapped)};var tagDataView="[object DataView]",forEachName="forEach",hasName="has",commonInit=["clear","delete"],mapTail=["get",hasName,"set"],mapMethods=commonInit.concat(forEachName,mapTail),weakMapMethods=commonInit.concat(mapTail),setMethods=["add"].concat(commonInit,forEachName,hasName),isMap=isIE11?ie11fingerprint(mapMethods):tagTester("Map"),isWeakMap=isIE11?ie11fingerprint(weakMapMethods):tagTester("WeakMap"),isSet=isIE11?ie11fingerprint(setMethods):tagTester("Set"),isWeakSet=tagTester("WeakSet"),extend=createAssigner(allKeys),extendOwn=createAssigner(keys),defaults=createAssigner(allKeys,!0);_$1.toPath=toPath$1,_$1.iteratee=iteratee;var now=Date.now||function(){return(new Date).getTime()},escapeMap={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},_escape=createEscaper(escapeMap),unescapeMap=invert(escapeMap),_unescape=createEscaper(unescapeMap),templateSettings=_$1.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},noMatch=/(.)^/,escapes={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},escapeRegExp=/\\|'|\r|\n|\u2028|\u2029/g,bareIdentifier=/^\s*(\w|\$)+\s*$/,idCounter=0,partial=restArguments(function(func,boundArgs){var placeholder=partial.placeholder,bound=function(){for(var position=0,length=boundArgs.length,args=Array(length),i=0;length>i;i++)args[i]=boundArgs[i]===placeholder?arguments[position++]:boundArgs[i];for(;positionindex)throw new Error("bindAll must be passed function names");for(;index--;){var key=keys[index];obj[key]=bind(obj[key],obj)}return obj}),delay=restArguments(function(func,wait,args){return setTimeout(function(){return func.apply(null,args)},wait)}),defer=partial(delay,_$1,1),once=partial(before,2),findIndex=createPredicateIndexFinder(1),findLastIndex=createPredicateIndexFinder(-1),indexOf=createIndexFinder(1,findIndex,sortedIndex),lastIndexOf=createIndexFinder(-1,findLastIndex),reduce=createReduce(1),reduceRight=createReduce(-1),invoke=restArguments(function(obj,path,args){var contextPath,func;return isFunction$1(path)?func=path:(path=toPath(path),contextPath=path.slice(0,-1),path=path[path.length-1]),map(obj,function(context){var method=func;if(!method){if(contextPath&&contextPath.length&&(context=deepGet(context,contextPath)),null==context)return void 0;method=context[path]}return null==method?method:method.apply(context,args)})}),groupBy=group(function(result,value,key){has$1(result,key)?result[key].push(value):result[key]=[value]}),indexBy=group(function(result,value,key){result[key]=value}),countBy=group(function(result,value,key){has$1(result,key)?result[key]++:result[key]=1}),partition=group(function(result,value,pass){result[pass?0:1].push(value)},!0),reStrSymbol=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g,pick=restArguments(function(obj,keys){var result={},iteratee=keys[0];if(null==obj)return result;isFunction$1(iteratee)?(keys.length>1&&(iteratee=optimizeCb(iteratee,keys[1])),keys=allKeys(obj)):(iteratee=keyInObj,keys=flatten$1(keys,!1,!1),obj=Object(obj));for(var i=0,length=keys.length;length>i;i++){var key=keys[i],value=obj[key];iteratee(value,key,obj)&&(result[key]=value)}return result}),omit=restArguments(function(obj,keys){var context,iteratee=keys[0];return isFunction$1(iteratee)?(iteratee=negate(iteratee),keys.length>1&&(context=keys[1])):(keys=map(flatten$1(keys,!1,!1),String),iteratee=function(value,key){return!contains(keys,key)}),pick(obj,iteratee,context)}),difference=restArguments(function(array,rest){return rest=flatten$1(rest,!0,!0),filter(array,function(value){return!contains(rest,value)})}),without=restArguments(function(array,otherArrays){return difference(array,otherArrays)}),union=restArguments(function(arrays){return uniq(flatten$1(arrays,!0,!0))}),zip=restArguments(unzip);each(["pop","push","reverse","shift","sort","splice","unshift"],function(name){var method=ArrayProto[name];_$1.prototype[name]=function(){var obj=this._wrapped;return null!=obj&&(method.apply(obj,arguments),"shift"!==name&&"splice"!==name||0!==obj.length||delete obj[0]),chainResult(this,obj)}}),each(["concat","join","slice"],function(name){var method=ArrayProto[name];_$1.prototype[name]=function(){var obj=this._wrapped;return null!=obj&&(obj=method.apply(obj,arguments)),chainResult(this,obj)}});var allExports={__proto__:null,VERSION:VERSION,restArguments:restArguments,isObject:isObject,isNull:isNull,isUndefined:isUndefined,isBoolean:isBoolean,isElement:isElement,isString:isString,isNumber:isNumber,isDate:isDate,isRegExp:isRegExp,isError:isError,isSymbol:isSymbol,isArrayBuffer:isArrayBuffer,isDataView:isDataView$1,isArray:isArray,isFunction:isFunction$1,isArguments:isArguments$1,isFinite:isFinite$1,isNaN:isNaN$1,isTypedArray:isTypedArray$1,isEmpty:isEmpty,isMatch:isMatch,isEqual:isEqual,isMap:isMap,isWeakMap:isWeakMap,isSet:isSet,isWeakSet:isWeakSet,keys:keys,allKeys:allKeys,values:values,pairs:pairs,invert:invert,functions:functions,methods:functions,extend:extend,extendOwn:extendOwn,assign:extendOwn,defaults:defaults,create:create,clone:clone,tap:tap,get:get,has:has,mapObject:mapObject,identity:identity,constant:constant,noop:noop,toPath:toPath$1,property:property,propertyOf:propertyOf,matcher:matcher,matches:matcher,times:times,random:random,now:now,escape:_escape,unescape:_unescape,templateSettings:templateSettings,template:template,result:result,uniqueId:uniqueId,chain:chain,iteratee:iteratee,partial:partial,bind:bind,bindAll:bindAll,memoize:memoize,delay:delay,defer:defer,throttle:throttle,debounce:debounce,wrap:wrap,negate:negate,compose:compose,after:after,before:before,once:once,findKey:findKey,findIndex:findIndex,findLastIndex:findLastIndex,sortedIndex:sortedIndex,indexOf:indexOf,lastIndexOf:lastIndexOf,find:find,detect:find,findWhere:findWhere,each:each,forEach:each,map:map,collect:map,reduce:reduce,foldl:reduce,inject:reduce,reduceRight:reduceRight,foldr:reduceRight,filter:filter,select:filter,reject:reject,every:every,all:every,some:some,any:some,contains:contains,includes:contains,include:contains,invoke:invoke,pluck:pluck,where:where,max:max,min:min,shuffle:shuffle,sample:sample,sortBy:sortBy,groupBy:groupBy,indexBy:indexBy,countBy:countBy,partition:partition,toArray:toArray,size:size,pick:pick,omit:omit,first:first,head:first,take:first,initial:initial,last:last,rest:rest,tail:rest,drop:rest,compact:compact,flatten:flatten,without:without,uniq:uniq,unique:uniq,union:union,intersection:intersection,difference:difference,unzip:unzip,transpose:unzip,zip:zip,object:object,range:range,chunk:chunk,mixin:mixin,"default":_$1},_=mixin(allExports);return _._=_,_})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],104:[function(require,module,exports){"function"==typeof Object.create?module.exports=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})}:module.exports=function(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}},{}],105:[function(require,module,exports){module.exports=function(arg){return arg&&"object"==typeof arg&&"function"==typeof arg.copy&&"function"==typeof arg.fill&&"function"==typeof arg.readUInt8}},{}],106:[function(require,module,exports){(function(process,global){function inspect(obj,opts){var ctx={seen:[],stylize:stylizeNoColor};return arguments.length>=3&&(ctx.depth=arguments[2]),arguments.length>=4&&(ctx.colors=arguments[3]),isBoolean(opts)?ctx.showHidden=opts:opts&&exports._extend(ctx,opts),isUndefined(ctx.showHidden)&&(ctx.showHidden=!1),isUndefined(ctx.depth)&&(ctx.depth=2),isUndefined(ctx.colors)&&(ctx.colors=!1),isUndefined(ctx.customInspect)&&(ctx.customInspect=!0),ctx.colors&&(ctx.stylize=stylizeWithColor),formatValue(ctx,obj,ctx.depth)}function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];return style?"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m":str}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};return array.forEach(function(val,idx){hash[val]=!0}),hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&(!value.constructor||value.constructor.prototype!==value)){var ret=value.inspect(recurseTimes,ctx);return isString(ret)||(ret=formatValue(ctx,ret,recurseTimes)),ret}var primitive=formatPrimitive(ctx,value);if(primitive)return primitive;var keys=Object.keys(value),visibleKeys=arrayToHash(keys);if(ctx.showHidden&&(keys=Object.getOwnPropertyNames(value)),isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0))return formatError(value);if(0===keys.length){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value))return ctx.stylize(RegExp.prototype.toString.call(value),"regexp");if(isDate(value))return ctx.stylize(Date.prototype.toString.call(value),"date");if(isError(value))return formatError(value)}var base="",array=!1,braces=["{","}"];if(isArray(value)&&(array=!0,braces=["[","]"]),isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)&&(base=" "+RegExp.prototype.toString.call(value)),isDate(value)&&(base=" "+Date.prototype.toUTCString.call(value)),isError(value)&&(base=" "+formatError(value)),0===keys.length&&(!array||0==value.length))return braces[0]+base+braces[1];if(0>recurseTimes)return isRegExp(value)?ctx.stylize(RegExp.prototype.toString.call(value),"regexp"):ctx.stylize("[Object]","special");ctx.seen.push(value);var output;return output=array?formatArray(ctx,value,recurseTimes,visibleKeys,keys):keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)}),ctx.seen.pop(),reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}return isNumber(value)?ctx.stylize(""+value,"number"):isBoolean(value)?ctx.stylize(""+value,"boolean"):isNull(value)?ctx.stylize("null","null"):void 0}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){for(var output=[],i=0,l=value.length;l>i;++i)hasOwnProperty(value,String(i))?output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,String(i),!0)):output.push("");return keys.forEach(function(key){key.match(/^\d+$/)||output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,key,!0))}),output}function formatProperty(ctx,value,recurseTimes,visibleKeys,key,array){var name,str,desc;if(desc=Object.getOwnPropertyDescriptor(value,key)||{value:value[key]},desc.get?str=desc.set?ctx.stylize("[Getter/Setter]","special"):ctx.stylize("[Getter]","special"):desc.set&&(str=ctx.stylize("[Setter]","special")),hasOwnProperty(visibleKeys,key)||(name="["+key+"]"),str||(ctx.seen.indexOf(desc.value)<0?(str=isNull(recurseTimes)?formatValue(ctx,desc.value,null):formatValue(ctx,desc.value,recurseTimes-1),str.indexOf("\n")>-1&&(str=array?str.split("\n").map(function(line){return" "+line}).join("\n").substr(2):"\n"+str.split("\n").map(function(line){return" "+line}).join("\n"))):str=ctx.stylize("[Circular]","special")),isUndefined(name)){if(array&&key.match(/^\d+$/))return str;name=JSON.stringify(""+key),name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(name=name.substr(1,name.length-2),name=ctx.stylize(name,"name")):(name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),name=ctx.stylize(name,"string"))}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0,length=output.reduce(function(prev,cur){return numLinesEst++,cur.indexOf("\n")>=0&&numLinesEst++,prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);return length>60?braces[0]+(""===base?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]:braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}function isBoolean(arg){return"boolean"==typeof arg}function isNull(arg){return null===arg}function isNullOrUndefined(arg){return null==arg}function isNumber(arg){return"number"==typeof arg}function isString(arg){return"string"==typeof arg}function isSymbol(arg){return"symbol"==typeof arg}function isUndefined(arg){return void 0===arg}function isRegExp(re){return isObject(re)&&"[object RegExp]"===objectToString(re)}function isObject(arg){return"object"==typeof arg&&null!==arg}function isDate(d){return isObject(d)&&"[object Date]"===objectToString(d)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(arg){return"function"==typeof arg}function isPrimitive(arg){return null===arg||"boolean"==typeof arg||"number"==typeof arg||"string"==typeof arg||"symbol"==typeof arg||"undefined"==typeof arg}function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return 10>n?"0"+n.toString(10):n.toString(10)}function timestamp(){var d=new Date,time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){for(var objects=[],i=0;i=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}}),x=args[i];len>i;x=args[++i])str+=isNull(x)||!isObject(x)?" "+x:" "+inspect(x);return str},exports.deprecate=function(fn,msg){function deprecated(){if(!warned){if(process.throwDeprecation)throw new Error(msg);process.traceDeprecation?console.trace(msg):console.error(msg),warned=!0}return fn.apply(this,arguments)}if(isUndefined(global.process))return function(){return exports.deprecate(fn,msg).apply(this,arguments)};if(process.noDeprecation===!0)return fn;var warned=!1;return deprecated};var debugEnviron,debugs={};exports.debuglog=function(set){if(isUndefined(debugEnviron)&&(debugEnviron=process.env.NODE_DEBUG||""),set=set.toUpperCase(),!debugs[set])if(new RegExp("\\b"+set+"\\b","i").test(debugEnviron)){var pid=process.pid;debugs[set]=function(){var msg=exports.format.apply(exports,arguments);console.error("%s %d: %s",set,pid,msg)}}else debugs[set]=function(){};return debugs[set]},exports.inspect=inspect,inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39], +green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},inspect.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},exports.isArray=isArray,exports.isBoolean=isBoolean,exports.isNull=isNull,exports.isNullOrUndefined=isNullOrUndefined,exports.isNumber=isNumber,exports.isString=isString,exports.isSymbol=isSymbol,exports.isUndefined=isUndefined,exports.isRegExp=isRegExp,exports.isObject=isObject,exports.isDate=isDate,exports.isError=isError,exports.isFunction=isFunction,exports.isPrimitive=isPrimitive,exports.isBuffer=require("./support/isBuffer");var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))},exports.inherits=require("inherits"),exports._extend=function(origin,add){if(!add||!isObject(add))return origin;for(var keys=Object.keys(add),i=keys.length;i--;)origin[keys[i]]=add[keys[i]];return origin}}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":105,_process:102,inherits:104}],107:[function(require,module,exports){(function(){var assign,getValue,isArray,isEmpty,isFunction,isObject,isPlainObject,slice=[].slice,hasProp={}.hasOwnProperty;assign=function(){var i,key,len,source,sources,target;if(target=arguments[0],sources=2<=arguments.length?slice.call(arguments,1):[],isFunction(Object.assign))Object.assign.apply(null,arguments);else for(i=0,len=sources.length;len>i;i++)if(source=sources[i],null!=source)for(key in source)hasProp.call(source,key)&&(target[key]=source[key]);return target},isFunction=function(val){return!!val&&"[object Function]"===Object.prototype.toString.call(val)},isObject=function(val){var ref;return!!val&&("function"==(ref=typeof val)||"object"===ref)},isArray=function(val){return isFunction(Array.isArray)?Array.isArray(val):"[object Array]"===Object.prototype.toString.call(val)},isEmpty=function(val){var key;if(isArray(val))return!val.length;for(key in val)if(hasProp.call(val,key))return!1;return!0},isPlainObject=function(val){var ctor,proto;return isObject(val)&&(proto=Object.getPrototypeOf(val))&&(ctor=proto.constructor)&&"function"==typeof ctor&&ctor instanceof ctor&&Function.prototype.toString.call(ctor)===Function.prototype.toString.call(Object)},getValue=function(obj){return isFunction(obj.valueOf)?obj.valueOf():obj},module.exports.assign=assign,module.exports.isFunction=isFunction,module.exports.isObject=isObject,module.exports.isArray=isArray,module.exports.isEmpty=isEmpty,module.exports.isPlainObject=isPlainObject,module.exports.getValue=getValue}).call(this)},{}],108:[function(require,module,exports){(function(){var XMLAttribute;module.exports=XMLAttribute=function(){function XMLAttribute(parent,name,value){if(this.options=parent.options,this.stringify=parent.stringify,this.parent=parent,null==name)throw new Error("Missing attribute name. "+this.debugInfo(name));if(null==value)throw new Error("Missing attribute value. "+this.debugInfo(name));this.name=this.stringify.attName(name),this.value=this.stringify.attValue(value)}return XMLAttribute.prototype.clone=function(){return Object.create(this)},XMLAttribute.prototype.toString=function(options){return this.options.writer.set(options).attribute(this)},XMLAttribute.prototype.debugInfo=function(name){var ref,ref1;return name=name||this.name,null!=name||(null!=(ref=this.parent)?ref.name:void 0)?null==name?"parent: <"+this.parent.name+">":(null!=(ref1=this.parent)?ref1.name:void 0)?"attribute: {"+name+"}, parent: <"+this.parent.name+">":"attribute: {"+name+"}":""},XMLAttribute}()}).call(this)},{}],109:[function(require,module,exports){(function(){var XMLCData,XMLNode,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;XMLNode=require("./XMLNode"),module.exports=XMLCData=function(superClass){function XMLCData(parent,text){if(XMLCData.__super__.constructor.call(this,parent),null==text)throw new Error("Missing CDATA text. "+this.debugInfo());this.text=this.stringify.cdata(text)}return extend(XMLCData,superClass),XMLCData.prototype.clone=function(){return Object.create(this)},XMLCData.prototype.toString=function(options){return this.options.writer.set(options).cdata(this)},XMLCData}(XMLNode)}).call(this)},{"./XMLNode":120}],110:[function(require,module,exports){(function(){var XMLComment,XMLNode,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;XMLNode=require("./XMLNode"),module.exports=XMLComment=function(superClass){function XMLComment(parent,text){if(XMLComment.__super__.constructor.call(this,parent),null==text)throw new Error("Missing comment text. "+this.debugInfo());this.text=this.stringify.comment(text)}return extend(XMLComment,superClass),XMLComment.prototype.clone=function(){return Object.create(this)},XMLComment.prototype.toString=function(options){return this.options.writer.set(options).comment(this)},XMLComment}(XMLNode)}).call(this)},{"./XMLNode":120}],111:[function(require,module,exports){(function(){var XMLDTDAttList,XMLNode,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;XMLNode=require("./XMLNode"),module.exports=XMLDTDAttList=function(superClass){function XMLDTDAttList(parent,elementName,attributeName,attributeType,defaultValueType,defaultValue){if(XMLDTDAttList.__super__.constructor.call(this,parent),null==elementName)throw new Error("Missing DTD element name. "+this.debugInfo());if(null==attributeName)throw new Error("Missing DTD attribute name. "+this.debugInfo(elementName));if(!attributeType)throw new Error("Missing DTD attribute type. "+this.debugInfo(elementName));if(!defaultValueType)throw new Error("Missing DTD attribute default. "+this.debugInfo(elementName));if(0!==defaultValueType.indexOf("#")&&(defaultValueType="#"+defaultValueType),!defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/))throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT. "+this.debugInfo(elementName));if(defaultValue&&!defaultValueType.match(/^(#FIXED|#DEFAULT)$/))throw new Error("Default value only applies to #FIXED or #DEFAULT. "+this.debugInfo(elementName));this.elementName=this.stringify.eleName(elementName),this.attributeName=this.stringify.attName(attributeName),this.attributeType=this.stringify.dtdAttType(attributeType),this.defaultValue=this.stringify.dtdAttDefault(defaultValue),this.defaultValueType=defaultValueType}return extend(XMLDTDAttList,superClass),XMLDTDAttList.prototype.toString=function(options){return this.options.writer.set(options).dtdAttList(this)},XMLDTDAttList}(XMLNode)}).call(this)},{"./XMLNode":120}],112:[function(require,module,exports){(function(){var XMLDTDElement,XMLNode,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;XMLNode=require("./XMLNode"),module.exports=XMLDTDElement=function(superClass){function XMLDTDElement(parent,name,value){if(XMLDTDElement.__super__.constructor.call(this,parent),null==name)throw new Error("Missing DTD element name. "+this.debugInfo());value||(value="(#PCDATA)"),Array.isArray(value)&&(value="("+value.join(",")+")"),this.name=this.stringify.eleName(name),this.value=this.stringify.dtdElementValue(value)}return extend(XMLDTDElement,superClass),XMLDTDElement.prototype.toString=function(options){return this.options.writer.set(options).dtdElement(this)},XMLDTDElement}(XMLNode)}).call(this)},{"./XMLNode":120}],113:[function(require,module,exports){(function(){var XMLDTDEntity,XMLNode,isObject,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;isObject=require("./Utility").isObject,XMLNode=require("./XMLNode"),module.exports=XMLDTDEntity=function(superClass){function XMLDTDEntity(parent,pe,name,value){if(XMLDTDEntity.__super__.constructor.call(this,parent),null==name)throw new Error("Missing DTD entity name. "+this.debugInfo(name));if(null==value)throw new Error("Missing DTD entity value. "+this.debugInfo(name));if(this.pe=!!pe,this.name=this.stringify.eleName(name),isObject(value)){if(!value.pubID&&!value.sysID)throw new Error("Public and/or system identifiers are required for an external entity. "+this.debugInfo(name));if(value.pubID&&!value.sysID)throw new Error("System identifier is required for a public external entity. "+this.debugInfo(name));if(null!=value.pubID&&(this.pubID=this.stringify.dtdPubID(value.pubID)),null!=value.sysID&&(this.sysID=this.stringify.dtdSysID(value.sysID)),null!=value.nData&&(this.nData=this.stringify.dtdNData(value.nData)),this.pe&&this.nData)throw new Error("Notation declaration is not allowed in a parameter entity. "+this.debugInfo(name))}else this.value=this.stringify.dtdEntityValue(value)}return extend(XMLDTDEntity,superClass),XMLDTDEntity.prototype.toString=function(options){return this.options.writer.set(options).dtdEntity(this)},XMLDTDEntity}(XMLNode)}).call(this)},{"./Utility":107,"./XMLNode":120}],114:[function(require,module,exports){(function(){var XMLDTDNotation,XMLNode,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;XMLNode=require("./XMLNode"),module.exports=XMLDTDNotation=function(superClass){function XMLDTDNotation(parent,name,value){if(XMLDTDNotation.__super__.constructor.call(this,parent),null==name)throw new Error("Missing DTD notation name. "+this.debugInfo(name));if(!value.pubID&&!value.sysID)throw new Error("Public or system identifiers are required for an external entity. "+this.debugInfo(name));this.name=this.stringify.eleName(name),null!=value.pubID&&(this.pubID=this.stringify.dtdPubID(value.pubID)),null!=value.sysID&&(this.sysID=this.stringify.dtdSysID(value.sysID))}return extend(XMLDTDNotation,superClass),XMLDTDNotation.prototype.toString=function(options){return this.options.writer.set(options).dtdNotation(this)},XMLDTDNotation}(XMLNode)}).call(this)},{"./XMLNode":120}],115:[function(require,module,exports){(function(){var XMLDeclaration,XMLNode,isObject,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;isObject=require("./Utility").isObject,XMLNode=require("./XMLNode"),module.exports=XMLDeclaration=function(superClass){function XMLDeclaration(parent,version,encoding,standalone){var ref;XMLDeclaration.__super__.constructor.call(this,parent),isObject(version)&&(ref=version,version=ref.version,encoding=ref.encoding,standalone=ref.standalone),version||(version="1.0"),this.version=this.stringify.xmlVersion(version),null!=encoding&&(this.encoding=this.stringify.xmlEncoding(encoding)),null!=standalone&&(this.standalone=this.stringify.xmlStandalone(standalone))}return extend(XMLDeclaration,superClass),XMLDeclaration.prototype.toString=function(options){return this.options.writer.set(options).declaration(this)},XMLDeclaration}(XMLNode)}).call(this)},{"./Utility":107,"./XMLNode":120}],116:[function(require,module,exports){(function(){var XMLDTDAttList,XMLDTDElement,XMLDTDEntity,XMLDTDNotation,XMLDocType,XMLNode,isObject,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;isObject=require("./Utility").isObject,XMLNode=require("./XMLNode"),XMLDTDAttList=require("./XMLDTDAttList"),XMLDTDEntity=require("./XMLDTDEntity"),XMLDTDElement=require("./XMLDTDElement"),XMLDTDNotation=require("./XMLDTDNotation"),module.exports=XMLDocType=function(superClass){function XMLDocType(parent,pubID,sysID){var ref,ref1;XMLDocType.__super__.constructor.call(this,parent),this.name="!DOCTYPE",this.documentObject=parent,isObject(pubID)&&(ref=pubID,pubID=ref.pubID,sysID=ref.sysID),null==sysID&&(ref1=[pubID,sysID],sysID=ref1[0],pubID=ref1[1]),null!=pubID&&(this.pubID=this.stringify.dtdPubID(pubID)),null!=sysID&&(this.sysID=this.stringify.dtdSysID(sysID))}return extend(XMLDocType,superClass),XMLDocType.prototype.element=function(name,value){var child;return child=new XMLDTDElement(this,name,value),this.children.push(child),this},XMLDocType.prototype.attList=function(elementName,attributeName,attributeType,defaultValueType,defaultValue){var child;return child=new XMLDTDAttList(this,elementName,attributeName,attributeType,defaultValueType,defaultValue),this.children.push(child),this},XMLDocType.prototype.entity=function(name,value){var child;return child=new XMLDTDEntity(this,!1,name,value),this.children.push(child),this},XMLDocType.prototype.pEntity=function(name,value){var child;return child=new XMLDTDEntity(this,!0,name,value),this.children.push(child),this},XMLDocType.prototype.notation=function(name,value){var child;return child=new XMLDTDNotation(this,name,value),this.children.push(child),this},XMLDocType.prototype.toString=function(options){return this.options.writer.set(options).docType(this)},XMLDocType.prototype.ele=function(name,value){return this.element(name,value)},XMLDocType.prototype.att=function(elementName,attributeName,attributeType,defaultValueType,defaultValue){return this.attList(elementName,attributeName,attributeType,defaultValueType,defaultValue)},XMLDocType.prototype.ent=function(name,value){return this.entity(name,value)},XMLDocType.prototype.pent=function(name,value){return this.pEntity(name,value)},XMLDocType.prototype.not=function(name,value){return this.notation(name,value)},XMLDocType.prototype.up=function(){return this.root()||this.documentObject},XMLDocType}(XMLNode)}).call(this)},{"./Utility":107,"./XMLDTDAttList":111,"./XMLDTDElement":112,"./XMLDTDEntity":113,"./XMLDTDNotation":114,"./XMLNode":120}],117:[function(require,module,exports){(function(){var XMLDocument,XMLNode,XMLStringWriter,XMLStringifier,isPlainObject,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;isPlainObject=require("./Utility").isPlainObject,XMLNode=require("./XMLNode"),XMLStringifier=require("./XMLStringifier"),XMLStringWriter=require("./XMLStringWriter"),module.exports=XMLDocument=function(superClass){function XMLDocument(options){XMLDocument.__super__.constructor.call(this,null),this.name="?xml",options||(options={}),options.writer||(options.writer=new XMLStringWriter),this.options=options,this.stringify=new XMLStringifier(options),this.isDocument=!0}return extend(XMLDocument,superClass),XMLDocument.prototype.end=function(writer){var writerOptions;return writer?isPlainObject(writer)&&(writerOptions=writer,writer=this.options.writer.set(writerOptions)):writer=this.options.writer,writer.document(this)},XMLDocument.prototype.toString=function(options){return this.options.writer.set(options).document(this)},XMLDocument}(XMLNode)}).call(this)},{"./Utility":107,"./XMLNode":120,"./XMLStringWriter":124,"./XMLStringifier":125}],118:[function(require,module,exports){(function(){var XMLAttribute,XMLCData,XMLComment,XMLDTDAttList,XMLDTDElement,XMLDTDEntity,XMLDTDNotation,XMLDeclaration,XMLDocType,XMLDocumentCB,XMLElement,XMLProcessingInstruction,XMLRaw,XMLStringWriter,XMLStringifier,XMLText,getValue,isFunction,isObject,isPlainObject,ref,hasProp={}.hasOwnProperty;ref=require("./Utility"),isObject=ref.isObject,isFunction=ref.isFunction,isPlainObject=ref.isPlainObject,getValue=ref.getValue,XMLElement=require("./XMLElement"),XMLCData=require("./XMLCData"),XMLComment=require("./XMLComment"),XMLRaw=require("./XMLRaw"),XMLText=require("./XMLText"),XMLProcessingInstruction=require("./XMLProcessingInstruction"),XMLDeclaration=require("./XMLDeclaration"),XMLDocType=require("./XMLDocType"),XMLDTDAttList=require("./XMLDTDAttList"),XMLDTDEntity=require("./XMLDTDEntity"),XMLDTDElement=require("./XMLDTDElement"),XMLDTDNotation=require("./XMLDTDNotation"),XMLAttribute=require("./XMLAttribute"),XMLStringifier=require("./XMLStringifier"),XMLStringWriter=require("./XMLStringWriter"),module.exports=XMLDocumentCB=function(){function XMLDocumentCB(options,onData,onEnd){var writerOptions;this.name="?xml",options||(options={}),options.writer?isPlainObject(options.writer)&&(writerOptions=options.writer,options.writer=new XMLStringWriter(writerOptions)):options.writer=new XMLStringWriter(options),this.options=options,this.writer=options.writer,this.stringify=new XMLStringifier(options),this.onDataCallback=onData||function(){},this.onEndCallback=onEnd||function(){},this.currentNode=null,this.currentLevel=-1,this.openTags={},this.documentStarted=!1,this.documentCompleted=!1,this.root=null}return XMLDocumentCB.prototype.node=function(name,attributes,text){var ref1;if(null==name)throw new Error("Missing node name.");if(this.root&&-1===this.currentLevel)throw new Error("Document can only have one root node. "+this.debugInfo(name));return this.openCurrent(),name=getValue(name),null==attributes&&(attributes={}),attributes=getValue(attributes),isObject(attributes)||(ref1=[attributes,text],text=ref1[0],attributes=ref1[1]),this.currentNode=new XMLElement(this,name,attributes),this.currentNode.children=!1,this.currentLevel++,this.openTags[this.currentLevel]=this.currentNode,null!=text&&this.text(text),this},XMLDocumentCB.prototype.element=function(name,attributes,text){return this.currentNode&&this.currentNode instanceof XMLDocType?this.dtdElement.apply(this,arguments):this.node(name,attributes,text)},XMLDocumentCB.prototype.attribute=function(name,value){var attName,attValue;if(!this.currentNode||this.currentNode.children)throw new Error("att() can only be used immediately after an ele() call in callback mode. "+this.debugInfo(name));if(null!=name&&(name=getValue(name)),isObject(name))for(attName in name)hasProp.call(name,attName)&&(attValue=name[attName],this.attribute(attName,attValue));else isFunction(value)&&(value=value.apply()),this.options.skipNullAttributes&&null==value||(this.currentNode.attributes[name]=new XMLAttribute(this,name,value));return this},XMLDocumentCB.prototype.text=function(value){var node;return this.openCurrent(),node=new XMLText(this,value),this.onData(this.writer.text(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.cdata=function(value){var node;return this.openCurrent(),node=new XMLCData(this,value),this.onData(this.writer.cdata(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.comment=function(value){var node;return this.openCurrent(),node=new XMLComment(this,value),this.onData(this.writer.comment(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.raw=function(value){var node;return this.openCurrent(),node=new XMLRaw(this,value),this.onData(this.writer.raw(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.instruction=function(target,value){var i,insTarget,insValue,len,node;if(this.openCurrent(),null!=target&&(target=getValue(target)),null!=value&&(value=getValue(value)),Array.isArray(target))for(i=0,len=target.length;len>i;i++)insTarget=target[i],this.instruction(insTarget);else if(isObject(target))for(insTarget in target)hasProp.call(target,insTarget)&&(insValue=target[insTarget],this.instruction(insTarget,insValue));else isFunction(value)&&(value=value.apply()),node=new XMLProcessingInstruction(this,target,value),this.onData(this.writer.processingInstruction(node,this.currentLevel+1),this.currentLevel+1);return this},XMLDocumentCB.prototype.declaration=function(version,encoding,standalone){var node;if(this.openCurrent(),this.documentStarted)throw new Error("declaration() must be the first node.");return node=new XMLDeclaration(this,version,encoding,standalone),this.onData(this.writer.declaration(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.doctype=function(root,pubID,sysID){if(this.openCurrent(),null==root)throw new Error("Missing root node name.");if(this.root)throw new Error("dtd() must come before the root node.");return this.currentNode=new XMLDocType(this,pubID,sysID),this.currentNode.rootNodeName=root,this.currentNode.children=!1,this.currentLevel++,this.openTags[this.currentLevel]=this.currentNode,this},XMLDocumentCB.prototype.dtdElement=function(name,value){var node;return this.openCurrent(),node=new XMLDTDElement(this,name,value),this.onData(this.writer.dtdElement(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.attList=function(elementName,attributeName,attributeType,defaultValueType,defaultValue){var node;return this.openCurrent(),node=new XMLDTDAttList(this,elementName,attributeName,attributeType,defaultValueType,defaultValue),this.onData(this.writer.dtdAttList(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.entity=function(name,value){var node;return this.openCurrent(),node=new XMLDTDEntity(this,!1,name,value),this.onData(this.writer.dtdEntity(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.pEntity=function(name,value){var node;return this.openCurrent(),node=new XMLDTDEntity(this,!0,name,value),this.onData(this.writer.dtdEntity(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.notation=function(name,value){var node;return this.openCurrent(),node=new XMLDTDNotation(this,name,value),this.onData(this.writer.dtdNotation(node,this.currentLevel+1),this.currentLevel+1),this},XMLDocumentCB.prototype.up=function(){if(this.currentLevel<0)throw new Error("The document node has no parent.");return this.currentNode?(this.currentNode.children?this.closeNode(this.currentNode):this.openNode(this.currentNode),this.currentNode=null):this.closeNode(this.openTags[this.currentLevel]),delete this.openTags[this.currentLevel],this.currentLevel--,this},XMLDocumentCB.prototype.end=function(){for(;this.currentLevel>=0;)this.up();return this.onEnd()},XMLDocumentCB.prototype.openCurrent=function(){return this.currentNode?(this.currentNode.children=!0,this.openNode(this.currentNode)):void 0},XMLDocumentCB.prototype.openNode=function(node){return node.isOpen?void 0:(!this.root&&0===this.currentLevel&&node instanceof XMLElement&&(this.root=node),this.onData(this.writer.openNode(node,this.currentLevel),this.currentLevel),node.isOpen=!0)},XMLDocumentCB.prototype.closeNode=function(node){return node.isClosed?void 0:(this.onData(this.writer.closeNode(node,this.currentLevel),this.currentLevel),node.isClosed=!0)},XMLDocumentCB.prototype.onData=function(chunk,level){return this.documentStarted=!0,this.onDataCallback(chunk,level+1)},XMLDocumentCB.prototype.onEnd=function(){return this.documentCompleted=!0,this.onEndCallback()},XMLDocumentCB.prototype.debugInfo=function(name){return null==name?"":"node: <"+name+">"},XMLDocumentCB.prototype.ele=function(){return this.element.apply(this,arguments)},XMLDocumentCB.prototype.nod=function(name,attributes,text){return this.node(name,attributes,text)},XMLDocumentCB.prototype.txt=function(value){return this.text(value)},XMLDocumentCB.prototype.dat=function(value){return this.cdata(value)},XMLDocumentCB.prototype.com=function(value){return this.comment(value)},XMLDocumentCB.prototype.ins=function(target,value){return this.instruction(target,value)},XMLDocumentCB.prototype.dec=function(version,encoding,standalone){return this.declaration(version,encoding,standalone)},XMLDocumentCB.prototype.dtd=function(root,pubID,sysID){return this.doctype(root,pubID,sysID)},XMLDocumentCB.prototype.e=function(name,attributes,text){return this.element(name,attributes,text)},XMLDocumentCB.prototype.n=function(name,attributes,text){return this.node(name,attributes,text)},XMLDocumentCB.prototype.t=function(value){return this.text(value)},XMLDocumentCB.prototype.d=function(value){return this.cdata(value)},XMLDocumentCB.prototype.c=function(value){return this.comment(value)},XMLDocumentCB.prototype.r=function(value){return this.raw(value)},XMLDocumentCB.prototype.i=function(target,value){return this.instruction(target,value)},XMLDocumentCB.prototype.att=function(){return this.currentNode&&this.currentNode instanceof XMLDocType?this.attList.apply(this,arguments):this.attribute.apply(this,arguments)},XMLDocumentCB.prototype.a=function(){return this.currentNode&&this.currentNode instanceof XMLDocType?this.attList.apply(this,arguments):this.attribute.apply(this,arguments)},XMLDocumentCB.prototype.ent=function(name,value){return this.entity(name,value)},XMLDocumentCB.prototype.pent=function(name,value){return this.pEntity(name,value)},XMLDocumentCB.prototype.not=function(name,value){return this.notation(name,value)},XMLDocumentCB}()}).call(this)},{"./Utility":107,"./XMLAttribute":108,"./XMLCData":109,"./XMLComment":110,"./XMLDTDAttList":111,"./XMLDTDElement":112,"./XMLDTDEntity":113,"./XMLDTDNotation":114,"./XMLDeclaration":115,"./XMLDocType":116,"./XMLElement":119,"./XMLProcessingInstruction":121,"./XMLRaw":122,"./XMLStringWriter":124,"./XMLStringifier":125,"./XMLText":126}],119:[function(require,module,exports){(function(){var XMLAttribute,XMLElement,XMLNode,getValue,isFunction,isObject,ref,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;ref=require("./Utility"),isObject=ref.isObject,isFunction=ref.isFunction,getValue=ref.getValue,XMLNode=require("./XMLNode"),XMLAttribute=require("./XMLAttribute"),module.exports=XMLElement=function(superClass){function XMLElement(parent,name,attributes){if(XMLElement.__super__.constructor.call(this,parent),null==name)throw new Error("Missing element name. "+this.debugInfo());this.name=this.stringify.eleName(name),this.attributes={},null!=attributes&&this.attribute(attributes),parent.isDocument&&(this.isRoot=!0,this.documentObject=parent,parent.rootObject=this)}return extend(XMLElement,superClass),XMLElement.prototype.clone=function(){var att,attName,clonedSelf,ref1;clonedSelf=Object.create(this),clonedSelf.isRoot&&(clonedSelf.documentObject=null),clonedSelf.attributes={},ref1=this.attributes;for(attName in ref1)hasProp.call(ref1,attName)&&(att=ref1[attName],clonedSelf.attributes[attName]=att.clone());return clonedSelf.children=[],this.children.forEach(function(child){var clonedChild;return clonedChild=child.clone(),clonedChild.parent=clonedSelf,clonedSelf.children.push(clonedChild)}),clonedSelf},XMLElement.prototype.attribute=function(name,value){var attName,attValue;if(null!=name&&(name=getValue(name)),isObject(name))for(attName in name)hasProp.call(name,attName)&&(attValue=name[attName],this.attribute(attName,attValue));else isFunction(value)&&(value=value.apply()),this.options.skipNullAttributes&&null==value||(this.attributes[name]=new XMLAttribute(this,name,value));return this},XMLElement.prototype.removeAttribute=function(name){var attName,i,len;if(null==name)throw new Error("Missing attribute name. "+this.debugInfo());if(name=getValue(name),Array.isArray(name))for(i=0,len=name.length;len>i;i++)attName=name[i],delete this.attributes[attName];else delete this.attributes[name];return this},XMLElement.prototype.toString=function(options){return this.options.writer.set(options).element(this)},XMLElement.prototype.att=function(name,value){return this.attribute(name,value)},XMLElement.prototype.a=function(name,value){return this.attribute(name,value)},XMLElement}(XMLNode)}).call(this)},{"./Utility":107,"./XMLAttribute":108,"./XMLNode":120}],120:[function(require,module,exports){(function(){var XMLCData,XMLComment,XMLDeclaration,XMLDocType,XMLElement,XMLNode,XMLProcessingInstruction,XMLRaw,XMLText,getValue,isEmpty,isFunction,isObject,ref,hasProp={}.hasOwnProperty;ref=require("./Utility"),isObject=ref.isObject,isFunction=ref.isFunction,isEmpty=ref.isEmpty,getValue=ref.getValue,XMLElement=null,XMLCData=null,XMLComment=null,XMLDeclaration=null,XMLDocType=null,XMLRaw=null,XMLText=null,XMLProcessingInstruction=null,module.exports=XMLNode=function(){function XMLNode(parent){this.parent=parent,this.parent&&(this.options=this.parent.options,this.stringify=this.parent.stringify),this.children=[],XMLElement||(XMLElement=require("./XMLElement"),XMLCData=require("./XMLCData"),XMLComment=require("./XMLComment"),XMLDeclaration=require("./XMLDeclaration"),XMLDocType=require("./XMLDocType"),XMLRaw=require("./XMLRaw"),XMLText=require("./XMLText"),XMLProcessingInstruction=require("./XMLProcessingInstruction"))}return XMLNode.prototype.element=function(name,attributes,text){var childNode,item,j,k,key,lastChild,len,len1,ref1,val;if(lastChild=null,null==attributes&&(attributes={}),attributes=getValue(attributes),isObject(attributes)||(ref1=[attributes,text],text=ref1[0],attributes=ref1[1]),null!=name&&(name=getValue(name)),Array.isArray(name))for(j=0,len=name.length;len>j;j++)item=name[j],lastChild=this.element(item);else if(isFunction(name))lastChild=this.element(name.apply());else if(isObject(name)){for(key in name)if(hasProp.call(name,key))if(val=name[key],isFunction(val)&&(val=val.apply()),isObject(val)&&isEmpty(val)&&(val=null),!this.options.ignoreDecorators&&this.stringify.convertAttKey&&0===key.indexOf(this.stringify.convertAttKey))lastChild=this.attribute(key.substr(this.stringify.convertAttKey.length),val);else if(!this.options.separateArrayItems&&Array.isArray(val))for(k=0,len1=val.length;len1>k;k++)item=val[k],childNode={},childNode[key]=item,lastChild=this.element(childNode);else isObject(val)?(lastChild=this.element(key),lastChild.element(val)):lastChild=this.element(key,val)}else lastChild=!this.options.ignoreDecorators&&this.stringify.convertTextKey&&0===name.indexOf(this.stringify.convertTextKey)?this.text(text):!this.options.ignoreDecorators&&this.stringify.convertCDataKey&&0===name.indexOf(this.stringify.convertCDataKey)?this.cdata(text):!this.options.ignoreDecorators&&this.stringify.convertCommentKey&&0===name.indexOf(this.stringify.convertCommentKey)?this.comment(text):!this.options.ignoreDecorators&&this.stringify.convertRawKey&&0===name.indexOf(this.stringify.convertRawKey)?this.raw(text):!this.options.ignoreDecorators&&this.stringify.convertPIKey&&0===name.indexOf(this.stringify.convertPIKey)?this.instruction(name.substr(this.stringify.convertPIKey.length),text):this.node(name,attributes,text);if(null==lastChild)throw new Error("Could not create any elements with: "+name+". "+this.debugInfo());return lastChild},XMLNode.prototype.insertBefore=function(name,attributes,text){var child,i,removed;if(this.isRoot)throw new Error("Cannot insert elements at root level. "+this.debugInfo(name)); +return i=this.parent.children.indexOf(this),removed=this.parent.children.splice(i),child=this.parent.element(name,attributes,text),Array.prototype.push.apply(this.parent.children,removed),child},XMLNode.prototype.insertAfter=function(name,attributes,text){var child,i,removed;if(this.isRoot)throw new Error("Cannot insert elements at root level. "+this.debugInfo(name));return i=this.parent.children.indexOf(this),removed=this.parent.children.splice(i+1),child=this.parent.element(name,attributes,text),Array.prototype.push.apply(this.parent.children,removed),child},XMLNode.prototype.remove=function(){var i,ref1;if(this.isRoot)throw new Error("Cannot remove the root element. "+this.debugInfo());return i=this.parent.children.indexOf(this),[].splice.apply(this.parent.children,[i,i-i+1].concat(ref1=[])),ref1,this.parent},XMLNode.prototype.node=function(name,attributes,text){var child,ref1;return null!=name&&(name=getValue(name)),attributes||(attributes={}),attributes=getValue(attributes),isObject(attributes)||(ref1=[attributes,text],text=ref1[0],attributes=ref1[1]),child=new XMLElement(this,name,attributes),null!=text&&child.text(text),this.children.push(child),child},XMLNode.prototype.text=function(value){var child;return child=new XMLText(this,value),this.children.push(child),this},XMLNode.prototype.cdata=function(value){var child;return child=new XMLCData(this,value),this.children.push(child),this},XMLNode.prototype.comment=function(value){var child;return child=new XMLComment(this,value),this.children.push(child),this},XMLNode.prototype.commentBefore=function(value){var child,i,removed;return i=this.parent.children.indexOf(this),removed=this.parent.children.splice(i),child=this.parent.comment(value),Array.prototype.push.apply(this.parent.children,removed),this},XMLNode.prototype.commentAfter=function(value){var child,i,removed;return i=this.parent.children.indexOf(this),removed=this.parent.children.splice(i+1),child=this.parent.comment(value),Array.prototype.push.apply(this.parent.children,removed),this},XMLNode.prototype.raw=function(value){var child;return child=new XMLRaw(this,value),this.children.push(child),this},XMLNode.prototype.instruction=function(target,value){var insTarget,insValue,instruction,j,len;if(null!=target&&(target=getValue(target)),null!=value&&(value=getValue(value)),Array.isArray(target))for(j=0,len=target.length;len>j;j++)insTarget=target[j],this.instruction(insTarget);else if(isObject(target))for(insTarget in target)hasProp.call(target,insTarget)&&(insValue=target[insTarget],this.instruction(insTarget,insValue));else isFunction(value)&&(value=value.apply()),instruction=new XMLProcessingInstruction(this,target,value),this.children.push(instruction);return this},XMLNode.prototype.instructionBefore=function(target,value){var child,i,removed;return i=this.parent.children.indexOf(this),removed=this.parent.children.splice(i),child=this.parent.instruction(target,value),Array.prototype.push.apply(this.parent.children,removed),this},XMLNode.prototype.instructionAfter=function(target,value){var child,i,removed;return i=this.parent.children.indexOf(this),removed=this.parent.children.splice(i+1),child=this.parent.instruction(target,value),Array.prototype.push.apply(this.parent.children,removed),this},XMLNode.prototype.declaration=function(version,encoding,standalone){var doc,xmldec;return doc=this.document(),xmldec=new XMLDeclaration(doc,version,encoding,standalone),doc.children[0]instanceof XMLDeclaration?doc.children[0]=xmldec:doc.children.unshift(xmldec),doc.root()||doc},XMLNode.prototype.doctype=function(pubID,sysID){var child,doc,doctype,i,j,k,len,len1,ref1,ref2;for(doc=this.document(),doctype=new XMLDocType(doc,pubID,sysID),ref1=doc.children,i=j=0,len=ref1.length;len>j;i=++j)if(child=ref1[i],child instanceof XMLDocType)return doc.children[i]=doctype,doctype;for(ref2=doc.children,i=k=0,len1=ref2.length;len1>k;i=++k)if(child=ref2[i],child.isRoot)return doc.children.splice(i,0,doctype),doctype;return doc.children.push(doctype),doctype},XMLNode.prototype.up=function(){if(this.isRoot)throw new Error("The root node has no parent. Use doc() if you need to get the document object.");return this.parent},XMLNode.prototype.root=function(){var node;for(node=this;node;){if(node.isDocument)return node.rootObject;if(node.isRoot)return node;node=node.parent}},XMLNode.prototype.document=function(){var node;for(node=this;node;){if(node.isDocument)return node;node=node.parent}},XMLNode.prototype.end=function(options){return this.document().end(options)},XMLNode.prototype.prev=function(){var i;if(i=this.parent.children.indexOf(this),1>i)throw new Error("Already at the first node. "+this.debugInfo());return this.parent.children[i-1]},XMLNode.prototype.next=function(){var i;if(i=this.parent.children.indexOf(this),-1===i||i===this.parent.children.length-1)throw new Error("Already at the last node. "+this.debugInfo());return this.parent.children[i+1]},XMLNode.prototype.importDocument=function(doc){var clonedRoot;return clonedRoot=doc.root().clone(),clonedRoot.parent=this,clonedRoot.isRoot=!1,this.children.push(clonedRoot),this},XMLNode.prototype.debugInfo=function(name){var ref1,ref2;return name=name||this.name,null!=name||(null!=(ref1=this.parent)?ref1.name:void 0)?null==name?"parent: <"+this.parent.name+">":(null!=(ref2=this.parent)?ref2.name:void 0)?"node: <"+name+">, parent: <"+this.parent.name+">":"node: <"+name+">":""},XMLNode.prototype.ele=function(name,attributes,text){return this.element(name,attributes,text)},XMLNode.prototype.nod=function(name,attributes,text){return this.node(name,attributes,text)},XMLNode.prototype.txt=function(value){return this.text(value)},XMLNode.prototype.dat=function(value){return this.cdata(value)},XMLNode.prototype.com=function(value){return this.comment(value)},XMLNode.prototype.ins=function(target,value){return this.instruction(target,value)},XMLNode.prototype.doc=function(){return this.document()},XMLNode.prototype.dec=function(version,encoding,standalone){return this.declaration(version,encoding,standalone)},XMLNode.prototype.dtd=function(pubID,sysID){return this.doctype(pubID,sysID)},XMLNode.prototype.e=function(name,attributes,text){return this.element(name,attributes,text)},XMLNode.prototype.n=function(name,attributes,text){return this.node(name,attributes,text)},XMLNode.prototype.t=function(value){return this.text(value)},XMLNode.prototype.d=function(value){return this.cdata(value)},XMLNode.prototype.c=function(value){return this.comment(value)},XMLNode.prototype.r=function(value){return this.raw(value)},XMLNode.prototype.i=function(target,value){return this.instruction(target,value)},XMLNode.prototype.u=function(){return this.up()},XMLNode.prototype.importXMLBuilder=function(doc){return this.importDocument(doc)},XMLNode}()}).call(this)},{"./Utility":107,"./XMLCData":109,"./XMLComment":110,"./XMLDeclaration":115,"./XMLDocType":116,"./XMLElement":119,"./XMLProcessingInstruction":121,"./XMLRaw":122,"./XMLText":126}],121:[function(require,module,exports){(function(){var XMLNode,XMLProcessingInstruction,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;XMLNode=require("./XMLNode"),module.exports=XMLProcessingInstruction=function(superClass){function XMLProcessingInstruction(parent,target,value){if(XMLProcessingInstruction.__super__.constructor.call(this,parent),null==target)throw new Error("Missing instruction target. "+this.debugInfo());this.target=this.stringify.insTarget(target),value&&(this.value=this.stringify.insValue(value))}return extend(XMLProcessingInstruction,superClass),XMLProcessingInstruction.prototype.clone=function(){return Object.create(this)},XMLProcessingInstruction.prototype.toString=function(options){return this.options.writer.set(options).processingInstruction(this)},XMLProcessingInstruction}(XMLNode)}).call(this)},{"./XMLNode":120}],122:[function(require,module,exports){(function(){var XMLNode,XMLRaw,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;XMLNode=require("./XMLNode"),module.exports=XMLRaw=function(superClass){function XMLRaw(parent,text){if(XMLRaw.__super__.constructor.call(this,parent),null==text)throw new Error("Missing raw text. "+this.debugInfo());this.value=this.stringify.raw(text)}return extend(XMLRaw,superClass),XMLRaw.prototype.clone=function(){return Object.create(this)},XMLRaw.prototype.toString=function(options){return this.options.writer.set(options).raw(this)},XMLRaw}(XMLNode)}).call(this)},{"./XMLNode":120}],123:[function(require,module,exports){(function(){var XMLCData,XMLComment,XMLDTDAttList,XMLDTDElement,XMLDTDEntity,XMLDTDNotation,XMLDeclaration,XMLDocType,XMLElement,XMLProcessingInstruction,XMLRaw,XMLStreamWriter,XMLText,XMLWriterBase,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;XMLDeclaration=require("./XMLDeclaration"),XMLDocType=require("./XMLDocType"),XMLCData=require("./XMLCData"),XMLComment=require("./XMLComment"),XMLElement=require("./XMLElement"),XMLRaw=require("./XMLRaw"),XMLText=require("./XMLText"),XMLProcessingInstruction=require("./XMLProcessingInstruction"),XMLDTDAttList=require("./XMLDTDAttList"),XMLDTDElement=require("./XMLDTDElement"),XMLDTDEntity=require("./XMLDTDEntity"),XMLDTDNotation=require("./XMLDTDNotation"),XMLWriterBase=require("./XMLWriterBase"),module.exports=XMLStreamWriter=function(superClass){function XMLStreamWriter(stream,options){XMLStreamWriter.__super__.constructor.call(this,options),this.stream=stream}return extend(XMLStreamWriter,superClass),XMLStreamWriter.prototype.document=function(doc){var child,i,j,len,len1,ref,ref1,results;for(ref=doc.children,i=0,len=ref.length;len>i;i++)child=ref[i],child.isLastRootNode=!1;for(doc.children[doc.children.length-1].isLastRootNode=!0,ref1=doc.children,results=[],j=0,len1=ref1.length;len1>j;j++)switch(child=ref1[j],!1){case!(child instanceof XMLDeclaration):results.push(this.declaration(child));break;case!(child instanceof XMLDocType):results.push(this.docType(child));break;case!(child instanceof XMLComment):results.push(this.comment(child));break;case!(child instanceof XMLProcessingInstruction):results.push(this.processingInstruction(child));break;default:results.push(this.element(child))}return results},XMLStreamWriter.prototype.attribute=function(att){return this.stream.write(" "+att.name+'="'+att.value+'"')},XMLStreamWriter.prototype.cdata=function(node,level){return this.stream.write(this.space(level)+""+this.endline(node))},XMLStreamWriter.prototype.comment=function(node,level){return this.stream.write(this.space(level)+""+this.endline(node))},XMLStreamWriter.prototype.declaration=function(node,level){return this.stream.write(this.space(level)),this.stream.write('"),this.stream.write(this.endline(node))},XMLStreamWriter.prototype.docType=function(node,level){var child,i,len,ref;if(level||(level=0),this.stream.write(this.space(level)),this.stream.write("0){for(this.stream.write(" ["),this.stream.write(this.endline(node)),ref=node.children,i=0,len=ref.length;len>i;i++)switch(child=ref[i],!1){case!(child instanceof XMLDTDAttList):this.dtdAttList(child,level+1);break;case!(child instanceof XMLDTDElement):this.dtdElement(child,level+1);break;case!(child instanceof XMLDTDEntity):this.dtdEntity(child,level+1);break;case!(child instanceof XMLDTDNotation):this.dtdNotation(child,level+1);break;case!(child instanceof XMLCData):this.cdata(child,level+1);break;case!(child instanceof XMLComment):this.comment(child,level+1);break;case!(child instanceof XMLProcessingInstruction):this.processingInstruction(child,level+1);break;default:throw new Error("Unknown DTD node type: "+child.constructor.name)}this.stream.write("]")}return this.stream.write(this.spacebeforeslash+">"),this.stream.write(this.endline(node))},XMLStreamWriter.prototype.element=function(node,level){var att,child,i,len,name,ref,ref1,space;level||(level=0),space=this.space(level),this.stream.write(space+"<"+node.name),ref=node.attributes;for(name in ref)hasProp.call(ref,name)&&(att=ref[name],this.attribute(att));if(0===node.children.length||node.children.every(function(e){return""===e.value}))this.allowEmpty?this.stream.write(">"):this.stream.write(this.spacebeforeslash+"/>");else if(this.pretty&&1===node.children.length&&null!=node.children[0].value)this.stream.write(">"),this.stream.write(node.children[0].value),this.stream.write("");else{for(this.stream.write(">"+this.newline),ref1=node.children,i=0,len=ref1.length;len>i;i++)switch(child=ref1[i],!1){case!(child instanceof XMLCData):this.cdata(child,level+1);break;case!(child instanceof XMLComment):this.comment(child,level+1);break;case!(child instanceof XMLElement):this.element(child,level+1);break;case!(child instanceof XMLRaw):this.raw(child,level+1);break;case!(child instanceof XMLText):this.text(child,level+1);break;case!(child instanceof XMLProcessingInstruction):this.processingInstruction(child,level+1);break;default:throw new Error("Unknown XML node type: "+child.constructor.name)}this.stream.write(space+"")}return this.stream.write(this.endline(node))},XMLStreamWriter.prototype.processingInstruction=function(node,level){return this.stream.write(this.space(level)+""+this.endline(node))},XMLStreamWriter.prototype.raw=function(node,level){return this.stream.write(this.space(level)+node.value+this.endline(node))},XMLStreamWriter.prototype.text=function(node,level){return this.stream.write(this.space(level)+node.value+this.endline(node))},XMLStreamWriter.prototype.dtdAttList=function(node,level){return this.stream.write(this.space(level)+""+this.endline(node))},XMLStreamWriter.prototype.dtdElement=function(node,level){return this.stream.write(this.space(level)+""+this.endline(node))},XMLStreamWriter.prototype.dtdEntity=function(node,level){return this.stream.write(this.space(level)+""+this.endline(node))},XMLStreamWriter.prototype.dtdNotation=function(node,level){return this.stream.write(this.space(level)+""+this.endline(node))},XMLStreamWriter.prototype.endline=function(node){return node.isLastRootNode?"":this.newline},XMLStreamWriter}(XMLWriterBase)}).call(this)},{"./XMLCData":109,"./XMLComment":110,"./XMLDTDAttList":111,"./XMLDTDElement":112,"./XMLDTDEntity":113,"./XMLDTDNotation":114,"./XMLDeclaration":115,"./XMLDocType":116,"./XMLElement":119,"./XMLProcessingInstruction":121,"./XMLRaw":122,"./XMLText":126,"./XMLWriterBase":127}],124:[function(require,module,exports){(function(){var XMLCData,XMLComment,XMLDTDAttList,XMLDTDElement,XMLDTDEntity,XMLDTDNotation,XMLDeclaration,XMLDocType,XMLElement,XMLProcessingInstruction,XMLRaw,XMLStringWriter,XMLText,XMLWriterBase,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;XMLDeclaration=require("./XMLDeclaration"),XMLDocType=require("./XMLDocType"),XMLCData=require("./XMLCData"),XMLComment=require("./XMLComment"),XMLElement=require("./XMLElement"),XMLRaw=require("./XMLRaw"),XMLText=require("./XMLText"),XMLProcessingInstruction=require("./XMLProcessingInstruction"),XMLDTDAttList=require("./XMLDTDAttList"),XMLDTDElement=require("./XMLDTDElement"),XMLDTDEntity=require("./XMLDTDEntity"),XMLDTDNotation=require("./XMLDTDNotation"),XMLWriterBase=require("./XMLWriterBase"),module.exports=XMLStringWriter=function(superClass){function XMLStringWriter(options){XMLStringWriter.__super__.constructor.call(this,options)}return extend(XMLStringWriter,superClass),XMLStringWriter.prototype.document=function(doc){var child,i,len,r,ref;for(this.textispresent=!1,r="",ref=doc.children,i=0,len=ref.length;len>i;i++)child=ref[i],r+=function(){switch(!1){case!(child instanceof XMLDeclaration):return this.declaration(child);case!(child instanceof XMLDocType):return this.docType(child);case!(child instanceof XMLComment):return this.comment(child);case!(child instanceof XMLProcessingInstruction):return this.processingInstruction(child);default:return this.element(child,0)}}.call(this);return this.pretty&&r.slice(-this.newline.length)===this.newline&&(r=r.slice(0,-this.newline.length)),r},XMLStringWriter.prototype.attribute=function(att){return" "+att.name+'="'+att.value+'"'},XMLStringWriter.prototype.cdata=function(node,level){return this.space(level)+""+this.newline},XMLStringWriter.prototype.comment=function(node,level){return this.space(level)+""+this.newline},XMLStringWriter.prototype.declaration=function(node,level){var r;return r=this.space(level),r+='",r+=this.newline},XMLStringWriter.prototype.docType=function(node,level){var child,i,len,r,ref;if(level||(level=0),r=this.space(level),r+="0){for(r+=" [",r+=this.newline,ref=node.children,i=0,len=ref.length;len>i;i++)child=ref[i],r+=function(){switch(!1){case!(child instanceof XMLDTDAttList):return this.dtdAttList(child,level+1);case!(child instanceof XMLDTDElement):return this.dtdElement(child,level+1);case!(child instanceof XMLDTDEntity):return this.dtdEntity(child,level+1);case!(child instanceof XMLDTDNotation):return this.dtdNotation(child,level+1);case!(child instanceof XMLCData):return this.cdata(child,level+1);case!(child instanceof XMLComment):return this.comment(child,level+1);case!(child instanceof XMLProcessingInstruction):return this.processingInstruction(child,level+1);default:throw new Error("Unknown DTD node type: "+child.constructor.name)}}.call(this);r+="]"}return r+=this.spacebeforeslash+">",r+=this.newline},XMLStringWriter.prototype.element=function(node,level){var att,child,i,j,len,len1,name,r,ref,ref1,ref2,space,textispresentwasset;level||(level=0),textispresentwasset=!1,this.textispresent?(this.newline="",this.pretty=!1):(this.newline=this.newlinedefault,this.pretty=this.prettydefault),space=this.space(level),r="",r+=space+"<"+node.name,ref=node.attributes;for(name in ref)hasProp.call(ref,name)&&(att=ref[name],r+=this.attribute(att));if(0===node.children.length||node.children.every(function(e){return""===e.value}))r+=this.allowEmpty?">"+this.newline:this.spacebeforeslash+"/>"+this.newline;else if(this.pretty&&1===node.children.length&&null!=node.children[0].value)r+=">",r+=node.children[0].value,r+=""+this.newline;else{if(this.dontprettytextnodes)for(ref1=node.children,i=0,len=ref1.length;len>i;i++)if(child=ref1[i],null!=child.value){this.textispresent++,textispresentwasset=!0;break}for(this.textispresent&&(this.newline="",this.pretty=!1,space=this.space(level)),r+=">"+this.newline,ref2=node.children,j=0,len1=ref2.length;len1>j;j++)child=ref2[j],r+=function(){switch(!1){case!(child instanceof XMLCData):return this.cdata(child,level+1);case!(child instanceof XMLComment):return this.comment(child,level+1);case!(child instanceof XMLElement):return this.element(child,level+1);case!(child instanceof XMLRaw):return this.raw(child,level+1);case!(child instanceof XMLText):return this.text(child,level+1);case!(child instanceof XMLProcessingInstruction):return this.processingInstruction(child,level+1);default:throw new Error("Unknown XML node type: "+child.constructor.name)}}.call(this);textispresentwasset&&this.textispresent--,this.textispresent||(this.newline=this.newlinedefault,this.pretty=this.prettydefault),r+=space+""+this.newline}return r},XMLStringWriter.prototype.processingInstruction=function(node,level){var r;return r=this.space(level)+""+this.newline},XMLStringWriter.prototype.raw=function(node,level){return this.space(level)+node.value+this.newline},XMLStringWriter.prototype.text=function(node,level){return this.space(level)+node.value+this.newline},XMLStringWriter.prototype.dtdAttList=function(node,level){var r;return r=this.space(level)+""+this.newline},XMLStringWriter.prototype.dtdElement=function(node,level){return this.space(level)+""+this.newline},XMLStringWriter.prototype.dtdEntity=function(node,level){var r;return r=this.space(level)+""+this.newline},XMLStringWriter.prototype.dtdNotation=function(node,level){var r;return r=this.space(level)+""+this.newline},XMLStringWriter.prototype.openNode=function(node,level){var att,name,r,ref;if(level||(level=0),node instanceof XMLElement){r=this.space(level)+"<"+node.name,ref=node.attributes;for(name in ref)hasProp.call(ref,name)&&(att=ref[name],r+=this.attribute(att));return r+=(node.children?">":"/>")+this.newline}return r=this.space(level)+"")+this.newline},XMLStringWriter.prototype.closeNode=function(node,level){switch(level||(level=0),!1){case!(node instanceof XMLElement):return this.space(level)+""+this.newline;case!(node instanceof XMLDocType):return this.space(level)+"]>"+this.newline}},XMLStringWriter}(XMLWriterBase)}).call(this)},{"./XMLCData":109,"./XMLComment":110,"./XMLDTDAttList":111,"./XMLDTDElement":112,"./XMLDTDEntity":113,"./XMLDTDNotation":114,"./XMLDeclaration":115,"./XMLDocType":116,"./XMLElement":119,"./XMLProcessingInstruction":121,"./XMLRaw":122,"./XMLText":126,"./XMLWriterBase":127}],125:[function(require,module,exports){(function(){var XMLStringifier,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},hasProp={}.hasOwnProperty;module.exports=XMLStringifier=function(){function XMLStringifier(options){this.assertLegalChar=bind(this.assertLegalChar,this);var key,ref,value;options||(options={}),this.noDoubleEncoding=options.noDoubleEncoding,ref=options.stringify||{};for(key in ref)hasProp.call(ref,key)&&(value=ref[key],this[key]=value)}return XMLStringifier.prototype.eleName=function(val){return val=""+val||"",this.assertLegalChar(val)},XMLStringifier.prototype.eleText=function(val){return val=""+val||"",this.assertLegalChar(this.elEscape(val))},XMLStringifier.prototype.cdata=function(val){return val=""+val||"",val=val.replace("]]>","]]]]>"),this.assertLegalChar(val)},XMLStringifier.prototype.comment=function(val){if(val=""+val||"",val.match(/--/))throw new Error("Comment text cannot contain double-hypen: "+val);return this.assertLegalChar(val)},XMLStringifier.prototype.raw=function(val){return""+val||""},XMLStringifier.prototype.attName=function(val){return val=""+val||""},XMLStringifier.prototype.attValue=function(val){return val=""+val||"",this.attEscape(val)},XMLStringifier.prototype.insTarget=function(val){return""+val||""},XMLStringifier.prototype.insValue=function(val){if(val=""+val||"",val.match(/\?>/))throw new Error("Invalid processing instruction value: "+val);return val},XMLStringifier.prototype.xmlVersion=function(val){if(val=""+val||"",!val.match(/1\.[0-9]+/))throw new Error("Invalid version number: "+val);return val},XMLStringifier.prototype.xmlEncoding=function(val){if(val=""+val||"",!val.match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/))throw new Error("Invalid encoding: "+val);return val},XMLStringifier.prototype.xmlStandalone=function(val){return val?"yes":"no"},XMLStringifier.prototype.dtdPubID=function(val){return""+val||""},XMLStringifier.prototype.dtdSysID=function(val){return""+val||""},XMLStringifier.prototype.dtdElementValue=function(val){return""+val||""},XMLStringifier.prototype.dtdAttType=function(val){return""+val||""},XMLStringifier.prototype.dtdAttDefault=function(val){return null!=val?""+val||"":val},XMLStringifier.prototype.dtdEntityValue=function(val){return""+val||""},XMLStringifier.prototype.dtdNData=function(val){return""+val||""},XMLStringifier.prototype.convertAttKey="@",XMLStringifier.prototype.convertPIKey="?",XMLStringifier.prototype.convertTextKey="#text",XMLStringifier.prototype.convertCDataKey="#cdata",XMLStringifier.prototype.convertCommentKey="#comment",XMLStringifier.prototype.convertRawKey="#raw",XMLStringifier.prototype.assertLegalChar=function(str){var res;if(res=str.match(/[\0\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/))throw new Error("Invalid character in string: "+str+" at index "+res.index);return str},XMLStringifier.prototype.elEscape=function(str){var ampregex;return ampregex=this.noDoubleEncoding?/(?!&\S+;)&/g:/&/g,str.replace(ampregex,"&").replace(//g,">").replace(/\r/g," ")},XMLStringifier.prototype.attEscape=function(str){var ampregex;return ampregex=this.noDoubleEncoding?/(?!&\S+;)&/g:/&/g,str.replace(ampregex,"&").replace(/0?new Array(indent).join(this.indent):""):""},XMLWriterBase}()}).call(this)},{}],128:[function(require,module,exports){(function(){var XMLDocument,XMLDocumentCB,XMLStreamWriter,XMLStringWriter,assign,isFunction,ref;ref=require("./Utility"),assign=ref.assign,isFunction=ref.isFunction,XMLDocument=require("./XMLDocument"),XMLDocumentCB=require("./XMLDocumentCB"),XMLStringWriter=require("./XMLStringWriter"),XMLStreamWriter=require("./XMLStreamWriter"),module.exports.create=function(name,xmldec,doctype,options){var doc,root;if(null==name)throw new Error("Root element needs a name.");return options=assign({},xmldec,doctype,options),doc=new XMLDocument(options),root=doc.element(name),options.headless||(doc.declaration(options),(null!=options.pubID||null!=options.sysID)&&doc.doctype(options)),root},module.exports.begin=function(options,onData,onEnd){var ref1;return isFunction(options)&&(ref1=[options,onData],onData=ref1[0],onEnd=ref1[1],options={}),onData?new XMLDocumentCB(options,onData,onEnd):new XMLDocument(options)},module.exports.stringWriter=function(options){return new XMLStringWriter(options)},module.exports.streamWriter=function(stream,options){return new XMLStreamWriter(stream,options)}}).call(this)},{"./Utility":107,"./XMLDocument":117,"./XMLDocumentCB":118,"./XMLStreamWriter":123,"./XMLStringWriter":124 +}]},{},[21])(21)}); diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/contentimport/showdown.min.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/contentimport/showdown.min.js new file mode 100644 index 0000000..cf721d9 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/contentimport/showdown.min.js @@ -0,0 +1,3 @@ +/*! showdown v 2.1.0 - 21-04-2022 */ +!function(){function a(e){"use strict";var r={omitExtraWLInCodeBlocks:{defaultValue:!1,describe:"Omit the default extra whiteline added to code blocks",type:"boolean"},noHeaderId:{defaultValue:!1,describe:"Turn on/off generated header id",type:"boolean"},prefixHeaderId:{defaultValue:!1,describe:"Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic 'section-' prefix",type:"string"},rawPrefixHeaderId:{defaultValue:!1,describe:'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)',type:"boolean"},ghCompatibleHeaderId:{defaultValue:!1,describe:"Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)",type:"boolean"},rawHeaderId:{defaultValue:!1,describe:"Remove only spaces, ' and \" from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids",type:"boolean"},headerLevelStart:{defaultValue:!1,describe:"The header blocks level start",type:"integer"},parseImgDimensions:{defaultValue:!1,describe:"Turn on/off image dimension parsing",type:"boolean"},simplifiedAutoLink:{defaultValue:!1,describe:"Turn on/off GFM autolink style",type:"boolean"},excludeTrailingPunctuationFromURLs:{defaultValue:!1,describe:"Excludes trailing punctuation from links generated with autoLinking",type:"boolean"},literalMidWordUnderscores:{defaultValue:!1,describe:"Parse midword underscores as literal underscores",type:"boolean"},literalMidWordAsterisks:{defaultValue:!1,describe:"Parse midword asterisks as literal asterisks",type:"boolean"},strikethrough:{defaultValue:!1,describe:"Turn on/off strikethrough support",type:"boolean"},tables:{defaultValue:!1,describe:"Turn on/off tables support",type:"boolean"},tablesHeaderId:{defaultValue:!1,describe:"Add an id to table headers",type:"boolean"},ghCodeBlocks:{defaultValue:!0,describe:"Turn on/off GFM fenced code blocks support",type:"boolean"},tasklists:{defaultValue:!1,describe:"Turn on/off GFM tasklist support",type:"boolean"},smoothLivePreview:{defaultValue:!1,describe:"Prevents weird effects in live previews due to incomplete input",type:"boolean"},smartIndentationFix:{defaultValue:!1,describe:"Tries to smartly fix indentation in es6 strings",type:"boolean"},disableForced4SpacesIndentedSublists:{defaultValue:!1,describe:"Disables the requirement of indenting nested sublists by 4 spaces",type:"boolean"},simpleLineBreaks:{defaultValue:!1,describe:"Parses simple line breaks as
    (GFM Style)",type:"boolean"},requireSpaceBeforeHeadingText:{defaultValue:!1,describe:"Makes adding a space between `#` and the header text mandatory (GFM Style)",type:"boolean"},ghMentions:{defaultValue:!1,describe:"Enables github @mentions",type:"boolean"},ghMentionsLink:{defaultValue:"https://github.com/{u}",describe:"Changes the link generated by @mentions. Only applies if ghMentions option is enabled.",type:"string"},encodeEmails:{defaultValue:!0,describe:"Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities",type:"boolean"},openLinksInNewWindow:{defaultValue:!1,describe:"Open all links in new windows",type:"boolean"},backslashEscapesHTMLTags:{defaultValue:!1,describe:"Support for HTML Tag escaping. ex:
    foo
    ",type:"boolean"},emoji:{defaultValue:!1,describe:"Enable emoji support. Ex: `this is a :smile: emoji`",type:"boolean"},underline:{defaultValue:!1,describe:"Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `` and ``",type:"boolean"},ellipsis:{defaultValue:!0,describe:"Replaces three dots with the ellipsis unicode character",type:"boolean"},completeHTMLDocument:{defaultValue:!1,describe:"Outputs a complete html document, including ``, `` and `` tags",type:"boolean"},metadata:{defaultValue:!1,describe:"Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).",type:"boolean"},splitAdjacentBlockquotes:{defaultValue:!1,describe:"Split adjacent blockquote blocks",type:"boolean"}};if(!1===e)return JSON.parse(JSON.stringify(r));var t,a={};for(t in r)r.hasOwnProperty(t)&&(a[t]=r[t].defaultValue);return a}var x={},t={},d={},p=a(!0),h="vanilla",_={github:{omitExtraWLInCodeBlocks:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,disableForced4SpacesIndentedSublists:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghCompatibleHeaderId:!0,ghMentions:!0,backslashEscapesHTMLTags:!0,emoji:!0,splitAdjacentBlockquotes:!0},original:{noHeaderId:!0,ghCodeBlocks:!1},ghost:{omitExtraWLInCodeBlocks:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,smoothLivePreview:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!1,encodeEmails:!0},vanilla:a(!0),allOn:function(){"use strict";var e,r=a(!0),t={};for(e in r)r.hasOwnProperty(e)&&(t[e]=!0);return t}()};function g(e,r){"use strict";var t=r?"Error in "+r+" extension->":"Error in unnamed extension",a={valid:!0,error:""};x.helper.isArray(e)||(e=[e]);for(var n=0;n").replace(/&/g,"&")};function u(e,r,t,a){"use strict";var n,s,o,i=-1<(a=a||"").indexOf("g"),l=new RegExp(r+"|"+t,"g"+a.replace(/g/g,"")),c=new RegExp(r,a.replace(/g/g,"")),u=[];do{for(n=0;p=l.exec(e);)if(c.test(p[0]))n++||(o=(s=l.lastIndex)-p[0].length);else if(n&&!--n){var d=p.index+p[0].length,p={left:{start:o,end:s},match:{start:s,end:p.index},right:{start:p.index,end:d},wholeMatch:{start:o,end:d}};if(u.push(p),!i)return u}}while(n&&(l.lastIndex=s));return u}function s(u){"use strict";return function(e,r,t,a,n,s,o){var i=t=t.replace(x.helper.regexes.asteriskDashAndColon,x.helper.escapeCharactersCallback),l="",c="",r=r||"",o=o||"";return/^www\./i.test(t)&&(t=t.replace(/^www\./i,"http://www.")),u.excludeTrailingPunctuationFromURLs&&s&&(l=s),r+'"+i+""+l+o}}function o(n,s){"use strict";return function(e,r,t){var a="mailto:";return r=r||"",t=x.subParser("unescapeSpecialChars")(t,n,s),n.encodeEmails?(a=x.helper.encodeEmailAddress(a+t),t=x.helper.encodeEmailAddress(t)):a+=t,r+''+t+""}}x.helper.matchRecursiveRegExp=function(e,r,t,a){"use strict";for(var n=u(e,r,t,a),s=[],o=0;o>=0,t=String(t||" "),e.length>r?String(e):((r-=e.length)>t.length&&(t+=t.repeat(r/t.length)),String(e)+t.slice(0,r))},"undefined"==typeof console&&(console={warn:function(e){"use strict";alert(e)},log:function(e){"use strict";alert(e)},error:function(e){"use strict";throw e}}),x.helper.regexes={asteriskDashAndColon:/([*_:~])/g},x.helper.emojis={"+1":"👍","-1":"👎",100:"💯",1234:"🔢","1st_place_medal":"🥇","2nd_place_medal":"🥈","3rd_place_medal":"🥉","8ball":"🎱",a:"🅰️",ab:"🆎",abc:"🔤",abcd:"🔡",accept:"🉑",aerial_tramway:"🚡",airplane:"✈️",alarm_clock:"⏰",alembic:"⚗️",alien:"👽",ambulance:"🚑",amphora:"🏺",anchor:"⚓️",angel:"👼",anger:"💢",angry:"😠",anguished:"😧",ant:"🐜",apple:"🍎",aquarius:"♒️",aries:"♈️",arrow_backward:"◀️",arrow_double_down:"⏬",arrow_double_up:"⏫",arrow_down:"⬇️",arrow_down_small:"🔽",arrow_forward:"▶️",arrow_heading_down:"⤵️",arrow_heading_up:"⤴️",arrow_left:"⬅️",arrow_lower_left:"↙️",arrow_lower_right:"↘️",arrow_right:"➡️",arrow_right_hook:"↪️",arrow_up:"⬆️",arrow_up_down:"↕️",arrow_up_small:"🔼",arrow_upper_left:"↖️",arrow_upper_right:"↗️",arrows_clockwise:"🔃",arrows_counterclockwise:"🔄",art:"🎨",articulated_lorry:"🚛",artificial_satellite:"🛰",astonished:"😲",athletic_shoe:"👟",atm:"🏧",atom_symbol:"⚛️",avocado:"🥑",b:"🅱️",baby:"👶",baby_bottle:"🍼",baby_chick:"🐤",baby_symbol:"🚼",back:"🔙",bacon:"🥓",badminton:"🏸",baggage_claim:"🛄",baguette_bread:"🥖",balance_scale:"⚖️",balloon:"🎈",ballot_box:"🗳",ballot_box_with_check:"☑️",bamboo:"🎍",banana:"🍌",bangbang:"‼️",bank:"🏦",bar_chart:"📊",barber:"💈",baseball:"⚾️",basketball:"🏀",basketball_man:"⛹️",basketball_woman:"⛹️‍♀️",bat:"🦇",bath:"🛀",bathtub:"🛁",battery:"🔋",beach_umbrella:"🏖",bear:"🐻",bed:"🛏",bee:"🐝",beer:"🍺",beers:"🍻",beetle:"🐞",beginner:"🔰",bell:"🔔",bellhop_bell:"🛎",bento:"🍱",biking_man:"🚴",bike:"🚲",biking_woman:"🚴‍♀️",bikini:"👙",biohazard:"☣️",bird:"🐦",birthday:"🎂",black_circle:"⚫️",black_flag:"🏴",black_heart:"🖤",black_joker:"🃏",black_large_square:"⬛️",black_medium_small_square:"◾️",black_medium_square:"◼️",black_nib:"✒️",black_small_square:"▪️",black_square_button:"🔲",blonde_man:"👱",blonde_woman:"👱‍♀️",blossom:"🌼",blowfish:"🐡",blue_book:"📘",blue_car:"🚙",blue_heart:"💙",blush:"😊",boar:"🐗",boat:"⛵️",bomb:"💣",book:"📖",bookmark:"🔖",bookmark_tabs:"📑",books:"📚",boom:"💥",boot:"👢",bouquet:"💐",bowing_man:"🙇",bow_and_arrow:"🏹",bowing_woman:"🙇‍♀️",bowling:"🎳",boxing_glove:"🥊",boy:"👦",bread:"🍞",bride_with_veil:"👰",bridge_at_night:"🌉",briefcase:"💼",broken_heart:"💔",bug:"🐛",building_construction:"🏗",bulb:"💡",bullettrain_front:"🚅",bullettrain_side:"🚄",burrito:"🌯",bus:"🚌",business_suit_levitating:"🕴",busstop:"🚏",bust_in_silhouette:"👤",busts_in_silhouette:"👥",butterfly:"🦋",cactus:"🌵",cake:"🍰",calendar:"📆",call_me_hand:"🤙",calling:"📲",camel:"🐫",camera:"📷",camera_flash:"📸",camping:"🏕",cancer:"♋️",candle:"🕯",candy:"🍬",canoe:"🛶",capital_abcd:"🔠",capricorn:"♑️",car:"🚗",card_file_box:"🗃",card_index:"📇",card_index_dividers:"🗂",carousel_horse:"🎠",carrot:"🥕",cat:"🐱",cat2:"🐈",cd:"💿",chains:"⛓",champagne:"🍾",chart:"💹",chart_with_downwards_trend:"📉",chart_with_upwards_trend:"📈",checkered_flag:"🏁",cheese:"🧀",cherries:"🍒",cherry_blossom:"🌸",chestnut:"🌰",chicken:"🐔",children_crossing:"🚸",chipmunk:"🐿",chocolate_bar:"🍫",christmas_tree:"🎄",church:"⛪️",cinema:"🎦",circus_tent:"🎪",city_sunrise:"🌇",city_sunset:"🌆",cityscape:"🏙",cl:"🆑",clamp:"🗜",clap:"👏",clapper:"🎬",classical_building:"🏛",clinking_glasses:"🥂",clipboard:"📋",clock1:"🕐",clock10:"🕙",clock1030:"🕥",clock11:"🕚",clock1130:"🕦",clock12:"🕛",clock1230:"🕧",clock130:"🕜",clock2:"🕑",clock230:"🕝",clock3:"🕒",clock330:"🕞",clock4:"🕓",clock430:"🕟",clock5:"🕔",clock530:"🕠",clock6:"🕕",clock630:"🕡",clock7:"🕖",clock730:"🕢",clock8:"🕗",clock830:"🕣",clock9:"🕘",clock930:"🕤",closed_book:"📕",closed_lock_with_key:"🔐",closed_umbrella:"🌂",cloud:"☁️",cloud_with_lightning:"🌩",cloud_with_lightning_and_rain:"⛈",cloud_with_rain:"🌧",cloud_with_snow:"🌨",clown_face:"🤡",clubs:"♣️",cocktail:"🍸",coffee:"☕️",coffin:"⚰️",cold_sweat:"😰",comet:"☄️",computer:"💻",computer_mouse:"🖱",confetti_ball:"🎊",confounded:"😖",confused:"😕",congratulations:"㊗️",construction:"🚧",construction_worker_man:"👷",construction_worker_woman:"👷‍♀️",control_knobs:"🎛",convenience_store:"🏪",cookie:"🍪",cool:"🆒",policeman:"👮",copyright:"©️",corn:"🌽",couch_and_lamp:"🛋",couple:"👫",couple_with_heart_woman_man:"💑",couple_with_heart_man_man:"👨‍❤️‍👨",couple_with_heart_woman_woman:"👩‍❤️‍👩",couplekiss_man_man:"👨‍❤️‍💋‍👨",couplekiss_man_woman:"💏",couplekiss_woman_woman:"👩‍❤️‍💋‍👩",cow:"🐮",cow2:"🐄",cowboy_hat_face:"🤠",crab:"🦀",crayon:"🖍",credit_card:"💳",crescent_moon:"🌙",cricket:"🏏",crocodile:"🐊",croissant:"🥐",crossed_fingers:"🤞",crossed_flags:"🎌",crossed_swords:"⚔️",crown:"👑",cry:"😢",crying_cat_face:"😿",crystal_ball:"🔮",cucumber:"🥒",cupid:"💘",curly_loop:"➰",currency_exchange:"💱",curry:"🍛",custard:"🍮",customs:"🛃",cyclone:"🌀",dagger:"🗡",dancer:"💃",dancing_women:"👯",dancing_men:"👯‍♂️",dango:"🍡",dark_sunglasses:"🕶",dart:"🎯",dash:"💨",date:"📅",deciduous_tree:"🌳",deer:"🦌",department_store:"🏬",derelict_house:"🏚",desert:"🏜",desert_island:"🏝",desktop_computer:"🖥",male_detective:"🕵️",diamond_shape_with_a_dot_inside:"💠",diamonds:"♦️",disappointed:"😞",disappointed_relieved:"😥",dizzy:"💫",dizzy_face:"😵",do_not_litter:"🚯",dog:"🐶",dog2:"🐕",dollar:"💵",dolls:"🎎",dolphin:"🐬",door:"🚪",doughnut:"🍩",dove:"🕊",dragon:"🐉",dragon_face:"🐲",dress:"👗",dromedary_camel:"🐪",drooling_face:"🤤",droplet:"💧",drum:"🥁",duck:"🦆",dvd:"📀","e-mail":"📧",eagle:"🦅",ear:"👂",ear_of_rice:"🌾",earth_africa:"🌍",earth_americas:"🌎",earth_asia:"🌏",egg:"🥚",eggplant:"🍆",eight_pointed_black_star:"✴️",eight_spoked_asterisk:"✳️",electric_plug:"🔌",elephant:"🐘",email:"✉️",end:"🔚",envelope_with_arrow:"📩",euro:"💶",european_castle:"🏰",european_post_office:"🏤",evergreen_tree:"🌲",exclamation:"❗️",expressionless:"😑",eye:"👁",eye_speech_bubble:"👁‍🗨",eyeglasses:"👓",eyes:"👀",face_with_head_bandage:"🤕",face_with_thermometer:"🤒",fist_oncoming:"👊",factory:"🏭",fallen_leaf:"🍂",family_man_woman_boy:"👪",family_man_boy:"👨‍👦",family_man_boy_boy:"👨‍👦‍👦",family_man_girl:"👨‍👧",family_man_girl_boy:"👨‍👧‍👦",family_man_girl_girl:"👨‍👧‍👧",family_man_man_boy:"👨‍👨‍👦",family_man_man_boy_boy:"👨‍👨‍👦‍👦",family_man_man_girl:"👨‍👨‍👧",family_man_man_girl_boy:"👨‍👨‍👧‍👦",family_man_man_girl_girl:"👨‍👨‍👧‍👧",family_man_woman_boy_boy:"👨‍👩‍👦‍👦",family_man_woman_girl:"👨‍👩‍👧",family_man_woman_girl_boy:"👨‍👩‍👧‍👦",family_man_woman_girl_girl:"👨‍👩‍👧‍👧",family_woman_boy:"👩‍👦",family_woman_boy_boy:"👩‍👦‍👦",family_woman_girl:"👩‍👧",family_woman_girl_boy:"👩‍👧‍👦",family_woman_girl_girl:"👩‍👧‍👧",family_woman_woman_boy:"👩‍👩‍👦",family_woman_woman_boy_boy:"👩‍👩‍👦‍👦",family_woman_woman_girl:"👩‍👩‍👧",family_woman_woman_girl_boy:"👩‍👩‍👧‍👦",family_woman_woman_girl_girl:"👩‍👩‍👧‍👧",fast_forward:"⏩",fax:"📠",fearful:"😨",feet:"🐾",female_detective:"🕵️‍♀️",ferris_wheel:"🎡",ferry:"⛴",field_hockey:"🏑",file_cabinet:"🗄",file_folder:"📁",film_projector:"📽",film_strip:"🎞",fire:"🔥",fire_engine:"🚒",fireworks:"🎆",first_quarter_moon:"🌓",first_quarter_moon_with_face:"🌛",fish:"🐟",fish_cake:"🍥",fishing_pole_and_fish:"🎣",fist_raised:"✊",fist_left:"🤛",fist_right:"🤜",flags:"🎏",flashlight:"🔦",fleur_de_lis:"⚜️",flight_arrival:"🛬",flight_departure:"🛫",floppy_disk:"💾",flower_playing_cards:"🎴",flushed:"😳",fog:"🌫",foggy:"🌁",football:"🏈",footprints:"👣",fork_and_knife:"🍴",fountain:"⛲️",fountain_pen:"🖋",four_leaf_clover:"🍀",fox_face:"🦊",framed_picture:"🖼",free:"🆓",fried_egg:"🍳",fried_shrimp:"🍤",fries:"🍟",frog:"🐸",frowning:"😦",frowning_face:"☹️",frowning_man:"🙍‍♂️",frowning_woman:"🙍",middle_finger:"🖕",fuelpump:"⛽️",full_moon:"🌕",full_moon_with_face:"🌝",funeral_urn:"⚱️",game_die:"🎲",gear:"⚙️",gem:"💎",gemini:"♊️",ghost:"👻",gift:"🎁",gift_heart:"💝",girl:"👧",globe_with_meridians:"🌐",goal_net:"🥅",goat:"🐐",golf:"⛳️",golfing_man:"🏌️",golfing_woman:"🏌️‍♀️",gorilla:"🦍",grapes:"🍇",green_apple:"🍏",green_book:"📗",green_heart:"💚",green_salad:"🥗",grey_exclamation:"❕",grey_question:"❔",grimacing:"😬",grin:"😁",grinning:"😀",guardsman:"💂",guardswoman:"💂‍♀️",guitar:"🎸",gun:"🔫",haircut_woman:"💇",haircut_man:"💇‍♂️",hamburger:"🍔",hammer:"🔨",hammer_and_pick:"⚒",hammer_and_wrench:"🛠",hamster:"🐹",hand:"✋",handbag:"👜",handshake:"🤝",hankey:"💩",hatched_chick:"🐥",hatching_chick:"🐣",headphones:"🎧",hear_no_evil:"🙉",heart:"❤️",heart_decoration:"💟",heart_eyes:"😍",heart_eyes_cat:"😻",heartbeat:"💓",heartpulse:"💗",hearts:"♥️",heavy_check_mark:"✔️",heavy_division_sign:"➗",heavy_dollar_sign:"💲",heavy_heart_exclamation:"❣️",heavy_minus_sign:"➖",heavy_multiplication_x:"✖️",heavy_plus_sign:"➕",helicopter:"🚁",herb:"🌿",hibiscus:"🌺",high_brightness:"🔆",high_heel:"👠",hocho:"🔪",hole:"🕳",honey_pot:"🍯",horse:"🐴",horse_racing:"🏇",hospital:"🏥",hot_pepper:"🌶",hotdog:"🌭",hotel:"🏨",hotsprings:"♨️",hourglass:"⌛️",hourglass_flowing_sand:"⏳",house:"🏠",house_with_garden:"🏡",houses:"🏘",hugs:"🤗",hushed:"😯",ice_cream:"🍨",ice_hockey:"🏒",ice_skate:"⛸",icecream:"🍦",id:"🆔",ideograph_advantage:"🉐",imp:"👿",inbox_tray:"📥",incoming_envelope:"📨",tipping_hand_woman:"💁",information_source:"ℹ️",innocent:"😇",interrobang:"⁉️",iphone:"📱",izakaya_lantern:"🏮",jack_o_lantern:"🎃",japan:"🗾",japanese_castle:"🏯",japanese_goblin:"👺",japanese_ogre:"👹",jeans:"👖",joy:"😂",joy_cat:"😹",joystick:"🕹",kaaba:"🕋",key:"🔑",keyboard:"⌨️",keycap_ten:"🔟",kick_scooter:"🛴",kimono:"👘",kiss:"💋",kissing:"😗",kissing_cat:"😽",kissing_closed_eyes:"😚",kissing_heart:"😘",kissing_smiling_eyes:"😙",kiwi_fruit:"🥝",koala:"🐨",koko:"🈁",label:"🏷",large_blue_circle:"🔵",large_blue_diamond:"🔷",large_orange_diamond:"🔶",last_quarter_moon:"🌗",last_quarter_moon_with_face:"🌜",latin_cross:"✝️",laughing:"😆",leaves:"🍃",ledger:"📒",left_luggage:"🛅",left_right_arrow:"↔️",leftwards_arrow_with_hook:"↩️",lemon:"🍋",leo:"♌️",leopard:"🐆",level_slider:"🎚",libra:"♎️",light_rail:"🚈",link:"🔗",lion:"🦁",lips:"👄",lipstick:"💄",lizard:"🦎",lock:"🔒",lock_with_ink_pen:"🔏",lollipop:"🍭",loop:"➿",loud_sound:"🔊",loudspeaker:"📢",love_hotel:"🏩",love_letter:"💌",low_brightness:"🔅",lying_face:"🤥",m:"Ⓜ️",mag:"🔍",mag_right:"🔎",mahjong:"🀄️",mailbox:"📫",mailbox_closed:"📪",mailbox_with_mail:"📬",mailbox_with_no_mail:"📭",man:"👨",man_artist:"👨‍🎨",man_astronaut:"👨‍🚀",man_cartwheeling:"🤸‍♂️",man_cook:"👨‍🍳",man_dancing:"🕺",man_facepalming:"🤦‍♂️",man_factory_worker:"👨‍🏭",man_farmer:"👨‍🌾",man_firefighter:"👨‍🚒",man_health_worker:"👨‍⚕️",man_in_tuxedo:"🤵",man_judge:"👨‍⚖️",man_juggling:"🤹‍♂️",man_mechanic:"👨‍🔧",man_office_worker:"👨‍💼",man_pilot:"👨‍✈️",man_playing_handball:"🤾‍♂️",man_playing_water_polo:"🤽‍♂️",man_scientist:"👨‍🔬",man_shrugging:"🤷‍♂️",man_singer:"👨‍🎤",man_student:"👨‍🎓",man_teacher:"👨‍🏫",man_technologist:"👨‍💻",man_with_gua_pi_mao:"👲",man_with_turban:"👳",tangerine:"🍊",mans_shoe:"👞",mantelpiece_clock:"🕰",maple_leaf:"🍁",martial_arts_uniform:"🥋",mask:"😷",massage_woman:"💆",massage_man:"💆‍♂️",meat_on_bone:"🍖",medal_military:"🎖",medal_sports:"🏅",mega:"📣",melon:"🍈",memo:"📝",men_wrestling:"🤼‍♂️",menorah:"🕎",mens:"🚹",metal:"🤘",metro:"🚇",microphone:"🎤",microscope:"🔬",milk_glass:"🥛",milky_way:"🌌",minibus:"🚐",minidisc:"💽",mobile_phone_off:"📴",money_mouth_face:"🤑",money_with_wings:"💸",moneybag:"💰",monkey:"🐒",monkey_face:"🐵",monorail:"🚝",moon:"🌔",mortar_board:"🎓",mosque:"🕌",motor_boat:"🛥",motor_scooter:"🛵",motorcycle:"🏍",motorway:"🛣",mount_fuji:"🗻",mountain:"⛰",mountain_biking_man:"🚵",mountain_biking_woman:"🚵‍♀️",mountain_cableway:"🚠",mountain_railway:"🚞",mountain_snow:"🏔",mouse:"🐭",mouse2:"🐁",movie_camera:"🎥",moyai:"🗿",mrs_claus:"🤶",muscle:"💪",mushroom:"🍄",musical_keyboard:"🎹",musical_note:"🎵",musical_score:"🎼",mute:"🔇",nail_care:"💅",name_badge:"📛",national_park:"🏞",nauseated_face:"🤢",necktie:"👔",negative_squared_cross_mark:"❎",nerd_face:"🤓",neutral_face:"😐",new:"🆕",new_moon:"🌑",new_moon_with_face:"🌚",newspaper:"📰",newspaper_roll:"🗞",next_track_button:"⏭",ng:"🆖",no_good_man:"🙅‍♂️",no_good_woman:"🙅",night_with_stars:"🌃",no_bell:"🔕",no_bicycles:"🚳",no_entry:"⛔️",no_entry_sign:"🚫",no_mobile_phones:"📵",no_mouth:"😶",no_pedestrians:"🚷",no_smoking:"🚭","non-potable_water":"🚱",nose:"👃",notebook:"📓",notebook_with_decorative_cover:"📔",notes:"🎶",nut_and_bolt:"🔩",o:"⭕️",o2:"🅾️",ocean:"🌊",octopus:"🐙",oden:"🍢",office:"🏢",oil_drum:"🛢",ok:"🆗",ok_hand:"👌",ok_man:"🙆‍♂️",ok_woman:"🙆",old_key:"🗝",older_man:"👴",older_woman:"👵",om:"🕉",on:"🔛",oncoming_automobile:"🚘",oncoming_bus:"🚍",oncoming_police_car:"🚔",oncoming_taxi:"🚖",open_file_folder:"📂",open_hands:"👐",open_mouth:"😮",open_umbrella:"☂️",ophiuchus:"⛎",orange_book:"📙",orthodox_cross:"☦️",outbox_tray:"📤",owl:"🦉",ox:"🐂",package:"📦",page_facing_up:"📄",page_with_curl:"📃",pager:"📟",paintbrush:"🖌",palm_tree:"🌴",pancakes:"🥞",panda_face:"🐼",paperclip:"📎",paperclips:"🖇",parasol_on_ground:"⛱",parking:"🅿️",part_alternation_mark:"〽️",partly_sunny:"⛅️",passenger_ship:"🛳",passport_control:"🛂",pause_button:"⏸",peace_symbol:"☮️",peach:"🍑",peanuts:"🥜",pear:"🍐",pen:"🖊",pencil2:"✏️",penguin:"🐧",pensive:"😔",performing_arts:"🎭",persevere:"😣",person_fencing:"🤺",pouting_woman:"🙎",phone:"☎️",pick:"⛏",pig:"🐷",pig2:"🐖",pig_nose:"🐽",pill:"💊",pineapple:"🍍",ping_pong:"🏓",pisces:"♓️",pizza:"🍕",place_of_worship:"🛐",plate_with_cutlery:"🍽",play_or_pause_button:"⏯",point_down:"👇",point_left:"👈",point_right:"👉",point_up:"☝️",point_up_2:"👆",police_car:"🚓",policewoman:"👮‍♀️",poodle:"🐩",popcorn:"🍿",post_office:"🏣",postal_horn:"📯",postbox:"📮",potable_water:"🚰",potato:"🥔",pouch:"👝",poultry_leg:"🍗",pound:"💷",rage:"😡",pouting_cat:"😾",pouting_man:"🙎‍♂️",pray:"🙏",prayer_beads:"📿",pregnant_woman:"🤰",previous_track_button:"⏮",prince:"🤴",princess:"👸",printer:"🖨",purple_heart:"💜",purse:"👛",pushpin:"📌",put_litter_in_its_place:"🚮",question:"❓",rabbit:"🐰",rabbit2:"🐇",racehorse:"🐎",racing_car:"🏎",radio:"📻",radio_button:"🔘",radioactive:"☢️",railway_car:"🚃",railway_track:"🛤",rainbow:"🌈",rainbow_flag:"🏳️‍🌈",raised_back_of_hand:"🤚",raised_hand_with_fingers_splayed:"🖐",raised_hands:"🙌",raising_hand_woman:"🙋",raising_hand_man:"🙋‍♂️",ram:"🐏",ramen:"🍜",rat:"🐀",record_button:"⏺",recycle:"♻️",red_circle:"🔴",registered:"®️",relaxed:"☺️",relieved:"😌",reminder_ribbon:"🎗",repeat:"🔁",repeat_one:"🔂",rescue_worker_helmet:"⛑",restroom:"🚻",revolving_hearts:"💞",rewind:"⏪",rhinoceros:"🦏",ribbon:"🎀",rice:"🍚",rice_ball:"🍙",rice_cracker:"🍘",rice_scene:"🎑",right_anger_bubble:"🗯",ring:"💍",robot:"🤖",rocket:"🚀",rofl:"🤣",roll_eyes:"🙄",roller_coaster:"🎢",rooster:"🐓",rose:"🌹",rosette:"🏵",rotating_light:"🚨",round_pushpin:"📍",rowing_man:"🚣",rowing_woman:"🚣‍♀️",rugby_football:"🏉",running_man:"🏃",running_shirt_with_sash:"🎽",running_woman:"🏃‍♀️",sa:"🈂️",sagittarius:"♐️",sake:"🍶",sandal:"👡",santa:"🎅",satellite:"📡",saxophone:"🎷",school:"🏫",school_satchel:"🎒",scissors:"✂️",scorpion:"🦂",scorpius:"♏️",scream:"😱",scream_cat:"🙀",scroll:"📜",seat:"💺",secret:"㊙️",see_no_evil:"🙈",seedling:"🌱",selfie:"🤳",shallow_pan_of_food:"🥘",shamrock:"☘️",shark:"🦈",shaved_ice:"🍧",sheep:"🐑",shell:"🐚",shield:"🛡",shinto_shrine:"⛩",ship:"🚢",shirt:"👕",shopping:"🛍",shopping_cart:"🛒",shower:"🚿",shrimp:"🦐",signal_strength:"📶",six_pointed_star:"🔯",ski:"🎿",skier:"⛷",skull:"💀",skull_and_crossbones:"☠️",sleeping:"😴",sleeping_bed:"🛌",sleepy:"😪",slightly_frowning_face:"🙁",slightly_smiling_face:"🙂",slot_machine:"🎰",small_airplane:"🛩",small_blue_diamond:"🔹",small_orange_diamond:"🔸",small_red_triangle:"🔺",small_red_triangle_down:"🔻",smile:"😄",smile_cat:"😸",smiley:"😃",smiley_cat:"😺",smiling_imp:"😈",smirk:"😏",smirk_cat:"😼",smoking:"🚬",snail:"🐌",snake:"🐍",sneezing_face:"🤧",snowboarder:"🏂",snowflake:"❄️",snowman:"⛄️",snowman_with_snow:"☃️",sob:"😭",soccer:"⚽️",soon:"🔜",sos:"🆘",sound:"🔉",space_invader:"👾",spades:"♠️",spaghetti:"🍝",sparkle:"❇️",sparkler:"🎇",sparkles:"✨",sparkling_heart:"💖",speak_no_evil:"🙊",speaker:"🔈",speaking_head:"🗣",speech_balloon:"💬",speedboat:"🚤",spider:"🕷",spider_web:"🕸",spiral_calendar:"🗓",spiral_notepad:"🗒",spoon:"🥄",squid:"🦑",stadium:"🏟",star:"⭐️",star2:"🌟",star_and_crescent:"☪️",star_of_david:"✡️",stars:"🌠",station:"🚉",statue_of_liberty:"🗽",steam_locomotive:"🚂",stew:"🍲",stop_button:"⏹",stop_sign:"🛑",stopwatch:"⏱",straight_ruler:"📏",strawberry:"🍓",stuck_out_tongue:"😛",stuck_out_tongue_closed_eyes:"😝",stuck_out_tongue_winking_eye:"😜",studio_microphone:"🎙",stuffed_flatbread:"🥙",sun_behind_large_cloud:"🌥",sun_behind_rain_cloud:"🌦",sun_behind_small_cloud:"🌤",sun_with_face:"🌞",sunflower:"🌻",sunglasses:"😎",sunny:"☀️",sunrise:"🌅",sunrise_over_mountains:"🌄",surfing_man:"🏄",surfing_woman:"🏄‍♀️",sushi:"🍣",suspension_railway:"🚟",sweat:"😓",sweat_drops:"💦",sweat_smile:"😅",sweet_potato:"🍠",swimming_man:"🏊",swimming_woman:"🏊‍♀️",symbols:"🔣",synagogue:"🕍",syringe:"💉",taco:"🌮",tada:"🎉",tanabata_tree:"🎋",taurus:"♉️",taxi:"🚕",tea:"🍵",telephone_receiver:"📞",telescope:"🔭",tennis:"🎾",tent:"⛺️",thermometer:"🌡",thinking:"🤔",thought_balloon:"💭",ticket:"🎫",tickets:"🎟",tiger:"🐯",tiger2:"🐅",timer_clock:"⏲",tipping_hand_man:"💁‍♂️",tired_face:"😫",tm:"™️",toilet:"🚽",tokyo_tower:"🗼",tomato:"🍅",tongue:"👅",top:"🔝",tophat:"🎩",tornado:"🌪",trackball:"🖲",tractor:"🚜",traffic_light:"🚥",train:"🚋",train2:"🚆",tram:"🚊",triangular_flag_on_post:"🚩",triangular_ruler:"📐",trident:"🔱",triumph:"😤",trolleybus:"🚎",trophy:"🏆",tropical_drink:"🍹",tropical_fish:"🐠",truck:"🚚",trumpet:"🎺",tulip:"🌷",tumbler_glass:"🥃",turkey:"🦃",turtle:"🐢",tv:"📺",twisted_rightwards_arrows:"🔀",two_hearts:"💕",two_men_holding_hands:"👬",two_women_holding_hands:"👭",u5272:"🈹",u5408:"🈴",u55b6:"🈺",u6307:"🈯️",u6708:"🈷️",u6709:"🈶",u6e80:"🈵",u7121:"🈚️",u7533:"🈸",u7981:"🈲",u7a7a:"🈳",umbrella:"☔️",unamused:"😒",underage:"🔞",unicorn:"🦄",unlock:"🔓",up:"🆙",upside_down_face:"🙃",v:"✌️",vertical_traffic_light:"🚦",vhs:"📼",vibration_mode:"📳",video_camera:"📹",video_game:"🎮",violin:"🎻",virgo:"♍️",volcano:"🌋",volleyball:"🏐",vs:"🆚",vulcan_salute:"🖖",walking_man:"🚶",walking_woman:"🚶‍♀️",waning_crescent_moon:"🌘",waning_gibbous_moon:"🌖",warning:"⚠️",wastebasket:"🗑",watch:"⌚️",water_buffalo:"🐃",watermelon:"🍉",wave:"👋",wavy_dash:"〰️",waxing_crescent_moon:"🌒",wc:"🚾",weary:"😩",wedding:"💒",weight_lifting_man:"🏋️",weight_lifting_woman:"🏋️‍♀️",whale:"🐳",whale2:"🐋",wheel_of_dharma:"☸️",wheelchair:"♿️",white_check_mark:"✅",white_circle:"⚪️",white_flag:"🏳️",white_flower:"💮",white_large_square:"⬜️",white_medium_small_square:"◽️",white_medium_square:"◻️",white_small_square:"▫️",white_square_button:"🔳",wilted_flower:"🥀",wind_chime:"🎐",wind_face:"🌬",wine_glass:"🍷",wink:"😉",wolf:"🐺",woman:"👩",woman_artist:"👩‍🎨",woman_astronaut:"👩‍🚀",woman_cartwheeling:"🤸‍♀️",woman_cook:"👩‍🍳",woman_facepalming:"🤦‍♀️",woman_factory_worker:"👩‍🏭",woman_farmer:"👩‍🌾",woman_firefighter:"👩‍🚒",woman_health_worker:"👩‍⚕️",woman_judge:"👩‍⚖️",woman_juggling:"🤹‍♀️",woman_mechanic:"👩‍🔧",woman_office_worker:"👩‍💼",woman_pilot:"👩‍✈️",woman_playing_handball:"🤾‍♀️",woman_playing_water_polo:"🤽‍♀️",woman_scientist:"👩‍🔬",woman_shrugging:"🤷‍♀️",woman_singer:"👩‍🎤",woman_student:"👩‍🎓",woman_teacher:"👩‍🏫",woman_technologist:"👩‍💻",woman_with_turban:"👳‍♀️",womans_clothes:"👚",womans_hat:"👒",women_wrestling:"🤼‍♀️",womens:"🚺",world_map:"🗺",worried:"😟",wrench:"🔧",writing_hand:"✍️",x:"❌",yellow_heart:"💛",yen:"💴",yin_yang:"☯️",yum:"😋",zap:"⚡️",zipper_mouth_face:"🤐",zzz:"💤",octocat:':octocat:',showdown:"S"},x.Converter=function(e){"use strict";var r,t,n={},i=[],l=[],o={},a=h,s={parsed:{},raw:"",format:""};for(r in e=e||{},p)p.hasOwnProperty(r)&&(n[r]=p[r]);if("object"!=typeof e)throw Error("Converter expects the passed parameter to be an object, but "+typeof e+" was passed instead.");for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);function c(e,r){if(r=r||null,x.helper.isString(e)){if(r=e=x.helper.stdExtName(e),x.extensions[e]){console.warn("DEPRECATION WARNING: "+e+" is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!");var t=x.extensions[e],a=e;if("function"==typeof t&&(t=t(new x.Converter)),x.helper.isArray(t)||(t=[t]),!(a=g(t,a)).valid)throw Error(a.error);for(var n=0;n[ \t]+¨NBSP;<"),!r){if(!window||!window.document)throw new Error("HTMLParser is undefined. If in a webworker or nodejs environment, you need to provide a WHATWG DOM and HTML such as JSDOM");r=window.document}for(var r=r.createElement("div"),t=(r.innerHTML=e,{preList:function(e){for(var r=e.querySelectorAll("pre"),t=[],a=0;a'}else t.push(r[a].innerHTML),r[a].innerHTML="",r[a].setAttribute("prenum",a.toString());return t}(r)}),a=(!function e(r){for(var t=0;t? ?(['"].*['"])?\)$/m))a="";else if(!a){if(a="#"+(t=t||r.toLowerCase().replace(/ ?\n/g," ")),x.helper.isUndefined(l.gUrls[t]))return e;a=l.gUrls[t],x.helper.isUndefined(l.gTitles[t])||(o=l.gTitles[t])}return e='"}return e=(e=(e=(e=(e=l.converter._dispatch("anchors.before",e,i,l)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)] ?(?:\n *)?\[(.*?)]()()()()/g,r)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<([^>]*)>(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,r)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]??(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,r)).replace(/\[([^\[\]]+)]()()()()()/g,r),i.ghMentions&&(e=e.replace(/(^|\s)(\\)?(@([a-z\d]+(?:[a-z\d.-]+?[a-z\d]+)*))/gim,function(e,r,t,a,n){if("\\"===t)return r+a;if(!x.helper.isString(i.ghMentionsLink))throw new Error("ghMentionsLink option must be a string");t="";return r+'"+a+""})),e=l.converter._dispatch("anchors.after",e,i,l)});var i=/([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+?\.[^'">\s]+?)()(\1)?(?=\s|$)(?!["<>])/gi,l=/([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+\.[^'">\s]+?)([.!?,()\[\]])?(\1)?(?=\s|$)(?!["<>])/gi,c=/()<(((https?|ftp|dict):\/\/|www\.)[^'">\s]+)()>()/gi,m=/(^|\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-/=?^_`{|}~.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?=$|\s)/gim,f=/<()(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi;x.subParser("autoLinks",function(e,r,t){"use strict";return e=(e=(e=t.converter._dispatch("autoLinks.before",e,r,t)).replace(c,s(r))).replace(f,o(r,t)),e=t.converter._dispatch("autoLinks.after",e,r,t)}),x.subParser("simplifiedAutoLinks",function(e,r,t){"use strict";return r.simplifiedAutoLink?(e=t.converter._dispatch("simplifiedAutoLinks.before",e,r,t),e=(e=r.excludeTrailingPunctuationFromURLs?e.replace(l,s(r)):e.replace(i,s(r))).replace(m,o(r,t)),t.converter._dispatch("simplifiedAutoLinks.after",e,r,t)):e}),x.subParser("blockGamut",function(e,r,t){"use strict";return e=t.converter._dispatch("blockGamut.before",e,r,t),e=x.subParser("blockQuotes")(e,r,t),e=x.subParser("headers")(e,r,t),e=x.subParser("horizontalRule")(e,r,t),e=x.subParser("lists")(e,r,t),e=x.subParser("codeBlocks")(e,r,t),e=x.subParser("tables")(e,r,t),e=x.subParser("hashHTMLBlocks")(e,r,t),e=x.subParser("paragraphs")(e,r,t),e=t.converter._dispatch("blockGamut.after",e,r,t)}),x.subParser("blockQuotes",function(e,r,t){"use strict";e=t.converter._dispatch("blockQuotes.before",e,r,t);var a=/(^ {0,3}>[ \t]?.+\n(.+\n)*\n*)+/gm;return r.splitAdjacentBlockquotes&&(a=/^ {0,3}>[\s\S]*?(?:\n\n)/gm),e=(e+="\n\n").replace(a,function(e){return e=(e=(e=e.replace(/^[ \t]*>[ \t]?/gm,"")).replace(/¨0/g,"")).replace(/^[ \t]+$/gm,""),e=x.subParser("githubCodeBlocks")(e,r,t),e=(e=(e=x.subParser("blockGamut")(e,r,t)).replace(/(^|\n)/g,"$1 ")).replace(/(\s*
    [^\r]+?<\/pre>)/gm,function(e,r){return r.replace(/^  /gm,"¨0").replace(/¨0/g,"")}),x.subParser("hashBlock")("
    \n"+e+"\n
    ",r,t)}),e=t.converter._dispatch("blockQuotes.after",e,r,t)}),x.subParser("codeBlocks",function(e,n,s){"use strict";e=s.converter._dispatch("codeBlocks.before",e,n,s);return e=(e=(e+="¨0").replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=¨0))/g,function(e,r,t){var a="\n",r=x.subParser("outdent")(r,n,s);return r=x.subParser("encodeCode")(r,n,s),r="
    "+(r=(r=(r=x.subParser("detab")(r,n,s)).replace(/^\n+/g,"")).replace(/\n+$/g,""))+(a=n.omitExtraWLInCodeBlocks?"":a)+"
    ",x.subParser("hashBlock")(r,n,s)+t})).replace(/¨0/,""),e=s.converter._dispatch("codeBlocks.after",e,n,s)}),x.subParser("codeSpans",function(e,n,s){"use strict";return e=(e=void 0===(e=s.converter._dispatch("codeSpans.before",e,n,s))?"":e).replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(e,r,t,a){return a=(a=a.replace(/^([ \t]*)/g,"")).replace(/[ \t]*$/g,""),a=r+""+(a=x.subParser("encodeCode")(a,n,s))+"",a=x.subParser("hashHTMLSpans")(a,n,s)}),e=s.converter._dispatch("codeSpans.after",e,n,s)}),x.subParser("completeHTMLDocument",function(e,r,t){"use strict";if(!r.completeHTMLDocument)return e;e=t.converter._dispatch("completeHTMLDocument.before",e,r,t);var a,n="html",s="\n",o="",i='\n',l="",c="";for(a in void 0!==t.metadata.parsed.doctype&&(s="\n","html"!==(n=t.metadata.parsed.doctype.toString().toLowerCase())&&"html5"!==n||(i='')),t.metadata.parsed)if(t.metadata.parsed.hasOwnProperty(a))switch(a.toLowerCase()){case"doctype":break;case"title":o=""+t.metadata.parsed.title+"\n";break;case"charset":i="html"===n||"html5"===n?'\n':'\n';break;case"language":case"lang":l=' lang="'+t.metadata.parsed[a]+'"',c+='\n';break;default:c+='\n'}return e=s+"\n\n"+o+i+c+"\n\n"+e.trim()+"\n\n",e=t.converter._dispatch("completeHTMLDocument.after",e,r,t)}),x.subParser("detab",function(e,r,t){"use strict";return e=(e=(e=(e=(e=(e=t.converter._dispatch("detab.before",e,r,t)).replace(/\t(?=\t)/g," ")).replace(/\t/g,"¨A¨B")).replace(/¨B(.+?)¨A/g,function(e,r){for(var t=r,a=4-t.length%4,n=0;n/g,">"),e=t.converter._dispatch("encodeAmpsAndAngles.after",e,r,t)}),x.subParser("encodeBackslashEscapes",function(e,r,t){"use strict";return e=(e=(e=t.converter._dispatch("encodeBackslashEscapes.before",e,r,t)).replace(/\\(\\)/g,x.helper.escapeCharactersCallback)).replace(/\\([`*_{}\[\]()>#+.!~=|:-])/g,x.helper.escapeCharactersCallback),e=t.converter._dispatch("encodeBackslashEscapes.after",e,r,t)}),x.subParser("encodeCode",function(e,r,t){"use strict";return e=(e=t.converter._dispatch("encodeCode.before",e,r,t)).replace(/&/g,"&").replace(//g,">").replace(/([*_{}\[\]\\=~-])/g,x.helper.escapeCharactersCallback),e=t.converter._dispatch("encodeCode.after",e,r,t)}),x.subParser("escapeSpecialCharsWithinTagAttributes",function(e,r,t){"use strict";return e=(e=(e=t.converter._dispatch("escapeSpecialCharsWithinTagAttributes.before",e,r,t)).replace(/<\/?[a-z\d_:-]+(?:[\s]+[\s\S]+?)?>/gi,function(e){return e.replace(/(.)<\/?code>(?=.)/g,"$1`").replace(/([\\`*_~=|])/g,x.helper.escapeCharactersCallback)})).replace(/-]|-[^>])(?:[^-]|-[^-])*)--)>/gi,function(e){return e.replace(/([\\`*_~=|])/g,x.helper.escapeCharactersCallback)}),e=t.converter._dispatch("escapeSpecialCharsWithinTagAttributes.after",e,r,t)}),x.subParser("githubCodeBlocks",function(e,s,o){"use strict";return s.ghCodeBlocks?(e=o.converter._dispatch("githubCodeBlocks.before",e,s,o),e=(e=(e+="¨0").replace(/(?:^|\n)(?: {0,3})(```+|~~~+)(?: *)([^\s`~]*)\n([\s\S]*?)\n(?: {0,3})\1/g,function(e,r,t,a){var n=s.omitExtraWLInCodeBlocks?"":"\n";return a=x.subParser("encodeCode")(a,s,o),a="
    "+(a=(a=(a=x.subParser("detab")(a,s,o)).replace(/^\n+/g,"")).replace(/\n+$/g,""))+n+"
    ",a=x.subParser("hashBlock")(a,s,o),"\n\n¨G"+(o.ghCodeBlocks.push({text:e,codeblock:a})-1)+"G\n\n"})).replace(/¨0/,""),o.converter._dispatch("githubCodeBlocks.after",e,s,o)):e}),x.subParser("hashBlock",function(e,r,t){"use strict";return e=(e=t.converter._dispatch("hashBlock.before",e,r,t)).replace(/(^\n+|\n+$)/g,""),e="\n\n¨K"+(t.gHtmlBlocks.push(e)-1)+"K\n\n",e=t.converter._dispatch("hashBlock.after",e,r,t)}),x.subParser("hashCodeTags",function(e,n,s){"use strict";e=s.converter._dispatch("hashCodeTags.before",e,n,s);return e=x.helper.replaceRecursiveRegExp(e,function(e,r,t,a){t=t+x.subParser("encodeCode")(r,n,s)+a;return"¨C"+(s.gHtmlSpans.push(t)-1)+"C"},"]*>","","gim"),e=s.converter._dispatch("hashCodeTags.after",e,n,s)}),x.subParser("hashElement",function(e,r,t){"use strict";return function(e,r){return r=(r=(r=r.replace(/\n\n/g,"\n")).replace(/^\n/,"")).replace(/\n+$/g,""),r="\n\n¨K"+(t.gHtmlBlocks.push(r)-1)+"K\n\n"}}),x.subParser("hashHTMLBlocks",function(e,r,n){"use strict";e=n.converter._dispatch("hashHTMLBlocks.before",e,r,n);function t(e,r,t,a){return-1!==t.search(/\bmarkdown\b/)&&(e=t+n.converter.makeHtml(r)+a),"\n\n¨K"+(n.gHtmlBlocks.push(e)-1)+"K\n\n"}var a=["pre","div","h1","h2","h3","h4","h5","h6","blockquote","table","dl","ol","ul","script","noscript","form","fieldset","iframe","math","style","section","header","footer","nav","article","aside","address","audio","canvas","figure","hgroup","output","video","p"];r.backslashEscapesHTMLTags&&(e=e.replace(/\\<(\/?[^>]+?)>/g,function(e,r){return"<"+r+">"}));for(var s=0;s]*>)","im"),i="<"+a[s]+"\\b[^>]*>",l="";-1!==(c=x.helper.regexIndexOf(e,o));){var c=x.helper.splitAtIndex(e,c),u=x.helper.replaceRecursiveRegExp(c[1],t,i,l,"im");if(u===c[1])break;e=c[0].concat(u)}return e=e.replace(/(\n {0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,x.subParser("hashElement")(e,r,n)),e=(e=x.helper.replaceRecursiveRegExp(e,function(e){return"\n\n¨K"+(n.gHtmlBlocks.push(e)-1)+"K\n\n"},"^ {0,3}\x3c!--","--\x3e","gm")).replace(/(?:\n\n)( {0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,x.subParser("hashElement")(e,r,n)),e=n.converter._dispatch("hashHTMLBlocks.after",e,r,n)}),x.subParser("hashHTMLSpans",function(e,r,t){"use strict";function a(e){return"¨C"+(t.gHtmlSpans.push(e)-1)+"C"}return e=(e=(e=(e=(e=t.converter._dispatch("hashHTMLSpans.before",e,r,t)).replace(/<[^>]+?\/>/gi,a)).replace(/<([^>]+?)>[\s\S]*?<\/\1>/g,a)).replace(/<([^>]+?)\s[^>]+?>[\s\S]*?<\/\1>/g,a)).replace(/<[^>]+?>/gi,a),e=t.converter._dispatch("hashHTMLSpans.after",e,r,t)}),x.subParser("unhashHTMLSpans",function(e,r,t){"use strict";e=t.converter._dispatch("unhashHTMLSpans.before",e,r,t);for(var a=0;a]*>\\s*]*>","^ {0,3}\\s*
    ","gim"),e=s.converter._dispatch("hashPreCodeTags.after",e,n,s)}),x.subParser("headers",function(e,n,s){"use strict";e=s.converter._dispatch("headers.before",e,n,s);var o=isNaN(parseInt(n.headerLevelStart))?1:parseInt(n.headerLevelStart),r=n.smoothLivePreview?/^(.+)[ \t]*\n={2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n=+[ \t]*\n+/gm,t=n.smoothLivePreview?/^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n-+[ \t]*\n+/gm,r=(e=(e=e.replace(r,function(e,r){var t=x.subParser("spanGamut")(r,n,s),r=n.noHeaderId?"":' id="'+i(r)+'"',r=""+t+"";return x.subParser("hashBlock")(r,n,s)})).replace(t,function(e,r){var t=x.subParser("spanGamut")(r,n,s),r=n.noHeaderId?"":' id="'+i(r)+'"',a=o+1,r=""+t+"";return x.subParser("hashBlock")(r,n,s)}),n.requireSpaceBeforeHeadingText?/^(#{1,6})[ \t]+(.+?)[ \t]*#*\n+/gm:/^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm);function i(e){var r=e=n.customizedHeaderId&&(r=e.match(/\{([^{]+?)}\s*$/))&&r[1]?r[1]:e,e=x.helper.isString(n.prefixHeaderId)?n.prefixHeaderId:!0===n.prefixHeaderId?"section-":"";return n.rawPrefixHeaderId||(r=e+r),r=(n.ghCompatibleHeaderId?r.replace(/ /g,"-").replace(/&/g,"").replace(/¨T/g,"").replace(/¨D/g,"").replace(/[&+$,\/:;=?@"#{}|^¨~\[\]`\\*)(%.!'<>]/g,""):n.rawHeaderId?r.replace(/ /g,"-").replace(/&/g,"&").replace(/¨T/g,"¨").replace(/¨D/g,"$").replace(/["']/g,"-"):r.replace(/[^\w]/g,"")).toLowerCase(),n.rawPrefixHeaderId&&(r=e+r),s.hashLinkCounts[r]?r=r+"-"+s.hashLinkCounts[r]++:s.hashLinkCounts[r]=1,r}return e=e.replace(r,function(e,r,t){var a=t,a=(n.customizedHeaderId&&(a=t.replace(/\s?\{([^{]+?)}\s*$/,"")),x.subParser("spanGamut")(a,n,s)),t=n.noHeaderId?"":' id="'+i(t)+'"',r=o-1+r.length,t=""+a+"";return x.subParser("hashBlock")(t,n,s)}),e=s.converter._dispatch("headers.after",e,n,s)}),x.subParser("horizontalRule",function(e,r,t){"use strict";e=t.converter._dispatch("horizontalRule.before",e,r,t);var a=x.subParser("hashBlock")("
    ",r,t);return e=(e=(e=e.replace(/^ {0,2}( ?-){3,}[ \t]*$/gm,a)).replace(/^ {0,2}( ?\*){3,}[ \t]*$/gm,a)).replace(/^ {0,2}( ?_){3,}[ \t]*$/gm,a),e=t.converter._dispatch("horizontalRule.after",e,r,t)}),x.subParser("images",function(e,r,d){"use strict";function l(e,r,t,a,n,s,o,i){var l=d.gUrls,c=d.gTitles,u=d.gDimensions;if(t=t.toLowerCase(),i=i||"",-1? ?(['"].*['"])?\)$/m))a="";else if(""===a||null===a){if(a="#"+(t=""!==t&&null!==t?t:r.toLowerCase().replace(/ ?\n/g," ")),x.helper.isUndefined(l[t]))return e;a=l[t],x.helper.isUndefined(c[t])||(i=c[t]),x.helper.isUndefined(u[t])||(n=u[t].width,s=u[t].height)}r=r.replace(/"/g,""").replace(x.helper.regexes.asteriskDashAndColon,x.helper.escapeCharactersCallback);e=''+r+'"}return e=(e=(e=(e=(e=(e=d.converter._dispatch("images.before",e,r,d)).replace(/!\[([^\]]*?)] ?(?:\n *)?\[([\s\S]*?)]()()()()()/g,l)).replace(/!\[([^\]]*?)][ \t]*()\([ \t]??(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,function(e,r,t,a,n,s,o,i){return l(e,r,t,a=a.replace(/\s/g,""),n,s,0,i)})).replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<([^>]*)>(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(?:(["'])([^"]*?)\6))?[ \t]?\)/g,l)).replace(/!\[([^\]]*?)][ \t]*()\([ \t]??(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,l)).replace(/!\[([^\[\]]+)]()()()()()/g,l),e=d.converter._dispatch("images.after",e,r,d)}),x.subParser("italicsAndBold",function(e,r,t){"use strict";return e=t.converter._dispatch("italicsAndBold.before",e,r,t),e=r.literalMidWordUnderscores?(e=(e=e.replace(/\b___(\S[\s\S]*?)___\b/g,function(e,r){return""+r+""})).replace(/\b__(\S[\s\S]*?)__\b/g,function(e,r){return""+r+""})).replace(/\b_(\S[\s\S]*?)_\b/g,function(e,r){return""+r+""}):(e=(e=e.replace(/___(\S[\s\S]*?)___/g,function(e,r){return/\S$/.test(r)?""+r+"":e})).replace(/__(\S[\s\S]*?)__/g,function(e,r){return/\S$/.test(r)?""+r+"":e})).replace(/_([^\s_][\s\S]*?)_/g,function(e,r){return/\S$/.test(r)?""+r+"":e}),e=r.literalMidWordAsterisks?(e=(e=e.replace(/([^*]|^)\B\*\*\*(\S[\s\S]*?)\*\*\*\B(?!\*)/g,function(e,r,t){return r+""+t+""})).replace(/([^*]|^)\B\*\*(\S[\s\S]*?)\*\*\B(?!\*)/g,function(e,r,t){return r+""+t+""})).replace(/([^*]|^)\B\*(\S[\s\S]*?)\*\B(?!\*)/g,function(e,r,t){return r+""+t+""}):(e=(e=e.replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g,function(e,r){return/\S$/.test(r)?""+r+"":e})).replace(/\*\*(\S[\s\S]*?)\*\*/g,function(e,r){return/\S$/.test(r)?""+r+"":e})).replace(/\*([^\s*][\s\S]*?)\*/g,function(e,r){return/\S$/.test(r)?""+r+"":e}),e=t.converter._dispatch("italicsAndBold.after",e,r,t)}),x.subParser("lists",function(e,d,c){"use strict";function p(e,r){c.gListLevel++,e=e.replace(/\n{2,}$/,"\n");var t=/(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0| {0,3}([*+-]|\d+[.])[ \t]+))/gm,l=/\n[ \t]*\n(?!¨0)/.test(e+="¨0");return d.disableForced4SpacesIndentedSublists&&(t=/(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0|\2([*+-]|\d+[.])[ \t]+))/gm),e=(e=e.replace(t,function(e,r,t,a,n,s,o){o=o&&""!==o.trim();var n=x.subParser("outdent")(n,d,c),i="";return s&&d.tasklists&&(i=' class="task-list-item" style="list-style-type: none;"',n=n.replace(/^[ \t]*\[(x|X| )?]/m,function(){var e='"+(n=(n=r||-1\n"})).replace(/¨0/g,""),c.gListLevel--,e=r?e.replace(/\s+$/,""):e}function h(e,r){if("ol"===r){r=e.match(/^ *(\d+)\./);if(r&&"1"!==r[1])return' start="'+r[1]+'"'}return""}function n(n,s,o){var e,i=d.disableForced4SpacesIndentedSublists?/^ ?\d+\.[ \t]/gm:/^ {0,3}\d+\.[ \t]/gm,l=d.disableForced4SpacesIndentedSublists?/^ ?[*+-][ \t]/gm:/^ {0,3}[*+-][ \t]/gm,c="ul"===s?i:l,u="";return-1!==n.search(c)?function e(r){var t=r.search(c),a=h(n,s);-1!==t?(u+="\n\n<"+s+a+">\n"+p(r.slice(0,t),!!o)+"\n",c="ul"===(s="ul"===s?"ol":"ul")?i:l,e(r.slice(t))):u+="\n\n<"+s+a+">\n"+p(r,!!o)+"\n"}(n):(e=h(n,s),u="\n\n<"+s+e+">\n"+p(n,!!o)+"\n"),u}return e=c.converter._dispatch("lists.before",e,d,c),e+="¨0",e=(e=c.gListLevel?e.replace(/^(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm,function(e,r,t){return n(r,-1"),i+="

    ",n.push(i))}for(s=n.length,o=0;o]*>\s*]*>/.test(c)&&(u=!0)}n[o]=c}return e=(e=(e=n.join("\n")).replace(/^\n+/g,"")).replace(/\n+$/g,""),t.converter._dispatch("paragraphs.after",e,r,t)}),x.subParser("runExtension",function(e,r,t,a){"use strict";return e.filter?r=e.filter(r,a.converter,t):e.regex&&((a=e.regex)instanceof RegExp||(a=new RegExp(a,"g")),r=r.replace(a,e.replace)),r}),x.subParser("spanGamut",function(e,r,t){"use strict";return e=t.converter._dispatch("spanGamut.before",e,r,t),e=x.subParser("codeSpans")(e,r,t),e=x.subParser("escapeSpecialCharsWithinTagAttributes")(e,r,t),e=x.subParser("encodeBackslashEscapes")(e,r,t),e=x.subParser("images")(e,r,t),e=x.subParser("anchors")(e,r,t),e=x.subParser("autoLinks")(e,r,t),e=x.subParser("simplifiedAutoLinks")(e,r,t),e=x.subParser("emoji")(e,r,t),e=x.subParser("underline")(e,r,t),e=x.subParser("italicsAndBold")(e,r,t),e=x.subParser("strikethrough")(e,r,t),e=x.subParser("ellipsis")(e,r,t),e=x.subParser("hashHTMLSpans")(e,r,t),e=x.subParser("encodeAmpsAndAngles")(e,r,t),r.simpleLineBreaks?/\n\n¨K/.test(e)||(e=e.replace(/\n+/g,"
    \n")):e=e.replace(/ +\n/g,"
    \n"),e=t.converter._dispatch("spanGamut.after",e,r,t)}),x.subParser("strikethrough",function(e,t,a){"use strict";return t.strikethrough&&(e=(e=a.converter._dispatch("strikethrough.before",e,t,a)).replace(/(?:~){2}([\s\S]+?)(?:~){2}/g,function(e,r){return r=r,""+(r=t.simplifiedAutoLink?x.subParser("simplifiedAutoLinks")(r,t,a):r)+""}),e=a.converter._dispatch("strikethrough.after",e,t,a)),e}),x.subParser("stripLinkDefinitions",function(i,l,c){"use strict";function e(e,r,t,a,n,s,o){return r=r.toLowerCase(),i.toLowerCase().split(r).length-1<2?e:(t.match(/^data:.+?\/.+?;base64,/)?c.gUrls[r]=t.replace(/\s/g,""):c.gUrls[r]=x.subParser("encodeAmpsAndAngles")(t,l,c),s?s+o:(o&&(c.gTitles[r]=o.replace(/"|'/g,""")),l.parseImgDimensions&&a&&n&&(c.gDimensions[r]={width:a,height:n}),""))}return i=(i=(i=(i+="¨0").replace(/^ {0,3}\[([^\]]+)]:[ \t]*\n?[ \t]*?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n\n|(?=¨0)|(?=\n\[))/gm,e)).replace(/^ {0,3}\[([^\]]+)]:[ \t]*\n?[ \t]*\s]+)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=¨0))/gm,e)).replace(/¨0/,"")}),x.subParser("tables",function(e,y,P){"use strict";if(!y.tables)return e;function r(e){for(var r=e.split("\n"),t=0;t"+(n=x.subParser("spanGamut")(n,y,P))+"\n"));for(t=0;t"+x.subParser("spanGamut")(i,y,P)+"\n"));h.push(_)}for(var m=d,f=h,b="\n\n\n",w=m.length,k=0;k\n\n\n",k=0;k\n";for(var v=0;v\n"}return b+="\n
    \n"}return e=(e=(e=(e=P.converter._dispatch("tables.before",e,y,P)).replace(/\\(\|)/g,x.helper.escapeCharactersCallback)).replace(/^ {0,3}\|?.+\|.+\n {0,3}\|?[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:[-=]){2,}[\s\S]+?(?:\n\n|¨0)/gm,r)).replace(/^ {0,3}\|.+\|[ \t]*\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n( {0,3}\|.+\|[ \t]*\n)*(?:\n|¨0)/gm,r),e=P.converter._dispatch("tables.after",e,y,P)}),x.subParser("underline",function(e,r,t){"use strict";return r.underline?(e=t.converter._dispatch("underline.before",e,r,t),e=(e=r.literalMidWordUnderscores?(e=e.replace(/\b___(\S[\s\S]*?)___\b/g,function(e,r){return""+r+""})).replace(/\b__(\S[\s\S]*?)__\b/g,function(e,r){return""+r+""}):(e=e.replace(/___(\S[\s\S]*?)___/g,function(e,r){return/\S$/.test(r)?""+r+"":e})).replace(/__(\S[\s\S]*?)__/g,function(e,r){return/\S$/.test(r)?""+r+"":e})).replace(/(_)/g,x.helper.escapeCharactersCallback),t.converter._dispatch("underline.after",e,r,t)):e}),x.subParser("unescapeSpecialChars",function(e,r,t){"use strict";return e=(e=t.converter._dispatch("unescapeSpecialChars.before",e,r,t)).replace(/¨E(\d+)E/g,function(e,r){r=parseInt(r);return String.fromCharCode(r)}),e=t.converter._dispatch("unescapeSpecialChars.after",e,r,t)}),x.subParser("makeMarkdown.blockquote",function(e,r){"use strict";var t="";if(e.hasChildNodes())for(var a=e.childNodes,n=a.length,s=0;s ")}),x.subParser("makeMarkdown.codeBlock",function(e,r){"use strict";var t=e.getAttribute("language"),e=e.getAttribute("precodenum");return"```"+t+"\n"+r.preList[e]+"\n```"}),x.subParser("makeMarkdown.codeSpan",function(e){"use strict";return"`"+e.innerHTML+"`"}),x.subParser("makeMarkdown.emphasis",function(e,r){"use strict";var t="";if(e.hasChildNodes()){t+="*";for(var a=e.childNodes,n=a.length,s=0;s",e.hasAttribute("width")&&e.hasAttribute("height")&&(r+=" ="+e.getAttribute("width")+"x"+e.getAttribute("height")),e.hasAttribute("title")&&(r+=' "'+e.getAttribute("title")+'"'),r+=")"),r}),x.subParser("makeMarkdown.links",function(e,r){"use strict";var t="";if(e.hasChildNodes()&&e.hasAttribute("href")){for(var a=e.childNodes,n=a.length,t="[",s=0;s"),e.hasAttribute("title")&&(t+=' "'+e.getAttribute("title")+'"'),t+=")"}return t}),x.subParser("makeMarkdown.list",function(e,r,t){"use strict";var a="";if(!e.hasChildNodes())return"";for(var n=e.childNodes,s=n.length,o=e.getAttribute("start")||1,i=0;i"+r.preList[e]+""}),x.subParser("makeMarkdown.strikethrough",function(e,r){"use strict";var t="";if(e.hasChildNodes()){t+="~~";for(var a=e.childNodes,n=a.length,s=0;str>th"),s=e.querySelectorAll("tbody>tr"),o=0;o/g,"\\$1>")).replace(/^#/gm,"\\#")).replace(/^(\s*)([-=]{3,})(\s*)$/,"$1\\$2$3")).replace(/^( {0,3}\d+)\./gm,"$1\\.")).replace(/^( {0,3})([+-])/gm,"$1\\$2")).replace(/]([\s]*)\(/g,"\\]$1\\(")).replace(/^ {0,3}\[([\S \t]*?)]:/gm,"\\[$1]:")});"function"==typeof define&&define.amd?define(function(){"use strict";return x}):"undefined"!=typeof module&&module.exports?module.exports=x:this.showdown=x}.call(this); +//# sourceMappingURL=showdown.min.js.map diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/emotion.css b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/emotion.css new file mode 100644 index 0000000..f2e0fc1 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/emotion.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +.jd img{background:transparent url(images/jxface2.gif?v=1.1) no-repeat scroll left top;cursor:pointer;width:35px;height:35px;display:block}.pp img{background:transparent url(images/fface.gif?v=1.1) no-repeat scroll left top;cursor:pointer;width:25px;height:25px;display:block}.ldw img{background:transparent url(images/wface.gif?v=1.1) no-repeat scroll left top;cursor:pointer;width:35px;height:35px;display:block}.tsj img{background:transparent url(images/tface.gif?v=1.1) no-repeat scroll left top;cursor:pointer;width:35px;height:35px;display:block}.cat img{background:transparent url(images/cface.gif?v=1.1) no-repeat scroll left top;cursor:pointer;width:35px;height:35px;display:block}.bb img{background:transparent url(images/bface.gif?v=1.1) no-repeat scroll left top;cursor:pointer;width:35px;height:35px;display:block}.youa img{background:transparent url(images/yface.gif?v=1.1) no-repeat scroll left top;cursor:pointer;width:35px;height:35px;display:block}.smileytable td{height:37px}#tabPanel{margin-left:5px;overflow:hidden}#tabContent{float:left;background:#FFF}#tabContent div{display:none;width:480px;overflow:hidden}#tabIconReview.show{left:17px;display:block}.menuFocus{background:#ACCD3C}.menuDefault{background:#FFF}#tabIconReview{position:absolute;left:406px;left:398px \9;top:41px;z-index:65533;width:90px;height:76px}img.review{width:90px;height:76px;border:2px solid #9cb945;background:#FFF;background-position:center;background-repeat:no-repeat}.wrapper .tabbody{position:relative;float:left;clear:both;padding:10px;width:95%}.tabbody table{width:100%}.tabbody td{border:1px solid #BAC498}.tabbody td span{display:block;zoom:1;padding:0 4px} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/emotion.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/emotion.html new file mode 100644 index 0000000..95b5880 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/emotion.html @@ -0,0 +1,70 @@ + + + + + + + + + + +
    +
    + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/emotion.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/emotion.js new file mode 100644 index 0000000..5e907f0 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/emotion.js @@ -0,0 +1,186 @@ +window.onload = function () { + editor.setOpt({ + emotionLocalization: false + }); + + emotion.SmileyPath = editor.options.emotionLocalization === true ? 'images/' : "http://img.baidu.com/hi/"; + emotion.SmileyBox = createTabList(emotion.tabNum); + emotion.tabExist = createArr(emotion.tabNum); + + initImgName(); + initEvtHandler("tabHeads"); +}; + +function initImgName() { + for (var pro in emotion.SmilmgName) { + var tempName = emotion.SmilmgName[pro], + tempBox = emotion.SmileyBox[pro], + tempStr = ""; + + if (tempBox.length) return; + for (var i = 1; i <= tempName[1]; i++) { + tempStr = tempName[0]; + if (i < 10) tempStr = tempStr + '0'; + tempStr = tempStr + i + '.gif'; + tempBox.push(tempStr); + } + } +} + +function initEvtHandler(conId) { + var tabHeads = $G(conId); + for (var i = 0, j = 0; i < tabHeads.childNodes.length; i++) { + var tabObj = tabHeads.childNodes[i]; + if (tabObj.nodeType == 1) { + domUtils.on(tabObj, "click", (function (index) { + return function () { + switchTab(index); + }; + })(j)); + j++; + } + } + switchTab(0); + $G("tabIconReview").style.display = 'none'; +} + +function InsertSmiley(url, evt) { + var obj = { + src: editor.options.emotionLocalization ? editor.options.UEDITOR_HOME_URL + "dialogs/emotion/" + url : url + }; + obj._src = obj.src; + editor.execCommand('insertimage', obj); + if (!evt.ctrlKey) { + dialog.popup.hide(); + } +} + +function switchTab(index) { + + autoHeight(index); + if (emotion.tabExist[index] == 0) { + emotion.tabExist[index] = 1; + createTab('tab' + index); + } + //获取呈现元素句柄数组 + var tabHeads = $G("tabHeads").getElementsByTagName("span"), + tabBodys = $G("tabBodys").getElementsByTagName("div"), + i = 0, L = tabHeads.length; + //隐藏所有呈现元素 + for (; i < L; i++) { + tabHeads[i].className = ""; + tabBodys[i].style.display = "none"; + } + //显示对应呈现元素 + tabHeads[index].className = "focus"; + tabBodys[index].style.display = "block"; +} + +function autoHeight(index) { + var iframe = dialog.getDom("iframe"), + parent = iframe.parentNode.parentNode; + switch (index) { + case 0: + iframe.style.height = "380px"; + parent.style.height = "392px"; + break; + case 1: + iframe.style.height = "220px"; + parent.style.height = "232px"; + break; + case 2: + iframe.style.height = "260px"; + parent.style.height = "272px"; + break; + case 3: + iframe.style.height = "300px"; + parent.style.height = "312px"; + break; + case 4: + iframe.style.height = "140px"; + parent.style.height = "152px"; + break; + case 5: + iframe.style.height = "260px"; + parent.style.height = "272px"; + break; + case 6: + iframe.style.height = "230px"; + parent.style.height = "242px"; + break; + default: + + } +} + + +function createTab(tabName) { + var faceVersion = "?v=1.1", //版本号 + tab = $G(tabName), //获取将要生成的Div句柄 + imagePath = emotion.SmileyPath + emotion.imageFolders[tabName], //获取显示表情和预览表情的路径 + positionLine = 11 / 2, //中间数 + iWidth = iHeight = 35, //图片长宽 + iColWidth = 3, //表格剩余空间的显示比例 + tableCss = emotion.imageCss[tabName], + cssOffset = emotion.imageCssOffset[tabName], + textHTML = [''], + i = 0, imgNum = emotion.SmileyBox[tabName].length, imgColNum = 11, faceImage, + sUrl, realUrl, posflag, offset, infor; + + for (; i < imgNum;) { + textHTML.push(''); + for (var j = 0; j < imgColNum; j++, i++) { + faceImage = emotion.SmileyBox[tabName][i]; + if (faceImage) { + sUrl = imagePath + faceImage + faceVersion; + realUrl = imagePath + faceImage; + posflag = j < positionLine ? 0 : 1; + offset = cssOffset * i * (-1) - 1; + infor = emotion.SmileyInfor[tabName][i]; + + textHTML.push(''); + } + textHTML.push(''); + } + textHTML.push('
    '); + textHTML.push(''); + textHTML.push(''); + textHTML.push(''); + } else { + textHTML.push(''); + } + textHTML.push('
    '); + textHTML = textHTML.join(""); + tab.innerHTML = textHTML; +} + +function over(td, srcPath, posFlag) { + td.style.backgroundColor = "#ACCD3C"; + $G('faceReview').style.backgroundImage = "url(" + srcPath + ")"; + if (posFlag == 1) $G("tabIconReview").className = "show"; + $G("tabIconReview").style.display = 'block'; +} + +function out(td) { + td.style.backgroundColor = "transparent"; + var tabIconRevew = $G("tabIconReview"); + tabIconRevew.className = ""; + tabIconRevew.style.display = 'none'; +} + +function createTabList(tabNum) { + var obj = {}; + for (var i = 0; i < tabNum; i++) { + obj["tab" + i] = []; + } + return obj; +} + +function createArr(tabNum) { + var arr = []; + for (var i = 0; i < tabNum; i++) { + arr[i] = 0; + } + return arr; +} + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/0.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/0.gif new file mode 100644 index 0000000..6964168 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/0.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/bface.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/bface.gif new file mode 100644 index 0000000..14fe618 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/bface.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/cface.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/cface.gif new file mode 100644 index 0000000..bff947f Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/cface.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/fface.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/fface.gif new file mode 100644 index 0000000..0d8a6af Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/fface.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/jxface2.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/jxface2.gif new file mode 100644 index 0000000..a959c90 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/jxface2.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/neweditor-tab-bg.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/neweditor-tab-bg.png new file mode 100644 index 0000000..8f398b0 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/neweditor-tab-bg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/tface.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/tface.gif new file mode 100644 index 0000000..1354f54 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/tface.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/wface.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/wface.gif new file mode 100644 index 0000000..5667160 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/wface.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/yface.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/yface.gif new file mode 100644 index 0000000..51608be Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/emotion/images/yface.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/formula/formula.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/formula/formula.html new file mode 100644 index 0000000..ee49f92 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/formula/formula.html @@ -0,0 +1,98 @@ + + + + + + + + + +
    + + + + + +
    + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/formula/formula.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/formula/formula.js new file mode 100644 index 0000000..de47bfe --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/formula/formula.js @@ -0,0 +1,147 @@ +function preg_quote(str, delimiter) { + // Quote regular expression characters plus an optional character + // + // version: 1107.2516 + // discuss at: http://phpjs.org/functions/preg_quote + // + original by: booeyOH + // + improved by: Ates Goral (http://magnetiq.com) + // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) + // + bugfixed by: Onno Marsman + // + improved by: Brett Zamir (http://brett-zamir.me) + // * example 1: preg_quote("$40"); + // * returns 1: '\$40' + // * example 2: preg_quote("*RRRING* Hello?"); + // * returns 2: '\*RRRING\* Hello\?' + // * example 3: preg_quote("\\.+*?[^]$(){}=!<>|:"); + // * returns 3: '\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:' + return (str + '').replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\' + (delimiter || '') + '-]', 'g'), '\\$&'); +} + +function loadScript(url, cb) { + var script; + script = document.createElement('script'); + script.src = url; + script.onload = function () { + cb && cb({isNew: true}) + }; + document.getElementsByTagName('head')[0].appendChild(script); +} + +var Formula = { + mode: 'plain', + latexeasy: null, + init: function () { + // console.log('Formula.init') + Formula.initMode(); + Formula.initEvent(); + Formula.initSubmit(); + }, + renderPlain: function () { + var $preview = $('#preview'); + var value = $('#editor').val(); + if (!value) { + $preview.hide(); + return; + } + value = encodeURIComponent(value); + var formulaConfig = editor.getOpt('formulaConfig'); + var src = formulaConfig.imageUrlTemplate.replace(/\{\}/, value); + $('#previewImage').attr('src', src); + $preview.show(); + }, + setValuePlain: function (value) { + $('#editor').val(value); + Formula.renderPlain(); + }, + setValueLive: function (value) { + if (!Formula.latexeasy) { + setTimeout(function () { + Formula.setValueLive(value); + }, 100); + return; + } + Formula.latexeasy.call('set.latex', {latex: value}); + }, + initMode: function () { + var formulaConfig = editor.getOpt('formulaConfig'); + if ('live' === formulaConfig.editorMode) { + $('#liveEditor').attr('src', formulaConfig.editorLiveServer + '/editor'); + $('#modeLive').show(); + Formula.mode = 'live'; + } else { + $('#modePlain').show(); + Formula.mode = 'plain'; + } + var img = editor.selection.getRange().getClosedNode(); + if (img && img.getAttribute('data-formula-image') !== null) { + var value = img.getAttribute('data-formula-image'); + if (value) { + Formula.setValue(decodeURIComponent(value)); + } + } + }, + setValue: function (value) { + switch (Formula.mode) { + case 'plain': + Formula.setValuePlain(value); + break; + case 'live': + Formula.setValueLive(value); + break; + } + }, + getValue: function (cb) { + switch (Formula.mode) { + case 'plain': + cb($.trim($('#editor').val())); + break; + case 'live': + Formula.latexeasy.call('get.latex', {}, function (data) { + cb(data.latex); + }); + break; + } + }, + initEvent: function () { + var changeTimer = null, le; + switch (Formula.mode) { + case 'plain': + // console.log('Formula.initEvent'); + $('#editor').on('change keypress', function () { + changeTimer && clearTimeout(changeTimer); + changeTimer = setTimeout(function () { + Formula.renderPlain(); + }, 1000); + }); + $('#inputDemo').on('click', function () { + $('#editor').val('f(a) = \\frac{1}{2\\pi i} \\oint\\frac{f(z)}{z-a}dz'); + Formula.renderPlain(); + }); + break; + case 'live': + var formulaConfig = editor.getOpt('formulaConfig'); + loadScript(formulaConfig.editorLiveServer + '/vendor/LatexEasyEditor/editor/sdk.js', function () { + le = new window.LatexEasy(document.getElementById('liveEditor')); + le.on('ready', function () { + Formula.latexeasy = le; + }); + le.init(); + }); + break; + } + }, + initSubmit: function () { + dialog.onclose = function (t, ok) { + if (!ok) { + return true; + } + // console.log('onclose', t, ok); + Formula.getValue(function (value) { + editor.execCommand('formula', value); + editor.fireEvent('saveScene'); + dialog.close(false); + }); + return false; + }; + } +}; diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/help/help.css b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/help/help.css new file mode 100644 index 0000000..51e034e --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/help/help.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +.wrapper{width:370px;margin:10px auto;zoom:1}.tabbody{height:360px}.tabbody .panel{width:100%;height:360px;position:absolute;background:#fff}.tabbody .panel h1{font-size:26px;margin:5px 0 0 5px}.tabbody .panel p{font-size:12px;margin:5px 0 0 5px}.tabbody table{width:90%;line-height:20px;margin:5px 0 0 5px}.tabbody table thead{font-weight:700;line-height:25px} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/help/help.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/help/help.html new file mode 100644 index 0000000..7d8c8c6 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/help/help.html @@ -0,0 +1,82 @@ + + + + 帮助 + + + + + +
    +
    + + +
    +
    +
    +

    UEditor Plus

    +

    +

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ctrl+b
    ctrl+c
    ctrl+x
    ctrl+v
    ctrl+y
    ctrl+z
    ctrl+i
    ctrl+u
    ctrl+a
    shift+enter
    alt+z
    +
    +
    +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/help/help.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/help/help.js new file mode 100644 index 0000000..87e2c6a --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/help/help.js @@ -0,0 +1,57 @@ +/** + * Created with JetBrains PhpStorm. + * User: xuheng + * Date: 12-9-26 + * Time: 下午1:06 + * To change this template use File | Settings | File Templates. + */ +/** + * tab点击处理事件 + * @param tabHeads + * @param tabBodys + * @param obj + */ +function clickHandler(tabHeads, tabBodys, obj) { + //head样式更改 + for (var k = 0, len = tabHeads.length; k < len; k++) { + tabHeads[k].className = ""; + } + obj.className = "focus"; + //body显隐 + var tabSrc = obj.getAttribute("tabSrc"); + for (var j = 0, length = tabBodys.length; j < length; j++) { + var body = tabBodys[j], + id = body.getAttribute("id"); + body.onclick = function () { + this.style.zoom = 1; + }; + if (id != tabSrc) { + body.style.zIndex = 1; + } else { + body.style.zIndex = 200; + } + } + +} + +/** + * TAB切换 + * @param tabParentId tab的父节点ID或者对象本身 + */ +function switchTab(tabParentId) { + var tabElements = $G(tabParentId).children, + tabHeads = tabElements[0].children, + tabBodys = tabElements[1].children; + + for (var i = 0, length = tabHeads.length; i < length; i++) { + var head = tabHeads[i]; + if (head.className === "focus") clickHandler(tabHeads, tabBodys, head); + head.onclick = function () { + clickHandler(tabHeads, tabBodys, this); + } + } +} + +switchTab("helptab"); + +document.getElementById('version').innerHTML = parent.UE.version; diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/image.css b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/image.css new file mode 100644 index 0000000..30535c4 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/image.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +@charset "utf-8";.wrapper{zoom:1;width:630px;*width:626px;height:380px;margin:0 auto;padding:10px;position:relative;font-family:sans-serif}.tabhead{float:left}.tabbody{width:100%;height:346px;position:relative;clear:both}.tabbody .panel{position:absolute;width:0;height:0;background:#fff;overflow:hidden;display:none}.tabbody .panel.focus{width:100%;height:346px;display:block}.alignBar{float:right;margin-top:5px;position:relative}.alignBar .algnLabel{float:left;height:20px;line-height:20px}.alignBar #alignIcon{zoom:1;_display:inline;display:inline-block;position:relative}.alignBar #alignIcon span{float:left;cursor:pointer;display:block;width:19px;height:17px;margin-right:3px;margin-left:3px;background-image:url(./images/alignicon.jpg)}.alignBar #alignIcon .none-align{background-position:0 -18px}.alignBar #alignIcon .left-align{background-position:-20px -18px}.alignBar #alignIcon .right-align{background-position:-40px -18px}.alignBar #alignIcon .center-align{background-position:-60px -18px}.alignBar #alignIcon .none-align.focus{background-position:0 0}.alignBar #alignIcon .left-align.focus{background-position:-20px 0}.alignBar #alignIcon .right-align.focus{background-position:-40px 0}.alignBar #alignIcon .center-align.focus{background-position:-60px 0}#remote{z-index:200}#remote .top{width:100%;margin-top:25px}#remote .left{display:block;float:left;width:300px;height:10px}#remote .right{display:block;float:right;width:300px;height:10px}#remote .row{margin-left:20px;clear:both;height:40px}#remote .row label{text-align:center;width:50px;zoom:1;_display:inline;display:inline-block;vertical-align:middle}#remote .row label.algnLabel{float:left}#remote input.text{width:150px;padding:3px 6px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}#remote input.text:focus{outline:0}#remote #url{width:400px;margin-bottom:2px}#remote #imageSelect{width:100px;display:inline-block;background:#FFF;border:1px solid #EEE;line-height:26px;text-align:center;color:#333;text-decoration:none;border-radius:3px;vertical-align:top}#remote #width,#remote #height{width:30px;margin-left:2px;margin-right:2px;text-align:center}#remote #border,#remote #vhSpace,#remote #title{width:180px;margin-right:5px}#remote #lock{display:inline-block;vertical-align:middle}#remote #lockicon{zoom:1;_display:inline;display:inline-block;width:20px;height:20px;background:url(../../themes/default/images/lock.gif) -13px -13px no-repeat;vertical-align:middle}#remote #preview{clear:both;width:260px;height:240px;z-index:9999;margin-top:10px;background-color:#eee;overflow:hidden}.tabbody #upload.panel{width:0;height:0;overflow:hidden;position:absolute!important;clip:rect(1px,1px,1px,1px);background:#fff;display:block}.tabbody #upload.panel.focus{width:100%;height:346px;display:block;clip:auto}#upload .queueList{margin:0;width:100%;height:100%;position:absolute;overflow:hidden}#upload p{margin:0}.element-invisible{width:0!important;height:0!important;border:0;padding:0;margin:0;overflow:hidden;position:absolute!important;clip:rect(1px,1px,1px,1px)}#upload .placeholder{margin:10px;border:2px dashed #e6e6e6;*border:0 dashed #e6e6e6;height:172px;padding-top:150px;text-align:center;background:url(./images/image.png) center 70px no-repeat;color:#ccc;font-size:18px;position:relative;top:0;*top:10px}#upload .placeholder .webuploader-pick{font-size:18px;background:#00b7ee;border-radius:3px;line-height:44px;padding:0 30px;*width:120px;color:#fff;display:inline-block;margin:0 auto 20px;cursor:pointer;box-shadow:0 1px 1px rgba(0,0,0,.1)}#upload .placeholder .webuploader-pick-hover{background:#00a2d4}#filePickerContainer{text-align:center}#upload .placeholder .flashTip{color:#666;font-size:12px;position:absolute;width:100%;text-align:center;bottom:20px}#upload .placeholder .flashTip a{color:#0785d1;text-decoration:none}#upload .placeholder .flashTip a:hover{text-decoration:underline}#upload .placeholder.webuploader-dnd-over{border-color:#999}#upload .filelist{list-style:none;margin:0;padding:0;overflow-x:hidden;overflow-y:auto;position:relative;height:300px}#upload .filelist:after{content:'';display:block;width:0;height:0;overflow:hidden;clear:both;position:relative}#upload .filelist li{width:113px;height:113px;background:url(./images/bg.png);text-align:center;margin:9px 0 0 9px;*margin:6px 0 0 6px;position:relative;display:block;float:left;overflow:hidden;font-size:12px}#upload .filelist li p.log{position:relative;top:-45px}#upload .filelist li p.title{position:absolute;top:0;left:0;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;top:5px;text-indent:5px;text-align:left}#upload .filelist li p.progress{position:absolute;width:100%;bottom:0;left:0;height:8px;overflow:hidden;z-index:50;margin:0;border-radius:0;background:0 0;-webkit-box-shadow:0 0 0}#upload .filelist li p.progress span{display:none;overflow:hidden;width:0;height:100%;background:#1483d8 url(./images/progress.png) repeat-x;-webit-transition:width 200ms linear;-moz-transition:width 200ms linear;-o-transition:width 200ms linear;-ms-transition:width 200ms linear;transition:width 200ms linear;-webkit-animation:progressmove 2s linear infinite;-moz-animation:progressmove 2s linear infinite;-o-animation:progressmove 2s linear infinite;-ms-animation:progressmove 2s linear infinite;animation:progressmove 2s linear infinite;-webkit-transform:translateZ(0)}@-webkit-keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}@-moz-keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}@keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}#upload .filelist li p.imgWrap{position:relative;z-index:2;line-height:113px;vertical-align:middle;overflow:hidden;width:113px;height:113px;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-o-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;-webit-transition:200ms ease-out;-moz-transition:200ms ease-out;-o-transition:200ms ease-out;-ms-transition:200ms ease-out;transition:200ms ease-out}#upload .filelist li img{width:100%}#upload .filelist li p.error{background:#f43838;color:#fff;position:absolute;bottom:0;left:0;height:28px;line-height:28px;width:100%;z-index:100;display:none}#upload .filelist li .success{display:block;position:absolute;left:0;bottom:0;height:40px;width:100%;z-index:200;background:url(./images/success.png) no-repeat right bottom;background:url(./images/success.gif) no-repeat right bottom \9}#upload .filelist li.filePickerBlock{width:113px;height:113px;background:url(./images/image.png) no-repeat center 12px;border:1px solid #eee;border-radius:0}#upload .filelist li.filePickerBlock div.webuploader-pick{width:100%;height:100%;margin:0;padding:0;opacity:0;background:0 0;font-size:0}#upload .filelist div.file-panel{position:absolute;height:0;filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;background:rgba(0,0,0,.5);width:100%;top:0;left:0;overflow:hidden;z-index:300}#upload .filelist div.file-panel span{width:24px;height:24px;display:inline;float:right;text-indent:-9999px;overflow:hidden;background:url(./images/icons.png) no-repeat;background:url(./images/icons.gif) no-repeat \9;margin:5px 1px 1px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#upload .filelist div.file-panel span.rotateLeft{display:none;background-position:0 -24px}#upload .filelist div.file-panel span.rotateLeft:hover{background-position:0 0}#upload .filelist div.file-panel span.rotateRight{display:none;background-position:-24px -24px}#upload .filelist div.file-panel span.rotateRight:hover{background-position:-24px 0}#upload .filelist div.file-panel span.cancel{background-position:-48px -24px}#upload .filelist div.file-panel span.cancel:hover{background-position:-48px 0}#upload .statusBar{height:45px;border-bottom:1px solid #dadada;margin:0 10px;padding:0;line-height:45px;vertical-align:middle;position:relative}#upload .statusBar .progress{border:1px solid #1483d8;width:198px;background:#fff;height:18px;position:absolute;top:12px;display:none;text-align:center;line-height:18px;color:#6dbfff;margin:0 10px 0 0}#upload .statusBar .progress span.percentage{width:0;height:100%;left:0;top:0;background:#1483d8;position:absolute}#upload .statusBar .progress span.text{position:relative;z-index:10}#upload .statusBar .info{display:inline-block;font-size:14px;color:#666}#upload .statusBar .btns{position:absolute;top:7px;right:0;line-height:30px}#filePickerBtn{display:inline-block;float:left}#upload .statusBar .btns .webuploader-pick,#upload .statusBar .btns .uploadBtn,#upload .statusBar .btns .uploadBtn.state-uploading,#upload .statusBar .btns .uploadBtn.state-paused{background:#fff;border:1px solid #cfcfcf;color:#565656;padding:0 18px;display:inline-block;border-radius:3px;margin-left:10px;cursor:pointer;font-size:14px;float:left;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#upload .statusBar .btns .webuploader-pick-hover,#upload .statusBar .btns .uploadBtn:hover,#upload .statusBar .btns .uploadBtn.state-uploading:hover,#upload .statusBar .btns .uploadBtn.state-paused:hover{background:#f0f0f0}#upload .statusBar .btns .uploadBtn,#upload .statusBar .btns .uploadBtn.state-paused{background:#00b7ee;color:#fff;border-color:transparent}#upload .statusBar .btns .uploadBtn:hover,#upload .statusBar .btns .uploadBtn.state-paused:hover{background:#00a2d4}#upload .statusBar .btns .uploadBtn.disabled{pointer-events:none;filter:alpha(opacity=60);-moz-opacity:.6;-khtml-opacity:.6;opacity:.6}#online{width:100%;height:336px;padding:10px 0 0}#online #imageList{width:100%;height:100%;overflow-x:hidden;overflow-y:auto;position:relative}#online ul{display:block;list-style:none;margin:0;padding:0}#online li{float:left;display:block;list-style:none;padding:0;width:113px;height:113px;margin:0 0 9px 9px;*margin:0 0 6px 6px;background-color:#eee;overflow:hidden;cursor:pointer;position:relative}#online li.clearFloat{float:none;clear:both;display:block;width:0;height:0;margin:0;padding:0}#online li img{cursor:pointer}#online li .icon{cursor:pointer;width:113px;height:113px;position:absolute;top:0;left:0;z-index:2;border:0;background-repeat:no-repeat}#online li .icon:hover{width:107px;height:107px;border:3px solid #1094fa}#online li.selected .icon{background-image:url(images/success.png);background-image:url(images/success.gif) \9;background-position:75px 75px}#online li.selected .icon:hover{width:107px;height:107px;border:3px solid #1094fa;background-position:72px 72px} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/image.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/image.html new file mode 100644 index 0000000..9064878 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/image.html @@ -0,0 +1,125 @@ + + + + + ueditor图片对话框 + + + + + + + + + + + + + + +
    +
    + + + +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    + + + +
    +
    +
    +
    + +   px +   px + +
    +
    + + px +
    +
    + + px +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    +
    +
    +
    + 0% + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
      +
    • +
    +
    +
    + + +
    +
    +
    + + + + +
    +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/image.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/image.js new file mode 100644 index 0000000..418cfe0 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/image.js @@ -0,0 +1,1051 @@ +/** + * User: Jinqn + * Date: 14-04-08 + * Time: 下午16:34 + * 上传图片对话框逻辑代码,包括tab: 远程图片/上传图片/在线图片/搜索图片 + */ +(function () { + + var remoteImage, + uploadImage, + onlineImage; + var editorOpt = {}; + + window.onload = function () { + editorOpt = editor.getOpt('imageConfig'); + initTabs(); + initAlign(); + initButtons(); + }; + + /* 初始化tab标签 */ + function initTabs() { + var tabs = $G('tabhead').children; + for (var i = 0; i < tabs.length; i++) { + domUtils.on(tabs[i], "click", function (e) { + var target = e.target || e.srcElement; + setTabFocus(target.getAttribute('data-content-id')); + }); + } + if (!editorOpt.disableUpload) { + $G('tabhead').querySelector('[data-content-id="upload"]').style.display = 'inline-block'; + } + if (!editorOpt.disableOnline) { + $G('tabhead').querySelector('[data-content-id="online"]').style.display = 'inline-block'; + } + if (!!editorOpt.selectCallback) { + $G('imageSelect').style.display = 'inline-block'; + domUtils.on($G('imageSelect'), "click", function (e) { + editorOpt.selectCallback(editor, function (info) { + if (info) { + $G('url').value = info.path; + $G('title').value = info.name; + var img = new Image(); + img.onload = function () { + $G('width').value = img.width; + $G('height').value = img.height; + remoteImage.setPreview(); + }; + img.onerror = function () { + remoteImage.setPreview(); + }; + img.src = info.path; + } + }); + }); + } + var img = editor.selection.getRange().getClosedNode(); + if (img && img.tagName && img.tagName.toLowerCase() == 'img') { + setTabFocus('remote'); + } else { + setTabFocus('remote'); + } + } + + /* 初始化tabbody */ + function setTabFocus(id) { + if (!id) return; + var i, bodyId, tabs = $G('tabhead').children; + for (i = 0; i < tabs.length; i++) { + bodyId = tabs[i].getAttribute('data-content-id'); + if (bodyId == id) { + domUtils.addClass(tabs[i], 'focus'); + domUtils.addClass($G(bodyId), 'focus'); + } else { + domUtils.removeClasses(tabs[i], 'focus'); + domUtils.removeClasses($G(bodyId), 'focus'); + } + } + switch (id) { + case 'remote': + remoteImage = remoteImage || new RemoteImage(); + break; + case 'upload': + setAlign(editor.getOpt('imageInsertAlign')); + uploadImage = uploadImage || new UploadImage('queueList'); + break; + case 'online': + setAlign(editor.getOpt('imageManagerInsertAlign')); + onlineImage = onlineImage || new OnlineImage('imageList'); + onlineImage.reset(); + break; + } + } + + /* 初始化onok事件 */ + function initButtons() { + + dialog.onok = function () { + var remote = false, list = [], id, tabs = $G('tabhead').children; + for (var i = 0; i < tabs.length; i++) { + if (domUtils.hasClass(tabs[i], 'focus')) { + id = tabs[i].getAttribute('data-content-id'); + break; + } + } + + switch (id) { + case 'remote': + list = remoteImage.getInsertList(); + break; + case 'upload': + list = uploadImage.getInsertList(); + var count = uploadImage.getQueueCount(); + if (count) { + $('.info', '#queueList').html('' + '还有2个未上传文件'.replace(/[\d]/, count) + ''); + return false; + } + break; + case 'online': + list = onlineImage.getInsertList(); + break; + } + + if (list) { + editor.execCommand('insertimage', list); + remote && editor.fireEvent("catchRemoteImage"); + } + }; + } + + + /* 初始化对其方式的点击事件 */ + function initAlign() { + /* 点击align图标 */ + domUtils.on($G("alignIcon"), 'click', function (e) { + var target = e.target || e.srcElement; + if (target.className && target.className.indexOf('-align') != -1) { + setAlign(target.getAttribute('data-align')); + } + }); + } + + /* 设置对齐方式 */ + function setAlign(align) { + align = align || 'none'; + var aligns = $G("alignIcon").children; + for (i = 0; i < aligns.length; i++) { + if (aligns[i].getAttribute('data-align') == align) { + domUtils.addClass(aligns[i], 'focus'); + $G("align").value = aligns[i].getAttribute('data-align'); + } else { + domUtils.removeClasses(aligns[i], 'focus'); + } + } + } + + /* 获取对齐方式 */ + function getAlign() { + var align = $G("align").value || 'none'; + return align == 'none' ? '' : align; + } + + + /* 在线图片 */ + function RemoteImage(target) { + this.container = utils.isString(target) ? document.getElementById(target) : target; + this.init(); + } + + RemoteImage.prototype = { + init: function () { + this.initContainer(); + this.initEvents(); + }, + initContainer: function () { + this.dom = { + 'url': $G('url'), + 'width': $G('width'), + 'height': $G('height'), + 'border': $G('border'), + 'vhSpace': $G('vhSpace'), + 'title': $G('title'), + 'align': $G('align') + }; + var img = editor.selection.getRange().getClosedNode(); + if (img) { + this.setImage(img); + } + }, + initEvents: function () { + var _this = this, + locker = $G('lock'); + + /* 改变url */ + domUtils.on($G("url"), 'keyup', updatePreview); + domUtils.on($G("border"), 'keyup', updatePreview); + domUtils.on($G("title"), 'keyup', updatePreview); + + domUtils.on($G("width"), 'keyup', function () { + if (locker.checked) { + var proportion = locker.getAttribute('data-proportion'); + $G('height').value = Math.round(this.value / proportion); + } else { + _this.updateLocker(); + } + updatePreview(); + }); + domUtils.on($G("height"), 'keyup', function () { + if (locker.checked) { + var proportion = locker.getAttribute('data-proportion'); + $G('width').value = Math.round(this.value * proportion); + } else { + _this.updateLocker(); + } + updatePreview(); + }); + domUtils.on($G("lock"), 'change', function () { + var proportion = parseInt($G("width").value) / parseInt($G("height").value); + locker.setAttribute('data-proportion', proportion); + }); + + function updatePreview() { + _this.setPreview(); + } + }, + updateLocker: function () { + var width = $G('width').value, + height = $G('height').value, + locker = $G('lock'); + if (width && height && width == parseInt(width) && height == parseInt(height)) { + locker.disabled = false; + locker.title = ''; + } else { + locker.checked = false; + locker.disabled = 'disabled'; + locker.title = lang.remoteLockError; + } + }, + setImage: function (img) { + /* 不是正常的图片 */ + if (!img.tagName || img.tagName.toLowerCase() != 'img' && !img.getAttribute("src") || !img.src) return; + + var wordImgFlag = img.getAttribute("data-word-image"), + src = wordImgFlag ? wordImgFlag.replace("&", "&") : (img.getAttribute('_src') || img.getAttribute("src", 2).replace("&", "&")), + align = editor.queryCommandValue("imageFloat"); + + /* 防止onchange事件循环调用 */ + if (src !== $G("url").value) $G("url").value = src; + if (src) { + /* 设置表单内容 */ + $G("width").value = img.width || ''; + $G("height").value = img.height || ''; + $G("border").value = img.getAttribute("border") || '0'; + $G("vhSpace").value = img.getAttribute("vspace") || '0'; + $G("title").value = img.title || img.alt || ''; + setAlign(align); + this.setPreview(); + this.updateLocker(); + } + }, + getData: function () { + var data = {}; + for (var k in this.dom) { + data[k] = this.dom[k].value; + } + return data; + }, + setPreview: function () { + var url = $G('url').value, + ow = $G('width').value, + oh = $G('height').value, + border = $G('border').value, + title = $G('title').value, + preview = $G('preview'), + width, + height; + + width = ((!ow || !oh) ? preview.offsetWidth : Math.min(ow, preview.offsetWidth)); + width = width + (border * 2) > preview.offsetWidth ? width : (preview.offsetWidth - (border * 2)); + height = (!ow || !oh) ? '' : width * oh / ow; + + if (url) { + preview.innerHTML = ''; + } + }, + getInsertList: function () { + var data = this.getData(); + if (data['url']) { + var img = { + src: data['url'], + _src: data['url'], + } + img._propertyDelete = [] + img.style = [] + if (data['width']) { + img.width = data['width']; + img.style.push('width:' + data['width'] + 'px'); + } else { + img._propertyDelete.push('width'); + } + if (data['height']) { + img.height = data['height']; + img.style.push('height:' + data['height'] + 'px'); + } else { + img._propertyDelete.push('height'); + } + if (data['border']) { + img.border = data['border']; + } else { + img._propertyDelete.push('border'); + } + if (data['align']) { + img.floatStyle = data['align']; + } else { + img._propertyDelete.push('floatStyle'); + } + if (data['vhSpace']) { + img.vspace = data['vhSpace']; + } else { + img._propertyDelete.push('vspace'); + } + if (data['title']) { + img.alt = data['title']; + } else { + img._propertyDelete.push('alt'); + } + if (img.style.length > 0) { + img.style = img.style.join(';'); + } else { + img._propertyDelete.push('style'); + } + return [img]; + } else { + return []; + } + } + }; + + + /* 上传图片 */ + function UploadImage(target) { + this.$wrap = target.constructor == String ? $('#' + target) : $(target); + this.init(); + } + + UploadImage.prototype = { + init: function () { + this.imageList = []; + this.initContainer(); + this.initUploader(); + }, + initContainer: function () { + this.$queue = this.$wrap.find('.filelist'); + }, + /* 初始化容器 */ + initUploader: function () { + var _this = this, + $ = jQuery, // just in case. Make sure it's not an other libaray. + $wrap = _this.$wrap, + // 图片容器 + $queue = $wrap.find('.filelist'), + // 状态栏,包括进度和控制按钮 + $statusBar = $wrap.find('.statusBar'), + // 文件总体选择信息。 + $info = $statusBar.find('.info'), + // 上传按钮 + $upload = $wrap.find('.uploadBtn'), + // 上传按钮 + $filePickerBtn = $wrap.find('.filePickerBtn'), + // 上传按钮 + $filePickerBlock = $wrap.find('.filePickerBlock'), + // 没选择文件之前的内容。 + $placeHolder = $wrap.find('.placeholder'), + // 总体进度条 + $progress = $statusBar.find('.progress').hide(), + // 添加的文件数量 + fileCount = 0, + // 添加的文件总大小 + fileSize = 0, + // 优化retina, 在retina下这个值是2 + ratio = window.devicePixelRatio || 1, + // 缩略图大小 + thumbnailWidth = 113 * ratio, + thumbnailHeight = 113 * ratio, + // 可能有pedding, ready, uploading, confirm, done. + state = '', + // 所有文件的进度信息,key为file id + percentages = {}, + supportTransition = (function () { + var s = document.createElement('p').style, + r = 'transition' in s || + 'WebkitTransition' in s || + 'MozTransition' in s || + 'msTransition' in s || + 'OTransition' in s; + s = null; + return r; + })(), + // WebUploader实例 + uploader, + actionUrl = editor.getActionUrl(editor.getOpt('imageActionName')), + acceptExtensions = (editor.getOpt('imageAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, ''), + imageMaxSize = editor.getOpt('imageMaxSize'), + imageCompressBorder = editor.getOpt('imageCompressBorder'); + + if (!WebUploader.Uploader.support()) { + $('#filePickerReady').after($('
    ').html(lang.errorNotSupport)).hide(); + return; + } else if (!editor.getOpt('imageActionName')) { + $('#filePickerReady').after($('
    ').html(lang.errorLoadConfig)).hide(); + return; + } + + var uploaderOption = { + pick: { + id: '#filePickerReady', + label: lang.uploadSelectFile + }, + accept: { + title: 'Images', + extensions: acceptExtensions, + mimeTypes: 'image/*' + }, + swf: '../../third-party/webuploader/Uploader.swf', + server: actionUrl, + fileVal: editor.getOpt('imageFieldName'), + duplicate: true, + fileSingleSizeLimit: imageMaxSize, // 默认 2 M + threads: 1, + headers: editor.getOpt('serverHeaders') || {}, + compress: editor.getOpt('imageCompressEnable') ? { + enable: editor.getOpt('imageCompressEnable'), + maxWidthOrHeight: imageCompressBorder, + maxSize: imageMaxSize, + } : false + }; + if(editor.getOpt('uploadServiceEnable')) { + uploaderOption.customUpload = function (file, callback) { + editor.getOpt('uploadServiceUpload')('image', file, { + success: function( res ) { + callback.onSuccess(file, {_raw:JSON.stringify(res)}); + }, + error: function( err ) { + callback.onError(file, err); + }, + progress: function( percent ) { + callback.onProgress(file, percent); + } + }, { + from: 'image' + }); + }; + } + + uploader = _this.uploader = WebUploader.create(uploaderOption); + uploader.addButton({ + id: '#filePickerBlock' + }); + uploader.addButton({ + id: '#filePickerBtn', + label: lang.uploadAddFile + }); + + setState('pedding'); + + // 当有文件添加进来时执行,负责view的创建 + function addFile(file) { + var $li = $('
  • ' + + '

    ' + file.name + '

    ' + + '

    ' + + '

    ' + + '
  • '), + + $btns = $('
    ' + + '' + lang.uploadDelete + '' + + '' + lang.uploadTurnRight + '' + + '' + lang.uploadTurnLeft + '
    ').appendTo($li), + $prgress = $li.find('p.progress span'), + $wrap = $li.find('p.imgWrap'), + $info = $('

    ').hide().appendTo($li), + + showError = function (code) { + switch (code) { + case 'exceed_size': + text = lang.errorExceedSize; + break; + case 'interrupt': + text = lang.errorInterrupt; + break; + case 'http': + text = lang.errorHttp; + break; + case 'not_allow_type': + text = lang.errorFileType; + break; + default: + text = lang.errorUploadRetry; + break; + } + $info.text(text).show(); + }; + + if (file.getStatus() === 'invalid') { + showError(file.statusText); + } else { + $wrap.text(lang.uploadPreview); + if (browser.ie && browser.version <= 7) { + $wrap.text(lang.uploadNoPreview); + } else { + uploader.makeThumb(file, function (error, src) { + if (error || !src) { + $wrap.text(lang.uploadNoPreview); + } else { + var $img = $(''); + $wrap.empty().append($img); + $img.on('error', function () { + $wrap.text(lang.uploadNoPreview); + }); + } + }, thumbnailWidth, thumbnailHeight); + } + percentages[file.id] = [file.size, 0]; + file.rotation = 0; + + /* 检查文件格式 */ + if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) { + showError('not_allow_type'); + uploader.removeFile(file); + } + } + + file.on('statuschange', function (cur, prev) { + if (prev === 'progress') { + $prgress.hide().width(0); + } else if (prev === 'queued') { + $li.off('mouseenter mouseleave'); + $btns.remove(); + } + // 成功 + if (cur === 'error' || cur === 'invalid') { + showError(file.statusText); + percentages[file.id][1] = 1; + } else if (cur === 'interrupt') { + showError('interrupt'); + } else if (cur === 'queued') { + percentages[file.id][1] = 0; + } else if (cur === 'progress') { + $info.hide(); + $prgress.css('display', 'block'); + } else if (cur === 'complete') { + } + + $li.removeClass('state-' + prev).addClass('state-' + cur); + }); + + $li.on('mouseenter', function () { + $btns.stop().animate({height: 30}); + }); + $li.on('mouseleave', function () { + $btns.stop().animate({height: 0}); + }); + + $btns.on('click', 'span', function () { + var index = $(this).index(), + deg; + + switch (index) { + case 0: + uploader.removeFile(file); + return; + case 1: + file.rotation += 90; + break; + case 2: + file.rotation -= 90; + break; + } + + if (supportTransition) { + deg = 'rotate(' + file.rotation + 'deg)'; + $wrap.css({ + '-webkit-transform': deg, + '-mos-transform': deg, + '-o-transform': deg, + 'transform': deg + }); + } else { + $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')'); + } + + }); + + $li.insertBefore($filePickerBlock); + } + + // 负责view的销毁 + function removeFile(file) { + var $li = $('#' + file.id); + delete percentages[file.id]; + updateTotalProgress(); + $li.off().find('.file-panel').off().end().remove(); + } + + function updateTotalProgress() { + var loaded = 0, + total = 0, + spans = $progress.children(), + percent; + + $.each(percentages, function (k, v) { + total += v[0]; + loaded += v[0] * v[1]; + }); + + percent = total ? loaded / total : 0; + + spans.eq(0).text(Math.round(percent * 100) + '%'); + spans.eq(1).css('width', Math.round(percent * 100) + '%'); + updateStatus(); + } + + function setState(val, files) { + + if (val !== state) { + + var stats = uploader.getStats(); + + $upload.removeClass('state-' + state); + $upload.addClass('state-' + val); + + switch (val) { + + /* 未选择文件 */ + case 'pedding': + $queue.addClass('element-invisible'); + $statusBar.addClass('element-invisible'); + $placeHolder.removeClass('element-invisible'); + $progress.hide(); + $info.hide(); + uploader.refresh(); + break; + + /* 可以开始上传 */ + case 'ready': + $placeHolder.addClass('element-invisible'); + $queue.removeClass('element-invisible'); + $statusBar.removeClass('element-invisible'); + $progress.hide(); + $info.show(); + $upload.text(lang.uploadStart); + uploader.refresh(); + break; + + /* 上传中 */ + case 'uploading': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadPause); + break; + + /* 暂停上传 */ + case 'paused': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadContinue); + break; + + case 'confirm': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadStart); + + stats = uploader.getStats(); + if (stats.successNum && !stats.uploadFailNum) { + setState('finish'); + return; + } + break; + + case 'finish': + $progress.hide(); + $info.show(); + if (stats.uploadFailNum) { + $upload.text(lang.uploadRetry); + } else { + $upload.text(lang.uploadStart); + } + break; + } + + state = val; + updateStatus(); + + } + + if (!_this.getQueueCount()) { + $upload.addClass('disabled') + } else { + $upload.removeClass('disabled') + } + + } + + function updateStatus() { + var text = '', stats; + + if (state === 'ready') { + text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)); + } else if (state === 'confirm') { + stats = uploader.getStats(); + if (stats.uploadFailNum) { + text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum); + } + } else { + stats = uploader.getStats(); + text = lang.updateStatusFinish.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)).replace('_', stats.successNum); + + if (stats.uploadFailNum) { + text += lang.updateStatusError.replace('_', stats.uploadFailNum); + } + } + + $info.html(text); + } + + uploader.on('fileQueued', function (file) { + fileCount++; + fileSize += file.size; + + if (fileCount === 1) { + $placeHolder.addClass('element-invisible'); + $statusBar.show(); + } + + addFile(file); + }); + + uploader.on('fileDequeued', function (file) { + if (file.ext && acceptExtensions.indexOf(file.ext.toLowerCase()) != -1 && file.size <= imageMaxSize) { + fileCount--; + fileSize -= file.size; + } + + removeFile(file); + updateTotalProgress(); + }); + + uploader.on('filesQueued', function (file) { + if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) { + setState('ready'); + } + updateTotalProgress(); + }); + + uploader.on('all', function (type, files) { + switch (type) { + case 'uploadFinished': + setState('confirm', files); + break; + case 'startUpload': + /* 添加额外的GET参数 */ + var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', + url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?' : '&') + 'encode=utf-8&' + params); + uploader.option('server', url); + setState('uploading', files); + break; + case 'stopUpload': + setState('paused', files); + break; + } + }); + + uploader.on('uploadBeforeSend', function (file, data, header) { + //这里可以通过data对象添加POST参数 + if (actionUrl.toLowerCase().indexOf('jsp') != -1) { + header['X-Requested-With'] = 'XMLHttpRequest'; + } + }); + + uploader.on('uploadProgress', function (file, percentage) { + var $li = $('#' + file.id), + $percent = $li.find('.progress span'); + + $percent.css('width', percentage * 100 + '%'); + percentages[file.id][1] = percentage; + updateTotalProgress(); + }); + + uploader.on('uploadSuccess', function (file, ret) { + var $file = $('#' + file.id); + try { + var responseText = (ret._raw || ret), + json = utils.str2json(responseText); + json = editor.options.serverResponsePrepare(json); + if (json.state == 'SUCCESS') { + _this.imageList.push(json); + $file.append(''); + // 触发上传图片事件 + editor.fireEvent("uploadsuccess", { + res: json, + type: 'image' + }); + } else { + $file.find('.error').text(json.state).show(); + } + } catch (e) { + $file.find('.error').text(lang.errorServerUpload).show(); + } + }); + + uploader.on('uploadError', function (file, code) { + }); + uploader.on('error', function (code, param1, param2) { + if (code === 'F_EXCEED_SIZE') { + editor.getOpt('tipError')(lang.errorExceedSize + ' ' + (param1 / 1024 / 1024).toFixed(1) + 'MB'); + } else { + console.log('error', code, param1, param2); + } + }); + uploader.on('uploadComplete', function (file, ret) { + }); + + $upload.on('click', function () { + if ($(this).hasClass('disabled')) { + return false; + } + + if (state === 'ready') { + uploader.upload(); + } else if (state === 'paused') { + uploader.upload(); + } else if (state === 'uploading') { + uploader.stop(); + } + }); + + $upload.addClass('state-' + state); + updateTotalProgress(); + }, + getQueueCount: function () { + var file, i, status, readyFile = 0, files = this.uploader.getFiles(); + for (i = 0; file = files[i++];) { + status = file.getStatus(); + if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++; + } + return readyFile; + }, + destroy: function () { + this.$wrap.remove(); + }, + getInsertList: function () { + var i, data, list = [], + align = getAlign(), + prefix = editor.getOpt('imageUrlPrefix'); + for (i = 0; i < this.imageList.length; i++) { + data = this.imageList[i]; + list.push({ + src: prefix + data.url, + _src: prefix + data.url, + alt: data.original, + floatStyle: align + }); + } + return list; + } + }; + + + /* 在线图片 */ + function OnlineImage(target) { + this.container = utils.isString(target) ? document.getElementById(target) : target; + this.init(); + } + + OnlineImage.prototype = { + init: function () { + this.reset(); + this.initEvents(); + }, + /* 初始化容器 */ + initContainer: function () { + this.container.innerHTML = ''; + this.list = document.createElement('ul'); + this.clearFloat = document.createElement('li'); + + domUtils.addClass(this.list, 'list'); + domUtils.addClass(this.clearFloat, 'clearFloat'); + + this.list.appendChild(this.clearFloat); + this.container.appendChild(this.list); + }, + /* 初始化滚动事件,滚动到地步自动拉取数据 */ + initEvents: function () { + var _this = this; + + /* 滚动拉取图片 */ + domUtils.on($G('imageList'), 'scroll', function (e) { + var panel = this; + if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) { + _this.getImageData(); + } + }); + /* 选中图片 */ + domUtils.on(this.container, 'click', function (e) { + var target = e.target || e.srcElement, + li = target.parentNode; + + if (li.tagName.toLowerCase() == 'li') { + if (domUtils.hasClass(li, 'selected')) { + domUtils.removeClasses(li, 'selected'); + } else { + domUtils.addClass(li, 'selected'); + } + } + }); + }, + /* 初始化第一次的数据 */ + initData: function () { + + /* 拉取数据需要使用的值 */ + this.state = 0; + this.listSize = editor.getOpt('imageManagerListSize'); + this.listIndex = 0; + this.listEnd = false; + + /* 第一次拉取数据 */ + this.getImageData(); + }, + /* 重置界面 */ + reset: function () { + this.initContainer(); + this.initData(); + }, + /* 向后台拉取图片列表数据 */ + getImageData: function () { + var _this = this; + + if (!_this.listEnd && !this.isLoadingData) { + this.isLoadingData = true; + var url = editor.getActionUrl(editor.getOpt('imageManagerActionName')), + isJsonp = utils.isCrossDomainUrl(url); + ajax.request(url, { + 'timeout': 100000, + 'dataType': isJsonp ? 'jsonp' : '', + 'headers': editor.options.serverHeaders || {}, + 'data': utils.extend({ + start: this.listIndex, + size: this.listSize + }, editor.queryCommandValue('serverparam')), + 'method': 'get', + 'onsuccess': function (r) { + try { + var json = isJsonp ? r : eval('(' + r.responseText + ')'); + json = editor.options.serverResponsePrepare(json); + if (json.state === 'SUCCESS') { + _this.pushData(json.list); + _this.listIndex = parseInt(json.start) + parseInt(json.list.length); + if (_this.listIndex >= json.total) { + _this.listEnd = true; + } + _this.isLoadingData = false; + } + } catch (e) { + if (r.responseText.indexOf('ue_separate_ue') != -1) { + var list = r.responseText.split(r.responseText); + _this.pushData(list); + _this.listIndex = parseInt(list.length); + _this.listEnd = true; + _this.isLoadingData = false; + } + } + }, + 'onerror': function () { + _this.isLoadingData = false; + } + }); + } + }, + /* 添加图片到列表界面上 */ + pushData: function (list) { + var i, item, img, icon, _this = this, + urlPrefix = editor.getOpt('imageManagerUrlPrefix'); + for (i = 0; i < list.length; i++) { + if (list[i] && list[i].url) { + item = document.createElement('li'); + img = document.createElement('img'); + icon = document.createElement('span'); + + domUtils.on(img, 'load', (function (image) { + return function () { + _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight); + } + })(img)); + img.width = 113; + img.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=' : '&noCache=') + (+new Date()).toString(36)); + img.setAttribute('_src', urlPrefix + list[i].url); + domUtils.addClass(icon, 'icon'); + + item.appendChild(img); + item.appendChild(icon); + this.list.insertBefore(item, this.clearFloat); + } + } + }, + /* 改变图片大小 */ + scale: function (img, w, h, type) { + var ow = img.width, + oh = img.height; + + if (type == 'justify') { + if (ow >= oh) { + img.width = w; + img.height = h * oh / ow; + img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; + } else { + img.width = w * ow / oh; + img.height = h; + img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; + } + } else { + if (ow >= oh) { + img.width = w * ow / oh; + img.height = h; + img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px'; + } else { + img.width = w; + img.height = h * oh / ow; + img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px'; + } + } + }, + getInsertList: function () { + var i, lis = this.list.children, list = [], align = getAlign(); + for (i = 0; i < lis.length; i++) { + if (domUtils.hasClass(lis[i], 'selected')) { + var img = lis[i].firstChild, + src = img.getAttribute('_src'); + list.push({ + src: src, + _src: src, + alt: src.substr(src.lastIndexOf('/') + 1), + floatStyle: align + }); + } + + } + return list; + } + }; + +})(); diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/alignicon.jpg b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/alignicon.jpg new file mode 100644 index 0000000..754755b Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/alignicon.jpg differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/bg.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/bg.png new file mode 100644 index 0000000..580be0a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/bg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/icons.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/icons.gif new file mode 100644 index 0000000..78459de Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/icons.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/icons.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/icons.png new file mode 100644 index 0000000..12e4700 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/icons.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/image.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/image.png new file mode 100644 index 0000000..19699f6 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/image.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/progress.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/progress.png new file mode 100644 index 0000000..717c486 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/progress.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/success.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/success.gif new file mode 100644 index 0000000..8d4f311 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/success.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/success.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/success.png new file mode 100644 index 0000000..94f968d Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/image/images/success.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/insertframe/insertframe.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/insertframe/insertframe.html new file mode 100644 index 0000000..a2a34ef --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/insertframe/insertframe.html @@ -0,0 +1,135 @@ + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + +
    + + +
    + px +
    px +
    + +
    +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/internal.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/internal.js new file mode 100644 index 0000000..2b45bec --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/internal.js @@ -0,0 +1,81 @@ +(function () { + var parent = window.parent; + //dialog对象 + dialog = parent.$EDITORUI[window.frameElement.id.replace(/_iframe$/, '')]; + //当前打开dialog的编辑器实例 + editor = dialog.editor; + + UE = parent.UE; + + domUtils = UE.dom.domUtils; + + utils = UE.utils; + + browser = UE.browser; + + ajax = UE.ajax; + + $G = function (id) { + return document.getElementById(id) + }; + //focus元素 + $focus = function (node) { + setTimeout(function () { + if (browser.ie) { + var r = node.createTextRange(); + r.collapse(false); + r.select(); + } else { + node.focus() + } + }, 0) + }; + utils.loadFile(document, { + href: editor.options.themePath + editor.options.theme + "/dialogbase.css?cache=v20250415", + tag: "link", + type: "text/css", + rel: "stylesheet" + }); + lang = editor.getLang(dialog.className.split("-")[2]); + if (lang) { + domUtils.on(window, 'load', function () { + + var langImgPath = editor.options.langPath + editor.options.lang + "/images/"; + //针对静态资源 + for (var i in lang["static"]) { + var dom = $G(i); + if (!dom) continue; + var tagName = dom.tagName, + content = lang["static"][i]; + if (content.src) { + //clone + content = utils.extend({}, content, false); + content.src = langImgPath + content.src; + } + if (content.style) { + content = utils.extend({}, content, false); + content.style = content.style.replace(/url\s*\(/g, "url(" + langImgPath) + } + switch (tagName.toLowerCase()) { + case "var": + dom.parentNode.replaceChild(document.createTextNode(content), dom); + break; + case "select": + var ops = dom.options; + for (var j = 0, oj; oj = ops[j];) { + oj.innerHTML = content.options[j++]; + } + for (var p in content) { + p != "options" && dom.setAttribute(p, content[p]); + } + break; + default : + domUtils.setAttributes(dom, content); + } + } + }); + } + + +})(); + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/link/link.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/link/link.html new file mode 100644 index 0000000..8e37dd4 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/link/link.html @@ -0,0 +1,155 @@ + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/preview/preview.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/preview/preview.html new file mode 100644 index 0000000..c49ec25 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/preview/preview.html @@ -0,0 +1,45 @@ + + + + + + + + + + +
    + +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/addimg.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/addimg.png new file mode 100644 index 0000000..03a8713 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/addimg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/brush.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/brush.png new file mode 100644 index 0000000..efa6fdb Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/brush.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/delimg.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/delimg.png new file mode 100644 index 0000000..5a892e4 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/delimg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/delimgH.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/delimgH.png new file mode 100644 index 0000000..2f0c5c9 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/delimgH.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/empty.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/empty.png new file mode 100644 index 0000000..0375196 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/empty.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/emptyH.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/emptyH.png new file mode 100644 index 0000000..838ca72 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/emptyH.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/eraser.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/eraser.png new file mode 100644 index 0000000..63e87ce Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/eraser.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/redo.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/redo.png new file mode 100644 index 0000000..12cd9bb Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/redo.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/redoH.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/redoH.png new file mode 100644 index 0000000..d9f33d3 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/redoH.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/scale.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/scale.png new file mode 100644 index 0000000..935a3f3 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/scale.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/scaleH.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/scaleH.png new file mode 100644 index 0000000..72e64a9 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/scaleH.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/size.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/size.png new file mode 100644 index 0000000..8366845 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/size.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/undo.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/undo.png new file mode 100644 index 0000000..084c7cc Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/undo.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/undoH.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/undoH.png new file mode 100644 index 0000000..fde7eb3 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/images/undoH.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/scrawl.css b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/scrawl.css new file mode 100644 index 0000000..7b3ea66 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/scrawl.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +body{margin:0}table{width:100%}table td{padding:2px 4px;vertical-align:middle}a{text-decoration:none}em{font-style:normal}.border_style1{border:1px solid #ccc;border-radius:5px;box-shadow:2px 2px 5px #d3d6da}.main{margin:8px;overflow:hidden}.hot{float:left;height:335px}.drawBoard{position:relative;cursor:crosshair}.brushBorad{position:absolute;left:0;top:0;z-index:998}.picBoard{border:0;text-align:center;line-height:300px;cursor:default}.operateBar{margin-top:10px;font-size:12px;text-align:center}.operateBar span{margin-left:10px}.drawToolbar{float:right;width:110px;height:300px;overflow:hidden}.colorBar{margin-top:10px;font-size:12px;text-align:center}.colorBar a{display:block;width:10px;height:10px;border:1px solid #1006F1;border-radius:3px;box-shadow:2px 2px 5px #d3d6da;opacity:.3}.sectionBar{margin-top:15px;font-size:12px;text-align:center}.sectionBar a{display:inline-block;width:10px;height:12px;color:#888;text-indent:-999px;opacity:.3}.size1{background:url(images/size.png) 1px center no-repeat}.size2{background:url(images/size.png) -10px center no-repeat}.size3{background:url(images/size.png) -22px center no-repeat}.size4{background:url(images/size.png) -35px center no-repeat}.addImgH{position:relative}.addImgH_form{position:absolute;left:18px;top:-1px;width:75px;height:21px;opacity:0;cursor:pointer}.addImgH_form input{width:100%}.maskLayerNull{display:none}.maskLayer{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.7;background-color:#fff;text-align:center;font-weight:700;line-height:300px;z-index:1000}.previousStepH .icon{display:inline-block;width:16px;height:16px;background-image:url(images/undoH.png);cursor:pointer}.previousStepH .text{color:#888;cursor:pointer}.previousStep .icon{display:inline-block;width:16px;height:16px;background-image:url(images/undo.png);cursor:default}.previousStep .text{color:#ccc;cursor:default}.nextStepH .icon{display:inline-block;width:16px;height:16px;background-image:url(images/redoH.png);cursor:pointer}.nextStepH .text{color:#888;cursor:pointer}.nextStep .icon{display:inline-block;width:16px;height:16px;background-image:url(images/redo.png);cursor:default}.nextStep .text{color:#ccc;cursor:default}.clearBoardH .icon{display:inline-block;width:16px;height:16px;background-image:url(images/emptyH.png);cursor:pointer}.clearBoardH .text{color:#888;cursor:pointer}.clearBoard .icon{display:inline-block;width:16px;height:16px;background-image:url(images/empty.png);cursor:default}.clearBoard .text{color:#ccc;cursor:default}.scaleBoardH .icon{display:inline-block;width:16px;height:16px;background-image:url(images/scaleH.png);cursor:pointer}.scaleBoardH .text{color:#888;cursor:pointer}.scaleBoard .icon{display:inline-block;width:16px;height:16px;background-image:url(images/scale.png);cursor:default}.scaleBoard .text{color:#ccc;cursor:default}.removeImgH .icon{display:inline-block;width:16px;height:16px;background-image:url(images/delimgH.png);cursor:pointer}.removeImgH .text{color:#888;cursor:pointer}.removeImg .icon{display:inline-block;width:16px;height:16px;background-image:url(images/delimg.png);cursor:default}.removeImg .text{color:#ccc;cursor:default}.addImgH .icon{vertical-align:top;display:inline-block;width:16px;height:16px;background-image:url(images/addimg.png)}.addImgH .text{color:#888;cursor:pointer}.brushIcon{display:inline-block;width:16px;height:16px;background-image:url(images/brush.png)}.eraserIcon{display:inline-block;width:16px;height:16px;background-image:url(images/eraser.png)} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/scrawl.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/scrawl.html new file mode 100644 index 0000000..8e62cdf --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/scrawl.html @@ -0,0 +1,95 @@ + + + + + + + + + + +
    +
    +
    + +
    +
    +
    + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    + + 1 + 3 + 5 + 7 +
    +
    + + 1 + 3 + 5 + 7 +
    +
    +
    + + +
    + +
    + +
    +
    +
    + + + + +
    +
    +
    +
    + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/scrawl.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/scrawl.js new file mode 100644 index 0000000..e8bd7cb --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/scrawl/scrawl.js @@ -0,0 +1,707 @@ +/** + * Created with JetBrains PhpStorm. + * User: xuheng + * Date: 12-5-22 + * Time: 上午11:38 + * To change this template use File | Settings | File Templates. + */ +var scrawl = function (options) { + options && this.initOptions(options); +}; +(function () { + var canvas = $G("J_brushBoard"), + context = canvas.getContext('2d'), + drawStep = [], //undo redo存储 + drawStepIndex = 0; //undo redo指针 + + scrawl.prototype = { + isScrawl: false, //是否涂鸦 + brushWidth: -1, //画笔粗细 + brushColor: "", //画笔颜色 + + initOptions: function (options) { + var me = this; + me.originalState(options);//初始页面状态 + me._buildToolbarColor(options.colorList);//动态生成颜色选择集合 + + me._addBoardListener(options.saveNum);//添加画板处理 + me._addOPerateListener(options.saveNum);//添加undo redo clearBoard处理 + me._addColorBarListener();//添加颜色选择处理 + me._addBrushBarListener();//添加画笔大小处理 + me._addEraserBarListener();//添加橡皮大小处理 + me._addAddImgListener();//添加增添背景图片处理 + me._addRemoveImgListenter();//删除背景图片处理 + me._addScalePicListenter();//添加缩放处理 + me._addClearSelectionListenter();//添加清楚选中状态处理 + + me._originalColorSelect(options.drawBrushColor);//初始化颜色选中 + me._originalBrushSelect(options.drawBrushSize);//初始化画笔选中 + me._clearSelection();//清楚选中状态 + }, + + originalState: function (options) { + var me = this; + + me.brushWidth = options.drawBrushSize;//同步画笔粗细 + me.brushColor = options.drawBrushColor;//同步画笔颜色 + + context.lineWidth = me.brushWidth;//初始画笔大小 + context.strokeStyle = me.brushColor;//初始画笔颜色 + context.fillStyle = "transparent";//初始画布背景颜色 + context.lineCap = "round";//去除锯齿 + context.fill(); + }, + _buildToolbarColor: function (colorList) { + var tmp = null, arr = []; + arr.push(""); + for (var i = 0, color; color = colorList[i++];) { + if ((i - 1) % 5 == 0) { + if (i != 1) { + arr.push(""); + } + arr.push(""); + } + tmp = '#' + color; + arr.push(""); + } + arr.push("
    "); + $G("J_colorBar").innerHTML = arr.join(""); + }, + + _addBoardListener: function (saveNum) { + var me = this, + margin = 0, + startX = -1, + startY = -1, + isMouseDown = false, + isMouseMove = false, + isMouseUp = false, + buttonPress = 0, button, flag = ''; + + margin = parseInt(domUtils.getComputedStyle($G("J_wrap"), "margin-left")); + drawStep.push(context.getImageData(0, 0, context.canvas.width, context.canvas.height)); + drawStepIndex += 1; + + domUtils.on(canvas, ["mousedown", "mousemove", "mouseup", "mouseout"], function (e) { + button = browser.webkit ? e.which : buttonPress; + switch (e.type) { + case 'mousedown': + buttonPress = 1; + flag = 1; + isMouseDown = true; + isMouseUp = false; + isMouseMove = false; + me.isScrawl = true; + startX = e.clientX - margin;//10为外边距总和 + startY = e.clientY - margin; + context.beginPath(); + break; + case 'mousemove' : + if (!flag && button == 0) { + return; + } + if (!flag && button) { + startX = e.clientX - margin;//10为外边距总和 + startY = e.clientY - margin; + context.beginPath(); + flag = 1; + } + if (isMouseUp || !isMouseDown) { + return; + } + var endX = e.clientX - margin, + endY = e.clientY - margin; + + context.moveTo(startX, startY); + context.lineTo(endX, endY); + context.stroke(); + startX = endX; + startY = endY; + isMouseMove = true; + break; + case 'mouseup': + buttonPress = 0; + if (!isMouseDown) return; + if (!isMouseMove) { + context.arc(startX, startY, context.lineWidth, 0, Math.PI * 2, false); + context.fillStyle = context.strokeStyle; + context.fill(); + } + context.closePath(); + me._saveOPerate(saveNum); + isMouseDown = false; + isMouseMove = false; + isMouseUp = true; + startX = -1; + startY = -1; + break; + case 'mouseout': + flag = ''; + buttonPress = 0; + if (button == 1) return; + context.closePath(); + break; + } + }); + }, + _addOPerateListener: function (saveNum) { + var me = this; + domUtils.on($G("J_previousStep"), "click", function () { + if (drawStepIndex > 1) { + drawStepIndex -= 1; + context.clearRect(0, 0, context.canvas.width, context.canvas.height); + context.putImageData(drawStep[drawStepIndex - 1], 0, 0); + me.btn2Highlight("J_nextStep"); + drawStepIndex == 1 && me.btn2disable("J_previousStep"); + } + }); + domUtils.on($G("J_nextStep"), "click", function () { + if (drawStepIndex > 0 && drawStepIndex < drawStep.length) { + context.clearRect(0, 0, context.canvas.width, context.canvas.height); + context.putImageData(drawStep[drawStepIndex], 0, 0); + drawStepIndex += 1; + me.btn2Highlight("J_previousStep"); + drawStepIndex == drawStep.length && me.btn2disable("J_nextStep"); + } + }); + domUtils.on($G("J_clearBoard"), "click", function () { + context.clearRect(0, 0, context.canvas.width, context.canvas.height); + drawStep = []; + me._saveOPerate(saveNum); + drawStepIndex = 1; + me.isScrawl = false; + me.btn2disable("J_previousStep"); + me.btn2disable("J_nextStep"); + me.btn2disable("J_clearBoard"); + }); + }, + _addColorBarListener: function () { + var me = this; + domUtils.on($G("J_colorBar"), "click", function (e) { + var target = me.getTarget(e), + color = target.title; + if (!!color) { + me._addColorSelect(target); + + me.brushColor = color; + context.globalCompositeOperation = "source-over"; + context.lineWidth = me.brushWidth; + context.strokeStyle = color; + } + }); + }, + _addBrushBarListener: function () { + var me = this; + domUtils.on($G("J_brushBar"), "click", function (e) { + var target = me.getTarget(e), + size = browser.ie ? target.innerText : target.text; + if (!!size) { + me._addBESelect(target); + + context.globalCompositeOperation = "source-over"; + context.lineWidth = parseInt(size); + context.strokeStyle = me.brushColor; + me.brushWidth = context.lineWidth; + } + }); + }, + _addEraserBarListener: function () { + var me = this; + domUtils.on($G("J_eraserBar"), "click", function (e) { + var target = me.getTarget(e), + size = browser.ie ? target.innerText : target.text; + if (!!size) { + me._addBESelect(target); + + context.lineWidth = parseInt(size); + context.globalCompositeOperation = "destination-out"; + context.strokeStyle = "#FFF"; + } + }); + }, + _addAddImgListener: function () { + var file = $G("J_imgTxt"); + if (!window.FileReader) { + $G("J_addImg").style.display = 'none'; + $G("J_removeImg").style.display = 'none'; + $G("J_sacleBoard").style.display = 'none'; + } + domUtils.on(file, "change", function (e) { + var frm = file.parentNode; + addMaskLayer(lang.backgroundUploading); + + var target = e.target || e.srcElement, + reader = new FileReader(); + reader.onload = function (evt) { + var target = evt.target || evt.srcElement; + ue_callback(target.result, 'SUCCESS'); + }; + reader.readAsDataURL(target.files[0]); + frm.reset(); + }); + }, + _addRemoveImgListenter: function () { + var me = this; + domUtils.on($G("J_removeImg"), "click", function () { + $G("J_picBoard").innerHTML = ""; + me.btn2disable("J_removeImg"); + me.btn2disable("J_sacleBoard"); + }); + }, + _addScalePicListenter: function () { + domUtils.on($G("J_sacleBoard"), "click", function () { + var picBoard = $G("J_picBoard"), + scaleCon = $G("J_scaleCon"), + img = picBoard.children[0]; + + if (img) { + if (!scaleCon) { + picBoard.style.cssText = "position:relative;z-index:999;" + picBoard.style.cssText; + img.style.cssText = "position: absolute;top:" + (canvas.height - img.height) / 2 + "px;left:" + (canvas.width - img.width) / 2 + "px;"; + var scale = new ScaleBoy(); + picBoard.appendChild(scale.init()); + scale.startScale(img); + } else { + if (scaleCon.style.visibility == "visible") { + scaleCon.style.visibility = "hidden"; + picBoard.style.position = ""; + picBoard.style.zIndex = ""; + } else { + scaleCon.style.visibility = "visible"; + picBoard.style.cssText += "position:relative;z-index:999"; + } + } + } + }); + }, + _addClearSelectionListenter: function () { + var doc = document; + domUtils.on(doc, 'mousemove', function (e) { + if (browser.ie && browser.version < 11) + doc.selection.clear(); + else + window.getSelection().removeAllRanges(); + }); + }, + _clearSelection: function () { + var list = ["J_operateBar", "J_colorBar", "J_brushBar", "J_eraserBar", "J_picBoard"]; + for (var i = 0, group; group = list[i++];) { + domUtils.unSelectable($G(group)); + } + }, + + _saveOPerate: function (saveNum) { + var me = this; + if (drawStep.length <= saveNum) { + if (drawStepIndex < drawStep.length) { + me.btn2disable("J_nextStep"); + drawStep.splice(drawStepIndex); + } + drawStep.push(context.getImageData(0, 0, context.canvas.width, context.canvas.height)); + drawStepIndex = drawStep.length; + } else { + drawStep.shift(); + drawStep.push(context.getImageData(0, 0, context.canvas.width, context.canvas.height)); + drawStepIndex = drawStep.length; + } + me.btn2Highlight("J_previousStep"); + me.btn2Highlight("J_clearBoard"); + }, + + _originalColorSelect: function (title) { + var colorList = $G("J_colorList").getElementsByTagName("td"); + for (var j = 0, cell; cell = colorList[j++];) { + if (cell.children[0].title.toLowerCase() == title) { + cell.children[0].style.opacity = 1; + } + } + }, + _originalBrushSelect: function (text) { + var brushList = $G("J_brushBar").children; + for (var i = 0, ele; ele = brushList[i++];) { + if (ele.tagName.toLowerCase() == "a") { + var size = browser.ie ? ele.innerText : ele.text; + if (size.toLowerCase() == text) { + ele.style.opacity = 1; + } + } + } + }, + _addColorSelect: function (target) { + var me = this, + colorList = $G("J_colorList").getElementsByTagName("td"), + eraserList = $G("J_eraserBar").children, + brushList = $G("J_brushBar").children; + + for (var i = 0, cell; cell = colorList[i++];) { + cell.children[0].style.opacity = 0.3; + } + for (var k = 0, ele; ele = brushList[k++];) { + if (ele.tagName.toLowerCase() == "a") { + ele.style.opacity = 0.3; + var size = browser.ie ? ele.innerText : ele.text; + if (size.toLowerCase() == this.brushWidth) { + ele.style.opacity = 1; + } + } + } + for (var j = 0, node; node = eraserList[j++];) { + if (node.tagName.toLowerCase() == "a") { + node.style.opacity = 0.3; + } + } + + target.style.opacity = 1; + target.blur(); + }, + _addBESelect: function (target) { + var brushList = $G("J_brushBar").children; + var eraserList = $G("J_eraserBar").children; + + for (var i = 0, ele; ele = brushList[i++];) { + if (ele.tagName.toLowerCase() == "a") { + ele.style.opacity = 0.3; + } + } + for (var j = 0, node; node = eraserList[j++];) { + if (node.tagName.toLowerCase() == "a") { + node.style.opacity = 0.3; + } + } + + target.style.opacity = 1; + target.blur(); + }, + getCanvasData: function () { + var picContainer = $G("J_picBoard"), + img = picContainer.children[0]; + if (img) { + var x, y; + if (img.style.position == "absolute") { + x = parseInt(img.style.left); + y = parseInt(img.style.top); + } else { + x = (picContainer.offsetWidth - img.width) / 2; + y = (picContainer.offsetHeight - img.height) / 2; + } + context.globalCompositeOperation = "destination-over"; + context.drawImage(img, x, y, img.width, img.height); + } else { + context.globalCompositeOperation = "destination-atop"; + context.fillStyle = "#fff";//重置画布背景白色 + context.fillRect(0, 0, canvas.width, canvas.height); + } + try { + return canvas.toDataURL("image/png").substring(22); + } catch (e) { + return ""; + } + }, + btn2Highlight: function (id) { + var cur = $G(id); + cur.className.indexOf("H") == -1 && (cur.className += "H"); + }, + btn2disable: function (id) { + var cur = $G(id); + cur.className.indexOf("H") != -1 && (cur.className = cur.className.replace("H", "")); + }, + getTarget: function (evt) { + return evt.target || evt.srcElement; + } + }; +})(); + +var ScaleBoy = function () { + this.dom = null; + this.scalingElement = null; +}; +(function () { + function _appendStyle() { + var doc = document, + head = doc.getElementsByTagName('head')[0], + style = doc.createElement('style'), + cssText = '.scale{visibility:hidden;cursor:move;position:absolute;left:0;top:0;width:100px;height:50px;background-color:#fff;font-size:0;line-height:0;opacity:.4;filter:Alpha(opacity=40);}' + + '.scale span{position:absolute;left:0;top:0;width:6px;height:6px;background-color:#006DAE;}' + + '.scale .hand0, .scale .hand7{cursor:nw-resize;}' + + '.scale .hand1, .scale .hand6{left:50%;margin-left:-3px;cursor:n-resize;}' + + '.scale .hand2, .scale .hand4, .scale .hand7{left:100%;margin-left:-6px;}' + + '.scale .hand3, .scale .hand4{top:50%;margin-top:-3px;cursor:w-resize;}' + + '.scale .hand5, .scale .hand6, .scale .hand7{margin-top:-6px;top:100%;}' + + '.scale .hand2, .scale .hand5{cursor:ne-resize;}'; + style.type = 'text/css'; + + try { + style.appendChild(doc.createTextNode(cssText)); + } catch (e) { + style.styleSheet.cssText = cssText; + } + head.appendChild(style); + } + + function _getDom() { + var doc = document, + hand, + arr = [], + scale = doc.createElement('div'); + + scale.id = 'J_scaleCon'; + scale.className = 'scale'; + for (var i = 0; i < 8; i++) { + arr.push(""); + } + scale.innerHTML = arr.join(""); + return scale; + } + + var rect = [ + //[left, top, width, height] + [1, 1, -1, -1], + [0, 1, 0, -1], + [0, 1, 1, -1], + [1, 0, -1, 0], + [0, 0, 1, 0], + [1, 0, -1, 1], + [0, 0, 0, 1], + [0, 0, 1, 1] + ]; + ScaleBoy.prototype = { + init: function () { + _appendStyle(); + var me = this, + scale = me.dom = _getDom(); + + me.scaleMousemove.fp = me; + domUtils.on(scale, 'mousedown', function (e) { + var target = e.target || e.srcElement; + me.start = {x: e.clientX, y: e.clientY}; + if (target.className.indexOf('hand') != -1) { + me.dir = target.className.replace('hand', ''); + } + domUtils.on(document.body, 'mousemove', me.scaleMousemove); + e.stopPropagation ? e.stopPropagation() : e.cancelBubble = true; + }); + domUtils.on(document.body, 'mouseup', function (e) { + if (me.start) { + domUtils.un(document.body, 'mousemove', me.scaleMousemove); + if (me.moved) { + me.updateScaledElement({ + position: {x: scale.style.left, y: scale.style.top}, + size: {w: scale.style.width, h: scale.style.height} + }); + } + delete me.start; + delete me.moved; + delete me.dir; + } + }); + return scale; + }, + startScale: function (objElement) { + var me = this, Idom = me.dom; + + Idom.style.cssText = 'visibility:visible;top:' + objElement.style.top + ';left:' + objElement.style.left + ';width:' + objElement.offsetWidth + 'px;height:' + objElement.offsetHeight + 'px;'; + me.scalingElement = objElement; + }, + updateScaledElement: function (objStyle) { + var cur = this.scalingElement, + pos = objStyle.position, + size = objStyle.size; + if (pos) { + typeof pos.x != 'undefined' && (cur.style.left = pos.x); + typeof pos.y != 'undefined' && (cur.style.top = pos.y); + } + if (size) { + size.w && (cur.style.width = size.w); + size.h && (cur.style.height = size.h); + } + }, + updateStyleByDir: function (dir, offset) { + var me = this, + dom = me.dom, tmp; + + rect['def'] = [1, 1, 0, 0]; + if (rect[dir][0] != 0) { + tmp = parseInt(dom.style.left) + offset.x; + dom.style.left = me._validScaledProp('left', tmp) + 'px'; + } + if (rect[dir][1] != 0) { + tmp = parseInt(dom.style.top) + offset.y; + dom.style.top = me._validScaledProp('top', tmp) + 'px'; + } + if (rect[dir][2] != 0) { + tmp = dom.clientWidth + rect[dir][2] * offset.x; + dom.style.width = me._validScaledProp('width', tmp) + 'px'; + } + if (rect[dir][3] != 0) { + tmp = dom.clientHeight + rect[dir][3] * offset.y; + dom.style.height = me._validScaledProp('height', tmp) + 'px'; + } + if (dir === 'def') { + me.updateScaledElement({position: {x: dom.style.left, y: dom.style.top}}); + } + }, + scaleMousemove: function (e) { + var me = arguments.callee.fp, + start = me.start, + dir = me.dir || 'def', + offset = {x: e.clientX - start.x, y: e.clientY - start.y}; + + me.updateStyleByDir(dir, offset); + arguments.callee.fp.start = {x: e.clientX, y: e.clientY}; + arguments.callee.fp.moved = 1; + }, + _validScaledProp: function (prop, value) { + var ele = this.dom, + wrap = $G("J_picBoard"); + + value = isNaN(value) ? 0 : value; + switch (prop) { + case 'left': + return value < 0 ? 0 : (value + ele.clientWidth) > wrap.clientWidth ? wrap.clientWidth - ele.clientWidth : value; + case 'top': + return value < 0 ? 0 : (value + ele.clientHeight) > wrap.clientHeight ? wrap.clientHeight - ele.clientHeight : value; + case 'width': + return value <= 0 ? 1 : (value + ele.offsetLeft) > wrap.clientWidth ? wrap.clientWidth - ele.offsetLeft : value; + case 'height': + return value <= 0 ? 1 : (value + ele.offsetTop) > wrap.clientHeight ? wrap.clientHeight - ele.offsetTop : value; + } + } + }; +})(); + +//后台回调 +function ue_callback(url, state) { + var doc = document, + picBorard = $G("J_picBoard"), + img = doc.createElement("img"); + + //图片缩放 + function scale(img, max, oWidth, oHeight) { + var width = 0, height = 0, percent, ow = img.width || oWidth, oh = img.height || oHeight; + if (ow > max || oh > max) { + if (ow >= oh) { + if (width = ow - max) { + percent = (width / ow).toFixed(2); + img.height = oh - oh * percent; + img.width = max; + } + } else { + if (height = oh - max) { + percent = (height / oh).toFixed(2); + img.width = ow - ow * percent; + img.height = max; + } + } + } + } + + //移除遮罩层 + removeMaskLayer(); + //状态响应 + if (state == "SUCCESS") { + picBorard.innerHTML = ""; + img.onload = function () { + scale(this, 300); + picBorard.appendChild(img); + + var obj = new scrawl(); + obj.btn2Highlight("J_removeImg"); + //trace 2457 + obj.btn2Highlight("J_sacleBoard"); + }; + img.src = url; + } else { + alert(state); + } +} + +//去掉遮罩层 +function removeMaskLayer() { + var maskLayer = $G("J_maskLayer"); + maskLayer.className = "maskLayerNull"; + maskLayer.innerHTML = ""; + dialog.buttons[0].setDisabled(false); +} + +//添加遮罩层 +function addMaskLayer(html) { + var maskLayer = $G("J_maskLayer"); + dialog.buttons[0].setDisabled(true); + maskLayer.className = "maskLayer"; + maskLayer.innerHTML = html; +} + +//执行确认按钮方法 +function exec(scrawlObj) { + if (scrawlObj.isScrawl) { + addMaskLayer(lang.scrawlUpLoading); + var base64 = scrawlObj.getCanvasData(); + if (!!base64) { + + var successHandler = function (res) { + var imgObj = {}, + url = editor.options.scrawlUrlPrefix + res.url; + imgObj.src = url; + imgObj._src = url; + imgObj.alt = res.original || ''; + editor.execCommand("insertImage", imgObj); + dialog.close(); + // 触发上传涂鸦事件 + editor.fireEvent("uploadsuccess", { + res: res, + type: 'scrawl' + }); + }; + + if(editor.getOpt('uploadServiceEnable')) { + var file = utils.base64toBlob(base64, 'image/png'); + editor.getOpt('uploadServiceUpload')('image', file, { + success: function( res ) { + if (!scrawlObj.isCancelScrawl) { + successHandler(res); + } + }, + error: function( err ) { + alert(lang.imageError + ' : '+err); + dialog.close(); + }, + progress: function( percent ) { + + } + }, { + from: 'scrawl' + }); + return; + } + + var options = { + timeout: 100000, + headers: editor.options.serverHeaders || {}, + onsuccess: function (xhr) { + if (!scrawlObj.isCancelScrawl) { + var responseObj; + responseObj = eval("(" + xhr.responseText + ")"); + if (responseObj.state === "SUCCESS") { + successHandler(responseObj); + } else { + alert(responseObj.state); + } + } + }, + onerror: function () { + alert(lang.imageError); + dialog.close(); + } + }; + options[editor.getOpt('scrawlFieldName')] = base64; + + var actionUrl = editor.getActionUrl(editor.getOpt('scrawlActionName')), + params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', + url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?' : '&') + params); + ajax.request(url, options); + } + } else { + addMaskLayer(lang.noScarwl + "   "); + } +} + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/searchreplace/searchreplace.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/searchreplace/searchreplace.html new file mode 100644 index 0000000..0d49a7c --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/searchreplace/searchreplace.html @@ -0,0 +1,144 @@ + + + + + + + + + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + +
    :
    + +
    + + +
    +   +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    :
    :
    + +
    + + + + +
    +   +
    + +
    +
    +
    +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/searchreplace/searchreplace.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/searchreplace/searchreplace.js new file mode 100644 index 0000000..c0ce80a --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/searchreplace/searchreplace.js @@ -0,0 +1,174 @@ +/** + * Created with JetBrains PhpStorm. + * User: xuheng + * Date: 12-9-26 + * Time: 下午12:29 + * To change this template use File | Settings | File Templates. + */ + +//清空上次查选的痕迹 +editor.firstForSR = 0; +editor.currentRangeForSR = null; + +//给tab注册切换事件 +/** + * tab点击处理事件 + * @param tabHeads + * @param tabBodys + * @param obj + */ +function clickHandler(tabHeads, tabBodys, obj) { + //head样式更改 + for (var k = 0, len = tabHeads.length; k < len; k++) { + tabHeads[k].className = ""; + } + obj.className = "focus"; + //body显隐 + var tabSrc = obj.getAttribute("tabSrc"); + for (var j = 0, length = tabBodys.length; j < length; j++) { + var body = tabBodys[j], + id = body.getAttribute("id"); + if (id != tabSrc) { + body.style.zIndex = 1; + } else { + body.style.zIndex = 200; + } + } + +} + +/** + * TAB切换 + * @param tabParentId tab的父节点ID或者对象本身 + */ +function switchTab(tabParentId) { + var tabElements = $G(tabParentId).children, + tabHeads = tabElements[0].children, + tabBodys = tabElements[1].children; + + for (var i = 0, length = tabHeads.length; i < length; i++) { + var head = tabHeads[i]; + if (head.className === "focus") clickHandler(tabHeads, tabBodys, head); + head.onclick = function () { + clickHandler(tabHeads, tabBodys, this); + } + } +} + +$G('searchtab').onmousedown = function () { + $G('search-msg').innerHTML = ''; + $G('replace-msg').innerHTML = '' +} + +//是否区分大小写 +function getMatchCase(id) { + return $G(id).checked ? true : false; +} + +//查找 +$G("nextFindBtn").onclick = function (txt, dir, mcase) { + var findtxt = $G("findtxt").value, obj; + if (!findtxt) { + return false; + } + obj = { + searchStr: findtxt, + dir: 1, + casesensitive: getMatchCase("matchCase") + }; + if (!frCommond(obj)) { + var bk = editor.selection.getRange().createBookmark(); + $G('search-msg').innerHTML = lang.getEnd; + editor.selection.getRange().moveToBookmark(bk).select(); + + + } +}; +$G("nextReplaceBtn").onclick = function (txt, dir, mcase) { + var findtxt = $G("findtxt1").value, obj; + if (!findtxt) { + return false; + } + obj = { + searchStr: findtxt, + dir: 1, + casesensitive: getMatchCase("matchCase1") + }; + frCommond(obj); +}; +$G("preFindBtn").onclick = function (txt, dir, mcase) { + var findtxt = $G("findtxt").value, obj; + if (!findtxt) { + return false; + } + obj = { + searchStr: findtxt, + dir: -1, + casesensitive: getMatchCase("matchCase") + }; + if (!frCommond(obj)) { + $G('search-msg').innerHTML = lang.getStart; + } +}; +$G("preReplaceBtn").onclick = function (txt, dir, mcase) { + var findtxt = $G("findtxt1").value, obj; + if (!findtxt) { + return false; + } + obj = { + searchStr: findtxt, + dir: -1, + casesensitive: getMatchCase("matchCase1") + }; + frCommond(obj); +}; +//替换 +$G("repalceBtn").onclick = function () { + editor.trigger('clearLastSearchResult'); + var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj, + replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, ""); + if (!findtxt) { + return false; + } + if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) { + return false; + } + obj = { + searchStr: findtxt, + dir: 1, + casesensitive: getMatchCase("matchCase1"), + replaceStr: replacetxt + }; + frCommond(obj); +}; +//全部替换 +$G("repalceAllBtn").onclick = function () { + var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj, + replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, ""); + if (!findtxt) { + return false; + } + if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) { + return false; + } + obj = { + searchStr: findtxt, + casesensitive: getMatchCase("matchCase1"), + replaceStr: replacetxt, + all: true + }; + var num = frCommond(obj); + if (num) { + $G('replace-msg').innerHTML = lang.countMsg.replace("{#count}", num); + } +}; +//执行 +var frCommond = function (obj) { + return editor.execCommand("searchreplace", obj); +}; +switchTab("searchtab"); + + +dialog.onclose = function () { + editor.trigger('clearLastSearchResult') +}; diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/spechars/spechars.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/spechars/spechars.html new file mode 100644 index 0000000..d071935 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/spechars/spechars.html @@ -0,0 +1,42 @@ + + + + + + + + + +
    +
    +
    +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/spechars/spechars.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/spechars/spechars.js new file mode 100644 index 0000000..be1902d --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/spechars/spechars.js @@ -0,0 +1,86 @@ +/** + * Created with JetBrains PhpStorm. + * User: xuheng + * Date: 12-9-26 + * Time: 下午1:09 + * To change this template use File | Settings | File Templates. + */ +var charsContent = [ + { + name: "tsfh", + title: lang.tsfh, + content: toArray("、,。,·,ˉ,ˇ,¨,〃,々,—,~,‖,…,‘,’,“,”,〔,〕,〈,〉,《,》,「,」,『,』,〖,〗,【,】,±,×,÷,∶,∧,∨,∑,∏,∪,∩,∈,∷,√,⊥,∥,∠,⌒,⊙,∫,∮,≡,≌,≈,∽,∝,≠,≮,≯,≤,≥,∞,∵,∴,♂,♀,°,′,″,℃,$,¤,¢,£,‰,§,№,☆,★,○,●,◎,◇,◆,□,■,△,▲,※,→,←,↑,↓,〓,〡,〢,〣,〤,〥,〦,〧,〨,〩,㊣,㎎,㎏,㎜,㎝,㎞,㎡,㏄,㏎,㏑,㏒,㏕,︰,¬,¦,℡,ˊ,ˋ,˙,–,―,‥,‵,℅,℉,↖,↗,↘,↙,∕,∟,∣,≒,≦,≧,⊿,═,║,╒,╓,╔,╕,╖,╗,╘,╙,╚,╛,╜,╝,╞,╟,╠,╡,╢,╣,╤,╥,╦,╧,╨,╩,╪,╫,╬,╭,╮,╯,╰,╱,╲,╳,▁,▂,▃,▄,▅,▆,▇,�,█,▉,▊,▋,▌,▍,▎,▏,▓,▔,▕,▼,▽,◢,◣,◤,◥,☉,⊕,〒,〝,〞") + }, + {name: "lmsz", title: lang.lmsz, content: toArray("ⅰ,ⅱ,ⅲ,ⅳ,ⅴ,ⅵ,ⅶ,ⅷ,ⅸ,ⅹ,Ⅰ,Ⅱ,Ⅲ,Ⅳ,Ⅴ,Ⅵ,Ⅶ,Ⅷ,Ⅸ,Ⅹ,Ⅺ,Ⅻ")}, + { + name: "szfh", + title: lang.szfh, + content: toArray("⒈,⒉,⒊,⒋,⒌,⒍,⒎,⒏,⒐,⒑,⒒,⒓,⒔,⒕,⒖,⒗,⒘,⒙,⒚,⒛,⑴,⑵,⑶,⑷,⑸,⑹,⑺,⑻,⑼,⑽,⑾,⑿,⒀,⒁,⒂,⒃,⒄,⒅,⒆,⒇,①,②,③,④,⑤,⑥,⑦,⑧,⑨,⑩,㈠,㈡,㈢,㈣,㈤,㈥,㈦,㈧,㈨,㈩") + }, + { + name: "rwfh", + title: lang.rwfh, + content: toArray("ぁ,あ,ぃ,い,ぅ,う,ぇ,え,ぉ,お,か,が,き,ぎ,く,ぐ,け,げ,こ,ご,さ,ざ,し,じ,す,ず,せ,ぜ,そ,ぞ,た,だ,ち,ぢ,っ,つ,づ,て,で,と,ど,な,に,ぬ,ね,の,は,ば,ぱ,ひ,び,ぴ,ふ,ぶ,ぷ,へ,べ,ぺ,ほ,ぼ,ぽ,ま,み,む,め,も,ゃ,や,ゅ,ゆ,ょ,よ,ら,り,る,れ,ろ,ゎ,わ,ゐ,ゑ,を,ん,ァ,ア,ィ,イ,ゥ,ウ,ェ,エ,ォ,オ,カ,ガ,キ,ギ,ク,グ,ケ,ゲ,コ,ゴ,サ,ザ,シ,ジ,ス,ズ,セ,ゼ,ソ,ゾ,タ,ダ,チ,ヂ,ッ,ツ,ヅ,テ,デ,ト,ド,ナ,ニ,ヌ,ネ,ノ,ハ,バ,パ,ヒ,ビ,ピ,フ,ブ,プ,ヘ,ベ,ペ,ホ,ボ,ポ,マ,ミ,ム,メ,モ,ャ,ヤ,ュ,ユ,ョ,ヨ,ラ,リ,ル,レ,ロ,ヮ,ワ,ヰ,ヱ,ヲ,ン,ヴ,ヵ,ヶ") + }, + { + name: "xlzm", + title: lang.xlzm, + content: toArray("Α,Β,Γ,Δ,Ε,Ζ,Η,Θ,Ι,Κ,Λ,Μ,Ν,Ξ,Ο,Π,Ρ,Σ,Τ,Υ,Φ,Χ,Ψ,Ω,α,β,γ,δ,ε,ζ,η,θ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,σ,τ,υ,φ,χ,ψ,ω") + }, + { + name: "ewzm", + title: lang.ewzm, + content: toArray("А,Б,В,Г,Д,Е,Ё,Ж,З,И,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Х,Ц,Ч,Ш,Щ,Ъ,Ы,Ь,Э,Ю,Я,а,б,в,г,д,е,ё,ж,з,и,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ъ,ы,ь,э,ю,я") + }, + {name: "pyzm", title: lang.pyzm, content: toArray("ā,á,ǎ,à,ē,é,ě,è,ī,í,ǐ,ì,ō,ó,ǒ,ò,ū,ú,ǔ,ù,ǖ,ǘ,ǚ,ǜ,ü")}, + { + name: "yyyb", + title: lang.yyyb, + content: toArray("i:,i,e,æ,ʌ,ə:,ə,u:,u,ɔ:,ɔ,a:,ei,ai,ɔi,əu,au,iə,εə,uə,p,t,k,b,d,g,f,s,ʃ,θ,h,v,z,ʒ,ð,tʃ,tr,ts,dʒ,dr,dz,m,n,ŋ,l,r,w,j,") + }, + { + name: "zyzf", + title: lang.zyzf, + content: toArray("ㄅ,ㄆ,ㄇ,ㄈ,ㄉ,ㄊ,ㄋ,ㄌ,ㄍ,ㄎ,ㄏ,ㄐ,ㄑ,ㄒ,ㄓ,ㄔ,ㄕ,ㄖ,ㄗ,ㄘ,ㄙ,ㄚ,ㄛ,ㄜ,ㄝ,ㄞ,ㄟ,ㄠ,ㄡ,ㄢ,ㄣ,ㄤ,ㄥ,ㄦ,ㄧ,ㄨ") + } +]; +(function createTab(content) { + for (var i = 0, ci; ci = content[i++];) { + var span = document.createElement("span"); + span.setAttribute("tabSrc", ci.name); + span.innerHTML = ci.title; + if (i == 1) span.className = "focus"; + domUtils.on(span, "click", function () { + var tmps = $G("tabHeads").children; + for (var k = 0, sk; sk = tmps[k++];) { + sk.className = ""; + } + tmps = $G("tabBodys").children; + for (var k = 0, sk; sk = tmps[k++];) { + sk.style.display = "none"; + } + this.className = "focus"; + $G(this.getAttribute("tabSrc")).style.display = ""; + }); + $G("tabHeads").appendChild(span); + domUtils.insertAfter(span, document.createTextNode("\n")); + var div = document.createElement("div"); + div.id = ci.name; + div.style.display = (i == 1) ? "" : "none"; + var cons = ci.content; + for (var j = 0, con; con = cons[j++];) { + var charSpan = document.createElement("span"); + charSpan.innerHTML = con; + domUtils.on(charSpan, "click", function () { + editor.execCommand("insertHTML", this.innerHTML); + dialog.close(); + }); + div.appendChild(charSpan); + } + $G("tabBodys").appendChild(div); + } +})(charsContent); + +function toArray(str) { + return str.split(","); +} diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/table/dragicon.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/table/dragicon.png new file mode 100644 index 0000000..f26203b Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/table/dragicon.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/table/edittable.css b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/table/edittable.css new file mode 100644 index 0000000..6abf7cb --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/table/edittable.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +body{overflow:hidden;width:540px}.wrapper{margin:10px auto 0;font-size:12px;overflow:hidden;width:520px;height:315px}.clear{clear:both}.wrapper .left{float:left;margin-left:10px}.wrapper .right{float:right;border-left:2px dotted #EDEDED;padding-left:15px}.section{margin-bottom:15px;width:240px;overflow:hidden}.section h3{font-weight:700;padding:5px 0;margin-bottom:10px;border-bottom:1px solid #EDEDED;font-size:12px}.section ul{list-style:none;overflow:hidden;clear:both}.section li{float:left;width:120px}.section .tone{width:80px}.section .preview{width:220px}.section .preview table{text-align:center;vertical-align:middle;color:#666}.section .preview caption{font-weight:700}.section .preview td{border-width:1px;border-style:solid;height:22px}.section .preview th{border-style:solid;border-color:#DDD;border-width:2px 1px 1px;height:22px;background-color:#F7F7F7} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/table/edittable.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/table/edittable.html new file mode 100644 index 0000000..a16d6d3 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/table/edittable.html @@ -0,0 +1,69 @@ + + + + + + + + +
    +
    +
    +

    +
      +
    • + +
    • +
    • + +
    • +
    +
      +
    • + +
    • +
    • + +
    • +
    +
    +
    +
    +

    +
      +
    • + +
    • +
    • + +
    • +
    +
    +
    +
    +

    +
      +
    • + + +
    • +
    +
    +
    +
    +
    +
    +

    +
    +
    +
    +
    +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/table/edittable.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/table/edittable.js new file mode 100644 index 0000000..bb20953 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/table/edittable.js @@ -0,0 +1,241 @@ +/** + * Created with JetBrains PhpStorm. + * User: xuheng + * Date: 12-12-19 + * Time: 下午4:55 + * To change this template use File | Settings | File Templates. + */ +(function () { + var title = $G("J_title"), + titleCol = $G("J_titleCol"), + caption = $G("J_caption"), + sorttable = $G("J_sorttable"), + autoSizeContent = $G("J_autoSizeContent"), + autoSizePage = $G("J_autoSizePage"), + tone = $G("J_tone"), + me, + preview = $G("J_preview"); + + var editTable = function () { + me = this; + me.init(); + }; + editTable.prototype = { + init: function () { + var colorPiker = new UE.ui.ColorPicker({ + editor: editor + }), + colorPop = new UE.ui.Popup({ + editor: editor, + content: colorPiker + }); + + title.checked = editor.queryCommandState("inserttitle") == -1; + titleCol.checked = editor.queryCommandState("inserttitlecol") == -1; + caption.checked = editor.queryCommandState("insertcaption") == -1; + sorttable.checked = editor.queryCommandState("enablesort") == 1; + + var enablesortState = editor.queryCommandState("enablesort"), + disablesortState = editor.queryCommandState("disablesort"); + + sorttable.checked = !!(enablesortState < 0 && disablesortState >= 0); + sorttable.disabled = !!(enablesortState < 0 && disablesortState < 0); + sorttable.title = enablesortState < 0 && disablesortState < 0 ? lang.errorMsg : ''; + + me.createTable(title.checked, titleCol.checked, caption.checked); + me.setAutoSize(); + me.setColor(me.getColor()); + + domUtils.on(title, "click", me.titleHanler); + domUtils.on(titleCol, "click", me.titleColHanler); + domUtils.on(caption, "click", me.captionHanler); + domUtils.on(sorttable, "click", me.sorttableHanler); + domUtils.on(autoSizeContent, "click", me.autoSizeContentHanler); + domUtils.on(autoSizePage, "click", me.autoSizePageHanler); + + domUtils.on(tone, "click", function () { + colorPop.showAnchor(tone); + }); + domUtils.on(document, 'mousedown', function () { + colorPop.hide(); + }); + colorPiker.addListener("pickcolor", function () { + me.setColor(arguments[1]); + colorPop.hide(); + }); + colorPiker.addListener("picknocolor", function () { + me.setColor(""); + colorPop.hide(); + }); + }, + + createTable: function (hasTitle, hasTitleCol, hasCaption) { + var arr = [], + sortSpan = '^'; + arr.push(""); + if (hasCaption) { + arr.push("") + } + if (hasTitle) { + arr.push(""); + if (hasTitleCol) { + arr.push(""); + } + for (var j = 0; j < 5; j++) { + arr.push(""); + } + arr.push(""); + } + for (var i = 0; i < 6; i++) { + arr.push(""); + if (hasTitleCol) { + arr.push("") + } + for (var k = 0; k < 5; k++) { + arr.push("") + } + arr.push(""); + } + arr.push("
    " + lang.captionName + "
    " + lang.titleName + "" + lang.titleName + "
    " + lang.titleName + "" + lang.cellsName + "
    "); + preview.innerHTML = arr.join(""); + this.updateSortSpan(); + }, + titleHanler: function () { + var example = $G("J_example"), + frg = document.createDocumentFragment(), + color = domUtils.getComputedStyle(domUtils.getElementsByTagName(example, "td")[0], "border-color"), + colCount = example.rows[0].children.length; + + if (title.checked) { + example.insertRow(0); + for (var i = 0, node; i < colCount; i++) { + node = document.createElement("th"); + node.innerHTML = lang.titleName; + frg.appendChild(node); + } + example.rows[0].appendChild(frg); + + } else { + domUtils.remove(example.rows[0]); + } + me.setColor(color); + me.updateSortSpan(); + }, + titleColHanler: function () { + var example = $G("J_example"), + color = domUtils.getComputedStyle(domUtils.getElementsByTagName(example, "td")[0], "border-color"), + colArr = example.rows, + colCount = colArr.length; + + if (titleCol.checked) { + for (var i = 0, node; i < colCount; i++) { + node = document.createElement("th"); + node.innerHTML = lang.titleName; + colArr[i].insertBefore(node, colArr[i].children[0]); + } + } else { + for (var i = 0; i < colCount; i++) { + domUtils.remove(colArr[i].children[0]); + } + } + me.setColor(color); + me.updateSortSpan(); + }, + captionHanler: function () { + var example = $G("J_example"); + if (caption.checked) { + var row = document.createElement('caption'); + row.innerHTML = lang.captionName; + example.insertBefore(row, example.firstChild); + } else { + domUtils.remove(domUtils.getElementsByTagName(example, 'caption')[0]); + } + }, + sorttableHanler: function () { + me.updateSortSpan(); + }, + autoSizeContentHanler: function () { + var example = $G("J_example"); + example.removeAttribute("width"); + }, + autoSizePageHanler: function () { + var example = $G("J_example"); + var tds = example.getElementsByTagName(example, "td"); + utils.each(tds, function (td) { + td.removeAttribute("width"); + }); + example.setAttribute('width', '100%'); + }, + updateSortSpan: function () { + var example = $G("J_example"), + row = example.rows[0]; + + var spans = domUtils.getElementsByTagName(example, "span"); + utils.each(spans, function (span) { + span.parentNode.removeChild(span); + }); + if (sorttable.checked) { + utils.each(row.cells, function (cell, i) { + var span = document.createElement("span"); + span.innerHTML = "^"; + cell.appendChild(span); + }); + } + }, + getColor: function () { + var start = editor.selection.getStart(), color, + cell = domUtils.findParentByTagName(start, ["td", "th", "caption"], true); + color = cell && domUtils.getComputedStyle(cell, "border-color"); + if (!color) color = "#DDDDDD"; + return color; + }, + setColor: function (color) { + var example = $G("J_example"), + arr = domUtils.getElementsByTagName(example, "td").concat( + domUtils.getElementsByTagName(example, "th"), + domUtils.getElementsByTagName(example, "caption") + ); + + tone.value = color; + utils.each(arr, function (node) { + node.style.borderColor = color; + }); + + }, + setAutoSize: function () { + var me = this; + autoSizePage.checked = true; + me.autoSizePageHanler(); + } + }; + + new editTable; + + dialog.onok = function () { + editor.__hasEnterExecCommand = true; + + var checks = { + title: "inserttitle deletetitle", + titleCol: "inserttitlecol deletetitlecol", + caption: "insertcaption deletecaption", + sorttable: "enablesort disablesort" + }; + editor.fireEvent('saveScene'); + for (var i in checks) { + var cmds = checks[i].split(" "), + input = $G("J_" + i); + if (input["checked"]) { + editor.queryCommandState(cmds[0]) != -1 && editor.execCommand(cmds[0]); + } else { + editor.queryCommandState(cmds[1]) != -1 && editor.execCommand(cmds[1]); + } + } + + editor.execCommand("edittable", tone.value); + autoSizeContent.checked ? editor.execCommand('adaptbytext') : ""; + autoSizePage.checked ? editor.execCommand("adaptbywindow") : ""; + editor.fireEvent('saveScene'); + + editor.__hasEnterExecCommand = false; + }; +})(); diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/table/edittd.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/table/edittd.html new file mode 100644 index 0000000..674cff9 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/table/edittd.html @@ -0,0 +1,62 @@ + + + + + + + + +
    + + +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/table/edittip.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/table/edittip.html new file mode 100644 index 0000000..69d040e --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/table/edittip.html @@ -0,0 +1,33 @@ + + + + 表格删除提示 + + + + +
    +
    + +
    +
    + +
    +
    + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/config.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/config.js new file mode 100644 index 0000000..b4cf379 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/config.js @@ -0,0 +1,42 @@ +/** + * Created with JetBrains PhpStorm. + * User: xuheng + * Date: 12-8-8 + * Time: 下午2:00 + * To change this template use File | Settings | File Templates. + */ +var templates = [ + { + "pre": "pre0.png", + 'title': lang.blank, + 'preHtml': '

     欢迎使用UEditor!

    ', + "html": '

    欢迎使用UEditor!

    ' + + }, + { + "pre": "pre1.png", + 'title': lang.blog, + 'preHtml': '

    深入理解Range

    UEditor二次开发

    什么是Range

    对于“插入”选项卡上的库,在设计时都充分考虑了其中的项与文档整体外观的协调性。


    Range能干什么

    在“开始”选项卡上,通过从快速样式库中为所选文本选择一种外观,您可以方便地更改文档中所选文本的格式。

    ', + "html": '

    [键入文档标题]

    [键入文档副标题]

    [标题 1]

    对于“插入”选项卡上的库,在设计时都充分考虑了其中的项与文档整体外观的协调性。 您可以使用这些库来插入表格、页眉、页脚、列表、封面以及其他文档构建基块。 您创建的图片、图表或关系图也将与当前的文档外观协调一致。

    [标题 2]

    在“开始”选项卡上,通过从快速样式库中为所选文本选择一种外观,您可以方便地更改文档中所选文本的格式。 您还可以使用“开始”选项卡上的其他控件来直接设置文本格式。大多数控件都允许您选择是使用当前主题外观,还是使用某种直接指定的格式。

    [标题 3]

    对于“插入”选项卡上的库,在设计时都充分考虑了其中的项与文档整体外观的协调性。 您可以使用这些库来插入表格、页眉、页脚、列表、封面以及其他文档构建基块。 您创建的图片、图表或关系图也将与当前的文档外观协调一致。


    ' + + }, + { + "pre": "pre2.png", + 'title': lang.resume, + 'preHtml': '

    WEB前端开发简历


    联系电话:[键入您的电话]

    电子邮件:[键入您的电子邮件地址]

    家庭住址:[键入您的地址]

    目标职位

    WEB前端研发工程师

    学历

    1. [起止时间] [学校名称] [所学专业] [所获学位]

    工作经验


    ', + "html": '

    [此处键入简历标题]


    【此处插入照片】


    联系电话:[键入您的电话]


    电子邮件:[键入您的电子邮件地址]


    家庭住址:[键入您的地址]


    目标职位

    [此处键入您的期望职位]

    学历

    1. [键入起止时间] [键入学校名称] [键入所学专业] [键入所获学位]

    2. [键入起止时间] [键入学校名称] [键入所学专业] [键入所获学位]

    工作经验

    1. [键入起止时间] [键入公司名称] [键入职位名称]

      1. [键入负责项目] [键入项目简介]

      2. [键入负责项目] [键入项目简介]

    2. [键入起止时间] [键入公司名称] [键入职位名称]

      1. [键入负责项目] [键入项目简介]

    掌握技能

     [这里可以键入您所掌握的技能]

    ' + + }, + { + "pre": "pre3.png", + 'title': lang.richText, + 'preHtml': '

    [此处键入文章标题]

    图文混排方法

    图片居左,文字围绕图片排版

    方法:在文字前面插入图片,设置居左对齐,然后即可在右边输入多行文


    还有没有什么其他的环绕方式呢?这里是居右环绕


    欢迎大家多多尝试,为UEditor提供更多高质量模板!

    ', + "html": '


    [此处键入文章标题]

    图文混排方法

    1. 图片居左,文字围绕图片排版

    方法:在文字前面插入图片,设置居左对齐,然后即可在右边输入多行文本


    2. 图片居右,文字围绕图片排版

    方法:在文字前面插入图片,设置居右对齐,然后即可在左边输入多行文本


    3. 图片居中环绕排版

    方法:亲,这个真心没有办法。。。



    还有没有什么其他的环绕方式呢?这里是居右环绕


    欢迎大家多多尝试,为UEditor提供更多高质量模板!


    占位


    占位


    占位


    占位


    占位



    ' + }, + { + "pre": "pre4.png", + 'title': lang.sciPapers, + 'preHtml': '

    [键入文章标题]

    摘要:这里可以输入很长很长很长很长很长很长很长很长很差的摘要

    标题 1

    这里可以输入很多内容,可以图文混排,可以有列表等。

    标题 2

    1. 列表 1

    2. 列表 2

      1. 多级列表 1

      2. 多级列表 2

    3. 列表 3

    标题 3

    来个文字图文混排的


    ', + 'html': '

    [键入文章标题]

    摘要:这里可以输入很长很长很长很长很长很长很长很长很差的摘要

    标题 1

    这里可以输入很多内容,可以图文混排,可以有列表等。

    标题 2

    来个列表瞅瞅:

    1. 列表 1

    2. 列表 2

      1. 多级列表 1

      2. 多级列表 2

    3. 列表 3

    标题 3

    来个文字图文混排的

    这里可以多行

    右边是图片

    绝对没有问题的,不信你也可以试试看


    ' + } +]; diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/images/bg.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/images/bg.gif new file mode 100644 index 0000000..8c1d10a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/images/bg.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/images/pre0.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/images/pre0.png new file mode 100644 index 0000000..8f3c16a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/images/pre0.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/images/pre1.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/images/pre1.png new file mode 100644 index 0000000..5a03f96 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/images/pre1.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/images/pre2.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/images/pre2.png new file mode 100644 index 0000000..5a55672 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/images/pre2.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/images/pre3.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/images/pre3.png new file mode 100644 index 0000000..d852d29 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/images/pre3.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/images/pre4.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/images/pre4.png new file mode 100644 index 0000000..0d7bc72 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/images/pre4.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/template.css b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/template.css new file mode 100644 index 0000000..1dfdd43 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/template.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +.wrap{padding:5px;font-size:14px}.left{width:425px;float:left}.right{width:160px;border:1px solid #ccc;float:right;padding:5px;margin-right:5px}.right .pre{height:332px;overflow-y:auto}.right .preitem{border:#fff 1px solid;margin:5px 0;padding:2px 0}.right .preitem:hover{background-color:#fffacd;cursor:pointer;border:#ccc 1px solid}.right .preitem img{display:block;margin:0 auto;width:100px}.clear{clear:both}.top{height:26px;line-height:26px;padding:5px}.bottom{height:320px;width:100%;margin:0 auto}.transparent{background:url(images/bg.gif) repeat}.bottom table tr td{border:1px dashed #ccc}#colorPicker{width:17px;height:17px;border:1px solid #CCC;display:inline-block;border-radius:3px;box-shadow:2px 2px 5px #D3D6DA}.border_style1{padding:2px;border:1px solid #ccc;border-radius:5px;box-shadow:2px 2px 5px #d3d6da}p{margin:5px 0}table{clear:both;margin-bottom:10px;border-collapse:collapse;word-break:break-all}li{clear:both}ol{padding-left:40px} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/template.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/template.html new file mode 100644 index 0000000..995c32a --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/template.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/template.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/template.js new file mode 100644 index 0000000..937228a --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/template/template.js @@ -0,0 +1,53 @@ +/** + * Created with JetBrains PhpStorm. + * User: xuheng + * Date: 12-8-8 + * Time: 下午2:09 + * To change this template use File | Settings | File Templates. + */ +(function () { + var me = editor, + preview = $G("preview"), + preitem = $G("preitem"), + tmps = templates, + currentTmp; + var initPre = function () { + var str = ""; + for (var i = 0, tmp; tmp = tmps[i++];) { + str += '
    '; + } + preitem.innerHTML = str; + }; + var pre = function (n) { + var tmp = tmps[n - 1]; + currentTmp = tmp; + clearItem(); + domUtils.setStyles(preitem.childNodes[n - 1], { + "background-color": "lemonChiffon", + "border": "#ccc 1px solid" + }); + preview.innerHTML = tmp.preHtml ? tmp.preHtml : ""; + }; + var clearItem = function () { + var items = preitem.children; + for (var i = 0, item; item = items[i++];) { + domUtils.setStyles(item, { + "background-color": "", + "border": "white 1px solid" + }); + } + }; + dialog.onok = function () { + if (!$G("issave").checked) { + me.execCommand("cleardoc"); + } + var obj = { + html: currentTmp && currentTmp.html + }; + me.execCommand("template", obj); + }; + initPre(); + window.pre = pre; + pre(2) + +})(); diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/bg.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/bg.png new file mode 100644 index 0000000..580be0a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/bg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/center_focus.jpg b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/center_focus.jpg new file mode 100644 index 0000000..262b029 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/center_focus.jpg differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/file-icons.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/file-icons.gif new file mode 100644 index 0000000..d8c02c2 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/file-icons.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/file-icons.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/file-icons.png new file mode 100644 index 0000000..3ff82c8 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/file-icons.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/icons.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/icons.gif new file mode 100644 index 0000000..78459de Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/icons.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/icons.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/icons.png new file mode 100644 index 0000000..12e4700 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/icons.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/image.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/image.png new file mode 100644 index 0000000..19699f6 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/image.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/left_focus.jpg b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/left_focus.jpg new file mode 100644 index 0000000..7886d27 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/left_focus.jpg differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/none_focus.jpg b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/none_focus.jpg new file mode 100644 index 0000000..7c768dc Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/none_focus.jpg differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/progress.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/progress.png new file mode 100644 index 0000000..717c486 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/progress.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/right_focus.jpg b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/right_focus.jpg new file mode 100644 index 0000000..173e10d Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/right_focus.jpg differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/success.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/success.gif new file mode 100644 index 0000000..8d4f311 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/success.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/success.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/success.png new file mode 100644 index 0000000..94f968d Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/images/success.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/video.css b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/video.css new file mode 100644 index 0000000..ed9ebe5 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/video.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +@charset "utf-8";.wrapper{width:570px;_width:575px;margin:10px auto;zoom:1;position:relative}.tabbody{height:355px}.tabbody .panel{position:absolute;width:0;height:0;background:#fff;overflow:hidden;display:none}.tabbody .panel.focus{width:100%;height:355px;display:block}.tabbody .panel table td{vertical-align:middle}#videoUrl{width:380px;height:26px;line-height:26px;margin:8px 5px;background:#FFF;border:1px solid #F2F2F2;outline:0;border-radius:3px;padding:0 5px}#videoSelect{width:100px;display:inline-block;background:#FFF;border:1px solid #EEE;line-height:26px;text-align:center;color:#333;text-decoration:none;border-radius:3px;vertical-align:middle}#videoSearchTxt{margin-left:15px;background:#FFF;width:200px;height:21px;line-height:21px;border:1px solid #F2F2F2}#searchList{width:570px;overflow:auto;zoom:1;height:270px}#searchList div{float:left;width:120px;height:135px;margin:5px 15px}#searchList img{margin:2px 8px;cursor:pointer;border:2px solid #fff}#searchList p{margin-left:10px}#videoType{width:65px;height:23px;line-height:22px;border:1px solid #F2F2F2}#videoSearchBtn,#videoSearchReset{height:25px;line-height:25px;background:#eee;border:1px solid #F2F2F2;cursor:pointer;padding:0 5px}#preview{position:relative;width:420px;padding:0;overflow:hidden;margin-left:10px;_margin-left:5px;height:280px;background-color:#ddd;float:left}#preview .previewMsg{position:absolute;top:0;margin:0;padding:0;height:280px;width:100%;background-color:#666}#preview .previewMsg span{display:block;margin:125px auto 0;text-align:center;font-size:18px;color:#fff}#preview .previewVideo{position:absolute;top:0;margin:0;padding:0;height:280px;width:100%}.edui-video-wrapper fieldset{border:1px solid #ddd;padding-left:5px;margin-bottom:20px;padding-bottom:5px;width:115px}#videoInfo{width:120px;float:left;margin-left:10px;_margin-left:7px}fieldset{border:1px solid #ddd;padding-left:5px;margin-bottom:20px;padding-bottom:5px;width:115px}fieldset legend{font-weight:700}fieldset p{line-height:30px}fieldset input.txt{width:65px;height:21px;line-height:21px;margin:8px 5px;background:#FFF;border:1px solid #F2F2F2}label.url{font-weight:700;margin-left:5px}#videoFloat div{cursor:pointer;opacity:.5;filter:alpha(opacity=50);margin:9px;_margin:5px;width:38px;height:36px;float:left}#videoFloat .focus{opacity:1;filter:alpha(opacity=100)}span.view{display:inline-block;width:30px;float:right;cursor:pointer;color:#00f}.tabbody #upload.panel{width:0;height:0;overflow:hidden;position:absolute!important;clip:rect(1px,1px,1px,1px);background:#fff;display:block}.tabbody #upload.panel.focus{width:100%;height:335px;display:block;clip:auto}#upload_alignment div{cursor:pointer;opacity:.5;filter:alpha(opacity=50);margin:9px;_margin:5px;width:38px;height:36px;float:left}#upload_alignment .focus{opacity:1;filter:alpha(opacity=100)}#upload_left{width:427px;float:left}#upload_left .controller{height:30px;clear:both}#uploadVideoInfo{margin-top:10px;float:right;padding-right:8px}#upload .queueList{margin:0}#upload p{margin:0}.element-invisible{width:0!important;height:0!important;border:0;padding:0;margin:0;overflow:hidden;position:absolute!important;clip:rect(1px,1px,1px,1px)}#upload .placeholder{margin:10px;margin-right:0;border:2px dashed #e6e6e6;*border:0 dashed #e6e6e6;height:161px;padding-top:150px;text-align:center;width:97%;float:left;background:url(./images/image.png) center 70px no-repeat;color:#ccc;font-size:18px;position:relative;top:0;*margin-left:0;*left:10px}#upload .placeholder .webuploader-pick{font-size:18px;background:#00b7ee;border-radius:3px;line-height:44px;padding:0 30px;*width:120px;color:#fff;display:inline-block;margin:0 auto 20px;cursor:pointer;box-shadow:0 1px 1px rgba(0,0,0,.1)}#upload .placeholder .webuploader-pick-hover{background:#00a2d4}#filePickerContainer{text-align:center}#upload .placeholder .flashTip{color:#666;font-size:12px;position:absolute;width:100%;text-align:center;bottom:20px}#upload .placeholder .flashTip a{color:#0785d1;text-decoration:none}#upload .placeholder .flashTip a:hover{text-decoration:underline}#upload .placeholder.webuploader-dnd-over{border-color:#999}#upload .filelist{list-style:none;margin:0;padding:0;overflow-x:hidden;overflow-y:auto;position:relative;height:285px}#upload .filelist:after{content:'';display:block;width:0;height:0;overflow:hidden;clear:both}#upload .filelist li{width:113px;height:113px;background:url(./images/bg.png);text-align:center;margin:15px 0 0 20px;*margin:15px 0 0 15px;position:relative;display:block;float:left;overflow:hidden;font-size:12px}#upload .filelist li p.log{position:relative;top:-45px}#upload .filelist li p.title{position:absolute;top:0;left:0;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;top:5px;text-indent:5px;text-align:left}#upload .filelist li p.progress{position:absolute;width:100%;bottom:0;left:0;height:8px;overflow:hidden;z-index:50;margin:0;border-radius:0;background:0 0;-webkit-box-shadow:0 0 0}#upload .filelist li p.progress span{display:none;overflow:hidden;width:0;height:100%;background:#1483d8 url(./images/progress.png) repeat-x;-webit-transition:width 200ms linear;-moz-transition:width 200ms linear;-o-transition:width 200ms linear;-ms-transition:width 200ms linear;transition:width 200ms linear;-webkit-animation:progressmove 2s linear infinite;-moz-animation:progressmove 2s linear infinite;-o-animation:progressmove 2s linear infinite;-ms-animation:progressmove 2s linear infinite;animation:progressmove 2s linear infinite;-webkit-transform:translateZ(0)}@-webkit-keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}@-moz-keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}@keyframes progressmove{0%{background-position:0 0}100%{background-position:17px 0}}#upload .filelist li p.imgWrap{position:relative;z-index:2;line-height:113px;vertical-align:middle;overflow:hidden;width:113px;height:113px;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-o-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;-webit-transition:200ms ease-out;-moz-transition:200ms ease-out;-o-transition:200ms ease-out;-ms-transition:200ms ease-out;transition:200ms ease-out}#upload .filelist li p.imgWrap.notimage{margin-top:0;width:111px;height:111px;border:1px #eee solid}#upload .filelist li p.imgWrap.notimage i.file-preview{margin-top:15px}#upload .filelist li img{width:100%}#upload .filelist li p.error{background:#f43838;color:#fff;position:absolute;bottom:0;left:0;height:28px;line-height:28px;width:100%;z-index:100;display:none}#upload .filelist li .success{display:block;position:absolute;left:0;bottom:0;height:40px;width:100%;z-index:200;background:url(./images/success.png) no-repeat right bottom;background-image:url(./images/success.gif) \9}#upload .filelist li.filePickerBlock{width:113px;height:113px;background:url(./images/image.png) no-repeat center 12px;border:1px solid #eee;border-radius:0}#upload .filelist li.filePickerBlock div.webuploader-pick{width:100%;height:100%;margin:0;padding:0;opacity:0;background:0 0;font-size:0}#upload .filelist div.file-panel{position:absolute;height:0;filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;background:rgba(0,0,0,.5);width:100%;top:0;left:0;overflow:hidden;z-index:300}#upload .filelist div.file-panel span{width:24px;height:24px;display:inline;float:right;text-indent:-9999px;overflow:hidden;background:url(./images/icons.png) no-repeat;background:url(./images/icons.gif) no-repeat \9;margin:5px 1px 1px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#upload .filelist div.file-panel span.rotateLeft{display:none;background-position:0 -24px}#upload .filelist div.file-panel span.rotateLeft:hover{background-position:0 0}#upload .filelist div.file-panel span.rotateRight{display:none;background-position:-24px -24px}#upload .filelist div.file-panel span.rotateRight:hover{background-position:-24px 0}#upload .filelist div.file-panel span.cancel{background-position:-48px -24px}#upload .filelist div.file-panel span.cancel:hover{background-position:-48px 0}#upload .statusBar{height:45px;border-bottom:1px solid #dadada;margin:0 10px;padding:0;line-height:45px;vertical-align:middle;position:relative}#upload .statusBar .progress{border:1px solid #1483d8;width:198px;background:#fff;height:18px;position:absolute;top:12px;display:none;text-align:center;line-height:18px;color:#6dbfff;margin:0 10px 0 0}#upload .statusBar .progress span.percentage{width:0;height:100%;left:0;top:0;background:#1483d8;position:absolute}#upload .statusBar .progress span.text{position:relative;z-index:10}#upload .statusBar .info{display:inline-block;font-size:14px;color:#666}#upload .statusBar .btns{position:absolute;top:7px;right:0;line-height:30px}#filePickerBtn{display:inline-block;float:left}#upload .statusBar .btns .webuploader-pick,#upload .statusBar .btns .uploadBtn,#upload .statusBar .btns .uploadBtn.state-uploading,#upload .statusBar .btns .uploadBtn.state-paused{background:#fff;border:1px solid #cfcfcf;color:#565656;padding:0 18px;display:inline-block;border-radius:3px;margin-left:10px;cursor:pointer;font-size:14px;float:left;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#upload .statusBar .btns .webuploader-pick-hover,#upload .statusBar .btns .uploadBtn:hover,#upload .statusBar .btns .uploadBtn.state-uploading:hover,#upload .statusBar .btns .uploadBtn.state-paused:hover{background:#f0f0f0}#upload .statusBar .btns .uploadBtn,#upload .statusBar .btns .uploadBtn.state-paused{background:#00b7ee;color:#fff;border-color:transparent}#upload .statusBar .btns .uploadBtn:hover,#upload .statusBar .btns .uploadBtn.state-paused:hover{background:#00a2d4}#upload .statusBar .btns .uploadBtn.disabled{pointer-events:none;filter:alpha(opacity=60);-moz-opacity:.6;-khtml-opacity:.6;opacity:.6}i.file-preview{display:block;margin:10px auto;width:70px;height:70px;background-image:url(./images/file-icons.png);background-image:url(./images/file-icons.gif) \9;background-position:-140px center;background-repeat:no-repeat}i.file-preview.file-type-dir{background-position:0 center}i.file-preview.file-type-file{background-position:-140px center}i.file-preview.file-type-filelist{background-position:-210px center}i.file-preview.file-type-zip,i.file-preview.file-type-rar,i.file-preview.file-type-7z,i.file-preview.file-type-tar,i.file-preview.file-type-gz,i.file-preview.file-type-bz2{background-position:-280px center}i.file-preview.file-type-xls,i.file-preview.file-type-xlsx{background-position:-350px center}i.file-preview.file-type-doc,i.file-preview.file-type-docx{background-position:-420px center}i.file-preview.file-type-ppt,i.file-preview.file-type-pptx{background-position:-490px center}i.file-preview.file-type-vsd{background-position:-560px center}i.file-preview.file-type-pdf{background-position:-630px center}i.file-preview.file-type-txt,i.file-preview.file-type-md,i.file-preview.file-type-json,i.file-preview.file-type-htm,i.file-preview.file-type-xml,i.file-preview.file-type-html,i.file-preview.file-type-js,i.file-preview.file-type-css,i.file-preview.file-type-php,i.file-preview.file-type-jsp,i.file-preview.file-type-asp{background-position:-700px center}i.file-preview.file-type-apk{background-position:-770px center}i.file-preview.file-type-exe{background-position:-840px center}i.file-preview.file-type-ipa{background-position:-910px center}i.file-preview.file-type-mp4,i.file-preview.file-type-swf,i.file-preview.file-type-mkv,i.file-preview.file-type-avi,i.file-preview.file-type-flv,i.file-preview.file-type-mov,i.file-preview.file-type-mpg,i.file-preview.file-type-mpeg,i.file-preview.file-type-ogv,i.file-preview.file-type-webm,i.file-preview.file-type-rm,i.file-preview.file-type-rmvb{background-position:-980px center}i.file-preview.file-type-ogg,i.file-preview.file-type-wav,i.file-preview.file-type-wmv,i.file-preview.file-type-mid,i.file-preview.file-type-mp3{background-position:-1050px center}i.file-preview.file-type-jpg,i.file-preview.file-type-jpeg,i.file-preview.file-type-gif,i.file-preview.file-type-bmp,i.file-preview.file-type-png,i.file-preview.file-type-psd{background-position:-140px center} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/video.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/video.html new file mode 100644 index 0000000..d41e1ca --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/video.html @@ -0,0 +1,109 @@ + + + + + + + + + +
    +
    +
    + + +
    +
    +
    + + + + + +
    +
    + 外链视频支持:优酷、腾讯视频、哔哩哔哩 +
    +
    +
    +
    + + + + + + + + + + +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + 0% + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + + +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/video.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/video.js new file mode 100644 index 0000000..2ce6cf2 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/video/video.js @@ -0,0 +1,863 @@ +/** + * Created by JetBrains PhpStorm. + * User: taoqili + * Date: 12-2-20 + * Time: 上午11:19 + * To change this template use File | Settings | File Templates. + */ + +(function () { + + var video = {}, + uploadVideoList = [], + isModifyUploadVideo = false, + uploadFile; + var editorOpt = {}; + + window.onload = function () { + editorOpt = editor.getOpt('videoConfig'); + $focus($G("videoUrl")); + initTabs(); + initVideo(); + initUpload(); + }; + + /* 初始化tab标签 */ + function initTabs() { + var tabs = $G('tabHeads').children; + for (var i = 0; i < tabs.length; i++) { + domUtils.on(tabs[i], "click", function (e) { + var j, bodyId, target = e.target || e.srcElement; + for (j = 0; j < tabs.length; j++) { + bodyId = tabs[j].getAttribute('data-content-id'); + if (tabs[j] == target) { + domUtils.addClass(tabs[j], 'focus'); + domUtils.addClass($G(bodyId), 'focus'); + } else { + domUtils.removeClasses(tabs[j], 'focus'); + domUtils.removeClasses($G(bodyId), 'focus'); + } + } + }); + } + if (!editorOpt.disableUpload) { + $G('tabHeads').querySelector('[data-content-id="upload"]').style.display = 'inline-block'; + } + if (!!editorOpt.selectCallback) { + $G('videoSelect').style.display = 'inline-block'; + domUtils.on($G('videoSelect'), "click", function (e) { + editorOpt.selectCallback(editor, function (info) { + if (info) { + $G('videoUrl').value = info.path; + createPreviewVideo(info.path); + } + }); + }); + } + } + + function initVideo() { + createAlignButton(["videoFloat", "upload_alignment"]); + addUrlChangeListener($G("videoUrl")); + addOkListener(); + + //编辑视频时初始化相关信息 + (function () { + var img = editor.selection.getRange().getClosedNode(), url; + if (img && img.className) { + var hasFakedClass = (img.className == "edui-faked-video"), + hasUploadClass = img.className.indexOf("edui-upload-video") != -1; + if (hasFakedClass || hasUploadClass) { + $G("videoUrl").value = url = img.getAttribute("_url"); + $G("videoWidth").value = img.width; + $G("videoHeight").value = img.height; + var align = domUtils.getComputedStyle(img, "float"), + parentAlign = domUtils.getComputedStyle(img.parentNode, "text-align"); + updateAlignButton(parentAlign === "center" ? "center" : align); + } + if (hasUploadClass) { + isModifyUploadVideo = true; + } + } + createPreviewVideo(url); + })(); + } + + /** + * 监听确认和取消两个按钮事件,用户执行插入或者清空正在播放的视频实例操作 + */ + function addOkListener() { + dialog.onok = function () { + $G("preview").innerHTML = ""; + var currentTab = findFocus("tabHeads", "tabSrc"); + switch (currentTab) { + case "video": + return insertSingle(); + break; + case "videoSearch": + return insertSearch("searchList"); + break; + case "upload": + return insertUpload(); + break; + } + }; + dialog.oncancel = function () { + $G("preview").innerHTML = ""; + }; + } + + /** + * 依据传入的align值更新按钮信息 + * @param align + */ + function updateAlignButton(align) { + var aligns = $G("videoFloat").children; + for (var i = 0, ci; ci = aligns[i++];) { + if (ci.getAttribute("name") == align) { + if (ci.className != "focus") { + ci.className = "focus"; + } + } else { + if (ci.className == "focus") { + ci.className = ""; + } + } + } + } + + /** + * 将单个视频信息插入编辑器中 + */ + function insertSingle() { + var width = $G("videoWidth"), + height = $G("videoHeight"), + url = $G('videoUrl').value, + align = findFocus("videoFloat", "name"); + if (!url) return false; + if (!checkNum([width, height])) return false; + editor.execCommand('insertvideo', { + url: convert_url(url), + width: width.value, + height: height.value, + align: align + }, isModifyUploadVideo ? 'upload' : null); + } + + /** + * 将元素id下的所有代表视频的图片插入编辑器中 + * @param id + */ + function insertSearch(id) { + var imgs = domUtils.getElementsByTagName($G(id), "img"), + videoObjs = []; + for (var i = 0, img; img = imgs[i++];) { + if (img.getAttribute("selected")) { + videoObjs.push({ + url: img.getAttribute("ue_video_url"), + width: 420, + height: 280, + align: "none" + }); + } + } + editor.execCommand('insertvideo', videoObjs); + } + + /** + * 找到id下具有focus类的节点并返回该节点下的某个属性 + * @param id + * @param returnProperty + */ + function findFocus(id, returnProperty) { + var tabs = $G(id).children, + property; + for (var i = 0, ci; ci = tabs[i++];) { + if (ci.className == "focus") { + property = ci.getAttribute(returnProperty); + break; + } + } + return property; + } + + function convert_url(url) { + if (!url) return ''; + url = utils.trim(url) + .replace(/v\.youku\.com\/v_show\/id_([\w\-=]+)\.html/i, 'player.youku.com/embed/$1') + // .replace(/(www\.)?youtube\.com\/watch\?v=([\w\-]+)/i, "www.youtube.com/v/$2") + // .replace(/youtu.be\/(\w+)$/i, "www.youtube.com/v/$1") + //.replace(/www\.iqiyi\.com\/v_(\w+)\.html/i, "www.youtube.com/v/$1") + // .replace(/v\.ku6\.com\/.+\/([\w\.]+)\.html.*$/i, "player.ku6.com/refer/$1/v.swf") + // .replace(/www\.56\.com\/u\d+\/v_([\w\-]+)\.html/i, "player.56.com/v_$1.swf") + // .replace(/www.56.com\/w\d+\/play_album\-aid\-\d+_vid\-([^.]+)\.html/i, "player.56.com/v_$1.swf") + // .replace(/v\.pps\.tv\/play_([\w]+)\.html.*$/i, "player.pps.tv/player/sid/$1/v.swf") + // .replace(/www\.letv\.com\/ptv\/vplay\/([\d]+)\.html.*$/i, "i7.imgs.letv.com/player/swfPlayer.swf?id=$1&autoplay=0") + // .replace(/www\.tudou\.com\/programs\/view\/([\w\-]+)\/?/i, "www.tudou.com/v/$1") + // https://v.qq.com/x/cover/wagzbx91asjomnu/w05337nxfof.html + // https://v.qq.com/iframe/player.html?vid=w05337nxfof&tiny=0&auto=0 + .replace(/v\.qq\.com\/x\/cover\/[\w]+\/([\w]+)\.html/i, "v.qq.com/iframe/player.html?vid=$1&tiny=0&auto=0") + .replace(/v\.qq\.com\/x\/page\/([\w]+)\.html/i, "v.qq.com/iframe/player.html?vid=$1&tiny=0&auto=0") + .replace(/www\.bilibili\.com\/video\/([a-zA-Z0-9]+)\/?.*$/i, "player.bilibili.com/player.html?bvid=$1") + // .replace(/v\.qq\.com\/cover\/[\w]+\/[\w]+\/([\w]+)\.html/i, "static.video.qq.com/TPout.swf?vid=$1") + // .replace(/v\.qq\.com\/.+[\?\&]vid=([^&]+).*$/i, "static.video.qq.com/TPout.swf?vid=$1") + // .replace(/my\.tv\.sohu\.com\/[\w]+\/[\d]+\/([\d]+)\.shtml.*$/i, "share.vrs.sohu.com/my/v.swf&id=$1") + ; + return url; + } + + /** + * 检测传入的所有input框中输入的长宽是否是正数 + * @param nodes input框集合, + */ + function checkNum(nodes) { + for (var i = 0, ci; ci = nodes[i++];) { + var value = ci.value; + if (!isNumber(value) && value) { + alert(lang.numError); + ci.value = ""; + ci.focus(); + return false; + } + } + return true; + } + + /** + * 数字判断 + * @param value + */ + function isNumber(value) { + return /(0|^[1-9]\d*$)/.test(value); + } + + /** + * 创建图片浮动选择按钮 + * @param ids + */ + function createAlignButton(ids) { + for (var i = 0, ci; ci = ids[i++];) { + var floatContainer = $G(ci), + nameMaps = { + "none": lang['default'], + "left": lang.floatLeft, + "right": lang.floatRight, + "center": lang.block + }; + for (var j in nameMaps) { + var div = document.createElement("div"); + div.setAttribute("name", j); + if (j == "none") div.className = "focus"; + div.style.cssText = "background:url(images/" + j + "_focus.jpg);"; + div.setAttribute("title", nameMaps[j]); + floatContainer.appendChild(div); + } + switchSelect(ci); + } + } + + /** + * 选择切换 + * @param selectParentId + */ + function switchSelect(selectParentId) { + var selects = $G(selectParentId).children; + for (var i = 0, ci; ci = selects[i++];) { + domUtils.on(ci, "click", function () { + for (var j = 0, cj; cj = selects[j++];) { + cj.className = ""; + cj.removeAttribute && cj.removeAttribute("class"); + } + this.className = "focus"; + }) + } + } + + /** + * 监听url改变事件 + * @param url + */ + function addUrlChangeListener(url) { + if (browser.ie) { + url.onpropertychange = function () { + createPreviewVideo(this.value); + } + } else { + url.addEventListener("input", function () { + createPreviewVideo(this.value); + }, false); + } + } + + /** + * 根据url生成视频预览 + * @param url + */ + function createPreviewVideo(url) { + if (!url) return; + + var conUrl = convert_url(url); + + conUrl = utils.unhtml(conUrl); + + // $G("preview").innerHTML = '
    '+lang.urlError+'
    '+ + // '' + + // ''; + + $G("preview").innerHTML = '
    ' + lang.urlError + '
    ' + + ''; + } + + + /* 插入上传视频 */ + function insertUpload() { + var videoObjs = [], + uploadDir = editor.getOpt('videoUrlPrefix'), + width = $G('upload_width').value || 420, + height = $G('upload_height').value || 280, + align = findFocus("upload_alignment", "name") || 'none'; + for (var key in uploadVideoList) { + var file = uploadVideoList[key]; + videoObjs.push({ + url: uploadDir + file.url, + width: width, + height: height, + align: align + }); + } + + var count = uploadFile.getQueueCount(); + if (count) { + $('.info', '#queueList').html('' + '还有2个未上传文件'.replace(/[\d]/, count) + ''); + return false; + } else { + editor.execCommand('insertvideo', videoObjs, 'upload'); + } + } + + /*初始化上传标签*/ + function initUpload() { + uploadFile = new UploadFile('queueList'); + } + + + /* 上传附件 */ + function UploadFile(target) { + this.$wrap = target.constructor == String ? $('#' + target) : $(target); + this.init(); + } + + UploadFile.prototype = { + init: function () { + this.fileList = []; + this.initContainer(); + this.initUploader(); + }, + initContainer: function () { + this.$queue = this.$wrap.find('.filelist'); + }, + /* 初始化容器 */ + initUploader: function () { + var _this = this, + $ = jQuery, // just in case. Make sure it's not an other libaray. + $wrap = _this.$wrap, + // 图片容器 + $queue = $wrap.find('.filelist'), + // 状态栏,包括进度和控制按钮 + $statusBar = $wrap.find('.statusBar'), + // 文件总体选择信息。 + $info = $statusBar.find('.info'), + // 上传按钮 + $upload = $wrap.find('.uploadBtn'), + // 上传按钮 + $filePickerBtn = $wrap.find('.filePickerBtn'), + // 上传按钮 + $filePickerBlock = $wrap.find('.filePickerBlock'), + // 没选择文件之前的内容。 + $placeHolder = $wrap.find('.placeholder'), + // 总体进度条 + $progress = $statusBar.find('.progress').hide(), + // 添加的文件数量 + fileCount = 0, + // 添加的文件总大小 + fileSize = 0, + // 优化retina, 在retina下这个值是2 + ratio = window.devicePixelRatio || 1, + // 缩略图大小 + thumbnailWidth = 113 * ratio, + thumbnailHeight = 113 * ratio, + // 可能有pedding, ready, uploading, confirm, done. + state = '', + // 所有文件的进度信息,key为file id + percentages = {}, + supportTransition = (function () { + var s = document.createElement('p').style, + r = 'transition' in s || + 'WebkitTransition' in s || + 'MozTransition' in s || + 'msTransition' in s || + 'OTransition' in s; + s = null; + return r; + })(), + // WebUploader实例 + uploader, + actionUrl = editor.getActionUrl(editor.getOpt('videoActionName')), + fileMaxSize = editor.getOpt('videoMaxSize'), + acceptExtensions = (editor.getOpt('videoAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, ''); + ; + + if (!WebUploader.Uploader.support()) { + $('#filePickerReady').after($('
    ').html(lang.errorNotSupport)).hide(); + return; + } else if (!editor.getOpt('videoActionName')) { + $('#filePickerReady').after($('
    ').html(lang.errorLoadConfig)).hide(); + return; + } + + var uploaderOption = { + pick: { + id: '#filePickerReady', + label: lang.uploadSelectFile + }, + swf: '../../third-party/webuploader/Uploader.swf', + server: actionUrl, + fileVal: editor.getOpt('videoFieldName'), + duplicate: true, + fileSingleSizeLimit: fileMaxSize, + headers: editor.getOpt('serverHeaders') || {}, + compress: false + }; + if(editor.getOpt('uploadServiceEnable')) { + uploaderOption.customUpload = function (file, callback) { + editor.getOpt('uploadServiceUpload')('video', file, { + success: function( res ) { + callback.onSuccess(file, {_raw:JSON.stringify(res)}); + }, + error: function( err ) { + callback.onError(file, err); + }, + progress: function( percent ) { + callback.onProgress(file, percent); + } + }, { + from: 'video' + }); + }; + } + + uploader = _this.uploader = WebUploader.create(uploaderOption); + uploader.addButton({ + id: '#filePickerBlock' + }); + uploader.addButton({ + id: '#filePickerBtn', + label: lang.uploadAddFile + }); + + setState('pedding'); + + // 当有文件添加进来时执行,负责view的创建 + function addFile(file) { + var $li = $('
  • ' + + '

    ' + file.name + '

    ' + + '

    ' + + '

    ' + + '
  • '), + + $btns = $('
    ' + + '' + lang.uploadDelete + '' + + '' + lang.uploadTurnRight + '' + + '' + lang.uploadTurnLeft + '
    ').appendTo($li), + $prgress = $li.find('p.progress span'), + $wrap = $li.find('p.imgWrap'), + $info = $('

    ').hide().appendTo($li), + + showError = function (code) { + switch (code) { + case 'exceed_size': + text = lang.errorExceedSize; + break; + case 'interrupt': + text = lang.errorInterrupt; + break; + case 'http': + text = lang.errorHttp; + break; + case 'not_allow_type': + text = lang.errorFileType; + break; + default: + text = lang.errorUploadRetry; + break; + } + $info.text(text).show(); + }; + + if (file.getStatus() === 'invalid') { + showError(file.statusText); + } else { + $wrap.text(lang.uploadPreview); + if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|' + file.ext.toLowerCase() + '|') == -1) { + $wrap.empty().addClass('notimage').append('' + + '' + file.name + ''); + } else { + if (browser.ie && browser.version <= 7) { + $wrap.text(lang.uploadNoPreview); + } else { + uploader.makeThumb(file, function (error, src) { + if (error || !src || (/^data:/.test(src) && browser.ie && browser.version <= 7)) { + $wrap.text(lang.uploadNoPreview); + } else { + var $img = $(''); + $wrap.empty().append($img); + $img.on('error', function () { + $wrap.text(lang.uploadNoPreview); + }); + } + }, thumbnailWidth, thumbnailHeight); + } + } + percentages[file.id] = [file.size, 0]; + file.rotation = 0; + + /* 检查文件格式 */ + if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) { + showError('not_allow_type'); + uploader.removeFile(file); + } + } + + file.on('statuschange', function (cur, prev) { + if (prev === 'progress') { + $prgress.hide().width(0); + } else if (prev === 'queued') { + $li.off('mouseenter mouseleave'); + $btns.remove(); + } + // 成功 + if (cur === 'error' || cur === 'invalid') { + showError(file.statusText); + percentages[file.id][1] = 1; + } else if (cur === 'interrupt') { + showError('interrupt'); + } else if (cur === 'queued') { + percentages[file.id][1] = 0; + } else if (cur === 'progress') { + $info.hide(); + $prgress.css('display', 'block'); + } else if (cur === 'complete') { + } + + $li.removeClass('state-' + prev).addClass('state-' + cur); + }); + + $li.on('mouseenter', function () { + $btns.stop().animate({height: 30}); + }); + $li.on('mouseleave', function () { + $btns.stop().animate({height: 0}); + }); + + $btns.on('click', 'span', function () { + var index = $(this).index(), + deg; + + switch (index) { + case 0: + uploader.removeFile(file); + return; + case 1: + file.rotation += 90; + break; + case 2: + file.rotation -= 90; + break; + } + + if (supportTransition) { + deg = 'rotate(' + file.rotation + 'deg)'; + $wrap.css({ + '-webkit-transform': deg, + '-mos-transform': deg, + '-o-transform': deg, + 'transform': deg + }); + } else { + $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')'); + } + + }); + + $li.insertBefore($filePickerBlock); + } + + // 负责view的销毁 + function removeFile(file) { + var $li = $('#' + file.id); + delete percentages[file.id]; + updateTotalProgress(); + $li.off().find('.file-panel').off().end().remove(); + } + + function updateTotalProgress() { + var loaded = 0, + total = 0, + spans = $progress.children(), + percent; + + $.each(percentages, function (k, v) { + total += v[0]; + loaded += v[0] * v[1]; + }); + + percent = total ? loaded / total : 0; + + spans.eq(0).text(Math.round(percent * 100) + '%'); + spans.eq(1).css('width', Math.round(percent * 100) + '%'); + updateStatus(); + } + + function setState(val, files) { + + if (val != state) { + + var stats = uploader.getStats(); + + $upload.removeClass('state-' + state); + $upload.addClass('state-' + val); + + switch (val) { + + /* 未选择文件 */ + case 'pedding': + $queue.addClass('element-invisible'); + $statusBar.addClass('element-invisible'); + $placeHolder.removeClass('element-invisible'); + $progress.hide(); + $info.hide(); + uploader.refresh(); + break; + + /* 可以开始上传 */ + case 'ready': + $placeHolder.addClass('element-invisible'); + $queue.removeClass('element-invisible'); + $statusBar.removeClass('element-invisible'); + $progress.hide(); + $info.show(); + $upload.text(lang.uploadStart); + uploader.refresh(); + break; + + /* 上传中 */ + case 'uploading': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadPause); + break; + + /* 暂停上传 */ + case 'paused': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadContinue); + break; + + case 'confirm': + $progress.show(); + $info.hide(); + $upload.text(lang.uploadStart); + + stats = uploader.getStats(); + if (stats.successNum && !stats.uploadFailNum) { + setState('finish'); + return; + } + break; + + case 'finish': + $progress.hide(); + $info.show(); + if (stats.uploadFailNum) { + $upload.text(lang.uploadRetry); + } else { + $upload.text(lang.uploadStart); + } + break; + } + + state = val; + updateStatus(); + + } + + if (!_this.getQueueCount()) { + $upload.addClass('disabled') + } else { + $upload.removeClass('disabled') + } + + } + + function updateStatus() { + var text = '', stats; + + if (state === 'ready') { + text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)); + } else if (state === 'confirm') { + stats = uploader.getStats(); + if (stats.uploadFailNum) { + text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum); + } + } else { + stats = uploader.getStats(); + text = lang.updateStatusFinish.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)).replace('_', stats.successNum); + + if (stats.uploadFailNum) { + text += lang.updateStatusError.replace('_', stats.uploadFailNum); + } + } + + $info.html(text); + } + + uploader.on('fileQueued', function (file) { + fileCount++; + fileSize += file.size; + + if (fileCount === 1) { + $placeHolder.addClass('element-invisible'); + $statusBar.show(); + } + + addFile(file); + }); + + uploader.on('fileDequeued', function (file) { + fileCount--; + fileSize -= file.size; + + removeFile(file); + updateTotalProgress(); + }); + + uploader.on('filesQueued', function (file) { + if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) { + setState('ready'); + } + updateTotalProgress(); + }); + + uploader.on('all', function (type, files) { + switch (type) { + case 'uploadFinished': + setState('confirm', files); + break; + case 'startUpload': + /* 添加额外的GET参数 */ + var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', + url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?' : '&') + 'encode=utf-8&' + params); + uploader.option('server', url); + setState('uploading', files); + break; + case 'stopUpload': + setState('paused', files); + break; + } + }); + + uploader.on('uploadBeforeSend', function (file, data, header) { + //这里可以通过data对象添加POST参数 + if (actionUrl.toLowerCase().indexOf('jsp') != -1) { + header['X_Requested_With'] = 'XMLHttpRequest'; + } + }); + + uploader.on('uploadProgress', function (file, percentage) { + var $li = $('#' + file.id), + $percent = $li.find('.progress span'); + + $percent.css('width', percentage * 100 + '%'); + percentages[file.id][1] = percentage; + updateTotalProgress(); + }); + + uploader.on('uploadSuccess', function (file, ret) { + var $file = $('#' + file.id); + try { + var responseText = (ret._raw || ret), + json = utils.str2json(responseText); + json = editor.getOpt('serverResponsePrepare')(json); + if (json.state == 'SUCCESS') { + uploadVideoList.push({ + 'url': json.url, + 'type': json.type, + 'original': json.original + }); + $file.append(''); + // 触发上传视频事件 + editor.fireEvent("uploadsuccess", { + res: json, + type: 'video' + }); + } else { + $file.find('.error').text(json.state).show(); + } + } catch (e) { + $file.find('.error').text(lang.errorServerUpload).show(); + } + }); + + uploader.on('uploadError', function (file, code) { + }); + uploader.on('error', function (code, param1, param2) { + if (code === 'F_EXCEED_SIZE') { + editor.getOpt('tipError')(lang.errorExceedSize + ' ' + (param1 / 1024 / 1024).toFixed(1) + 'MB'); + } else { + console.log('error', code, param1, param2); + } + }); + uploader.on('uploadComplete', function (file, ret) { + }); + + $upload.on('click', function () { + if ($(this).hasClass('disabled')) { + return false; + } + + if (state === 'ready') { + uploader.upload(); + } else if (state === 'paused') { + uploader.upload(); + } else if (state === 'uploading') { + uploader.stop(); + } + }); + + $upload.addClass('state-' + state); + updateTotalProgress(); + }, + getQueueCount: function () { + var file, i, status, readyFile = 0, files = this.uploader.getFiles(); + for (i = 0; file = files[i++];) { + status = file.getStatus(); + if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++; + } + return readyFile; + }, + refresh: function () { + this.uploader.refresh(); + } + }; + +})(); diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/wordimage/wordimage.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/wordimage/wordimage.html new file mode 100644 index 0000000..c64a7b7 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/wordimage/wordimage.html @@ -0,0 +1,222 @@ + + + + + + + + + +
    +
    +
    + +
    +
    +
    复制路径
    +
    +
    +
    +
    本地选择保存
    + +
    +
    +
    +
    +
    +
    + Windows使用教程 +
    +
    +

    1、点击复制地址按钮

    +

    2、点击本地选择文件,粘贴剪切板的路径到文件选择路径

    +

    3、点击确定

    +
    +
    + Mac使用教程 +
    +
    +

    1、点击复制地址按钮

    +

    2、点击本地选择文件,按快捷 Command+Shift+G ,粘贴剪切板的路径到文件选择路径

    +

    3、点击确定

    +
    +
    +
    + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/wordimage/wordimage.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/wordimage/wordimage.js new file mode 100644 index 0000000..39dacd2 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/dialogs/wordimage/wordimage.js @@ -0,0 +1,93 @@ +/** + * Created by JetBrains PhpStorm. + * User: taoqili + * Date: 12-1-30 + * Time: 下午12:50 + * To change this template use File | Settings | File Templates. + */ +var wordImage = {}; +var g = $G, flashObj, flashContainer; + +wordImage.init = function (opt, callbacks) { + showLocalPath("fileUrl"); + createCopyButton("copyButton", "fileUrl"); + addUploadButtonListener(); + addOkListener(); +}; + +function addUploadButtonListener() { + g('saveFile').addEventListener('change', function () { + $('.image-tip').html('正在转存,请稍后...'); + uploader.addFile(this.files); + uploader.upload(); + }); +} + + +function addOkListener() { + dialog.onok = function () { + //console.log('imageUrls',imageUrls); + if (!imageUrls.length) return; + var urlPrefix = editor.getOpt('imageUrlPrefix'), + images = domUtils.getElementsByTagName(editor.document, "img"); + editor.fireEvent('saveScene'); + // console.log('images',images,imageUrls); + for (var i = 0, img; img = images[i++];) { + var src = img.getAttribute("data-word-image"); + if (!src) continue; + for (var j = 0, url; url = imageUrls[j++];) { + // console.log('url',src, url); + if (src.indexOf(url.name.replace(" ", "")) != -1) { + img.src = urlPrefix + url.url; + img.setAttribute("_src", urlPrefix + url.url); //同时修改"_src"属性 + img.setAttribute("title", url.title); + domUtils.removeAttributes(img, ["data-word-image", "style", "width", "height"]); + editor.fireEvent("selectionchange"); + break; + } + } + } + editor.fireEvent('saveScene'); + // hideFlash(); + }; + dialog.oncancel = function () { + //hideFlash(); + }; +} + +function showLocalPath(id) { + //单张编辑 + var img = editor.selection.getRange().getClosedNode(); + var images = editor.execCommand('wordimage'); + if (images.length == 1 || img && img.tagName == 'IMG') { + g(id).value = images[0]; + return; + } + var path = images[0]; + var leftSlashIndex = path.lastIndexOf("/") || 0, //不同版本的doc和浏览器都可能影响到这个符号,故直接判断两种 + rightSlashIndex = path.lastIndexOf("\\") || 0, + separater = leftSlashIndex > rightSlashIndex ? "/" : "\\"; + + path = path.substring(0, path.lastIndexOf(separater) + 1); + g(id).value = path; + //增提醒用户选择哪些文件 + var names = []; + for (var i = 0, len = images.length; i < len; i++) { + var img = images[i]; + names.push(img.substring(img.lastIndexOf(separater) + 1, img.length)); + } + $('.image-tip').html('请选择:' + names.join("、") + "共" + images.length + '个文件'); +} + +function createCopyButton(id, dataFrom) { + var url = g(dataFrom).value; + if (url.startsWith("file:////")) { + url = url.substring(8); + } + url = decodeURI(url); + g(id).setAttribute("data-clipboard-text", url); + var clipboard = new Clipboard('[data-clipboard-text]') + clipboard.on('success', function (e) { + g('copyButton').innerHTML = '复制成功'; + }); +} diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/index.html b/ruoyi-ui/public/static/UEditorPlus/dist-min/index.html new file mode 100644 index 0000000..42d75df --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/index.html @@ -0,0 +1,168 @@ + + + + UEditorPlus 完整演示 + + + + + + + + + + + + + + +
    +

    完整示例

    +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + +
    + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/en.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/en.js new file mode 100644 index 0000000..b60deab --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/en.js @@ -0,0 +1,690 @@ +/** + * Created with JetBrains PhpStorm. + * User: taoqili + * Date: 12-6-12 + * Time: 下午6:57 + * To change this template use File | Settings | File Templates. + */ +UE.I18N['en'] = { + 'labelMap': { + 'anchor': 'Anchor', + 'undo': 'Undo', + 'redo': 'Redo', + 'bold': 'Bold', + 'indent': 'Indent', + 'italic': 'Italic', + 'underline': 'Underline', + 'strikethrough': 'Strikethrough', + 'subscript': 'SubScript', + 'fontborder': 'text border', + 'superscript': 'SuperScript', + 'formatmatch': 'Format Match', + 'source': 'Source', + 'blockquote': 'BlockQuote', + 'pasteplain': 'PastePlain', + 'selectall': 'SelectAll', + 'print': 'Print', + 'preview': 'Preview', + 'horizontal': 'Horizontal', + 'removeformat': 'RemoveFormat', + 'time': 'Time', + 'date': 'Date', + 'unlink': 'Unlink', + 'insertrow': 'InsertRow', + 'insertcol': 'InsertCol', + 'mergeright': 'MergeRight', + 'mergedown': 'MergeDown', + 'deleterow': 'DeleteRow', + 'deletecol': 'DeleteCol', + 'splittorows': 'SplitToRows', + 'insertcode': 'insert code', + 'splittocols': 'SplitToCols', + 'splittocells': 'SplitToCells', + 'deletecaption': 'DeleteCaption', + 'inserttitle': 'InsertTitle', + 'mergecells': 'MergeCells', + 'deletetable': 'DeleteTable', + 'cleardoc': 'Clear', + 'contentimport': 'Content Import', + 'ai': 'AI', + 'insertparagraphbeforetable': "InsertParagraphBeforeTable", + 'fontfamily': 'FontFamily', + 'fontsize': 'FontSize', + 'paragraph': 'Paragraph', + 'simpleupload': 'Single Image', + 'insertimage': 'Multi Image', + 'edittable': 'Edit Table', + 'edittd': 'Edit Td', + 'link': 'Link', + 'emotion': 'Emotion', + 'spechars': 'Spechars', + 'searchreplace': 'SearchReplace', + 'insertvideo': 'Video', + 'help': 'Help', + 'justifyleft': 'JustifyLeft', + 'justifyright': 'JustifyRight', + 'justifycenter': 'JustifyCenter', + 'justifyjustify': 'Justify', + 'forecolor': 'FontColor', + 'backcolor': 'BackColor', + 'insertorderedlist': 'OL', + 'insertunorderedlist': 'UL', + 'fullscreen': 'FullScreen', + 'directionalityltr': 'EnterFromLeft', + 'directionalityrtl': 'EnterFromRight', + 'rowspacingtop': 'RowSpacingTop', + 'rowspacingbottom': 'RowSpacingBottom', + 'pagebreak': 'PageBreak', + 'insertframe': 'Iframe', + 'imagenone': 'Default', + 'imageleft': 'ImageLeft', + 'imageright': 'ImageRight', + 'attachment': 'Attachment', + 'imagecenter': 'ImageCenter', + 'wordimage': 'WordImage', + 'formula': 'Formula', + 'lineheight': 'LineHeight', + 'edittip': 'EditTip', + 'customstyle': 'CustomStyle', + 'scrawl': 'Scrawl', + 'autotypeset': 'AutoTypeset', + 'touppercase': 'UpperCase', + 'tolowercase': 'LowerCase', + 'template': 'Template', + 'background': 'Background', + 'inserttable': 'InsertTable', + }, + 'autosave': { + 'autoRestoreTip': 'Has been recovered from draft' + }, + 'insertorderedlist': { + 'num': '1,2,3...', + 'num1': '1),2),3)...', + 'num2': '(1),(2),(3)...', + 'cn': '一,二,三....', + 'cn1': '一),二),三)....', + 'cn2': '(一),(二),(三)....', + 'decimal': '1,2,3...', + 'lower-alpha': 'a,b,c...', + 'lower-roman': 'i,ii,iii...', + 'upper-alpha': 'A,B,C...', + 'upper-roman': 'I,II,III...' + }, + 'insertunorderedlist': { + 'circle': '○ Circle', + 'disc': '● Circle dot', + 'square': '■ Rectangle ', + 'dash': '- Dash', + 'dot': '。dot' + }, + 'paragraph': { + 'p': 'Paragraph', + 'h1': 'Title 1', + 'h2': 'Title 2', + 'h3': 'Title 3', + 'h4': 'Title 4', + 'h5': 'Title 5', + 'h6': 'Title 6' + }, + 'fontfamily': { + 'default': 'Default', + 'songti': 'Sim Sun', + 'kaiti': 'Sim Kai', + 'heiti': 'Sim Hei', + 'lishu': 'Sim Li', + 'yahei': 'Microsoft YaHei', + // 'andaleMono':'Andale Mono', + 'arial': 'Arial', + // 'arialBlack':'Arial Black', + // 'comicSansMs':'Comic Sans MS', + // 'impact':'Impact', + 'timesNewRoman': 'Times New Roman' + }, + 'customstyle': { + 'tc': 'Title center', + 'tl': 'Title left', + 'im': 'Important', + 'hi': 'Highlight' + }, + 'autoupload': { + 'exceedSizeError': 'File Size Exceed', + 'exceedTypeError': 'File Type Not Allow', + 'jsonEncodeError': 'Server Return Format Error', + 'loading': "loading...", + 'loadError': "load error", + 'errorLoadConfig': 'Server config not loaded, upload can not work.', + }, + 'simpleupload': { + 'exceedSizeError': 'File Size Exceed', + 'exceedTypeError': 'File Type Not Allow', + 'jsonEncodeError': 'Server Return Format Error', + 'loading': "loading...", + 'loadError': "load error", + 'errorLoadConfig': 'Server config not loaded, upload can not work.', + }, + 'elementPathTip': "Path", + 'wordCountTip': "Word Count", + 'wordCountMsg': '{#count} characters entered,{#leave} left. ', + 'wordOverFlowMsg': 'The number of characters has exceeded allowable maximum values, the server may refuse to save!', + 'ok': "OK", + 'cancel': "Cancel", + 'closeDialog': "closeDialog", + 'tableDrag': "You must import the file uiUtils.js before drag! ", + 'autofloatMsg': "The plugin AutoFloat depends on EditorUI!", + 'loadconfigError': 'Get server config error.', + 'loadconfigFormatError': 'Server config format error.', + 'loadconfigHttpError': 'Get server config http error.', + 'insertcode': { + 'as3': 'ActionScript 3', + 'bash': 'Bash/Shell', + 'cpp': 'C/C++', + 'css': 'CSS', + 'cf': 'ColdFusion', + 'c#': 'C#', + 'delphi': 'Delphi', + 'diff': 'Diff', + 'erlang': 'Erlang', + 'groovy': 'Groovy', + 'html': 'HTML', + 'java': 'Java', + 'jfx': 'JavaFX', + 'js': 'JavaScript', + 'pl': 'Perl', + 'php': 'PHP', + 'plain': 'Plain Text', + 'ps': 'PowerShell', + 'python': 'Python', + 'ruby': 'Ruby', + 'scala': 'Scala', + 'sql': 'SQL', + 'vb': 'Visual Basic', + 'xml': 'XML' + }, + 'confirmClear': "Do you confirm to clear the Document?", + 'contextMenu': { + 'delete': "Delete", + 'selectall': "Select all", + 'deletecode': "Delete Code", + 'cleardoc': "Clear Document", + 'confirmclear': "Do you confirm to clear the Document?", + 'unlink': "Unlink", + 'paragraph': "Paragraph", + 'edittable': "Table property", + 'aligncell': 'Align cell', + 'aligntable': 'Table alignment', + 'tableleft': 'Left float', + 'tablecenter': 'Center', + 'tableright': 'Right float', + 'aligntd': 'Cell alignment', + 'edittd': "Cell property", + 'setbordervisible': 'set table edge visible', + 'table': "Table", + 'justifyleft': 'Justify Left', + 'justifyright': 'Justify Right', + 'justifycenter': 'Justify Center', + 'justifyjustify': 'Default', + 'deletetable': "Delete table", + 'insertparagraphbefore': "InsertedBeforeLine", + 'insertparagraphafter': 'InsertedAfterLine', + 'inserttable': 'Insert table', + 'insertcaption': 'Insert caption', + 'deletecaption': 'Delete Caption', + 'inserttitle': 'Insert Title', + 'deletetitle': 'Delete Title', + 'inserttitlecol': 'Insert Title Col', + 'deletetitlecol': 'Delete Title Col', + 'averageDiseRow': 'AverageDise Row', + 'averageDisCol': 'AverageDis Col', + 'deleterow': "Delete row", + 'deletecol': "Delete col", + 'insertrow': "Insert row", + 'insertcol': "Insert col", + 'insertrownext': 'Insert Row Next', + 'insertcolnext': 'Insert Col Next', + 'mergeright': "Merge right", + 'mergeleft': "Merge left", + 'mergedown': "Merge down", + 'mergecells': "Merge cells", + 'splittocells': "Split to cells", + 'splittocols': "Split to Cols", + 'splittorows': "Split to Rows", + 'tablesort': 'Table sorting', + 'enablesort': 'Sorting Enable', + 'disablesort': 'Sorting Disable', + 'reversecurrent': 'Reverse current', + 'orderbyasc': 'Order By ASCII', + 'reversebyasc': 'Reverse By ASCII', + 'orderbynum': 'Order By Num', + 'reversebynum': 'Reverse By Num', + 'borderbk': 'Border shading', + 'setcolor': 'interlaced color', + 'unsetcolor': 'Cancel interlacedcolor', + 'setbackground': 'Background interlaced', + 'unsetbackground': 'Cancel Bk interlaced', + 'redandblue': 'Blue and red', + 'threecolorgradient': 'Three-color gradient', + 'copy': "Copy(Ctrl + c)", + 'copymsg': "Browser does not support. Please use 'Ctrl + c' instead!", + 'paste': "Paste(Ctrl + v)", + 'pastemsg': "Browser does not support. Please use 'Ctrl + v' instead!" + }, + 'copymsg': "Browser does not support. Please use 'Ctrl + c' instead!", + 'pastemsg': "Browser does not support. Please use 'Ctrl + v' instead!", + 'anchorMsg': "Link", + 'clearColor': 'Clear', + 'standardColor': 'Standard color', + 'themeColor': 'Theme color', + 'property': 'Property', + 'default': 'Default', + 'modify': 'Modify', + 'save': 'Save', + 'justifyleft': 'Justify Left', + 'justifyright': 'Justify Right', + 'justifycenter': 'Justify Center', + 'justify': 'Default', + 'clear': 'Clear', + 'delete': 'Delete', + 'clickToUpload': "Click to upload", + 'unset': 'Language hasn\'t been set!', + 't_row': 'row', + 't_col': 'col', + 'pasteOpt': 'Paste Option', + 'pasteSourceFormat': "Keep Source Formatting", + 'tagFormat': 'Keep tag', + 'pasteTextFormat': 'Keep Text only', + 'more': 'More', + 'autoTypeSet': { + 'mergeLine': "Merge empty line", + 'delLine': "Del empty line", + 'removeFormat': "Remove format", + 'indent': "Indent", + 'alignment': "Alignment", + 'imageFloat': "Image float", + 'removeFontsize': "Remove font size", + 'removeFontFamily': "Remove fontFamily", + 'removeHtml': "Remove redundant HTML code", + 'pasteFilter': "Paste filter", + 'run': "Done", + 'symbol': 'Symbol Conversion', + 'bdc2sb': 'Full-width to Half-width', + 'tobdc': 'Half-width to Full-width' + }, + + 'background': { + 'static': { + 'lang_background_normal': 'Normal', + 'lang_background_local': 'Online', + 'lang_background_set': 'Background Set', + 'lang_background_none': 'No Background', + 'lang_background_colored': 'Colored Background', + 'lang_background_color': 'Color Set', + 'lang_background_netimg': 'Net-Image', + 'lang_background_align': 'Align Type', + 'lang_background_position': 'Position', + 'repeatType': {'options': ["Center", "Repeat-x", "Repeat-y", "Tile", "Custom"]} + }, + 'noUploadImage': "No pictures has been uploaded!", + 'toggleSelect': 'Change the active state by click!\n Image Size: ' + }, + //===============dialog i18N======================= + 'insertimage': { + 'static': { + 'lang_tab_remote': "Insert", + 'lang_tab_upload': "Local", + 'lang_tab_online': "Manager", + 'lang_tab_search': "Search", + 'lang_input_url': "Address:", + 'lang_input_size': "Size:", + 'lang_input_width': "Width", + 'lang_input_height': "Height", + 'lang_input_border': "Border:", + 'lang_input_vhspace': "Margins:", + 'lang_input_title': "Title:", + 'lang_input_align': 'Image Float Style:', + 'lang_imgLoading': "Loading...", + 'lang_start_upload': "Start Upload", + 'lock': {'title': "Lock rate"}, + 'searchType': {'title': "ImageType", 'options': ["News", "Wallpaper", "emotions", "photo"]}, + 'searchTxt': {'value': "Enter the search keyword!"}, + 'searchBtn': {'value': "Search"}, + 'searchReset': {'value': "Clear"}, + 'noneAlign': {'title': 'None Float'}, + 'leftAlign': {'title': 'Left Float'}, + 'rightAlign': {'title': 'Right Float'}, + 'centerAlign': {'title': 'Center In A Line'} + }, + 'uploadSelectFile': 'Select File', + 'uploadAddFile': 'Add File', + 'uploadStart': 'Start Upload', + 'uploadPause': 'Pause Upload', + 'uploadContinue': 'Continue Upload', + 'uploadRetry': 'Retry Upload', + 'uploadDelete': 'Delete', + 'uploadTurnLeft': 'Turn Left', + 'uploadTurnRight': 'Turn Right', + 'uploadPreview': 'Doing Preview', + 'uploadNoPreview': 'Can Not Preview', + 'updateStatusReady': 'Selected _ pictures, total _KB.', + 'updateStatusConfirm': '_ uploaded successfully and _ upload failed', + 'updateStatusFinish': 'Total _ pictures (_KB), _ uploaded successfully', + 'updateStatusError': ' and _ upload failed', + 'errorNotSupport': 'WebUploader does not support the browser you are using. Please upgrade your browser or flash player', + 'errorLoadConfig': 'Server config not loaded, upload can not work.', + 'errorExceedSize': 'File Size Exceed', + 'errorFileType': 'File Type Not Allow', + 'errorInterrupt': 'File Upload Interrupted', + 'errorUploadRetry': 'Upload Error, Please Retry.', + 'errorHttp': 'Http Error', + 'errorServerUpload': 'Server Result Error.', + 'remoteLockError': "Cannot Lock the Proportion between width and height", + 'numError': "Please enter the correct Num. e.g 123,400", + 'imageUrlError': "The image format may be wrong!", + 'imageLoadError': "Error,please check the network or URL!", + 'searchRemind': "Enter the search keyword!", + 'searchLoading': "Image is loading,please wait...", + 'searchRetry': " Sorry,can't find the image,please try again!" + }, + 'attachment': { + 'static': { + 'lang_tab_upload': 'Upload', + 'lang_tab_online': 'Online', + 'lang_start_upload': "Start upload", + 'lang_drop_remind': "You can drop files here, a single maximum of 300 files" + }, + 'uploadSelectFile': 'Select File', + 'uploadAddFile': 'Add File', + 'uploadStart': 'Start Upload', + 'uploadPause': 'Pause Upload', + 'uploadContinue': 'Continue Upload', + 'uploadRetry': 'Retry Upload', + 'uploadDelete': 'Delete', + 'uploadTurnLeft': 'Turn Left', + 'uploadTurnRight': 'Turn Right', + 'uploadPreview': 'Doing Preview', + 'updateStatusReady': 'Selected _ files, total _KB.', + 'updateStatusConfirm': '_ uploaded successfully and _ upload failed', + 'updateStatusFinish': 'Total _ files (_KB), _ uploaded successfully', + 'updateStatusError': ' and _ upload failed', + 'errorNotSupport': 'WebUploader does not support the browser you are using. Please upgrade your browser or flash player', + 'errorLoadConfig': 'Server config not loaded, upload can not work.', + 'errorExceedSize': 'File Size Exceed', + 'errorFileType': 'File Type Not Allow', + 'errorInterrupt': 'File Upload Interrupted', + 'errorUploadRetry': 'Upload Error, Please Retry.', + 'errorHttp': 'Http Error', + 'errorServerUpload': 'Server Result Error.' + }, + + 'insertvideo': { + 'static': { + 'lang_tab_insertV': "Video", + 'lang_tab_searchV': "Search", + 'lang_tab_uploadV': "Upload", + 'lang_video_url': " URL ", + 'lang_video_size': "Video Size", + 'lang_videoW': "Width", + 'lang_videoH': "Height", + 'lang_alignment': "Alignment", + 'videoSearchTxt': {'value': "Enter the search keyword!"}, + 'videoType': {'options': ["All", "Hot", "Entertainment", "Funny", "Sports", "Science", "variety"]}, + 'videoSearchBtn': {'value': "Search in Baidu"}, + 'videoSearchReset': {'value': "Clear result"}, + + 'lang_input_fileStatus': ' No file uploaded!', + 'startUpload': {'style': "background:url(upload.png) no-repeat;"}, + + 'lang_upload_size': "Video Size", + 'lang_upload_width': "Width", + 'lang_upload_height': "Height", + 'lang_upload_alignment': "Alignment", + 'lang_format_advice': "Recommends mp4 format." + }, + 'numError': "Please enter the correct Num. e.g 123,400", + 'floatLeft': "Float left", + 'floatRight': "Float right", + 'default': "Default", + 'block': "Display in block", + 'urlError': "The video url format may be wrong!", + 'loading': "  The video is loading, please wait…", + 'clickToSelect': "Click to select", + 'goToSource': 'Visit source video ', + 'noVideo': "    Sorry,can't find the video,please try again!", + + 'browseFiles': 'Open files', + 'uploadSuccess': 'Upload Successful!', + 'delSuccessFile': 'Remove from the success of the queue', + 'delFailSaveFile': 'Remove the save failed file', + 'statusPrompt': ' file(s) uploaded! ', + 'flashVersionError': 'The current Flash version is too low, please update FlashPlayer,then try again!', + 'flashLoadingError': 'The Flash failed loading! Please check the path or network state', + 'fileUploadReady': 'Wait for uploading...', + 'delUploadQueue': 'Remove from the uploading queue ', + 'limitPrompt1': 'Can not choose more than single', + 'limitPrompt2': 'file(s)!Please choose again!', + 'delFailFile': 'Remove failure file', + 'fileSizeLimit': 'File size exceeds the limit!', + 'emptyFile': 'Can not upload an empty file!', + 'fileTypeError': 'File type error!', + 'unknownError': 'Unknown error!', + 'fileUploading': 'Uploading,please wait...', + 'cancelUpload': 'Cancel upload', + 'netError': 'Network error', + 'failUpload': 'Upload failed', + 'serverIOError': 'Server IO error!', + 'noAuthority': 'No Permission!', + 'fileNumLimit': 'Upload limit to the number', + 'failCheck': 'Authentication fails, the upload is skipped!', + 'fileCanceling': 'Cancel, please wait...', + 'stopUploading': 'Upload has stopped...', + + 'uploadSelectFile': 'Select File', + 'uploadAddFile': 'Add File', + 'uploadStart': 'Start Upload', + 'uploadPause': 'Pause Upload', + 'uploadContinue': 'Continue Upload', + 'uploadRetry': 'Retry Upload', + 'uploadDelete': 'Delete', + 'uploadTurnLeft': 'Turn Left', + 'uploadTurnRight': 'Turn Right', + 'uploadPreview': 'Doing Preview', + 'updateStatusReady': 'Selected _ files, total _KB.', + 'updateStatusConfirm': '_ uploaded successfully and _ upload failed', + 'updateStatusFinish': 'Total _ files (_KB), _ uploaded successfully', + 'updateStatusError': ' and _ upload failed', + 'errorNotSupport': 'WebUploader does not support the browser you are using. Please upgrade your browser or flash player', + 'errorLoadConfig': 'Server config not loaded, upload can not work.', + 'errorExceedSize': 'File Size Exceed', + 'errorFileType': 'File Type Not Allow', + 'errorInterrupt': 'File Upload Interrupted', + 'errorUploadRetry': 'Upload Error, Please Retry.', + 'errorHttp': 'Http Error', + 'errorServerUpload': 'Server Result Error.' + }, + 'template': { + 'static': { + 'lang_template_bkcolor': 'Background Color', + 'lang_template_clear': 'Keep Content', + 'lang_template_select': 'Select Template' + }, + 'blank': "Blank", + 'blog': "Blog", + 'resume': "Resume", + 'richText': "Rich Text", + 'scrPapers': "Scientific Papers" + }, + scrawl: { + 'static': { + 'lang_input_previousStep': "Previous", + 'lang_input_nextsStep': "Next", + 'lang_input_clear': 'Clear', + 'lang_input_addPic': 'AddImage', + 'lang_input_ScalePic': 'ScaleImage', + 'lang_input_removePic': 'RemoveImage', + 'J_imgTxt': {title: 'Add background image'} + }, + 'noScarwl': "No paint, a white paper...", + 'scrawlUpLoading': "Image is uploading, please wait...", + 'continueBtn': "Try again", + 'imageError': "Image failed to load!", + 'backgroundUploading': 'Image is uploading,please wait...' + }, + anchor: { + 'static': { + 'lang_input_anchorName': 'Anchor Name:' + } + }, + emotion: { + 'static': { + 'lang_input_choice': 'Choice', + 'lang_input_Tuzki': 'Tuzki', + 'lang_input_lvdouwa': 'LvDouWa', + 'lang_input_BOBO': 'BOBO', + 'lang_input_babyCat': 'BabyCat', + 'lang_input_bubble': 'Bubble', + 'lang_input_youa': 'YouA' + } + }, + help: { + 'static': { + 'lang_input_about': 'About UEditor Plus', + 'lang_input_shortcuts': 'Shortcuts', + 'lang_input_introduction': "UEditor Plus is based on UEditor.", + 'lang_Txt_shortcuts': 'Shortcuts', + 'lang_Txt_func': 'Function', + 'lang_Txt_bold': 'Bold', + 'lang_Txt_copy': 'Copy', + 'lang_Txt_cut': 'Cut', + 'lang_Txt_Paste': 'Paste', + 'lang_Txt_undo': 'Undo', + 'lang_Txt_redo': 'Redo', + 'lang_Txt_italic': 'Italic', + 'lang_Txt_underline': 'Underline', + 'lang_Txt_selectAll': 'Select All', + 'lang_Txt_visualEnter': 'Submit', + 'lang_Txt_fullscreen': 'Fullscreen' + } + }, + insertframe: { + 'static': { + 'lang_input_address': 'Address:', + 'lang_input_width': 'Width:', + 'lang_input_height': 'height:', + 'lang_input_isScroll': 'Enable scrollbars:', + 'lang_input_frameborder': 'Show frame border:', + 'lang_input_alignMode': 'Alignment:', + 'align': {title: "Alignment", options: ["Default", "Left", "Right", "Center"]} + }, + 'enterAddress': 'Please enter an address!' + }, + link: { + 'static': { + 'lang_input_text': 'Text:', + 'lang_input_url': 'URL:', + 'lang_input_title': 'Title:', + 'lang_input_target': 'open in new window:' + }, + 'validLink': 'Supports only effective when a link is selected', + 'httpPrompt': 'The hyperlink you enter should start with "http|https|ftp://"!' + }, + searchreplace: { + 'static': { + lang_tab_search: "Search", + lang_tab_replace: "Replace", + lang_search1: "Search", + lang_search2: "Search", + lang_replace: "Replace", + lang_searchReg: 'Support regular expression ,which starts and ends with a slash ,for example "/expression/"', + lang_searchReg1: 'Support regular expression ,which starts and ends with a slash ,for example "/expression/"', + lang_case_sensitive1: "Case sense", + lang_case_sensitive2: "Case sense", + nextFindBtn: {value: "Next"}, + preFindBtn: {value: "Preview"}, + nextReplaceBtn: {value: "Next"}, + preReplaceBtn: {value: "Preview"}, + repalceBtn: {value: "Replace"}, + repalceAllBtn: {value: "Replace all"} + }, + getEnd: "Has the search to the bottom!", + getStart: "Has the search to the top!", + countMsg: "Altogether replaced {#count} character(s)!" + }, + spechars: { + 'static': {}, + tsfh: "Special", + lmsz: "Roman", + szfh: "Numeral", + rwfh: "Japanese", + xlzm: "The Greek", + ewzm: "Russian", + pyzm: "Phonetic", + yyyb: "English", + zyzf: "Others" + }, + 'edittable': { + 'static': { + 'lang_tableStyle': 'Table style', + 'lang_insertCaption': 'Add table header row', + 'lang_insertTitle': 'Add table title row', + 'lang_insertTitleCol': 'Add table title col', + 'lang_tableSize': 'Automatically adjust table size', + 'lang_autoSizeContent': 'Adaptive by form text', + 'lang_orderbycontent': "Table of contents sortable", + 'lang_autoSizePage': 'Page width adaptive', + 'lang_example': 'Example', + 'lang_borderStyle': 'Table Border', + 'lang_color': 'Color:' + }, + captionName: 'Caption', + titleName: 'Title', + cellsName: 'text', + errorMsg: 'There are merged cells, can not sort.' + }, + 'edittip': { + 'static': { + lang_delRow: 'Delete entire row', + lang_delCol: 'Delete entire col' + } + }, + 'edittd': { + 'static': { + lang_tdBkColor: 'Background Color:' + } + }, + 'formula': { + 'static': {}, + }, + 'ai': { + 'static': {}, + }, + wordimage: { + 'static': { + lang_resave: "The re-save step", + uploadBtn: {src: "upload.png", alt: "Upload"}, + clipboard: {style: "background: url(copy.png) -153px -1px no-repeat;"}, + lang_step: " 1. Click top button to copy the url and then open the dialog to paste it. 2. Open after choose photos uploaded process." + }, + fileType: "Image", + flashError: "Flash initialization failed!", + netError: "Network error! Please try again!", + copySuccess: "URL has been copied!", + + 'flashI18n': { + lang: encodeURI('{"UploadingState":"totalNum: ${a},uploadComplete: ${b}", "BeforeUpload":"waitingNum: ${a}", "ExceedSize":"Size exceed${a}", "ErrorInPreview":"Preview failed", "DefaultDescription":"Description", "LoadingImage":"Loading..."}'), + uploadingTF: encodeURI('{"font":"Arial", "size":12, "color":"0x000", "bold":"true", "italic":"false", "underline":"false"}'), + imageTF: encodeURI('{"font":"Arial", "size":11, "color":"red", "bold":"false", "italic":"false", "underline":"false"}'), + textEncoding: "utf-8", + addImageSkinURL: "addImage.png", + allDeleteBtnUpSkinURL: "allDeleteBtnUpSkin.png", + allDeleteBtnHoverSkinURL: "allDeleteBtnHoverSkin.png", + rotateLeftBtnEnableSkinURL: "rotateLeftEnable.png", + rotateLeftBtnDisableSkinURL: "rotateLeftDisable.png", + rotateRightBtnEnableSkinURL: "rotateRightEnable.png", + rotateRightBtnDisableSkinURL: "rotateRightDisable.png", + deleteBtnEnableSkinURL: "deleteEnable.png", + deleteBtnDisableSkinURL: "deleteDisable.png", + backgroundURL: '', + listBackgroundURL: '', + buttonURL: 'button.png' + } + }, +}; diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/addimage.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/addimage.png new file mode 100644 index 0000000..3a2fd17 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/addimage.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/alldeletebtnhoverskin.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/alldeletebtnhoverskin.png new file mode 100644 index 0000000..355eeab Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/alldeletebtnhoverskin.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/alldeletebtnupskin.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/alldeletebtnupskin.png new file mode 100644 index 0000000..61658ce Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/alldeletebtnupskin.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/background.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/background.png new file mode 100644 index 0000000..d5bf5fd Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/background.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/button.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/button.png new file mode 100644 index 0000000..098874c Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/button.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/copy.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/copy.png new file mode 100644 index 0000000..f982e8b Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/copy.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/deletedisable.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/deletedisable.png new file mode 100644 index 0000000..c8ee750 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/deletedisable.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/deleteenable.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/deleteenable.png new file mode 100644 index 0000000..26acc88 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/deleteenable.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/listbackground.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/listbackground.png new file mode 100644 index 0000000..4f82ccd Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/listbackground.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/localimage.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/localimage.png new file mode 100644 index 0000000..dcecad4 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/localimage.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/music.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/music.png new file mode 100644 index 0000000..2f495fe Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/music.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/rotateleftdisable.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/rotateleftdisable.png new file mode 100644 index 0000000..741526e Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/rotateleftdisable.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/rotateleftenable.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/rotateleftenable.png new file mode 100644 index 0000000..e164ddb Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/rotateleftenable.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/rotaterightdisable.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/rotaterightdisable.png new file mode 100644 index 0000000..5a78c26 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/rotaterightdisable.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/rotaterightenable.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/rotaterightenable.png new file mode 100644 index 0000000..d768531 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/rotaterightenable.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/upload.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/upload.png new file mode 100644 index 0000000..7bb15b3 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/en/images/upload.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/zh-cn/images/copy.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/zh-cn/images/copy.png new file mode 100644 index 0000000..b2536aa Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/zh-cn/images/copy.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/zh-cn/images/localimage.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/zh-cn/images/localimage.png new file mode 100644 index 0000000..ba5f07a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/zh-cn/images/localimage.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/zh-cn/images/music.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/zh-cn/images/music.png new file mode 100644 index 0000000..354edeb Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/zh-cn/images/music.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/zh-cn/images/upload.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/zh-cn/images/upload.png new file mode 100644 index 0000000..08d4d92 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/zh-cn/images/upload.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/zh-cn/zh-cn.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/zh-cn/zh-cn.js new file mode 100644 index 0000000..f630f09 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/lang/zh-cn/zh-cn.js @@ -0,0 +1,752 @@ +/** + * Created with JetBrains PhpStorm. + * User: taoqili + * Date: 12-6-12 + * Time: 下午5:02 + * To change this template use File | Settings | File Templates. + */ +UE.I18N['zh-cn'] = { + 'labelMap': { + 'anchor': '锚点', + 'undo': '撤销', + 'redo': '重做', + 'bold': '加粗', + 'indent': '首行缩进', + 'italic': '斜体', + 'underline': '下划线', + 'strikethrough': '删除线', + 'subscript': '下标', + 'fontborder': '字符边框', + 'superscript': '上标', + 'formatmatch': '格式刷', + 'source': '源代码', + 'blockquote': '引用', + 'pasteplain': '纯文本粘贴模式', + 'selectall': '全选', + 'print': '打印', + 'preview': '预览', + 'horizontal': '分隔线', + 'removeformat': '清除格式', + 'time': '时间', + 'date': '日期', + 'unlink': '取消链接', + 'insertrow': '前插入行', + 'insertcol': '前插入列', + 'mergeright': '右合并单元格', + 'mergedown': '下合并单元格', + 'deleterow': '删除行', + 'deletecol': '删除列', + 'splittorows': '拆分成行', + 'splittocols': '拆分成列', + 'splittocells': '完全拆分单元格', + 'deletecaption': '删除表格标题', + 'inserttitle': '插入标题', + 'mergecells': '合并多个单元格', + 'deletetable': '删除表格', + 'cleardoc': '清空文档', + 'contentimport': '导入内容', + 'ai': 'AI智能助手', + 'insertparagraphbeforetable': "表格前插入行", + 'insertcode': '代码语言', + 'fontfamily': '字体', + 'fontsize': '字号', + 'paragraph': '段落格式', + 'simpleupload': '单图上传', + 'insertimage': '插入图片', + 'edittable': '表格属性', + 'edittd': '单元格属性', + 'link': '超链接', + 'emotion': '表情', + 'spechars': '特殊字符', + 'searchreplace': '查询替换', + 'insertvideo': '视频', + 'insertaudio': '音频', + 'help': '帮助', + 'justifyleft': '居左对齐', + 'justifyright': '居右对齐', + 'justifycenter': '居中对齐', + 'justifyjustify': '两端对齐', + 'forecolor': '字体颜色', + 'backcolor': '背景色', + 'insertorderedlist': '有序列表', + 'insertunorderedlist': '无序列表', + 'fullscreen': '全屏', + 'directionalityltr': '从左向右输入', + 'directionalityrtl': '从右向左输入', + 'rowspacingtop': '段前距', + 'rowspacingbottom': '段后距', + 'pagebreak': '分页', + 'insertframe': '插入Iframe', + 'imagenone': '默认', + 'imageleft': '左浮动', + 'imageright': '右浮动', + 'attachment': '附件', + 'imagecenter': '居中', + 'wordimage': '图片转存', + 'formula': '公式', + 'lineheight': '行间距', + 'edittip': '编辑提示', + 'customstyle': '自定义标题', + 'autotypeset': '自动排版', + 'touppercase': '字母大写', + 'tolowercase': '字母小写', + 'background': '背景', + 'template': '模板', + 'scrawl': '涂鸦', + 'inserttable': '插入表格', + }, + 'autosave': { + 'autoRestoreTip': '已自动从草稿箱恢复' + }, + 'insertorderedlist': { + // 'num': '1,2,3...', + // 'num1': '1),2),3)...', + // 'num2': '(1),(2),(3)...', + // 'cn': '一,二,三....', + // 'cn1': '一),二),三)....', + // 'cn2': '(一),(二),(三)....', + 'decimal': '1,2,3...', + 'lower-alpha': 'a,b,c...', + 'lower-roman': 'i,ii,iii...', + 'upper-alpha': 'A,B,C...', + 'upper-roman': 'I,II,III...' + }, + 'insertunorderedlist': { + 'circle': '○ 大圆圈', + 'disc': '● 小黑点', + 'square': '■ 小方块 ', + // 'dash': '— 破折号', + // 'dot': ' 。 小圆圈' + }, + 'paragraph': {'p': '段落', 'h1': '标题 1', 'h2': '标题 2', 'h3': '标题 3', 'h4': '标题 4', 'h5': '标题 5', 'h6': '标题 6'}, + 'fontfamily': { + 'default': '默认', + 'songti': '宋体', + 'kaiti': '楷体', + 'heiti': '黑体', + 'lishu': '隶书', + 'yahei': '微软雅黑', + // 'andaleMono':'andale mono', + 'arial': 'arial', + // 'arialBlack':'arial black', + // 'comicSansMs':'comic sans ms', + // 'impact':'impact', + 'timesNewRoman': 'times new roman' + }, + 'customstyle': { + 'tc': '标题居中', + 'tl': '标题居左', + 'im': '强调', + 'hi': '明显强调' + }, + 'autoupload': { + 'exceedSizeError': '文件大小超出限制', + 'exceedTypeError': '文件格式不允许', + 'jsonEncodeError': '服务器返回格式错误', + 'loading': "正在上传...", + 'loadError': "上传错误", + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!' + }, + 'simpleupload': { + 'exceedSizeError': '文件大小超出限制', + 'exceedTypeError': '文件格式不允许', + 'jsonEncodeError': '服务器返回格式错误', + 'loading': "正在上传...", + 'loadError': "上传错误", + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!' + }, + 'elementPathTip': "元素路径", + 'wordCountTip': "字数统计", + 'wordCountMsg': '{#count} / {#leave}', + 'wordOverFlowMsg': '字数超出最大允许值,服务器可能拒绝保存!', + 'ok': "确认", + 'cancel': "取消", + 'closeDialog': "关闭对话框", + 'tableDrag': "表格拖动必须引入uiUtils.js文件!", + 'autofloatMsg': "工具栏浮动依赖编辑器UI,您首先需要引入UI文件!", + 'loadconfigError': '获取后台配置项请求出错,上传功能将不能正常使用!', + 'loadconfigFormatError': '后台配置项返回格式出错,上传功能将不能正常使用!', + 'loadconfigHttpError': '请求后台配置项http错误,上传功能将不能正常使用!', + 'insertcode': { + 'as3': 'ActionScript 3', + 'bash': 'Bash/Shell', + 'cpp': 'C/C++', + 'css': 'CSS', + 'cf': 'ColdFusion', + 'c#': 'C#', + 'delphi': 'Delphi', + 'diff': 'Diff', + 'erlang': 'Erlang', + 'groovy': 'Groovy', + 'html': 'HTML', + 'java': 'Java', + 'jfx': 'JavaFX', + 'js': 'JavaScript', + 'pl': 'Perl', + 'php': 'PHP', + 'plain': 'Plain Text', + 'ps': 'PowerShell', + 'python': 'Python', + 'ruby': 'Ruby', + 'scala': 'Scala', + 'sql': 'SQL', + 'vb': 'Visual Basic', + 'xml': 'XML' + }, + 'confirmClear': "确定清空当前文档么?", + 'contextMenu': { + 'delete': "删除", + 'selectall': "全选", + 'deletecode': "删除代码", + 'cleardoc': "清空文档", + 'confirmclear': "确定清空当前文档么?", + 'unlink': "删除超链接", + 'paragraph': "段落格式", + 'edittable': "表格属性", + 'aligntd': "单元格对齐方式", + 'aligntable': '表格对齐方式', + 'tableleft': '左浮动', + 'tablecenter': '居中显示', + 'tableright': '右浮动', + 'edittd': "单元格属性", + 'setbordervisible': '设置表格边线可见', + 'justifyleft': '左对齐', + 'justifyright': '右对齐', + 'justifycenter': '居中对齐', + 'justifyjustify': '两端对齐', + 'table': "表格", + 'inserttable': '插入表格', + 'deletetable': "删除表格", + 'insertparagraphbefore': "前插入段落", + 'insertparagraphafter': '后插入段落', + 'deleterow': "删除当前行", + 'deletecol': "删除当前列", + 'insertrow': "前插入行", + 'insertcol': "左插入列", + 'insertrownext': '后插入行', + 'insertcolnext': '右插入列', + 'insertcaption': '插入表格名称', + 'deletecaption': '删除表格名称', + 'inserttitle': '插入表格标题行', + 'deletetitle': '删除表格标题行', + 'inserttitlecol': '插入表格标题列', + 'deletetitlecol': '删除表格标题列', + 'averageDiseRow': '平均分布各行', + 'averageDisCol': '平均分布各列', + 'mergeright': "向右合并", + 'mergeleft': "向左合并", + 'mergedown': "向下合并", + 'mergecells': "合并单元格", + 'splittocells': "完全拆分单元格", + 'splittocols': "拆分成列", + 'splittorows': "拆分成行", + 'tablesort': '表格排序', + 'enablesort': '设置表格可排序', + 'disablesort': '取消表格可排序', + 'reversecurrent': '逆序当前', + 'orderbyasc': '按ASCII字符升序', + 'reversebyasc': '按ASCII字符降序', + 'orderbynum': '按数值大小升序', + 'reversebynum': '按数值大小降序', + 'borderbk': '边框底纹', + 'setcolor': '表格隔行变色', + 'unsetcolor': '取消表格隔行变色', + 'setbackground': '选区背景隔行', + 'unsetbackground': '取消选区背景', + 'redandblue': '红蓝相间', + 'threecolorgradient': '三色渐变', + 'copy': "复制(Ctrl + c)", + 'copymsg': "浏览器不支持,请使用 'Ctrl + c'", + 'paste': "粘贴(Ctrl + v)", + 'pastemsg': "浏览器不支持,请使用 'Ctrl + v'" + }, + 'copymsg': "浏览器不支持,请使用 'Ctrl + c'", + 'pastemsg': "浏览器不支持,请使用 'Ctrl + v'", + 'anchorMsg': "链接", + 'clearColor': '清空颜色', + 'standardColor': '标准颜色', + 'themeColor': '主题颜色', + 'property': '属性', + 'default': '默认', + 'modify': '修改', + 'save': '保存', + 'justifyleft': '左对齐', + 'justifyright': '右对齐', + 'justifycenter': '居中', + 'justify': '默认', + 'clear': '清除', + 'delete': '删除', + 'clickToUpload': "点击上传", + 'unset': '尚未设置语言文件', + 't_row': '行', + 't_col': '列', + 'more': '更多', + 'pasteOpt': '粘贴选项', + 'pasteSourceFormat': "保留源格式", + 'tagFormat': '只保留标签', + 'pasteTextFormat': '只保留文本', + 'autoTypeSet': { + 'mergeLine': "合并空行", + 'delLine': "清除空行", + 'removeFormat': "清除格式", + 'indent': "首行缩进", + 'alignment': "对齐方式", + 'imageFloat': "图片浮动", + 'removeFontsize': "清除字号", + 'removeFontFamily': "清除字体", + 'removeHtml': "清除冗余HTML代码", + 'pasteFilter': "粘贴过滤", + 'run': "执行", + 'symbol': '符号转换', + 'bdc2sb': '全角转半角', + 'tobdc': '半角转全角' + }, + + 'background': { + 'static': { + 'lang_background_normal': '背景设置', + 'lang_background_local': '在线图片', + 'lang_background_set': '选项', + 'lang_background_none': '无背景色', + 'lang_background_colored': '有背景色', + 'lang_background_color': '颜色设置', + 'lang_background_netimg': '网络图片', + 'lang_background_align': '对齐方式', + 'lang_background_position': '精确定位', + 'repeatType': {'options': ["居中", "横向重复", "纵向重复", "平铺", "自定义"]} + + }, + 'noUploadImage': "当前未上传过任何图片!", + 'toggleSelect': "单击可切换选中状态\n原图尺寸: " + }, + //===============dialog i18N======================= + 'insertimage': { + 'static': { + 'lang_tab_remote': "插入图片", //节点 + 'lang_tab_upload': "本地上传", + 'lang_tab_online': "在线管理", + 'lang_input_url': "地 址:", + 'lang_input_size': "大 小:", + 'lang_input_width': "宽度", + 'lang_input_height': "高度", + 'lang_input_border': "边 框:", + 'lang_input_vhspace': "边 距:", + 'lang_input_title': "描 述:", + 'lang_input_align': '图片浮动方式:', + 'lang_imgLoading': " 图片加载中……", + 'lang_start_upload': "开始上传", + 'lock': {'title': "锁定宽高比例"}, //属性 + 'searchType': {'title': "图片类型", 'options': ["新闻", "壁纸", "表情", "头像"]}, //select的option + 'searchTxt': {'value': "请输入搜索关键词"}, + 'searchBtn': {'value': "百度一下"}, + 'searchReset': {'value': "清空搜索"}, + 'noneAlign': {'title': '无浮动'}, + 'leftAlign': {'title': '左浮动'}, + 'rightAlign': {'title': '右浮动'}, + 'centerAlign': {'title': '居中独占一行'} + }, + 'uploadSelectFile': '点击选择图片', + 'uploadAddFile': '继续添加', + 'uploadStart': '开始上传', + 'uploadPause': '暂停上传', + 'uploadContinue': '继续上传', + 'uploadRetry': '重试上传', + 'uploadDelete': '删除', + 'uploadTurnLeft': '向左旋转', + 'uploadTurnRight': '向右旋转', + 'uploadPreview': '预览中', + 'uploadNoPreview': '不能预览', + 'updateStatusReady': '选中_张图片,共_KB。', + 'updateStatusConfirm': '已成功上传_张照片,_张照片上传失败', + 'updateStatusFinish': '共_张(_KB),_张上传成功', + 'updateStatusError': ',_张上传失败。', + 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', + 'errorExceedSize': '文件大小超出', + 'errorFileType': '文件格式不允许', + 'errorInterrupt': '文件传输中断', + 'errorUploadRetry': '上传失败,请重试', + 'errorHttp': 'http请求错误', + 'errorServerUpload': '服务器返回出错', + 'remoteLockError': "宽高不正确,不能所定比例", + 'numError': "请输入正确的长度或者宽度值!例如:123,400", + 'imageUrlError': "不允许的图片格式或者图片域!", + 'imageLoadError': "图片加载失败!请检查链接地址或网络状态!", + 'searchRemind': "请输入搜索关键词", + 'searchLoading': "图片加载中,请稍后……", + 'searchRetry': " :( ,抱歉,没有找到图片!请重试一次!" + }, + 'attachment': { + 'static': { + 'lang_tab_upload': '上传附件', + 'lang_tab_online': '在线附件', + 'lang_start_upload': "开始上传", + 'lang_drop_remind': "可以将文件拖到这里,单次最多可选100个文件" + }, + 'uploadSelectFile': '点击选择文件', + 'uploadAddFile': '继续添加', + 'uploadStart': '开始上传', + 'uploadPause': '暂停上传', + 'uploadContinue': '继续上传', + 'uploadRetry': '重试上传', + 'uploadDelete': '删除', + 'uploadTurnLeft': '向左旋转', + 'uploadTurnRight': '向右旋转', + 'uploadPreview': '预览中', + 'updateStatusReady': '选中_个文件,共_KB。', + 'updateStatusConfirm': '已成功上传_个文件,_个文件上传失败', + 'updateStatusFinish': '共_个(_KB),_个上传成功', + 'updateStatusError': ',_张上传失败。', + 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', + 'errorExceedSize': '文件大小超出', + 'errorFileType': '文件格式不允许', + 'errorInterrupt': '文件传输中断', + 'errorUploadRetry': '上传失败,请重试', + 'errorHttp': 'http请求错误', + 'errorServerUpload': '服务器返回出错' + }, + 'insertvideo': { + 'static': { + 'lang_tab_insertV': "插入视频", + 'lang_tab_searchV': "搜索视频", + 'lang_tab_uploadV': "上传视频", + 'lang_video_url': "视频网址", + 'lang_video_size': "视频尺寸", + 'lang_videoW': "宽度", + 'lang_videoH': "高度", + 'lang_alignment': "对齐方式", + 'videoSearchTxt': {'value': "请输入搜索关键字!"}, + 'videoType': {'options': ["全部", "热门", "娱乐", "搞笑", "体育", "科技", "综艺"]}, + 'videoSearchBtn': {'value': "百度一下"}, + 'videoSearchReset': {'value': "清空结果"}, + + 'lang_input_fileStatus': ' 当前未上传文件', + 'startUpload': {'style': "background:url(upload.png) no-repeat;"}, + + 'lang_upload_size': "视频尺寸", + 'lang_upload_width': "宽度", + 'lang_upload_height': "高度", + 'lang_upload_alignment': "对齐方式", + 'lang_format_advice': "建议使用mp4格式." + + }, + 'numError': "请输入正确的数值,如123,400", + 'floatLeft': "左浮动", + 'floatRight': "右浮动", + 'default': "默认", + 'block': "独占一行", + 'urlError': "输入的视频地址有误,请检查后再试!", + 'loading': "  视频加载中,请等待……", + 'clickToSelect': "点击选中", + 'goToSource': '访问源视频', + 'noVideo': "    抱歉,找不到对应的视频,请重试!", + + 'browseFiles': '浏览文件', + 'uploadSuccess': '上传成功!', + 'delSuccessFile': '从成功队列中移除', + 'delFailSaveFile': '移除保存失败文件', + 'statusPrompt': ' 个文件已上传! ', + 'flashVersionError': '当前Flash版本过低,请更新FlashPlayer后重试!', + 'flashLoadingError': 'Flash加载失败!请检查路径或网络状态', + 'fileUploadReady': '等待上传……', + 'delUploadQueue': '从上传队列中移除', + 'limitPrompt1': '单次不能选择超过', + 'limitPrompt2': '个文件!请重新选择!', + 'delFailFile': '移除失败文件', + 'fileSizeLimit': '文件大小超出限制!', + 'emptyFile': '空文件无法上传!', + 'fileTypeError': '文件类型不允许!', + 'unknownError': '未知错误!', + 'fileUploading': '上传中,请等待……', + 'cancelUpload': '取消上传', + 'netError': '网络错误', + 'failUpload': '上传失败!', + 'serverIOError': '服务器IO错误!', + 'noAuthority': '无权限!', + 'fileNumLimit': '上传个数限制', + 'failCheck': '验证失败,本次上传被跳过!', + 'fileCanceling': '取消中,请等待……', + 'stopUploading': '上传已停止……', + + 'uploadSelectFile': '点击选择文件', + 'uploadAddFile': '继续添加', + 'uploadStart': '开始上传', + 'uploadPause': '暂停上传', + 'uploadContinue': '继续上传', + 'uploadRetry': '重试上传', + 'uploadDelete': '删除', + 'uploadTurnLeft': '向左旋转', + 'uploadTurnRight': '向右旋转', + 'uploadPreview': '预览中', + 'updateStatusReady': '选中_个文件,共_KB。', + 'updateStatusConfirm': '成功上传_个,_个失败', + 'updateStatusFinish': '共_个(_KB),_个成功上传', + 'updateStatusError': ',_张上传失败。', + 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', + 'errorExceedSize': '文件大小超出', + 'errorFileType': '文件格式不允许', + 'errorInterrupt': '文件传输中断', + 'errorUploadRetry': '上传失败,请重试', + 'errorHttp': 'http请求错误', + 'errorServerUpload': '服务器返回出错' + }, + 'insertaudio': { + 'static': { + 'lang_tab_insertV': "插入音频", + 'lang_tab_searchV': "搜索音频", + 'lang_tab_uploadV': "上传音频", + 'lang_video_url': "音频网址", + 'lang_video_size': "音频尺寸", + 'lang_videoW': "宽度", + 'lang_videoH': "高度", + 'lang_alignment': "对齐方式", + 'videoSearchTxt': {'value': "请输入搜索关键字!"}, + 'videoType': {'options': ["全部", "热门", "娱乐", "搞笑", "体育", "科技", "综艺"]}, + 'videoSearchBtn': {'value': "百度一下"}, + 'videoSearchReset': {'value': "清空结果"}, + + 'lang_input_fileStatus': ' 当前未上传文件', + 'startUpload': {'style': "background:url(upload.png) no-repeat;"}, + + 'lang_upload_size': "音频尺寸", + 'lang_upload_width': "宽度", + 'lang_upload_height': "高度", + 'lang_upload_alignment': "对齐方式", + 'lang_format_advice': "建议使用mp4格式." + + }, + 'numError': "请输入正确的数值,如123,400", + 'floatLeft': "左浮动", + 'floatRight': "右浮动", + 'default': "默认", + 'block': "独占一行", + 'urlError': "输入的音频地址有误,请检查后再试!", + 'loading': "  音频加载中,请等待……", + 'clickToSelect': "点击选中", + 'goToSource': '访问源音频', + 'noVideo': "    抱歉,找不到对应的音频,请重试!", + + 'browseFiles': '浏览文件', + 'uploadSuccess': '上传成功!', + 'delSuccessFile': '从成功队列中移除', + 'delFailSaveFile': '移除保存失败文件', + 'statusPrompt': ' 个文件已上传! ', + 'flashVersionError': '当前Flash版本过低,请更新FlashPlayer后重试!', + 'flashLoadingError': 'Flash加载失败!请检查路径或网络状态', + 'fileUploadReady': '等待上传……', + 'delUploadQueue': '从上传队列中移除', + 'limitPrompt1': '单次不能选择超过', + 'limitPrompt2': '个文件!请重新选择!', + 'delFailFile': '移除失败文件', + 'fileSizeLimit': '文件大小超出限制!', + 'emptyFile': '空文件无法上传!', + 'fileTypeError': '文件类型不允许!', + 'unknownError': '未知错误!', + 'fileUploading': '上传中,请等待……', + 'cancelUpload': '取消上传', + 'netError': '网络错误', + 'failUpload': '上传失败!', + 'serverIOError': '服务器IO错误!', + 'noAuthority': '无权限!', + 'fileNumLimit': '上传个数限制', + 'failCheck': '验证失败,本次上传被跳过!', + 'fileCanceling': '取消中,请等待……', + 'stopUploading': '上传已停止……', + + 'uploadSelectFile': '点击选择文件', + 'uploadAddFile': '继续添加', + 'uploadStart': '开始上传', + 'uploadPause': '暂停上传', + 'uploadContinue': '继续上传', + 'uploadRetry': '重试上传', + 'uploadDelete': '删除', + 'uploadTurnLeft': '向左旋转', + 'uploadTurnRight': '向右旋转', + 'uploadPreview': '预览中', + 'updateStatusReady': '选中_个文件,共_KB。', + 'updateStatusConfirm': '成功上传_个,_个失败', + 'updateStatusFinish': '共_个(_KB),_个成功上传', + 'updateStatusError': ',_张上传失败。', + 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', + 'errorExceedSize': '文件大小超出', + 'errorFileType': '文件格式不允许', + 'errorInterrupt': '文件传输中断', + 'errorUploadRetry': '上传失败,请重试', + 'errorHttp': 'http请求错误', + 'errorServerUpload': '服务器返回出错' + }, + 'template': { + 'static': { + 'lang_template_bkcolor': '背景颜色', + 'lang_template_clear': '保留原有内容', + 'lang_template_select': '选择模板' + }, + 'blank': "空白文档", + 'blog': "博客文章", + 'resume': "个人简历", + 'richText': "图文混排", + 'sciPapers': "科技论文" + + + }, + 'scrawl': { + 'static': { + 'lang_input_previousStep': "上一步", + 'lang_input_nextsStep': "下一步", + 'lang_input_clear': '清空', + 'lang_input_addPic': '添加背景', + 'lang_input_ScalePic': '缩放背景', + 'lang_input_removePic': '删除背景', + 'J_imgTxt': {title: '添加背景图片'} + }, + 'noScarwl': "尚未作画,白纸一张~", + 'scrawlUpLoading': "涂鸦上传中,别急哦~", + 'continueBtn': "继续", + 'imageError': "糟糕,图片读取失败了!", + 'backgroundUploading': '背景图片上传中,别急哦~' + }, + 'anchor': { + 'static': { + 'lang_input_anchorName': '锚点名字:' + } + }, + 'emotion': { + 'static': { + 'lang_input_choice': '精选', + 'lang_input_Tuzki': '兔斯基', + 'lang_input_BOBO': 'BOBO', + 'lang_input_lvdouwa': '绿豆蛙', + 'lang_input_babyCat': 'baby猫', + 'lang_input_bubble': '泡泡', + 'lang_input_youa': '有啊' + } + }, + 'help': { + 'static': { + 'lang_input_about': '关于 UEditor Plus', + 'lang_input_shortcuts': '快捷键', + 'lang_input_introduction': 'UEditor Plus 是基于百度UEditor二次开发的所见即所得富文本web编辑器,主要丰富也界面样式,注重用户体验等特点。基于Apache 2.0协议开源,允许自由使用和修改代码。', + 'lang_Txt_shortcuts': '快捷键', + 'lang_Txt_func': '功能', + 'lang_Txt_bold': '给选中字设置为加粗', + 'lang_Txt_copy': '复制选中内容', + 'lang_Txt_cut': '剪切选中内容', + 'lang_Txt_Paste': '粘贴', + 'lang_Txt_undo': '重新执行上次操作', + 'lang_Txt_redo': '撤销上一次操作', + 'lang_Txt_italic': '给选中字设置为斜体', + 'lang_Txt_underline': '给选中字加下划线', + 'lang_Txt_selectAll': '全部选中', + 'lang_Txt_visualEnter': '软回车', + 'lang_Txt_fullscreen': '全屏' + } + }, + 'insertframe': { + 'static': { + 'lang_input_address': '地址:', + 'lang_input_width': '宽度:', + 'lang_input_height': '高度:', + 'lang_input_isScroll': '允许滚动条:', + 'lang_input_frameborder': '显示框架边框:', + 'lang_input_alignMode': '对齐方式:', + 'align': {title: "对齐方式", options: ["默认", "左对齐", "右对齐", "居中"]} + }, + 'enterAddress': '请输入地址!' + }, + 'link': { + 'static': { + 'lang_input_text': '文本内容:', + 'lang_input_url': '链接地址:', + 'lang_input_title': '标题:', + 'lang_input_target': '是否在新窗口打开:' + }, + 'validLink': '只支持选中一个链接时生效', + 'httpPrompt': '您输入的超链接中不包含http等协议名称,默认将为您添加http://前缀' + }, + 'searchreplace': { + 'static': { + lang_tab_search: "查找", + lang_tab_replace: "替换", + lang_search1: "查找", + lang_search2: "查找", + lang_replace: "替换", + lang_searchReg: '支持正则表达式,添加前后斜杠标示为正则表达式,例如“/表达式/”', + lang_searchReg1: '支持正则表达式,添加前后斜杠标示为正则表达式,例如“/表达式/”', + lang_case_sensitive1: "区分大小写", + lang_case_sensitive2: "区分大小写", + nextFindBtn: {value: "下一个"}, + preFindBtn: {value: "上一个"}, + nextReplaceBtn: {value: "下一个"}, + preReplaceBtn: {value: "上一个"}, + repalceBtn: {value: "替换"}, + repalceAllBtn: {value: "全部替换"} + }, + getEnd: "已经搜索到文章末尾!", + getStart: "已经搜索到文章头部", + countMsg: "总共替换了{#count}处!" + }, + 'spechars': { + 'static': {}, + tsfh: "特殊字符", + lmsz: "罗马字符", + szfh: "数学字符", + rwfh: "日文字符", + xlzm: "希腊字母", + ewzm: "俄文字符", + pyzm: "拼音字母", + yyyb: "英语音标", + zyzf: "其他" + }, + 'edittable': { + 'static': { + 'lang_tableStyle': '表格样式', + 'lang_insertCaption': '添加表格名称行', + 'lang_insertTitle': '添加表格标题行', + 'lang_insertTitleCol': '添加表格标题列', + 'lang_orderbycontent': "使表格内容可排序", + 'lang_tableSize': '自动调整表格尺寸', + 'lang_autoSizeContent': '按表格文字自适应', + 'lang_autoSizePage': '按页面宽度自适应', + 'lang_example': '示例', + 'lang_borderStyle': '表格边框', + 'lang_color': '颜色:' + }, + captionName: '表格名称', + titleName: '标题', + cellsName: '内容', + errorMsg: '有合并单元格,不可排序' + }, + 'edittip': { + 'static': { + lang_delRow: '删除整行', + lang_delCol: '删除整列' + } + }, + 'edittd': { + 'static': { + lang_tdBkColor: '背景颜色:' + } + }, + 'formula': { + 'static': {}, + }, + 'ai': { + 'static': {}, + }, + 'wordimage': { + 'static': { + lang_resave: "转存步骤", + uploadBtn: {src: "upload.png", alt: "上传"}, + clipboard: {style: "background: url(copy.png) -153px -1px no-repeat;"}, + lang_step: "1、点击顶部复制按钮,将地址复制到剪贴板;2、点击添加照片按钮,在弹出的对话框中使用Ctrl+V粘贴地址;3、点击打开后选择图片上传流程。" + }, + 'fileType': "图片", + 'flashError': "FLASH初始化失败,请检查FLASH插件是否正确安装!", + 'netError': "网络连接错误,请重试!", + 'copySuccess': "图片地址已经复制!", + 'flashI18n': {} //留空默认中文 + }, +}; diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/plugins/demo/demo.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/plugins/demo/demo.js new file mode 100644 index 0000000..addd6e0 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/plugins/demo/demo.js @@ -0,0 +1,3 @@ +(function () { + +})(); diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/css/ueditor.css b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/css/ueditor.css new file mode 100644 index 0000000..4636966 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/css/ueditor.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +:root{--edui-color-active-bg:rgba(200,200,200,.3);--edui-color-border:#EEE;--edui-bg-toolbar:#FFF;--edui-color-muted:#CCC}@font-face{font-family:edui-iconfont;src:url("data:font/woff2;base64,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") format('woff2'),url("data:font/woff;base64,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") format('woff'),url("data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQiCLJXoAAAE4AAAAVE9TLzI8QFDMAAABjAAAAGBjbWFwqolkFAAAA4gAAAh+Z2x5ZhXcx3cAAAzYAABSZGhlYWQrGC50AAAA4AAAADZoaGVhB94EBQAAALwAAAAkaG10eJwdAAAAAAHsAAABnGxvY2EetDNAAAAMCAAAANBtYXhwAYQA5gAAARgAAAAgbmFtZQlTMroAAF88AAACo3Bvc3QOXsxBAABh4AAABSQAAQAAA4D/gABcBB0AAAAABAAAAQAAAAAAAAAAAAAAAAAAAGcAAQAAAAEAABXjQYBfDzz1AAsEAAAAAADj/HVjAAAAAOP8dWMAAP9VBAADXAAAAAgAAgAAAAAAAAABAAAAZwDaABMAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAQEAAGQAAUAAAKJAswAAACPAokCzAAAAesAMgEIAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAwOYA7fwDgP+AAAAD3ACrAAAAAQAAAAAAAAAAAAAAAAACBAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABB0AAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAUAAAADAAAALAAAAAQAAAOmAAEAAAAAAqAAAwABAAAALAADAAoAAAOmAAQCdAAAAGYAQAAFACbmJeYo5irmLeYv5jjmPuZE5krmTOZW5mLmZeZp5nXmeuaA5pfmp+at5sDm2Obx5vrnBOcG5wvnGuc15zfnUud754Lnree859Ln+Of86D7oQuh86JHpAekr6fDrCuts7OntUe38//8AAOYA5ijmKuYt5i/mNuY+5kTmSOZM5lbmYuZl5mnmdeZ65oDml+an5q3mwObY5vHm+OcE5wbnC+ca5zXnN+dS53vnguet57zn0efz5/zoPuhC6HvokekB6Svp8OsJ62zs6e1R7fv//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBmALAAsACwALAAsAC0ALQAtAC4ALgAuAC4ALgAuAC4ALgAuAC4ALgAuAC4ALgAuAC8ALwAvAC8ALwAvAC8ALwAvAC8ALwAvAC+AMgAyADIAMgAygDKAMoAygDKAMwAzADMAMwAAAA4ADkAOgA7ADwABQA9AD4AWQA/AEAAQQBCAEMAUgBEACgAKQAqACUAJgAnAFQAJAAhACIAIwAgAAQAHwAeABoAGwAcAB0ADQAMAAIAZgBiAFEANABgAEcAUABhABAAYwA2AGQAZQATAFcACAAYAEoAFgAXABEAVgBMAAsASAAGAE0ATgBPADIAAQAVADcASwAvABQABwBYAEYADgAwADEAWwAuAFwAXQBeAF8ACgA1AEkAGQBTABIAKwBaAFUALAAtAA8AMwADAEUACQAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAE2AAAAAAAAABmAADmAAAA5gAAAAA4AADmAQAA5gEAAAA5AADmAgAA5gIAAAA6AADmAwAA5gMAAAA7AADmBAAA5gQAAAA8AADmBQAA5gUAAAAFAADmBgAA5gYAAAA9AADmBwAA5gcAAAA+AADmCAAA5ggAAABZAADmCQAA5gkAAAA/AADmCgAA5goAAABAAADmCwAA5gsAAABBAADmDAAA5gwAAABCAADmDQAA5g0AAABDAADmDgAA5g4AAABSAADmDwAA5g8AAABEAADmEAAA5hAAAAAoAADmEQAA5hEAAAApAADmEgAA5hIAAAAqAADmEwAA5hMAAAAlAADmFAAA5hQAAAAmAADmFQAA5hUAAAAnAADmFgAA5hYAAABUAADmFwAA5hcAAAAkAADmGAAA5hgAAAAhAADmGQAA5hkAAAAiAADmGgAA5hoAAAAjAADmGwAA5hsAAAAgAADmHAAA5hwAAAAEAADmHQAA5h0AAAAfAADmHgAA5h4AAAAeAADmHwAA5h8AAAAaAADmIAAA5iAAAAAbAADmIQAA5iEAAAAcAADmIgAA5iIAAAAdAADmIwAA5iMAAAANAADmJAAA5iQAAAAMAADmJQAA5iUAAAACAADmKAAA5igAAABmAADmKgAA5ioAAABiAADmLQAA5i0AAABRAADmLwAA5i8AAAA0AADmNgAA5jYAAABgAADmNwAA5jcAAABHAADmOAAA5jgAAABQAADmPgAA5j4AAABhAADmRAAA5kQAAAAQAADmSAAA5kgAAABjAADmSQAA5kkAAAA2AADmSgAA5koAAABkAADmTAAA5kwAAABlAADmVgAA5lYAAAATAADmYgAA5mIAAABXAADmZQAA5mUAAAAIAADmaQAA5mkAAAAYAADmdQAA5nUAAABKAADmegAA5noAAAAWAADmgAAA5oAAAAAXAADmlwAA5pcAAAARAADmpwAA5qcAAABWAADmrQAA5q0AAABMAADmwAAA5sAAAAALAADm2AAA5tgAAABIAADm8QAA5vEAAAAGAADm+AAA5vgAAABNAADm+QAA5vkAAABOAADm+gAA5voAAABPAADnBAAA5wQAAAAyAADnBgAA5wYAAAABAADnCwAA5wsAAAAVAADnGgAA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ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAAdyZWZyZXNoBGJlbGwPcmlnaHQtZGlyZWN0aW9uBXJvYm90BWltYWdlDmNvbnRlbnQtaW1wb3J0BXNvdW5kBXJpZ2h0D2ljX2ltYWdlX3VwbG9hZAVjaGVjawZpZnJhbWUKYmFja2dyb3VuZANsdHIDcnRsC2ZpbmRyZXBsYWNlCWljcHJldmlldwVyaXFpMgtldXJvLXN5bWJvbAVtdXNpYwRoZWxwCWhhbmRfZHJhdwVwcmludAR0aW1lBWJhaWR1C0dvb2dsZS1NYXBzCmltYWdlLW5vbmUMaW1hZ2UtY2VudGVyCmltYWdlLWxlZnQLaW1hZ2UtcmlnaHQJY2xlYXItZG9jCnBhZ2UtYnJlYWsGYXV0aG9yCndvcmQtaW1hZ2ULdG91cHBlcmNhc2ULdG9sb3dlcmNhc2UKaG9yaXpvbnRhbA9tZXJnZS1kb3duLWNlbGwLbWVyZ2UtY2VsbHMQbWVyZ2UtcmlnaHQtY2VsbA1zcGxpdC10by1yb3dzDXNwbGl0LXRvLWNvbHMOc3BsaXQtdG8tY2VsbHMOaW5zZXJ0cm93YWJvdmUXcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20UcGFyYWdyYXBoLW1hcmdpbi10b3ANdW5vcmRlcmVkbGlzdAxsaXN0LW9yZGVyZWQUc3BsaXQtY2VsbHMtdmVydGljYWwWc3BsaXQtY2VsbHMtaG9yaXpvbnRhbAphdHRhY2htZW50CXN1YnNjcmlwdAlzZWxlY3RhbGwLc3VwZXJzY3JpcHQDbWFwCWJnLWNvbG9ycw1hZGRfY29sX2FmdGVyDmFkZF9jb2xfYmVmb3JlDWFkZF9yb3dfYWZ0ZXIOYWRkX3Jvd19iZWZvcmUKZGVsZXRlX2NvbA1jb21iaW5lX2NlbGxzAm9sCmRlbGV0ZV9yb3cMZGVsZXRlX3RhYmxlAnVsBHJlZG8FdGFibGUEdW5kbwVwYXN0ZQZ1cGxvYWQFYnJ1c2gKdGV4dC1xdW90ZRFpbnNlcnQtcm93LWJvdHRvbRFmdWxsc2NyZWVuLWV4cGFuZA5pbnNlcnQtcm93LXRvcAh0ZW1wbGF0ZRJmb3JtYXQtaW1hZ2UtcmlnaHQRZm9ybWF0LWltYWdlLWxlZnQTZm9ybWF0LWltYWdlLWNlbnRlcgtsaW5lLWhlaWdodAdvdXRsaW5lBXNtaWxlDWFsaWduLWp1c3RpZnkHZm9ybXVsYQphbmdsZS1kb3duBWNsb3NlCm1hZ2ljLXdhbmQGZXJhc2VyBGh0bWwGdW5saW5rBmluZGVudAthbGlnbi1yaWdodAxhbGlnbi1jZW50ZXIKYWxpZ24tbGVmdAtmb250LWNvbG9ycwRwbGF5CXVuZGVybGluZQZpdGFsaWMEbGluawZzdHJpa2UEY29kZQRib2xkAAA=") format('truetype')}.edui-iconfont{font-family:edui-iconfont!important;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.edui-default{accent-color:#333}.edui-default .edui-box{border:0;padding:0;margin:0;overflow:hidden;line-height:30px}.edui-default a.edui-box{display:block;text-decoration:none;color:#000}.edui-default a.edui-box:hover{text-decoration:none}.edui-default a.edui-box:active{text-decoration:none}.edui-default table.edui-box{border-collapse:collapse}.edui-default ul.edui-box{list-style-type:none}div.edui-box{position:relative;display:inline-block;vertical-align:middle}.edui-default .edui-clearfix{zoom:1}.edui-default .edui-clearfix:after{content:'\20';display:block;clear:both}* html div.edui-box{display:inline!important}:first-child+html div.edui-box{display:inline!important}.edui-default .edui-button-body,.edui-splitbutton-body,.edui-menubutton-body,.edui-combox-body{position:relative}.edui-default .edui-popup{position:absolute;-webkit-user-select:none;-moz-user-select:none}.edui-default .edui-popup .edui-shadow{position:absolute;z-index:-1}.edui-default .edui-popup .edui-bordereraser{position:absolute;overflow:hidden}.edui-default .edui-tablepicker .edui-canvas{position:relative}.edui-default .edui-tablepicker .edui-canvas .edui-overlay{position:absolute}.edui-default .edui-dialog-modalmask,.edui-dialog-dragmask{position:absolute;left:0;top:0;width:100%;height:100%}.edui-default .edui-toolbar{position:relative}.edui-default .edui-label{cursor:pointer}.edui-default span.edui-clickable{color:#666;cursor:pointer;text-decoration:none}.edui-default span.edui-clickable:hover{color:#333}.edui-default span.edui-unclickable{color:gray;cursor:default}.edui-default span.edui-popup-action-item{margin-right:5px}.edui-default span.edui-popup-action-item:last-child{margin-right:0}.edui-default .edui-toolbar{cursor:default;-webkit-user-select:none;-moz-user-select:none;padding:1px;overflow:hidden;zoom:1;width:auto;height:auto}.edui-default .edui-toolbar .edui-button,.edui-default .edui-toolbar .edui-splitbutton,.edui-default .edui-toolbar .edui-menubutton,.edui-default .edui-toolbar .edui-combox{margin:1px}.edui-default .edui-editor{border:1px solid var(--edui-color-border);background-color:#fff;position:relative;overflow:visible;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.edui-editor div{width:auto;height:auto}.edui-default .edui-editor-toolbarbox{position:relative;zoom:1;border-top-left-radius:2px;border-top-right-radius:2px}.edui-default .edui-editor-toolbarboxouter{border-bottom:1px solid var(--edui-color-border);background-color:var(--edui-bg-toolbar);-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.edui-default .edui-editor-toolbarboxinner{padding:2px}.edui-default .edui-editor-iframeholder{position:relative}.edui-default .edui-editor-bottomContainer{overflow:hidden}.edui-default .edui-editor-bottomContainer table{width:100%;height:0;overflow:hidden;border-spacing:0}.edui-default .edui-editor-bottomContainer td{white-space:nowrap;border-top:1px solid var(--edui-color-border);line-height:20px;font-size:12px;font-family:Arial,Helvetica,Tahoma,Verdana,Sans-Serif;padding:0 5px;color:var(--edui-color-muted)}.edui-default .edui-editor-wordcount{text-align:right;margin-right:5px;color:#aaa}.edui-default .edui-editor-scale{width:12px}.edui-default .edui-editor-scale .edui-editor-icon{float:right;width:100%;height:12px;margin-top:10px;background:url(../images/scale.png) no-repeat;cursor:se-resize}.edui-default .edui-editor-breadcrumb{margin:2px 0 0 3px;color:var(--edui-color-muted)}.edui-default .edui-editor-breadcrumb span{cursor:pointer;color:var(--edui-color-muted);line-height:16px;display:inline-block}.edui-default .edui-toolbar .edui-for-fullscreen{float:right}.edui-default .edui-bubble .edui-popup-content{font-size:13px;box-shadow:0 0 10px #0001f;transition:.25s;color:#666;background-color:#FFF;padding:10px;border-radius:5px}.edui-default .edui-bubble .edui-shadow{}.edui-default .edui-editor-toolbarmsg{background-color:#FFF6D9;border-bottom:1px solid #ccc;position:absolute;bottom:-25px;left:0;z-index:1009;width:99.9%}.edui-default .edui-editor-toolbarmsg-upload{font-size:14px;color:#00f;width:100px;height:16px;line-height:16px;cursor:pointer;position:absolute;top:5px;left:350px}.edui-default .edui-editor-toolbarmsg-label{font-size:12px;line-height:16px;padding:4px}.edui-default .edui-editor-toolbarmsg-close{float:right;width:20px;height:16px;line-height:16px;cursor:pointer;color:red}.edui-default .edui-list .edui-bordereraser{display:none}.edui-default .edui-listitem{padding:1px;white-space:nowrap;cursor:pointer}.edui-default .edui-list .edui-state-hover{position:relative;background-color:#EEE;border:1px solid #EEE;padding:0;border-radius:3px}.edui-default .edui-for-fontfamily .edui-listitem-label{min-width:130px;_width:120px;font-size:12px;height:22px;line-height:22px;padding-left:5px}.edui-default .edui-for-insertcode .edui-listitem-label{min-width:120px;_width:120px;font-size:12px;height:22px;line-height:22px;padding-left:5px}.edui-default .edui-for-underline .edui-listitem-label{min-width:120px;_width:120px;padding:3px 5px;font-size:12px}.edui-default .edui-for-fontsize .edui-listitem-label{min-width:120px;_width:120px;padding:3px 5px;cursor:pointer}.edui-default .edui-for-paragraph .edui-listitem-label{min-width:200px;_width:200px;padding:2px 5px}.edui-default .edui-for-rowspacingtop .edui-listitem-label,.edui-default .edui-for-rowspacingbottom .edui-listitem-label{min-width:53px;_width:53px;padding:2px 5px}.edui-default .edui-for-lineheight .edui-listitem-label{min-width:53px;_width:53px;padding:2px 5px}.edui-default .edui-for-customstyle .edui-listitem-label{min-width:200px;_width:200px;width:200px!important;padding:2px 5px}.edui-default .edui-menu{z-index:3000}.edui-default .edui-menu .edui-popup-content{padding:3px}.edui-default .edui-menu-body{_width:150px;min-width:170px;background:url(../images/sparator_v.png) repeat-y 25px}.edui-default .edui-menuitem-body{}.edui-default .edui-menuitem{height:24px;line-height:22px;cursor:default;vertical-align:top}.edui-default .edui-menuitem .edui-icon{width:20px!important;height:20px!important;font-family:edui-iconfont;font-size:12px;line-height:20px;text-align:center}.edui-default .edui-menuitem .edui-menuitem-body .edui-icon:before{display:none}.edui-default .edui-contextmenu .edui-popup-content .edui-menuitem-body .edui-icon:before{display:inline-block}.edui-default .edui-menuitem .edui-label{font-size:12px;line-height:20px;height:20px;padding-left:10px}.edui-default .edui-state-checked .edui-menuitem-body .edui-icon{line-height:20px;text-align:center}.edui-default .edui-state-checked .edui-menuitem-body .edui-icon:before{content:"\e7fc";font-size:10px;display:inline-block}.edui-default .edui-state-disabled .edui-menuitem-label{color:gray}.edui-default .edui-toolbar .edui-combox-body .edui-button-body{width:60px;font-size:12px;height:30px;line-height:30px;padding-left:5px;white-space:nowrap;margin:0 3px 0 0;cursor:pointer}.edui-default .edui-toolbar .edui-combox-body .edui-arrow{height:30px;width:13px;cursor:pointer;display:inline-flex}.edui-default .edui-toolbar .edui-combox-body .edui-arrow:before{content:"\e9f0";font-family:edui-iconfont;font-size:10px;margin:auto}.edui-default .edui-toolbar .edui-combox .edui-combox-body{border:1px solid var(--edui-color-border);background-color:#fff;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px}.edui-default .edui-toolbar .edui-combox .edui-combox-body>div{vertical-align:top;text-align:center}.edui-default .edui-toolbar .edui-combox-body .edui-splitborder{display:none}.edui-default .edui-toolbar .edui-combox-body .edui-arrow{border-left:1px solid var(--edui-color-border)}.edui-default .edui-toolbar .edui-state-hover .edui-combox-body{}.edui-default .edui-toolbar .edui-state-hover .edui-combox-body .edui-arrow{}.edui-default .edui-toolbar .edui-state-checked .edui-combox-body{background-color:#FFE69F;border:1px solid #DCAC6C}.edui-toolbar .edui-state-checked .edui-combox-body .edui-arrow{border-left:1px solid #DCAC6C}.edui-toolbar .edui-state-disabled .edui-combox-body{background-color:#F0F0EE;opacity:.3}.edui-toolbar .edui-state-opened .edui-combox-body{background-color:#fff;border:1px solid gray}.edui-default .edui-toolbar .edui-button .edui-icon,.edui-default .edui-toolbar .edui-menubutton .edui-icon,.edui-default .edui-toolbar .edui-splitbutton .edui-icon{height:30px!important;width:30px!important;background-position:center;background-repeat:no-repeat;font-family:edui-iconfont;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;text-align:center;cursor:pointer}.edui-default .edui-toolbar .edui-button .edui-button-wrap{padding:1px;position:relative;border-radius:3px}.edui-default .edui-toolbar .edui-button .edui-state-hover .edui-button-wrap{background-color:#EEE;border:1px solid #EEE;padding:0}.edui-default .edui-toolbar .edui-button .edui-state-checked .edui-button-wrap{background-color:#F0F0EE;padding:0;border:1px solid #EEE;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px}.edui-default .edui-toolbar .edui-button .edui-state-active .edui-button-wrap{background-color:#F0F0EE;padding:0;border:1px solid var(--edui-color-border)}.edui-default .edui-toolbar .edui-state-disabled .edui-label{color:#ccc}.edui-default .edui-toolbar .edui-state-disabled .edui-icon{opacity:.3;filter:alpha(opacity=30)}.edui-default .edui-toolbar-button-custom{display:inline-block!important;line-height:30px;vertical-align:middle;padding:0 10px;border-radius:3px;margin:0 5px}.edui-default .edui-toolbar-button-custom:hover{background:#EEE}.edui-default .edui-for-undo .edui-icon:before{content:"\e60f"}.edui-default .edui-for-redo .edui-icon:before{content:"\e60c"}.edui-default .edui-for-bold .edui-icon:before{content:"\e628"}.edui-default .edui-for-italic .edui-icon:before{content:"\e62a"}.edui-default .edui-for-fontborder .edui-icon:before{content:'\e62d'}.edui-default .edui-for-underline .edui-icon:before{content:"\e63e"}.edui-default .edui-for-strikethrough .edui-icon:before{content:"\e64a"}.edui-default .edui-for-subscript .edui-icon:before{content:"\ece9"}.edui-default .edui-for-superscript .edui-icon:before{content:"\e83e"}.edui-default .edui-for-blockquote .edui-icon:before{content:"\e6d8"}.edui-default .edui-for-forecolor .edui-icon:before{content:"\e7f8"}.edui-default .edui-for-backcolor .edui-icon:before{content:"\e71a"}.edui-default .edui-for-inserttable .edui-icon:before{content:"\e60d"}.edui-default .edui-for-autotypeset .edui-icon:before{content:"\e662"}.edui-default .edui-for-justifyleft .edui-icon:before{content:"\e7f7"}.edui-default .edui-for-justifycenter .edui-icon:before{content:"\e7f6"}.edui-default .edui-for-justifyright .edui-icon:before{content:"\e7f5"}.edui-default .edui-for-justifyjustify .edui-icon:before{content:"\e87c"}.edui-default .edui-for-insertorderedlist .edui-icon:before{content:"\e737"}.edui-default .edui-for-insertunorderedlist .edui-icon:before{content:"\e7f4"}.edui-default .edui-for-lineheight .edui-icon:before{content:"\e638"}.edui-default .edui-for-rowspacingbottom .edui-icon:before{content:'\eb09'}.edui-default .edui-for-rowspacingtop .edui-icon:before{content:'\eb0a'}.edui-default .edui-for-horizontal .edui-icon:before{content:"\e617"}.edui-default .edui-for-link .edui-icon:before{content:"\e648"}.edui-default .edui-for-code .edui-icon:before{background-position:-440px -40px}.edui-default .edui-for-insertimage .edui-icon:before{content:"\e605"}.edui-default .edui-for-insertframe .edui-icon:before{content:"\e6c0"}.edui-default .edui-for-emoticon .edui-icon:before{content:"\e60e"}.edui-default .edui-for-spechars .edui-icon:before{content:"\e891"}.edui-default .edui-for-help .edui-icon:before{content:"\e752"}.edui-default .edui-for-print .edui-icon:before{content:"\e67a"}.edui-default .edui-for-preview .edui-icon:before{content:"\e644"}.edui-default .edui-for-selectall .edui-icon:before{content:'\e62f'}.edui-default .edui-for-searchreplace .edui-icon:before{content:"\eb6c"}.edui-default .edui-for-contentimport .edui-icon:before{content:"\e6f1"}.edui-default .edui-for-ai .edui-icon:before{content:"\e61c"}.edui-default .edui-for-map .edui-icon:before{content:"\e649"}.edui-default .edui-for-insertvideo .edui-icon:before{content:"\e636"}.edui-default .edui-for-insertaudio .edui-icon:before{content:"\e77b"}.edui-default .edui-for-time .edui-icon:before{content:"\e680"}.edui-default .edui-for-date .edui-icon:before{content:"\e697"}.edui-default .edui-for-cut .edui-icon:before{background-position:-680px 0}.edui-default .edui-for-copy .edui-icon:before{background-position:-700px 0}.edui-default .edui-for-paste .edui-icon:before{background-position:-560px 0}.edui-default .edui-for-formatmatch .edui-icon:before{content:"\e637"}.edui-default .edui-for-pasteplain .edui-icon:before{content:'\edfb'}.edui-default .edui-for-directionalityltr .edui-icon:before{content:"\e623"}.edui-default .edui-for-directionalityrtl .edui-icon:before{content:"\e7bc"}.edui-default .edui-for-source .edui-icon:before{content:"\e608"}.edui-default .edui-for-removeformat .edui-icon:before{content:"\e782"}.edui-default .edui-for-unlink .edui-icon:before{content:"\e92b"}.edui-default .edui-for-touppercase .edui-icon:before{content:"\e619"}.edui-default .edui-for-tolowercase .edui-icon:before{content:"\e61a"}.edui-default .edui-for-insertrow .edui-icon:before{content:"\e603"}.edui-default .edui-for-insertrownext .edui-icon:before{content:"\e602"}.edui-default .edui-for-insertcol .edui-icon:before{content:"\e601"}.edui-default .edui-for-insertcolnext .edui-icon:before{content:"\e600"}.edui-default .edui-for-mergeright .edui-icon:before{content:"\e615"}.edui-default .edui-for-mergedown .edui-icon:before{content:"\e613"}.edui-default .edui-for-splittorows .edui-icon:before{content:"\e610"}.edui-default .edui-for-splittocols .edui-icon:before{content:"\e611"}.edui-default .edui-for-insertparagraphbeforetable .edui-icon:before{content:'\e901'}.edui-default .edui-for-deleterow .edui-icon:before{content:"\e609"}.edui-default .edui-for-deletecol .edui-icon:before{content:"\e604"}.edui-default .edui-for-splittocells .edui-icon:before{content:"\e612"}.edui-default .edui-for-mergecells .edui-icon:before{content:"\e606"}.edui-default .edui-for-deletetable .edui-icon:before{content:"\e60a"}.edui-default .edui-for-cleardoc .edui-icon:before{content:"\e61e"}.edui-default .edui-for-fullscreen .edui-icon:before{content:"\e675"}.edui-default .edui-for-anchor .edui-icon:before{content:"\e61b"}.edui-default .edui-for-pagebreak .edui-icon:before{content:"\e61d"}.edui-default .edui-for-imagenone .edui-icon:before{content:"\e61f"}.edui-default .edui-for-imageleft .edui-icon:before{content:"\e621"}.edui-default .edui-for-wordimage .edui-icon:before{content:"\e618"}.edui-default .edui-for-imageright .edui-icon:before{content:"\e622"}.edui-default .edui-for-imagecenter .edui-icon:before{content:"\e620"}.edui-default .edui-for-indent .edui-icon:before{content:"\e7f3"}.edui-default .edui-for-outdent .edui-icon:before{background-position:-540px 0}.edui-default .edui-for-table .edui-icon:before{background-position:-580px -20px}.edui-default .edui-for-edittable .edui-icon:before{background-position:-420px -40px}.edui-default .edui-for-template .edui-icon:before{content:"\e6ad"}.edui-default .edui-for-delete .edui-icon:before{background-position:-360px -40px}.edui-default .edui-for-attachment .edui-icon:before{content:"\e704"}.edui-default .edui-for-edittd .edui-icon:before{background-position:-700px -40px}.edui-default .edui-for-scrawl .edui-icon:before{content:"\e70b"}.edui-default .edui-for-background .edui-icon:before{content:"\e624"}.edui-default .edui-for-formula .edui-icon:before{content:"\e616"}.edui-default .edui-for-aligntd .edui-icon:before{background-position:-236px -76px}.edui-default .edui-for-insertparagraphtrue .edui-icon:before{background-position:-625px -76px}.edui-default .edui-for-insertparagraph .edui-icon:before{background-position:-602px -76px}.edui-default .edui-for-insertcaption .edui-icon:before{background-position:-336px -76px}.edui-default .edui-for-deletecaption .edui-icon:before{background-position:-362px -76px}.edui-default .edui-for-inserttitle .edui-icon:before{background-position:-286px -76px}.edui-default .edui-for-deletetitle .edui-icon:before{background-position:-311px -76px}.edui-default .edui-for-aligntable .edui-icon:before{background-position:-440px 0}.edui-default .edui-for-tablealignment-left .edui-icon:before{background-position:-460px 0}.edui-default .edui-for-tablealignment-center .edui-icon:before{background-position:-420px 0}.edui-default .edui-for-tablealignment-right .edui-icon:before{background-position:-480px 0}.edui-default .edui-for-inserttitlecol .edui-icon:before{background-position:-673px -76px}.edui-default .edui-for-deletetitlecol .edui-icon:before{background-position:-698px -76px}.edui-default .edui-for-simpleupload .edui-icon:before{content:"\edfc"}.edui-default .edui-toolbar .edui-splitbutton-body .edui-arrow,.edui-default .edui-toolbar .edui-menubutton-body .edui-arrow{height:30px;width:13px;cursor:pointer}.edui-default .edui-toolbar .edui-splitbutton-body .edui-arrow:before,.edui-default .edui-toolbar .edui-menubutton-body .edui-arrow:before{content:"\e9f0";font-family:edui-iconfont;font-size:10px;vertical-align:middle}.edui-default .edui-toolbar .edui-splitbutton .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-menubutton-body{padding:1px;border-radius:3px;display:flex}.edui-default .edui-toolbar .edui-splitborder{width:0;height:30px}.edui-default .edui-toolbar .edui-state-hover .edui-splitborder{border-left:0 solid #dcac6c}.edui-default .edui-toolbar .edui-state-active .edui-splitborder{width:0}.edui-default .edui-toolbar .edui-state-opened .edui-splitborder{border:0}.edui-default .edui-toolbar .edui-splitbutton .edui-state-hover .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-hover .edui-menubutton-body{background-color:#EEE;border:1px solid #EEE;padding:0}.edui-default .edui-toolbar .edui-splitbutton .edui-state-checked .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-checked .edui-menubutton-body{background-color:#fff;border:1px solid #EEE;padding:0}.edui-default .edui-toolbar .edui-splitbutton .edui-state-active .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-active .edui-menubutton-body{background-color:#fff;border:1px solid #EEE;padding:0}.edui-default .edui-state-disabled .edui-arrow{opacity:.3;_filter:alpha(opacity=30)}.edui-default .edui-toolbar .edui-splitbutton .edui-state-opened .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-opened .edui-menubutton-body{background-color:#fff;border:1px solid #EEE;padding:0}.edui-default .edui-for-insertorderedlist .edui-bordereraser,.edui-default .edui-for-lineheight .edui-bordereraser,.edui-default .edui-for-rowspacingtop .edui-bordereraser,.edui-default .edui-for-rowspacingbottom .edui-bordereraser,.edui-default .edui-for-insertunorderedlist .edui-bordereraser{background-color:#fff}.edui-default .edui-for-insertorderedlist .edui-popup-body .edui-icon,.edui-default .edui-for-lineheight .edui-popup-body .edui-icon,.edui-default .edui-for-rowspacingtop .edui-popup-body .edui-icon,.edui-default .edui-for-rowspacingbottom .edui-popup-body .edui-icon,.edui-default .edui-for-insertunorderedlist .edui-popup-body .edui-icon{background-image:none}.edui-default .edui-popup{z-index:3000;background-color:#fff;width:auto;height:auto;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin-top:1px}.edui-default .edui-popup .edui-shadow{left:0;top:0;width:100%;height:100%}.edui-default .edui-popup-content{font-size:13px;box-shadow:0 0 10px rgba(0,0,0,.2);transition:.25s;color:#333;background-color:#FFF;padding:10px;border-radius:5px}.edui-default .edui-popup .edui-bordereraser{background-color:transparent;height:3px}.edui-default .edui-menu .edui-bordereraser{height:3px}.edui-default .edui-anchor-topleft .edui-bordereraser{left:1px;top:-2px}.edui-default .edui-anchor-topright .edui-bordereraser{right:1px;top:-2px}.edui-default .edui-anchor-bottomleft .edui-bordereraser{left:0;bottom:-6px;height:7px;border-left:1px solid gray;border-right:1px solid gray}.edui-default .edui-anchor-bottomright .edui-bordereraser{right:0;bottom:-6px;height:7px;border-left:1px solid gray;border-right:1px solid gray}.edui-popup div{width:auto;height:auto}.edui-default .edui-editor-messageholder{display:block;width:150px;height:auto;border:0;margin:0;padding:0;position:absolute;top:28px;right:3px}.edui-default .edui-message{min-height:10px;text-shadow:0 1px 0 rgba(255,255,255,.5);padding:0;margin-bottom:3px;position:relative}.edui-default .edui-message-body{border-radius:3px;padding:8px 15px 8px 8px;color:#c09853;background-color:#fcf8e3;border:1px solid #fbeed5}.edui-default .edui-message-type-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.edui-default .edui-message-type-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.edui-default .edui-message-type-danger,.edui-default .edui-message-type-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.edui-default .edui-message .edui-message-closer{display:block;width:16px;height:16px;line-height:16px;position:absolute;top:0;right:0;padding:0;cursor:pointer;background:transparent;border:0;float:right;font-size:20px;font-weight:700;color:#999;text-shadow:0 1px 0 #fff;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.edui-default .edui-message .edui-message-content{font-size:10pt;word-wrap:break-word;word-break:normal}.edui-default .edui-dialog{z-index:2000;position:absolute}.edui-dialog div{width:auto}.edui-default .edui-dialog-wrap{margin-right:6px;margin-bottom:6px}.edui-default .edui-dialog-fullscreen-flag{margin-right:0;margin-bottom:0}.edui-default .edui-dialog-body{position:relative}.edui-default .edui-dialog-fullscreen-flag .edui-dialog-body{padding:0}.edui-default .edui-dialog-shadow{position:absolute;z-index:-1;left:0;top:0;width:100%;height:100%;background-color:#fff;*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:3px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.edui-default .edui-dialog-foot{background-color:#fff;border-radius:0 0 10px 10px;height:50px;padding:10px 0;box-sizing:border-box}.edui-default .edui-dialog-titlebar{height:30px;background:#FFF;position:relative;cursor:move;border-radius:10px 10px 0 0}.edui-default .edui-dialog-caption{font-weight:700;font-size:14px;line-height:30px;padding-left:5px}.edui-default .edui-dialog-draghandle{height:30px;padding:5px}.edui-default .edui-dialog-closebutton{position:absolute!important;right:10px;top:10px}.edui-default .edui-dialog-closebutton .edui-button-body{height:20px;width:20px;cursor:pointer}.edui-default .edui-dialog-closebutton .edui-button-body .edui-icon{width:20px;height:20px;font-family:edui-iconfont;line-height:20px;font-size:20px;text-align:center;color:#999;vertical-align:top}.edui-default .edui-dialog-closebutton .edui-button-body .edui-icon:before{content:"\e6a7"}.edui-default .edui-dialog-closebutton .edui-state-hover .edui-button-body .edui-icon{color:#333}.edui-default .edui-dialog-buttons{position:absolute;right:0}.edui-default .edui-dialog-buttons .edui-button{margin-right:10px}.edui-default .edui-dialog-buttons .edui-button .edui-button-body .edui-icon{display:none!important}.edui-default .edui-dialog-buttons .edui-button .edui-button-body{height:30px;font-size:12px;line-height:28px;cursor:pointer;border-radius:4px;text-align:center;background-color:#F8F8F8;border:1px solid #EEE;padding:0 15px}.edui-default .edui-dialog-buttons .edui-button .edui-state-hover .edui-button-body{}.edui-default .edui-dialog iframe{border:0;padding:0;margin:0;vertical-align:top}.edui-default .edui-dialog-modalmask{opacity:.3;filter:alpha(opacity=30);background-color:#ccc;position:absolute}.edui-default .edui-dialog-dragmask{position:absolute;background-color:transparent;cursor:move}.edui-default .edui-dialog-content{position:relative}.edui-default .dialogcontmask{cursor:move;visibility:hidden;display:block;position:absolute;width:100%;height:100%;opacity:0;filter:alpha(opacity=0)}.edui-default .edui-for-link .edui-dialog-content{width:420px;height:200px;overflow:hidden}.edui-default .edui-for-background .edui-dialog-content{width:440px;height:280px;overflow:hidden}.edui-default .edui-for-template .edui-dialog-content{width:630px;height:390px;overflow:hidden}.edui-default .edui-for-scrawl .edui-dialog-content{width:515px;*width:506px;height:360px}.edui-default .edui-for-spechars .edui-dialog-content{width:620px;height:500px;*width:630px;*height:570px}.edui-default .edui-for-insertimage .edui-dialog-content{width:650px;height:400px;overflow:hidden}.edui-default .edui-for-insertframe .edui-dialog-content{width:350px;height:230px;overflow:hidden}.edui-default .edui-for-wordimage .edui-dialog-content{width:620px;height:380px;overflow:hidden}.edui-default .edui-for-formula .edui-dialog-content{width:800px;height:400px;overflow:hidden}.edui-default .edui-for-attachment .edui-dialog-content{width:650px;height:400px;overflow:hidden}.edui-default .edui-for-map .edui-dialog-content{width:550px;height:400px}.edui-default .edui-for-insertvideo .edui-dialog-content{width:590px;height:420px}.edui-default .edui-for-insertaudio .edui-dialog-content{width:590px;height:420px}.edui-default .edui-for-anchor .edui-dialog-content{width:320px;height:60px;overflow:hidden}.edui-default .edui-for-searchreplace .edui-dialog-content{width:400px;height:220px}.edui-default .edui-for-contentimport .edui-dialog-content{width:620px;height:400px}.edui-default .edui-for-ai .edui-dialog-content{width:620px;height:400px;border-radius:0 0 10px 10px;overflow:hidden}.edui-default .edui-for-help .edui-dialog-content{width:400px;height:420px}.edui-default .edui-for-edittable .edui-dialog-content{width:540px;_width:590px;height:335px}.edui-default .edui-for-edittip .edui-dialog-content{width:225px;height:60px}.edui-default .edui-for-edittd .edui-dialog-content{width:240px;height:50px}.edui-default .edui-for-paragraph .edui-listitem-label{font-family:Tahoma,Verdana,Arial,Helvetica}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-p{font-size:22px;line-height:27px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h1{font-weight:bolder;font-size:32px;line-height:36px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h2{font-weight:bolder;font-size:27px;line-height:29px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h3{font-weight:bolder;font-size:19px;line-height:23px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h4{font-weight:bolder;font-size:16px;line-height:19px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h5{font-weight:bolder;font-size:13px;line-height:16px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h6{font-weight:bolder;font-size:12px;line-height:14px}.edui-default .edui-for-inserttable .edui-splitborder{display:none}.edui-default .edui-for-inserttable .edui-splitbutton-body .edui-arrow{width:0}.edui-default .edui-toolbar .edui-for-inserttable .edui-state-active .edui-splitborder{border-left:1px solid transparent}.edui-default .edui-tablepicker .edui-infoarea{height:14px;line-height:14px;font-size:12px;width:220px;margin-bottom:3px;clear:both}.edui-default .edui-tablepicker .edui-infoarea .edui-label{float:left}.edui-default .edui-dialog-buttons .edui-label{line-height:30px}.edui-default .edui-tablepicker .edui-infoarea .edui-clickable{float:right}.edui-default .edui-tablepicker .edui-pickarea{background:url(../images/unhighlighted.gif) repeat;height:220px;width:220px}.edui-default .edui-tablepicker .edui-pickarea .edui-overlay{background:url(../images/highlighted.gif) repeat}.edui-default .edui-colorpicker-topbar{height:27px;width:200px}.edui-default .edui-colorpicker-preview{height:20px;border:1px inset #000;margin-left:1px;width:128px;float:left;border-radius:3px;position:relative}.edui-default .edui-colorpicker-preview input{padding:0;left:0;border:0;position:absolute;top:0;width:100%;height:100%;border-radius:3px;opacity:0;cursor:pointer}.edui-default .edui-colorpicker-nocolor{float:right;margin-right:1px;font-size:12px;line-height:20px;height:20px;border:1px solid #333;padding:0 5px;cursor:pointer;border-radius:3px;box-sizing:content-box}.edui-default .edui-colorpicker-tablefirstrow{height:30px}.edui-default .edui-colorpicker-colorcell{width:14px;height:14px;display:block;margin:0;cursor:pointer;border-radius:2px}.edui-default .edui-colorpicker-colorcell:hover{width:14px;height:14px;margin:0}.edui-default .edui-colorpicker-advbtn{display:block;text-align:center;cursor:pointer;height:20px}.arrow_down{background:#fff url(../images/arrow_down.png) no-repeat center}.arrow_up{background:#fff url(../images/arrow_up.png) no-repeat center}.edui-colorpicker-adv{position:relative;overflow:hidden;height:180px;display:none}.edui-colorpicker-plant,.edui-colorpicker-hue{border:solid 1px #666}.edui-colorpicker-pad{width:150px;height:150px;left:14px;top:13px;position:absolute;background:red;overflow:hidden;cursor:crosshair}.edui-colorpicker-cover{position:absolute;top:0;left:0;width:150px;height:150px;background:url(../images/tangram-colorpicker.png) -160px -200px}.edui-colorpicker-padDot{position:absolute;top:0;left:0;width:11px;height:11px;overflow:hidden;background:url(../images/tangram-colorpicker.png) 0 -200px repeat-x;z-index:1000}.edui-colorpicker-sliderMain{position:absolute;left:171px;top:13px;width:19px;height:152px;background:url(../images/tangram-colorpicker.png) -179px -12px no-repeat}.edui-colorpicker-slider{width:100%;height:100%;cursor:pointer}.edui-colorpicker-thumb{position:absolute;top:0;cursor:pointer;height:3px;left:-1px;right:-1px;border:1px solid #000;background:#fff;opacity:.8}.edui-default .edui-autotypesetpicker .edui-autotypesetpicker-body{font-size:12px;margin-bottom:3px;clear:both}.edui-default .edui-autotypesetpicker-body table{border-collapse:separate;border-spacing:2px}.edui-default .edui-autotypesetpicker-body td{font-size:12px;word-wrap:break-word}.edui-default .edui-autotypesetpicker-body td input{margin:3px 3px 3px 4px;*margin:1px 0 0}.edui-default .edui-autotypesetpicker-body td button{border:0;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:4rem;-webkit-appearance:none;cursor:pointer;margin-bottom:5px;background-color:#EEE}.edui-default .edui-cellalignpicker .edui-cellalignpicker-body{width:70px;font-size:12px;cursor:default}.edui-default .edui-cellalignpicker-body table{border-collapse:separate;border-spacing:0}.edui-default .edui-cellalignpicker-body td{padding:1px}.edui-default .edui-cellalignpicker-body .edui-icon{height:20px;width:20px;padding:1px;background-image:url(../images/table-cell-align.png)}.edui-default .edui-cellalignpicker-body .edui-left{background-position:0 0}.edui-default .edui-cellalignpicker-body .edui-center{background-position:-25px 0}.edui-default .edui-cellalignpicker-body .edui-right{background-position:-51px 0}.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-left{background-position:-73px 0}.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-center{background-position:-98px 0}.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-right{background-position:-124px 0}.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-left{background-position:-146px 0;background-color:#f1f4f5}.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-center{background-position:-245px 0}.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-right{background-position:-271px 0}.edui-default .edui-toolbar .edui-separator{width:1px;height:20px;margin:5px;background:var(--edui-color-border)}.edui-default .edui-toolbar .edui-colorbutton .edui-colorlump{position:absolute;overflow:hidden;bottom:1px;left:5px;width:20px;height:4px}.edui-default .edui-for-emotion .edui-icon:before{content:"\e60e"}.edui-default .edui-for-emotion .edui-popup-content iframe{width:514px;height:380px;overflow:hidden}.edui-default .edui-for-emotion .edui-popup-content{position:relative;z-index:555}.edui-default .edui-for-emotion .edui-splitborder{display:none}.edui-default .edui-for-emotion .edui-splitbutton-body .edui-arrow{width:0}.edui-default .edui-toolbar .edui-for-emotion .edui-state-active .edui-splitborder{border-left:1px solid transparent}.edui-default .edui-hassubmenu .edui-arrow{height:20px;width:20px;float:right;font-family:edui-iconfont;font-size:12px;line-height:20px;text-align:center}.edui-default .edui-hassubmenu .edui-arrow:before{content:"\e665"}.edui-default .edui-menu-body .edui-menuitem{padding:1px}.edui-default .edui-menuseparator{margin:2px 0;height:1px;overflow:hidden}.edui-default .edui-menuseparator-inner{border-bottom:1px solid #e2e3e3;margin-left:29px;margin-right:1px}.edui-default .edui-menu-body .edui-state-hover{padding:0!important;background-color:var(--edui-color-active-bg);border-radius:3px;border:1px solid var(--edui-color-active-bg)}.edui-default .edui-shortcutmenu{padding:2px;white-space:nowrap;height:auto;background-color:#fff;border-radius:5px;box-shadow:0 0 10px rgba(0,0,0,.2)}.edui-default .edui-wordpastepop .edui-popup-content{border:0;padding:0;width:54px;height:21px}.edui-default .edui-pasteicon{width:100%;height:100%;background-image:url(../images/wordpaste.png);background-position:0 0;cursor:pointer}.edui-default .edui-pasteicon.edui-state-opened{background-position:0 -34px}.edui-default .edui-pastecontainer{position:relative;visibility:hidden;width:97px;background:#fff;border:1px solid #ccc}.edui-default .edui-pastecontainer .edui-title{font-weight:700;background:#F8F8FF;height:25px;line-height:25px;font-size:12px;padding-left:5px}.edui-default .edui-pastecontainer .edui-button{overflow:hidden;margin:3px 0}.edui-default .edui-pastecontainer .edui-button .edui-richtxticon,.edui-default .edui-pastecontainer .edui-button .edui-tagicon,.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon{float:left;cursor:pointer;width:29px;height:29px;margin-left:5px;background-image:url(../images/wordpaste.png);background-repeat:no-repeat}.edui-default .edui-pastecontainer .edui-button .edui-richtxticon{margin-left:0;background-position:-109px 0}.edui-default .edui-pastecontainer .edui-button .edui-tagicon{background-position:-148px 1px}.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon{background-position:-72px 0}.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-richtxticon{background-position:-109px -34px}.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-tagicon{background-position:-148px -34px}.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-plaintxticon{background-position:-72px -34px}.edui-quick-operate{position:relative;margin:-10px;height:40px;background:#FFF;width:50px!important;border-radius:4px}.edui-quick-operate:hover .edui-quick-operate-menu{display:block}.edui-quick-operate-status{display:flex}.edui-quick-operate-icon{display:inline-block;line-height:30px!important;width:30px!important;text-align:center;cursor:pointer;color:#2A57FE}.edui-quick-operate-icon:last-child{width:20px!important;font-size:0;color:#999}.edui-quick-operate-icon:last-child svg{vertical-align:middle}.edui-quick-operate-menu{border:1px solid #CCC;border-radius:5px;box-shadow:0 0 10px #CCC;position:absolute;left:50px;top:0;background:#FFF;width:100px!important;display:none}.edui-quick-operate-menu .item{height:30px;line-height:30px;padding:0 10px;cursor:pointer}.edui-quick-operate-menu .item:hover{background:#F5F5F5}.edui-quick-operate-menu .item i{display:inline-block;width:2em}.edui-quick-operate .icon{font-family:edui-iconfont;font-style:normal;-webkit-font-smoothing:antialiased}.edui-quick-operate .icon.icon-image:before{content:"\e605"}.edui-quick-operate .icon.icon-list:before{content:"\e87c"}.edui-quick-operate .icon.icon-trash:before{content:"\e87c"} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/dialog.css b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/dialog.css new file mode 100644 index 0000000..5ba6016 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/dialog.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +:root{--edui-primary-color:#1890FF;--edui-color-active-bg:rgba(200,200,200,.3);--edui-color-border:#EEE;--edui-bg-toolbar:#FFF;--edui-color-muted:#CCC}*{font-size:13px}@font-face{font-family:edui-iconfont;src:url("data:font/woff2;base64,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") format('woff2'),url("data:font/woff;base64,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") format('woff'),url("data:font/ttf;base64,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AADm+QAAAFMAAOb6AADm+gAAAFQAAOcEAADnBAAAADcAAOcGAADnBgAAAAYAAOcLAADnCwAAABoAAOcaAADnGgAAADwAAOc0AADnNAAAAAIAAOc1AADnNQAAAFAAAOc3AADnNwAAADQAAOdSAADnUgAAABkAAOd7AADnewAAAAwAAOeCAADnggAAAF0AAOetAADnrQAAAEsAAOe8AADnvAAAABMAAOfRAADn0QAAADUAAOfSAADn0gAAADYAAOfzAADn8wAAAGAAAOf0AADn9AAAADMAAOf1AADn9QAAAGEAAOf2AADn9gAAAGIAAOf3AADn9wAAAGMAAOf4AADn+AAAAGQAAOf8AADn/AAAAA8AAOg+AADoPgAAADoAAOhCAADoQgAAAE4AAOh7AADoewAAAB4AAOh8AADofAAAAFgAAOiRAADokQAAABcAAOi4AADouAAAAAQAAOkBAADpAQAAADAAAOkCAADpAgAAAAMAAOkrAADpKwAAAF8AAOnwAADp8AAAAFoAAOsJAADrCQAAADEAAOsKAADrCgAAADIAAOtsAADrbAAAABQAAOzpAADs6QAAADgAAO1RAADtUQAAAAgAAO37AADt+wAAAEoAAO38AADt/AAAAA4AAAAAAGQAogESAXYBwAIKAqYC0AMGA14DrARKBG4EqATOBQIFkAW2BdoGEgaQB2QHrgfoCGYJGAl+CdwKYgueDAYMXAziDWgNnA4oDoAPJA+0EEIQWhDiESQRrhIkEpwTmBPsFEgUpBUYFVoVlhXSFigWihcIF2wYIBh6GPIZahniGloarBseG/IcSBzOHUYdiB38Hj4emh7yH04f0iAUILAg9CFkIZohziIQInIisiMuI3ojpiO6JCglNCVqJawmXibKJyQngCfaKBwoiCjsKSYpwipGKpQq8gAAAAYAAAAAAzYC7gARABoAHQApADYAQgAAAScmIyEiBhURFBYzITI2NRE0AyERIRUUFjsBJzUXBTMyNjQmKwEiBhQWBxQWMyEyNjQmIyEiBgUhIgYUFjMhMjY0JgMtgwgM/lEMEBAMAjIMEDj+BgFRIRhwcHD+WqkMEBAMqQsRERERCwFSCxERC/6uCxEBbv6uCxERCwFSCxERAmSCCBEM/V4MERELAiIM/e8CanAXIThubnERFxERFxFwDBAQGBAQfRAXEREXEAAABgAAAAADPQLgAAMABwALAA8AHwAjAAABMxUjNzMVIwchFSEVIRUhASEiBhURFBYzITI2NRE0JgMhESEBUI2N042N0wFg/qABYP6gAcn9zhATExACMhATEzP+FAHsAlONakdpRkdGAjMUEP2IEBQUEAJ4EBT9hwIyAAAAAAYAAAAAA1sCtQASACIAJQBJAE0AUQAAEyEVMzU0JiMhIgYVERQWMyE1IRMjIgcDBxQWOwEyPwEzJyYXIzcFIzU0JisBIgYdASMiBh0BFBY7ARUUFjsBMjY9ATMyNj0BNCYHIzUzFyM1M+EBwzoOCv35Cw4OCwGk/n7ULwUBYgEEAyoEAhmYSwEFQiEBq2oDAysDA2kICwsIaQMDKwMDagcLC6hERHtERAJ6fqALDg4L/cgLDjsBwAT+4wICBARJ2ASwX4FHAwQEA0cLCIgICnYCBAQCdgoIiAgLdj4+PgAABgAAAAADcwK9AAsAGAAkADgAPQA+AAATITI2NCYjISIGFBYFNCYrASIGFBY7ARY2ByMiBhQWOwEyNjQmAScmBgcDBhUXHgEzPwI2NxM2JgcDBycTA+MCYBIbGxL9oBMaGwExGxPxEhsaE/ITGr5hEhsaE2ETGxsCAkUQKQ3YCAIBEgwEBmAPCNgLCVS/GgHAyAJhGyYaGiYb3BMbGyYaARvKGyYaGiYbAUwvDQYQ/tILD2UMEgEBIQUMAS4SJib+9gkYAQ3+zQACAAAAAAM7AqUAGgA1AAABFRQGIyIHMzIWHQEUBisBIiY9ATQ+AjMyFgUyNj0BNCYjIg4CHQEUFjsBMjY9ATQmKwE2AdQPC0wGUgsPDwvbCw8ePl08Cw8BTQsPDws8XT4eDwvbCw8PC1EGAotpCw+bDwveCw8PC95KelszD44PC2kLDzNbekreCw8PC94LD5sAAAAAAgAAAAADQQLoABgAMQAAATIWFxYVIzQnJicmIgcGBzMVIzUzFTY3NhMiJicmNTMUFxYXFjI3NjcjNTMVIzUGBwYCAFuRKStQHB00OZIyNixk8FAtT0IyW5EpK1AcHTQ5kjI2LGTwUC1PQgLoTUdKYj42OCAkERMsUPBkNhkV/VhNR0piPjY4ICQSEixQ8GQ2GRUAAAUAAAAAA3IC4AAcAC4ATQBnAGgAACUiJyYvASMiJj0BNDY7ATc2NzYzMhcWFREUBwYjASIGHQEUFjsBMh8CEQ8BBiMBIicuAT8BNjc2NCcmLwEmPgEWHwEWFxYUBwYPAQYjFyIuATc2NzY0JyYnJj4BFhcWFxYUBwYHBiMxAf8NDwwTnEciMDAiR5wSDQ8MEgsODgsR/uILEBALUgsIpAgIpAgLAVUICAkDBgsbChAPCBoPBgMTFgcNHgsTFAwfCgkOXQoQAggxGCAgGDEIAhEWCDYcJSUcNggNIAkHEIIwItkhMYEQCAgLDhr9phoNDAHoEAvZDBAIiQgCQgeKCP6+BQYXCQ8lFCFOHxMiEwoWDQMKEicZKWYrGioOC10OFwg5Lj+IPy84CRYPAQk+NkqgSjY+CQAAAAEAAAAAA0sCrQAXAAABISIGFBYzIQcGFBYyNwE2NCcBJiIGFBcC5P3SDRERDQIu3AgSGAoBDggI/vIKGBIIAZ4RGhHaChgSCAEOChgKAQ4IEhgKAAYAAAAAA5UCzgADAA8AEwAXABsAHwAAEzMVIwEzNSMVMxUhESERIRcRIREFMxUjJTMVIzczFSNsRkYBtzWwNf74Alb++ML+NwIyRkb+JVhYwlhYAbXCAZVGRiP93wIhR/5sAZRpwo1YWFgAAAUAAAAAA2sC6wAPABYAJQAuADcAABMhMhYVERQGIyEiJjURNDYBJwEhMjY1AyEiBhURFBY7AQEXETQmBTIWFAYiJjQ2FyIGFBYyNjQm+AIQKTo6Kf3wKTo6Alql/uUBnw0UIf3wDRQUDRQBeKUU/mcpOjpSOjopDRQUGxMTAus6Kf3wKTo6KQIQKTr946T+5RQNAjEUDf3wDRQBeaUBXQ0UQjpSOjpSOkIUGxMTGxQABAAAAAADcQLxABMAJwArADIAAAEhIg4BFREUHgEzITI+ATURNC4BExQOASMhIi4BNRE0PgEzITIeARUlIRUhHwEjFSM1IwLd/kYoQygoQygBuihDKChDIR0zHv6QHjMdHTMeAXAeMx3+IgFw/pC4bklKSQLwKEMo/kYoQygoQygBuihDKP3YHjMdHTMeAXAeMx0dMx4lSiWTuLgABQAA//UDigMKABQAKQA+AFMAZgAABSInJicmNDc2NzYyFxYXFhQHBgcGAyIHBgcGFBcWFxYyNzY3NjQnJicmAyImNjc+ATQmJy4BNjIXHgEUBgcGJyImNDc+ATQmJyY0NhYXHgEUBgcGJyImNjc2NCcuAT4BFx4BFAYHBgIAa1taNDY2NFpb1lxZNDY2NFlca1tPTC0uLi1MT7dOTSwvLyxNTiULEQEIJScnJQgBEBgILTAwLQhfCxEIFxgZFwgRFwgfISAfCGANEAMJEREJAw8XCRIVFRIICjY0WVzVXFk0NjY0WVzVXFk0NgLbLi1MT7dPTC0uLi1MT7dPTC0u/c4RFwgkW2RbJAgXEQgrcHxwKwg5EBcIGD9FPxgIFxEBCCBTW1IgCUgUFwcOKQ4HFxIDBw8pLSkPBgAAAAEAAAAAAqYCmQAUAAAlIicmND8BJyY0NjIfARYUDwEUBwYBjiMLERHCwhEiLhHlERHlDQdiCxItEsK3ES4iEeURLhHlBwMBAAMAAAAAA4wCygAIABgAIQAAATQmIgYUFjI2JREhNSE1Nxc3JwcRIRUXEQM3JwcXNxUzNQMIJzYnJzYn/WwBjP62xoQussYClEI5L5ubLkxCAgQbJyc2Jyfh/WxCVsaELrLGAV7nQgFr/bgum5suTLm5AAAAAQAAAAADmgLDABIAAAEjIgcBJyYrASIGFwEWMjcBNiYDkEYPCv5kxgoPRgUEAwESCR8KAegDBALCDP32+gwJBP6lDAwCawQJAAAAAAQAAAAAA4wCygAPABMAFwAbAAA3IiYnAzQ2NyUyFhcTFAYHASMRMwEhESERIRUhphMcAgEaEwK5ExwCARoT/duEhAIQ/jIBzv1sApQ2GhMCNRMdAQEaE/3LEx0BAYv+tgFK/rYCEIQADAAAAAADkQLAAAMACAAcACEAJwArADMAQABJAE0AUgBXAAAlFQcjJRUHIzUlITIWFxUjNTQnISIGBxUjNTQ2NycWFwE1ARUHNSYnAwE1AQUVByYnIzY3JzIeARQOASIuATQ+ARciBhQWMjY0JicHNTchByYnNyMHJic3ARAmVAL6ihb+jgEEGygDPAj++gMGATwlGxcDEv76AyCgAg7e/m4BPQHj4xASIRUNjCE3ICA3QjcgIDchGSMjMiMjy96KAnDOBxOTX2UeIlG6VCbfVYo+siUbsKoIAgQErKobKQKPIh7++1QBBVWhFBsXAZ3+blQBPjlV4wcCEhjGIDdCNyAgN0I3IDwjMiMjMiO03lSKziAbk2YSA1EAAAACAAD/9gOKAwoAEAATAAABIRUjESMRIxEjESIuATQ+AQEXBwHIAcJxcHFwNlo1NVr+5OHhAwpx/V0Co/1dAYo1WmtbNf6uxcQAAAAAAgAA//QDjAMMABAAEwAAASIOARQeATMRMxEzETMRMzUXBxcBOjVbNjZbNWNjY2PGxsYDDDZba1s1/nQCtf1LArVjlcbFAAAAAgAA/9EDrwLtABIAIQAAJRcHJwYjIicHESEHFjMyNjczBgEiBgcjPgEzMhc3ESE3JgLT3ELeVWeEXl4BEXNCYFN6EVwJ/s9TfBFcErN3gl5e/u9zQvHeQtw+Xl4BEXNCZk9NAV5mT3OeXl7+73NCAAUAAP/rA2IDFQAUABsALQBGAFQAAAEuAScmIyEiBhURFBYzITI2NRE0LwEWFyM1FhcTFAYjISImNRE0NjMhFRQWOwEDJzY1NC4BIg4BFB4BMzI2NxcWMj8BNjQnJSIuATQ+ATIeARQOASMDQBtTJS4a/ngaJSUaAkYaJSJoIRh5HiJXBwX9ugUHBwUBiA8KsVKPJi9QYFAvL1AwHi8VjwQMBBMEBP7oHzUfHzU+NR8fNR8CXyZTGyElGv1WGiUlGgHtGi0rIR96GCL9oQUICAUCqgUIsQsO/miOMD0wUS8vUV9RLw0PjwQEEwQLBIofND80Hx80PzQfAAAAAAsAAP/jA5kDIAAUACQAMgBAAE0AWgBnAHQAgQCOAJsAAAUlLgI1ETQ+ATMhMh4BFREUDgEjASIGFREUFjMhMjY1ETQmIwciJj0BNDYyFh0BFAYjISImPQE0NjIWHQEUBiMTIyImNDY7ATIWFAYjASEiJjQ2MyEyFhQGIwUjIiY0NjsBMhYUBiMzIyImNDY7ATIWFAYjMyMiJjQ2OwEyFhQGIwUjIiY0NjsBMhYUBiMhIyImNDY7ATIWFAYjAwL97yY+JChFKQIDKUUoKEUp/f0lNDQlAgMlNDQlXhEYGCIYGBH+rxAYGCEYGBHBJxEYGBEnERgYEQFc/TkRGBgRAscRGBgR/e4nERcXEScRGBgRticRGBgRJxEYGBG2JxEYGBEnEBgYEP6UJxEXFxEnERgYEQFsJxEYGBEnEBgYEB0BBClCJgHJKEUpKUUo/jcoRSkCuDUk/jckNDQkAckkNVgYEIwRGBgRjBAYGBCMERgYEYwQGP5EGCIYGCIYAS0YIhgYIhisFyIYGCIXFyIYGCIXFyIYGCIXgRgiGBgiGBgiGBgiGAAAAAABAAAAAAOAAwEAMQAAJSImJzM1ISY0NyE1IzY3NjMyFhc3LgEjIgcOAQcjFTMGFBcjFTMeARcWMzI3NjcnDgECgE+EI/b+7gMDARL2I0FDTzNcJUw1hEdSSkhrG5aDAwODlhtrSEpSSENBNEwlXWtRRFUYJhhVRCgpIx9LLzMhIHVKVRUsFVVKdSAhGhouTCEiAAAAAQAA//gDLAMEACEAAAERNCYHBQ4BFREmDgIeAT4BNzQ1ESURJg4CHgE+ATc0AysgFP6ADxMtYUIINV1fPAEBKi1hQgg1XWA7AQEAAdUVGQRVAxgP/pwVFEpjVCMbTzEMCwGzQv7RFhRLY1QjG1AxCwAAAAAEAAD//QODAwMAFAApAC0AUQAAATIXFhcWFAcGBwYiJyYnJjQ3Njc2FyIHBgcGFBcWFxYyNzY3NjQnJicmAxUjNRMWFxYVFAcGDwEGBxUjNTQ2PwE+AS4BBwYHBh0BIzQ2NzY3NgIAaVpYMzU1M1ha0lpYMzU1M1haaVdKSCosLCpISq5KSCosLCpISi1APSIaHhYLGQYVAkAMDSgQAxYeDxsLB0AOFRYhHQMDNTNYWtJaWDM1NTNYWtJaWDM1RCwqSEquSkgqLCwqSEquSkgqLP44REQBUgcbHyghGQ0PAw4UQFUPFgkbCyYVCAQFEw4ZDygtFhgIBgAAAAACAAAAAAOZAvwANgBxAAA3MjY1Njc2NxcWBi8BLgEHDgEfAR4BNz4CLwEuAQcuAQcGBy4BBwYHJy4BDgEfAQ4BBwYVFBYFBicmLwEuATYWHwEWNz4BJwMmPgEWFxMeAT4BLwE2NzYWHwEeAT4BLwE+ARYfAR4BPgEvATYWHwEWBmEKDQM7OWJYAQUCLBYzFhgBGH5Ip15KWhIdHRZQMQ0nFhAODisXDAsrDDdAGQwDSXAeIA8CeU1CSD9+CgESFQpXExQMCASGBAkWEgVfAxITCAMjCgoNFQUeBBISCQQYCBgVBRQEEhIJAw8XKw8YJkDxDgp6WFck8QMCAjAXBRMUOh2ZVjUiG2mPUk09MRERCwgGCxMMCAUIdiEbFzghCBxtSk5ZCg+SHBMUTZcMFhAECloTBwQVDAFvDBMICgv++gkIBxEJXwkDBQsOUgkIBxEKQgkJCw43CgcHEQkpCCUqQGqcAAQAAP/6A4YDBgAnACsALwBJAAABIzU0JiMhIgYdASMiDgEdARQeATsBFRQWMyEyNj0BMzI+AT0BNC4BJSEVIQEhNSEXFAYrATU0JiMhIgYdASMiJj0BNDYzITIWFQMgKhIM/lAMEiocLhwcLhwqEgwBsAwSKhwuHBwu/goBdP6MAXT+jAF0kBgSKhIM/lAMEioSGBgSAkASGAIK3gwSEgzeHC4ctBwuHHIMEhIMchwuHLQcLhzAwP4s5CoSGHIMEhIMchgStBIYGBIAAAMAAP/mA5oDGgAUACkAOwAAASIHBgcGFBcWFxYyNzY3NjQnJicmAyInJicmNDc2NzYyFxYXFhQHBgcGEyc1NCYiBh0BFB8BFjMyNzYmAgBvYF02ODg2XWDeYF02ODg2XWBvXlJPLzAwL09SvFJPLzAwL09STo4SGBISoAQIEwkFCQMaODZdYN5gXTY4ODZdYN5gXTY4/QgwL09SvFJPLzAwL09SvFJPLzABKkLODBISDOATCUwCEgsXAAAABgAAAAADaALoABsANQA+AEcAUABZAAABMhYXFhceAQ4BByoBIyYHKgEjLgI2NzY3PgE3Ig4BBw4BHgEXFjI3NhcWMjc+AiYnLgI3IgYUFjI2NCYXIgYUFjI2NCYhIgYUFjI2NCY3IgYUFjI2NCYCABsvDSNBHR4LMCEHDQaAgQUNByAvCx0dQCIOLxsxVS4rNDQUVTsLFwt2dwoXDDpWFDQ1Ky9UMxkjIzIjI68ZIyMyIyP9jxkjIzIjI68ZIyMyIyMBvBwXQiIPO0EuBA8PBC5AOw8jQRgcUDJWGBtqdFEIAgEODgECB1J0ahsYVjLcL0IvL0IvjC9CLy9CLy9CLy9CL4wvQi8vQi8AAAwAAP/0A3wDDAAiAEAASQBSAHYAggCOAJcAoACsAMYA2QAAJSImJyYnJi8BJicmJyYnND4BMh4BFRQHBgcGDwEGBwYHDgEDIg4BFRQXFhcWFzEWFxYXNjc2PwE2NzY3NjU0LgEHIiY0NjIWFAYnIgYUFjI2NCYTIS4BNRE0NjMhMhYUBiMhIgYVERQWMyEyNjURNDYyFhURFAYlIiY3ATYyFhQHAQYhIicBJjQ2MhcBFgYBIiY0NjIWFAYnIgYUFjI2NCYzIyImNDY7ATIWFAYHIicuATU0NyY1NDYyFhQXFhcxFhcWFRQHBicGBwYVFBcWFxYzMjY3NjU0JyYCxgYJARIhEycBEQgWBgIBMVRiUzEDBhcGEgEnEyERAQkGKUQoAwUSCBIhER0SEh0RIQIQBxIGAihEKCIxMUQwMCIVHR0pHR0u/c8iMDAiAUoHCQkH/rYUHR0UAjEUHQoNCjD9jAsICAGcBQ0KBf5kBQJsBwX+xwUKDQUBOQgI/eUbJyc3JiYcDRQUGxMTNEIHCQkHQgcKCkkaFBISVwUKDgkFBAkPBgsZEwooFREEBQkNEhcVAwMGBLoIBVVGKT0BGw0hJw4PMVQxMVQxDREnIQwbAT0pRlUFCAIxKEQpCw0hGg4bNCA4Pj44IDQDGQwbIQ0LKEUo5zBEMTFEMIQdKR0dKR39bAEwIgIPIjEKDgkdFf3xFR0dFQGcBwkJB/5kIjEhFQgBnAQJDgX+ZAUFATkFDgkE/scIFQHOJzYnJzYnYxQbExMbFAkOCgoOCecLCh4PLhAKCgcKCgwGBQkOCg8SJxALYgUKCAkFBgkGBwcIBQ0ICAYAAAAABgAAAAADagL3AAsAFwAjAC8APwBDAAABISIGFBYzITI2NCYnISIGFBYzITI2NCYnISIGFBYzITI2NCYDISIGFBYzITI2NCYFITI2NRE0JiMhIgYVERQWEyERIQKg/sAICwsIAUAICwsI/sAICwsIAUAICwsI/sAICwsIAUAICwsI/sAICwsIAUAICwv+AQKuCAsLCP1SCAsLGwKI/XgBSQsPCwsPC4oLEAsLEAuJCw8LCw8L/mQLEAoKEAu3CwgCyAgLCwj9OAgLAsn9XAAAAAUAAAAAA4UC+AALABcAIwAzADcAABMhMjY0JiMhIgYUFgEhIgYUFjMhMjY0JichIgYUFjMhMjY0JgEiBhURFBYzITI2NRE0JiMDITUhjgLkCAsLCP0cCAsLAuz9HAgLCwgC5AgLCwj9HAgLCwgC5AgLC/2WBwsLBwHgBwsLBxP+RgG6AtILDwsLDwv9XAsPCwsPC5kLDwsLDwsBlwsH/v0HCwsHAQMHC/7+3QAIAAAAAAOFAvgACwAXACMALwA7AEcAVwBbAAATITI2NCYjISIGFBYBIyIGFBY7ATI2NCYnIyIGFBY7ATI2NCYnIyIGFBY7ATI2NCYDIyIGFBY7ATI2NCYHISIGFBYzITI2NCYlITI2NRE0JiMhIgYVERQWEyERIY4C5AgLCwj9HAgLCwLsoAcLCwegCAsLCKAHCwsHoAgLCwigBwsLB6AICwsIoAcLCwegCAsLCP0cCAsLCALkCAsL/RQB3wgLCwj+IQgLCxoBu/5FAtILDwsLDwv+fQsPCwsPC4cLDwsLDwuICw8LCw8L/mkLDwsLDwuZCw8LCw8LdAsHAZgHCwsH/mgHCwGX/o4AAAAACAAAAAADhQL4AAsAFwAjAC8AOwBHAFcAWwAAEyEyNjQmIyEiBhQWEzMyNjQmKwEiBhQWNzMyNjQmKwEiBhQWNzMyNjQmKwEiBhQWEzMyNjQmKwEiBhQWBSEiBhQWMyEyNjQmAyEiBhURFBYzITI2NRE0JgMhESGOAuQICwsI/RwICwsIoAcLCwegCAsLCKAHCwsHoAgLCwigBwsLB6AICwsIoAcLCwegCAsLAuz9HAgLCwgC5AgLCwj+IQgLCwgB3wgLCxr+RQG7AtILDwsLDwv+WAsPCwsPC4cLDwsLDwuICw8LCw8L/mkLDwsLDwt0Cw8LCw8LAjALB/5oBwsLBwGYBwv+aQFyAAAAAAMAAAAAAy8C9wASABUAHgAAATQvASYvASEiBhURFBYzITI2NQMjNQERIRUUFjsBEQMuBIUECQH+TQgLCwgCOAgLOkz+TgGNCwhyAj4GBacFAQELCP04CAsLCAI0X/1/AqSVCAv+BAAABQAAAAADgQL4ABYALAA4AEQAYAAAASIGFREhETQmIgYVERQWMyEyNjURNCYDISIGFREUFjI2NREhERQWMjY1ETQmATMyNjQmKwEiBhQWEyMiBhQWOwEyNjQmJTQvAiYOARYfASMiBhQWOwEHDgEWMj8CNjcDbggL/mILEAsLCAHEBwsLB/48CAsLEAsBngsPCwv+qdYICwsI1ggKCt7WCAoKCNYICwv+fQMBYwYPCwIFPKMHCwsHozsGAgsPBWICAwEC9wsI/wABAAgLCwj+7ggLCwgBEggL/koLCP7uCAsLCAEA/wAICwsIARIICwE0Cw8LCw8L/joKEAsLEArTBAUCVgUBCxAFMwsQCzIFDwwEUwMDAgAAAAIAAAAAA6YC4AAxADoAACUnBxc3DgIHETM1IzU+ATU0JiIGFRQWFxUjFTMRLgInFzcnBxc3HgEXFjI3PgE3FwE0NjIWFAYiJgOlN3EPPBVcf0hgYCErNk03LCFgYEl/WxU9D3E3Hh4YaklLpkpJaxcf/j0jMSMjMSP/cDcfHkVrQAMBTSF1BjQiJjc3JiI0BnUh/rMDQGxEHh83cA89TnoiIyMie04+AZMYIyMxIyMAAwAAAAADtgLtACgARwBuAAAlIREnJic1Ji8BIisBJyYjByIHMQYPAgYWFxYzMj8BERQWMyEyNjQmNyYGDwERNCYjISIGFBYzIREXFhcVFh8BFjI/AjYmBTEyNj8BFx4BFzEyNjcTNi4BBgcDJy4BJzEiBg8BAy4BDgEXEx4BA2L9TgEBAgICAQECAgIBAQMCBAQBAkADBAYEBQsFHgoIAsQICgpBBw4EHgoI/TwICgoIArIBAQICAgEFCgYEQAME/eoJDwNPSQIPCgkPA3ACBg8NAmlIAw4KCQ8DUG0CDg4HA3QDDjgCGwIDAwEDAgIBAQEDAgIBcQcOBAIJNf4YCAoKDwv6BAQHNQHkCAoKDwv96QICBAEDAgICBQRxBw54Cwn28woLAQwJAVkHDQUHB/6/8woLAQwJ+AFFBwcFDQf+pQkLAAAAAAUAAAAAA3sC4QAVABgAMwBAAF8AAAEuAgYHAwYeATY/ASEXFjMyNz4BJyUbASUiBh0BLgEjIg4BFB4BMzI2NxUUFjI2PQE0JgciLgE0PgEyHgEUDgEDMB0BFh8CFjI2Ji8BITI2NCYjITc+AS4BDwIGFQGNBBAUEATKAwUNDQNCAQ5CBQsEAwYFAv6eeHkBgwcKFTkgJ0InJ0InIDkVCg4KCoYeMx0dMzwyHh4y+gECAloEDgoBBjYBHQcKCgf+4zcFAQkOBlsBAgIMCQsBCwr+LAYNBgUHmZkLAgMNBq4BGf7nWgoHIxgcJ0JOQiccGSQHCgoH/gcK/h4zOzMdHTM7Mx4CPAEBAgIESwQLDgUtCg4KMAQOCwEFTwIEBAAAAAUAAAAAA3sC4QAVABgAMwBAAFwAAAEuAgYHAwYeATY/ASEXFjMyNz4BJyUbASUiBh0BLgEjIg4BFB4BMzI2NxUUFjI2PQE0JgciLgE0PgEyHgEUDgEDIQcOARYyPwI2NzU0JzUnJg4BFh8BISIGFBYBjQQQExEEygMFDQ0DQgEOQgULBAMGBQL+nnh5AYMHChU5ICdCJydCJyA5FQoOCgqGHjMdHTM8Mh4eMuoBHDYFAQkOBVoCAgEDXAUOCQEFN/7jBwoKAgwJCwEMCf4sBg0GBQeZmQsCAw0GrgEZ/udaCgcjGBwnQk5CJxwZJAcKCgf+Bwr+HjM7Mx0dMzszHgIuLQUOCwRLBAICBgQEAk8FAQsOBDAJDwoAAAAAAQAAAAADrwGTAAsAAAEhIgYUFjMhMjY0JgOc/MgICgoIAzgICgoBkgoQCgoQCgAACgAA//ADoQMQAA8AEwAXABsALwAzADcAPABAAFsAAAEhIgYVERQWMyEyNjURNCYDIzUzJSMRMwMzFSM3MzI2NCYrAREhESMiBhQWOwEVISUjETM1IzUzKQEVITUjFSM1ASYGDwE1NCYiBh0BJy4BDgEfAjc2PwE2JicDjfzmCAwMCAMaCAwMHI2N/ZuNjY2NjbVjCAwMCGMBiGoIDAwIav54Aj2NjY2N/ckBgv54KI0BvAYRBRIMEQsUBREMAgY4CgoGAzUGAgYDEAwI/QgIDAwIAvgIDP0IhSgBdv5ihYUMEAwBdv6KDBAMha0BdiiFhYWFhf4WBQIGFa8IDAwIsBYHAQsRBkEFAQIEPwcQBQAHAAD/8AOhAxAADwATABgAHAAgACQAKAAAASEiBhURFBYzITI2NRE0JgchNSkCFSE1BzMVIxMVIzURMxUjKQERIQON/OYIDAwIAxoIDAwc/vUBC/3JAQT+9rWNjY2NjY0C8v3DAj0DEAwI/QgIDAwIAvgIDK2FhYWt/gGrhYX+Lf0CIwAKAAD/8AOhAxAADwAkACgALAAwADQAOAA9AEEAXAAAASEiBhURFBYzITI2NRE0JgUzFRQWMjY9ATMRIzU0JiIGHQEhEQMjETMDMxUjNyEVISUzFSMTIzUzKQEVITUjFSM1ATMHDgEWMj8BNicxJi8CJg4BFh8BIyIGFBYDjfzmCAwMCAMaCAwM/sVqDBAMjY0MEAz+eCiNjY2NjbUBiP54AbCNjY2Njf3JAYL+eCiNAWuwFgcBDBAGQQYBAQEDQQcQCwEHFa8IDAwDEAwI/QgIDAwIAvgIDNVgCAwMCGD+il8IDAwIXwF2/ooBdv5ihYWFhYUCS4WFhYWF/oUUBRENBTkGCQMDBTcGAgwRBRIMEQsAAAALAAD/8AOhAxAADwAjACcAKwAvADMANwA7AD8AQwBPAAABISIGFREUFjMhMjY1ETQmATUzMjY0JisBNSEVIyIGFBY7AR0CITUDMxEjEzUhFRczESMTIzUzIRUjNREzFSMhNTMVASMiBhQWOwEyNjQmA4385ggMDAgDGggMDP2wSQgMDAhJAXY9CAwMCD3+ir6Wlr4BdiiWlpaWlv2klpaWAlyW/rVQCAwMCFAJCwsDEAwI/QgIDAwIAvgIDP21pwwQDKenDBAMpyiFhQGe/ooBnoWFKP6KAZ6FhYX9tYWFhQF8DBAMDBAMAAAAAAsAAP/wA6EDEAAPABMAJwArAC8AMwA3ADsAPwBDAFAAAAEhIgYVERQWMyEyNjURNCYDFSE1NzU0JiIGHQEjETMVFBYyNj0BMxEBMxEjEzUhFRczESMTIzUzIRUjNREzFSMhNTMVASIGHQEUFjI2PQE0JgON/OYIDAwIAxoIDAza/orNCxEMpaUMEQup/cyWlr4BdiiWlpaWlv2klpaWAlyW/oUIDAwRCwsDEAwI/QgIDAwIAvgIDP2OhoYoSwgMDAhLAXY7CAwMCDv+igF2/ooBnoSEKP6KAZ6EhIT9toaGhgGtCwlQCAwMCFAJCwAAABMAAP9VA4AC8wALABsAHwAvADMAQwBHAFcAWwBrAG8AfwCDAJMAlwCnAKsAuwC/AAAFISImNDYzITIWFAYBIyIGHQEUFjsBMjY9ATQmByM1MxcjIgYdARQWOwEyNj0BNCYHIzUzFyMiBh0BFBY7ATI2PQE0JgcjNTMBIyIGHQEUFjsBMjY9ATQmByM1MxcjIgYdARQWOwEyNj0BNCYHIzUzFyMiBh0BFBY7ATI2PQE0JgcjNTMBIyIGHQEUFjsBMjY9ATQmByM1MxcjIgYdARQWOwEyNj0BNCYHIzUzFyMiBh0BFBY7ATI2PQE0JgcjNTMC5/1DCAoKCAK9BwoK/lu0CAoKCLQHCwsZkZEStAgKCgi0BwsLGZGRErQICgoItAcLCxmRkQEktAgKCgi0BwsLGZGRErQICgoItAcLCxmRkRK0CAoKCLQHCwsZkZEBJLQHCwsHtAgKChmRkRG0BwsLB7QICgoZkZERtAcLCwe0CAoKGZGRqwsOCwsOCwOdCgegBwoKB6AHCp983QoHoAcKCgegBwqffN0KB6AHCwsHoAcKn3wCIwoHoAcKCgegBwqffN0KB6AHCgoHoAcKn3zdCgegBwsLB6AHCp98AiMKB6AHCgoHoAcKn3zdCgegBwoKB6AHCp983QoHoAcLCwegBwqffAAAAAgAAAAAA5EC4QAPABMAFwAbAB8AIwAnADcAAAEhIgYVERQWMyEyNjURNCYBIzUzNSM1MxMjNTM1IzUzEyM1MzUjNTM3ISIGHQEUFjMhMjY9ATQmA2/9Ig4TEw4C3g0UE/3rsLCwsPCwsLCw8LCwsLBA/PADBQUDAxADBQUCMBMN/jANExMNAdANE/44oECg/oCgQKD+gKBAoPgFA1ADBQUDUAMFAAAAAAQAAP/9A4MC4AALABcAIwA8AAABISIGFBYzITI2NCYFISIGFBYzITI2NCYFISIGFBYzITI2NCYFIgYdAScmIgYUHwEWMj8BNjQmIg8BNTQmA3H9QQcLCwcCvwcLC/7g/loHCwsHAaYHCgoBEv1BBwsLBwK/BwsL/poICigFDwoFRgUPBUYFCg4GKAoC4AsOCwsOC7ALDgoKDguwCg8KCg8KsAoHhikFCw4FRwUFRwUOCwUphgcKAAAEAAAAAAODAvUACwAXACMAPAAAJSEiJjQ2MyEyFhQGJSEiJjQ2MyEyFhQGJSEiJjQ2MyEyFhQGJSImPQEHBiImND8BNjIfARYUBiIvARUUBgNx/UEHCwsHAr8HCwv+4P5aBwsLBwGmBwoKARL9QQcLCwcCvwcLC/6aCAooBQ8KBUYFDwVGBQoOBigKEwoOCwsOCq8LDgsLDguwCg8KCg8KsAoIhSgGCw4FRwUFRwUOCwYohQgKAAAACQAAAAADmQLVAA8AHwAvADAAOQA6AEMARABNAAABISIGHQEUFjMhMjY9ATQmAyEiBh0BFBYzITI2PQE0JgMhIgYdARQWMyEyNj0BNCYBIxQWMjY0JiIGEyMUFjI2NCYiBhMjFBYyNjQmIgYDkP24AwUFAwJIAwUFA/24AwUFAwJIAwUFA/24AwUFAwJIAwUF/Q04IS4hIS4hODghLiEhLiE4OCEuISEuIQLABQM4AwUFAzgDBf7kBQM4AwUFAzgDBf7kBQM4AwUFAzgDBQIUFyEhLiEh/s0XISEuISH+zRchIS4hIQAAAAYAAAAAA4ADAAADAA0AGQAlACkALQAAASEVIScVMxUjNTM1IzURNTM1IzUzFSMVMxUHIzUzNSM1MxUjNTMTIRUhFSEVIQFVAiv91YArgCsrVVWAVVUrVVVVgIBVgAIr/dUCK/3VAtVVgIArK1Ur/itqFipqFirrKxUrqysBgFbVVQAAAAMAAAAAA4EDAQAPABsAJQAAATIWFREUBiMhIiY1ETQ2MwUhETMVIxEhESM1MyUXIxEzByczESMDVRIZGRL9VhIZGRICgP2qq6sCVqur/tWAVVWAgFVVAwAZEv1WEhkZEgKqEhlV/wBW/wABAFbVgP8AgIABAAAAAAMAAAAAA4EDAQAPABsAJQAAATIWFREUBiMhIiY1ETQ2MwUhESE1MxUhESEVIzMXBzUhFSc3FSEDVRIZGRL9VhIZGRIBKv8AAQBWAQD/AFargID/AICAAQADABkS/VYSGRkSAqoSGVX9qqurAlargIBVVYCAVQAAAAEAAP/RA14DLQAxAAABJwEOAR4CNjcBPgEuAgYHAQ4BHgI2PwEnBw4BLgI2NwE+AR4CBgcBBiImNDcCfzb+9RYPDys7OhYBQSUZGUlhYiT+rjMjI2WIiDPnNuYlYWFIGRkkAVIWOzosDw8W/r8LIBYLAhg2/vQVOzosDw8WAUEkYmFJGRkl/q8ziIhlJCQy5zbnJBkZSGFhJAFSFg8PLDo7Fv6/CxYgCwAAAAACAAAAAAOcAqsAIQBDAAABFSMvASYnIwcGDwEjNTM3JyM1Mx8BFhczNj8CMxUjBxcFFSEvATQ+BDU0JiMiBwYHJzY3NjIWFRQOAwczNQJFhVUNBAIBBQUIU4tFaWNJlEoNBAIBAgQNS4pDYm0BkP7tAgIcKjAqHCAWGxkHDDgOFCp1SSU1NicCfAEjWocXBAcLCw2GWpuSWnoWBQcFBxZ6Wo+edW4OGSI5JCIZIREVGhUGDjEUDyNANSM4JB8lFCoAAAAAEgAA//gDiQMLAAUACQANABEAFQAbACEAJQApAC0AMQA2ADoAPgBCAEYASgBOAAATMzUiBhURMzUjEzM1IwMzNSMlIxUzJRUzNCYjATUjFBYzJzM1IwEjFTMTMzUjATM1IxEyNjUjETM1IxEzNSMDMzUjETM1IwURIREDIREhdlckM1dXr1dXr1dXAbVYWAEGVzMk/ZxXMyRXV1cBBldXV1hYAV5XVyQzV1dXV1evV1dXV/6jAbRX/voBBgKzWDQk/qNX/kxXAbVXr1hYWCQ0/O5XJDOuWAIMWP1GVwEGV/5MMyQBtVf+S1j++lcCY1iv/ksBtf6jAQYAAAAAAgAAAAADgQL4ACAARQAAJRUjLwEmJyMHBg8BIzUzNycjNTMfARYXMzY/ATMVIwcXARUhJyY1ND4ENTQmIyIHBgcnNjc2MzIWFRQOBAczNQJBfVAMBAECBAUIToFAY11Fi0YLBAIBAgRTgT9cZgF3/v4CAhonLicaHhQaFwcLNQ0TKTU3RRkmLCYcAXSSU34VBQYLCgx9U5OIVXMVBQYFBohVhpUBVWcODgkgNSIfFyAQExkUBQ4uEw8gPDEcMB0dFh4RKAAAAAAHAAAAAAOKAwMAGQAoAD8ASABRAGYAdAAAJSImJyY2PwERBwYuATY/ATYXFhURFAYPAQYjIi8BLgE+AR8BHgEHDgEhIiY1ETQ2PwE2HgEGDwERNzYeAQYPAQEiJjQ2MhYUBiciBhQWMjY0JgMnJicmJyY1ND4BMh4BFRQHBgcGBwMiDgEUFxYXNjc2NC4BAnkJDgIFCwvhZgoWCAoLjAsPCwwI9QIGBgL1CwoIFA30CwoEBBD+EQUXDAhBChYICgsvzQoWCQsK9QFJJDAwSDAwJA0PDxoPDw0UEyMyHyo1WmxaNSofMiMTFCdAJi8nNzYnMCZADAsICxYETAFOIQQKFRYELQcKCwv+dggPAlUCAlUEFBcKBFQFEw0ICw0PAYkJDwIZBAoVFgQR/rFGBQsVFgRUAd4wSDAwSDBwDxoPDxoP/qEWEy1ANkotNlo1NVo2LUo2QC0TAbomQExLP0BAP0tMQCYAAAAEAAAAAAN5AxcAEQAmACkAOQAAJTI2NTQnJicmJyY5AQYHBhQWJRYyPwE2NCcBJiIPAQYUHwEHBhQXNxchASEiBh0BFBYzITI2PQE0JgLwHiwLChAMDgsTEyUs/rsFDwXxBQX+wwIHAy0DAz/EBQX+qP6vAoH9HgMFBQMC4gMFBaUtHxEZFBcREQ4VGzU/LSoFBfEFDgUBPAMDLQIHAz/EBQ4Ftaj+lQUDSwMFBQNLAwUAAAAEAAD/9AOMAwwADAA0AEQAVAAAATIeARQOASIuATQ+ARcyNjQmKwEiJj0BNCYiBh0BFAYrASIGFBY7ATIWHQEUFjI2PQE0NjMlFB4BMj4BNRE0LgEiDgEVAxE0PgEyHgEVERQOASIuAQEZLUwsLExZTC0tTH8MExMMKgQGEhoSBgQpDRISDSkEBhMZEgYEAUIaLjYtGxstNi4aQixMWUwtLUxZTCwBPixMWUwtLUxZTCzEEhoSBgQqDBMTDCoEBhIaEgYEKQ0SEg0pBAYfGy0bGy0bAc4bLRsbLRv+MgHOLEwtLUws/jIsTC0tTAAAAAAEAAD/9AOMAwwADAA0AEQAVAAAATIeARQOASIuATQ+ARcyNjQmKwEiJj0BNCYiBh0BFAYrASIGFBY7ATIWHQEUFjI2PQE0NjMlFB4BMj4BNRE0LgEiDgEVAxE0PgEyHgEVERQOASIuAQLnLEwtLUxZTCwsTH8NEhINKQQGExkSBgQqDBMTDCoEBhIaEgYE/aYbLTYuGhouNi0bQi1MWUwsLExZTC0BPixMWUwtLUxZTCzEEhoSBgQqDBMTDCoEBhIaEgYEKQ0SEg0pBAYfGy0bGy0bAc4bLRsbLRv+MgHOLEwtLUws/jIsTC0tTAAAAAAEAAD/9AOMAwwADAA0AEQAVAAAATIeARQOASIuATQ+ARcyNjQmKwEiJj0BNCYiBh0BFAYrASIGFBY7ATIWHQEUFjI2PQE0NjMBIg4BFB4BMyEyPgE0LgEjJSEyHgEUDgEjISIuATQ+AQLnLEwtLUxZTCwsTH8NEhINKQQGExkSBgQqDBMTDCoEBhIaEgYE/gkbLRsbLRsBzhstGxstG/4yAc4sTC0tTCz+MixMLS1MAwwtTFlMLCxMWUwtxBIZEwYEKQ0SEg0pBAYTGRIGBCoMExMMKgQG/rQaLjYtGxstNi4aQixMWUwtLUxZTCwAAAAEAAD/9AOMAwwADAA0AEQAVAAAATIeARQOASIuATQ+ARcyNjQmKwEiJj0BNCYiBh0BFAYrASIGFBY7ATIWHQEUFjI2PQE0NjMBIg4BFB4BMyEyPgE0LgEjJSEyHgEUDgEjISIuATQ+AQLnLEwtLUxZTCwsTH8NEhINKQQGExkSBgQqDBMTDCoEBhIaEgYE/gkaLhsbLhoBzhstGxstG/4yAc4sTC0tTCz+MixMLS1MAT4sTFlMLS1MWUwsxBIaEgYEKgwTEwwqBAYSGhIGBCkNEhINKQQGAlAbLjUuGhouNi0bQi1MWUwsLExZTC0AAAADAAAAAANeAvMAHQAqADYAACUWFwYuAjURND4BMh4BHQEGBzU0JiIGFREUHgI3Mh4BFA4BIi4BND4BBzMyNjQmKwEiBhQWAf4OFiRMPiQqR1NIKSEdNk02EiEp2SpHKSlHVEcqKkcjmgwREQyaDBERTR0ZDQkrRCYBsCpHKipHKuEKFP8nNjYn/lAVJhsJ+SlHVEcqKkdURym3ERgRERgRAAAAAAUAAP/0A4wDDAATACgANQBCAE8AADcUHgEzITI+ATURNC4BIyEiDgEVAxE0PgIzITIeARURFA4BIyEiLgEBMhYdARQGIiY9ATQ2FzIWHQEUBiImPQE0NhMyFh0BFAYiJj0BNDa2Gy0bAc4bLRsbLRv+MhstG0IaLj0gAc4sTC0tTCz+MixMLQGMDhMTHBMTDg4TExwTEw4OExMcExOZGy0bGy0bAc4bLRsbLRv+MgHOID0uGi1MLP4yLEwtLUwBVRMOQg4TEw5CDhPGEw5jDRQUDWMOEwGtFA1jDhMTDmMNFAAAAAYAAP/6A4QDBAALABkAJQBQAHQAlwAAASEyNjQmIyEiBhQWBSEiDgEUHgEzITI2NCYDISIGFBYzITI2NCYlIgYHBhY2Nz4BHgEOASMiBhYzMh4BDgEmJy4BBhceAj4BJicmNz4BLgE3NCYiBhUUFjI2NTQ2MhYVFA8BDgEeATsBMjY0JisBIiY/ATYnIyImPQE0JisBIgYUFjsBMhYdARQGKwEiBhQWOwEyNjQmIwF0Ae4OExMO/hIOExMB/P4SCQ8JCQ8JAe4OExMO/hIOExMOAe4OExP9TRYkBQQUHAMCCw0HAQkHDg4ODgcJAQcNCwEEHBQEBR0nJBUBCwMDCgIRHzEnNyYOFQ4KDQoHRgQCBgwHUwoPDwoOBQUEGhMJCAMFGxIVCg8PCggEBAQECAoPDwpSCw4OCwJ3FBsTExsU1gkPEg8JExwT/ugUGxMTGxRKGxYOFAgNBwYCCg0IGRkIDQoDBwYOCBUOExoFECEnEAUFDyQgE9YcJiYcCg4OCgcKCgcMCVcFDwwIDhUOCgQhF9MEBG8TGg4VDgUDYwQFDhQPDxQOAAADAAD/9AOQAiUAHwAsADgAAAEGByMiLgE0PgEzITIeAgcmJzYuAiMhIg4BFB4BMyUyHgEUDgEiLgE0PgEHMzI2NCYrASIGFBYCKRUK8SxMLS1MLAHOKEgvCQ4aIAUKHCkW/jIbLRsbLRsBzixMLS1MWUwsLEwmpQ0SEg2lDBMTAR0eJC1LWkstJkNRJhcPFiwiFBstNi0bISxMWUwtLUxZTCzEEhoSEhoSAAAACAAA//QDjQMMAAwAGAA+AEYASgBSAFYAXgAAATIeARQOASIuATQ+AQczMjY0JisBIgYUFicjFTMWFyEiLgE1ETQ+ATMhMh4CHQEWBxUmJzUjFQYHNSMVMwYTMzU0LgErAQc1IxUnIyIOAR0BMwcVMzUDFRQeATsBNQLnLEwtLUxZTCwsTCalDRISDaUMExN+bXkSHf7ULEwtLUwsAc4gPS4aAQEdJaUkHsaMFZGlGy0bQkLGQkIbLRulpaWlGy0bQgE+LExZTC0tTFlMLMQSGhISGhJhpSUdLUwsAc4sTC0aLj0gXQYGwx0SeW0KFYzGHgEmQhstG6WlpaUbLRtCQsbG/vhCGy0bpQAAAAkAAAAAA4wC2wAAAA0AGQAaACcAMwA0AEEATQAAEyMUHgEyPgE0LgEiDgEFITI2NCYjISIGFBYHIxQeATI+ATQuASIOASUhIgYUFjMhMjY0JgEjFB4BMj4BNC4BIg4BJSEiBhQWMyEyNjQmx1MXJiwmFhYmLCYXARkB3g0TEw3+Ig4TE7hTFyYsJhYWJiwmFwL3/iIOExMOAd4NFBT9T1MXJiwmFhYmLCYXAvf+Ig4TEw4B3g0TEwKIFicWFicsJhYWJjcTGxQUGxPnFiYWFiYsJhYWJgsTHBMTHBP+1xYmFhYmLCcWFicLExsUFBsTAAEAAP/2A2gDCwAoAAABJg8BBicuAQYHDgIWFxY+ASYnLgE+ATc+ARceAQ8BBhY7ATI2PQE0A14LB1YEBUSWkz9PWQFXTw0iFAUOPkYBRz9Fpk0EAgM9CAkL3AcKAwYEB1YEAyMRJSw4rcKuOQoFGyIKLoqbiS0wFCABCQM9CBQKBt0LAAoAAP/0A40DDAAHAAsADwATABsAHwA6AEIARgBOAAAlFTMyPgE9ASsBFTM3MzUjBzUjFQEzNTQuASsBBzUjFQEVFA4BIyEiLgE1ETQ+ATMhMh4CHQEWBxUWASMiDgEdATMHFTM1AxUUHgE7ATUCpUIbLRvnxsZCpaVCxgEIpRstG0JCxgHvLUws/jIsTC0tTCwBziA9LhoBAQH9zkIbLRulpaWlGy0bQtulGy0bQqXnxsbGxgEIQhstG6Wlpf7RXSxMLS1MLAHOLEwtGi49IF0GBvwGAc4bLRtCQsbG/vhCGy0bpQAAAAABAAD/9wNpAwsAJwAAAS4BBgcGLwEmBh0BFBY7ATI2LwEmNjc2FhceAgYHDgEeATc+AS4BAr8/k5ZEBQRWBxUKB90LCAg9AwIETaZFP0cBRj4NBBMhDU9YAVoCjywlESMDBFYHCAvdBwkUCD0DCQEfEzAtiZuKLgohGgYJOa7CrQAAAAAFAAD/9AOMAwwAGgAmADQAPQBAAAABIgYVIyIGFREUFjMhNSERIRUzNTQmKwE0JiMHIgYUFjsBMjY0JiMXIgYVERQWOwE3NTQmIwUhFSMiBh0BIzczBwFsFxuUFhwcFgEp/tcB7jIbF5QbFq0MDQ0M9wsNDQsYFhsbFpXGHBb+1wEpfBYbfK1QUAMMHBYbFv3gFhwyAiCVlRYbFhyVDRcNDRcNlBsX/nUWHMb3Fxsy3hsWfHxQAAAAAwAAAAADaALpABUAKQA5AAAlNTQ2MhYdARQGIyEiJj0BNDYyFh0BEwcOAS4CNj8BNjIWFREUBiImNRMuAT4CFh8BHgEOAiYnAxgXIhcXEf2AERcXIhfwrAcVFQ8GBgjwDCAYFyIXlQcEBxEWFAdkBwQHERYUB2hQERcXEXgRFxcReBEXFxFQAferCAYGDxUVB/AMFxH+IBEXFxEBTgkVFA4ECAh4CRUUDgQICAAAAAADAAD/9gOKAu4ADQAuADwAAAEhFRQWFzMVMzUzPgE3JTQ3NjchBzczBgcGFzMVDgEHIxUUBiMhIiY9ASMuASc1MyEmNzY3Iwc3IQYHBhUDUv1dIBip4agYIAH9Wg4TNgFuDWG5IAwIAj4BQDBwEAz+5gwQcDBAAW4CMAMJBQtUwxn+9CIODAG4qBggAaioASAY4T4yR0Y+PjlUODjhMEABjQwQEAyNAUAw4Tw8KCR8fDIxKjgAAAAABgAAAAADlQLbABUAKwA3AEMATwBbAAABMjY0JiIHPgE3PgE0JiMiBgcGFRQWIzI2NCYiBz4BNz4BNCYjIgYHBhUUFiUzMjY0JisBIgYUFhczMjY0JisBIgYUFgUhMjY0JiMhIgYUFhchMjY0JiMhIgYUFgHQJzcvSRIJPSsMDxMQLE8XGD7HKDYvShIKPSwLEBQQLU4XGT8B6OMNEhIN4wwSEgzjDRISDeMMEhL+AwLsDRISDf0UDRISDQLsDRISDf0UDRISAbAxTi8cKzQCAQ8YDy8oKjI1QjFOLxwrNAIBDxgPLygqMjVC7RIZEhIZEtIRGhERGhHTEhkSEhkS0hEaEhIaEQAABAAA/8cDaALoAAwAGAAoACwAAAEyHgEUDgEiLgE0PgEXIxUjFTMVMzUzNSMBMhYdARQGIyEiJj0BNDYzFxUhNQIANlw2NlxsXDY2XF5QUFBQUFABGBEXFxH9gBEXFxEoAjABWDZcbFw2NlxsXDZQUFBQUFACMBcR8BEXFxHwERdQoKAABAAA//UDjQMLABsANwBSAHEAABMyNj0BFxYyNjQvATMyNjQmKwEiBwYHBh0BFBYFIgYdAScmIgYUHwEjIgYUFjsBMjc2NzY9ATYmJQc1NCYiBh0BFBcWFxY7ATI2NCYrATc2NCYGATQ1FSYnJisBIgYUFjsBBwYUFjI/ARUUFjI2PQEnJpUNE7wJHRMKvIcMFBQM1ggCDAgCFALiDRPJCRoTCcmJDBQUDNYIAg8CAwES/gbJExkUAggKBAbWDBQUDInJCRMXAgEHCwQG2AwUFAyJvAkSHgi8ExoTAgEB9RQMibwIEhkKvBMZFAIGDAQI1gwU6hQMickJExoJyRMZFAIICgQG2AwUIsmHDBQUDNYIAg8CAxQZE8kKGRMBAcABAQIOAwMUGRO8ChkTCbyHDBQUDNYFBAAABAAA//8DgQNWAA8AEwAgACwAAAEyFhURFAYjISImNRE0NjMFIRUhATIeARQOASIuATQ+ARcjFSMVMxUzNTM1IwNVEhkZEv1WEhkZEgKA/aoCVv7VOmI5OWJ0Yjk5YmVWVVVWVVUBVRkR/wASGRkSAQARGVWrAwA5YnRiOTlidGI5VVVWVVVWAAcAAP//A4EDAQAPABMAIwAnADMAPwBLAAABISImPQE0NjMhMhYdARQGJRUhNQEjIiY1ETQ2OwEyFhURFAYDETMRKQEiJjQ2MyEyFhQGByEiJjQ2MyEyFhQGByEiJjQ2MyEyFhQGAyv9qiMyMiMCViMyMv2HAlb+VasjMjIjqyMyMs6rAdX/ABMXFxMBABQXFxT/ABMXFxMBABQXFxT/ABMXFxMBABQXFwIAMiNWIzIyI1YjMqtWVv1VMiMBACQyMiT/ACMyAVX/AAEAGCYYGCYYqhcnFxcnF6sXJxcXJxcABwAAAAADgAMAAAMABwALAA8AEwAXABsAAAERIxE3IREhESE1IQUhFSEVIRUhFSEVIQUhFSEDK4DV/tUBK/0AAwD+gP6AAYD+gAGA/oABgAGA/QADAAIA/wABAFX+VgIAVatVVVZVVVZVAAAABwAAAAADgAMAAAMABwALAA8AEwAXABsAAAERIxE3IREhASE1IRUhFSEVIRUhFSEVIRUhFSEBVYDW/tUBKwHV/QADAP6AAYD+gAGA/oABgP0AAwACAP8AAQBV/lYCAFWrVVVWVVVWVQAKAAAAAAOAAwAAAwAHAAsADwATABcAGwAfACMAJwAAAREjETchESETITUhBSMVMxUjFTMVIxUzASMVMxUjFTMVIxUzFSEVIQJAgNX+1gEq6/0AAwD9lZWVlZWVlQJrlZWVlZWV/QADAAIA/wABAFX+VgIAVatVVVZVVQGqVVVWVVVWVQAEAAD//wOAAwEAIgAuADoARgAAAScmDwEGFjsBMhURFAYrASIGHwEWPwE2JisBIjURNDsBMjYXFRQzITI9ATQjISITITI9ATQjISIdARQXITI9ATQjISIdARQBrI8DA5ACAgNlBAICZQMCApADA48CAgNlBARlAwJ9BAFNBAT+swQEAU0EBP6zBAQBTQQE/rMEAm6PAwOPAgYE/jwCAgYCjwMDjwIGBAHEBAYbTQQETQT/AAVMBQVMBaoETQQETQQAAAAAAwAA//QDjAMNAA8AFAAoAAABISIGFREUFjMhMjY1ETQmAxEhESEFIgYUFjsBERQWMjY1ETMyNjQmIwNM/WgbJSUbApgbJSUb/WgCmP4UDRMTDYATGhOADRMTDQMMJRv9aBslJRsCmBsl/nT+tAKYoBMaE/7QDRMTDQEwExoTAAAFAAD/5wOZAxkAFAApADIAOwBPAAABIgcGBwYUFxYXFjI3Njc2NCcmJyYDIicmJyY0NzY3NjIXFhcWFAcGBwYDMjY0JiIGFBYhMjY0JiIGFBYXDgEiJicuAQ4BFx4BMjY3Ni4BBgIAb19dNjg4Nl1f3l9dNjg4Nl1fb1lNSywtLSxLTbJNSywtLSxLTd0WHx8sHx8BHhYfHywfHxwZSVBJGQshGQMLJWh0aCULAxkhAxk4Nl1f3l9dNjg4Nl1f3l9dNjj9HS0sS02yTUssLS0sS02yTUssLQFkHywfHywfHywfHywfdx8iIh8MAxUgDSwxMSwNIBUDAAQAAAAAA50C0gALABcAIwAvAAAlIQYmNDYzITIWFAYnISImPgEzITIWFAYDISImPgEzITIWFAYHISImPgEzITIWDgEDc/0aEhcXEgLmEhgZEf0aEhgBFxIC5hIYGRH9GhIYARcSAuYSGBkR/RoSGAEXEgLmEhgBGC8BHCgbGygbvhwoGxsoHAGGGygcHCgbvxsoHBwnHAAAAgAAAAADrALbAAkAFwAANwcnNxcTIRUhAz8BJyEXBycjFwczNxcHqTsBbhx2Aj79/Z/Bgn4BVy9FHKhXVKYbRTD9AUsCRAHVS/2HONzxcR5Dp489H2kAAAEAAAAAA1YCQAAFAAAlAScJAQcCAAFVOf7k/uQ5wQFINv7vARE2AAADAAAAAAOAAwEAFAApAEYAAAEiBwYHBhQXFhcWMjc2NzY0JyYnJgMiJyYnJjQ3Njc2MhcWFxYUBwYHBhMmIg8BJyYiBhQfAQcGFBYyPwEXFjI2NC8BNzY0AgBoWVczNTUzV1nQWVczNTUzV1loWEtIKisrKkhLsEtIKisrKkhLSAoZCnNzChkUCnNzChQZCnNzChkUCnNzCgMANTNXWdBZVzM1NTNXWdBZVzM1/UArKkhLsEtIKisrKkhLsEtIKisB4AoKc3MKFBkKc3MKGRQKc3MKFBkKc3MKGQAACgAAAAADgAMmACQALABFAFUAXwBpAIoAkgCzALsAAAEiJjU0LgEjIiY0NjMyPgE1NDYyFhUUHgEzMhYUBiMiDgEVFAYnFhc2NyYnBgEiJjQmIiY0NjI2NDYyFhQWMhYUBiIGFAYFASYiDwEGFBcBFjI/ATY0ATc2Mh8BBycmNAEHBiInATcBFhQBIiY1NCYjIiY0NjMyNjU0NjIWFRQWMzIWFAYjIgYVFAYnFhc2NyYnBhMiJjU0JiMiJjQ2MzI2NTQ2MhYVFBYzMhYUBiMiBhUUBicWFzY3JicGAlUJDB0wHQkMDAkdMB0MEQ0cMRwJDAwJHDEcDTsgExMfHxMT/m0JDA0RDQ0RDQwRDQwSDAwSDA0Ctv5BEjUSGRISAb8SNRIZE/3aGQYRBzw2PQYB+xkGEQb+nDYBZAb9rgkMJRoJDAwJGiUMEgwlGgkNDQkaJQweDAkJDAwJCQkJDCUaCQwMCRolDBIMJRoJDQ0JGiUMHgwJCQwMCQkB/wwJHDEcDBIMHTAdCQwMCR0wHQwSDBwxHAkMkxMfHxMTICD+2wwSDA0RDA0RDQ0RDQwRDQwSDPsBvxMTGRI1Ev5BEhIZEjUBmhkGBjw3PQYR/kMZBgYBZDf+nAcRAgMMCRolDRENJRoJDAwJGiYMEQ0lGgkMaQkMDAkKDAz95wwJGiUNEQ0lGgkMDAkaJQ0RDSUaCQxqCgwMCgkMDAADAAAAAAOrAysAEgAXABsAAAEGBwEGFh8BFjMhNSMBNjQnASYDIycBFzcnNxcCVBIM/isMAQyrDBICAMQBNw0N/tUMebKBAQ3mPelV7QMrAQ3+AA0iDKsMVQE3DSMMASsN/VWBASXmPOld7QAGAAAAAAOmAm4AAwAHABMAGwAnAC0AABMRIREFIREhExUzNTMVMzUjFSM1MxUzFTM1MzUzFTM1FzcVMzUjByczFTM1IzVaA0z86QLi/R5PNRo1NRppGzQbGjUaGjU1GhqEaTUCbf4mAdo0/o4BItJPT9JPTzSenjTSeiIietIiItI0ngAIAAAAAANwAwwACwAXACQAPQBVAGIAbgB6AAAlBwYiJjQ/ATYyFhQXFRQGIiY9ATQ2MhYnFAYrASImNDY7ATIWBRQPAQYiLwEmJzcXFjI/ATY0LwE3Fh8BFgEHJyYiDwEGFB8BByYvASY0PwE2Mh8BFgUUBisBIiY0NjsBMhYnFRQGIiY9ATQ2MhYXBwYiJjQ/ATYyFhQBU3EFCwkEcQULCEcIDAgIDAhjCAaNBggIBo0GCAIuJUElaiWTCglqeAwkDEEMDHkIEAmUJf7wangNIg1BDAx5CBAJlCUlQSVqJZMKASAIBo0GCAgGjQYI8AgMCAgMCLRxBQsIA3EFCwnacQQJCwVxBAkLF40GCAgGjQcHB1wGCAgMCAg+NSVAJSaTCg8IeQwMQA0iDXlqCgmUJgELCHkNDEEMIwx5agkJlSZpJEEkJZQJNQYICAwICOqNBggIBo0HCAhJcQQIDARxBAgMAAUAAAAAA3cCygAPAB8ALwA/AEsAAAEhMjY9ATQmIyEiBh0BFBYHFBYzITI2PQE0JiMhIgYVASEiBh0BFBYzITI2PQE0JgMhIgYdARQWMyEyNj0BNCYlNzY0LwEmBh0BFBYBnwHCAwQEA/4+BAQEBAQEAcIDBAQD/j4EBAHZ/SEEBAQEAt8DBAQD/SEEBAQEAt8DBAT9M5IDA5IFCQkBwgQDNQMEBAM1AwTAAwQEAzUDBAQDAZMEAzUDBAQDNQME/bAFAzQEBAQENAMFjHMDCAJ0AwQF5wYEAAQAAAAAA5EC4wAPAB8ALwA/AAABISIGHQEUFjMhMjY9ATQmAyEiBh0BFBYzITI2PQE0JgchIgYdARQWMyEyNj0BNCYDISIGHQEUFjMhMjY9ATQmA4j+EAMFBQMB8AMFBQP+EAMFBQMB8AMFBQP88AMFBQMDEAMFBQP88AMFBQMDEAMFBQLiBQM4AwUFAzgDBf5YBQM4AwUFAzgDBdQFAzgDBQUDOAMFAagFAzgDBQUDOAMFAAQAAAAAA5EC4wAPAB8ALwA/AAABITI2PQE0JiMhIgYdARQWATI2PQE0JiMhIgYdARQWMwUhIgYdARQWMyEyNj0BNCYDISIGHQEUFjMhMjY9ATQmAQgB8AMFBQP+EAMFBQHzAwUFA/4QAwUFAwKA/PADBQUDAxADBQUD/PADBQUDAxADBQUCmgUDOAMFBQM4AwX+WAUDOAMFBQM4AwWMBQM4AwUFAzgDBQGoBQM4AwUFAzgDBQAAAAAEAAAAAAORAuMADwAfAC8APwAAEyEyNj0BNCYjISIGHQEUFhMhMjY9ATQmIyEiBh0BFBYFISIGHQEUFjMhMjY9ATQmAyEiBh0BFBYzITI2PQE0JngB8AMFBQP+EAMFBQMB8AMFBQP+EAMFBQMT/PADBQUDAxADBQUD/PADBQUDAxADBQUCmgUDOAMFBQM4AwX+WAUDOAMFBQM4AwWMBQM4AwUFAzgDBQGoBQM4AwUFAzgDBQADAAAAAAN3AvcADwAnACsAACUhIgYdARQWMyEyNj0BNCYlMzI/ATMXFjsCPgEnAyYrASIHAxUUFhMzFyMDcP0hBAQEBALfAwQE/ZtQBgIzzTICB1MDBAMBwwIHYAYCxAX0BE6iYwQDSwQEBARLAwRLBpycBgIHAwI3Bgb9yQMEBQHk9wADAAD/nwPhA1wAFAAuAEQAAAEnJg4CFREUHgEyPwE2NzY0JyYnAyIHDgEHBhQXHgEXFjI3PgE3NjQnLgEnJiMRIicmJyY0NzY3NjIXFhcWFAcGBwYjAprdCRQTCQoRFQjfCwMGBQQMmGFZVYUkJiYkhVVZwllWhSQmJiSFVllhcWJeODk5OF9h42JeODk5OF9hcgGOzwUBCxEL/m8KEgsFxAoFCRMIBQsBziYkhVVZwllWhSQmJiSFVlnCWVWFJCb8fzk4X2HjYl44OTk4X2HjYV84OQAAAAACAAD/xwO5AzkACwBHAAAlISIGFBYzITI2NCYBMzIWFREUFxYXFjI3Njc2NRE0NjsBMjY0JisBIgYUFjsBMhYVERQOASIuATURNDY7ATI2NCYrASIGFBYDivzsExwcEwMUExwc/OszBAYrKkdJrElHKisGBDMTHBwT1xMcHBMzBAY8ZnhmOwUEMxMcHBPXExwcJRsnHBwnGwK2BgP+wFZJSCkrKylISVYBQAMGGyccHCcbBgP+wDxmPDxmPAFAAwYbJxwcJxsAAAEAAP/8A4QDBAAlAAABIyIGFBY7ATIWBwEGKwEiBhQWOwEyNjQmKwEiJjcBNjsBMjY0JgNa/BEYGBEkBQUD/okFCV4RGBgR/BEYGBEkBQUDAXcFCV4RGBgDAxgiGAkE/bMIGCIYGCIYCQQCTQgYIhgAAAAAAwAA/+kDlwMXACoANwBhAAABDgEXFgYPAQYiLwEmND8BPgEXFj4BJicmBg8BDgEWHwEeATY/AT4BJy4BBxYyNwE2NCYiBwEGFAEnLgEGDwEOARceAT4BJyY2PwE2Mh8BFhQPAQ4BJyYOARYXFjY/AT4BJgIPDgwGBAQIahY+FlAWFmoIFwoPHAwMDiBDGGodFBQdUBxOTR1qGA0NBhy9Cx8LASQKFh4L/twLAhBQHE5NHWoYDQ0GHB0MBgQECGoWPhZQFhZqCBcKDxwMDA4gQxhqHRQUARMGHQ4KFwhqFhZQFj4WaggEBAYMHRwGDQ0Yah1NThxQHRQUHWoYQyAODDgLCwEkCx4WCv7cCx8BqlAdFBQdahhDIA4MDB0OCxYIahYWUBY+FmoIBAQGDB0cBg0NGGodTU4AAQAA/+IDngMeAFsAAAE0JiMhIicmJyYnJicmNTQ3NjM2FhcWBxUUFjI2PQE2JicmIyIOARUUFxYXFgYrASIGFBYzITIXHgEXFAcGBwYjIicuATc2LgEGBwYWFxYzMj4BNTYnJjY7ATI2A50aEv7GBQUaNDkcJRETLB8xHDgYFgYaJBoEFRg1dkBgNCsgQgUEBuISGhoSAYIDAh8kASAZKxseYiUQCwQCFyQcAgcXHUCISHA9AR8CBQXVEhoBXxIaAxIgIxUcGR0hNBcPBA4RHyYLEhoaEgkkRhs1LFA2QzcqLAQNGSUZAhVAJTQfGAsGKRQyGRIcBBcSLFUiRjVgPzszBQgaAAAAAwAAAAADnwLQABUAKwAsAAAlIicBJjQ3AT4BHgEPAQYUHwEeAQ4BMyIuATY/ATY0LwEmPgEWFwEWFAcBBhMBnBMN/vwWFgEEDSQaAQ3yBQXyCQUKFrsNFgoECvIFBfINARokDQEEFhb+/A3SMA0BDBdAFwEMDAEZJQ35BQ4F+QoaGA8PGBoK+QUOBfkNJRkBDP70F0AX/vUOAUoAAwAA//wDLQMEACAAMABAAAABPgEuASMhIgYUFjsBMhYVERQGKwEiBhQWMyEyPgIuAQMeAhQOAQcjIiY9ATQ2MxMjIiY1ETQ2OwEeAhQOAQKrLBkvZz7+5hEYGBEiAwUFAyIRGBgRAUkyWj8XFz29ITghITghlgMFBQPFxQMFBQPFJT8lJT8Boix7c0cYIhgFA/2uAwUYIhgsT2NiTwElASE5QjkhAQUD6AMF/Z4FAwEHBAUBJkBLPyYAAAAAABIA3gABAAAAAAAAABMAAAABAAAAAAABAA0AEwABAAAAAAACAAcAIAABAAAAAAADAA0AJwABAAAAAAAEAA0ANAABAAAAAAAFAAsAQQABAAAAAAAGAA0ATAABAAAAAAAKACsAWQABAAAAAAALABMAhAADAAEECQAAACYAlwADAAEECQABABoAvQADAAEECQACAA4A1wADAAEECQADABoA5QADAAEECQAEABoA/wADAAEECQAFABYBGQADAAEECQAGABoBLwADAAEECQAKAFYBSQADAAEECQALACYBn0NyZWF0ZWQgYnkgaWNvbmZvbnRlZHVpLWljb25mb250UmVndWxhcmVkdWktaWNvbmZvbnRlZHVpLWljb25mb250VmVyc2lvbiAxLjBlZHVpLWljb25mb250R2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20AQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdABlAGQAdQBpAC0AaQBjAG8AbgBmAG8AbgB0AFIAZQBnAHUAbABhAHIAZQBkAHUAaQAtAGkAYwBvAG4AZgBvAG4AdABlAGQAdQBpAC0AaQBjAG8AbgBmAG8AbgB0AFYAZQByAHMAaQBvAG4AIAAxAC4AMABlAGQAdQBpAC0AaQBjAG8AbgBmAG8AbgB0AEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAAt0ZXh0LXNocmluawt0ZXh0LWV4dGVuZAl0cmFuc2xhdGUOY29udGludWUtd3JpdGUFcXVvdGEHcmVmcmVzaARiZWxsD3JpZ2h0LWRpcmVjdGlvbgVyb2JvdAVpbWFnZQ5jb250ZW50LWltcG9ydAVzb3VuZAVyaWdodA9pY19pbWFnZV91cGxvYWQFY2hlY2sGaWZyYW1lCmJhY2tncm91bmQDbHRyA3J0bAtmaW5kcmVwbGFjZQlpY3ByZXZpZXcFcmlxaTILZXVyby1zeW1ib2wFbXVzaWMEaGVscAloYW5kX2RyYXcFcHJpbnQEdGltZQViYWlkdQtHb29nbGUtTWFwcwppbWFnZS1ub25lDGltYWdlLWNlbnRlcgppbWFnZS1sZWZ0C2ltYWdlLXJpZ2h0CWNsZWFyLWRvYwpwYWdlLWJyZWFrBmF1dGhvcgp3b3JkLWltYWdlC3RvdXBwZXJjYXNlC3RvbG93ZXJjYXNlCmhvcml6b250YWwPbWVyZ2UtZG93bi1jZWxsC21lcmdlLWNlbGxzEG1lcmdlLXJpZ2h0LWNlbGwNc3BsaXQtdG8tcm93cw1zcGxpdC10by1jb2xzDnNwbGl0LXRvLWNlbGxzDmluc2VydHJvd2Fib3ZlF3BhcmFncmFwaC1tYXJnaW4tYm90dG9tFHBhcmFncmFwaC1tYXJnaW4tdG9wDXVub3JkZXJlZGxpc3QMbGlzdC1vcmRlcmVkFHNwbGl0LWNlbGxzLXZlcnRpY2FsFnNwbGl0LWNlbGxzLWhvcml6b250YWwKYXR0YWNobWVudAlzdWJzY3JpcHQJc2VsZWN0YWxsC3N1cGVyc2NyaXB0A21hcAliZy1jb2xvcnMNYWRkX2NvbF9hZnRlcg5hZGRfY29sX2JlZm9yZQ1hZGRfcm93X2FmdGVyDmFkZF9yb3dfYmVmb3JlCmRlbGV0ZV9jb2wNY29tYmluZV9jZWxscwJvbApkZWxldGVfcm93DGRlbGV0ZV90YWJsZQJ1bARyZWRvBXRhYmxlBHVuZG8FcGFzdGUGdXBsb2FkBWJydXNoCnRleHQtcXVvdGURaW5zZXJ0LXJvdy1ib3R0b20RZnVsbHNjcmVlbi1leHBhbmQOaW5zZXJ0LXJvdy10b3AIdGVtcGxhdGUSZm9ybWF0LWltYWdlLXJpZ2h0EWZvcm1hdC1pbWFnZS1sZWZ0E2Zvcm1hdC1pbWFnZS1jZW50ZXILbGluZS1oZWlnaHQHb3V0bGluZQVzbWlsZQ1hbGlnbi1qdXN0aWZ5B2Zvcm11bGEKYW5nbGUtZG93bgVjbG9zZQptYWdpYy13YW5kBmVyYXNlcgRodG1sBnVubGluawZpbmRlbnQLYWxpZ24tcmlnaHQMYWxpZ24tY2VudGVyCmFsaWduLWxlZnQLZm9udC1jb2xvcnMEcGxheQl1bmRlcmxpbmUGaXRhbGljBGxpbmsGc3RyaWtlBGNvZGUEYm9sZAAAAAAA") format('truetype')}.edui-iconfont{font-family:edui-iconfont!important;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.edui-icon-text-shrink:before{content:"\e62e"}.edui-icon-text-extend:before{content:"\e734"}.edui-icon-translate:before{content:"\e902"}.edui-icon-continue-write:before{content:"\e8b8"}.edui-icon-quota:before{content:"\e63c"}.edui-icon-refresh:before{content:"\e706"}.edui-icon-bell:before{content:"\e625"}.edui-icon-right-direction:before{content:"\ed51"}.edui-icon-robot:before{content:"\e61c"}.edui-icon-image:before{content:"\e605"}.edui-icon-content-import:before{content:"\e6f1"}.edui-icon-sound:before{content:"\e77b"}.edui-icon-right:before{content:"\e665"}.edui-icon-ic_image_upload:before{content:"\edfc"}.edui-icon-check:before{content:"\e7fc"}.edui-icon-iframe:before{content:"\e6c0"}.edui-icon-background:before{content:"\e624"}.edui-icon-ltr:before{content:"\e623"}.edui-icon-rtl:before{content:"\e7bc"}.edui-icon-findreplace:before{content:"\eb6c"}.edui-icon-icpreview:before{content:"\e644"}.edui-icon-riqi2:before{content:"\e697"}.edui-icon-euro-symbol:before{content:"\e891"}.edui-icon-music:before{content:"\e656"}.edui-icon-help:before{content:"\e752"}.edui-icon-hand_draw:before{content:"\e70b"}.edui-icon-print:before{content:"\e67a"}.edui-icon-time:before{content:"\e680"}.edui-icon-baidu:before{content:"\e669"}.edui-icon-Google-Maps:before{content:"\e87b"}.edui-icon-image-none:before{content:"\e61f"}.edui-icon-image-center:before{content:"\e620"}.edui-icon-image-left:before{content:"\e621"}.edui-icon-image-right:before{content:"\e622"}.edui-icon-clear-doc:before{content:"\e61e"}.edui-icon-page-break:before{content:"\e61d"}.edui-icon-author:before{content:"\e61b"}.edui-icon-word-image:before{content:"\e618"}.edui-icon-touppercase:before{content:"\e619"}.edui-icon-tolowercase:before{content:"\e61a"}.edui-icon-horizontal:before{content:"\e617"}.edui-icon-merge-down-cell:before{content:"\e613"}.edui-icon-merge-cells:before{content:"\e614"}.edui-icon-merge-right-cell:before{content:"\e615"}.edui-icon-split-to-rows:before{content:"\e610"}.edui-icon-split-to-cols:before{content:"\e611"}.edui-icon-split-to-cells:before{content:"\e612"}.edui-icon-insertrowabove:before{content:"\e901"}.edui-icon-paragraph-margin-bottom:before{content:"\eb09"}.edui-icon-paragraph-margin-top:before{content:"\eb0a"}.edui-icon-unorderedlist:before{content:"\e7f4"}.edui-icon-list-ordered:before{content:"\e737"}.edui-icon-split-cells-vertical:before{content:"\e7d1"}.edui-icon-split-cells-horizontal:before{content:"\e7d2"}.edui-icon-attachment:before{content:"\e704"}.edui-icon-subscript:before{content:"\ece9"}.edui-icon-selectall:before{content:"\e62f"}.edui-icon-superscript:before{content:"\e83e"}.edui-icon-map:before{content:"\e649"}.edui-icon-bg-colors:before{content:"\e71a"}.edui-icon-add_col_after:before{content:"\e600"}.edui-icon-add_col_before:before{content:"\e601"}.edui-icon-add_row_after:before{content:"\e602"}.edui-icon-add_row_before:before{content:"\e603"}.edui-icon-delete_col:before{content:"\e604"}.edui-icon-combine_cells:before{content:"\e606"}.edui-icon-ol:before{content:"\e607"}.edui-icon-delete_row:before{content:"\e609"}.edui-icon-delete_table:before{content:"\e60a"}.edui-icon-ul:before{content:"\e60b"}.edui-icon-redo:before{content:"\e60c"}.edui-icon-table:before{content:"\e60d"}.edui-icon-undo:before{content:"\e60f"}.edui-icon-paste:before{content:"\edfb"}.edui-icon-upload:before{content:"\e7ad"}.edui-icon-brush:before{content:"\e637"}.edui-icon-text-quote:before{content:"\e6d8"}.edui-icon-insert-row-bottom:before{content:"\e842"}.edui-icon-fullscreen-expand:before{content:"\e675"}.edui-icon-insert-row-top:before{content:"\e735"}.edui-icon-template:before{content:"\e6ad"}.edui-icon-format-image-right:before{content:"\e6f8"}.edui-icon-format-image-left:before{content:"\e6f9"}.edui-icon-format-image-center:before{content:"\e6fa"}.edui-icon-line-height:before{content:"\e638"}.edui-icon-outline:before{content:"\e62d"}.edui-icon-smile:before{content:"\e60e"}.edui-icon-align-justify:before{content:"\e87c"}.edui-icon-formula:before{content:"\e616"}.edui-icon-angle-down:before{content:"\e9f0"}.edui-icon-close:before{content:"\e6a7"}.edui-icon-magic-wand:before{content:"\e662"}.edui-icon-eraser:before{content:"\e782"}.edui-icon-html:before{content:"\e608"}.edui-icon-unlink:before{content:"\e92b"}.edui-icon-indent:before{content:"\e7f3"}.edui-icon-align-right:before{content:"\e7f5"}.edui-icon-align-center:before{content:"\e7f6"}.edui-icon-align-left:before{content:"\e7f7"}.edui-icon-font-colors:before{content:"\e7f8"}.edui-icon-play:before{content:"\e636"}.edui-icon-underline:before{content:"\e63e"}.edui-icon-italic:before{content:"\e62a"}.edui-icon-link:before{content:"\e648"}.edui-icon-strike:before{content:"\e64a"}.edui-icon-code:before{content:"\e64c"}.edui-icon-bold:before{content:"\e628"}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.flex{display:flex}.flex-grow{flex-grow:1}.flex-items-center{align-items:center}.flex-shrink-0{flex-shrink:0}input[type=text]{height:30px;border:1px solid #EEE;border-radius:3px;padding:0 5px;line-height:2px;outline:0}select{height:30px;border:1px solid #EEE;border-radius:3px;padding:0 5px;line-height:2px;outline:0}.btn{height:30px;border:1px solid #EEE;border-radius:3px;padding:0 10px;display:inline-block;line-height:30px;text-decoration:none;color:#333;background-color:#F8F8F8}.btn:hover{background-color:#F0F0F0}.btn.sm{height:24px;line-height:24px}.btn.primary{background-color:var(--edui-primary-color);color:#FFF}.ub-html{line-height:2;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;overflow:hidden;word-wrap:break-word;font-size:.8125rem}.ub-html>:first-child{margin-top:0}.ub-html>p:first-child{margin-top:0}.ub-html>p:last-child{margin-bottom:0}.ub-html p{padding:0;line-height:1.8;word-spacing:.05rem;margin:.5em 0}.ub-html img{max-width:100%}.ub-html iframe{max-width:100%}.ub-html p.video-player{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.ub-html p.video-player iframe{position:absolute;top:0;left:0;width:100%;height:100%}.ub-html video{max-width:100%}.ub-html a{background:transparent}.ub-html hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}.ub-html code,.ub-html kbd,.ub-html pre{font-family:"Meiryo UI","YaHei Consolas Hybrid",Consolas,"Malgun Gothic","Segoe UI","Trebuchet MS",Helvetica,monospace,monospace;font-size:1em;white-space:pre;word-spacing:normal;word-wrap:normal;tab-size:4;hyphens:none;text-align:left;line-height:1.8em;padding:1em}.ub-html table{border-spacing:0;max-width:98%;margin:1em 0;box-shadow:0 0 .1rem #CCC;display:table;text-align:left;border:.05rem solid #ddd;border-collapse:collapse;overflow:auto;word-break:keep-all}.ub-html table tr{background-color:#fff;border-top:.05rem solid #ccc}.ub-html table tr tbody{border:0}.ub-html table tr th{font-weight:700;background-color:#f0f0f0;padding:.15rem .3rem;border:.05rem solid #ddd}.ub-html table tr td{padding:.15rem .3rem;border:.05rem solid #ddd}.ub-html>p svg,.ub-html>p table,.ub-html>p pre{-webkit-box-shadow:0 0 .5rem #CCC;-moz-box-shadow:0 0 .5rem #CCC;box-shadow:0 0 .5rem #CCC;margin:1em auto;display:block}.ub-html td,.ub-html th{padding:0}.ub-html *{-moz-box-sizing:border-box;box-sizing:border-box}.ub-html input{font:.65rem/1.4 Helvetica,arial,freesans,clean,sans-serif,"Segoe UI Emoji","Segoe UI Symbol"}.ub-html a{color:#4183c4;text-decoration:none}.ub-html a:hover,.ub-html a:active{text-decoration:underline}.ub-html hr{height:0;margin:.75rem 0;overflow:hidden;background:transparent;border:0;border-bottom:.05rem solid #ddd}.ub-html hr:before{display:table;content:""}.ub-html hr:after{display:table;clear:both;content:""}.ub-html h1,.ub-html h2,.ub-html h3,.ub-html h4,.ub-html h5,.ub-html h6{font-weight:700;margin:1.2em 0 .6em;text-align:start}.ub-html h1{font-size:2em;margin:1em 0}.ub-html h2{font-size:1.7em;border-bottom:1px solid #eee;line-height:2em}.ub-html h3{font-size:1.5em}.ub-html h4{font-size:1.25em}.ub-html h5{font-size:1em}.ub-html h6{font-size:.85em}.ub-html blockquote{display:block;font-size:1em;overflow:auto;overflow-scrolling:touch;border-left:3px solid rgba(0,0,0,.4);background:rgba(0,0,0,.05);color:#6a737d;padding-top:.5em;padding-bottom:.5em;padding-left:1em;padding-right:.5em;margin-bottom:1em;margin-top:1em}.ub-html blockquote p{margin:.5em 0}.ub-html ul,.ub-html ol{padding:.5em 0;margin-top:0;margin-bottom:0;padding-left:1.4em}.ub-html ol li{list-style:decimal}.ub-html ul li{list-style:disc}.ub-html ol ol,.ub-html ul ol{list-style-type:lower-roman}.ub-html ul ul ol,.ub-html ul ol ol,.ub-html ol ul ol,.ub-html ol ol ol{list-style-type:lower-alpha}.ub-html dd{margin-left:0}.ub-html code{color:#d63384;word-wrap:break-word;border-radius:.2em;white-space:pre;font-family:"Source Code Pro",monospace;font-size:.9em;padding:.1em .2em}.ub-html code.formula{color:inherit;background-color:inherit;border:inherit;font-size:inherit}.ub-html pre{margin-top:0;margin-bottom:0;font-family:Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:.9em}.ub-html pre code{color:inherit;background:0 0;border:0} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/dialogbase.css b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/dialogbase.css new file mode 100644 index 0000000..5c71b97 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/dialogbase.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;outline:0;font-size:100%}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}ins{text-decoration:none}del{text-decoration:line-through}table{border-collapse:collapse;border-spacing:0}body{background-color:#fff;font:12px/1.5 sans-serif,"宋体","Arial Narrow",HELVETICA;color:#646464}.tabhead{position:relative;z-index:10}.tabhead span{display:inline-block;padding:0 5px;height:30px;border:1px solid #ccc;background:#EEE;text-align:center;line-height:30px;cursor:pointer;*margin-right:5px;border-radius:3px 3px 0 0}.tabhead span.focus{height:31px;border-bottom:0;background:#fff}.tabbody{position:relative;top:-1px;margin:0 auto;border:1px solid #ccc}a.button{display:block;text-align:center;line-height:24px;text-decoration:none;height:24px;width:95px;border:0;color:#838383}a.button:hover{background-position:0 -30px} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/ai.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/ai.svg new file mode 100644 index 0000000..80c5afe --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/ai.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/apk.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/apk.svg new file mode 100644 index 0000000..96bef1a --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/apk.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/chm.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/chm.svg new file mode 100644 index 0000000..8432530 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/chm.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/css.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/css.svg new file mode 100644 index 0000000..94361c7 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/css.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/doc.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/doc.svg new file mode 100644 index 0000000..30dd860 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/doc.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/docx.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/docx.svg new file mode 100644 index 0000000..30dd860 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/docx.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/dwg.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/dwg.svg new file mode 100644 index 0000000..e7eff1a --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/dwg.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + dwg + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/folder.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/folder.svg new file mode 100644 index 0000000..02e8edc --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/folder.svg @@ -0,0 +1,3 @@ + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/gif.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/gif.svg new file mode 100644 index 0000000..6b74924 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/gif.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/html.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/html.svg new file mode 100644 index 0000000..2935849 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/html.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/jpeg.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/jpeg.svg new file mode 100644 index 0000000..d951ef4 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/jpeg.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/jpg.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/jpg.svg new file mode 100644 index 0000000..b3bcb68 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/jpg.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/log.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/log.svg new file mode 100644 index 0000000..f1f9236 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/log.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/mp3.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/mp3.svg new file mode 100644 index 0000000..6cc0e35 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/mp3.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/mp4.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/mp4.svg new file mode 100644 index 0000000..20c579d --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/mp4.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/pdf.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/pdf.svg new file mode 100644 index 0000000..335b9f7 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/pdf.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/png.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/png.svg new file mode 100644 index 0000000..4f147d9 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/png.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/ppt.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/ppt.svg new file mode 100644 index 0000000..4ea923e --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/ppt.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/pptx.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/pptx.svg new file mode 100644 index 0000000..4ea923e --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/pptx.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/psd.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/psd.svg new file mode 100644 index 0000000..52fa08c --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/psd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/rar.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/rar.svg new file mode 100644 index 0000000..2541fec --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/rar.svg @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/svg.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/svg.svg new file mode 100644 index 0000000..8f7f37c --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/svg.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/torrent.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/torrent.svg new file mode 100644 index 0000000..6429687 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/torrent.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/txt.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/txt.svg new file mode 100644 index 0000000..5b4c797 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/txt.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/unknown.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/unknown.svg new file mode 100644 index 0000000..214a6f3 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/unknown.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/xls.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/xls.svg new file mode 100644 index 0000000..e4bd05f --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/xls.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/xlsx.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/xlsx.svg new file mode 100644 index 0000000..e4bd05f --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/xlsx.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/zip.svg b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/zip.svg new file mode 100644 index 0000000..2541fec --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/exts/zip.svg @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/anchor.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/anchor.gif new file mode 100644 index 0000000..5aa797b Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/anchor.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/arrow.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/arrow.png new file mode 100644 index 0000000..d900886 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/arrow.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/arrow_down.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/arrow_down.png new file mode 100644 index 0000000..e9257e8 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/arrow_down.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/arrow_up.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/arrow_up.png new file mode 100644 index 0000000..74277af Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/arrow_up.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/button-bg.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/button-bg.gif new file mode 100644 index 0000000..ec7fa2e Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/button-bg.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/cancelbutton.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/cancelbutton.gif new file mode 100644 index 0000000..df4bc2c Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/cancelbutton.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/charts.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/charts.png new file mode 100644 index 0000000..713965c Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/charts.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/cursor_h.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/cursor_h.gif new file mode 100644 index 0000000..d7c3e7e Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/cursor_h.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/cursor_h.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/cursor_h.png new file mode 100644 index 0000000..2088fc2 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/cursor_h.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/cursor_v.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/cursor_v.gif new file mode 100644 index 0000000..bb508db Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/cursor_v.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/cursor_v.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/cursor_v.png new file mode 100644 index 0000000..6f39ca3 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/cursor_v.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/dialog-title-bg.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/dialog-title-bg.png new file mode 100644 index 0000000..f744f26 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/dialog-title-bg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/filescan.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/filescan.png new file mode 100644 index 0000000..1d27158 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/filescan.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/highlighted.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/highlighted.gif new file mode 100644 index 0000000..9272b49 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/highlighted.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/icons-all.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/icons-all.gif new file mode 100644 index 0000000..21915e5 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/icons-all.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/icons.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/icons.gif new file mode 100644 index 0000000..7abd30a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/icons.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/icons.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/icons.png new file mode 100644 index 0000000..c015e3a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/icons.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/img-cracked.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/img-cracked.png new file mode 100644 index 0000000..3b1d389 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/img-cracked.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/loaderror.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/loaderror.png new file mode 100644 index 0000000..35ff333 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/loaderror.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/loading.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/loading.gif new file mode 100644 index 0000000..b713e27 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/loading.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/lock.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/lock.gif new file mode 100644 index 0000000..b4e6d78 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/lock.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/neweditor-tab-bg.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/neweditor-tab-bg.png new file mode 100644 index 0000000..8f398b0 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/neweditor-tab-bg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/pagebreak.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/pagebreak.gif new file mode 100644 index 0000000..8d1cffd Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/pagebreak.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/scale.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/scale.png new file mode 100644 index 0000000..f45adb5 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/scale.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/sortable.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/sortable.png new file mode 100644 index 0000000..1bca649 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/sortable.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/spacer.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/spacer.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/spacer.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/sparator_v.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/sparator_v.png new file mode 100644 index 0000000..8cf5662 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/sparator_v.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/table-cell-align.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/table-cell-align.png new file mode 100644 index 0000000..ddf4285 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/table-cell-align.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/tangram-colorpicker.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/tangram-colorpicker.png new file mode 100644 index 0000000..738e500 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/tangram-colorpicker.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/toolbar_bg.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/toolbar_bg.png new file mode 100644 index 0000000..7ab685f Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/toolbar_bg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/unhighlighted.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/unhighlighted.gif new file mode 100644 index 0000000..7ad0b67 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/unhighlighted.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/upload.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/upload.png new file mode 100644 index 0000000..08d4d92 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/upload.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/videologo.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/videologo.gif new file mode 100644 index 0000000..555af74 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/videologo.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/word.gif b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/word.gif new file mode 100644 index 0000000..9ef5d09 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/word.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/wordpaste.png b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/wordpaste.png new file mode 100644 index 0000000..9367758 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/default/images/wordpaste.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/iframe.css b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/iframe.css new file mode 100644 index 0000000..ec817b1 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/themes/iframe.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans',sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol','Noto Color Emoji';font-size:14px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}a{color:#09f;text-decoration:none}a:hover,a:focus{color:#09f;text-decoration:none}blockquote{padding:0 0 0 15px;margin:0 0 18px;border-left:5px solid #EEE}img+br{display:block;padding:4px 0;content:' '}body p{margin-bottom:1em}iframe{border:0}img{max-width:100%}img[data-word-image]{cursor:pointer}pre{margin:.5em 0;padding:.4em .6em;border-radius:8px;background:#f8f8f8;line-height:1.5}img{cursor:pointer}.edui-quick-operate-active{background:#E6ECFF} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/dist-min/third-party/SyntaxHighlighter/shCore.js b/ruoyi-ui/public/static/UEditorPlus/dist-min/third-party/SyntaxHighlighter/shCore.js new file mode 100644 index 0000000..3249184 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/dist-min/third-party/SyntaxHighlighter/shCore.js @@ -0,0 +1,3655 @@ +// XRegExp 1.5.1 +// (c) 2007-2012 Steven Levithan +// MIT License +// +// Provides an augmented, extensible, cross-browser implementation of regular expressions, +// including support for additional syntax, flags, and methods + +var XRegExp; + +if (XRegExp) { + // Avoid running twice, since that would break references to native globals + throw Error("can't load XRegExp twice in the same frame"); +} + +// Run within an anonymous function to protect variables and avoid new globals +(function (undefined) { + + //--------------------------------- + // Constructor + //--------------------------------- + + // Accepts a pattern and flags; returns a new, extended `RegExp` object. Differs from a native + // regular expression in that additional syntax and flags are supported and cross-browser + // syntax inconsistencies are ameliorated. `XRegExp(/regex/)` clones an existing regex and + // converts to type XRegExp + XRegExp = function (pattern, flags) { + var output = [], + currScope = XRegExp.OUTSIDE_CLASS, + pos = 0, + context, tokenResult, match, chr, regex; + + if (XRegExp.isRegExp(pattern)) { + if (flags !== undefined) + throw TypeError("can't supply flags when constructing one RegExp from another"); + return clone(pattern); + } + // Tokens become part of the regex construction process, so protect against infinite + // recursion when an XRegExp is constructed within a token handler or trigger + if (isInsideConstructor) + throw Error("can't call the XRegExp constructor within token definition functions"); + + flags = flags || ""; + context = { // `this` object for custom tokens + hasNamedCapture: false, + captureNames: [], + hasFlag: function (flag) {return flags.indexOf(flag) > -1;}, + setFlag: function (flag) {flags += flag;} + }; + + while (pos < pattern.length) { + // Check for custom tokens at the current position + tokenResult = runTokens(pattern, pos, currScope, context); + + if (tokenResult) { + output.push(tokenResult.output); + pos += (tokenResult.match[0].length || 1); + } else { + // Check for native multicharacter metasequences (excluding character classes) at + // the current position + if (match = nativ.exec.call(nativeTokens[currScope], pattern.slice(pos))) { + output.push(match[0]); + pos += match[0].length; + } else { + chr = pattern.charAt(pos); + if (chr === "[") + currScope = XRegExp.INSIDE_CLASS; + else if (chr === "]") + currScope = XRegExp.OUTSIDE_CLASS; + // Advance position one character + output.push(chr); + pos++; + } + } + } + + regex = RegExp(output.join(""), nativ.replace.call(flags, flagClip, "")); + regex._xregexp = { + source: pattern, + captureNames: context.hasNamedCapture ? context.captureNames : null + }; + return regex; + }; + + + //--------------------------------- + // Public properties + //--------------------------------- + + XRegExp.version = "1.5.1"; + + // Token scope bitflags + XRegExp.INSIDE_CLASS = 1; + XRegExp.OUTSIDE_CLASS = 2; + + + //--------------------------------- + // Private variables + //--------------------------------- + + var replacementToken = /\$(?:(\d\d?|[$&`'])|{([$\w]+)})/g, + flagClip = /[^gimy]+|([\s\S])(?=[\s\S]*\1)/g, // Nonnative and duplicate flags + quantifier = /^(?:[?*+]|{\d+(?:,\d*)?})\??/, + isInsideConstructor = false, + tokens = [], + // Copy native globals for reference ("native" is an ES3 reserved keyword) + nativ = { + exec: RegExp.prototype.exec, + test: RegExp.prototype.test, + match: String.prototype.match, + replace: String.prototype.replace, + split: String.prototype.split + }, + compliantExecNpcg = nativ.exec.call(/()??/, "")[1] === undefined, // check `exec` handling of nonparticipating capturing groups + compliantLastIndexIncrement = function () { + var x = /^/g; + nativ.test.call(x, ""); + return !x.lastIndex; + }(), + hasNativeY = RegExp.prototype.sticky !== undefined, + nativeTokens = {}; + + // `nativeTokens` match native multicharacter metasequences only (including deprecated octals, + // excluding character classes) + nativeTokens[XRegExp.INSIDE_CLASS] = /^(?:\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S]))/; + nativeTokens[XRegExp.OUTSIDE_CLASS] = /^(?:\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|\(\?[:=!]|[?*+]\?|{\d+(?:,\d*)?}\??)/; + + + //--------------------------------- + // Public methods + //--------------------------------- + + // Lets you extend or change XRegExp syntax and create custom flags. This is used internally by + // the XRegExp library and can be used to create XRegExp plugins. This function is intended for + // users with advanced knowledge of JavaScript's regular expression syntax and behavior. It can + // be disabled by `XRegExp.freezeTokens` + XRegExp.addToken = function (regex, handler, scope, trigger) { + tokens.push({ + pattern: clone(regex, "g" + (hasNativeY ? "y" : "")), + handler: handler, + scope: scope || XRegExp.OUTSIDE_CLASS, + trigger: trigger || null + }); + }; + + // Accepts a pattern and flags; returns an extended `RegExp` object. If the pattern and flag + // combination has previously been cached, the cached copy is returned; otherwise the newly + // created regex is cached + XRegExp.cache = function (pattern, flags) { + var key = pattern + "/" + (flags || ""); + return XRegExp.cache[key] || (XRegExp.cache[key] = XRegExp(pattern, flags)); + }; + + // Accepts a `RegExp` instance; returns a copy with the `/g` flag set. The copy has a fresh + // `lastIndex` (set to zero). If you want to copy a regex without forcing the `global` + // property, use `XRegExp(regex)`. Do not use `RegExp(regex)` because it will not preserve + // special properties required for named capture + XRegExp.copyAsGlobal = function (regex) { + return clone(regex, "g"); + }; + + // Accepts a string; returns the string with regex metacharacters escaped. The returned string + // can safely be used at any point within a regex to match the provided literal string. Escaped + // characters are [ ] { } ( ) * + ? - . , \ ^ $ | # and whitespace + XRegExp.escape = function (str) { + return str.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + }; + + // Accepts a string to search, regex to search with, position to start the search within the + // string (default: 0), and an optional Boolean indicating whether matches must start at-or- + // after the position or at the specified position only. This function ignores the `lastIndex` + // of the provided regex in its own handling, but updates the property for compatibility + XRegExp.execAt = function (str, regex, pos, anchored) { + var r2 = clone(regex, "g" + ((anchored && hasNativeY) ? "y" : "")), + match; + r2.lastIndex = pos = pos || 0; + match = r2.exec(str); // Run the altered `exec` (required for `lastIndex` fix, etc.) + if (anchored && match && match.index !== pos) + match = null; + if (regex.global) + regex.lastIndex = match ? r2.lastIndex : 0; + return match; + }; + + // Breaks the unrestorable link to XRegExp's private list of tokens, thereby preventing + // syntax and flag changes. Should be run after XRegExp and any plugins are loaded + XRegExp.freezeTokens = function () { + XRegExp.addToken = function () { + throw Error("can't run addToken after freezeTokens"); + }; + }; + + // Accepts any value; returns a Boolean indicating whether the argument is a `RegExp` object. + // Note that this is also `true` for regex literals and regexes created by the `XRegExp` + // constructor. This works correctly for variables created in another frame, when `instanceof` + // and `constructor` checks would fail to work as intended + XRegExp.isRegExp = function (o) { + return Object.prototype.toString.call(o) === "[object RegExp]"; + }; + + // Executes `callback` once per match within `str`. Provides a simpler and cleaner way to + // iterate over regex matches compared to the traditional approaches of subverting + // `String.prototype.replace` or repeatedly calling `exec` within a `while` loop + XRegExp.iterate = function (str, regex, callback, context) { + var r2 = clone(regex, "g"), + i = -1, match; + while (match = r2.exec(str)) { // Run the altered `exec` (required for `lastIndex` fix, etc.) + if (regex.global) + regex.lastIndex = r2.lastIndex; // Doing this to follow expectations if `lastIndex` is checked within `callback` + callback.call(context, match, ++i, str, regex); + if (r2.lastIndex === match.index) + r2.lastIndex++; + } + if (regex.global) + regex.lastIndex = 0; + }; + + // Accepts a string and an array of regexes; returns the result of using each successive regex + // to search within the matches of the previous regex. The array of regexes can also contain + // objects with `regex` and `backref` properties, in which case the named or numbered back- + // references specified are passed forward to the next regex or returned. E.g.: + // var xregexpImgFileNames = XRegExp.matchChain(html, [ + // {regex: /]+)>/i, backref: 1}, // tag attributes + // {regex: XRegExp('(?ix) \\s src=" (? [^"]+ )'), backref: "src"}, // src attribute values + // {regex: XRegExp("^http://xregexp\\.com(/[^#?]+)", "i"), backref: 1}, // xregexp.com paths + // /[^\/]+$/ // filenames (strip directory paths) + // ]); + XRegExp.matchChain = function (str, chain) { + return function recurseChain (values, level) { + var item = chain[level].regex ? chain[level] : {regex: chain[level]}, + regex = clone(item.regex, "g"), + matches = [], i; + for (i = 0; i < values.length; i++) { + XRegExp.iterate(values[i], regex, function (match) { + matches.push(item.backref ? (match[item.backref] || "") : match[0]); + }); + } + return ((level === chain.length - 1) || !matches.length) ? + matches : recurseChain(matches, level + 1); + }([str], 0); + }; + + + //--------------------------------- + // New RegExp prototype methods + //--------------------------------- + + // Accepts a context object and arguments array; returns the result of calling `exec` with the + // first value in the arguments array. the context is ignored but is accepted for congruity + // with `Function.prototype.apply` + RegExp.prototype.apply = function (context, args) { + return this.exec(args[0]); + }; + + // Accepts a context object and string; returns the result of calling `exec` with the provided + // string. the context is ignored but is accepted for congruity with `Function.prototype.call` + RegExp.prototype.call = function (context, str) { + return this.exec(str); + }; + + + //--------------------------------- + // Overriden native methods + //--------------------------------- + + // Adds named capture support (with backreferences returned as `result.name`), and fixes two + // cross-browser issues per ES3: + // - Captured values for nonparticipating capturing groups should be returned as `undefined`, + // rather than the empty string. + // - `lastIndex` should not be incremented after zero-length matches. + RegExp.prototype.exec = function (str) { + var match, name, r2, origLastIndex; + if (!this.global) + origLastIndex = this.lastIndex; + match = nativ.exec.apply(this, arguments); + if (match) { + // Fix browsers whose `exec` methods don't consistently return `undefined` for + // nonparticipating capturing groups + if (!compliantExecNpcg && match.length > 1 && indexOf(match, "") > -1) { + r2 = RegExp(this.source, nativ.replace.call(getNativeFlags(this), "g", "")); + // Using `str.slice(match.index)` rather than `match[0]` in case lookahead allowed + // matching due to characters outside the match + nativ.replace.call((str + "").slice(match.index), r2, function () { + for (var i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) + match[i] = undefined; + } + }); + } + // Attach named capture properties + if (this._xregexp && this._xregexp.captureNames) { + for (var i = 1; i < match.length; i++) { + name = this._xregexp.captureNames[i - 1]; + if (name) + match[name] = match[i]; + } + } + // Fix browsers that increment `lastIndex` after zero-length matches + if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index)) + this.lastIndex--; + } + if (!this.global) + this.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows) + return match; + }; + + // Fix browser bugs in native method + RegExp.prototype.test = function (str) { + // Use the native `exec` to skip some processing overhead, even though the altered + // `exec` would take care of the `lastIndex` fixes + var match, origLastIndex; + if (!this.global) + origLastIndex = this.lastIndex; + match = nativ.exec.call(this, str); + // Fix browsers that increment `lastIndex` after zero-length matches + if (match && !compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index)) + this.lastIndex--; + if (!this.global) + this.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows) + return !!match; + }; + + // Adds named capture support and fixes browser bugs in native method + String.prototype.match = function (regex) { + if (!XRegExp.isRegExp(regex)) + regex = RegExp(regex); // Native `RegExp` + if (regex.global) { + var result = nativ.match.apply(this, arguments); + regex.lastIndex = 0; // Fix IE bug + return result; + } + return regex.exec(this); // Run the altered `exec` + }; + + // Adds support for `${n}` tokens for named and numbered backreferences in replacement text, + // and provides named backreferences to replacement functions as `arguments[0].name`. Also + // fixes cross-browser differences in replacement text syntax when performing a replacement + // using a nonregex search value, and the value of replacement regexes' `lastIndex` property + // during replacement iterations. Note that this doesn't support SpiderMonkey's proprietary + // third (`flags`) parameter + String.prototype.replace = function (search, replacement) { + var isRegex = XRegExp.isRegExp(search), + captureNames, result, str, origLastIndex; + + // There are too many combinations of search/replacement types/values and browser bugs that + // preclude passing to native `replace`, so don't try + //if (...) + // return nativ.replace.apply(this, arguments); + + if (isRegex) { + if (search._xregexp) + captureNames = search._xregexp.captureNames; // Array or `null` + if (!search.global) + origLastIndex = search.lastIndex; + } else { + search = search + ""; // Type conversion + } + + if (Object.prototype.toString.call(replacement) === "[object Function]") { + result = nativ.replace.call(this + "", search, function () { + if (captureNames) { + // Change the `arguments[0]` string primitive to a String object which can store properties + arguments[0] = new String(arguments[0]); + // Store named backreferences on `arguments[0]` + for (var i = 0; i < captureNames.length; i++) { + if (captureNames[i]) + arguments[0][captureNames[i]] = arguments[i + 1]; + } + } + // Update `lastIndex` before calling `replacement` (fix browsers) + if (isRegex && search.global) + search.lastIndex = arguments[arguments.length - 2] + arguments[0].length; + return replacement.apply(null, arguments); + }); + } else { + str = this + ""; // Type conversion, so `args[args.length - 1]` will be a string (given nonstring `this`) + result = nativ.replace.call(str, search, function () { + var args = arguments; // Keep this function's `arguments` available through closure + return nativ.replace.call(replacement + "", replacementToken, function ($0, $1, $2) { + // Numbered backreference (without delimiters) or special variable + if ($1) { + switch ($1) { + case "$": return "$"; + case "&": return args[0]; + case "`": return args[args.length - 1].slice(0, args[args.length - 2]); + case "'": return args[args.length - 1].slice(args[args.length - 2] + args[0].length); + // Numbered backreference + default: + // What does "$10" mean? + // - Backreference 10, if 10 or more capturing groups exist + // - Backreference 1 followed by "0", if 1-9 capturing groups exist + // - Otherwise, it's the string "$10" + // Also note: + // - Backreferences cannot be more than two digits (enforced by `replacementToken`) + // - "$01" is equivalent to "$1" if a capturing group exists, otherwise it's the string "$01" + // - There is no "$0" token ("$&" is the entire match) + var literalNumbers = ""; + $1 = +$1; // Type conversion; drop leading zero + if (!$1) // `$1` was "0" or "00" + return $0; + while ($1 > args.length - 3) { + literalNumbers = String.prototype.slice.call($1, -1) + literalNumbers; + $1 = Math.floor($1 / 10); // Drop the last digit + } + return ($1 ? args[$1] || "" : "$") + literalNumbers; + } + // Named backreference or delimited numbered backreference + } else { + // What does "${n}" mean? + // - Backreference to numbered capture n. Two differences from "$n": + // - n can be more than two digits + // - Backreference 0 is allowed, and is the entire match + // - Backreference to named capture n, if it exists and is not a number overridden by numbered capture + // - Otherwise, it's the string "${n}" + var n = +$2; // Type conversion; drop leading zeros + if (n <= args.length - 3) + return args[n]; + n = captureNames ? indexOf(captureNames, $2) : -1; + return n > -1 ? args[n + 1] : $0; + } + }); + }); + } + + if (isRegex) { + if (search.global) + search.lastIndex = 0; // Fix IE, Safari bug (last tested IE 9.0.5, Safari 5.1.2 on Windows) + else + search.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows) + } + + return result; + }; + + // A consistent cross-browser, ES3 compliant `split` + String.prototype.split = function (s /* separator */, limit) { + // If separator `s` is not a regex, use the native `split` + if (!XRegExp.isRegExp(s)) + return nativ.split.apply(this, arguments); + + var str = this + "", // Type conversion + output = [], + lastLastIndex = 0, + match, lastLength; + + // Behavior for `limit`: if it's... + // - `undefined`: No limit + // - `NaN` or zero: Return an empty array + // - A positive number: Use `Math.floor(limit)` + // - A negative number: No limit + // - Other: Type-convert, then use the above rules + if (limit === undefined || +limit < 0) { + limit = Infinity; + } else { + limit = Math.floor(+limit); + if (!limit) + return []; + } + + // This is required if not `s.global`, and it avoids needing to set `s.lastIndex` to zero + // and restore it to its original value when we're done using the regex + s = XRegExp.copyAsGlobal(s); + + while (match = s.exec(str)) { // Run the altered `exec` (required for `lastIndex` fix, etc.) + if (s.lastIndex > lastLastIndex) { + output.push(str.slice(lastLastIndex, match.index)); + + if (match.length > 1 && match.index < str.length) + Array.prototype.push.apply(output, match.slice(1)); + + lastLength = match[0].length; + lastLastIndex = s.lastIndex; + + if (output.length >= limit) + break; + } + + if (s.lastIndex === match.index) + s.lastIndex++; + } + + if (lastLastIndex === str.length) { + if (!nativ.test.call(s, "") || lastLength) + output.push(""); + } else { + output.push(str.slice(lastLastIndex)); + } + + return output.length > limit ? output.slice(0, limit) : output; + }; + + + //--------------------------------- + // Private helper functions + //--------------------------------- + + // Supporting function for `XRegExp`, `XRegExp.copyAsGlobal`, etc. Returns a copy of a `RegExp` + // instance with a fresh `lastIndex` (set to zero), preserving properties required for named + // capture. Also allows adding new flags in the process of copying the regex + function clone (regex, additionalFlags) { + if (!XRegExp.isRegExp(regex)) + throw TypeError("type RegExp expected"); + var x = regex._xregexp; + regex = XRegExp(regex.source, getNativeFlags(regex) + (additionalFlags || "")); + if (x) { + regex._xregexp = { + source: x.source, + captureNames: x.captureNames ? x.captureNames.slice(0) : null + }; + } + return regex; + } + + function getNativeFlags (regex) { + return (regex.global ? "g" : "") + + (regex.ignoreCase ? "i" : "") + + (regex.multiline ? "m" : "") + + (regex.extended ? "x" : "") + // Proposed for ES4; included in AS3 + (regex.sticky ? "y" : ""); + } + + function runTokens (pattern, index, scope, context) { + var i = tokens.length, + result, match, t; + // Protect against constructing XRegExps within token handler and trigger functions + isInsideConstructor = true; + // Must reset `isInsideConstructor`, even if a `trigger` or `handler` throws + try { + while (i--) { // Run in reverse order + t = tokens[i]; + if ((scope & t.scope) && (!t.trigger || t.trigger.call(context))) { + t.pattern.lastIndex = index; + match = t.pattern.exec(pattern); // Running the altered `exec` here allows use of named backreferences, etc. + if (match && match.index === index) { + result = { + output: t.handler.call(context, match, scope), + match: match + }; + break; + } + } + } + } catch (err) { + throw err; + } finally { + isInsideConstructor = false; + } + return result; + } + + function indexOf (array, item, from) { + if (Array.prototype.indexOf) // Use the native array method if available + return array.indexOf(item, from); + for (var i = from || 0; i < array.length; i++) { + if (array[i] === item) + return i; + } + return -1; + } + + + //--------------------------------- + // Built-in tokens + //--------------------------------- + + // Augment XRegExp's regular expression syntax and flags. Note that when adding tokens, the + // third (`scope`) argument defaults to `XRegExp.OUTSIDE_CLASS` + + // Comment pattern: (?# ) + XRegExp.addToken( + /\(\?#[^)]*\)/, + function (match) { + // Keep tokens separated unless the following token is a quantifier + return nativ.test.call(quantifier, match.input.slice(match.index + match[0].length)) ? "" : "(?:)"; + } + ); + + // Capturing group (match the opening parenthesis only). + // Required for support of named capturing groups + XRegExp.addToken( + /\((?!\?)/, + function () { + this.captureNames.push(null); + return "("; + } + ); + + // Named capturing group (match the opening delimiter only): (? + XRegExp.addToken( + /\(\?<([$\w]+)>/, + function (match) { + this.captureNames.push(match[1]); + this.hasNamedCapture = true; + return "("; + } + ); + + // Named backreference: \k + XRegExp.addToken( + /\\k<([\w$]+)>/, + function (match) { + var index = indexOf(this.captureNames, match[1]); + // Keep backreferences separate from subsequent literal numbers. Preserve back- + // references to named groups that are undefined at this point as literal strings + return index > -1 ? + "\\" + (index + 1) + (isNaN(match.input.charAt(match.index + match[0].length)) ? "" : "(?:)") : + match[0]; + } + ); + + // Empty character class: [] or [^] + XRegExp.addToken( + /\[\^?]/, + function (match) { + // For cross-browser compatibility with ES3, convert [] to \b\B and [^] to [\s\S]. + // (?!) should work like \b\B, but is unreliable in Firefox + return match[0] === "[]" ? "\\b\\B" : "[\\s\\S]"; + } + ); + + // Mode modifier at the start of the pattern only, with any combination of flags imsx: (?imsx) + // Does not support x(?i), (?-i), (?i-m), (?i: ), (?i)(?m), etc. + XRegExp.addToken( + /^\(\?([imsx]+)\)/, + function (match) { + this.setFlag(match[1]); + return ""; + } + ); + + // Whitespace and comments, in free-spacing (aka extended) mode only + XRegExp.addToken( + /(?:\s+|#.*)+/, + function (match) { + // Keep tokens separated unless the following token is a quantifier + return nativ.test.call(quantifier, match.input.slice(match.index + match[0].length)) ? "" : "(?:)"; + }, + XRegExp.OUTSIDE_CLASS, + function () {return this.hasFlag("x");} + ); + + // Dot, in dotall (aka singleline) mode only + XRegExp.addToken( + /\./, + function () {return "[\\s\\S]";}, + XRegExp.OUTSIDE_CLASS, + function () {return this.hasFlag("s");} + ); + + + //--------------------------------- + // Backward compatibility + //--------------------------------- + + // Uncomment the following block for compatibility with XRegExp 1.0-1.2: + /* + XRegExp.matchWithinChain = XRegExp.matchChain; + RegExp.prototype.addFlags = function (s) {return clone(this, s);}; + RegExp.prototype.execAll = function (s) {var r = []; XRegExp.iterate(s, this, function (m) {r.push(m);}); return r;}; + RegExp.prototype.forEachExec = function (s, f, c) {return XRegExp.iterate(s, this, f, c);}; + RegExp.prototype.validate = function (s) {var r = RegExp("^(?:" + this.source + ")$(?!\\s)", getNativeFlags(this)); if (this.global) this.lastIndex = 0; return s.search(r) === 0;}; + */ + +})(); + +// +// Begin anonymous function. This is used to contain local scope variables without polutting global scope. +// +if (typeof(SyntaxHighlighter) == 'undefined') var SyntaxHighlighter = function() { + +// CommonJS + if (typeof(require) != 'undefined' && typeof(XRegExp) == 'undefined') + { + XRegExp = require('XRegExp').XRegExp; + } + +// Shortcut object which will be assigned to the SyntaxHighlighter variable. +// This is a shorthand for local reference in order to avoid long namespace +// references to SyntaxHighlighter.whatever... + var sh = { + defaults : { + /** Additional CSS class names to be added to highlighter elements. */ + 'class-name' : '', + + /** First line number. */ + 'first-line' : 1, + + /** + * Pads line numbers. Possible values are: + * + * false - don't pad line numbers. + * true - automaticaly pad numbers with minimum required number of leading zeroes. + * [int] - length up to which pad line numbers. + */ + 'pad-line-numbers' : false, + + /** Lines to highlight. */ + 'highlight' : false, + + /** Title to be displayed above the code block. */ + 'title' : null, + + /** Enables or disables smart tabs. */ + 'smart-tabs' : true, + + /** Gets or sets tab size. */ + 'tab-size' : 4, + + /** Enables or disables gutter. */ + 'gutter' : true, + + /** Enables or disables toolbar. */ + 'toolbar' : true, + + /** Enables quick code copy and paste from double click. */ + 'quick-code' : true, + + /** Forces code view to be collapsed. */ + 'collapse' : false, + + /** Enables or disables automatic links. */ + 'auto-links' : false, + + /** Gets or sets light mode. Equavalent to turning off gutter and toolbar. */ + 'light' : false, + + 'unindent' : true, + + 'html-script' : false + }, + + config : { + space : ' ', + + /** Enables use of + + + + + + + + + + +
    +

    完整示例

    +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + +
    + + diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/en/en.js b/ruoyi-ui/public/static/UEditorPlus/lang/en/en.js new file mode 100644 index 0000000..b60deab --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/lang/en/en.js @@ -0,0 +1,690 @@ +/** + * Created with JetBrains PhpStorm. + * User: taoqili + * Date: 12-6-12 + * Time: 下午6:57 + * To change this template use File | Settings | File Templates. + */ +UE.I18N['en'] = { + 'labelMap': { + 'anchor': 'Anchor', + 'undo': 'Undo', + 'redo': 'Redo', + 'bold': 'Bold', + 'indent': 'Indent', + 'italic': 'Italic', + 'underline': 'Underline', + 'strikethrough': 'Strikethrough', + 'subscript': 'SubScript', + 'fontborder': 'text border', + 'superscript': 'SuperScript', + 'formatmatch': 'Format Match', + 'source': 'Source', + 'blockquote': 'BlockQuote', + 'pasteplain': 'PastePlain', + 'selectall': 'SelectAll', + 'print': 'Print', + 'preview': 'Preview', + 'horizontal': 'Horizontal', + 'removeformat': 'RemoveFormat', + 'time': 'Time', + 'date': 'Date', + 'unlink': 'Unlink', + 'insertrow': 'InsertRow', + 'insertcol': 'InsertCol', + 'mergeright': 'MergeRight', + 'mergedown': 'MergeDown', + 'deleterow': 'DeleteRow', + 'deletecol': 'DeleteCol', + 'splittorows': 'SplitToRows', + 'insertcode': 'insert code', + 'splittocols': 'SplitToCols', + 'splittocells': 'SplitToCells', + 'deletecaption': 'DeleteCaption', + 'inserttitle': 'InsertTitle', + 'mergecells': 'MergeCells', + 'deletetable': 'DeleteTable', + 'cleardoc': 'Clear', + 'contentimport': 'Content Import', + 'ai': 'AI', + 'insertparagraphbeforetable': "InsertParagraphBeforeTable", + 'fontfamily': 'FontFamily', + 'fontsize': 'FontSize', + 'paragraph': 'Paragraph', + 'simpleupload': 'Single Image', + 'insertimage': 'Multi Image', + 'edittable': 'Edit Table', + 'edittd': 'Edit Td', + 'link': 'Link', + 'emotion': 'Emotion', + 'spechars': 'Spechars', + 'searchreplace': 'SearchReplace', + 'insertvideo': 'Video', + 'help': 'Help', + 'justifyleft': 'JustifyLeft', + 'justifyright': 'JustifyRight', + 'justifycenter': 'JustifyCenter', + 'justifyjustify': 'Justify', + 'forecolor': 'FontColor', + 'backcolor': 'BackColor', + 'insertorderedlist': 'OL', + 'insertunorderedlist': 'UL', + 'fullscreen': 'FullScreen', + 'directionalityltr': 'EnterFromLeft', + 'directionalityrtl': 'EnterFromRight', + 'rowspacingtop': 'RowSpacingTop', + 'rowspacingbottom': 'RowSpacingBottom', + 'pagebreak': 'PageBreak', + 'insertframe': 'Iframe', + 'imagenone': 'Default', + 'imageleft': 'ImageLeft', + 'imageright': 'ImageRight', + 'attachment': 'Attachment', + 'imagecenter': 'ImageCenter', + 'wordimage': 'WordImage', + 'formula': 'Formula', + 'lineheight': 'LineHeight', + 'edittip': 'EditTip', + 'customstyle': 'CustomStyle', + 'scrawl': 'Scrawl', + 'autotypeset': 'AutoTypeset', + 'touppercase': 'UpperCase', + 'tolowercase': 'LowerCase', + 'template': 'Template', + 'background': 'Background', + 'inserttable': 'InsertTable', + }, + 'autosave': { + 'autoRestoreTip': 'Has been recovered from draft' + }, + 'insertorderedlist': { + 'num': '1,2,3...', + 'num1': '1),2),3)...', + 'num2': '(1),(2),(3)...', + 'cn': '一,二,三....', + 'cn1': '一),二),三)....', + 'cn2': '(一),(二),(三)....', + 'decimal': '1,2,3...', + 'lower-alpha': 'a,b,c...', + 'lower-roman': 'i,ii,iii...', + 'upper-alpha': 'A,B,C...', + 'upper-roman': 'I,II,III...' + }, + 'insertunorderedlist': { + 'circle': '○ Circle', + 'disc': '● Circle dot', + 'square': '■ Rectangle ', + 'dash': '- Dash', + 'dot': '。dot' + }, + 'paragraph': { + 'p': 'Paragraph', + 'h1': 'Title 1', + 'h2': 'Title 2', + 'h3': 'Title 3', + 'h4': 'Title 4', + 'h5': 'Title 5', + 'h6': 'Title 6' + }, + 'fontfamily': { + 'default': 'Default', + 'songti': 'Sim Sun', + 'kaiti': 'Sim Kai', + 'heiti': 'Sim Hei', + 'lishu': 'Sim Li', + 'yahei': 'Microsoft YaHei', + // 'andaleMono':'Andale Mono', + 'arial': 'Arial', + // 'arialBlack':'Arial Black', + // 'comicSansMs':'Comic Sans MS', + // 'impact':'Impact', + 'timesNewRoman': 'Times New Roman' + }, + 'customstyle': { + 'tc': 'Title center', + 'tl': 'Title left', + 'im': 'Important', + 'hi': 'Highlight' + }, + 'autoupload': { + 'exceedSizeError': 'File Size Exceed', + 'exceedTypeError': 'File Type Not Allow', + 'jsonEncodeError': 'Server Return Format Error', + 'loading': "loading...", + 'loadError': "load error", + 'errorLoadConfig': 'Server config not loaded, upload can not work.', + }, + 'simpleupload': { + 'exceedSizeError': 'File Size Exceed', + 'exceedTypeError': 'File Type Not Allow', + 'jsonEncodeError': 'Server Return Format Error', + 'loading': "loading...", + 'loadError': "load error", + 'errorLoadConfig': 'Server config not loaded, upload can not work.', + }, + 'elementPathTip': "Path", + 'wordCountTip': "Word Count", + 'wordCountMsg': '{#count} characters entered,{#leave} left. ', + 'wordOverFlowMsg': 'The number of characters has exceeded allowable maximum values, the server may refuse to save!', + 'ok': "OK", + 'cancel': "Cancel", + 'closeDialog': "closeDialog", + 'tableDrag': "You must import the file uiUtils.js before drag! ", + 'autofloatMsg': "The plugin AutoFloat depends on EditorUI!", + 'loadconfigError': 'Get server config error.', + 'loadconfigFormatError': 'Server config format error.', + 'loadconfigHttpError': 'Get server config http error.', + 'insertcode': { + 'as3': 'ActionScript 3', + 'bash': 'Bash/Shell', + 'cpp': 'C/C++', + 'css': 'CSS', + 'cf': 'ColdFusion', + 'c#': 'C#', + 'delphi': 'Delphi', + 'diff': 'Diff', + 'erlang': 'Erlang', + 'groovy': 'Groovy', + 'html': 'HTML', + 'java': 'Java', + 'jfx': 'JavaFX', + 'js': 'JavaScript', + 'pl': 'Perl', + 'php': 'PHP', + 'plain': 'Plain Text', + 'ps': 'PowerShell', + 'python': 'Python', + 'ruby': 'Ruby', + 'scala': 'Scala', + 'sql': 'SQL', + 'vb': 'Visual Basic', + 'xml': 'XML' + }, + 'confirmClear': "Do you confirm to clear the Document?", + 'contextMenu': { + 'delete': "Delete", + 'selectall': "Select all", + 'deletecode': "Delete Code", + 'cleardoc': "Clear Document", + 'confirmclear': "Do you confirm to clear the Document?", + 'unlink': "Unlink", + 'paragraph': "Paragraph", + 'edittable': "Table property", + 'aligncell': 'Align cell', + 'aligntable': 'Table alignment', + 'tableleft': 'Left float', + 'tablecenter': 'Center', + 'tableright': 'Right float', + 'aligntd': 'Cell alignment', + 'edittd': "Cell property", + 'setbordervisible': 'set table edge visible', + 'table': "Table", + 'justifyleft': 'Justify Left', + 'justifyright': 'Justify Right', + 'justifycenter': 'Justify Center', + 'justifyjustify': 'Default', + 'deletetable': "Delete table", + 'insertparagraphbefore': "InsertedBeforeLine", + 'insertparagraphafter': 'InsertedAfterLine', + 'inserttable': 'Insert table', + 'insertcaption': 'Insert caption', + 'deletecaption': 'Delete Caption', + 'inserttitle': 'Insert Title', + 'deletetitle': 'Delete Title', + 'inserttitlecol': 'Insert Title Col', + 'deletetitlecol': 'Delete Title Col', + 'averageDiseRow': 'AverageDise Row', + 'averageDisCol': 'AverageDis Col', + 'deleterow': "Delete row", + 'deletecol': "Delete col", + 'insertrow': "Insert row", + 'insertcol': "Insert col", + 'insertrownext': 'Insert Row Next', + 'insertcolnext': 'Insert Col Next', + 'mergeright': "Merge right", + 'mergeleft': "Merge left", + 'mergedown': "Merge down", + 'mergecells': "Merge cells", + 'splittocells': "Split to cells", + 'splittocols': "Split to Cols", + 'splittorows': "Split to Rows", + 'tablesort': 'Table sorting', + 'enablesort': 'Sorting Enable', + 'disablesort': 'Sorting Disable', + 'reversecurrent': 'Reverse current', + 'orderbyasc': 'Order By ASCII', + 'reversebyasc': 'Reverse By ASCII', + 'orderbynum': 'Order By Num', + 'reversebynum': 'Reverse By Num', + 'borderbk': 'Border shading', + 'setcolor': 'interlaced color', + 'unsetcolor': 'Cancel interlacedcolor', + 'setbackground': 'Background interlaced', + 'unsetbackground': 'Cancel Bk interlaced', + 'redandblue': 'Blue and red', + 'threecolorgradient': 'Three-color gradient', + 'copy': "Copy(Ctrl + c)", + 'copymsg': "Browser does not support. Please use 'Ctrl + c' instead!", + 'paste': "Paste(Ctrl + v)", + 'pastemsg': "Browser does not support. Please use 'Ctrl + v' instead!" + }, + 'copymsg': "Browser does not support. Please use 'Ctrl + c' instead!", + 'pastemsg': "Browser does not support. Please use 'Ctrl + v' instead!", + 'anchorMsg': "Link", + 'clearColor': 'Clear', + 'standardColor': 'Standard color', + 'themeColor': 'Theme color', + 'property': 'Property', + 'default': 'Default', + 'modify': 'Modify', + 'save': 'Save', + 'justifyleft': 'Justify Left', + 'justifyright': 'Justify Right', + 'justifycenter': 'Justify Center', + 'justify': 'Default', + 'clear': 'Clear', + 'delete': 'Delete', + 'clickToUpload': "Click to upload", + 'unset': 'Language hasn\'t been set!', + 't_row': 'row', + 't_col': 'col', + 'pasteOpt': 'Paste Option', + 'pasteSourceFormat': "Keep Source Formatting", + 'tagFormat': 'Keep tag', + 'pasteTextFormat': 'Keep Text only', + 'more': 'More', + 'autoTypeSet': { + 'mergeLine': "Merge empty line", + 'delLine': "Del empty line", + 'removeFormat': "Remove format", + 'indent': "Indent", + 'alignment': "Alignment", + 'imageFloat': "Image float", + 'removeFontsize': "Remove font size", + 'removeFontFamily': "Remove fontFamily", + 'removeHtml': "Remove redundant HTML code", + 'pasteFilter': "Paste filter", + 'run': "Done", + 'symbol': 'Symbol Conversion', + 'bdc2sb': 'Full-width to Half-width', + 'tobdc': 'Half-width to Full-width' + }, + + 'background': { + 'static': { + 'lang_background_normal': 'Normal', + 'lang_background_local': 'Online', + 'lang_background_set': 'Background Set', + 'lang_background_none': 'No Background', + 'lang_background_colored': 'Colored Background', + 'lang_background_color': 'Color Set', + 'lang_background_netimg': 'Net-Image', + 'lang_background_align': 'Align Type', + 'lang_background_position': 'Position', + 'repeatType': {'options': ["Center", "Repeat-x", "Repeat-y", "Tile", "Custom"]} + }, + 'noUploadImage': "No pictures has been uploaded!", + 'toggleSelect': 'Change the active state by click!\n Image Size: ' + }, + //===============dialog i18N======================= + 'insertimage': { + 'static': { + 'lang_tab_remote': "Insert", + 'lang_tab_upload': "Local", + 'lang_tab_online': "Manager", + 'lang_tab_search': "Search", + 'lang_input_url': "Address:", + 'lang_input_size': "Size:", + 'lang_input_width': "Width", + 'lang_input_height': "Height", + 'lang_input_border': "Border:", + 'lang_input_vhspace': "Margins:", + 'lang_input_title': "Title:", + 'lang_input_align': 'Image Float Style:', + 'lang_imgLoading': "Loading...", + 'lang_start_upload': "Start Upload", + 'lock': {'title': "Lock rate"}, + 'searchType': {'title': "ImageType", 'options': ["News", "Wallpaper", "emotions", "photo"]}, + 'searchTxt': {'value': "Enter the search keyword!"}, + 'searchBtn': {'value': "Search"}, + 'searchReset': {'value': "Clear"}, + 'noneAlign': {'title': 'None Float'}, + 'leftAlign': {'title': 'Left Float'}, + 'rightAlign': {'title': 'Right Float'}, + 'centerAlign': {'title': 'Center In A Line'} + }, + 'uploadSelectFile': 'Select File', + 'uploadAddFile': 'Add File', + 'uploadStart': 'Start Upload', + 'uploadPause': 'Pause Upload', + 'uploadContinue': 'Continue Upload', + 'uploadRetry': 'Retry Upload', + 'uploadDelete': 'Delete', + 'uploadTurnLeft': 'Turn Left', + 'uploadTurnRight': 'Turn Right', + 'uploadPreview': 'Doing Preview', + 'uploadNoPreview': 'Can Not Preview', + 'updateStatusReady': 'Selected _ pictures, total _KB.', + 'updateStatusConfirm': '_ uploaded successfully and _ upload failed', + 'updateStatusFinish': 'Total _ pictures (_KB), _ uploaded successfully', + 'updateStatusError': ' and _ upload failed', + 'errorNotSupport': 'WebUploader does not support the browser you are using. Please upgrade your browser or flash player', + 'errorLoadConfig': 'Server config not loaded, upload can not work.', + 'errorExceedSize': 'File Size Exceed', + 'errorFileType': 'File Type Not Allow', + 'errorInterrupt': 'File Upload Interrupted', + 'errorUploadRetry': 'Upload Error, Please Retry.', + 'errorHttp': 'Http Error', + 'errorServerUpload': 'Server Result Error.', + 'remoteLockError': "Cannot Lock the Proportion between width and height", + 'numError': "Please enter the correct Num. e.g 123,400", + 'imageUrlError': "The image format may be wrong!", + 'imageLoadError': "Error,please check the network or URL!", + 'searchRemind': "Enter the search keyword!", + 'searchLoading': "Image is loading,please wait...", + 'searchRetry': " Sorry,can't find the image,please try again!" + }, + 'attachment': { + 'static': { + 'lang_tab_upload': 'Upload', + 'lang_tab_online': 'Online', + 'lang_start_upload': "Start upload", + 'lang_drop_remind': "You can drop files here, a single maximum of 300 files" + }, + 'uploadSelectFile': 'Select File', + 'uploadAddFile': 'Add File', + 'uploadStart': 'Start Upload', + 'uploadPause': 'Pause Upload', + 'uploadContinue': 'Continue Upload', + 'uploadRetry': 'Retry Upload', + 'uploadDelete': 'Delete', + 'uploadTurnLeft': 'Turn Left', + 'uploadTurnRight': 'Turn Right', + 'uploadPreview': 'Doing Preview', + 'updateStatusReady': 'Selected _ files, total _KB.', + 'updateStatusConfirm': '_ uploaded successfully and _ upload failed', + 'updateStatusFinish': 'Total _ files (_KB), _ uploaded successfully', + 'updateStatusError': ' and _ upload failed', + 'errorNotSupport': 'WebUploader does not support the browser you are using. Please upgrade your browser or flash player', + 'errorLoadConfig': 'Server config not loaded, upload can not work.', + 'errorExceedSize': 'File Size Exceed', + 'errorFileType': 'File Type Not Allow', + 'errorInterrupt': 'File Upload Interrupted', + 'errorUploadRetry': 'Upload Error, Please Retry.', + 'errorHttp': 'Http Error', + 'errorServerUpload': 'Server Result Error.' + }, + + 'insertvideo': { + 'static': { + 'lang_tab_insertV': "Video", + 'lang_tab_searchV': "Search", + 'lang_tab_uploadV': "Upload", + 'lang_video_url': " URL ", + 'lang_video_size': "Video Size", + 'lang_videoW': "Width", + 'lang_videoH': "Height", + 'lang_alignment': "Alignment", + 'videoSearchTxt': {'value': "Enter the search keyword!"}, + 'videoType': {'options': ["All", "Hot", "Entertainment", "Funny", "Sports", "Science", "variety"]}, + 'videoSearchBtn': {'value': "Search in Baidu"}, + 'videoSearchReset': {'value': "Clear result"}, + + 'lang_input_fileStatus': ' No file uploaded!', + 'startUpload': {'style': "background:url(upload.png) no-repeat;"}, + + 'lang_upload_size': "Video Size", + 'lang_upload_width': "Width", + 'lang_upload_height': "Height", + 'lang_upload_alignment': "Alignment", + 'lang_format_advice': "Recommends mp4 format." + }, + 'numError': "Please enter the correct Num. e.g 123,400", + 'floatLeft': "Float left", + 'floatRight': "Float right", + 'default': "Default", + 'block': "Display in block", + 'urlError': "The video url format may be wrong!", + 'loading': "  The video is loading, please wait…", + 'clickToSelect': "Click to select", + 'goToSource': 'Visit source video ', + 'noVideo': "    Sorry,can't find the video,please try again!", + + 'browseFiles': 'Open files', + 'uploadSuccess': 'Upload Successful!', + 'delSuccessFile': 'Remove from the success of the queue', + 'delFailSaveFile': 'Remove the save failed file', + 'statusPrompt': ' file(s) uploaded! ', + 'flashVersionError': 'The current Flash version is too low, please update FlashPlayer,then try again!', + 'flashLoadingError': 'The Flash failed loading! Please check the path or network state', + 'fileUploadReady': 'Wait for uploading...', + 'delUploadQueue': 'Remove from the uploading queue ', + 'limitPrompt1': 'Can not choose more than single', + 'limitPrompt2': 'file(s)!Please choose again!', + 'delFailFile': 'Remove failure file', + 'fileSizeLimit': 'File size exceeds the limit!', + 'emptyFile': 'Can not upload an empty file!', + 'fileTypeError': 'File type error!', + 'unknownError': 'Unknown error!', + 'fileUploading': 'Uploading,please wait...', + 'cancelUpload': 'Cancel upload', + 'netError': 'Network error', + 'failUpload': 'Upload failed', + 'serverIOError': 'Server IO error!', + 'noAuthority': 'No Permission!', + 'fileNumLimit': 'Upload limit to the number', + 'failCheck': 'Authentication fails, the upload is skipped!', + 'fileCanceling': 'Cancel, please wait...', + 'stopUploading': 'Upload has stopped...', + + 'uploadSelectFile': 'Select File', + 'uploadAddFile': 'Add File', + 'uploadStart': 'Start Upload', + 'uploadPause': 'Pause Upload', + 'uploadContinue': 'Continue Upload', + 'uploadRetry': 'Retry Upload', + 'uploadDelete': 'Delete', + 'uploadTurnLeft': 'Turn Left', + 'uploadTurnRight': 'Turn Right', + 'uploadPreview': 'Doing Preview', + 'updateStatusReady': 'Selected _ files, total _KB.', + 'updateStatusConfirm': '_ uploaded successfully and _ upload failed', + 'updateStatusFinish': 'Total _ files (_KB), _ uploaded successfully', + 'updateStatusError': ' and _ upload failed', + 'errorNotSupport': 'WebUploader does not support the browser you are using. Please upgrade your browser or flash player', + 'errorLoadConfig': 'Server config not loaded, upload can not work.', + 'errorExceedSize': 'File Size Exceed', + 'errorFileType': 'File Type Not Allow', + 'errorInterrupt': 'File Upload Interrupted', + 'errorUploadRetry': 'Upload Error, Please Retry.', + 'errorHttp': 'Http Error', + 'errorServerUpload': 'Server Result Error.' + }, + 'template': { + 'static': { + 'lang_template_bkcolor': 'Background Color', + 'lang_template_clear': 'Keep Content', + 'lang_template_select': 'Select Template' + }, + 'blank': "Blank", + 'blog': "Blog", + 'resume': "Resume", + 'richText': "Rich Text", + 'scrPapers': "Scientific Papers" + }, + scrawl: { + 'static': { + 'lang_input_previousStep': "Previous", + 'lang_input_nextsStep': "Next", + 'lang_input_clear': 'Clear', + 'lang_input_addPic': 'AddImage', + 'lang_input_ScalePic': 'ScaleImage', + 'lang_input_removePic': 'RemoveImage', + 'J_imgTxt': {title: 'Add background image'} + }, + 'noScarwl': "No paint, a white paper...", + 'scrawlUpLoading': "Image is uploading, please wait...", + 'continueBtn': "Try again", + 'imageError': "Image failed to load!", + 'backgroundUploading': 'Image is uploading,please wait...' + }, + anchor: { + 'static': { + 'lang_input_anchorName': 'Anchor Name:' + } + }, + emotion: { + 'static': { + 'lang_input_choice': 'Choice', + 'lang_input_Tuzki': 'Tuzki', + 'lang_input_lvdouwa': 'LvDouWa', + 'lang_input_BOBO': 'BOBO', + 'lang_input_babyCat': 'BabyCat', + 'lang_input_bubble': 'Bubble', + 'lang_input_youa': 'YouA' + } + }, + help: { + 'static': { + 'lang_input_about': 'About UEditor Plus', + 'lang_input_shortcuts': 'Shortcuts', + 'lang_input_introduction': "UEditor Plus is based on UEditor.", + 'lang_Txt_shortcuts': 'Shortcuts', + 'lang_Txt_func': 'Function', + 'lang_Txt_bold': 'Bold', + 'lang_Txt_copy': 'Copy', + 'lang_Txt_cut': 'Cut', + 'lang_Txt_Paste': 'Paste', + 'lang_Txt_undo': 'Undo', + 'lang_Txt_redo': 'Redo', + 'lang_Txt_italic': 'Italic', + 'lang_Txt_underline': 'Underline', + 'lang_Txt_selectAll': 'Select All', + 'lang_Txt_visualEnter': 'Submit', + 'lang_Txt_fullscreen': 'Fullscreen' + } + }, + insertframe: { + 'static': { + 'lang_input_address': 'Address:', + 'lang_input_width': 'Width:', + 'lang_input_height': 'height:', + 'lang_input_isScroll': 'Enable scrollbars:', + 'lang_input_frameborder': 'Show frame border:', + 'lang_input_alignMode': 'Alignment:', + 'align': {title: "Alignment", options: ["Default", "Left", "Right", "Center"]} + }, + 'enterAddress': 'Please enter an address!' + }, + link: { + 'static': { + 'lang_input_text': 'Text:', + 'lang_input_url': 'URL:', + 'lang_input_title': 'Title:', + 'lang_input_target': 'open in new window:' + }, + 'validLink': 'Supports only effective when a link is selected', + 'httpPrompt': 'The hyperlink you enter should start with "http|https|ftp://"!' + }, + searchreplace: { + 'static': { + lang_tab_search: "Search", + lang_tab_replace: "Replace", + lang_search1: "Search", + lang_search2: "Search", + lang_replace: "Replace", + lang_searchReg: 'Support regular expression ,which starts and ends with a slash ,for example "/expression/"', + lang_searchReg1: 'Support regular expression ,which starts and ends with a slash ,for example "/expression/"', + lang_case_sensitive1: "Case sense", + lang_case_sensitive2: "Case sense", + nextFindBtn: {value: "Next"}, + preFindBtn: {value: "Preview"}, + nextReplaceBtn: {value: "Next"}, + preReplaceBtn: {value: "Preview"}, + repalceBtn: {value: "Replace"}, + repalceAllBtn: {value: "Replace all"} + }, + getEnd: "Has the search to the bottom!", + getStart: "Has the search to the top!", + countMsg: "Altogether replaced {#count} character(s)!" + }, + spechars: { + 'static': {}, + tsfh: "Special", + lmsz: "Roman", + szfh: "Numeral", + rwfh: "Japanese", + xlzm: "The Greek", + ewzm: "Russian", + pyzm: "Phonetic", + yyyb: "English", + zyzf: "Others" + }, + 'edittable': { + 'static': { + 'lang_tableStyle': 'Table style', + 'lang_insertCaption': 'Add table header row', + 'lang_insertTitle': 'Add table title row', + 'lang_insertTitleCol': 'Add table title col', + 'lang_tableSize': 'Automatically adjust table size', + 'lang_autoSizeContent': 'Adaptive by form text', + 'lang_orderbycontent': "Table of contents sortable", + 'lang_autoSizePage': 'Page width adaptive', + 'lang_example': 'Example', + 'lang_borderStyle': 'Table Border', + 'lang_color': 'Color:' + }, + captionName: 'Caption', + titleName: 'Title', + cellsName: 'text', + errorMsg: 'There are merged cells, can not sort.' + }, + 'edittip': { + 'static': { + lang_delRow: 'Delete entire row', + lang_delCol: 'Delete entire col' + } + }, + 'edittd': { + 'static': { + lang_tdBkColor: 'Background Color:' + } + }, + 'formula': { + 'static': {}, + }, + 'ai': { + 'static': {}, + }, + wordimage: { + 'static': { + lang_resave: "The re-save step", + uploadBtn: {src: "upload.png", alt: "Upload"}, + clipboard: {style: "background: url(copy.png) -153px -1px no-repeat;"}, + lang_step: " 1. Click top button to copy the url and then open the dialog to paste it. 2. Open after choose photos uploaded process." + }, + fileType: "Image", + flashError: "Flash initialization failed!", + netError: "Network error! Please try again!", + copySuccess: "URL has been copied!", + + 'flashI18n': { + lang: encodeURI('{"UploadingState":"totalNum: ${a},uploadComplete: ${b}", "BeforeUpload":"waitingNum: ${a}", "ExceedSize":"Size exceed${a}", "ErrorInPreview":"Preview failed", "DefaultDescription":"Description", "LoadingImage":"Loading..."}'), + uploadingTF: encodeURI('{"font":"Arial", "size":12, "color":"0x000", "bold":"true", "italic":"false", "underline":"false"}'), + imageTF: encodeURI('{"font":"Arial", "size":11, "color":"red", "bold":"false", "italic":"false", "underline":"false"}'), + textEncoding: "utf-8", + addImageSkinURL: "addImage.png", + allDeleteBtnUpSkinURL: "allDeleteBtnUpSkin.png", + allDeleteBtnHoverSkinURL: "allDeleteBtnHoverSkin.png", + rotateLeftBtnEnableSkinURL: "rotateLeftEnable.png", + rotateLeftBtnDisableSkinURL: "rotateLeftDisable.png", + rotateRightBtnEnableSkinURL: "rotateRightEnable.png", + rotateRightBtnDisableSkinURL: "rotateRightDisable.png", + deleteBtnEnableSkinURL: "deleteEnable.png", + deleteBtnDisableSkinURL: "deleteDisable.png", + backgroundURL: '', + listBackgroundURL: '', + buttonURL: 'button.png' + } + }, +}; diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/en/images/addimage.png b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/addimage.png new file mode 100644 index 0000000..3a2fd17 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/addimage.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/en/images/alldeletebtnhoverskin.png b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/alldeletebtnhoverskin.png new file mode 100644 index 0000000..355eeab Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/alldeletebtnhoverskin.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/en/images/alldeletebtnupskin.png b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/alldeletebtnupskin.png new file mode 100644 index 0000000..61658ce Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/alldeletebtnupskin.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/en/images/background.png b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/background.png new file mode 100644 index 0000000..d5bf5fd Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/background.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/en/images/button.png b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/button.png new file mode 100644 index 0000000..098874c Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/button.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/en/images/copy.png b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/copy.png new file mode 100644 index 0000000..f982e8b Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/copy.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/en/images/deletedisable.png b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/deletedisable.png new file mode 100644 index 0000000..c8ee750 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/deletedisable.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/en/images/deleteenable.png b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/deleteenable.png new file mode 100644 index 0000000..26acc88 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/deleteenable.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/en/images/listbackground.png b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/listbackground.png new file mode 100644 index 0000000..4f82ccd Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/listbackground.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/en/images/localimage.png b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/localimage.png new file mode 100644 index 0000000..dcecad4 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/localimage.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/en/images/music.png b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/music.png new file mode 100644 index 0000000..2f495fe Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/music.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/en/images/rotateleftdisable.png b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/rotateleftdisable.png new file mode 100644 index 0000000..741526e Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/rotateleftdisable.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/en/images/rotateleftenable.png b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/rotateleftenable.png new file mode 100644 index 0000000..e164ddb Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/rotateleftenable.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/en/images/rotaterightdisable.png b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/rotaterightdisable.png new file mode 100644 index 0000000..5a78c26 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/rotaterightdisable.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/en/images/rotaterightenable.png b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/rotaterightenable.png new file mode 100644 index 0000000..d768531 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/rotaterightenable.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/en/images/upload.png b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/upload.png new file mode 100644 index 0000000..7bb15b3 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/en/images/upload.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/zh-cn/images/copy.png b/ruoyi-ui/public/static/UEditorPlus/lang/zh-cn/images/copy.png new file mode 100644 index 0000000..b2536aa Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/zh-cn/images/copy.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/zh-cn/images/localimage.png b/ruoyi-ui/public/static/UEditorPlus/lang/zh-cn/images/localimage.png new file mode 100644 index 0000000..ba5f07a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/zh-cn/images/localimage.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/zh-cn/images/music.png b/ruoyi-ui/public/static/UEditorPlus/lang/zh-cn/images/music.png new file mode 100644 index 0000000..354edeb Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/zh-cn/images/music.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/zh-cn/images/upload.png b/ruoyi-ui/public/static/UEditorPlus/lang/zh-cn/images/upload.png new file mode 100644 index 0000000..08d4d92 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/lang/zh-cn/images/upload.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/lang/zh-cn/zh-cn.js b/ruoyi-ui/public/static/UEditorPlus/lang/zh-cn/zh-cn.js new file mode 100644 index 0000000..f630f09 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/lang/zh-cn/zh-cn.js @@ -0,0 +1,752 @@ +/** + * Created with JetBrains PhpStorm. + * User: taoqili + * Date: 12-6-12 + * Time: 下午5:02 + * To change this template use File | Settings | File Templates. + */ +UE.I18N['zh-cn'] = { + 'labelMap': { + 'anchor': '锚点', + 'undo': '撤销', + 'redo': '重做', + 'bold': '加粗', + 'indent': '首行缩进', + 'italic': '斜体', + 'underline': '下划线', + 'strikethrough': '删除线', + 'subscript': '下标', + 'fontborder': '字符边框', + 'superscript': '上标', + 'formatmatch': '格式刷', + 'source': '源代码', + 'blockquote': '引用', + 'pasteplain': '纯文本粘贴模式', + 'selectall': '全选', + 'print': '打印', + 'preview': '预览', + 'horizontal': '分隔线', + 'removeformat': '清除格式', + 'time': '时间', + 'date': '日期', + 'unlink': '取消链接', + 'insertrow': '前插入行', + 'insertcol': '前插入列', + 'mergeright': '右合并单元格', + 'mergedown': '下合并单元格', + 'deleterow': '删除行', + 'deletecol': '删除列', + 'splittorows': '拆分成行', + 'splittocols': '拆分成列', + 'splittocells': '完全拆分单元格', + 'deletecaption': '删除表格标题', + 'inserttitle': '插入标题', + 'mergecells': '合并多个单元格', + 'deletetable': '删除表格', + 'cleardoc': '清空文档', + 'contentimport': '导入内容', + 'ai': 'AI智能助手', + 'insertparagraphbeforetable': "表格前插入行", + 'insertcode': '代码语言', + 'fontfamily': '字体', + 'fontsize': '字号', + 'paragraph': '段落格式', + 'simpleupload': '单图上传', + 'insertimage': '插入图片', + 'edittable': '表格属性', + 'edittd': '单元格属性', + 'link': '超链接', + 'emotion': '表情', + 'spechars': '特殊字符', + 'searchreplace': '查询替换', + 'insertvideo': '视频', + 'insertaudio': '音频', + 'help': '帮助', + 'justifyleft': '居左对齐', + 'justifyright': '居右对齐', + 'justifycenter': '居中对齐', + 'justifyjustify': '两端对齐', + 'forecolor': '字体颜色', + 'backcolor': '背景色', + 'insertorderedlist': '有序列表', + 'insertunorderedlist': '无序列表', + 'fullscreen': '全屏', + 'directionalityltr': '从左向右输入', + 'directionalityrtl': '从右向左输入', + 'rowspacingtop': '段前距', + 'rowspacingbottom': '段后距', + 'pagebreak': '分页', + 'insertframe': '插入Iframe', + 'imagenone': '默认', + 'imageleft': '左浮动', + 'imageright': '右浮动', + 'attachment': '附件', + 'imagecenter': '居中', + 'wordimage': '图片转存', + 'formula': '公式', + 'lineheight': '行间距', + 'edittip': '编辑提示', + 'customstyle': '自定义标题', + 'autotypeset': '自动排版', + 'touppercase': '字母大写', + 'tolowercase': '字母小写', + 'background': '背景', + 'template': '模板', + 'scrawl': '涂鸦', + 'inserttable': '插入表格', + }, + 'autosave': { + 'autoRestoreTip': '已自动从草稿箱恢复' + }, + 'insertorderedlist': { + // 'num': '1,2,3...', + // 'num1': '1),2),3)...', + // 'num2': '(1),(2),(3)...', + // 'cn': '一,二,三....', + // 'cn1': '一),二),三)....', + // 'cn2': '(一),(二),(三)....', + 'decimal': '1,2,3...', + 'lower-alpha': 'a,b,c...', + 'lower-roman': 'i,ii,iii...', + 'upper-alpha': 'A,B,C...', + 'upper-roman': 'I,II,III...' + }, + 'insertunorderedlist': { + 'circle': '○ 大圆圈', + 'disc': '● 小黑点', + 'square': '■ 小方块 ', + // 'dash': '— 破折号', + // 'dot': ' 。 小圆圈' + }, + 'paragraph': {'p': '段落', 'h1': '标题 1', 'h2': '标题 2', 'h3': '标题 3', 'h4': '标题 4', 'h5': '标题 5', 'h6': '标题 6'}, + 'fontfamily': { + 'default': '默认', + 'songti': '宋体', + 'kaiti': '楷体', + 'heiti': '黑体', + 'lishu': '隶书', + 'yahei': '微软雅黑', + // 'andaleMono':'andale mono', + 'arial': 'arial', + // 'arialBlack':'arial black', + // 'comicSansMs':'comic sans ms', + // 'impact':'impact', + 'timesNewRoman': 'times new roman' + }, + 'customstyle': { + 'tc': '标题居中', + 'tl': '标题居左', + 'im': '强调', + 'hi': '明显强调' + }, + 'autoupload': { + 'exceedSizeError': '文件大小超出限制', + 'exceedTypeError': '文件格式不允许', + 'jsonEncodeError': '服务器返回格式错误', + 'loading': "正在上传...", + 'loadError': "上传错误", + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!' + }, + 'simpleupload': { + 'exceedSizeError': '文件大小超出限制', + 'exceedTypeError': '文件格式不允许', + 'jsonEncodeError': '服务器返回格式错误', + 'loading': "正在上传...", + 'loadError': "上传错误", + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!' + }, + 'elementPathTip': "元素路径", + 'wordCountTip': "字数统计", + 'wordCountMsg': '{#count} / {#leave}', + 'wordOverFlowMsg': '字数超出最大允许值,服务器可能拒绝保存!', + 'ok': "确认", + 'cancel': "取消", + 'closeDialog': "关闭对话框", + 'tableDrag': "表格拖动必须引入uiUtils.js文件!", + 'autofloatMsg': "工具栏浮动依赖编辑器UI,您首先需要引入UI文件!", + 'loadconfigError': '获取后台配置项请求出错,上传功能将不能正常使用!', + 'loadconfigFormatError': '后台配置项返回格式出错,上传功能将不能正常使用!', + 'loadconfigHttpError': '请求后台配置项http错误,上传功能将不能正常使用!', + 'insertcode': { + 'as3': 'ActionScript 3', + 'bash': 'Bash/Shell', + 'cpp': 'C/C++', + 'css': 'CSS', + 'cf': 'ColdFusion', + 'c#': 'C#', + 'delphi': 'Delphi', + 'diff': 'Diff', + 'erlang': 'Erlang', + 'groovy': 'Groovy', + 'html': 'HTML', + 'java': 'Java', + 'jfx': 'JavaFX', + 'js': 'JavaScript', + 'pl': 'Perl', + 'php': 'PHP', + 'plain': 'Plain Text', + 'ps': 'PowerShell', + 'python': 'Python', + 'ruby': 'Ruby', + 'scala': 'Scala', + 'sql': 'SQL', + 'vb': 'Visual Basic', + 'xml': 'XML' + }, + 'confirmClear': "确定清空当前文档么?", + 'contextMenu': { + 'delete': "删除", + 'selectall': "全选", + 'deletecode': "删除代码", + 'cleardoc': "清空文档", + 'confirmclear': "确定清空当前文档么?", + 'unlink': "删除超链接", + 'paragraph': "段落格式", + 'edittable': "表格属性", + 'aligntd': "单元格对齐方式", + 'aligntable': '表格对齐方式', + 'tableleft': '左浮动', + 'tablecenter': '居中显示', + 'tableright': '右浮动', + 'edittd': "单元格属性", + 'setbordervisible': '设置表格边线可见', + 'justifyleft': '左对齐', + 'justifyright': '右对齐', + 'justifycenter': '居中对齐', + 'justifyjustify': '两端对齐', + 'table': "表格", + 'inserttable': '插入表格', + 'deletetable': "删除表格", + 'insertparagraphbefore': "前插入段落", + 'insertparagraphafter': '后插入段落', + 'deleterow': "删除当前行", + 'deletecol': "删除当前列", + 'insertrow': "前插入行", + 'insertcol': "左插入列", + 'insertrownext': '后插入行', + 'insertcolnext': '右插入列', + 'insertcaption': '插入表格名称', + 'deletecaption': '删除表格名称', + 'inserttitle': '插入表格标题行', + 'deletetitle': '删除表格标题行', + 'inserttitlecol': '插入表格标题列', + 'deletetitlecol': '删除表格标题列', + 'averageDiseRow': '平均分布各行', + 'averageDisCol': '平均分布各列', + 'mergeright': "向右合并", + 'mergeleft': "向左合并", + 'mergedown': "向下合并", + 'mergecells': "合并单元格", + 'splittocells': "完全拆分单元格", + 'splittocols': "拆分成列", + 'splittorows': "拆分成行", + 'tablesort': '表格排序', + 'enablesort': '设置表格可排序', + 'disablesort': '取消表格可排序', + 'reversecurrent': '逆序当前', + 'orderbyasc': '按ASCII字符升序', + 'reversebyasc': '按ASCII字符降序', + 'orderbynum': '按数值大小升序', + 'reversebynum': '按数值大小降序', + 'borderbk': '边框底纹', + 'setcolor': '表格隔行变色', + 'unsetcolor': '取消表格隔行变色', + 'setbackground': '选区背景隔行', + 'unsetbackground': '取消选区背景', + 'redandblue': '红蓝相间', + 'threecolorgradient': '三色渐变', + 'copy': "复制(Ctrl + c)", + 'copymsg': "浏览器不支持,请使用 'Ctrl + c'", + 'paste': "粘贴(Ctrl + v)", + 'pastemsg': "浏览器不支持,请使用 'Ctrl + v'" + }, + 'copymsg': "浏览器不支持,请使用 'Ctrl + c'", + 'pastemsg': "浏览器不支持,请使用 'Ctrl + v'", + 'anchorMsg': "链接", + 'clearColor': '清空颜色', + 'standardColor': '标准颜色', + 'themeColor': '主题颜色', + 'property': '属性', + 'default': '默认', + 'modify': '修改', + 'save': '保存', + 'justifyleft': '左对齐', + 'justifyright': '右对齐', + 'justifycenter': '居中', + 'justify': '默认', + 'clear': '清除', + 'delete': '删除', + 'clickToUpload': "点击上传", + 'unset': '尚未设置语言文件', + 't_row': '行', + 't_col': '列', + 'more': '更多', + 'pasteOpt': '粘贴选项', + 'pasteSourceFormat': "保留源格式", + 'tagFormat': '只保留标签', + 'pasteTextFormat': '只保留文本', + 'autoTypeSet': { + 'mergeLine': "合并空行", + 'delLine': "清除空行", + 'removeFormat': "清除格式", + 'indent': "首行缩进", + 'alignment': "对齐方式", + 'imageFloat': "图片浮动", + 'removeFontsize': "清除字号", + 'removeFontFamily': "清除字体", + 'removeHtml': "清除冗余HTML代码", + 'pasteFilter': "粘贴过滤", + 'run': "执行", + 'symbol': '符号转换', + 'bdc2sb': '全角转半角', + 'tobdc': '半角转全角' + }, + + 'background': { + 'static': { + 'lang_background_normal': '背景设置', + 'lang_background_local': '在线图片', + 'lang_background_set': '选项', + 'lang_background_none': '无背景色', + 'lang_background_colored': '有背景色', + 'lang_background_color': '颜色设置', + 'lang_background_netimg': '网络图片', + 'lang_background_align': '对齐方式', + 'lang_background_position': '精确定位', + 'repeatType': {'options': ["居中", "横向重复", "纵向重复", "平铺", "自定义"]} + + }, + 'noUploadImage': "当前未上传过任何图片!", + 'toggleSelect': "单击可切换选中状态\n原图尺寸: " + }, + //===============dialog i18N======================= + 'insertimage': { + 'static': { + 'lang_tab_remote': "插入图片", //节点 + 'lang_tab_upload': "本地上传", + 'lang_tab_online': "在线管理", + 'lang_input_url': "地 址:", + 'lang_input_size': "大 小:", + 'lang_input_width': "宽度", + 'lang_input_height': "高度", + 'lang_input_border': "边 框:", + 'lang_input_vhspace': "边 距:", + 'lang_input_title': "描 述:", + 'lang_input_align': '图片浮动方式:', + 'lang_imgLoading': " 图片加载中……", + 'lang_start_upload': "开始上传", + 'lock': {'title': "锁定宽高比例"}, //属性 + 'searchType': {'title': "图片类型", 'options': ["新闻", "壁纸", "表情", "头像"]}, //select的option + 'searchTxt': {'value': "请输入搜索关键词"}, + 'searchBtn': {'value': "百度一下"}, + 'searchReset': {'value': "清空搜索"}, + 'noneAlign': {'title': '无浮动'}, + 'leftAlign': {'title': '左浮动'}, + 'rightAlign': {'title': '右浮动'}, + 'centerAlign': {'title': '居中独占一行'} + }, + 'uploadSelectFile': '点击选择图片', + 'uploadAddFile': '继续添加', + 'uploadStart': '开始上传', + 'uploadPause': '暂停上传', + 'uploadContinue': '继续上传', + 'uploadRetry': '重试上传', + 'uploadDelete': '删除', + 'uploadTurnLeft': '向左旋转', + 'uploadTurnRight': '向右旋转', + 'uploadPreview': '预览中', + 'uploadNoPreview': '不能预览', + 'updateStatusReady': '选中_张图片,共_KB。', + 'updateStatusConfirm': '已成功上传_张照片,_张照片上传失败', + 'updateStatusFinish': '共_张(_KB),_张上传成功', + 'updateStatusError': ',_张上传失败。', + 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', + 'errorExceedSize': '文件大小超出', + 'errorFileType': '文件格式不允许', + 'errorInterrupt': '文件传输中断', + 'errorUploadRetry': '上传失败,请重试', + 'errorHttp': 'http请求错误', + 'errorServerUpload': '服务器返回出错', + 'remoteLockError': "宽高不正确,不能所定比例", + 'numError': "请输入正确的长度或者宽度值!例如:123,400", + 'imageUrlError': "不允许的图片格式或者图片域!", + 'imageLoadError': "图片加载失败!请检查链接地址或网络状态!", + 'searchRemind': "请输入搜索关键词", + 'searchLoading': "图片加载中,请稍后……", + 'searchRetry': " :( ,抱歉,没有找到图片!请重试一次!" + }, + 'attachment': { + 'static': { + 'lang_tab_upload': '上传附件', + 'lang_tab_online': '在线附件', + 'lang_start_upload': "开始上传", + 'lang_drop_remind': "可以将文件拖到这里,单次最多可选100个文件" + }, + 'uploadSelectFile': '点击选择文件', + 'uploadAddFile': '继续添加', + 'uploadStart': '开始上传', + 'uploadPause': '暂停上传', + 'uploadContinue': '继续上传', + 'uploadRetry': '重试上传', + 'uploadDelete': '删除', + 'uploadTurnLeft': '向左旋转', + 'uploadTurnRight': '向右旋转', + 'uploadPreview': '预览中', + 'updateStatusReady': '选中_个文件,共_KB。', + 'updateStatusConfirm': '已成功上传_个文件,_个文件上传失败', + 'updateStatusFinish': '共_个(_KB),_个上传成功', + 'updateStatusError': ',_张上传失败。', + 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', + 'errorExceedSize': '文件大小超出', + 'errorFileType': '文件格式不允许', + 'errorInterrupt': '文件传输中断', + 'errorUploadRetry': '上传失败,请重试', + 'errorHttp': 'http请求错误', + 'errorServerUpload': '服务器返回出错' + }, + 'insertvideo': { + 'static': { + 'lang_tab_insertV': "插入视频", + 'lang_tab_searchV': "搜索视频", + 'lang_tab_uploadV': "上传视频", + 'lang_video_url': "视频网址", + 'lang_video_size': "视频尺寸", + 'lang_videoW': "宽度", + 'lang_videoH': "高度", + 'lang_alignment': "对齐方式", + 'videoSearchTxt': {'value': "请输入搜索关键字!"}, + 'videoType': {'options': ["全部", "热门", "娱乐", "搞笑", "体育", "科技", "综艺"]}, + 'videoSearchBtn': {'value': "百度一下"}, + 'videoSearchReset': {'value': "清空结果"}, + + 'lang_input_fileStatus': ' 当前未上传文件', + 'startUpload': {'style': "background:url(upload.png) no-repeat;"}, + + 'lang_upload_size': "视频尺寸", + 'lang_upload_width': "宽度", + 'lang_upload_height': "高度", + 'lang_upload_alignment': "对齐方式", + 'lang_format_advice': "建议使用mp4格式." + + }, + 'numError': "请输入正确的数值,如123,400", + 'floatLeft': "左浮动", + 'floatRight': "右浮动", + 'default': "默认", + 'block': "独占一行", + 'urlError': "输入的视频地址有误,请检查后再试!", + 'loading': "  视频加载中,请等待……", + 'clickToSelect': "点击选中", + 'goToSource': '访问源视频', + 'noVideo': "    抱歉,找不到对应的视频,请重试!", + + 'browseFiles': '浏览文件', + 'uploadSuccess': '上传成功!', + 'delSuccessFile': '从成功队列中移除', + 'delFailSaveFile': '移除保存失败文件', + 'statusPrompt': ' 个文件已上传! ', + 'flashVersionError': '当前Flash版本过低,请更新FlashPlayer后重试!', + 'flashLoadingError': 'Flash加载失败!请检查路径或网络状态', + 'fileUploadReady': '等待上传……', + 'delUploadQueue': '从上传队列中移除', + 'limitPrompt1': '单次不能选择超过', + 'limitPrompt2': '个文件!请重新选择!', + 'delFailFile': '移除失败文件', + 'fileSizeLimit': '文件大小超出限制!', + 'emptyFile': '空文件无法上传!', + 'fileTypeError': '文件类型不允许!', + 'unknownError': '未知错误!', + 'fileUploading': '上传中,请等待……', + 'cancelUpload': '取消上传', + 'netError': '网络错误', + 'failUpload': '上传失败!', + 'serverIOError': '服务器IO错误!', + 'noAuthority': '无权限!', + 'fileNumLimit': '上传个数限制', + 'failCheck': '验证失败,本次上传被跳过!', + 'fileCanceling': '取消中,请等待……', + 'stopUploading': '上传已停止……', + + 'uploadSelectFile': '点击选择文件', + 'uploadAddFile': '继续添加', + 'uploadStart': '开始上传', + 'uploadPause': '暂停上传', + 'uploadContinue': '继续上传', + 'uploadRetry': '重试上传', + 'uploadDelete': '删除', + 'uploadTurnLeft': '向左旋转', + 'uploadTurnRight': '向右旋转', + 'uploadPreview': '预览中', + 'updateStatusReady': '选中_个文件,共_KB。', + 'updateStatusConfirm': '成功上传_个,_个失败', + 'updateStatusFinish': '共_个(_KB),_个成功上传', + 'updateStatusError': ',_张上传失败。', + 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', + 'errorExceedSize': '文件大小超出', + 'errorFileType': '文件格式不允许', + 'errorInterrupt': '文件传输中断', + 'errorUploadRetry': '上传失败,请重试', + 'errorHttp': 'http请求错误', + 'errorServerUpload': '服务器返回出错' + }, + 'insertaudio': { + 'static': { + 'lang_tab_insertV': "插入音频", + 'lang_tab_searchV': "搜索音频", + 'lang_tab_uploadV': "上传音频", + 'lang_video_url': "音频网址", + 'lang_video_size': "音频尺寸", + 'lang_videoW': "宽度", + 'lang_videoH': "高度", + 'lang_alignment': "对齐方式", + 'videoSearchTxt': {'value': "请输入搜索关键字!"}, + 'videoType': {'options': ["全部", "热门", "娱乐", "搞笑", "体育", "科技", "综艺"]}, + 'videoSearchBtn': {'value': "百度一下"}, + 'videoSearchReset': {'value': "清空结果"}, + + 'lang_input_fileStatus': ' 当前未上传文件', + 'startUpload': {'style': "background:url(upload.png) no-repeat;"}, + + 'lang_upload_size': "音频尺寸", + 'lang_upload_width': "宽度", + 'lang_upload_height': "高度", + 'lang_upload_alignment': "对齐方式", + 'lang_format_advice': "建议使用mp4格式." + + }, + 'numError': "请输入正确的数值,如123,400", + 'floatLeft': "左浮动", + 'floatRight': "右浮动", + 'default': "默认", + 'block': "独占一行", + 'urlError': "输入的音频地址有误,请检查后再试!", + 'loading': "  音频加载中,请等待……", + 'clickToSelect': "点击选中", + 'goToSource': '访问源音频', + 'noVideo': "    抱歉,找不到对应的音频,请重试!", + + 'browseFiles': '浏览文件', + 'uploadSuccess': '上传成功!', + 'delSuccessFile': '从成功队列中移除', + 'delFailSaveFile': '移除保存失败文件', + 'statusPrompt': ' 个文件已上传! ', + 'flashVersionError': '当前Flash版本过低,请更新FlashPlayer后重试!', + 'flashLoadingError': 'Flash加载失败!请检查路径或网络状态', + 'fileUploadReady': '等待上传……', + 'delUploadQueue': '从上传队列中移除', + 'limitPrompt1': '单次不能选择超过', + 'limitPrompt2': '个文件!请重新选择!', + 'delFailFile': '移除失败文件', + 'fileSizeLimit': '文件大小超出限制!', + 'emptyFile': '空文件无法上传!', + 'fileTypeError': '文件类型不允许!', + 'unknownError': '未知错误!', + 'fileUploading': '上传中,请等待……', + 'cancelUpload': '取消上传', + 'netError': '网络错误', + 'failUpload': '上传失败!', + 'serverIOError': '服务器IO错误!', + 'noAuthority': '无权限!', + 'fileNumLimit': '上传个数限制', + 'failCheck': '验证失败,本次上传被跳过!', + 'fileCanceling': '取消中,请等待……', + 'stopUploading': '上传已停止……', + + 'uploadSelectFile': '点击选择文件', + 'uploadAddFile': '继续添加', + 'uploadStart': '开始上传', + 'uploadPause': '暂停上传', + 'uploadContinue': '继续上传', + 'uploadRetry': '重试上传', + 'uploadDelete': '删除', + 'uploadTurnLeft': '向左旋转', + 'uploadTurnRight': '向右旋转', + 'uploadPreview': '预览中', + 'updateStatusReady': '选中_个文件,共_KB。', + 'updateStatusConfirm': '成功上传_个,_个失败', + 'updateStatusFinish': '共_个(_KB),_个成功上传', + 'updateStatusError': ',_张上传失败。', + 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', + 'errorExceedSize': '文件大小超出', + 'errorFileType': '文件格式不允许', + 'errorInterrupt': '文件传输中断', + 'errorUploadRetry': '上传失败,请重试', + 'errorHttp': 'http请求错误', + 'errorServerUpload': '服务器返回出错' + }, + 'template': { + 'static': { + 'lang_template_bkcolor': '背景颜色', + 'lang_template_clear': '保留原有内容', + 'lang_template_select': '选择模板' + }, + 'blank': "空白文档", + 'blog': "博客文章", + 'resume': "个人简历", + 'richText': "图文混排", + 'sciPapers': "科技论文" + + + }, + 'scrawl': { + 'static': { + 'lang_input_previousStep': "上一步", + 'lang_input_nextsStep': "下一步", + 'lang_input_clear': '清空', + 'lang_input_addPic': '添加背景', + 'lang_input_ScalePic': '缩放背景', + 'lang_input_removePic': '删除背景', + 'J_imgTxt': {title: '添加背景图片'} + }, + 'noScarwl': "尚未作画,白纸一张~", + 'scrawlUpLoading': "涂鸦上传中,别急哦~", + 'continueBtn': "继续", + 'imageError': "糟糕,图片读取失败了!", + 'backgroundUploading': '背景图片上传中,别急哦~' + }, + 'anchor': { + 'static': { + 'lang_input_anchorName': '锚点名字:' + } + }, + 'emotion': { + 'static': { + 'lang_input_choice': '精选', + 'lang_input_Tuzki': '兔斯基', + 'lang_input_BOBO': 'BOBO', + 'lang_input_lvdouwa': '绿豆蛙', + 'lang_input_babyCat': 'baby猫', + 'lang_input_bubble': '泡泡', + 'lang_input_youa': '有啊' + } + }, + 'help': { + 'static': { + 'lang_input_about': '关于 UEditor Plus', + 'lang_input_shortcuts': '快捷键', + 'lang_input_introduction': 'UEditor Plus 是基于百度UEditor二次开发的所见即所得富文本web编辑器,主要丰富也界面样式,注重用户体验等特点。基于Apache 2.0协议开源,允许自由使用和修改代码。', + 'lang_Txt_shortcuts': '快捷键', + 'lang_Txt_func': '功能', + 'lang_Txt_bold': '给选中字设置为加粗', + 'lang_Txt_copy': '复制选中内容', + 'lang_Txt_cut': '剪切选中内容', + 'lang_Txt_Paste': '粘贴', + 'lang_Txt_undo': '重新执行上次操作', + 'lang_Txt_redo': '撤销上一次操作', + 'lang_Txt_italic': '给选中字设置为斜体', + 'lang_Txt_underline': '给选中字加下划线', + 'lang_Txt_selectAll': '全部选中', + 'lang_Txt_visualEnter': '软回车', + 'lang_Txt_fullscreen': '全屏' + } + }, + 'insertframe': { + 'static': { + 'lang_input_address': '地址:', + 'lang_input_width': '宽度:', + 'lang_input_height': '高度:', + 'lang_input_isScroll': '允许滚动条:', + 'lang_input_frameborder': '显示框架边框:', + 'lang_input_alignMode': '对齐方式:', + 'align': {title: "对齐方式", options: ["默认", "左对齐", "右对齐", "居中"]} + }, + 'enterAddress': '请输入地址!' + }, + 'link': { + 'static': { + 'lang_input_text': '文本内容:', + 'lang_input_url': '链接地址:', + 'lang_input_title': '标题:', + 'lang_input_target': '是否在新窗口打开:' + }, + 'validLink': '只支持选中一个链接时生效', + 'httpPrompt': '您输入的超链接中不包含http等协议名称,默认将为您添加http://前缀' + }, + 'searchreplace': { + 'static': { + lang_tab_search: "查找", + lang_tab_replace: "替换", + lang_search1: "查找", + lang_search2: "查找", + lang_replace: "替换", + lang_searchReg: '支持正则表达式,添加前后斜杠标示为正则表达式,例如“/表达式/”', + lang_searchReg1: '支持正则表达式,添加前后斜杠标示为正则表达式,例如“/表达式/”', + lang_case_sensitive1: "区分大小写", + lang_case_sensitive2: "区分大小写", + nextFindBtn: {value: "下一个"}, + preFindBtn: {value: "上一个"}, + nextReplaceBtn: {value: "下一个"}, + preReplaceBtn: {value: "上一个"}, + repalceBtn: {value: "替换"}, + repalceAllBtn: {value: "全部替换"} + }, + getEnd: "已经搜索到文章末尾!", + getStart: "已经搜索到文章头部", + countMsg: "总共替换了{#count}处!" + }, + 'spechars': { + 'static': {}, + tsfh: "特殊字符", + lmsz: "罗马字符", + szfh: "数学字符", + rwfh: "日文字符", + xlzm: "希腊字母", + ewzm: "俄文字符", + pyzm: "拼音字母", + yyyb: "英语音标", + zyzf: "其他" + }, + 'edittable': { + 'static': { + 'lang_tableStyle': '表格样式', + 'lang_insertCaption': '添加表格名称行', + 'lang_insertTitle': '添加表格标题行', + 'lang_insertTitleCol': '添加表格标题列', + 'lang_orderbycontent': "使表格内容可排序", + 'lang_tableSize': '自动调整表格尺寸', + 'lang_autoSizeContent': '按表格文字自适应', + 'lang_autoSizePage': '按页面宽度自适应', + 'lang_example': '示例', + 'lang_borderStyle': '表格边框', + 'lang_color': '颜色:' + }, + captionName: '表格名称', + titleName: '标题', + cellsName: '内容', + errorMsg: '有合并单元格,不可排序' + }, + 'edittip': { + 'static': { + lang_delRow: '删除整行', + lang_delCol: '删除整列' + } + }, + 'edittd': { + 'static': { + lang_tdBkColor: '背景颜色:' + } + }, + 'formula': { + 'static': {}, + }, + 'ai': { + 'static': {}, + }, + 'wordimage': { + 'static': { + lang_resave: "转存步骤", + uploadBtn: {src: "upload.png", alt: "上传"}, + clipboard: {style: "background: url(copy.png) -153px -1px no-repeat;"}, + lang_step: "1、点击顶部复制按钮,将地址复制到剪贴板;2、点击添加照片按钮,在弹出的对话框中使用Ctrl+V粘贴地址;3、点击打开后选择图片上传流程。" + }, + 'fileType': "图片", + 'flashError': "FLASH初始化失败,请检查FLASH插件是否正确安装!", + 'netError': "网络连接错误,请重试!", + 'copySuccess': "图片地址已经复制!", + 'flashI18n': {} //留空默认中文 + }, +}; diff --git a/ruoyi-ui/public/static/UEditorPlus/plugins/demo/demo.js b/ruoyi-ui/public/static/UEditorPlus/plugins/demo/demo.js new file mode 100644 index 0000000..addd6e0 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/plugins/demo/demo.js @@ -0,0 +1,3 @@ +(function () { + +})(); diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/css/ueditor.css b/ruoyi-ui/public/static/UEditorPlus/themes/default/css/ueditor.css new file mode 100644 index 0000000..4636966 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/css/ueditor.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +:root{--edui-color-active-bg:rgba(200,200,200,.3);--edui-color-border:#EEE;--edui-bg-toolbar:#FFF;--edui-color-muted:#CCC}@font-face{font-family:edui-iconfont;src:url("data:font/woff2;base64,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") format('woff2'),url("data:font/woff;base64,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") format('woff'),url("data:font/ttf;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAE2AAAAAAAAABmAADmAAAA5gAAAAA4AADmAQAA5gEAAAA5AADmAgAA5gIAAAA6AADmAwAA5gMAAAA7AADmBAAA5gQAAAA8AADmBQAA5gUAAAAFAADmBgAA5gYAAAA9AADmBwAA5gcAAAA+AADmCAAA5ggAAABZAADmCQAA5gkAAAA/AADmCgAA5goAAABAAADmCwAA5gsAAABBAADmDAAA5gwAAABCAADmDQAA5g0AAABDAADmDgAA5g4AAABSAADmDwAA5g8AAABEAADmEAAA5hAAAAAoAADmEQAA5hEAAAApAADmEgAA5hIAAAAqAADmEwAA5hMAAAAlAADmFAAA5hQAAAAmAADmFQAA5hUAAAAnAADmFgAA5hYAAABUAADmFwAA5hcAAAAkAADmGAAA5hgAAAAhAADmGQAA5hkAAAAiAADmGgAA5hoAAAAjAADmGwAA5hsAAAAgAADmHAAA5hwAAAAEAADmHQAA5h0AAAAfAADmHgAA5h4AAAAeAADmHwAA5h8AAAAaAADmIAAA5iAAAAAbAADmIQAA5iEAAAAcAADmIgAA5iIAAAAdAADmIwAA5iMAAAANAADmJAAA5iQAAAAMAADmJQAA5iUAAAACAADmKAAA5igAAABmAADmKgAA5ioAAABiAADmLQAA5i0AAABRAADmLwAA5i8AAAA0AADmNgAA5jYAAABgAADmNwAA5jcAAABHAADmOAAA5jgAAABQAADmPgAA5j4AAABhAADmRAAA5kQAAAAQAADmSAAA5kgAAABjAADmSQAA5kkAAAA2AADmSgAA5koAAABkAADmTAAA5kwAAABlAADmVgAA5lYAAAATAADmYgAA5mIAAABXAADmZQAA5mUAAAAIAADmaQAA5mkAAAAYAADmdQAA5nUAAABKAADmegAA5noAAAAWAADmgAAA5oAAAAAXAADmlwAA5pcAAAARAADmpwAA5qcAAABWAADmrQAA5q0AAABMAADmwAAA5sAAAAALAADm2AAA5tgAAABIAADm8QAA5vEAAAAGAADm+AAA5vgAAABNAADm+QAA5vkAAABOAADm+gAA5voAAABPAADnBAAA5wQAAAAyAADnBgAA5wYAAAABAADnCwAA5wsAAAAVAADnGgAA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ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAAdyZWZyZXNoBGJlbGwPcmlnaHQtZGlyZWN0aW9uBXJvYm90BWltYWdlDmNvbnRlbnQtaW1wb3J0BXNvdW5kBXJpZ2h0D2ljX2ltYWdlX3VwbG9hZAVjaGVjawZpZnJhbWUKYmFja2dyb3VuZANsdHIDcnRsC2ZpbmRyZXBsYWNlCWljcHJldmlldwVyaXFpMgtldXJvLXN5bWJvbAVtdXNpYwRoZWxwCWhhbmRfZHJhdwVwcmludAR0aW1lBWJhaWR1C0dvb2dsZS1NYXBzCmltYWdlLW5vbmUMaW1hZ2UtY2VudGVyCmltYWdlLWxlZnQLaW1hZ2UtcmlnaHQJY2xlYXItZG9jCnBhZ2UtYnJlYWsGYXV0aG9yCndvcmQtaW1hZ2ULdG91cHBlcmNhc2ULdG9sb3dlcmNhc2UKaG9yaXpvbnRhbA9tZXJnZS1kb3duLWNlbGwLbWVyZ2UtY2VsbHMQbWVyZ2UtcmlnaHQtY2VsbA1zcGxpdC10by1yb3dzDXNwbGl0LXRvLWNvbHMOc3BsaXQtdG8tY2VsbHMOaW5zZXJ0cm93YWJvdmUXcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20UcGFyYWdyYXBoLW1hcmdpbi10b3ANdW5vcmRlcmVkbGlzdAxsaXN0LW9yZGVyZWQUc3BsaXQtY2VsbHMtdmVydGljYWwWc3BsaXQtY2VsbHMtaG9yaXpvbnRhbAphdHRhY2htZW50CXN1YnNjcmlwdAlzZWxlY3RhbGwLc3VwZXJzY3JpcHQDbWFwCWJnLWNvbG9ycw1hZGRfY29sX2FmdGVyDmFkZF9jb2xfYmVmb3JlDWFkZF9yb3dfYWZ0ZXIOYWRkX3Jvd19iZWZvcmUKZGVsZXRlX2NvbA1jb21iaW5lX2NlbGxzAm9sCmRlbGV0ZV9yb3cMZGVsZXRlX3RhYmxlAnVsBHJlZG8FdGFibGUEdW5kbwVwYXN0ZQZ1cGxvYWQFYnJ1c2gKdGV4dC1xdW90ZRFpbnNlcnQtcm93LWJvdHRvbRFmdWxsc2NyZWVuLWV4cGFuZA5pbnNlcnQtcm93LXRvcAh0ZW1wbGF0ZRJmb3JtYXQtaW1hZ2UtcmlnaHQRZm9ybWF0LWltYWdlLWxlZnQTZm9ybWF0LWltYWdlLWNlbnRlcgtsaW5lLWhlaWdodAdvdXRsaW5lBXNtaWxlDWFsaWduLWp1c3RpZnkHZm9ybXVsYQphbmdsZS1kb3duBWNsb3NlCm1hZ2ljLXdhbmQGZXJhc2VyBGh0bWwGdW5saW5rBmluZGVudAthbGlnbi1yaWdodAxhbGlnbi1jZW50ZXIKYWxpZ24tbGVmdAtmb250LWNvbG9ycwRwbGF5CXVuZGVybGluZQZpdGFsaWMEbGluawZzdHJpa2UEY29kZQRib2xkAAA=") format('truetype')}.edui-iconfont{font-family:edui-iconfont!important;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.edui-default{accent-color:#333}.edui-default .edui-box{border:0;padding:0;margin:0;overflow:hidden;line-height:30px}.edui-default a.edui-box{display:block;text-decoration:none;color:#000}.edui-default a.edui-box:hover{text-decoration:none}.edui-default a.edui-box:active{text-decoration:none}.edui-default table.edui-box{border-collapse:collapse}.edui-default ul.edui-box{list-style-type:none}div.edui-box{position:relative;display:inline-block;vertical-align:middle}.edui-default .edui-clearfix{zoom:1}.edui-default .edui-clearfix:after{content:'\20';display:block;clear:both}* html div.edui-box{display:inline!important}:first-child+html div.edui-box{display:inline!important}.edui-default .edui-button-body,.edui-splitbutton-body,.edui-menubutton-body,.edui-combox-body{position:relative}.edui-default .edui-popup{position:absolute;-webkit-user-select:none;-moz-user-select:none}.edui-default .edui-popup .edui-shadow{position:absolute;z-index:-1}.edui-default .edui-popup .edui-bordereraser{position:absolute;overflow:hidden}.edui-default .edui-tablepicker .edui-canvas{position:relative}.edui-default .edui-tablepicker .edui-canvas .edui-overlay{position:absolute}.edui-default .edui-dialog-modalmask,.edui-dialog-dragmask{position:absolute;left:0;top:0;width:100%;height:100%}.edui-default .edui-toolbar{position:relative}.edui-default .edui-label{cursor:pointer}.edui-default span.edui-clickable{color:#666;cursor:pointer;text-decoration:none}.edui-default span.edui-clickable:hover{color:#333}.edui-default span.edui-unclickable{color:gray;cursor:default}.edui-default span.edui-popup-action-item{margin-right:5px}.edui-default span.edui-popup-action-item:last-child{margin-right:0}.edui-default .edui-toolbar{cursor:default;-webkit-user-select:none;-moz-user-select:none;padding:1px;overflow:hidden;zoom:1;width:auto;height:auto}.edui-default .edui-toolbar .edui-button,.edui-default .edui-toolbar .edui-splitbutton,.edui-default .edui-toolbar .edui-menubutton,.edui-default .edui-toolbar .edui-combox{margin:1px}.edui-default .edui-editor{border:1px solid var(--edui-color-border);background-color:#fff;position:relative;overflow:visible;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.edui-editor div{width:auto;height:auto}.edui-default .edui-editor-toolbarbox{position:relative;zoom:1;border-top-left-radius:2px;border-top-right-radius:2px}.edui-default .edui-editor-toolbarboxouter{border-bottom:1px solid var(--edui-color-border);background-color:var(--edui-bg-toolbar);-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.edui-default .edui-editor-toolbarboxinner{padding:2px}.edui-default .edui-editor-iframeholder{position:relative}.edui-default .edui-editor-bottomContainer{overflow:hidden}.edui-default .edui-editor-bottomContainer table{width:100%;height:0;overflow:hidden;border-spacing:0}.edui-default .edui-editor-bottomContainer td{white-space:nowrap;border-top:1px solid var(--edui-color-border);line-height:20px;font-size:12px;font-family:Arial,Helvetica,Tahoma,Verdana,Sans-Serif;padding:0 5px;color:var(--edui-color-muted)}.edui-default .edui-editor-wordcount{text-align:right;margin-right:5px;color:#aaa}.edui-default .edui-editor-scale{width:12px}.edui-default .edui-editor-scale .edui-editor-icon{float:right;width:100%;height:12px;margin-top:10px;background:url(../images/scale.png) no-repeat;cursor:se-resize}.edui-default .edui-editor-breadcrumb{margin:2px 0 0 3px;color:var(--edui-color-muted)}.edui-default .edui-editor-breadcrumb span{cursor:pointer;color:var(--edui-color-muted);line-height:16px;display:inline-block}.edui-default .edui-toolbar .edui-for-fullscreen{float:right}.edui-default .edui-bubble .edui-popup-content{font-size:13px;box-shadow:0 0 10px #0001f;transition:.25s;color:#666;background-color:#FFF;padding:10px;border-radius:5px}.edui-default .edui-bubble .edui-shadow{}.edui-default .edui-editor-toolbarmsg{background-color:#FFF6D9;border-bottom:1px solid #ccc;position:absolute;bottom:-25px;left:0;z-index:1009;width:99.9%}.edui-default .edui-editor-toolbarmsg-upload{font-size:14px;color:#00f;width:100px;height:16px;line-height:16px;cursor:pointer;position:absolute;top:5px;left:350px}.edui-default .edui-editor-toolbarmsg-label{font-size:12px;line-height:16px;padding:4px}.edui-default .edui-editor-toolbarmsg-close{float:right;width:20px;height:16px;line-height:16px;cursor:pointer;color:red}.edui-default .edui-list .edui-bordereraser{display:none}.edui-default .edui-listitem{padding:1px;white-space:nowrap;cursor:pointer}.edui-default .edui-list .edui-state-hover{position:relative;background-color:#EEE;border:1px solid #EEE;padding:0;border-radius:3px}.edui-default .edui-for-fontfamily .edui-listitem-label{min-width:130px;_width:120px;font-size:12px;height:22px;line-height:22px;padding-left:5px}.edui-default .edui-for-insertcode .edui-listitem-label{min-width:120px;_width:120px;font-size:12px;height:22px;line-height:22px;padding-left:5px}.edui-default .edui-for-underline .edui-listitem-label{min-width:120px;_width:120px;padding:3px 5px;font-size:12px}.edui-default .edui-for-fontsize .edui-listitem-label{min-width:120px;_width:120px;padding:3px 5px;cursor:pointer}.edui-default .edui-for-paragraph .edui-listitem-label{min-width:200px;_width:200px;padding:2px 5px}.edui-default .edui-for-rowspacingtop .edui-listitem-label,.edui-default .edui-for-rowspacingbottom .edui-listitem-label{min-width:53px;_width:53px;padding:2px 5px}.edui-default .edui-for-lineheight .edui-listitem-label{min-width:53px;_width:53px;padding:2px 5px}.edui-default .edui-for-customstyle .edui-listitem-label{min-width:200px;_width:200px;width:200px!important;padding:2px 5px}.edui-default .edui-menu{z-index:3000}.edui-default .edui-menu .edui-popup-content{padding:3px}.edui-default .edui-menu-body{_width:150px;min-width:170px;background:url(../images/sparator_v.png) repeat-y 25px}.edui-default .edui-menuitem-body{}.edui-default .edui-menuitem{height:24px;line-height:22px;cursor:default;vertical-align:top}.edui-default .edui-menuitem .edui-icon{width:20px!important;height:20px!important;font-family:edui-iconfont;font-size:12px;line-height:20px;text-align:center}.edui-default .edui-menuitem .edui-menuitem-body .edui-icon:before{display:none}.edui-default .edui-contextmenu .edui-popup-content .edui-menuitem-body .edui-icon:before{display:inline-block}.edui-default .edui-menuitem .edui-label{font-size:12px;line-height:20px;height:20px;padding-left:10px}.edui-default .edui-state-checked .edui-menuitem-body .edui-icon{line-height:20px;text-align:center}.edui-default .edui-state-checked .edui-menuitem-body .edui-icon:before{content:"\e7fc";font-size:10px;display:inline-block}.edui-default .edui-state-disabled .edui-menuitem-label{color:gray}.edui-default .edui-toolbar .edui-combox-body .edui-button-body{width:60px;font-size:12px;height:30px;line-height:30px;padding-left:5px;white-space:nowrap;margin:0 3px 0 0;cursor:pointer}.edui-default .edui-toolbar .edui-combox-body .edui-arrow{height:30px;width:13px;cursor:pointer;display:inline-flex}.edui-default .edui-toolbar .edui-combox-body .edui-arrow:before{content:"\e9f0";font-family:edui-iconfont;font-size:10px;margin:auto}.edui-default .edui-toolbar .edui-combox .edui-combox-body{border:1px solid var(--edui-color-border);background-color:#fff;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px}.edui-default .edui-toolbar .edui-combox .edui-combox-body>div{vertical-align:top;text-align:center}.edui-default .edui-toolbar .edui-combox-body .edui-splitborder{display:none}.edui-default .edui-toolbar .edui-combox-body .edui-arrow{border-left:1px solid var(--edui-color-border)}.edui-default .edui-toolbar .edui-state-hover .edui-combox-body{}.edui-default .edui-toolbar .edui-state-hover .edui-combox-body .edui-arrow{}.edui-default .edui-toolbar .edui-state-checked .edui-combox-body{background-color:#FFE69F;border:1px solid #DCAC6C}.edui-toolbar .edui-state-checked .edui-combox-body .edui-arrow{border-left:1px solid #DCAC6C}.edui-toolbar .edui-state-disabled .edui-combox-body{background-color:#F0F0EE;opacity:.3}.edui-toolbar .edui-state-opened .edui-combox-body{background-color:#fff;border:1px solid gray}.edui-default .edui-toolbar .edui-button .edui-icon,.edui-default .edui-toolbar .edui-menubutton .edui-icon,.edui-default .edui-toolbar .edui-splitbutton .edui-icon{height:30px!important;width:30px!important;background-position:center;background-repeat:no-repeat;font-family:edui-iconfont;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;text-align:center;cursor:pointer}.edui-default .edui-toolbar .edui-button .edui-button-wrap{padding:1px;position:relative;border-radius:3px}.edui-default .edui-toolbar .edui-button .edui-state-hover .edui-button-wrap{background-color:#EEE;border:1px solid #EEE;padding:0}.edui-default .edui-toolbar .edui-button .edui-state-checked .edui-button-wrap{background-color:#F0F0EE;padding:0;border:1px solid #EEE;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px}.edui-default .edui-toolbar .edui-button .edui-state-active .edui-button-wrap{background-color:#F0F0EE;padding:0;border:1px solid var(--edui-color-border)}.edui-default .edui-toolbar .edui-state-disabled .edui-label{color:#ccc}.edui-default .edui-toolbar .edui-state-disabled .edui-icon{opacity:.3;filter:alpha(opacity=30)}.edui-default .edui-toolbar-button-custom{display:inline-block!important;line-height:30px;vertical-align:middle;padding:0 10px;border-radius:3px;margin:0 5px}.edui-default .edui-toolbar-button-custom:hover{background:#EEE}.edui-default .edui-for-undo .edui-icon:before{content:"\e60f"}.edui-default .edui-for-redo .edui-icon:before{content:"\e60c"}.edui-default .edui-for-bold .edui-icon:before{content:"\e628"}.edui-default .edui-for-italic .edui-icon:before{content:"\e62a"}.edui-default .edui-for-fontborder .edui-icon:before{content:'\e62d'}.edui-default .edui-for-underline .edui-icon:before{content:"\e63e"}.edui-default .edui-for-strikethrough .edui-icon:before{content:"\e64a"}.edui-default .edui-for-subscript .edui-icon:before{content:"\ece9"}.edui-default .edui-for-superscript .edui-icon:before{content:"\e83e"}.edui-default .edui-for-blockquote .edui-icon:before{content:"\e6d8"}.edui-default .edui-for-forecolor .edui-icon:before{content:"\e7f8"}.edui-default .edui-for-backcolor .edui-icon:before{content:"\e71a"}.edui-default .edui-for-inserttable .edui-icon:before{content:"\e60d"}.edui-default .edui-for-autotypeset .edui-icon:before{content:"\e662"}.edui-default .edui-for-justifyleft .edui-icon:before{content:"\e7f7"}.edui-default .edui-for-justifycenter .edui-icon:before{content:"\e7f6"}.edui-default .edui-for-justifyright .edui-icon:before{content:"\e7f5"}.edui-default .edui-for-justifyjustify .edui-icon:before{content:"\e87c"}.edui-default .edui-for-insertorderedlist .edui-icon:before{content:"\e737"}.edui-default .edui-for-insertunorderedlist .edui-icon:before{content:"\e7f4"}.edui-default .edui-for-lineheight .edui-icon:before{content:"\e638"}.edui-default .edui-for-rowspacingbottom .edui-icon:before{content:'\eb09'}.edui-default .edui-for-rowspacingtop .edui-icon:before{content:'\eb0a'}.edui-default .edui-for-horizontal .edui-icon:before{content:"\e617"}.edui-default .edui-for-link .edui-icon:before{content:"\e648"}.edui-default .edui-for-code .edui-icon:before{background-position:-440px -40px}.edui-default .edui-for-insertimage .edui-icon:before{content:"\e605"}.edui-default .edui-for-insertframe .edui-icon:before{content:"\e6c0"}.edui-default .edui-for-emoticon .edui-icon:before{content:"\e60e"}.edui-default .edui-for-spechars .edui-icon:before{content:"\e891"}.edui-default .edui-for-help .edui-icon:before{content:"\e752"}.edui-default .edui-for-print .edui-icon:before{content:"\e67a"}.edui-default .edui-for-preview .edui-icon:before{content:"\e644"}.edui-default .edui-for-selectall .edui-icon:before{content:'\e62f'}.edui-default .edui-for-searchreplace .edui-icon:before{content:"\eb6c"}.edui-default .edui-for-contentimport .edui-icon:before{content:"\e6f1"}.edui-default .edui-for-ai .edui-icon:before{content:"\e61c"}.edui-default .edui-for-map .edui-icon:before{content:"\e649"}.edui-default .edui-for-insertvideo .edui-icon:before{content:"\e636"}.edui-default .edui-for-insertaudio .edui-icon:before{content:"\e77b"}.edui-default .edui-for-time .edui-icon:before{content:"\e680"}.edui-default .edui-for-date .edui-icon:before{content:"\e697"}.edui-default .edui-for-cut .edui-icon:before{background-position:-680px 0}.edui-default .edui-for-copy .edui-icon:before{background-position:-700px 0}.edui-default .edui-for-paste .edui-icon:before{background-position:-560px 0}.edui-default .edui-for-formatmatch .edui-icon:before{content:"\e637"}.edui-default .edui-for-pasteplain .edui-icon:before{content:'\edfb'}.edui-default .edui-for-directionalityltr .edui-icon:before{content:"\e623"}.edui-default .edui-for-directionalityrtl .edui-icon:before{content:"\e7bc"}.edui-default .edui-for-source .edui-icon:before{content:"\e608"}.edui-default .edui-for-removeformat .edui-icon:before{content:"\e782"}.edui-default .edui-for-unlink .edui-icon:before{content:"\e92b"}.edui-default .edui-for-touppercase .edui-icon:before{content:"\e619"}.edui-default .edui-for-tolowercase .edui-icon:before{content:"\e61a"}.edui-default .edui-for-insertrow .edui-icon:before{content:"\e603"}.edui-default .edui-for-insertrownext .edui-icon:before{content:"\e602"}.edui-default .edui-for-insertcol .edui-icon:before{content:"\e601"}.edui-default .edui-for-insertcolnext .edui-icon:before{content:"\e600"}.edui-default .edui-for-mergeright .edui-icon:before{content:"\e615"}.edui-default .edui-for-mergedown .edui-icon:before{content:"\e613"}.edui-default .edui-for-splittorows .edui-icon:before{content:"\e610"}.edui-default .edui-for-splittocols .edui-icon:before{content:"\e611"}.edui-default .edui-for-insertparagraphbeforetable .edui-icon:before{content:'\e901'}.edui-default .edui-for-deleterow .edui-icon:before{content:"\e609"}.edui-default .edui-for-deletecol .edui-icon:before{content:"\e604"}.edui-default .edui-for-splittocells .edui-icon:before{content:"\e612"}.edui-default .edui-for-mergecells .edui-icon:before{content:"\e606"}.edui-default .edui-for-deletetable .edui-icon:before{content:"\e60a"}.edui-default .edui-for-cleardoc .edui-icon:before{content:"\e61e"}.edui-default .edui-for-fullscreen .edui-icon:before{content:"\e675"}.edui-default .edui-for-anchor .edui-icon:before{content:"\e61b"}.edui-default .edui-for-pagebreak .edui-icon:before{content:"\e61d"}.edui-default .edui-for-imagenone .edui-icon:before{content:"\e61f"}.edui-default .edui-for-imageleft .edui-icon:before{content:"\e621"}.edui-default .edui-for-wordimage .edui-icon:before{content:"\e618"}.edui-default .edui-for-imageright .edui-icon:before{content:"\e622"}.edui-default .edui-for-imagecenter .edui-icon:before{content:"\e620"}.edui-default .edui-for-indent .edui-icon:before{content:"\e7f3"}.edui-default .edui-for-outdent .edui-icon:before{background-position:-540px 0}.edui-default .edui-for-table .edui-icon:before{background-position:-580px -20px}.edui-default .edui-for-edittable .edui-icon:before{background-position:-420px -40px}.edui-default .edui-for-template .edui-icon:before{content:"\e6ad"}.edui-default .edui-for-delete .edui-icon:before{background-position:-360px -40px}.edui-default .edui-for-attachment .edui-icon:before{content:"\e704"}.edui-default .edui-for-edittd .edui-icon:before{background-position:-700px -40px}.edui-default .edui-for-scrawl .edui-icon:before{content:"\e70b"}.edui-default .edui-for-background .edui-icon:before{content:"\e624"}.edui-default .edui-for-formula .edui-icon:before{content:"\e616"}.edui-default .edui-for-aligntd .edui-icon:before{background-position:-236px -76px}.edui-default .edui-for-insertparagraphtrue .edui-icon:before{background-position:-625px -76px}.edui-default .edui-for-insertparagraph .edui-icon:before{background-position:-602px -76px}.edui-default .edui-for-insertcaption .edui-icon:before{background-position:-336px -76px}.edui-default .edui-for-deletecaption .edui-icon:before{background-position:-362px -76px}.edui-default .edui-for-inserttitle .edui-icon:before{background-position:-286px -76px}.edui-default .edui-for-deletetitle .edui-icon:before{background-position:-311px -76px}.edui-default .edui-for-aligntable .edui-icon:before{background-position:-440px 0}.edui-default .edui-for-tablealignment-left .edui-icon:before{background-position:-460px 0}.edui-default .edui-for-tablealignment-center .edui-icon:before{background-position:-420px 0}.edui-default .edui-for-tablealignment-right .edui-icon:before{background-position:-480px 0}.edui-default .edui-for-inserttitlecol .edui-icon:before{background-position:-673px -76px}.edui-default .edui-for-deletetitlecol .edui-icon:before{background-position:-698px -76px}.edui-default .edui-for-simpleupload .edui-icon:before{content:"\edfc"}.edui-default .edui-toolbar .edui-splitbutton-body .edui-arrow,.edui-default .edui-toolbar .edui-menubutton-body .edui-arrow{height:30px;width:13px;cursor:pointer}.edui-default .edui-toolbar .edui-splitbutton-body .edui-arrow:before,.edui-default .edui-toolbar .edui-menubutton-body .edui-arrow:before{content:"\e9f0";font-family:edui-iconfont;font-size:10px;vertical-align:middle}.edui-default .edui-toolbar .edui-splitbutton .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-menubutton-body{padding:1px;border-radius:3px;display:flex}.edui-default .edui-toolbar .edui-splitborder{width:0;height:30px}.edui-default .edui-toolbar .edui-state-hover .edui-splitborder{border-left:0 solid #dcac6c}.edui-default .edui-toolbar .edui-state-active .edui-splitborder{width:0}.edui-default .edui-toolbar .edui-state-opened .edui-splitborder{border:0}.edui-default .edui-toolbar .edui-splitbutton .edui-state-hover .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-hover .edui-menubutton-body{background-color:#EEE;border:1px solid #EEE;padding:0}.edui-default .edui-toolbar .edui-splitbutton .edui-state-checked .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-checked .edui-menubutton-body{background-color:#fff;border:1px solid #EEE;padding:0}.edui-default .edui-toolbar .edui-splitbutton .edui-state-active .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-active .edui-menubutton-body{background-color:#fff;border:1px solid #EEE;padding:0}.edui-default .edui-state-disabled .edui-arrow{opacity:.3;_filter:alpha(opacity=30)}.edui-default .edui-toolbar .edui-splitbutton .edui-state-opened .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-opened .edui-menubutton-body{background-color:#fff;border:1px solid #EEE;padding:0}.edui-default .edui-for-insertorderedlist .edui-bordereraser,.edui-default .edui-for-lineheight .edui-bordereraser,.edui-default .edui-for-rowspacingtop .edui-bordereraser,.edui-default .edui-for-rowspacingbottom .edui-bordereraser,.edui-default .edui-for-insertunorderedlist .edui-bordereraser{background-color:#fff}.edui-default .edui-for-insertorderedlist .edui-popup-body .edui-icon,.edui-default .edui-for-lineheight .edui-popup-body .edui-icon,.edui-default .edui-for-rowspacingtop .edui-popup-body .edui-icon,.edui-default .edui-for-rowspacingbottom .edui-popup-body .edui-icon,.edui-default .edui-for-insertunorderedlist .edui-popup-body .edui-icon{background-image:none}.edui-default .edui-popup{z-index:3000;background-color:#fff;width:auto;height:auto;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin-top:1px}.edui-default .edui-popup .edui-shadow{left:0;top:0;width:100%;height:100%}.edui-default .edui-popup-content{font-size:13px;box-shadow:0 0 10px rgba(0,0,0,.2);transition:.25s;color:#333;background-color:#FFF;padding:10px;border-radius:5px}.edui-default .edui-popup .edui-bordereraser{background-color:transparent;height:3px}.edui-default .edui-menu .edui-bordereraser{height:3px}.edui-default .edui-anchor-topleft .edui-bordereraser{left:1px;top:-2px}.edui-default .edui-anchor-topright .edui-bordereraser{right:1px;top:-2px}.edui-default .edui-anchor-bottomleft .edui-bordereraser{left:0;bottom:-6px;height:7px;border-left:1px solid gray;border-right:1px solid gray}.edui-default .edui-anchor-bottomright .edui-bordereraser{right:0;bottom:-6px;height:7px;border-left:1px solid gray;border-right:1px solid gray}.edui-popup div{width:auto;height:auto}.edui-default .edui-editor-messageholder{display:block;width:150px;height:auto;border:0;margin:0;padding:0;position:absolute;top:28px;right:3px}.edui-default .edui-message{min-height:10px;text-shadow:0 1px 0 rgba(255,255,255,.5);padding:0;margin-bottom:3px;position:relative}.edui-default .edui-message-body{border-radius:3px;padding:8px 15px 8px 8px;color:#c09853;background-color:#fcf8e3;border:1px solid #fbeed5}.edui-default .edui-message-type-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.edui-default .edui-message-type-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.edui-default .edui-message-type-danger,.edui-default .edui-message-type-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.edui-default .edui-message .edui-message-closer{display:block;width:16px;height:16px;line-height:16px;position:absolute;top:0;right:0;padding:0;cursor:pointer;background:transparent;border:0;float:right;font-size:20px;font-weight:700;color:#999;text-shadow:0 1px 0 #fff;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.edui-default .edui-message .edui-message-content{font-size:10pt;word-wrap:break-word;word-break:normal}.edui-default .edui-dialog{z-index:2000;position:absolute}.edui-dialog div{width:auto}.edui-default .edui-dialog-wrap{margin-right:6px;margin-bottom:6px}.edui-default .edui-dialog-fullscreen-flag{margin-right:0;margin-bottom:0}.edui-default .edui-dialog-body{position:relative}.edui-default .edui-dialog-fullscreen-flag .edui-dialog-body{padding:0}.edui-default .edui-dialog-shadow{position:absolute;z-index:-1;left:0;top:0;width:100%;height:100%;background-color:#fff;*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:3px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.edui-default .edui-dialog-foot{background-color:#fff;border-radius:0 0 10px 10px;height:50px;padding:10px 0;box-sizing:border-box}.edui-default .edui-dialog-titlebar{height:30px;background:#FFF;position:relative;cursor:move;border-radius:10px 10px 0 0}.edui-default .edui-dialog-caption{font-weight:700;font-size:14px;line-height:30px;padding-left:5px}.edui-default .edui-dialog-draghandle{height:30px;padding:5px}.edui-default .edui-dialog-closebutton{position:absolute!important;right:10px;top:10px}.edui-default .edui-dialog-closebutton .edui-button-body{height:20px;width:20px;cursor:pointer}.edui-default .edui-dialog-closebutton .edui-button-body .edui-icon{width:20px;height:20px;font-family:edui-iconfont;line-height:20px;font-size:20px;text-align:center;color:#999;vertical-align:top}.edui-default .edui-dialog-closebutton .edui-button-body .edui-icon:before{content:"\e6a7"}.edui-default .edui-dialog-closebutton .edui-state-hover .edui-button-body .edui-icon{color:#333}.edui-default .edui-dialog-buttons{position:absolute;right:0}.edui-default .edui-dialog-buttons .edui-button{margin-right:10px}.edui-default .edui-dialog-buttons .edui-button .edui-button-body .edui-icon{display:none!important}.edui-default .edui-dialog-buttons .edui-button .edui-button-body{height:30px;font-size:12px;line-height:28px;cursor:pointer;border-radius:4px;text-align:center;background-color:#F8F8F8;border:1px solid #EEE;padding:0 15px}.edui-default .edui-dialog-buttons .edui-button .edui-state-hover .edui-button-body{}.edui-default .edui-dialog iframe{border:0;padding:0;margin:0;vertical-align:top}.edui-default .edui-dialog-modalmask{opacity:.3;filter:alpha(opacity=30);background-color:#ccc;position:absolute}.edui-default .edui-dialog-dragmask{position:absolute;background-color:transparent;cursor:move}.edui-default .edui-dialog-content{position:relative}.edui-default .dialogcontmask{cursor:move;visibility:hidden;display:block;position:absolute;width:100%;height:100%;opacity:0;filter:alpha(opacity=0)}.edui-default .edui-for-link .edui-dialog-content{width:420px;height:200px;overflow:hidden}.edui-default .edui-for-background .edui-dialog-content{width:440px;height:280px;overflow:hidden}.edui-default .edui-for-template .edui-dialog-content{width:630px;height:390px;overflow:hidden}.edui-default .edui-for-scrawl .edui-dialog-content{width:515px;*width:506px;height:360px}.edui-default .edui-for-spechars .edui-dialog-content{width:620px;height:500px;*width:630px;*height:570px}.edui-default .edui-for-insertimage .edui-dialog-content{width:650px;height:400px;overflow:hidden}.edui-default .edui-for-insertframe .edui-dialog-content{width:350px;height:230px;overflow:hidden}.edui-default .edui-for-wordimage .edui-dialog-content{width:620px;height:380px;overflow:hidden}.edui-default .edui-for-formula .edui-dialog-content{width:800px;height:400px;overflow:hidden}.edui-default .edui-for-attachment .edui-dialog-content{width:650px;height:400px;overflow:hidden}.edui-default .edui-for-map .edui-dialog-content{width:550px;height:400px}.edui-default .edui-for-insertvideo .edui-dialog-content{width:590px;height:420px}.edui-default .edui-for-insertaudio .edui-dialog-content{width:590px;height:420px}.edui-default .edui-for-anchor .edui-dialog-content{width:320px;height:60px;overflow:hidden}.edui-default .edui-for-searchreplace .edui-dialog-content{width:400px;height:220px}.edui-default .edui-for-contentimport .edui-dialog-content{width:620px;height:400px}.edui-default .edui-for-ai .edui-dialog-content{width:620px;height:400px;border-radius:0 0 10px 10px;overflow:hidden}.edui-default .edui-for-help .edui-dialog-content{width:400px;height:420px}.edui-default .edui-for-edittable .edui-dialog-content{width:540px;_width:590px;height:335px}.edui-default .edui-for-edittip .edui-dialog-content{width:225px;height:60px}.edui-default .edui-for-edittd .edui-dialog-content{width:240px;height:50px}.edui-default .edui-for-paragraph .edui-listitem-label{font-family:Tahoma,Verdana,Arial,Helvetica}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-p{font-size:22px;line-height:27px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h1{font-weight:bolder;font-size:32px;line-height:36px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h2{font-weight:bolder;font-size:27px;line-height:29px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h3{font-weight:bolder;font-size:19px;line-height:23px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h4{font-weight:bolder;font-size:16px;line-height:19px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h5{font-weight:bolder;font-size:13px;line-height:16px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h6{font-weight:bolder;font-size:12px;line-height:14px}.edui-default .edui-for-inserttable .edui-splitborder{display:none}.edui-default .edui-for-inserttable .edui-splitbutton-body .edui-arrow{width:0}.edui-default .edui-toolbar .edui-for-inserttable .edui-state-active .edui-splitborder{border-left:1px solid transparent}.edui-default .edui-tablepicker .edui-infoarea{height:14px;line-height:14px;font-size:12px;width:220px;margin-bottom:3px;clear:both}.edui-default .edui-tablepicker .edui-infoarea .edui-label{float:left}.edui-default .edui-dialog-buttons .edui-label{line-height:30px}.edui-default .edui-tablepicker .edui-infoarea .edui-clickable{float:right}.edui-default .edui-tablepicker .edui-pickarea{background:url(../images/unhighlighted.gif) repeat;height:220px;width:220px}.edui-default .edui-tablepicker .edui-pickarea .edui-overlay{background:url(../images/highlighted.gif) repeat}.edui-default .edui-colorpicker-topbar{height:27px;width:200px}.edui-default .edui-colorpicker-preview{height:20px;border:1px inset #000;margin-left:1px;width:128px;float:left;border-radius:3px;position:relative}.edui-default .edui-colorpicker-preview input{padding:0;left:0;border:0;position:absolute;top:0;width:100%;height:100%;border-radius:3px;opacity:0;cursor:pointer}.edui-default .edui-colorpicker-nocolor{float:right;margin-right:1px;font-size:12px;line-height:20px;height:20px;border:1px solid #333;padding:0 5px;cursor:pointer;border-radius:3px;box-sizing:content-box}.edui-default .edui-colorpicker-tablefirstrow{height:30px}.edui-default .edui-colorpicker-colorcell{width:14px;height:14px;display:block;margin:0;cursor:pointer;border-radius:2px}.edui-default .edui-colorpicker-colorcell:hover{width:14px;height:14px;margin:0}.edui-default .edui-colorpicker-advbtn{display:block;text-align:center;cursor:pointer;height:20px}.arrow_down{background:#fff url(../images/arrow_down.png) no-repeat center}.arrow_up{background:#fff url(../images/arrow_up.png) no-repeat center}.edui-colorpicker-adv{position:relative;overflow:hidden;height:180px;display:none}.edui-colorpicker-plant,.edui-colorpicker-hue{border:solid 1px #666}.edui-colorpicker-pad{width:150px;height:150px;left:14px;top:13px;position:absolute;background:red;overflow:hidden;cursor:crosshair}.edui-colorpicker-cover{position:absolute;top:0;left:0;width:150px;height:150px;background:url(../images/tangram-colorpicker.png) -160px -200px}.edui-colorpicker-padDot{position:absolute;top:0;left:0;width:11px;height:11px;overflow:hidden;background:url(../images/tangram-colorpicker.png) 0 -200px repeat-x;z-index:1000}.edui-colorpicker-sliderMain{position:absolute;left:171px;top:13px;width:19px;height:152px;background:url(../images/tangram-colorpicker.png) -179px -12px no-repeat}.edui-colorpicker-slider{width:100%;height:100%;cursor:pointer}.edui-colorpicker-thumb{position:absolute;top:0;cursor:pointer;height:3px;left:-1px;right:-1px;border:1px solid #000;background:#fff;opacity:.8}.edui-default .edui-autotypesetpicker .edui-autotypesetpicker-body{font-size:12px;margin-bottom:3px;clear:both}.edui-default .edui-autotypesetpicker-body table{border-collapse:separate;border-spacing:2px}.edui-default .edui-autotypesetpicker-body td{font-size:12px;word-wrap:break-word}.edui-default .edui-autotypesetpicker-body td input{margin:3px 3px 3px 4px;*margin:1px 0 0}.edui-default .edui-autotypesetpicker-body td button{border:0;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:4rem;-webkit-appearance:none;cursor:pointer;margin-bottom:5px;background-color:#EEE}.edui-default .edui-cellalignpicker .edui-cellalignpicker-body{width:70px;font-size:12px;cursor:default}.edui-default .edui-cellalignpicker-body table{border-collapse:separate;border-spacing:0}.edui-default .edui-cellalignpicker-body td{padding:1px}.edui-default .edui-cellalignpicker-body .edui-icon{height:20px;width:20px;padding:1px;background-image:url(../images/table-cell-align.png)}.edui-default .edui-cellalignpicker-body .edui-left{background-position:0 0}.edui-default .edui-cellalignpicker-body .edui-center{background-position:-25px 0}.edui-default .edui-cellalignpicker-body .edui-right{background-position:-51px 0}.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-left{background-position:-73px 0}.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-center{background-position:-98px 0}.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-right{background-position:-124px 0}.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-left{background-position:-146px 0;background-color:#f1f4f5}.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-center{background-position:-245px 0}.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-right{background-position:-271px 0}.edui-default .edui-toolbar .edui-separator{width:1px;height:20px;margin:5px;background:var(--edui-color-border)}.edui-default .edui-toolbar .edui-colorbutton .edui-colorlump{position:absolute;overflow:hidden;bottom:1px;left:5px;width:20px;height:4px}.edui-default .edui-for-emotion .edui-icon:before{content:"\e60e"}.edui-default .edui-for-emotion .edui-popup-content iframe{width:514px;height:380px;overflow:hidden}.edui-default .edui-for-emotion .edui-popup-content{position:relative;z-index:555}.edui-default .edui-for-emotion .edui-splitborder{display:none}.edui-default .edui-for-emotion .edui-splitbutton-body .edui-arrow{width:0}.edui-default .edui-toolbar .edui-for-emotion .edui-state-active .edui-splitborder{border-left:1px solid transparent}.edui-default .edui-hassubmenu .edui-arrow{height:20px;width:20px;float:right;font-family:edui-iconfont;font-size:12px;line-height:20px;text-align:center}.edui-default .edui-hassubmenu .edui-arrow:before{content:"\e665"}.edui-default .edui-menu-body .edui-menuitem{padding:1px}.edui-default .edui-menuseparator{margin:2px 0;height:1px;overflow:hidden}.edui-default .edui-menuseparator-inner{border-bottom:1px solid #e2e3e3;margin-left:29px;margin-right:1px}.edui-default .edui-menu-body .edui-state-hover{padding:0!important;background-color:var(--edui-color-active-bg);border-radius:3px;border:1px solid var(--edui-color-active-bg)}.edui-default .edui-shortcutmenu{padding:2px;white-space:nowrap;height:auto;background-color:#fff;border-radius:5px;box-shadow:0 0 10px rgba(0,0,0,.2)}.edui-default .edui-wordpastepop .edui-popup-content{border:0;padding:0;width:54px;height:21px}.edui-default .edui-pasteicon{width:100%;height:100%;background-image:url(../images/wordpaste.png);background-position:0 0;cursor:pointer}.edui-default .edui-pasteicon.edui-state-opened{background-position:0 -34px}.edui-default .edui-pastecontainer{position:relative;visibility:hidden;width:97px;background:#fff;border:1px solid #ccc}.edui-default .edui-pastecontainer .edui-title{font-weight:700;background:#F8F8FF;height:25px;line-height:25px;font-size:12px;padding-left:5px}.edui-default .edui-pastecontainer .edui-button{overflow:hidden;margin:3px 0}.edui-default .edui-pastecontainer .edui-button .edui-richtxticon,.edui-default .edui-pastecontainer .edui-button .edui-tagicon,.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon{float:left;cursor:pointer;width:29px;height:29px;margin-left:5px;background-image:url(../images/wordpaste.png);background-repeat:no-repeat}.edui-default .edui-pastecontainer .edui-button .edui-richtxticon{margin-left:0;background-position:-109px 0}.edui-default .edui-pastecontainer .edui-button .edui-tagicon{background-position:-148px 1px}.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon{background-position:-72px 0}.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-richtxticon{background-position:-109px -34px}.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-tagicon{background-position:-148px -34px}.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-plaintxticon{background-position:-72px -34px}.edui-quick-operate{position:relative;margin:-10px;height:40px;background:#FFF;width:50px!important;border-radius:4px}.edui-quick-operate:hover .edui-quick-operate-menu{display:block}.edui-quick-operate-status{display:flex}.edui-quick-operate-icon{display:inline-block;line-height:30px!important;width:30px!important;text-align:center;cursor:pointer;color:#2A57FE}.edui-quick-operate-icon:last-child{width:20px!important;font-size:0;color:#999}.edui-quick-operate-icon:last-child svg{vertical-align:middle}.edui-quick-operate-menu{border:1px solid #CCC;border-radius:5px;box-shadow:0 0 10px #CCC;position:absolute;left:50px;top:0;background:#FFF;width:100px!important;display:none}.edui-quick-operate-menu .item{height:30px;line-height:30px;padding:0 10px;cursor:pointer}.edui-quick-operate-menu .item:hover{background:#F5F5F5}.edui-quick-operate-menu .item i{display:inline-block;width:2em}.edui-quick-operate .icon{font-family:edui-iconfont;font-style:normal;-webkit-font-smoothing:antialiased}.edui-quick-operate .icon.icon-image:before{content:"\e605"}.edui-quick-operate .icon.icon-list:before{content:"\e87c"}.edui-quick-operate .icon.icon-trash:before{content:"\e87c"} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/dialog.css b/ruoyi-ui/public/static/UEditorPlus/themes/default/dialog.css new file mode 100644 index 0000000..5ba6016 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/dialog.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +:root{--edui-primary-color:#1890FF;--edui-color-active-bg:rgba(200,200,200,.3);--edui-color-border:#EEE;--edui-bg-toolbar:#FFF;--edui-color-muted:#CCC}*{font-size:13px}@font-face{font-family:edui-iconfont;src:url("data:font/woff2;base64,d09GMgABAAAAADJEAAsAAAAAazQAADHzAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACRTAqBq2SBizMBNgIkA4MwC4FaAAQgBYUjB4plG2RZNdNt8iC3AxCp84eMojSsUhTldC2a/f8fkx4jGl0b9OpBKegkwmqh0F6Hl/zs/BRFgUkzNE2jgpJQIIIki5LMMEzIkKJtaOXebcem5cK4BEFu0Z+TbtKNI+c9OV1RKbSNe+ugUaBH0AgTg3TkCM+MR+es6aX337Gds+8hSdEknn4/fvu+mOJqpZIsBVqmM3MueDKB//6n6+ZlfroC1xzHY0EiUaX0XSHrCK12eH5uveUfLP8GAzZibANW1IoZwAajRtT+6DDAYlgnKiiIcPYx7ANEBlYOizDRU4yEU4xGrERPdkZQQhKipAuCUCnRas5kxQFXTuqC0/KIfjvA13P7Tr9qyZRkW6EBxNPg0muoVfSfYiuJZmTJK8vT8AF+DB0ilR3BN+879V9aH0rtQ8MQknYEYMsp8T2nI/aP/Wv/SnKabByyPYTAiO+9rQEqWW5/h1Lj0aDotjRJPEGiMQqJsDiQgmBsVQRFv0Nd5Yy1/iQzI+s2QFVKrtJ+UqUEku299x8QPkntqF0IMVcH8E/dyiNMuJvXuklWsG7QuPEI9/3OwXkhjziIwXk5zziACJgvnb1XBNsav5e0erjUes4pl+PMaASMxIAkwEEW3lhg/yzG3iBk+8Hyi802gdm832qRzHqD2Ibwb83rlN5PrRzzT5eUer3l3cNT/Y3PTzR7AJb9WVnxNIoBU1VZ3Yxn4nCc1oKRCTAYc3mQP6aEhJSIrFck/b2GsVmPfZGurXEOERUFFaO5/MejghZdAdA7Pt+rgI4HcPY4GIFVnbHCbnT1gAa7QdNhjHn8lSySxG6zTvQcRc1TDeCZ/MFXHyyrAmqEWtUDOnKLWkg+OB3w9k9tVbgAD0BnujHYvAEoDUAAUHNmcY76M96vOkWaUiDbN+5f0BsBrYAa4MDtz9wQIMIbFZMJQIuOKAzkUkAJc5hHVTyRzDy78+x93iUlvIhiSSE/JWi+lpQsXe75t/J9O76CrgXX6rf1jm/xPfah8E79Xr6N/3/9DznJsqcnytc8fP7zleV77vOPvvk+mpv3/vzLr3IJmAf72Z7PwKvXvDr/3Sv37XnWVd+g78bcW2u/htdhYqMAgdS2ajGw3SU77LTLbnucttdCXryJiEmkmMudBwE3Vjp4XHC44qKDQT7ddkqlp8ABJ9V76FdsvRL3DEnXri3WKEdMaY7qEq3VxHEnrIbXMBnayAoOSPb266WglG25HNdcd0OnvhgTkg3C6sI4OmcpKRsqBEMdqBrg3Qbq++hznwCOjUBQ2AQEjc1AMNhCsNhKcGhB8NhGIGwnBFwiVthBrLGTELGLkLCbkLGHUHCaULGX0LAQCIxFQOhYDISBeUBsMB+ILRYAYeIsscNcIPaYBcQBs4GwMAcIGzOBOKIZccIMIM6YDsRlbDhj4zo23LHhoQcIH91A3NCICO77MyLgNvHEKeKFCvHGWiBK3CR+OEBUOEkmox4JwC2iRT+QcNwhEVgPRIe7JAr3iAFDQHJxgRSgHSnBOJA5OEzmYRRIFcaA/IMBIO04T3bhKDmNLiB3cJC8RyvyDcfIdxwnP3CCgsVqoOAPGSIuI0DBBqDIUYOiwBGK3+FLAjAMlPloQ1mCi5Rd2E/pRi9Qrh1pMwisAspHXKF8wnKgfMZVyhdco3zFdco33KD8QifeBmAd8DYIh3g7vyZoFqDOIKtRg8hRoA7vUFgCvEOjFu/EdRkZA87xwaqWylijliFTgT7g40usAT7FVxPyE7UP+YWPDuCBcGFbeQ3UdGLsFUx7qYrX3qEJDYyRED5lqYEpfywSKis6VEuRoYhBTVRxJGO5WCCBhky3kCqUSnUExuQScSq/1ITUghkagDxqJh+mRkIcTXxCymgRpRrNSii8QmbgBPTGwIp4CZAMR8aqRLARc0Rsb6O1ME3DsNSbEXr0lPqSqG3RKylslIQasVnb1joMkdDayuRmm1J9PSSVlCJx8dyr4vHr74o4qtbzSIV4WCt5ZF4ajw2TLkGMlx00hrrMPD/ptrlkM8UNyGwFJG1eBSehkMiigu0kWiQwIrBj4loYS4hMwg88JJSBWBoLZhsp1unnfu8iBCfCNvxn3p3GsiPSVKuReBVO1luO6JKLOfHjeNhGTv85YAoir7VbQOyQ6dj+OnEik1tJu5QXCYhmOTTP00bmC7v1IOUPN49mW9X7BF2tSZGc6nIKgxTFLiTf7KvGgV1CZehjIKzYOojPjR51zPx/fsT7K2fYiSiOdMKRaBpYGMYuZWEe2yS3ECqYKyzHccqaGURaMlwl5LFNRbMQK+W6uWS4usfPDjFQjUO9BQHdUqElYB6Pg6l4r3Q/ZoExclQoBRYYtigNqZASdpNykjVc9VWqJ5CfIYEaOVjsnxyI+sgVQi45GUucNj1U7Bfpbrw0hPk1XymRa9ecqfgTIUXBvOfim2TNkVuz15TOzPGtqSEQKFKFEwNQSPnIoZiwE+6eJIk0mFEwNaS7kk6H7FANQREXP9r9v7Xzz7UYCBl+0eJ2KyIR5LDo4a7/7D3/bOhzIPxRCXotic8mSKuDH8R7zPUbsoOTyIAFgaLZBdokURX/er1C0UxoGxlZvj/hujk+M388zxbz4ri7qRlz03PPpVI9xtEFj83F9w5HZDT6c1FoKB8e7CLc4oIDdr5ruLY86JjSANeegNiKgeYYCRik5XIpMzErDDRZYZCH2T+BhT/MkhGYx9FzpK9Cu+BoCbbkubIuel3pT+MPa8QcVVNAbJUuCG9cA4UwxDbFMTQxitqNB1+Q6LdHHunxd5jz14fgYkHKEgEhTSjhUNLUTnOFrR6vMJQjucPa84aXt6G8GT4zbZaXlWuxGa3nmawtVkIjWEuJFkzZf2w+auSmnxfdK0xCl8nKRXM2SklRzN817syk7J5Rz2zSiGfW7KTqGgnFEKgeq1bZqNi14y2LgnW5gSh1Dkpz/tRonQYYL5AKv5G69/EU+5ktDzlcU298h+nPOWG749qN0szTKOMtyWxegJuCs7QGnnDSpso4QBileqUCaFKbQ64m++AF8Pj0+JYBl+1635+N3plAmAHZAw1ohDfR4tasEg9r559u1JB/e7mmNwC1KLdbGI0iM477VEW3goDJ2YxzboFDsPTqCY0ESAvQwvpjnGINHw1YgYLq72yr9RipT/R70eoqEi0DCxXsUg2auJ5UkgjfWtduUFQoh3l0sK1/WqeqwfLjUtlsej5HZbbc5JhST1ZxtnXoYPXZrygWmIS9S2EIFIIA7eofJ/LnMzP6s48grx7E6NsuIJSQeGyGST3Tx5xcbfFc4XNVy9D6GLzS+CtZ+zWNCEZ52pzQgFSP3OAUrtJ+RUiVo0BBwE8a4/bkWMgI1pseIOVAr4vezC5aAvo64O2HYRzPMKGZ8ph0IR0juBOq4uqYAoTNZ0kXeILOFHJj3SUxK69xrnsFzYECKF5v8lcUteRA9Oaayqi03vuUKN1IqmGoxWxAyKNoZ+bZTCrs9OTaty8PJol06wLg7NhRAgrhmQZvVN05TlZqafw2zSxfzErEkR0Y58B736LHOblYmbQoDHSE0UOiJQDpizuAcPclZui7J4PI6fV9iPHeq2Z6BzOCtgwldDtbdqiETgb4aqhra9JSK4mMDPdhlspwmuBkBtPLcaGafxiUl1oWOlF2Tq9Xbz2e87uWfa1pEKz8wu6BbcyWY6E79uc4jna/iiKthUTU07x/Ba93cEK5FJF7m2/0pHuTuWTGsVA6+Ngrc2lCeDM3UCjtiL1D4OLVJEvCn5IPFz1e4m+5KSv7U5wavwXF+mWO2m+NMunZStqLz6swj+8NlRmUCYHRzNZEx2ZA4c1xK9PHwrCs0Ef/rV0tvAp7jdtNn9aqWbMrhBRM+oGM+XESRWcXPBi1PiSxyhCZCJXPgM/MkU+LB77fNAynouzAKPEzotRg2CbH5MR5xdT1dLnkwHyM7e10rSIQFAVUg53bCxiYiTN4WilQDHcETeSoI2hxFp8iH6+L8oops0I2cjzGsCRwgVabiRJr5hcWsx7NGRduPkb2RDok01OmxNgLUSJckupnGYgbg6OE83kXJ2cXkImgVcTCXmRQezxD5APpjy2a0hOlBIYoZeIhCHnUZWnLmuzIOlHG7QnYrlLHSPjFexhHrD+Av10GCDg7GUcjuyYQZdaSsAH1xdqigbpSalX1Ir+RS5ByBwvRjRxdbwmwKwhKGqMYTvKSMUUepfWpsLCOe/nYtW5gIlC3yOwZzmT8KCZH1lTGxJPS6vBblRTh8QIogtLiJrTTyLKhPi9cVShjiHJDGf8OHEfqaW3utSjg7W9oIFC/NwFueLBKeejuMEGKRIWrXNovfBqSRwZpDQiKQAHp11/u3Q0PsrQPRgmye9G++pg+lG++nSBy2JKGT6jul7cR8ioZ7sxvWECoQrlyUkDW4NNBQi4sCBIQzvRzQgKKg8SdDNHSoiqmR47kqSLZjCJocYh/yDZAmB0v1BW5uynRxTnq4YziXSmmQxHEJlNa9RgFab6dpvMqONWP7g8aFpNonJo4i3naCy0A6gXPcUZNkL/viMimgbCVufMjw2ztrcwtiEdrCqEVpLruTVJ45oqrDLZIPzed9zKDXp64j5uub4Dgf+MSHn9hrhtV9y55JxWCdq3hY6IeUua0zXpPZO7qhau6YfBF4f6+DzUTWLaDJreEtRGDDIv1iOO1Vb0wnXKIZ6kPRiJ25DUMaknrQaCpslTMcZuS8sbP00h5Vla5+WwYclBUsJbpQ8Isp6OBgMGTS0FuEAjYHVxILrBQQoV6MI8+XilawM81c4aQJ0uUsa+wIeVpmZCWRQabCxCXHgpUNbB7j/eVbtysfPzcNFiLIz5HsLbvjyDUx0e0w0o5CDyaeMOg//lj5eaNRB+1PFM+A6i6lUvoeipkTKorvay8hYl4IE9YhO6ishvIjePNx7Xa6/swekgTVDicnVOzQ+Bvfnwpj8U4xjhh1Rhp2GbOuZ8i4CngOIL2kcKfuGKkJQIeOZI5kMnSKOwzUASmw+Tp8cyaAafOtexgjRmUOAR7vX7te/bLr7Eu3nlBUnpAk5hSnpW1Ot8tZI46R2RAIb4cRSqR5Y2tyoYFSuu1AE0kO9zJD6eFlWPU4ymDsw6eNsotmDx1p7d+ZHEE50Nwnejq20SL9eONof50aHRLbL77dcKuwYUmfDs6h/hm4o1R6amhaPGoF9ZSQzyk7C5MU+s3hIkMxpcygmCJIqhLcbyGxpO+CF2Ps+trxbV9Q3Hw1MQTTTYZgyaiiZWhK6x43u9nYnxtVl/nOpm+hy8StiYEKTRpCcSRmBueyk1ZjHGodzj5JFpdISPFp4nJAxHGCZ5qySUUrMMUIho5Nv8JJKb8uLYC517Y+MODSzA8n69SXa/UGhuyZL1S3i1KqcEYDvpS2NEd1xdjqTtPncxhjFKk6WGczh1xiRdK4rD79Pn9axKXneuep3UweKRg584jXFAoZSPRMRAplxf4hHURNEgF5DLBIWsQbb05ERWcLdKIcKI3O3sttyj/dU0xp64zV5+bEPB7yXq8om1h09fKQ0BPAG+vhsT6QgJ+s5WRpxJ5T7haQA1jD4yddVQKx0j4sGHu5ly1AjWfAPWdBJLe58yAFEXB3jWolcqe+9ekX1EcH9BIlTHhIB0etuInYOFmJAKuGbNmnstm1wxUecWcnVTvdAG0vf+jINEewnNDo7usdJg7chyqP8Mw2EuvuE/lOG5K/VYJFMsh2aKsUOAyg7bZlxQth1OZ65DYuEW/Hqhmf0EWYCokA4bG01yBd3rQDYDEkG+e0Xp39thwOpcrSPq/ILizMDDyG/6E4+aMWGu4TcMfKi9Ow/DsH0sRLNWe2TlE+nxkMmT38ozrU5Cv63+cegU806hZtRLXR1c4jllAGsy9AzxEEHOveJhVx9wlczSroEJHGEZb/DyOHxVyWYBLcNioUtnD7JIIWThsFFBAcI8xSKjkdhG19xBlJ0dBHHg9vmdhl4hctC3WA9PLnYkQ+hLvcPAWINU6ndSNXOcmS4FgRuuzBW4xu6ELKBiBGEexXNADOa5I8xRkDMMeGVrGsLEiefHaehRnQM/I1PKyzBBsd8mGsT00MQTac3Bm7hUBA3O3mIY/ShWnmLcchCIvkYaC+ICGSVZyJ6tsAQQvCjQRtgNHhYBtghiRqHo6AyDcwfyOkZFl81hNZdP58DgfhYyBYcPpDbT9wbegIuxIw+mhqm8GVtTIn5XSYiW04w1OxnuiF69ufxFSMfS684ot85XCKyXtAaKpc7Dfkc7XGmkoPUGlx/eqSu/g4b6Bg0ObM/3cEpQ6xtUUrjZuRnPMM8phfPRqywL1Lri/jt39un3hiPTLA+CUvJX0m7zGUh8Cz5Fk27Fkg1m7zqIGPTbrWYlEyUj2u3ZTk2+evsuxxUMHD3Oz/3ZqSQNH+plxPhVa1WhNoxWNL2v3kp7oyFyi7Tfp9FeFPnq1BvRhhyQD17VRNace4Zl955h23b7LigYY2RZIdo8FHu3lexZcid09H74Sp/yUW2OGCjoamaArTD4twNKcqY6FtUrZWk+4pE3sIfcGmKhWBjhLBAs+fW9cIlVzg1az16msG9NM4jSrSSUG7dcNYZluUUVKEfDXek7DarU9C8dpEHiQ6vgBq1bKW0tZztRqAbWG6KjRf39K8Aruq+qs1axuyiVQUy8W+2lRsuxhpgeO1AEkoS0s28olbY1bhbk0UBjOVwORTZVLLZu/qEVgHetQP0l0RlfRhaE2z7ebbOwyb/QFGxOacpvxUBDGYWwPWhEe1UOPJ/w2E8TPPVweQsue6aZFNnFPl6xG8pXFY3OKIitmM1IhSCilIEyqbhg3aX48nheU3pc6kmcJd844U3nRx8I4OS9aM1D/q45ympN4Lj0s5iPFIn0e8gAkb/f/ja8aPRjXFPEbH5PuxIEh90LUOIJko0dtek/tZbJzm0T37SQjUVqaQ7o+c2tC1ntWGnslnPdJQy6GryzmtJPeNgwpHhx0nrtXazoapONY1y5I/LLX/adiP0XpPtq6tbjDUyKWZ8ezkBIfTyq0lqc/367O4ktRe5CxfiXjxHIUU9ZrKx3MX7LYSNpDGiP9yz3SWSNySX60H6Xx5XbAvrzMb3rZtLbyDtKY3RipgwjsAK2MRCUmEKn2Qpq2oJbswDYf2FFBbEIDewdLGsJmtjg7NDuMP/d5qZTGo1Vysqm08o30DXg4t/eviduIQ9YQFhJVM9I6acn1U944TI4jCi3DiLAM+/Am3W0Mdk8QJ9NcVRqG4WHERcOwEoKZUEvoIJRUoI1D0RWlUEeJuX2ONkA7z792BUays+lm9w56NsPkbva5zzAz3p+VmRgfOM0nLuRsH04Oo8PdjIrUev2q+e+25zwqKp8Ik3zisjhP5p9ut9ckup20aoJOkc5JwfUVJcRRYhSuOWFDhgl/X9rqnOb6p6ZLJxNHoxp05D7O5HSpf6rTXF0J6Z+neFwzGH/erIoShIoicuMCDp0LXLqGlmDJjxsb8/n9MfYaG9921xvB8U8b+DNJfnHYe+PiMO44967rGDdsY5XLueckunmIlcp60Ak7PSeOE++S6rMhgWhsqTUGVbTUGYl6DWF2jXvy7ta1YzGjM1ePpLhJEkrO3NopKJx47OXmFZT0dOvfTCNh4Z/aP39BlbaUuMqMQ/yIbWr7UEYlGYDHm73IgAXIXvfvzrWH7f8hkx2au8g/u0cyF0w5GNoTenidInRvqIJHcDW4Es6Erruwzre4L3lvZTKlM0n0+sHX9zShScjtUxxbW1isrWQZmeNDEwiNbYyVra0ZZFmTRmhKYG0JNGQZW8rmsnngwbvjgiAPjyCBwTpjkIdAs+F4OPdInMudJT0IqIczxC/XlR/hT1sTcVR3NAKMW01JVaTIZMmKtJsCBhfo57uVpkg+BhNMy9J7aTGekRJJpGfMEQGDAGFxJNozSiKO9Io5EiBAgLDg+xIB3hjsnpofFsFG/Ji98aJ32YLx0bpozFQRqXbGor9CGouMdiDb+I6TkOYS/64yK4z80X0ZWUhe5v4od5lzuGe48xzQkMMzozxRZ7jmYeAFe4EnT0DdAOrJBj5LsOxCJWuy9uG6lUE6Q3//0qVD+/bZJnPdc41miirsbTP98A5FRh4LOgYmoHtCqRs3WvV/30gNxal4cGq9y8bnpTwVaFMwjtGBnLGJcxSoL2D+impdNTXiiu4KbV31OkA9pkf034eRujpmwIx9WPZs0d7JZsIMPCYR0zXZzA7fzmx0dcJh9VIUDtm6zYZ1a2jT6tX6yf4jKmRk5AvsqjlX3+9a9iXoS1mQyBAduFL2SC8eGBrS19WVX75cJlqzJiu/4Bo9Lg44LrXumTGjpbyFF69QpsjlKVPkqbZmxz/se9gLGC0kRapCnimGVLliZd4h2pvXv66fTn1gcOz+kEYzdF/vX1SdUXQCwzNnajTZiXMLaDHphCifjMT56nrgmfs3G5c4nYAcndWWkKC7yqplaVlmzoQ6v2U5FonAX3Pn3YYNmbgiXGjBmNuo3Ud8a70v/p/Ghix/H6+4WK9sAfNZapo+zm9iGhtlJBlXRpTZ1bnEPA58HBMgXLoAH44TDSTe4WncLwg8tFqBECPUNlSg2aKPuMn5F/gyN4ybTE5H7paRBBtpK2Ej1wivpBnheBrmuKqnLR5WLNQ0yTmCYYQ7PeBCbpE9WQEfNq0IGtNiaCNoU6o84KKTHiM8dTSG5o4GFpXGLo3jBn9B6B7uHnTkCzdY/VR6uLGyNG5MpC5mqTQsIYIT5lI6mxWxAVnKl/CXIhtYEf1jE+YSwUkID3JQO/hHRqrTXYF0H7hp+022SD/iQc3vy2ZoIqBceWI6N5M1KQaQiAeEGu9+yxxdW1msibGACDgYTEmKPEkqTZKnDAr4ypOkKfJBw7I4OClCHCYUhokjdk8wxTBhr72b/q+VnNOqtZPjmc3DAtfkrsaEaIZajVAPnZ/3w01/+3Hrv9McqGrBg5AkqB9kj1lftkbPnZikMuTwksbQGviUgZ8wy2rBwqYwZIc8wzWClVIMNzrGO0alx/qA06VJn+8NdhYdbBfN2Vv6Zflej3B22VSnCJfoFOvRytVRbA09jBEQtXDDRpxLsMmQwlUemD2pZvqkJUkOukycwM69XMDNbFrTp4t2ilfZMasm2GkqK59J5QTm4Urwoqj15SK3ksCNQIq2Fg2TYNJePvWwyPH+CceDjifuO4pmmvNn/rSfT80+PXvW9dlPZv8tpBvpXqiRg5RRw1vWilWW5ZeuUKT7ZQ0LWExX9NrDx5bTv2bGe8d4ecV4x3cHCDHGK2p308/SaGGD5goJtodJDxn2WyN9CYzFumVg3DK9PsvVqF2v3LNW/8ZAZPwiShUFR4Y+vt1z8coHV/Xt16xYX72vJ9I+UVbCmKWPa99ut20OuYK8ym7fBiR+OMlKdO1eSKKv9L6DV5CXlHftrlcTzOg+HNB/DL8cC+s5IYKpwHpBnMGJ4uuTmOiTm+DjGfYlcwzZaSwwVcAJoemxy3E+wmAPj2AhUaJ2WMgCGOo5J6dzVAz92xRWnCPxmQg9W3nGpWqBdkw77rrUdkDI2vNc60sb51K5Y1wdVEephXQ2A7bUU7Lxle1tgprITdAm7tgsDnG2cePGYHITRXtYaadCWpVKS2kiB4+0cTbr8gv2KD+D0sDOfddyLQ+Cail1UBBkojSFP2NNdHCiehmoEdb6LNaRQuS14G3KbrrH3yKrnNkRkBVOEV5zlm4X6sEnE5IUYGu4mmCmmglCgupKgdby0Kpqrd6NTIenY8Wfw7slwnnOyXLW+drWWtBw7UkwK47/uqX1hlCTrmQDZIYwnD6UV0ZHHR86PtC/ZBu0GNpWtYy+0vJX2lDVdKnM+p9g9EBmgrwShw2WmZYJ3sZQ+wlez6ITe2Mq6UgAXl69Q14FDtxEjKp0giwqa19Va8P6nW7mL6Ac+dqoYAu4sQmdxPogmcEf6iNQSnP5qKpBdmsL9qpmavNQ/0Mx0Zpb8P5otWQQy0flIvqHZhft/hboXpvplu16505qcE4CnYsCE+PGlWXlytETNtq00r8Cw9DR2a7Zc3AtXHdDdKE79wBujp6MDkf/bjd1ik3w5dFypbJs+IFddMnccFcdd0cE1w1K5zGj3/assef6Mmug5Kj2s1FoOooOo/DhQdMAioOWAl8ULbDc3T/RF0cMv/GCYCL0EUzUZvX3vOvKG0/aBYT9digU40ppjbVeFvsYbY3A6pUg5nP4B4dXq4DVa0FZMjP9yVlmsTrsg/Ce8XBjv07VMm/dmOo+K1VwD6wkqn74/Jhw4bpbVH+fu6aJooelI2JdE6Jsc3YZ7Svtl6RAJogXVs/x0Li7a2IG8MP14NSH8yETxQT9gUw1v509eyb1SCY7Dk4adPo+CaDYCGak6GSUZrI+3SmkoVNZMHnFVX1qDIqBnSzEqb8EzMhLT8d0LXkFJThFx4BReCwPnRajvbqCHFzmBDVRTWDCmTWqezZmIohSoLpOYxEshG+Uk7bsrw01DfkeDRUNKzerxger8wgWmoWQV1FbUVpkS2tqJ3e5iGD1DOm3pKa2RlDTUGN5qUeF2OwhWOBOwl5FKDhOQ/zU61bF82IMLvoMjl3EGqIftsa65mBXw5+Glebhd+l6w++GD/48/9DMxBul2ROT7EmFLHW5rNoKjzkzzNbW1O6pxglW6vap89J5exPzQTdNr1YhBIBG89XKgvedIF8zy4mOn2Zide0RY+ci2iva/ZWVf7ugpqLmxOYNFRsWBDGuQutvyZoN6UrUREpVNz8u8KrirDppnSmncXfGsoplAx6RhE7YQohsq2ibdDPlJnVUyOac7lldUe2pBuqt1m1YBgDjsnldhONWcYEOcVZm8Mx8gtBMaSacgIQDK3HzQYIJ2gaZCAehDnk3d9hvWb1gNfzAwjTPN5/WPO5g7KdQPEtONu2BhTHPb24FlB98hilc8lUylzJMlkqdzbm92/aq+Ym+W9ToA7/SMFpMHDjaAPjRH56CzBQzJBSXPTtKsQNCIxOlGd5zCuqgdkBFk4I9BBO0rFJLbaZoQ0KBaltKM0VfuQwyAT8aI4AbYbcOl92M+dU1vzNCjTFkH8RYQ9DGuQp9OnyPiIpz8hSZ3TE8GCvtwCJ2kqulWzvzG2IjXrSoqiFeexDjzVLDRERVwo3oFRIgtoi4qrNKjCxaJDaIb7pvF6xMBPRaupmXLdIbQKfBF9HVbyyyCIhlN2s7O71QD0ouBsMtWNsh1sT57WXnqy3IRnWwfY59dnh49iZPHh/H5S7PffL7lldf0vXZM8Q9C27slbAwe5TK4uOR3TvLyx/w2d6Lb+YgHDPQclNr9MvOypgonW5BQk19akhxc+7qiNR1EXP75UyUjbJfN3dFanBO49TNf8+eznCy5x5d+75pL2z7ncmuLjhRfj1gzZzwQAUvLDgzn7FABObsT0rm8/gZSZR3H6iZg8mDu5Oh4ZKSk6w27sH0pCQ+l2/YpUs4IhUNx6o7OQMXA21S0qGGHDrhdxskjxSl7z508JAhHc+vTqBenbgwduFBOQ49MWJ+9ILFiercNenLQ5D6kJmtcluUjSJh+WIkMK2mYF2Fvgjt5GTFWZczXLiVxrhjw8rL3xXd4/W3wk87ydfx7/Ru5ASYLQCVRKt7drq2loeRMQWctSmz17fUS3a8NBNXEE7O+KSH8Xh4t9GytmJC78fE1jWT/X68w02l1ln9j6ntA7f6MHYgZF1qddvaT4nhQ/zxcHY4r4w8ympJylRwJS5PhRGeSnlKinzqt1RR6dln8qmLhMs45vE5K8pLN70sa7q3LirrM3jX6tztAu9c+2Xv1V0A8EXawG6t8KG9YGzMXjt5Eh3iDrhC3NHeXhT9PtjeHl9VOgIJE7niZDGw9/eMFIsjU7QiUpKyQhKZMo1I8V+9JFeWK0mERbAiEp1FV88vJMMsmCxc4urw0DTO7E33lBe72FfYXReV9zaxNZevSNJIkis1uztEHAme+YfFqbGB8sEswYQAPVwHOg1kHoNEinNyeuUMZQmmMUsyvg94zSJJlhFNWRqa5sQc6HuPJqy4yJIvkewLu5RdF+ntXexS7rrAvqy5Mm+I4MgbdUFTfIll3dul2HWXdSUbmyWQ2CzJ6A78PvAgeXIk4R4v2H2vSBgaKkwME/5g5/aRVe/4HCQa8dhra2tde+ebKFQgCNULfCG9QsI3jCoXcA83k4A9IIl+cKiJvSz2DsMKng9yNg1d4GTmTrlrmVevp3ApQSU4Concrz13HpnnyCPnxbooUnA0i8GsilEKj82lRAsum/fz5qjVi0Z64wurUefxyXb2j9H+CObEEH/ZEQmz7UwJaTlEuXOHAi0nlfTswPkfkfsHXcgPVOP38PlbGNQRn5uOBX6Io/WQ7Q+1s2IimyBScYhB7px2BEq0fmv71pqCi5CtcicMEjDB2DJGB93WsoqAlWPySsQSbq1sRq0TiMM2Q0QgcIxe+35Boi5VaHFbE4S5eQUR4m5u+BOycd9S5p2N7oIJOXep6tbbVvJt9+K63O3j/XdiYfa0trk2A5IbtHPOhaFNnAwcrndAM7dt2oQbK8+eXRm9yq0t6J7IC9K0tp1tW3zQPdIb1NaqaamzrVC/VRs4uzyRWYhIEIOgyBbYK4fJN6RMHr5RDUeeJTILkF50rH6xHr5L4BvzUY7SvQLCGHyFC9k8OORjBxSP8S2FCCILCuaup63hv47xS+4CZwy7YlQXbCZq7g6F1IHm0No3Wu82RpSLjz13wLiU+AAy4W/LVOu9tr0kzw9kzbNZi/1neQIIWsgZRr0yHkqVb4OL8Qvne3mpzicbX6/hr6cFc4NkCFIYRhz6NvU5NEScZRzg2vtEObfRtd5vQmtBc0jd0AUfIe58jCppFziT0gWYvSS7TuY65nEmh2lhCqVCzuh66Xqm2W4ds5PZtY40YDdA+koUCtFurYWpf/jr+/u/2h1nCnyFwwuYZuaCBV3z42JjgW9VcRxcyC2EK6HCVbCE2nTi3n3pNBeFhIzq9RXv3lk4FfBD21TroovleeREv6I8YzPDQOF6tGWn/Xi5u/PRzp3l41Dbw4Br9FBFyPTL2f7HvhETjXYBj6jjY6WBNE5i8c/BhvKxcfdouo+4PqxF3zPffj4JvnpMBf7b45EdMxrBXtG7fe+ovRdNEuNVNFeq8NecE8TFjOrYzb37tv2xD6B5RnsV1UkVAZrnbx6TYQeY/JgkROK15qexaBDqr8E3VhYK6dobsC2AYjCetDxNoUibKuDoVHW6jNi4SrLzvgXo2C2BpBuP2G0+28C6T2Qeqc5iWe7k6mBatSZJHWSkWwT40HwG4RZJ9uilK//8+VoWl1WLSB2Knzvw8HeIjO+u33ssJ/G0v1ZL8eGyg/RAV+fAzQanvk4OTvtXir9jWWCxdNOdKzOs4LF4x7bBAEU8Qq+FPw3FAPy5yaLTIBqfmKNS5cwWcHS2Wp2vNyAIuV0g3Q8MPJjHk5VmAxWzuVPTAB/myQ74gAdf1oNOcBMwityLGMBG6DoAo9CjsIVgNgOlcwRV4IZebBYDgIBF5iqECQbKfnJTgH7c6b0p3RgvzZ3gDStv4PPc0IvMoldaqXk9wgSDOH5pR4uNdNs5rbGRy/27EbbFFGCxfWgYXYCxhf825zUCwZPVC1jRWCxEzHhlcFE4rDg+psN6u0DeS2pia9mkl1Uf1cTy11vJXBaXXOWzWexTNQxwMA5lmb/yeTK9maDXHj62nD6SEiXRicU6SdR+AV+5Thwl2U9yD/KYoxIWcW7y2BWN4a5xsmjsRFd7d0UW+cwebUZ2eVejgZ+P9zPaFEEp/Rl9nmAF7YTj86GWUk+rgQRNAZlvjZ7ERwM/H+z8tQ3opqHYwXNuBERitlSe9lt8f+FYkle51okdtNOwI7FxR5fW2bsYjJ/2YTVsWjapAePjW0pukEoN8uSrAr5ygzRZftUYKDqVrBP9TJwU6fYGAui19x7rwv43OZhmVsB1yhoLoP9jZbFyPP3TCSE6/E6//lsAX1JPkRyNpCNxL2wvTVzzwctrZMTbew3fkr4ED8Dc272IbimhXzr04+RJuuK5ISrggLVjravCzVSLwAUWwwAC/+jeakhenmGtwPHofEaWlmXVDXdLNInICgEcEev5TsVH6+uPHquTJNiHQRIdACkJIcdCrYFbsJjWfWO8DBazGbMNkD6lcoB3SSTqrjTvr6oi8Z8+vfTihT79zRuQMvVe1D3fcvnIzJEY10FFLCtWIYpL5Owt8i1sOeumzVu9el4PmC2rB0vkii0g4W55eTCxligvXVQSQ5kNeCPJiG+AKkgVuWl4hXWAtjz9FVp1oLY0ZM0aU2MJZKy08C1o0c3trqyESr7Xrl0bQrXue5kB7iW12sKzeL71rgspCcYdBJdq16xtcpGP1vXuZR4o5APhk3cbSbyNzXIS2HKmByPDKHi8BytDp1CFNVN31vxvjWP/Py9Dx/6PlWPk2A5SD2igfvVMLsF19aygpbjn+KVAtWRk7GsoJ08U3U6XXqdxODF0O84MQKb4E/nQfnLOMIvqRzhFRtMszpmvz8qy2w/kXX8audxQJNrJ18XhbaUbL/tutIUSMb7u6B7l62Fk4217lRis9uNjbPSXf4Gp4cGVah9RFXG1dbZvO3u4t4OfzAiTH//nck6ym55XXc3TuyX3SOQh1yo9L9mtBzximYN49Azyi8lZPCNHleHnl6nKfqzK8cvI9MtWPTZC2UawmglU29xsGMc9LIzt0uJx3DfhsAyLYNQGUbgwLFQQLuoK/8ANn9zGcIMag2BlUd7bAuMgb/KkgoJJlbqBiQWT1ZgQXw4oWjC//hsr5+PCeRVRYVaZ2tpMR0Ch3+zOmKA0lpQgAUhsbG1fUmLMW/vU0m25+SuIZLMZYEQxoi/FxnZHN2TA05wU9F+GpdvP7GLm8ZqdEecOg8+JUju81+hSd8ZERcrPPjDhWhbdRJ+IC1oduORgJEHiKj886ntgYXkmQqSb+Ca6lcwmZJ62Qp0llsUqg3d814iDJ+NH6E1uTfQlGPhJIFZe+P/l5jbn3PCP21XwFNnhmimm/kxgWDs7IZ+cFWg9YhPjbtJHkPVmDGD8xdSAIR58BuzA+x9fW8Gaoi7CWb4uZ257ps7gQGroXgraqvXxWoRn3m6xn+c1szA0gHXDZbkYLQlc4GouI6Qp4oAYZi4zZ3JMdw08IQTlyrXBRV4QpS/nFCKUwnfZr3axecxTsGi8WnxXBqVG5e7+erh7mg/tPssndp+ktt01fkFnxuwe6V27r/eV3af49WQz/J74zAqsi/29w6bdV/riGZvdqw9f7dMAxJdYXXxiJSQceo3dbw99TYdt7jEjHPirQB36DUmMzf1mKRib3+Rfh/5gGfjDnzHB4ovnDFN6FxgkSv0VZ13jb5J6++YupjuuK394LjcoMd+PqLInWYtrOsZ2aBhCqPLHqyKHH9HOkQZBPxeB3iyiAJR3WAwK8kSt8FTVTe7kwRnrINJKV/Di9HOx4+W6HNMSmbQEYeoPqnma+8QquwHagKKu9P0qOl0xRKU/vlLiDZBKFftlVXIiJazHoeeqgHwGCJWMF4UajtWooo4HMAxXNSJNyODw54w4qJs9CLxd1yNhsFo02KPPvacTcRX6ptNyGqNG0Zv4scobRcAQW3mEKWj3H0ygv3ijvqTnbW6EDWegbvXH/COMCd0owP6FfPmoK7vnk7+GUQDw5v+QPab/GwNkM5qgP1Ir4D/a3clXnZM96sw+HtTB/oFh/4eMk9mKCvDAnxp7VDFpeTse8D/53tPjX4X2IqM9IT/RfbMHwnGOrEXmwdTNlR9Zj0hzZAOyqCNbiP26/VYMvzFQdQZglt//HYnC8seRaBS3CQY29z+CBXP/PxKHWVVCeCytOkdaM1QR7RG5V3tkCI5pmh8miiqLoGdlo6Dd8He4NgYLjgff609olVSmy7ML2OovUNDibVFv1yv3ZVpM8/R59AfErFMxvcboZ5t7+XB+viiuz6LmvU8YBBxKJrOH/cuTSIkFw6+8IcHIfgetQGVAZJ1Q1lHV/wSZaiDj5p1cOnOBynwhCHpFiu2rW6srzi3qB1oYlU0+p6CcMTUp8EbXUOTObBjZ4oPzt1oLqnCWPs0d08WgxWvrBxWaARhAsODAQwD69eX/H8AQIUEJAiDChDIupNLGOh+EUZykWV6UVd20XT+M07ys236c1/283w8gwoQyLqTSxjofYspFWdVN2/XDOM3Luu3Hed3P+/32M++1Ot57qJuR3DjQtkJJp24glQGf3GdRxUkahjsjx/5jU4djw8Wwbt2MzM+N1s1DIsPopNKbzuo9ZVgxt47igXJR875qk9TfnHlOcRf+aHatsELq44bx5ogWg4zDDPFmtedHeMhuh+Y8LiTJsDBEPKVYDG8J78h8AXykqxGbaagPeVbuc6sUuw25nG4gaZcM7vpiJN45ZexnoNTGL1RXxvAllDpkYVgQFXxyGRFRHA12BOPiI5vpSU8jI1hIGofyPI3ZEG6OoPmmNtyppXDjZKNrKwUtQnX2YL0jwy129KjiwM8zWmQt6Z0kl2IevegSry90zFcU+Cme1sLkwTWY3lXPu0Tl+gzh6Z+RVDRH+ROHWW/xfQGD1aBsIYOtJGFWd81vYB24lqdN1BIaJqbqT3Y0+MJvUmAtKdwaV6AI/O7KmHy5GsAd4pZR/LS2uUajctaQMYYM57G2ggYpPMxQTuc1FyVq9SmktLuM3sHiaM/uDDMuavgBzNNYgFQMCoeEjI636p9GzTOJg7K08kAZDhHpk8tWHGbGg8adYdL+TumagBEFquNRjTTM1uo2tAok9HF8yVYSdI6Dysulkf/uoyFKwPsCkp6F/0Jdy4ljLgyOrxa1DB7EqPql/4qMi7/WcC1cY2QSDBsip4+1ubuzvmZifApMq4TrVp2Wh2O8gsYwgIg1Eil9H1krDjG5pBjuQNIRGlS0bvPMR00M2N6GSULx8YGlKfzE4doAfmBB/6LilaTvCsPDacPjLTPKETlKLHbEOqhudINd1ITdrJz2AA==") format('woff2'),url("data:font/woff;base64,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") format('woff'),url("data:font/ttf;base64,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AADm+QAAAFMAAOb6AADm+gAAAFQAAOcEAADnBAAAADcAAOcGAADnBgAAAAYAAOcLAADnCwAAABoAAOcaAADnGgAAADwAAOc0AADnNAAAAAIAAOc1AADnNQAAAFAAAOc3AADnNwAAADQAAOdSAADnUgAAABkAAOd7AADnewAAAAwAAOeCAADnggAAAF0AAOetAADnrQAAAEsAAOe8AADnvAAAABMAAOfRAADn0QAAADUAAOfSAADn0gAAADYAAOfzAADn8wAAAGAAAOf0AADn9AAAADMAAOf1AADn9QAAAGEAAOf2AADn9gAAAGIAAOf3AADn9wAAAGMAAOf4AADn+AAAAGQAAOf8AADn/AAAAA8AAOg+AADoPgAAADoAAOhCAADoQgAAAE4AAOh7AADoewAAAB4AAOh8AADofAAAAFgAAOiRAADokQAAABcAAOi4AADouAAAAAQAAOkBAADpAQAAADAAAOkCAADpAgAAAAMAAOkrAADpKwAAAF8AAOnwAADp8AAAAFoAAOsJAADrCQAAADEAAOsKAADrCgAAADIAAOtsAADrbAAAABQAAOzpAADs6QAAADgAAO1RAADtUQAAAAgAAO37AADt+wAAAEoAAO38AADt/AAAAA4AAAAAAGQAogESAXYBwAIKAqYC0AMGA14DrARKBG4EqATOBQIFkAW2BdoGEgaQB2QHrgfoCGYJGAl+CdwKYgueDAYMXAziDWgNnA4oDoAPJA+0EEIQWhDiESQRrhIkEpwTmBPsFEgUpBUYFVoVlhXSFigWihcIF2wYIBh6GPIZahniGloarBseG/IcSBzOHUYdiB38Hj4emh7yH04f0iAUILAg9CFkIZohziIQInIisiMuI3ojpiO6JCglNCVqJawmXibKJyQngCfaKBwoiCjsKSYpwipGKpQq8gAAAAYAAAAAAzYC7gARABoAHQApADYAQgAAAScmIyEiBhURFBYzITI2NRE0AyERIRUUFjsBJzUXBTMyNjQmKwEiBhQWBxQWMyEyNjQmIyEiBgUhIgYUFjMhMjY0JgMtgwgM/lEMEBAMAjIMEDj+BgFRIRhwcHD+WqkMEBAMqQsRERERCwFSCxERC/6uCxEBbv6uCxERCwFSCxERAmSCCBEM/V4MERELAiIM/e8CanAXIThubnERFxERFxFwDBAQGBAQfRAXEREXEAAABgAA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AQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAAt0ZXh0LXNocmluawt0ZXh0LWV4dGVuZAl0cmFuc2xhdGUOY29udGludWUtd3JpdGUFcXVvdGEHcmVmcmVzaARiZWxsD3JpZ2h0LWRpcmVjdGlvbgVyb2JvdAVpbWFnZQ5jb250ZW50LWltcG9ydAVzb3VuZAVyaWdodA9pY19pbWFnZV91cGxvYWQFY2hlY2sGaWZyYW1lCmJhY2tncm91bmQDbHRyA3J0bAtmaW5kcmVwbGFjZQlpY3ByZXZpZXcFcmlxaTILZXVyby1zeW1ib2wFbXVzaWMEaGVscAloYW5kX2RyYXcFcHJpbnQEdGltZQViYWlkdQtHb29nbGUtTWFwcwppbWFnZS1ub25lDGltYWdlLWNlbnRlcgppbWFnZS1sZWZ0C2ltYWdlLXJpZ2h0CWNsZWFyLWRvYwpwYWdlLWJyZWFrBmF1dGhvcgp3b3JkLWltYWdlC3RvdXBwZXJjYXNlC3RvbG93ZXJjYXNlCmhvcml6b250YWwPbWVyZ2UtZG93bi1jZWxsC21lcmdlLWNlbGxzEG1lcmdlLXJpZ2h0LWNlbGwNc3BsaXQtdG8tcm93cw1zcGxpdC10by1jb2xzDnNwbGl0LXRvLWNlbGxzDmluc2VydHJvd2Fib3ZlF3BhcmFncmFwaC1tYXJnaW4tYm90dG9tFHBhcmFncmFwaC1tYXJnaW4tdG9wDXVub3JkZXJlZGxpc3QMbGlzdC1vcmRlcmVkFHNwbGl0LWNlbGxzLXZlcnRpY2FsFnNwbGl0LWNlbGxzLWhvcml6b250YWwKYXR0YWNobWVudAlzdWJzY3JpcHQJc2VsZWN0YWxsC3N1cGVyc2NyaXB0A21hcAliZy1jb2xvcnMNYWRkX2NvbF9hZnRlcg5hZGRfY29sX2JlZm9yZQ1hZGRfcm93X2FmdGVyDmFkZF9yb3dfYmVmb3JlCmRlbGV0ZV9jb2wNY29tYmluZV9jZWxscwJvbApkZWxldGVfcm93DGRlbGV0ZV90YWJsZQJ1bARyZWRvBXRhYmxlBHVuZG8FcGFzdGUGdXBsb2FkBWJydXNoCnRleHQtcXVvdGURaW5zZXJ0LXJvdy1ib3R0b20RZnVsbHNjcmVlbi1leHBhbmQOaW5zZXJ0LXJvdy10b3AIdGVtcGxhdGUSZm9ybWF0LWltYWdlLXJpZ2h0EWZvcm1hdC1pbWFnZS1sZWZ0E2Zvcm1hdC1pbWFnZS1jZW50ZXILbGluZS1oZWlnaHQHb3V0bGluZQVzbWlsZQ1hbGlnbi1qdXN0aWZ5B2Zvcm11bGEKYW5nbGUtZG93bgVjbG9zZQptYWdpYy13YW5kBmVyYXNlcgRodG1sBnVubGluawZpbmRlbnQLYWxpZ24tcmlnaHQMYWxpZ24tY2VudGVyCmFsaWduLWxlZnQLZm9udC1jb2xvcnMEcGxheQl1bmRlcmxpbmUGaXRhbGljBGxpbmsGc3RyaWtlBGNvZGUEYm9sZAAAAAAA") format('truetype')}.edui-iconfont{font-family:edui-iconfont!important;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.edui-icon-text-shrink:before{content:"\e62e"}.edui-icon-text-extend:before{content:"\e734"}.edui-icon-translate:before{content:"\e902"}.edui-icon-continue-write:before{content:"\e8b8"}.edui-icon-quota:before{content:"\e63c"}.edui-icon-refresh:before{content:"\e706"}.edui-icon-bell:before{content:"\e625"}.edui-icon-right-direction:before{content:"\ed51"}.edui-icon-robot:before{content:"\e61c"}.edui-icon-image:before{content:"\e605"}.edui-icon-content-import:before{content:"\e6f1"}.edui-icon-sound:before{content:"\e77b"}.edui-icon-right:before{content:"\e665"}.edui-icon-ic_image_upload:before{content:"\edfc"}.edui-icon-check:before{content:"\e7fc"}.edui-icon-iframe:before{content:"\e6c0"}.edui-icon-background:before{content:"\e624"}.edui-icon-ltr:before{content:"\e623"}.edui-icon-rtl:before{content:"\e7bc"}.edui-icon-findreplace:before{content:"\eb6c"}.edui-icon-icpreview:before{content:"\e644"}.edui-icon-riqi2:before{content:"\e697"}.edui-icon-euro-symbol:before{content:"\e891"}.edui-icon-music:before{content:"\e656"}.edui-icon-help:before{content:"\e752"}.edui-icon-hand_draw:before{content:"\e70b"}.edui-icon-print:before{content:"\e67a"}.edui-icon-time:before{content:"\e680"}.edui-icon-baidu:before{content:"\e669"}.edui-icon-Google-Maps:before{content:"\e87b"}.edui-icon-image-none:before{content:"\e61f"}.edui-icon-image-center:before{content:"\e620"}.edui-icon-image-left:before{content:"\e621"}.edui-icon-image-right:before{content:"\e622"}.edui-icon-clear-doc:before{content:"\e61e"}.edui-icon-page-break:before{content:"\e61d"}.edui-icon-author:before{content:"\e61b"}.edui-icon-word-image:before{content:"\e618"}.edui-icon-touppercase:before{content:"\e619"}.edui-icon-tolowercase:before{content:"\e61a"}.edui-icon-horizontal:before{content:"\e617"}.edui-icon-merge-down-cell:before{content:"\e613"}.edui-icon-merge-cells:before{content:"\e614"}.edui-icon-merge-right-cell:before{content:"\e615"}.edui-icon-split-to-rows:before{content:"\e610"}.edui-icon-split-to-cols:before{content:"\e611"}.edui-icon-split-to-cells:before{content:"\e612"}.edui-icon-insertrowabove:before{content:"\e901"}.edui-icon-paragraph-margin-bottom:before{content:"\eb09"}.edui-icon-paragraph-margin-top:before{content:"\eb0a"}.edui-icon-unorderedlist:before{content:"\e7f4"}.edui-icon-list-ordered:before{content:"\e737"}.edui-icon-split-cells-vertical:before{content:"\e7d1"}.edui-icon-split-cells-horizontal:before{content:"\e7d2"}.edui-icon-attachment:before{content:"\e704"}.edui-icon-subscript:before{content:"\ece9"}.edui-icon-selectall:before{content:"\e62f"}.edui-icon-superscript:before{content:"\e83e"}.edui-icon-map:before{content:"\e649"}.edui-icon-bg-colors:before{content:"\e71a"}.edui-icon-add_col_after:before{content:"\e600"}.edui-icon-add_col_before:before{content:"\e601"}.edui-icon-add_row_after:before{content:"\e602"}.edui-icon-add_row_before:before{content:"\e603"}.edui-icon-delete_col:before{content:"\e604"}.edui-icon-combine_cells:before{content:"\e606"}.edui-icon-ol:before{content:"\e607"}.edui-icon-delete_row:before{content:"\e609"}.edui-icon-delete_table:before{content:"\e60a"}.edui-icon-ul:before{content:"\e60b"}.edui-icon-redo:before{content:"\e60c"}.edui-icon-table:before{content:"\e60d"}.edui-icon-undo:before{content:"\e60f"}.edui-icon-paste:before{content:"\edfb"}.edui-icon-upload:before{content:"\e7ad"}.edui-icon-brush:before{content:"\e637"}.edui-icon-text-quote:before{content:"\e6d8"}.edui-icon-insert-row-bottom:before{content:"\e842"}.edui-icon-fullscreen-expand:before{content:"\e675"}.edui-icon-insert-row-top:before{content:"\e735"}.edui-icon-template:before{content:"\e6ad"}.edui-icon-format-image-right:before{content:"\e6f8"}.edui-icon-format-image-left:before{content:"\e6f9"}.edui-icon-format-image-center:before{content:"\e6fa"}.edui-icon-line-height:before{content:"\e638"}.edui-icon-outline:before{content:"\e62d"}.edui-icon-smile:before{content:"\e60e"}.edui-icon-align-justify:before{content:"\e87c"}.edui-icon-formula:before{content:"\e616"}.edui-icon-angle-down:before{content:"\e9f0"}.edui-icon-close:before{content:"\e6a7"}.edui-icon-magic-wand:before{content:"\e662"}.edui-icon-eraser:before{content:"\e782"}.edui-icon-html:before{content:"\e608"}.edui-icon-unlink:before{content:"\e92b"}.edui-icon-indent:before{content:"\e7f3"}.edui-icon-align-right:before{content:"\e7f5"}.edui-icon-align-center:before{content:"\e7f6"}.edui-icon-align-left:before{content:"\e7f7"}.edui-icon-font-colors:before{content:"\e7f8"}.edui-icon-play:before{content:"\e636"}.edui-icon-underline:before{content:"\e63e"}.edui-icon-italic:before{content:"\e62a"}.edui-icon-link:before{content:"\e648"}.edui-icon-strike:before{content:"\e64a"}.edui-icon-code:before{content:"\e64c"}.edui-icon-bold:before{content:"\e628"}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.flex{display:flex}.flex-grow{flex-grow:1}.flex-items-center{align-items:center}.flex-shrink-0{flex-shrink:0}input[type=text]{height:30px;border:1px solid #EEE;border-radius:3px;padding:0 5px;line-height:2px;outline:0}select{height:30px;border:1px solid #EEE;border-radius:3px;padding:0 5px;line-height:2px;outline:0}.btn{height:30px;border:1px solid #EEE;border-radius:3px;padding:0 10px;display:inline-block;line-height:30px;text-decoration:none;color:#333;background-color:#F8F8F8}.btn:hover{background-color:#F0F0F0}.btn.sm{height:24px;line-height:24px}.btn.primary{background-color:var(--edui-primary-color);color:#FFF}.ub-html{line-height:2;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;overflow:hidden;word-wrap:break-word;font-size:.8125rem}.ub-html>:first-child{margin-top:0}.ub-html>p:first-child{margin-top:0}.ub-html>p:last-child{margin-bottom:0}.ub-html p{padding:0;line-height:1.8;word-spacing:.05rem;margin:.5em 0}.ub-html img{max-width:100%}.ub-html iframe{max-width:100%}.ub-html p.video-player{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.ub-html p.video-player iframe{position:absolute;top:0;left:0;width:100%;height:100%}.ub-html video{max-width:100%}.ub-html a{background:transparent}.ub-html hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}.ub-html code,.ub-html kbd,.ub-html pre{font-family:"Meiryo UI","YaHei Consolas Hybrid",Consolas,"Malgun Gothic","Segoe UI","Trebuchet MS",Helvetica,monospace,monospace;font-size:1em;white-space:pre;word-spacing:normal;word-wrap:normal;tab-size:4;hyphens:none;text-align:left;line-height:1.8em;padding:1em}.ub-html table{border-spacing:0;max-width:98%;margin:1em 0;box-shadow:0 0 .1rem #CCC;display:table;text-align:left;border:.05rem solid #ddd;border-collapse:collapse;overflow:auto;word-break:keep-all}.ub-html table tr{background-color:#fff;border-top:.05rem solid #ccc}.ub-html table tr tbody{border:0}.ub-html table tr th{font-weight:700;background-color:#f0f0f0;padding:.15rem .3rem;border:.05rem solid #ddd}.ub-html table tr td{padding:.15rem .3rem;border:.05rem solid #ddd}.ub-html>p svg,.ub-html>p table,.ub-html>p pre{-webkit-box-shadow:0 0 .5rem #CCC;-moz-box-shadow:0 0 .5rem #CCC;box-shadow:0 0 .5rem #CCC;margin:1em auto;display:block}.ub-html td,.ub-html th{padding:0}.ub-html *{-moz-box-sizing:border-box;box-sizing:border-box}.ub-html input{font:.65rem/1.4 Helvetica,arial,freesans,clean,sans-serif,"Segoe UI Emoji","Segoe UI Symbol"}.ub-html a{color:#4183c4;text-decoration:none}.ub-html a:hover,.ub-html a:active{text-decoration:underline}.ub-html hr{height:0;margin:.75rem 0;overflow:hidden;background:transparent;border:0;border-bottom:.05rem solid #ddd}.ub-html hr:before{display:table;content:""}.ub-html hr:after{display:table;clear:both;content:""}.ub-html h1,.ub-html h2,.ub-html h3,.ub-html h4,.ub-html h5,.ub-html h6{font-weight:700;margin:1.2em 0 .6em;text-align:start}.ub-html h1{font-size:2em;margin:1em 0}.ub-html h2{font-size:1.7em;border-bottom:1px solid #eee;line-height:2em}.ub-html h3{font-size:1.5em}.ub-html h4{font-size:1.25em}.ub-html h5{font-size:1em}.ub-html h6{font-size:.85em}.ub-html blockquote{display:block;font-size:1em;overflow:auto;overflow-scrolling:touch;border-left:3px solid rgba(0,0,0,.4);background:rgba(0,0,0,.05);color:#6a737d;padding-top:.5em;padding-bottom:.5em;padding-left:1em;padding-right:.5em;margin-bottom:1em;margin-top:1em}.ub-html blockquote p{margin:.5em 0}.ub-html ul,.ub-html ol{padding:.5em 0;margin-top:0;margin-bottom:0;padding-left:1.4em}.ub-html ol li{list-style:decimal}.ub-html ul li{list-style:disc}.ub-html ol ol,.ub-html ul ol{list-style-type:lower-roman}.ub-html ul ul ol,.ub-html ul ol ol,.ub-html ol ul ol,.ub-html ol ol ol{list-style-type:lower-alpha}.ub-html dd{margin-left:0}.ub-html code{color:#d63384;word-wrap:break-word;border-radius:.2em;white-space:pre;font-family:"Source Code Pro",monospace;font-size:.9em;padding:.1em .2em}.ub-html code.formula{color:inherit;background-color:inherit;border:inherit;font-size:inherit}.ub-html pre{margin-top:0;margin-bottom:0;font-family:Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:.9em}.ub-html pre code{color:inherit;background:0 0;border:0} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/dialogbase.css b/ruoyi-ui/public/static/UEditorPlus/themes/default/dialogbase.css new file mode 100644 index 0000000..5c71b97 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/dialogbase.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;outline:0;font-size:100%}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}ins{text-decoration:none}del{text-decoration:line-through}table{border-collapse:collapse;border-spacing:0}body{background-color:#fff;font:12px/1.5 sans-serif,"宋体","Arial Narrow",HELVETICA;color:#646464}.tabhead{position:relative;z-index:10}.tabhead span{display:inline-block;padding:0 5px;height:30px;border:1px solid #ccc;background:#EEE;text-align:center;line-height:30px;cursor:pointer;*margin-right:5px;border-radius:3px 3px 0 0}.tabhead span.focus{height:31px;border-bottom:0;background:#fff}.tabbody{position:relative;top:-1px;margin:0 auto;border:1px solid #ccc}a.button{display:block;text-align:center;line-height:24px;text-decoration:none;height:24px;width:95px;border:0;color:#838383}a.button:hover{background-position:0 -30px} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/ai.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/ai.svg new file mode 100644 index 0000000..80c5afe --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/ai.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/apk.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/apk.svg new file mode 100644 index 0000000..96bef1a --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/apk.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/chm.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/chm.svg new file mode 100644 index 0000000..8432530 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/chm.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/css.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/css.svg new file mode 100644 index 0000000..94361c7 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/css.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/doc.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/doc.svg new file mode 100644 index 0000000..30dd860 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/doc.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/docx.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/docx.svg new file mode 100644 index 0000000..30dd860 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/docx.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/dwg.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/dwg.svg new file mode 100644 index 0000000..e7eff1a --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/dwg.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + dwg + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/folder.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/folder.svg new file mode 100644 index 0000000..02e8edc --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/folder.svg @@ -0,0 +1,3 @@ + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/gif.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/gif.svg new file mode 100644 index 0000000..6b74924 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/gif.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/html.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/html.svg new file mode 100644 index 0000000..2935849 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/html.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/jpeg.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/jpeg.svg new file mode 100644 index 0000000..d951ef4 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/jpeg.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/jpg.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/jpg.svg new file mode 100644 index 0000000..b3bcb68 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/jpg.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/log.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/log.svg new file mode 100644 index 0000000..f1f9236 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/log.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/mp3.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/mp3.svg new file mode 100644 index 0000000..6cc0e35 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/mp3.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/mp4.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/mp4.svg new file mode 100644 index 0000000..20c579d --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/mp4.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/pdf.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/pdf.svg new file mode 100644 index 0000000..335b9f7 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/pdf.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/png.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/png.svg new file mode 100644 index 0000000..4f147d9 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/png.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/ppt.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/ppt.svg new file mode 100644 index 0000000..4ea923e --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/ppt.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/pptx.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/pptx.svg new file mode 100644 index 0000000..4ea923e --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/pptx.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/psd.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/psd.svg new file mode 100644 index 0000000..52fa08c --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/psd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/rar.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/rar.svg new file mode 100644 index 0000000..2541fec --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/rar.svg @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/svg.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/svg.svg new file mode 100644 index 0000000..8f7f37c --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/svg.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/torrent.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/torrent.svg new file mode 100644 index 0000000..6429687 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/torrent.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/txt.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/txt.svg new file mode 100644 index 0000000..5b4c797 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/txt.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/unknown.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/unknown.svg new file mode 100644 index 0000000..214a6f3 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/unknown.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/xls.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/xls.svg new file mode 100644 index 0000000..e4bd05f --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/xls.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/xlsx.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/xlsx.svg new file mode 100644 index 0000000..e4bd05f --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/xlsx.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/zip.svg b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/zip.svg new file mode 100644 index 0000000..2541fec --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/default/exts/zip.svg @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/anchor.gif b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/anchor.gif new file mode 100644 index 0000000..5aa797b Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/anchor.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/arrow.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/arrow.png new file mode 100644 index 0000000..d900886 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/arrow.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/arrow_down.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/arrow_down.png new file mode 100644 index 0000000..e9257e8 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/arrow_down.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/arrow_up.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/arrow_up.png new file mode 100644 index 0000000..74277af Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/arrow_up.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/button-bg.gif b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/button-bg.gif new file mode 100644 index 0000000..ec7fa2e Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/button-bg.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/cancelbutton.gif b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/cancelbutton.gif new file mode 100644 index 0000000..df4bc2c Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/cancelbutton.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/charts.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/charts.png new file mode 100644 index 0000000..713965c Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/charts.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/cursor_h.gif b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/cursor_h.gif new file mode 100644 index 0000000..d7c3e7e Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/cursor_h.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/cursor_h.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/cursor_h.png new file mode 100644 index 0000000..2088fc2 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/cursor_h.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/cursor_v.gif b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/cursor_v.gif new file mode 100644 index 0000000..bb508db Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/cursor_v.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/cursor_v.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/cursor_v.png new file mode 100644 index 0000000..6f39ca3 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/cursor_v.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/dialog-title-bg.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/dialog-title-bg.png new file mode 100644 index 0000000..f744f26 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/dialog-title-bg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/filescan.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/filescan.png new file mode 100644 index 0000000..1d27158 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/filescan.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/highlighted.gif b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/highlighted.gif new file mode 100644 index 0000000..9272b49 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/highlighted.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/icons-all.gif b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/icons-all.gif new file mode 100644 index 0000000..21915e5 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/icons-all.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/icons.gif b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/icons.gif new file mode 100644 index 0000000..7abd30a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/icons.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/icons.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/icons.png new file mode 100644 index 0000000..c015e3a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/icons.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/img-cracked.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/img-cracked.png new file mode 100644 index 0000000..3b1d389 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/img-cracked.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/loaderror.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/loaderror.png new file mode 100644 index 0000000..35ff333 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/loaderror.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/loading.gif b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/loading.gif new file mode 100644 index 0000000..b713e27 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/loading.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/lock.gif b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/lock.gif new file mode 100644 index 0000000..b4e6d78 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/lock.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/neweditor-tab-bg.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/neweditor-tab-bg.png new file mode 100644 index 0000000..8f398b0 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/neweditor-tab-bg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/pagebreak.gif b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/pagebreak.gif new file mode 100644 index 0000000..8d1cffd Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/pagebreak.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/scale.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/scale.png new file mode 100644 index 0000000..f45adb5 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/scale.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/sortable.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/sortable.png new file mode 100644 index 0000000..1bca649 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/sortable.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/spacer.gif b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/spacer.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/spacer.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/sparator_v.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/sparator_v.png new file mode 100644 index 0000000..8cf5662 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/sparator_v.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/table-cell-align.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/table-cell-align.png new file mode 100644 index 0000000..ddf4285 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/table-cell-align.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/tangram-colorpicker.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/tangram-colorpicker.png new file mode 100644 index 0000000..738e500 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/tangram-colorpicker.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/toolbar_bg.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/toolbar_bg.png new file mode 100644 index 0000000..7ab685f Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/toolbar_bg.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/unhighlighted.gif b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/unhighlighted.gif new file mode 100644 index 0000000..7ad0b67 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/unhighlighted.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/upload.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/upload.png new file mode 100644 index 0000000..08d4d92 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/upload.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/videologo.gif b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/videologo.gif new file mode 100644 index 0000000..555af74 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/videologo.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/word.gif b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/word.gif new file mode 100644 index 0000000..9ef5d09 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/word.gif differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/default/images/wordpaste.png b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/wordpaste.png new file mode 100644 index 0000000..9367758 Binary files /dev/null and b/ruoyi-ui/public/static/UEditorPlus/themes/default/images/wordpaste.png differ diff --git a/ruoyi-ui/public/static/UEditorPlus/themes/iframe.css b/ruoyi-ui/public/static/UEditorPlus/themes/iframe.css new file mode 100644 index 0000000..ec817b1 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/themes/iframe.css @@ -0,0 +1,3 @@ +/*! UEditorPlus v2.0.0*/ + +body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans',sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol','Noto Color Emoji';font-size:14px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}a{color:#09f;text-decoration:none}a:hover,a:focus{color:#09f;text-decoration:none}blockquote{padding:0 0 0 15px;margin:0 0 18px;border-left:5px solid #EEE}img+br{display:block;padding:4px 0;content:' '}body p{margin-bottom:1em}iframe{border:0}img{max-width:100%}img[data-word-image]{cursor:pointer}pre{margin:.5em 0;padding:.4em .6em;border-radius:8px;background:#f8f8f8;line-height:1.5}img{cursor:pointer}.edui-quick-operate-active{background:#E6ECFF} \ No newline at end of file diff --git a/ruoyi-ui/public/static/UEditorPlus/third-party/SyntaxHighlighter/shCore.js b/ruoyi-ui/public/static/UEditorPlus/third-party/SyntaxHighlighter/shCore.js new file mode 100644 index 0000000..3249184 --- /dev/null +++ b/ruoyi-ui/public/static/UEditorPlus/third-party/SyntaxHighlighter/shCore.js @@ -0,0 +1,3655 @@ +// XRegExp 1.5.1 +// (c) 2007-2012 Steven Levithan +// MIT License +// +// Provides an augmented, extensible, cross-browser implementation of regular expressions, +// including support for additional syntax, flags, and methods + +var XRegExp; + +if (XRegExp) { + // Avoid running twice, since that would break references to native globals + throw Error("can't load XRegExp twice in the same frame"); +} + +// Run within an anonymous function to protect variables and avoid new globals +(function (undefined) { + + //--------------------------------- + // Constructor + //--------------------------------- + + // Accepts a pattern and flags; returns a new, extended `RegExp` object. Differs from a native + // regular expression in that additional syntax and flags are supported and cross-browser + // syntax inconsistencies are ameliorated. `XRegExp(/regex/)` clones an existing regex and + // converts to type XRegExp + XRegExp = function (pattern, flags) { + var output = [], + currScope = XRegExp.OUTSIDE_CLASS, + pos = 0, + context, tokenResult, match, chr, regex; + + if (XRegExp.isRegExp(pattern)) { + if (flags !== undefined) + throw TypeError("can't supply flags when constructing one RegExp from another"); + return clone(pattern); + } + // Tokens become part of the regex construction process, so protect against infinite + // recursion when an XRegExp is constructed within a token handler or trigger + if (isInsideConstructor) + throw Error("can't call the XRegExp constructor within token definition functions"); + + flags = flags || ""; + context = { // `this` object for custom tokens + hasNamedCapture: false, + captureNames: [], + hasFlag: function (flag) {return flags.indexOf(flag) > -1;}, + setFlag: function (flag) {flags += flag;} + }; + + while (pos < pattern.length) { + // Check for custom tokens at the current position + tokenResult = runTokens(pattern, pos, currScope, context); + + if (tokenResult) { + output.push(tokenResult.output); + pos += (tokenResult.match[0].length || 1); + } else { + // Check for native multicharacter metasequences (excluding character classes) at + // the current position + if (match = nativ.exec.call(nativeTokens[currScope], pattern.slice(pos))) { + output.push(match[0]); + pos += match[0].length; + } else { + chr = pattern.charAt(pos); + if (chr === "[") + currScope = XRegExp.INSIDE_CLASS; + else if (chr === "]") + currScope = XRegExp.OUTSIDE_CLASS; + // Advance position one character + output.push(chr); + pos++; + } + } + } + + regex = RegExp(output.join(""), nativ.replace.call(flags, flagClip, "")); + regex._xregexp = { + source: pattern, + captureNames: context.hasNamedCapture ? context.captureNames : null + }; + return regex; + }; + + + //--------------------------------- + // Public properties + //--------------------------------- + + XRegExp.version = "1.5.1"; + + // Token scope bitflags + XRegExp.INSIDE_CLASS = 1; + XRegExp.OUTSIDE_CLASS = 2; + + + //--------------------------------- + // Private variables + //--------------------------------- + + var replacementToken = /\$(?:(\d\d?|[$&`'])|{([$\w]+)})/g, + flagClip = /[^gimy]+|([\s\S])(?=[\s\S]*\1)/g, // Nonnative and duplicate flags + quantifier = /^(?:[?*+]|{\d+(?:,\d*)?})\??/, + isInsideConstructor = false, + tokens = [], + // Copy native globals for reference ("native" is an ES3 reserved keyword) + nativ = { + exec: RegExp.prototype.exec, + test: RegExp.prototype.test, + match: String.prototype.match, + replace: String.prototype.replace, + split: String.prototype.split + }, + compliantExecNpcg = nativ.exec.call(/()??/, "")[1] === undefined, // check `exec` handling of nonparticipating capturing groups + compliantLastIndexIncrement = function () { + var x = /^/g; + nativ.test.call(x, ""); + return !x.lastIndex; + }(), + hasNativeY = RegExp.prototype.sticky !== undefined, + nativeTokens = {}; + + // `nativeTokens` match native multicharacter metasequences only (including deprecated octals, + // excluding character classes) + nativeTokens[XRegExp.INSIDE_CLASS] = /^(?:\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S]))/; + nativeTokens[XRegExp.OUTSIDE_CLASS] = /^(?:\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|\(\?[:=!]|[?*+]\?|{\d+(?:,\d*)?}\??)/; + + + //--------------------------------- + // Public methods + //--------------------------------- + + // Lets you extend or change XRegExp syntax and create custom flags. This is used internally by + // the XRegExp library and can be used to create XRegExp plugins. This function is intended for + // users with advanced knowledge of JavaScript's regular expression syntax and behavior. It can + // be disabled by `XRegExp.freezeTokens` + XRegExp.addToken = function (regex, handler, scope, trigger) { + tokens.push({ + pattern: clone(regex, "g" + (hasNativeY ? "y" : "")), + handler: handler, + scope: scope || XRegExp.OUTSIDE_CLASS, + trigger: trigger || null + }); + }; + + // Accepts a pattern and flags; returns an extended `RegExp` object. If the pattern and flag + // combination has previously been cached, the cached copy is returned; otherwise the newly + // created regex is cached + XRegExp.cache = function (pattern, flags) { + var key = pattern + "/" + (flags || ""); + return XRegExp.cache[key] || (XRegExp.cache[key] = XRegExp(pattern, flags)); + }; + + // Accepts a `RegExp` instance; returns a copy with the `/g` flag set. The copy has a fresh + // `lastIndex` (set to zero). If you want to copy a regex without forcing the `global` + // property, use `XRegExp(regex)`. Do not use `RegExp(regex)` because it will not preserve + // special properties required for named capture + XRegExp.copyAsGlobal = function (regex) { + return clone(regex, "g"); + }; + + // Accepts a string; returns the string with regex metacharacters escaped. The returned string + // can safely be used at any point within a regex to match the provided literal string. Escaped + // characters are [ ] { } ( ) * + ? - . , \ ^ $ | # and whitespace + XRegExp.escape = function (str) { + return str.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + }; + + // Accepts a string to search, regex to search with, position to start the search within the + // string (default: 0), and an optional Boolean indicating whether matches must start at-or- + // after the position or at the specified position only. This function ignores the `lastIndex` + // of the provided regex in its own handling, but updates the property for compatibility + XRegExp.execAt = function (str, regex, pos, anchored) { + var r2 = clone(regex, "g" + ((anchored && hasNativeY) ? "y" : "")), + match; + r2.lastIndex = pos = pos || 0; + match = r2.exec(str); // Run the altered `exec` (required for `lastIndex` fix, etc.) + if (anchored && match && match.index !== pos) + match = null; + if (regex.global) + regex.lastIndex = match ? r2.lastIndex : 0; + return match; + }; + + // Breaks the unrestorable link to XRegExp's private list of tokens, thereby preventing + // syntax and flag changes. Should be run after XRegExp and any plugins are loaded + XRegExp.freezeTokens = function () { + XRegExp.addToken = function () { + throw Error("can't run addToken after freezeTokens"); + }; + }; + + // Accepts any value; returns a Boolean indicating whether the argument is a `RegExp` object. + // Note that this is also `true` for regex literals and regexes created by the `XRegExp` + // constructor. This works correctly for variables created in another frame, when `instanceof` + // and `constructor` checks would fail to work as intended + XRegExp.isRegExp = function (o) { + return Object.prototype.toString.call(o) === "[object RegExp]"; + }; + + // Executes `callback` once per match within `str`. Provides a simpler and cleaner way to + // iterate over regex matches compared to the traditional approaches of subverting + // `String.prototype.replace` or repeatedly calling `exec` within a `while` loop + XRegExp.iterate = function (str, regex, callback, context) { + var r2 = clone(regex, "g"), + i = -1, match; + while (match = r2.exec(str)) { // Run the altered `exec` (required for `lastIndex` fix, etc.) + if (regex.global) + regex.lastIndex = r2.lastIndex; // Doing this to follow expectations if `lastIndex` is checked within `callback` + callback.call(context, match, ++i, str, regex); + if (r2.lastIndex === match.index) + r2.lastIndex++; + } + if (regex.global) + regex.lastIndex = 0; + }; + + // Accepts a string and an array of regexes; returns the result of using each successive regex + // to search within the matches of the previous regex. The array of regexes can also contain + // objects with `regex` and `backref` properties, in which case the named or numbered back- + // references specified are passed forward to the next regex or returned. E.g.: + // var xregexpImgFileNames = XRegExp.matchChain(html, [ + // {regex: /]+)>/i, backref: 1}, // tag attributes + // {regex: XRegExp('(?ix) \\s src=" (? [^"]+ )'), backref: "src"}, // src attribute values + // {regex: XRegExp("^http://xregexp\\.com(/[^#?]+)", "i"), backref: 1}, // xregexp.com paths + // /[^\/]+$/ // filenames (strip directory paths) + // ]); + XRegExp.matchChain = function (str, chain) { + return function recurseChain (values, level) { + var item = chain[level].regex ? chain[level] : {regex: chain[level]}, + regex = clone(item.regex, "g"), + matches = [], i; + for (i = 0; i < values.length; i++) { + XRegExp.iterate(values[i], regex, function (match) { + matches.push(item.backref ? (match[item.backref] || "") : match[0]); + }); + } + return ((level === chain.length - 1) || !matches.length) ? + matches : recurseChain(matches, level + 1); + }([str], 0); + }; + + + //--------------------------------- + // New RegExp prototype methods + //--------------------------------- + + // Accepts a context object and arguments array; returns the result of calling `exec` with the + // first value in the arguments array. the context is ignored but is accepted for congruity + // with `Function.prototype.apply` + RegExp.prototype.apply = function (context, args) { + return this.exec(args[0]); + }; + + // Accepts a context object and string; returns the result of calling `exec` with the provided + // string. the context is ignored but is accepted for congruity with `Function.prototype.call` + RegExp.prototype.call = function (context, str) { + return this.exec(str); + }; + + + //--------------------------------- + // Overriden native methods + //--------------------------------- + + // Adds named capture support (with backreferences returned as `result.name`), and fixes two + // cross-browser issues per ES3: + // - Captured values for nonparticipating capturing groups should be returned as `undefined`, + // rather than the empty string. + // - `lastIndex` should not be incremented after zero-length matches. + RegExp.prototype.exec = function (str) { + var match, name, r2, origLastIndex; + if (!this.global) + origLastIndex = this.lastIndex; + match = nativ.exec.apply(this, arguments); + if (match) { + // Fix browsers whose `exec` methods don't consistently return `undefined` for + // nonparticipating capturing groups + if (!compliantExecNpcg && match.length > 1 && indexOf(match, "") > -1) { + r2 = RegExp(this.source, nativ.replace.call(getNativeFlags(this), "g", "")); + // Using `str.slice(match.index)` rather than `match[0]` in case lookahead allowed + // matching due to characters outside the match + nativ.replace.call((str + "").slice(match.index), r2, function () { + for (var i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) + match[i] = undefined; + } + }); + } + // Attach named capture properties + if (this._xregexp && this._xregexp.captureNames) { + for (var i = 1; i < match.length; i++) { + name = this._xregexp.captureNames[i - 1]; + if (name) + match[name] = match[i]; + } + } + // Fix browsers that increment `lastIndex` after zero-length matches + if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index)) + this.lastIndex--; + } + if (!this.global) + this.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows) + return match; + }; + + // Fix browser bugs in native method + RegExp.prototype.test = function (str) { + // Use the native `exec` to skip some processing overhead, even though the altered + // `exec` would take care of the `lastIndex` fixes + var match, origLastIndex; + if (!this.global) + origLastIndex = this.lastIndex; + match = nativ.exec.call(this, str); + // Fix browsers that increment `lastIndex` after zero-length matches + if (match && !compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index)) + this.lastIndex--; + if (!this.global) + this.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows) + return !!match; + }; + + // Adds named capture support and fixes browser bugs in native method + String.prototype.match = function (regex) { + if (!XRegExp.isRegExp(regex)) + regex = RegExp(regex); // Native `RegExp` + if (regex.global) { + var result = nativ.match.apply(this, arguments); + regex.lastIndex = 0; // Fix IE bug + return result; + } + return regex.exec(this); // Run the altered `exec` + }; + + // Adds support for `${n}` tokens for named and numbered backreferences in replacement text, + // and provides named backreferences to replacement functions as `arguments[0].name`. Also + // fixes cross-browser differences in replacement text syntax when performing a replacement + // using a nonregex search value, and the value of replacement regexes' `lastIndex` property + // during replacement iterations. Note that this doesn't support SpiderMonkey's proprietary + // third (`flags`) parameter + String.prototype.replace = function (search, replacement) { + var isRegex = XRegExp.isRegExp(search), + captureNames, result, str, origLastIndex; + + // There are too many combinations of search/replacement types/values and browser bugs that + // preclude passing to native `replace`, so don't try + //if (...) + // return nativ.replace.apply(this, arguments); + + if (isRegex) { + if (search._xregexp) + captureNames = search._xregexp.captureNames; // Array or `null` + if (!search.global) + origLastIndex = search.lastIndex; + } else { + search = search + ""; // Type conversion + } + + if (Object.prototype.toString.call(replacement) === "[object Function]") { + result = nativ.replace.call(this + "", search, function () { + if (captureNames) { + // Change the `arguments[0]` string primitive to a String object which can store properties + arguments[0] = new String(arguments[0]); + // Store named backreferences on `arguments[0]` + for (var i = 0; i < captureNames.length; i++) { + if (captureNames[i]) + arguments[0][captureNames[i]] = arguments[i + 1]; + } + } + // Update `lastIndex` before calling `replacement` (fix browsers) + if (isRegex && search.global) + search.lastIndex = arguments[arguments.length - 2] + arguments[0].length; + return replacement.apply(null, arguments); + }); + } else { + str = this + ""; // Type conversion, so `args[args.length - 1]` will be a string (given nonstring `this`) + result = nativ.replace.call(str, search, function () { + var args = arguments; // Keep this function's `arguments` available through closure + return nativ.replace.call(replacement + "", replacementToken, function ($0, $1, $2) { + // Numbered backreference (without delimiters) or special variable + if ($1) { + switch ($1) { + case "$": return "$"; + case "&": return args[0]; + case "`": return args[args.length - 1].slice(0, args[args.length - 2]); + case "'": return args[args.length - 1].slice(args[args.length - 2] + args[0].length); + // Numbered backreference + default: + // What does "$10" mean? + // - Backreference 10, if 10 or more capturing groups exist + // - Backreference 1 followed by "0", if 1-9 capturing groups exist + // - Otherwise, it's the string "$10" + // Also note: + // - Backreferences cannot be more than two digits (enforced by `replacementToken`) + // - "$01" is equivalent to "$1" if a capturing group exists, otherwise it's the string "$01" + // - There is no "$0" token ("$&" is the entire match) + var literalNumbers = ""; + $1 = +$1; // Type conversion; drop leading zero + if (!$1) // `$1` was "0" or "00" + return $0; + while ($1 > args.length - 3) { + literalNumbers = String.prototype.slice.call($1, -1) + literalNumbers; + $1 = Math.floor($1 / 10); // Drop the last digit + } + return ($1 ? args[$1] || "" : "$") + literalNumbers; + } + // Named backreference or delimited numbered backreference + } else { + // What does "${n}" mean? + // - Backreference to numbered capture n. Two differences from "$n": + // - n can be more than two digits + // - Backreference 0 is allowed, and is the entire match + // - Backreference to named capture n, if it exists and is not a number overridden by numbered capture + // - Otherwise, it's the string "${n}" + var n = +$2; // Type conversion; drop leading zeros + if (n <= args.length - 3) + return args[n]; + n = captureNames ? indexOf(captureNames, $2) : -1; + return n > -1 ? args[n + 1] : $0; + } + }); + }); + } + + if (isRegex) { + if (search.global) + search.lastIndex = 0; // Fix IE, Safari bug (last tested IE 9.0.5, Safari 5.1.2 on Windows) + else + search.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows) + } + + return result; + }; + + // A consistent cross-browser, ES3 compliant `split` + String.prototype.split = function (s /* separator */, limit) { + // If separator `s` is not a regex, use the native `split` + if (!XRegExp.isRegExp(s)) + return nativ.split.apply(this, arguments); + + var str = this + "", // Type conversion + output = [], + lastLastIndex = 0, + match, lastLength; + + // Behavior for `limit`: if it's... + // - `undefined`: No limit + // - `NaN` or zero: Return an empty array + // - A positive number: Use `Math.floor(limit)` + // - A negative number: No limit + // - Other: Type-convert, then use the above rules + if (limit === undefined || +limit < 0) { + limit = Infinity; + } else { + limit = Math.floor(+limit); + if (!limit) + return []; + } + + // This is required if not `s.global`, and it avoids needing to set `s.lastIndex` to zero + // and restore it to its original value when we're done using the regex + s = XRegExp.copyAsGlobal(s); + + while (match = s.exec(str)) { // Run the altered `exec` (required for `lastIndex` fix, etc.) + if (s.lastIndex > lastLastIndex) { + output.push(str.slice(lastLastIndex, match.index)); + + if (match.length > 1 && match.index < str.length) + Array.prototype.push.apply(output, match.slice(1)); + + lastLength = match[0].length; + lastLastIndex = s.lastIndex; + + if (output.length >= limit) + break; + } + + if (s.lastIndex === match.index) + s.lastIndex++; + } + + if (lastLastIndex === str.length) { + if (!nativ.test.call(s, "") || lastLength) + output.push(""); + } else { + output.push(str.slice(lastLastIndex)); + } + + return output.length > limit ? output.slice(0, limit) : output; + }; + + + //--------------------------------- + // Private helper functions + //--------------------------------- + + // Supporting function for `XRegExp`, `XRegExp.copyAsGlobal`, etc. Returns a copy of a `RegExp` + // instance with a fresh `lastIndex` (set to zero), preserving properties required for named + // capture. Also allows adding new flags in the process of copying the regex + function clone (regex, additionalFlags) { + if (!XRegExp.isRegExp(regex)) + throw TypeError("type RegExp expected"); + var x = regex._xregexp; + regex = XRegExp(regex.source, getNativeFlags(regex) + (additionalFlags || "")); + if (x) { + regex._xregexp = { + source: x.source, + captureNames: x.captureNames ? x.captureNames.slice(0) : null + }; + } + return regex; + } + + function getNativeFlags (regex) { + return (regex.global ? "g" : "") + + (regex.ignoreCase ? "i" : "") + + (regex.multiline ? "m" : "") + + (regex.extended ? "x" : "") + // Proposed for ES4; included in AS3 + (regex.sticky ? "y" : ""); + } + + function runTokens (pattern, index, scope, context) { + var i = tokens.length, + result, match, t; + // Protect against constructing XRegExps within token handler and trigger functions + isInsideConstructor = true; + // Must reset `isInsideConstructor`, even if a `trigger` or `handler` throws + try { + while (i--) { // Run in reverse order + t = tokens[i]; + if ((scope & t.scope) && (!t.trigger || t.trigger.call(context))) { + t.pattern.lastIndex = index; + match = t.pattern.exec(pattern); // Running the altered `exec` here allows use of named backreferences, etc. + if (match && match.index === index) { + result = { + output: t.handler.call(context, match, scope), + match: match + }; + break; + } + } + } + } catch (err) { + throw err; + } finally { + isInsideConstructor = false; + } + return result; + } + + function indexOf (array, item, from) { + if (Array.prototype.indexOf) // Use the native array method if available + return array.indexOf(item, from); + for (var i = from || 0; i < array.length; i++) { + if (array[i] === item) + return i; + } + return -1; + } + + + //--------------------------------- + // Built-in tokens + //--------------------------------- + + // Augment XRegExp's regular expression syntax and flags. Note that when adding tokens, the + // third (`scope`) argument defaults to `XRegExp.OUTSIDE_CLASS` + + // Comment pattern: (?# ) + XRegExp.addToken( + /\(\?#[^)]*\)/, + function (match) { + // Keep tokens separated unless the following token is a quantifier + return nativ.test.call(quantifier, match.input.slice(match.index + match[0].length)) ? "" : "(?:)"; + } + ); + + // Capturing group (match the opening parenthesis only). + // Required for support of named capturing groups + XRegExp.addToken( + /\((?!\?)/, + function () { + this.captureNames.push(null); + return "("; + } + ); + + // Named capturing group (match the opening delimiter only): (? + XRegExp.addToken( + /\(\?<([$\w]+)>/, + function (match) { + this.captureNames.push(match[1]); + this.hasNamedCapture = true; + return "("; + } + ); + + // Named backreference: \k + XRegExp.addToken( + /\\k<([\w$]+)>/, + function (match) { + var index = indexOf(this.captureNames, match[1]); + // Keep backreferences separate from subsequent literal numbers. Preserve back- + // references to named groups that are undefined at this point as literal strings + return index > -1 ? + "\\" + (index + 1) + (isNaN(match.input.charAt(match.index + match[0].length)) ? "" : "(?:)") : + match[0]; + } + ); + + // Empty character class: [] or [^] + XRegExp.addToken( + /\[\^?]/, + function (match) { + // For cross-browser compatibility with ES3, convert [] to \b\B and [^] to [\s\S]. + // (?!) should work like \b\B, but is unreliable in Firefox + return match[0] === "[]" ? "\\b\\B" : "[\\s\\S]"; + } + ); + + // Mode modifier at the start of the pattern only, with any combination of flags imsx: (?imsx) + // Does not support x(?i), (?-i), (?i-m), (?i: ), (?i)(?m), etc. + XRegExp.addToken( + /^\(\?([imsx]+)\)/, + function (match) { + this.setFlag(match[1]); + return ""; + } + ); + + // Whitespace and comments, in free-spacing (aka extended) mode only + XRegExp.addToken( + /(?:\s+|#.*)+/, + function (match) { + // Keep tokens separated unless the following token is a quantifier + return nativ.test.call(quantifier, match.input.slice(match.index + match[0].length)) ? "" : "(?:)"; + }, + XRegExp.OUTSIDE_CLASS, + function () {return this.hasFlag("x");} + ); + + // Dot, in dotall (aka singleline) mode only + XRegExp.addToken( + /\./, + function () {return "[\\s\\S]";}, + XRegExp.OUTSIDE_CLASS, + function () {return this.hasFlag("s");} + ); + + + //--------------------------------- + // Backward compatibility + //--------------------------------- + + // Uncomment the following block for compatibility with XRegExp 1.0-1.2: + /* + XRegExp.matchWithinChain = XRegExp.matchChain; + RegExp.prototype.addFlags = function (s) {return clone(this, s);}; + RegExp.prototype.execAll = function (s) {var r = []; XRegExp.iterate(s, this, function (m) {r.push(m);}); return r;}; + RegExp.prototype.forEachExec = function (s, f, c) {return XRegExp.iterate(s, this, f, c);}; + RegExp.prototype.validate = function (s) {var r = RegExp("^(?:" + this.source + ")$(?!\\s)", getNativeFlags(this)); if (this.global) this.lastIndex = 0; return s.search(r) === 0;}; + */ + +})(); + +// +// Begin anonymous function. This is used to contain local scope variables without polutting global scope. +// +if (typeof(SyntaxHighlighter) == 'undefined') var SyntaxHighlighter = function() { + +// CommonJS + if (typeof(require) != 'undefined' && typeof(XRegExp) == 'undefined') + { + XRegExp = require('XRegExp').XRegExp; + } + +// Shortcut object which will be assigned to the SyntaxHighlighter variable. +// This is a shorthand for local reference in order to avoid long namespace +// references to SyntaxHighlighter.whatever... + var sh = { + defaults : { + /** Additional CSS class names to be added to highlighter elements. */ + 'class-name' : '', + + /** First line number. */ + 'first-line' : 1, + + /** + * Pads line numbers. Possible values are: + * + * false - don't pad line numbers. + * true - automaticaly pad numbers with minimum required number of leading zeroes. + * [int] - length up to which pad line numbers. + */ + 'pad-line-numbers' : false, + + /** Lines to highlight. */ + 'highlight' : false, + + /** Title to be displayed above the code block. */ + 'title' : null, + + /** Enables or disables smart tabs. */ + 'smart-tabs' : true, + + /** Gets or sets tab size. */ + 'tab-size' : 4, + + /** Enables or disables gutter. */ + 'gutter' : true, + + /** Enables or disables toolbar. */ + 'toolbar' : true, + + /** Enables quick code copy and paste from double click. */ + 'quick-code' : true, + + /** Forces code view to be collapsed. */ + 'collapse' : false, + + /** Enables or disables automatic links. */ + 'auto-links' : false, + + /** Gets or sets light mode. Equavalent to turning off gutter and toolbar. */ + 'light' : false, + + 'unindent' : true, + + 'html-script' : false + }, + + config : { + space : ' ', + + /** Enables use of diff --git a/sql/service_cate_simple_data.sql b/sql/service_cate_simple_data.sql new file mode 100644 index 0000000..74792fd --- /dev/null +++ b/sql/service_cate_simple_data.sql @@ -0,0 +1,77 @@ +-- 服务分类二级分类测试数据 +-- 清理现有数据 +TRUNCATE TABLE service_cate; + +-- 插入一级分类 +INSERT INTO service_cate (id, title, icon, sort, status, browse, type, parent_id, created_at, updated_at) VALUES +(1, '空调维修', '', 1, 1, 0, 1, 0, NOW(), NOW()), +(2, '家电清洗', '', 2, 1, 0, 1, 0, NOW(), NOW()), +(3, '管道疏通', '', 3, 1, 0, 1, 0, NOW(), NOW()), +(4, '墙面维护', '', 4, 1, 0, 1, 0, NOW(), NOW()), +(5, '专业美缝', '', 5, 1, 0, 1, 0, NOW(), NOW()), +(6, '窗帘软装', '', 6, 1, 0, 1, 0, NOW(), NOW()), +(7, '全屋定制', '', 7, 1, 0, 1, 0, NOW(), NOW()), +(8, '家居安装', '', 8, 1, 0, 1, 0, NOW(), NOW()); + +-- 插入二级分类 +-- 空调维修的二级分类 +INSERT INTO service_cate (title, icon, sort, status, browse, type, parent_id, created_at, updated_at) VALUES +('挂式空调维修', '', 1, 1, 0, 2, 1, NOW(), NOW()), +('立式空调维修', '', 2, 1, 0, 2, 1, NOW(), NOW()), +('中央空调维修', '', 3, 1, 0, 2, 1, NOW(), NOW()), +('空调移机', '', 4, 1, 0, 2, 1, NOW(), NOW()), +('空调加氟', '', 5, 1, 0, 2, 1, NOW(), NOW()); + +-- 家电清洗的二级分类 +INSERT INTO service_cate (title, icon, sort, status, browse, type, parent_id, created_at, updated_at) VALUES +('油烟机清洗', '', 1, 1, 0, 2, 2, NOW(), NOW()), +('冰箱清洗', '', 2, 1, 0, 2, 2, NOW(), NOW()), +('洗衣机清洗', '', 3, 1, 0, 2, 2, NOW(), NOW()), +('热水器清洗', '', 4, 1, 0, 2, 2, NOW(), NOW()), +('空调清洗', '', 5, 1, 0, 2, 2, NOW(), NOW()); + +-- 管道疏通的二级分类 +INSERT INTO service_cate (title, icon, sort, status, browse, type, parent_id, created_at, updated_at) VALUES +('下水道疏通', '', 1, 1, 0, 2, 3, NOW(), NOW()), +('马桶疏通', '', 2, 1, 0, 2, 3, NOW(), NOW()), +('地漏疏通', '', 3, 1, 0, 2, 3, NOW(), NOW()), +('厨房管道疏通', '', 4, 1, 0, 2, 3, NOW(), NOW()), +('卫生间管道疏通', '', 5, 1, 0, 2, 3, NOW(), NOW()); + +-- 墙面维护的二级分类 +INSERT INTO service_cate (title, icon, sort, status, browse, type, parent_id, created_at, updated_at) VALUES +('墙面刷漆', '', 1, 1, 0, 2, 4, NOW(), NOW()), +('墙纸更换', '', 2, 1, 0, 2, 4, NOW(), NOW()), +('墙面修补', '', 3, 1, 0, 2, 4, NOW(), NOW()), +('墙面防水', '', 4, 1, 0, 2, 4, NOW(), NOW()); + +-- 专业美缝的二级分类 +INSERT INTO service_cate (title, icon, sort, status, browse, type, parent_id, created_at, updated_at) VALUES +('瓷砖美缝', '', 1, 1, 0, 2, 5, NOW(), NOW()), +('地砖美缝', '', 2, 1, 0, 2, 5, NOW(), NOW()), +('墙砖美缝', '', 3, 1, 0, 2, 5, NOW(), NOW()), +('防水美缝', '', 4, 1, 0, 2, 5, NOW(), NOW()); + +-- 窗帘软装的二级分类 +INSERT INTO service_cate (title, icon, sort, status, browse, type, parent_id, created_at, updated_at) VALUES +('窗帘安装', '', 1, 1, 0, 2, 6, NOW(), NOW()), +('百叶窗安装', '', 2, 1, 0, 2, 6, NOW(), NOW()), +('窗帘清洗', '', 3, 1, 0, 2, 6, NOW(), NOW()), +('窗帘维修', '', 4, 1, 0, 2, 6, NOW(), NOW()); + +-- 全屋定制的二级分类 +INSERT INTO service_cate (title, icon, sort, status, browse, type, parent_id, created_at, updated_at) VALUES +('衣柜定制', '', 1, 1, 0, 2, 7, NOW(), NOW()), +('橱柜定制', '', 2, 1, 0, 2, 7, NOW(), NOW()), +('书柜定制', '', 3, 1, 0, 2, 7, NOW(), NOW()), +('鞋柜定制', '', 4, 1, 0, 2, 7, NOW(), NOW()); + +-- 家居安装的二级分类 +INSERT INTO service_cate (title, icon, sort, status, browse, type, parent_id, created_at, updated_at) VALUES +('灯具安装', '', 1, 1, 0, 2, 8, NOW(), NOW()), +('卫浴安装', '', 2, 1, 0, 2, 8, NOW(), NOW()), +('五金安装', '', 3, 1, 0, 2, 8, NOW(), NOW()), +('家具组装', '', 4, 1, 0, 2, 8, NOW(), NOW()); + +-- 重置自增ID +ALTER TABLE service_cate AUTO_INCREMENT = 100; \ No newline at end of file